diff --git a/internal/treesitter/json/rules.yml b/internal/treesitter/json/rules.yml new file mode 100644 index 0000000..2b4bcd3 --- /dev/null +++ b/internal/treesitter/json/rules.yml @@ -0,0 +1,24 @@ +flattened: + - string + +ignored: + - "{" + - "}" + - "[" + - "]" + - "," + - ":" + +scaffolding: + - document + - object + - array + - pair + +unordered: + - object + +keywords: + - "true" + - "false" + - "null" diff --git a/internal/treesitter/parser_test.go b/internal/treesitter/parser_test.go index 7593c17..b6fb2f6 100644 --- a/internal/treesitter/parser_test.go +++ b/internal/treesitter/parser_test.go @@ -218,6 +218,17 @@ int main() { std::cout << "Hello C++\n"; return 0; }`) t.Error("Parse(): expected non-nil AST root") } }) + + t.Run("valid json source", func(t *testing.T) { + src := []byte(`{"name": "diffmantic", "version": 1.0, "active": true}`) + ast, err := Parse(src, "config.json") + if err != nil { + t.Fatalf("Parse(): unexpected error: %v", err) + } + if ast == nil { + t.Error("Parse(): expected non-nil AST root") + } + }) t.Run("unknown extension", func(t *testing.T) { src := []byte(`some text`) ast, err := Parse(src, "main.xyz") diff --git a/tests/testdata/json_schemastore_bunfig_options_update/expected.json b/tests/testdata/json_schemastore_bunfig_options_update/expected.json new file mode 100644 index 0000000..a5c2085 --- /dev/null +++ b/tests/testdata/json_schemastore_bunfig_options_update/expected.json @@ -0,0 +1,2511 @@ +{ + "version": "v1", + "actions": [ + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 10 + ], + "type": "pair", + "start_byte": 4247, + "end_byte": 4874 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1 + ], + "type": "object", + "start_byte": 314, + "end_byte": 27755 + }, + "position": 10, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 11 + ], + "type": "pair", + "start_byte": 4880, + "end_byte": 5513 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1 + ], + "type": "object", + "start_byte": 314, + "end_byte": 27755 + }, + "position": 11, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 6579, + "end_byte": 7041 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 2, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 10 + ], + "type": "pair", + "start_byte": 10082, + "end_byte": 10359 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 10, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 11 + ], + "type": "pair", + "start_byte": 10369, + "end_byte": 10704 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 11, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 12 + ], + "type": "pair", + "start_byte": 10714, + "end_byte": 11070 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 12, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 13 + ], + "type": "pair", + "start_byte": 11080, + "end_byte": 11462 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 13, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 14 + ], + "type": "pair", + "start_byte": 11472, + "end_byte": 11839 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 14, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 15 + ], + "type": "pair", + "start_byte": 11849, + "end_byte": 12169 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 15, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1, + 16 + ], + "type": "pair", + "start_byte": 12179, + "end_byte": 13157 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 12, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5762, + "end_byte": 13586 + }, + "position": 16, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 13, + 1, + 4, + 1, + 12 + ], + "type": "pair", + "start_byte": 19651, + "end_byte": 20047 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 13, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 13990, + "end_byte": 25317 + }, + "position": 12, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": -1, + "right_line": 96 + }, + { + "left_line": -1, + "right_line": 97 + }, + { + "left_line": -1, + "right_line": 98 + }, + { + "left_line": -1, + "right_line": 99 + }, + { + "left_line": -1, + "right_line": 100 + }, + { + "left_line": -1, + "right_line": 101 + }, + { + "left_line": -1, + "right_line": 102 + }, + { + "left_line": -1, + "right_line": 103 + }, + { + "left_line": -1, + "right_line": 104 + }, + { + "left_line": -1, + "right_line": 105 + }, + { + "left_line": -1, + "right_line": 106 + }, + { + "left_line": -1, + "right_line": 107 + }, + { + "left_line": -1, + "right_line": 108 + }, + { + "left_line": -1, + "right_line": 109 + }, + { + "left_line": -1, + "right_line": 110 + }, + { + "left_line": -1, + "right_line": 111 + }, + { + "left_line": -1, + "right_line": 112 + }, + { + "left_line": -1, + "right_line": 113 + }, + { + "left_line": -1, + "right_line": 114 + }, + { + "left_line": -1, + "right_line": 115 + }, + { + "left_line": -1, + "right_line": 116 + }, + { + "left_line": -1, + "right_line": 117 + }, + { + "left_line": -1, + "right_line": 118 + }, + { + "left_line": -1, + "right_line": 119 + }, + { + "left_line": -1, + "right_line": 120 + }, + { + "left_line": -1, + "right_line": 121 + }, + { + "left_line": -1, + "right_line": 122 + }, + { + "left_line": -1, + "right_line": 123 + }, + { + "left_line": -1, + "right_line": 124 + }, + { + "left_line": -1, + "right_line": 125 + }, + { + "left_line": -1, + "right_line": 126 + }, + { + "left_line": -1, + "right_line": 127 + }, + { + "left_line": -1, + "right_line": 128 + }, + { + "left_line": -1, + "right_line": 129 + }, + { + "left_line": -1, + "right_line": 130 + }, + { + "left_line": 96, + "right_line": 131 + }, + { + "left_line": 97, + "right_line": 132 + }, + { + "left_line": 98, + "right_line": 133 + }, + { + "left_line": 99, + "right_line": 134 + }, + { + "left_line": 100, + "right_line": 135 + }, + { + "left_line": 101, + "right_line": 136 + }, + { + "left_line": 102, + "right_line": 137 + }, + { + "left_line": 103, + "right_line": 138 + }, + { + "left_line": 104, + "right_line": 139 + }, + { + "left_line": 105, + "right_line": 140 + }, + { + "left_line": 106, + "right_line": 141 + }, + { + "left_line": 107, + "right_line": 142 + }, + { + "left_line": 108, + "right_line": 143 + }, + { + "left_line": 109, + "right_line": 144 + }, + { + "left_line": 110, + "right_line": 145 + }, + { + "left_line": 111, + "right_line": 146 + }, + { + "left_line": 112, + "right_line": 147 + }, + { + "left_line": 113, + "right_line": 148 + }, + { + "left_line": 114, + "right_line": 149 + }, + { + "left_line": 115, + "right_line": 150 + }, + { + "left_line": 116, + "right_line": 151 + }, + { + "left_line": 117, + "right_line": 152 + }, + { + "left_line": 118, + "right_line": 153 + }, + { + "left_line": 119, + "right_line": 154 + }, + { + "left_line": 120, + "right_line": 155 + }, + { + "left_line": 121, + "right_line": 156 + }, + { + "left_line": 122, + "right_line": 157 + }, + { + "left_line": 123, + "right_line": 158 + }, + { + "left_line": -1, + "right_line": 159 + }, + { + "left_line": -1, + "right_line": 160 + }, + { + "left_line": -1, + "right_line": 161 + }, + { + "left_line": -1, + "right_line": 162 + }, + { + "left_line": -1, + "right_line": 163 + }, + { + "left_line": -1, + "right_line": 164 + }, + { + "left_line": -1, + "right_line": 165 + }, + { + "left_line": -1, + "right_line": 166 + }, + { + "left_line": 124, + "right_line": 167 + }, + { + "left_line": 125, + "right_line": 168 + }, + { + "left_line": 126, + "right_line": 169 + }, + { + "left_line": 127, + "right_line": 170 + }, + { + "left_line": 128, + "right_line": 171 + }, + { + "left_line": 129, + "right_line": 172 + }, + { + "left_line": 130, + "right_line": 173 + }, + { + "left_line": 131, + "right_line": 174 + }, + { + "left_line": 132, + "right_line": 175 + }, + { + "left_line": 133, + "right_line": 176 + }, + { + "left_line": 134, + "right_line": 177 + }, + { + "left_line": 135, + "right_line": 178 + }, + { + "left_line": 136, + "right_line": 179 + }, + { + "left_line": 137, + "right_line": 180 + }, + { + "left_line": 138, + "right_line": 181 + }, + { + "left_line": 139, + "right_line": 182 + }, + { + "left_line": 140, + "right_line": 183 + }, + { + "left_line": 141, + "right_line": 184 + }, + { + "left_line": 142, + "right_line": 185 + }, + { + "left_line": 143, + "right_line": 186 + }, + { + "left_line": 144, + "right_line": 187 + }, + { + "left_line": 145, + "right_line": 188 + }, + { + "left_line": 146, + "right_line": 189 + }, + { + "left_line": 147, + "right_line": 190 + }, + { + "left_line": 148, + "right_line": 191 + }, + { + "left_line": 149, + "right_line": 192 + }, + { + "left_line": 150, + "right_line": 193 + }, + { + "left_line": 151, + "right_line": 194 + }, + { + "left_line": 152, + "right_line": 195 + }, + { + "left_line": 153, + "right_line": 196 + }, + { + "left_line": 154, + "right_line": 197 + }, + { + "left_line": 155, + "right_line": 198 + }, + { + "left_line": 156, + "right_line": 199 + }, + { + "left_line": 157, + "right_line": 200 + }, + { + "left_line": 158, + "right_line": 201 + }, + { + "left_line": 159, + "right_line": 202 + }, + { + "left_line": 160, + "right_line": 203 + }, + { + "left_line": 161, + "right_line": 204 + }, + { + "left_line": 162, + "right_line": 205 + }, + { + "left_line": 163, + "right_line": 206 + }, + { + "left_line": 164, + "right_line": 207 + }, + { + "left_line": 165, + "right_line": 208 + }, + { + "left_line": 166, + "right_line": 209 + }, + { + "left_line": 167, + "right_line": 210 + }, + { + "left_line": 168, + "right_line": 211 + }, + { + "left_line": 169, + "right_line": 212 + }, + { + "left_line": 170, + "right_line": 213 + }, + { + "left_line": 171, + "right_line": 214 + }, + { + "left_line": 172, + "right_line": 215 + }, + { + "left_line": 173, + "right_line": 216 + }, + { + "left_line": 174, + "right_line": 217 + }, + { + "left_line": 175, + "right_line": 218 + }, + { + "left_line": 176, + "right_line": 219 + }, + { + "left_line": 177, + "right_line": 220 + }, + { + "left_line": -1, + "right_line": 221 + }, + { + "left_line": -1, + "right_line": 222 + }, + { + "left_line": -1, + "right_line": 223 + }, + { + "left_line": -1, + "right_line": 224 + }, + { + "left_line": -1, + "right_line": 225 + }, + { + "left_line": -1, + "right_line": 226 + }, + { + "left_line": -1, + "right_line": 227 + }, + { + "left_line": -1, + "right_line": 228 + }, + { + "left_line": -1, + "right_line": 229 + }, + { + "left_line": -1, + "right_line": 230 + }, + { + "left_line": -1, + "right_line": 231 + }, + { + "left_line": -1, + "right_line": 232 + }, + { + "left_line": -1, + "right_line": 233 + }, + { + "left_line": -1, + "right_line": 234 + }, + { + "left_line": -1, + "right_line": 235 + }, + { + "left_line": -1, + "right_line": 236 + }, + { + "left_line": -1, + "right_line": 237 + }, + { + "left_line": -1, + "right_line": 238 + }, + { + "left_line": -1, + "right_line": 239 + }, + { + "left_line": -1, + "right_line": 240 + }, + { + "left_line": -1, + "right_line": 241 + }, + { + "left_line": -1, + "right_line": 242 + }, + { + "left_line": -1, + "right_line": 243 + }, + { + "left_line": -1, + "right_line": 244 + }, + { + "left_line": -1, + "right_line": 245 + }, + { + "left_line": -1, + "right_line": 246 + }, + { + "left_line": -1, + "right_line": 247 + }, + { + "left_line": -1, + "right_line": 248 + }, + { + "left_line": -1, + "right_line": 249 + }, + { + "left_line": -1, + "right_line": 250 + }, + { + "left_line": -1, + "right_line": 251 + }, + { + "left_line": -1, + "right_line": 252 + }, + { + "left_line": -1, + "right_line": 253 + }, + { + "left_line": -1, + "right_line": 254 + }, + { + "left_line": -1, + "right_line": 255 + }, + { + "left_line": -1, + "right_line": 256 + }, + { + "left_line": -1, + "right_line": 257 + }, + { + "left_line": -1, + "right_line": 258 + }, + { + "left_line": -1, + "right_line": 259 + }, + { + "left_line": -1, + "right_line": 260 + }, + { + "left_line": -1, + "right_line": 261 + }, + { + "left_line": -1, + "right_line": 262 + }, + { + "left_line": -1, + "right_line": 263 + }, + { + "left_line": -1, + "right_line": 264 + }, + { + "left_line": -1, + "right_line": 265 + }, + { + "left_line": -1, + "right_line": 266 + }, + { + "left_line": -1, + "right_line": 267 + }, + { + "left_line": -1, + "right_line": 268 + }, + { + "left_line": -1, + "right_line": 269 + }, + { + "left_line": -1, + "right_line": 270 + }, + { + "left_line": -1, + "right_line": 271 + }, + { + "left_line": -1, + "right_line": 272 + }, + { + "left_line": -1, + "right_line": 273 + }, + { + "left_line": -1, + "right_line": 274 + }, + { + "left_line": -1, + "right_line": 275 + }, + { + "left_line": -1, + "right_line": 276 + }, + { + "left_line": -1, + "right_line": 277 + }, + { + "left_line": -1, + "right_line": 278 + }, + { + "left_line": -1, + "right_line": 279 + }, + { + "left_line": -1, + "right_line": 280 + }, + { + "left_line": -1, + "right_line": 281 + }, + { + "left_line": 178, + "right_line": 282 + }, + { + "left_line": 179, + "right_line": 283 + }, + { + "left_line": 180, + "right_line": 284 + }, + { + "left_line": 181, + "right_line": 285 + }, + { + "left_line": 182, + "right_line": 286 + }, + { + "left_line": 183, + "right_line": 287 + }, + { + "left_line": 184, + "right_line": 288 + }, + { + "left_line": 185, + "right_line": 289 + }, + { + "left_line": 186, + "right_line": 290 + }, + { + "left_line": 187, + "right_line": 291 + }, + { + "left_line": 188, + "right_line": 292 + }, + { + "left_line": 189, + "right_line": 293 + }, + { + "left_line": 190, + "right_line": 294 + }, + { + "left_line": 191, + "right_line": 295 + }, + { + "left_line": 192, + "right_line": 296 + }, + { + "left_line": 193, + "right_line": 297 + }, + { + "left_line": 194, + "right_line": 298 + }, + { + "left_line": 195, + "right_line": 299 + }, + { + "left_line": 196, + "right_line": 300 + }, + { + "left_line": 197, + "right_line": 301 + }, + { + "left_line": 198, + "right_line": 302 + }, + { + "left_line": 199, + "right_line": 303 + }, + { + "left_line": 200, + "right_line": 304 + }, + { + "left_line": 201, + "right_line": 305 + }, + { + "left_line": 202, + "right_line": 306 + }, + { + "left_line": 203, + "right_line": 307 + }, + { + "left_line": 204, + "right_line": 308 + }, + { + "left_line": 205, + "right_line": 309 + }, + { + "left_line": 206, + "right_line": 310 + }, + { + "left_line": 207, + "right_line": 311 + }, + { + "left_line": 208, + "right_line": 312 + }, + { + "left_line": 209, + "right_line": 313 + }, + { + "left_line": 210, + "right_line": 314 + }, + { + "left_line": 211, + "right_line": 315 + }, + { + "left_line": 212, + "right_line": 316 + }, + { + "left_line": 213, + "right_line": 317 + }, + { + "left_line": 214, + "right_line": 318 + }, + { + "left_line": 215, + "right_line": 319 + }, + { + "left_line": 216, + "right_line": 320 + }, + { + "left_line": 217, + "right_line": 321 + }, + { + "left_line": 218, + "right_line": 322 + }, + { + "left_line": 219, + "right_line": 323 + }, + { + "left_line": 220, + "right_line": 324 + }, + { + "left_line": 221, + "right_line": 325 + }, + { + "left_line": 222, + "right_line": 326 + }, + { + "left_line": 223, + "right_line": 327 + }, + { + "left_line": 224, + "right_line": 328 + }, + { + "left_line": 225, + "right_line": 329 + }, + { + "left_line": 226, + "right_line": 330 + }, + { + "left_line": 227, + "right_line": 331 + }, + { + "left_line": 228, + "right_line": 332 + }, + { + "left_line": 229, + "right_line": 333 + }, + { + "left_line": 230, + "right_line": 334 + }, + { + "left_line": 231, + "right_line": 335 + }, + { + "left_line": 232, + "right_line": 336 + }, + { + "left_line": 233, + "right_line": 337 + }, + { + "left_line": 234, + "right_line": 338 + }, + { + "left_line": 235, + "right_line": 339 + }, + { + "left_line": 236, + "right_line": 340 + }, + { + "left_line": 237, + "right_line": 341 + }, + { + "left_line": 238, + "right_line": 342 + }, + { + "left_line": 239, + "right_line": 343 + }, + { + "left_line": 240, + "right_line": 344 + }, + { + "left_line": 241, + "right_line": 345 + }, + { + "left_line": 242, + "right_line": 346 + }, + { + "left_line": 243, + "right_line": 347 + }, + { + "left_line": 244, + "right_line": 348 + }, + { + "left_line": 245, + "right_line": 349 + }, + { + "left_line": 246, + "right_line": 350 + }, + { + "left_line": 247, + "right_line": 351 + }, + { + "left_line": 248, + "right_line": 352 + }, + { + "left_line": 249, + "right_line": 353 + }, + { + "left_line": 250, + "right_line": 354 + }, + { + "left_line": 251, + "right_line": 355 + }, + { + "left_line": 252, + "right_line": 356 + }, + { + "left_line": 253, + "right_line": 357 + }, + { + "left_line": 254, + "right_line": 358 + }, + { + "left_line": 255, + "right_line": 359 + }, + { + "left_line": 256, + "right_line": 360 + }, + { + "left_line": 257, + "right_line": 361 + }, + { + "left_line": 258, + "right_line": 362 + }, + { + "left_line": 259, + "right_line": 363 + }, + { + "left_line": 260, + "right_line": 364 + }, + { + "left_line": 261, + "right_line": 365 + }, + { + "left_line": 262, + "right_line": 366 + }, + { + "left_line": 263, + "right_line": 367 + }, + { + "left_line": 264, + "right_line": 368 + }, + { + "left_line": 265, + "right_line": 369 + }, + { + "left_line": 266, + "right_line": 370 + }, + { + "left_line": 267, + "right_line": 371 + }, + { + "left_line": 268, + "right_line": 372 + }, + { + "left_line": 269, + "right_line": 373 + }, + { + "left_line": 270, + "right_line": 374 + }, + { + "left_line": 271, + "right_line": 375 + }, + { + "left_line": 272, + "right_line": 376 + }, + { + "left_line": 273, + "right_line": 377 + }, + { + "left_line": 274, + "right_line": 378 + }, + { + "left_line": 275, + "right_line": 379 + }, + { + "left_line": 276, + "right_line": 380 + }, + { + "left_line": 277, + "right_line": 381 + }, + { + "left_line": 278, + "right_line": 382 + }, + { + "left_line": 279, + "right_line": 383 + }, + { + "left_line": 280, + "right_line": 384 + }, + { + "left_line": 281, + "right_line": 385 + }, + { + "left_line": 282, + "right_line": 386 + }, + { + "left_line": 283, + "right_line": 387 + }, + { + "left_line": 284, + "right_line": 388 + }, + { + "left_line": 285, + "right_line": 389 + }, + { + "left_line": 286, + "right_line": 390 + }, + { + "left_line": 287, + "right_line": 391 + }, + { + "left_line": 288, + "right_line": 392 + }, + { + "left_line": 289, + "right_line": 393 + }, + { + "left_line": 290, + "right_line": 394 + }, + { + "left_line": 291, + "right_line": 395 + }, + { + "left_line": -1, + "right_line": 396 + }, + { + "left_line": -1, + "right_line": 397 + }, + { + "left_line": -1, + "right_line": 398 + }, + { + "left_line": -1, + "right_line": 399 + }, + { + "left_line": -1, + "right_line": 400 + }, + { + "left_line": -1, + "right_line": 401 + }, + { + "left_line": 292, + "right_line": 402 + }, + { + "left_line": 293, + "right_line": 403 + }, + { + "left_line": 294, + "right_line": 404 + }, + { + "left_line": 295, + "right_line": 405 + }, + { + "left_line": 296, + "right_line": 406 + }, + { + "left_line": 297, + "right_line": 407 + }, + { + "left_line": 298, + "right_line": 408 + }, + { + "left_line": 299, + "right_line": 409 + }, + { + "left_line": 300, + "right_line": 410 + }, + { + "left_line": 301, + "right_line": 411 + }, + { + "left_line": 302, + "right_line": 412 + }, + { + "left_line": 303, + "right_line": 413 + }, + { + "left_line": 304, + "right_line": 414 + }, + { + "left_line": 305, + "right_line": 415 + }, + { + "left_line": 306, + "right_line": 416 + }, + { + "left_line": 307, + "right_line": 417 + }, + { + "left_line": 308, + "right_line": 418 + }, + { + "left_line": 309, + "right_line": 419 + }, + { + "left_line": 310, + "right_line": 420 + }, + { + "left_line": 311, + "right_line": 421 + }, + { + "left_line": 312, + "right_line": 422 + }, + { + "left_line": 313, + "right_line": 423 + }, + { + "left_line": 314, + "right_line": 424 + }, + { + "left_line": 315, + "right_line": 425 + }, + { + "left_line": 316, + "right_line": 426 + }, + { + "left_line": 317, + "right_line": 427 + }, + { + "left_line": 318, + "right_line": 428 + }, + { + "left_line": 319, + "right_line": 429 + }, + { + "left_line": 320, + "right_line": 430 + }, + { + "left_line": 321, + "right_line": 431 + }, + { + "left_line": 322, + "right_line": 432 + }, + { + "left_line": 323, + "right_line": 433 + }, + { + "left_line": 324, + "right_line": 434 + }, + { + "left_line": 325, + "right_line": 435 + }, + { + "left_line": 326, + "right_line": 436 + }, + { + "left_line": 327, + "right_line": 437 + }, + { + "left_line": 328, + "right_line": 438 + }, + { + "left_line": 329, + "right_line": 439 + }, + { + "left_line": 330, + "right_line": 440 + }, + { + "left_line": 331, + "right_line": 441 + }, + { + "left_line": 332, + "right_line": 442 + }, + { + "left_line": 333, + "right_line": 443 + }, + { + "left_line": 334, + "right_line": 444 + }, + { + "left_line": 335, + "right_line": 445 + }, + { + "left_line": 336, + "right_line": 446 + }, + { + "left_line": 337, + "right_line": 447 + }, + { + "left_line": 338, + "right_line": 448 + }, + { + "left_line": 339, + "right_line": 449 + }, + { + "left_line": 340, + "right_line": 450 + }, + { + "left_line": 341, + "right_line": 451 + }, + { + "left_line": 342, + "right_line": 452 + }, + { + "left_line": 343, + "right_line": 453 + }, + { + "left_line": 344, + "right_line": 454 + }, + { + "left_line": 345, + "right_line": 455 + }, + { + "left_line": 346, + "right_line": 456 + }, + { + "left_line": 347, + "right_line": 457 + }, + { + "left_line": 348, + "right_line": 458 + }, + { + "left_line": 349, + "right_line": 459 + }, + { + "left_line": 350, + "right_line": 460 + }, + { + "left_line": 351, + "right_line": 461 + }, + { + "left_line": 352, + "right_line": 462 + }, + { + "left_line": 353, + "right_line": 463 + }, + { + "left_line": 354, + "right_line": 464 + }, + { + "left_line": 355, + "right_line": 465 + }, + { + "left_line": 356, + "right_line": 466 + }, + { + "left_line": 357, + "right_line": 467 + }, + { + "left_line": 358, + "right_line": 468 + }, + { + "left_line": 359, + "right_line": 469 + }, + { + "left_line": 360, + "right_line": 470 + }, + { + "left_line": 361, + "right_line": 471 + }, + { + "left_line": 362, + "right_line": 472 + }, + { + "left_line": 363, + "right_line": 473 + }, + { + "left_line": 364, + "right_line": 474 + }, + { + "left_line": 365, + "right_line": 475 + }, + { + "left_line": 366, + "right_line": 476 + }, + { + "left_line": 367, + "right_line": 477 + }, + { + "left_line": 368, + "right_line": 478 + }, + { + "left_line": 369, + "right_line": 479 + }, + { + "left_line": 370, + "right_line": 480 + }, + { + "left_line": 371, + "right_line": 481 + }, + { + "left_line": 372, + "right_line": 482 + }, + { + "left_line": 373, + "right_line": 483 + }, + { + "left_line": 374, + "right_line": 484 + }, + { + "left_line": 375, + "right_line": 485 + }, + { + "left_line": 376, + "right_line": 486 + }, + { + "left_line": 377, + "right_line": 487 + }, + { + "left_line": 378, + "right_line": 488 + }, + { + "left_line": 379, + "right_line": 489 + }, + { + "left_line": 380, + "right_line": 490 + }, + { + "left_line": 381, + "right_line": 491 + }, + { + "left_line": 382, + "right_line": 492 + }, + { + "left_line": 383, + "right_line": 493 + }, + { + "left_line": 384, + "right_line": 494 + }, + { + "left_line": 385, + "right_line": 495 + }, + { + "left_line": 386, + "right_line": 496 + }, + { + "left_line": 387, + "right_line": 497 + }, + { + "left_line": 388, + "right_line": 498 + }, + { + "left_line": 389, + "right_line": 499 + }, + { + "left_line": 390, + "right_line": 500 + }, + { + "left_line": 391, + "right_line": 501 + }, + { + "left_line": 392, + "right_line": 502 + }, + { + "left_line": 393, + "right_line": 503 + }, + { + "left_line": 394, + "right_line": 504 + }, + { + "left_line": 395, + "right_line": 505 + }, + { + "left_line": 396, + "right_line": 506 + }, + { + "left_line": 397, + "right_line": 507 + }, + { + "left_line": 398, + "right_line": 508 + }, + { + "left_line": 399, + "right_line": 509 + }, + { + "left_line": 400, + "right_line": 510 + }, + { + "left_line": 401, + "right_line": 511 + }, + { + "left_line": 402, + "right_line": 512 + }, + { + "left_line": 403, + "right_line": 513 + }, + { + "left_line": 404, + "right_line": 514 + }, + { + "left_line": 405, + "right_line": 515 + }, + { + "left_line": 406, + "right_line": 516 + }, + { + "left_line": 407, + "right_line": 517 + }, + { + "left_line": 408, + "right_line": 518 + }, + { + "left_line": 409, + "right_line": 519 + }, + { + "left_line": 410, + "right_line": 520 + }, + { + "left_line": 411, + "right_line": 521 + }, + { + "left_line": 412, + "right_line": 522 + }, + { + "left_line": 413, + "right_line": 523 + }, + { + "left_line": 414, + "right_line": 524 + }, + { + "left_line": 415, + "right_line": 525 + }, + { + "left_line": 416, + "right_line": 526 + }, + { + "left_line": 417, + "right_line": 527 + }, + { + "left_line": 418, + "right_line": 528 + }, + { + "left_line": 419, + "right_line": 529 + }, + { + "left_line": 420, + "right_line": 530 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_bunfig_options_update/metadata.json b/tests/testdata/json_schemastore_bunfig_options_update/metadata.json new file mode 100644 index 0000000..9b7d9fd --- /dev/null +++ b/tests/testdata/json_schemastore_bunfig_options_update/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "72ce92381242bd76e804d29d6c2b8d7820ee4815", + "description": "Update bunfig options schema", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_bunfig_options_update/new.json b/tests/testdata/json_schemastore_bunfig_options_update/new.json new file mode 100644 index 0000000..42665c2 --- /dev/null +++ b/tests/testdata/json_schemastore_bunfig_options_update/new.json @@ -0,0 +1,530 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/bunfig.json", + "title": "Bun configuration", + "description": "Bun configuration schema for `bunfig.toml`. See https://bun.sh/docs/runtime/bunfig", + "additionalProperties": true, + "type": "object", + "properties": { + "preload": { + "$comment": "https://bun.sh/docs/runtime/bunfig#preload", + "description": "An array or string of scripts/plugins to run before running the file or script\nhttps://bun.sh/docs/runtime/bunfig#preload", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "examples": [["./preload.ts"]] + }, + "jsx": { + "$comment": "https://bun.sh/docs/runtime/bunfig#jsx", + "description": "Configure how Bun handles JSX. You can also set these fields in the `compilerOptions` of your `tsconfig.json`, but they are supported here as well for non-TypeScript projects\nhttps://bun.sh/docs/runtime/bunfig#jsx\nhttps://www.typescriptlang.org/tsconfig/#jsx", + "type": "string", + "examples": ["react"] + }, + "jsxFactory": { + "$comment": "https://www.typescriptlang.org/tsconfig#jsxFactory", + "description": "Specify the function that is used to create JSX elements\nhttps://www.typescriptlang.org/tsconfig#jsxFactory", + "type": "string", + "examples": ["h"] + }, + "jsxFragment": { + "$comment": "https://www.typescriptlang.org/tsconfig#jsxFragment", + "description": "Specify the function that is used for JSX fragments\nhttps://www.typescriptlang.org/tsconfig#jsxFragment", + "type": "string", + "examples": ["Fragment"] + }, + "jsxImportSource": { + "$comment": "https://www.typescriptlang.org/tsconfig#jsxImportSource", + "description": "Specify the module specifier to be used for importing the JSX factory functions\nhttps://www.typescriptlang.org/tsconfig#jsxImportSource", + "type": "string", + "examples": ["react"] + }, + "smol": { + "$comment": "https://bun.sh/docs/runtime/bunfig#smol", + "description": "Enable `smol` mode. This reduces memory usage at the cost of performance\nhttps://bun.sh/docs/runtime/bunfig#smol", + "type": "boolean", + "default": false + }, + "logLevel": { + "$comment": "https://bun.sh/docs/runtime/bunfig#loglevel", + "description": "Set the log level. This can be one of `\"debug\"`, `\"warn\"`, or `\"error\"`\nhttps://bun.sh/docs/runtime/bunfig#loglevel", + "type": "string", + "enum": ["debug", "warn", "error"], + "examples": ["debug"] + }, + "define": { + "$comment": "https://bun.sh/docs/runtime/bunfig#define", + "description": "The `define` field allows you to replace certain global identifiers with constant expressions. Bun will replace any usage of the identifier with the expression. The expression should be a JSON string\nhttps://bun.sh/docs/runtime/bunfig#define", + "type": "object", + "additionalProperties": true + }, + "loader": { + "$comment": "https://bun.sh/docs/runtime/bunfig#loader", + "description": "Configure how Bun maps file extensions to loaders. This is useful for loading files that aren't natively supported by Bun\nhttps://bun.sh/docs/runtime/bunfig#loader", + "type": "object", + "additionalProperties": { + "type": "string", + "enum": [ + "jsx", + "js", + "ts", + "tsx", + "css", + "file", + "json", + "toml", + "wasm", + "napi", + "base64", + "dataurl", + "text" + ] + } + }, + "telemetry": { + "$comment": "https://bun.sh/docs/runtime/bunfig#telemetry", + "description": "The `telemetry` field permit to enable/disable the analytics records. Bun records bundle timings (so we can answer with data, \"is Bun getting faster?\") and feature usage (e.g., \"are people actually using macros?\"). The request body size is about 60 bytes, so it's not a lot of data. By default the telemetry is enabled.\nhttps://bun.sh/docs/runtime/bunfig#telemetry", + "type": "boolean", + "default": true + }, + "env": { + "$comment": "https://bun.sh/docs/runtime/bunfig#env", + "description": "Configure automatic `.env` file loading. By default, Bun automatically loads `.env` files.\nhttps://bun.sh/docs/runtime/bunfig#env", + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "file": { + "description": "Enable or disable automatic default `.env` file loading.\nhttps://bun.sh/docs/runtime/bunfig#env", + "type": "boolean" + } + } + } + ] + }, + "console": { + "$comment": "https://bun.sh/docs/runtime/bunfig#console", + "description": "Configure console output behavior.\nhttps://bun.sh/docs/runtime/bunfig#console", + "type": "object", + "additionalProperties": false, + "properties": { + "depth": { + "$comment": "https://bun.sh/docs/runtime/bunfig#console-depth", + "description": "Set the default depth for `console.log()` object inspection. Default `2`\nhttps://bun.sh/docs/runtime/bunfig#console-depth", + "type": "integer", + "minimum": 0, + "default": 2, + "examples": [3] + } + } + }, + "test": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-runner", + "description": "Test runner\nhttps://bun.sh/docs/runtime/bunfig#test-runner", + "type": "object", + "additionalProperties": false, + "properties": { + "root": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-root", + "description": "The root directory to run tests from. Default `.`\nhttps://bun.sh/docs/runtime/bunfig#test-root", + "type": "string", + "examples": ["./__tests__"] + }, + "preload": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-preload", + "description": "Same as the top-level `preload` field, but only applies to `bun test`\nhttps://bun.sh/docs/runtime/bunfig#test-preload", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "examples": [["./setup.ts"]] + }, + "pathIgnorePatterns": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-pathignorepatterns", + "description": "Exclude files and directories from test discovery using glob patterns. Can be a single string pattern or an array of patterns.\nhttps://bun.sh/docs/runtime/bunfig#test-pathignorepatterns", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "smol": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-smol", + "description": "Same as the top-level `smol` field, but only applies to `bun test`\nhttps://bun.sh/docs/runtime/bunfig#test-smol", + "type": "boolean", + "default": false + }, + "coverage": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coverage", + "description": "Enables coverage reporting. Default `false`. Use `--coverage` to override\nhttps://bun.sh/docs/runtime/bunfig#test-coverage", + "type": "boolean", + "default": false + }, + "coveragePathIgnorePatterns": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragepathignorepatterns", + "description": "Exclude specific files or file patterns from coverage reports using glob patterns. Can be a single string pattern or an array of patterns.\nhttps://bun.sh/docs/runtime/bunfig#test-coveragepathignorepatterns", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "coverageThreshold": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragethreshold", + "description": "To specify a coverage threshold. By default, no threshold is set. If your test suite does not meet or exceed this threshold, `bun test` will exit with a non-zero exit code to indicate the failure\nhttps://bun.sh/docs/runtime/bunfig#test-coveragethreshold", + "oneOf": [ + { "type": "number" }, + { + "type": "object", + "additionalProperties": true + } + ], + "examples": [0.9, { "line": 0.7, "function": 0.8, "statement": 0.9 }] + }, + "coverageSkipTestFiles": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coverageskiptestfiles", + "description": "Whether to skip test files when computing coverage statistics. Default false\nhttps://bun.sh/docs/runtime/bunfig#test-coverageskiptestfiles", + "type": "boolean", + "default": false + }, + "coverageReporter": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragereporter", + "description": "By default, coverage reports will be printed to the console. For persistent code coverage reports in CI environments and for other tools use `lcov`\nhttps://bun.sh/docs/runtime/bunfig#test-coveragereporter", + "type": "array", + "items": { + "type": "string", + "enum": ["text", "lcov"] + }, + "default": ["text"] + }, + "coverageDir": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragedir", + "description": "Set path where coverage reports will be saved. Please notice, that it works only for persistent `coverageReporter` like `lcov`\nhttps://bun.sh/docs/runtime/bunfig#test-coveragedir", + "type": "string", + "default": "coverage" + }, + "randomize": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-randomize", + "description": "Run tests in random order. Default `false`\nhttps://bun.sh/docs/runtime/bunfig#test-randomize", + "type": "boolean", + "default": false + }, + "seed": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-seed", + "description": "Set the random seed for test randomization. This requires `randomize` to be `true`.\nhttps://bun.sh/docs/runtime/bunfig#test-seed", + "type": "integer", + "minimum": 0, + "examples": [2444615283] + }, + "rerunEach": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-reruneach", + "description": "Re-run each test file a specified number of times. Default `0` (run once).\nhttps://bun.sh/docs/runtime/bunfig#test-reruneach", + "type": "integer", + "minimum": 0, + "default": 0, + "examples": [3] + }, + "retry": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-retry", + "description": "Default retry count for all tests. Failed tests will be retried up to this many times. Default `0` (no retries).\nhttps://bun.sh/docs/runtime/bunfig#test-retry", + "type": "integer", + "minimum": 0, + "default": 0, + "examples": [3] + }, + "concurrentTestGlob": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-concurrenttestglob", + "description": "Glob pattern for test files that should run with concurrent test execution enabled.\nhttps://bun.sh/docs/runtime/bunfig#test-concurrenttestglob", + "type": "string", + "examples": ["**/concurrent-*.test.ts"] + }, + "onlyFailures": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-onlyfailures", + "description": "When enabled, only failed tests are displayed in the output. Default `false`\nhttps://bun.sh/docs/runtime/bunfig#test-onlyfailures", + "type": "boolean", + "default": false + }, + "reporter": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-reporter", + "description": "Configure the test reporter settings.\nhttps://bun.sh/docs/runtime/bunfig#test-reporter", + "type": "object", + "additionalProperties": false, + "properties": { + "dots": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-reporter-dots", + "description": "Enable the dots reporter. Default `false`\nhttps://bun.sh/docs/runtime/bunfig#test-reporter-dots", + "type": "boolean", + "default": false + }, + "junit": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-reporter-junit", + "description": "Enable JUnit XML reporting and set the output file path.\nhttps://bun.sh/docs/runtime/bunfig#test-reporter-junit", + "type": "string", + "examples": ["test-results.xml"] + } + } + }, + "timeout": { + "$comment": "https://bun.com/docs/test/configuration#default-timeout", + "description": "Set the default timeout in milliseconds for all tests. This can be overridden by individual tests. Default `5000`\nhttps://bun.com/docs/test/configuration#default-timeout", + "type": "integer", + "minimum": 0, + "default": 5000, + "examples": [5000] + } + } + }, + "install": { + "$comment": "https://bun.sh/docs/runtime/bunfig#package-manager", + "description": "Package management is a complex issue; to support a range of use cases, the behavior of `bun install` can be configured under the `[install]` section\nhttps://bun.sh/docs/runtime/bunfig#package-manager", + "type": "object", + "additionalProperties": false, + "properties": { + "optional": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-optional", + "description": "Whether to install optional dependencies. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-optional", + "type": "boolean", + "default": true + }, + "dev": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-dev", + "description": "Whether to install development dependencies. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-dev", + "type": "boolean", + "default": true + }, + "peer": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-peer", + "description": "Whether to install peer dependencies. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-peer", + "type": "boolean", + "default": true + }, + "production": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-production", + "description": "Whether bun install will run in \"production mode\". Default `false`\n\nIn production mode, `\"devDependencies\"` are not installed. You can use `--production` in the CLI to override this setting\nhttps://bun.sh/docs/runtime/bunfig#install-production", + "type": "boolean", + "default": false + }, + "exact": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-exact", + "description": "Whether to set an exact version in package.json. Default `false`\n\nBy default Bun uses caret ranges; if the `latest` version of a package is `2.4.1`, the version range in your `package.json` will be `^2.4.1`. This indicates that any version from `2.4.1` up to (but not including) `3.0.0` is acceptable\nhttps://bun.sh/docs/runtime/bunfig#install-exact", + "type": "boolean", + "default": false + }, + "saveTextLockfile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-savetextlockfile", + "description": "If false, generate a binary `bun.lockb` instead of a text-based `bun.lock` file when running `bun install` and no lockfile is present\nDefault `true` (since Bun v1.2)\nhttps://bun.sh/docs/runtime/bunfig#install-savetextlockfile", + "type": "boolean", + "default": true + }, + "auto": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-auto", + "description": "To configure Bun's package auto-install behavior. Default `\"auto\"` — when no `node_modules` folder is found, Bun will automatically install dependencies on the fly during execution\nhttps://bun.sh/docs/runtime/bunfig#install-auto", + "type": "string", + "enum": ["auto", "force", "disable", "fallback"], + "default": "auto" + }, + "frozenLockfile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-frozenlockfile", + "description": "When true, `bun install` will not update `bun.lock`. Default `false`. If `package.json` and the existing `bun.lock` are not in agreement, this will error\nhttps://bun.sh/docs/runtime/bunfig#install-frozenlockfile", + "type": "boolean", + "default": false + }, + "dryRun": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-dryrun", + "description": "Whether `bun install` will actually install dependencies. Default `false`. When true, it's equivalent to setting `--dry-run` on all `bun install` commands\nhttps://bun.sh/docs/runtime/bunfig#install-dryrun", + "type": "boolean", + "default": false + }, + "globalDir": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-globaldir", + "description": "To configure the directory where Bun puts globally installed packages\nhttps://bun.sh/docs/runtime/bunfig#install-globaldir", + "type": "string", + "default": "~/.bun/install/global", + "examples": ["~/.bun/install/global"] + }, + "globalBinDir": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-globalbindir", + "description": "To configure the directory where Bun installs globally installed binaries and CLIs\nhttps://bun.sh/docs/runtime/bunfig#install-globalbindir", + "type": "string", + "default": "~/.bun/bin", + "examples": ["~/.bun/bin"] + }, + "registry": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-registry", + "description": "The default registry is `https://registry.npmjs.org/`. This can be globally configured in `bunfig.toml`\nhttps://bun.sh/docs/runtime/bunfig#install-registry", + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "url": { + "description": "The URL of the registry\nhttps://bun.sh/docs/runtime/bunfig#install-registry", + "type": "string", + "examples": ["https://registry.npmjs.org"] + }, + "token": { + "description": "The token to use for authentication\nhttps://bun.sh/docs/runtime/bunfig#install-registry", + "type": "string", + "examples": ["123456"] + } + } + } + ], + "default": "https://registry.npmjs.org/", + "examples": [ + "https://registry.npmjs.org", + "https://username:password@registry.npmjs.org", + { "url": "https://registry.npmjs.org", "token": "123456" } + ] + }, + "linkWorkspacePackages": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-linkworkspacepackages", + "description": "Whether to link workspace packages from the monorepo root to their respective `node_modules` directories. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-linkworkspacepackages", + "type": "boolean", + "default": true + }, + "scopes": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-scopes", + "description": "To configure a registry for a particular scope (e.g. `@myorg/`) use `install.scopes`. You can reference environment variables with `$variable` notation\nhttps://bun.sh/docs/runtime/bunfig#install-scopes", + "type": "object", + "additionalProperties": true + }, + "ca": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "description": "The CA certificate as a string\nhttps://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "type": "string", + "examples": [ + "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----" + ] + }, + "cafile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "description": "A path to a CA certificate file. The file can contain multiple certificates.\nhttps://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "type": "string", + "examples": ["path/to/cafile"] + }, + "cache": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-cache", + "description": "To configure the cache behavior\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "object", + "additionalProperties": false, + "properties": { + "dir": { + "description": "The directory to use for the cache\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "string", + "default": "~/.bun/install/cache", + "examples": ["~/.bun/install/cache"] + }, + "disable": { + "description": "When true, don't load from the global cache.\n\nBun may still write to `node_modules/.cache`\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "boolean", + "default": false + }, + "disableManifest": { + "description": "When true, always resolve the latest versions from the registry\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "boolean", + "default": false + } + } + }, + "lockfile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-lockfile", + "description": "To configure lockfile behavior, use the `install.lockfile` section\nhttps://bun.sh/docs/runtime/bunfig#install-lockfile", + "type": "object", + "additionalProperties": false, + "properties": { + "save": { + "description": "Whether to generate a lockfile on `bun install`. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-lockfile", + "type": "boolean", + "default": true + }, + "print": { + "description": "Whether to generate a non-Bun lockfile alongside `bun.lock`. (A `bun.lock` will always be created.) Currently `\"yarn\"` is the only supported value\nhttps://bun.sh/docs/runtime/bunfig#install-lockfile", + "type": "string", + "const": "yarn" + } + } + }, + "linker": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-linker", + "description": "Configure the default linker strategy. Default `\"hoisted\"`\nhttps://bun.sh/docs/runtime/bunfig#install-linker", + "type": "string", + "enum": ["hoisted", "isolated"], + "default": "hoisted" + }, + "security": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-security-scanner", + "description": "Security configuration for package installation\nhttps://bun.sh/docs/runtime/bunfig#install-security-scanner", + "type": "object", + "additionalProperties": false, + "properties": { + "scanner": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-security-scanner", + "description": "The security scanner to use during certain package manager commands.\nhttps://bun.sh/docs/runtime/bunfig#install-security-scanner", + "type": "string", + "examples": ["@acme/bun-security-scanner"] + } + } + }, + "minimumReleaseAge": { + "$comment": "https://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "description": "Configure a minimum age (in seconds) for npm package versions. Package versions published more recently than this threshold will be filtered out during installation. Default is null (disabled)\nhttps://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "type": "integer", + "minimum": 0, + "examples": [259200] + }, + "minimumReleaseAgeExcludes": { + "$comment": "https://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "description": "Packages that bypass the minimumReleaseAge requirement and can install immediately.\nhttps://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "type": "array", + "items": { "type": "string" }, + "examples": [["@types/bun", "typescript"]] + } + } + }, + "run": { + "$comment": "https://bun.sh/docs/runtime/bunfig#bun-run", + "description": "The `bun run` command can be configured under the `[run]` section. These apply to the `bun run` command and the `bun` command when running a file or executable or script.\n\nCurrently, `bunfig.toml` isn't always automatically loaded for `bun run` in a local project (it does check for a global `bunfig.toml`), so you might still need to pass `-c` or `-c=bunfig.toml` to use these settings\nhttps://bun.sh/docs/runtime/bunfig#bun-run", + "type": "object", + "additionalProperties": false, + "properties": { + "shell": { + "$comment": "https://bun.sh/docs/runtime/bunfig#run-shell-use-the-system-shell-or-bun-s-shell", + "description": "The shell to use when running package.json scripts via `bun run` or `bun`. On Windows, this defaults to `\"bun\"` and on other platforms it defaults to `\"system\"`\nhttps://bun.sh/docs/runtime/bunfig#run-shell-use-the-system-shell-or-bun-s-shell", + "type": "string", + "enum": ["system", "bun"] + }, + "bun": { + "$comment": "https://bun.sh/docs/runtime/bunfig#run-bun-auto-alias-node-to-bun", + "type": "boolean", + "description": "Auto alias `node` to `bun`\n\nWhen `true`, this prepends `$PATH` with a `node` symlink that points to the `bun` binary for all scripts or executables invoked by `bun run` or `bun`\nThis means that if you have a script that runs `node`, it will actually run `bun` instead, without needing to change your script. This works recursively, so if your script runs another script that runs `node`, it will also run `bun` instead. This applies to shebangs as well, so if you have a script with a shebang that points to `node`, it will actually run `bun` instead.\nBy default, this is enabled if `node` is not already in your `$PATH`\nhttps://bun.sh/docs/runtime/bunfig#run-bun-auto-alias-node-to-bun", + "default": false, + "examples": [true] + }, + "silent": { + "$comment": "https://bun.sh/docs/runtime/bunfig#run-silent-suppress-reporting-the-command-being-run", + "type": "boolean", + "description": "When `true`, suppresses the output of the command being run by `bun run` or `bun`\nhttps://bun.sh/docs/runtime/bunfig#run-silent-suppress-reporting-the-command-being-run", + "default": false + } + } + } + } +} diff --git a/tests/testdata/json_schemastore_bunfig_options_update/old.json b/tests/testdata/json_schemastore_bunfig_options_update/old.json new file mode 100644 index 0000000..bff039c --- /dev/null +++ b/tests/testdata/json_schemastore_bunfig_options_update/old.json @@ -0,0 +1,420 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/bunfig.json", + "title": "Bun configuration", + "description": "Bun configuration schema for `bunfig.toml`. See https://bun.sh/docs/runtime/bunfig", + "additionalProperties": true, + "type": "object", + "properties": { + "preload": { + "$comment": "https://bun.sh/docs/runtime/bunfig#preload", + "description": "An array or string of scripts/plugins to run before running the file or script\nhttps://bun.sh/docs/runtime/bunfig#preload", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "examples": [["./preload.ts"]] + }, + "jsx": { + "$comment": "https://bun.sh/docs/runtime/bunfig#jsx", + "description": "Configure how Bun handles JSX. You can also set these fields in the `compilerOptions` of your `tsconfig.json`, but they are supported here as well for non-TypeScript projects\nhttps://bun.sh/docs/runtime/bunfig#jsx\nhttps://www.typescriptlang.org/tsconfig/#jsx", + "type": "string", + "examples": ["react"] + }, + "jsxFactory": { + "$comment": "https://www.typescriptlang.org/tsconfig#jsxFactory", + "description": "Specify the function that is used to create JSX elements\nhttps://www.typescriptlang.org/tsconfig#jsxFactory", + "type": "string", + "examples": ["h"] + }, + "jsxFragment": { + "$comment": "https://www.typescriptlang.org/tsconfig#jsxFragment", + "description": "Specify the function that is used for JSX fragments\nhttps://www.typescriptlang.org/tsconfig#jsxFragment", + "type": "string", + "examples": ["Fragment"] + }, + "jsxImportSource": { + "$comment": "https://www.typescriptlang.org/tsconfig#jsxImportSource", + "description": "Specify the module specifier to be used for importing the JSX factory functions\nhttps://www.typescriptlang.org/tsconfig#jsxImportSource", + "type": "string", + "examples": ["react"] + }, + "smol": { + "$comment": "https://bun.sh/docs/runtime/bunfig#smol", + "description": "Enable `smol` mode. This reduces memory usage at the cost of performance\nhttps://bun.sh/docs/runtime/bunfig#smol", + "type": "boolean", + "default": false + }, + "logLevel": { + "$comment": "https://bun.sh/docs/runtime/bunfig#loglevel", + "description": "Set the log level. This can be one of `\"debug\"`, `\"warn\"`, or `\"error\"`\nhttps://bun.sh/docs/runtime/bunfig#loglevel", + "type": "string", + "enum": ["debug", "warn", "error"], + "examples": ["debug"] + }, + "define": { + "$comment": "https://bun.sh/docs/runtime/bunfig#define", + "description": "The `define` field allows you to replace certain global identifiers with constant expressions. Bun will replace any usage of the identifier with the expression. The expression should be a JSON string\nhttps://bun.sh/docs/runtime/bunfig#define", + "type": "object", + "additionalProperties": true + }, + "loader": { + "$comment": "https://bun.sh/docs/runtime/bunfig#loader", + "description": "Configure how Bun maps file extensions to loaders. This is useful for loading files that aren't natively supported by Bun\nhttps://bun.sh/docs/runtime/bunfig#loader", + "type": "object", + "additionalProperties": { + "type": "string", + "enum": [ + "jsx", + "js", + "ts", + "tsx", + "css", + "file", + "json", + "toml", + "wasm", + "napi", + "base64", + "dataurl", + "text" + ] + } + }, + "telemetry": { + "$comment": "https://bun.sh/docs/runtime/bunfig#telemetry", + "description": "The `telemetry` field permit to enable/disable the analytics records. Bun records bundle timings (so we can answer with data, \"is Bun getting faster?\") and feature usage (e.g., \"are people actually using macros?\"). The request body size is about 60 bytes, so it's not a lot of data. By default the telemetry is enabled.\nhttps://bun.sh/docs/runtime/bunfig#telemetry", + "type": "boolean", + "default": true + }, + "test": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-runner", + "description": "Test runner\nhttps://bun.sh/docs/runtime/bunfig#test-runner", + "type": "object", + "additionalProperties": false, + "properties": { + "root": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-root", + "description": "The root directory to run tests from. Default `.`\nhttps://bun.sh/docs/runtime/bunfig#test-root", + "type": "string", + "examples": ["./__tests__"] + }, + "preload": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-preload", + "description": "Same as the top-level `preload` field, but only applies to `bun test`\nhttps://bun.sh/docs/runtime/bunfig#test-preload", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "examples": [["./setup.ts"]] + }, + "smol": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-smol", + "description": "Same as the top-level `smol` field, but only applies to `bun test`\nhttps://bun.sh/docs/runtime/bunfig#test-smol", + "type": "boolean", + "default": false + }, + "coverage": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coverage", + "description": "Enables coverage reporting. Default `false`. Use `--coverage` to override\nhttps://bun.sh/docs/runtime/bunfig#test-coverage", + "type": "boolean", + "default": false + }, + "coveragePathIgnorePatterns": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragepathignorepatterns", + "description": "Exclude specific files or file patterns from coverage reports using glob patterns. Can be a single string pattern or an array of patterns.\nhttps://bun.sh/docs/runtime/bunfig#test-coveragepathignorepatterns", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "coverageThreshold": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragethreshold", + "description": "To specify a coverage threshold. By default, no threshold is set. If your test suite does not meet or exceed this threshold, `bun test` will exit with a non-zero exit code to indicate the failure\nhttps://bun.sh/docs/runtime/bunfig#test-coveragethreshold", + "oneOf": [ + { "type": "number" }, + { + "type": "object", + "additionalProperties": true + } + ], + "examples": [0.9, { "line": 0.7, "function": 0.8, "statement": 0.9 }] + }, + "coverageSkipTestFiles": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coverageskiptestfiles", + "description": "Whether to skip test files when computing coverage statistics. Default false\nhttps://bun.sh/docs/runtime/bunfig#test-coverageskiptestfiles", + "type": "boolean", + "default": false + }, + "coverageReporter": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragereporter", + "description": "By default, coverage reports will be printed to the console. For persistent code coverage reports in CI environments and for other tools use `lcov`\nhttps://bun.sh/docs/runtime/bunfig#test-coveragereporter", + "type": "array", + "items": { + "type": "string", + "enum": ["text", "lcov"] + }, + "default": ["text"] + }, + "coverageDir": { + "$comment": "https://bun.sh/docs/runtime/bunfig#test-coveragedir", + "description": "Set path where coverage reports will be saved. Please notice, that it works only for persistent `coverageReporter` like `lcov`\nhttps://bun.sh/docs/runtime/bunfig#test-coveragedir", + "type": "string", + "default": "coverage" + }, + "timeout": { + "$comment": "https://bun.com/docs/test/configuration#default-timeout", + "description": "Set the default timeout in milliseconds for all tests. This can be overridden by individual tests. Default `5000`\nhttps://bun.com/docs/test/configuration#default-timeout", + "type": "integer", + "minimum": 0, + "default": 5000, + "examples": [5000] + } + } + }, + "install": { + "$comment": "https://bun.sh/docs/runtime/bunfig#package-manager", + "description": "Package management is a complex issue; to support a range of use cases, the behavior of `bun install` can be configured under the `[install]` section\nhttps://bun.sh/docs/runtime/bunfig#package-manager", + "type": "object", + "additionalProperties": false, + "properties": { + "optional": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-optional", + "description": "Whether to install optional dependencies. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-optional", + "type": "boolean", + "default": true + }, + "dev": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-dev", + "description": "Whether to install development dependencies. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-dev", + "type": "boolean", + "default": true + }, + "peer": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-peer", + "description": "Whether to install peer dependencies. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-peer", + "type": "boolean", + "default": true + }, + "production": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-production", + "description": "Whether bun install will run in \"production mode\". Default `false`\n\nIn production mode, `\"devDependencies\"` are not installed. You can use `--production` in the CLI to override this setting\nhttps://bun.sh/docs/runtime/bunfig#install-production", + "type": "boolean", + "default": false + }, + "exact": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-exact", + "description": "Whether to set an exact version in package.json. Default `false`\n\nBy default Bun uses caret ranges; if the `latest` version of a package is `2.4.1`, the version range in your `package.json` will be `^2.4.1`. This indicates that any version from `2.4.1` up to (but not including) `3.0.0` is acceptable\nhttps://bun.sh/docs/runtime/bunfig#install-exact", + "type": "boolean", + "default": false + }, + "saveTextLockfile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-savetextlockfile", + "description": "If false, generate a binary `bun.lockb` instead of a text-based `bun.lock` file when running `bun install` and no lockfile is present\nDefault `true` (since Bun v1.2)\nhttps://bun.sh/docs/runtime/bunfig#install-savetextlockfile", + "type": "boolean", + "default": true + }, + "auto": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-auto", + "description": "To configure Bun's package auto-install behavior. Default `\"auto\"` — when no `node_modules` folder is found, Bun will automatically install dependencies on the fly during execution\nhttps://bun.sh/docs/runtime/bunfig#install-auto", + "type": "string", + "enum": ["auto", "force", "disable", "fallback"], + "default": "auto" + }, + "frozenLockfile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-frozenlockfile", + "description": "When true, `bun install` will not update `bun.lock`. Default `false`. If `package.json` and the existing `bun.lock` are not in agreement, this will error\nhttps://bun.sh/docs/runtime/bunfig#install-frozenlockfile", + "type": "boolean", + "default": false + }, + "dryRun": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-dryrun", + "description": "Whether `bun install` will actually install dependencies. Default `false`. When true, it's equivalent to setting `--dry-run` on all `bun install` commands\nhttps://bun.sh/docs/runtime/bunfig#install-dryrun", + "type": "boolean", + "default": false + }, + "globalDir": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-globaldir", + "description": "To configure the directory where Bun puts globally installed packages\nhttps://bun.sh/docs/runtime/bunfig#install-globaldir", + "type": "string", + "default": "~/.bun/install/global", + "examples": ["~/.bun/install/global"] + }, + "globalBinDir": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-globalbindir", + "description": "To configure the directory where Bun installs globally installed binaries and CLIs\nhttps://bun.sh/docs/runtime/bunfig#install-globalbindir", + "type": "string", + "default": "~/.bun/bin", + "examples": ["~/.bun/bin"] + }, + "registry": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-registry", + "description": "The default registry is `https://registry.npmjs.org/`. This can be globally configured in `bunfig.toml`\nhttps://bun.sh/docs/runtime/bunfig#install-registry", + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "url": { + "description": "The URL of the registry\nhttps://bun.sh/docs/runtime/bunfig#install-registry", + "type": "string", + "examples": ["https://registry.npmjs.org"] + }, + "token": { + "description": "The token to use for authentication\nhttps://bun.sh/docs/runtime/bunfig#install-registry", + "type": "string", + "examples": ["123456"] + } + } + } + ], + "default": "https://registry.npmjs.org/", + "examples": [ + "https://registry.npmjs.org", + "https://username:password@registry.npmjs.org", + { "url": "https://registry.npmjs.org", "token": "123456" } + ] + }, + "scopes": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-scopes", + "description": "To configure a registry for a particular scope (e.g. `@myorg/`) use `install.scopes`. You can reference environment variables with `$variable` notation\nhttps://bun.sh/docs/runtime/bunfig#install-scopes", + "type": "object", + "additionalProperties": true + }, + "ca": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "description": "The CA certificate as a string\nhttps://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "type": "string", + "examples": [ + "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----" + ] + }, + "cafile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "description": "A path to a CA certificate file. The file can contain multiple certificates.\nhttps://bun.sh/docs/runtime/bunfig#install-ca-and-install-cafile", + "type": "string", + "examples": ["path/to/cafile"] + }, + "cache": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-cache", + "description": "To configure the cache behavior\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "object", + "additionalProperties": false, + "properties": { + "dir": { + "description": "The directory to use for the cache\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "string", + "default": "~/.bun/install/cache", + "examples": ["~/.bun/install/cache"] + }, + "disable": { + "description": "When true, don't load from the global cache.\n\nBun may still write to `node_modules/.cache`\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "boolean", + "default": false + }, + "disableManifest": { + "description": "When true, always resolve the latest versions from the registry\nhttps://bun.sh/docs/runtime/bunfig#install-cache", + "type": "boolean", + "default": false + } + } + }, + "lockfile": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-lockfile", + "description": "To configure lockfile behavior, use the `install.lockfile` section\nhttps://bun.sh/docs/runtime/bunfig#install-lockfile", + "type": "object", + "additionalProperties": false, + "properties": { + "save": { + "description": "Whether to generate a lockfile on `bun install`. Default `true`\nhttps://bun.sh/docs/runtime/bunfig#install-lockfile", + "type": "boolean", + "default": true + }, + "print": { + "description": "Whether to generate a non-Bun lockfile alongside `bun.lock`. (A `bun.lock` will always be created.) Currently `\"yarn\"` is the only supported value\nhttps://bun.sh/docs/runtime/bunfig#install-lockfile", + "type": "string", + "const": "yarn" + } + } + }, + "linker": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-linker", + "description": "Configure the default linker strategy. Default `\"hoisted\"`\nhttps://bun.sh/docs/runtime/bunfig#install-linker", + "type": "string", + "enum": ["hoisted", "isolated"], + "default": "hoisted" + }, + "security": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-security-scanner", + "description": "Security configuration for package installation\nhttps://bun.sh/docs/runtime/bunfig#install-security-scanner", + "type": "object", + "additionalProperties": false, + "properties": { + "scanner": { + "$comment": "https://bun.sh/docs/runtime/bunfig#install-security-scanner", + "description": "The security scanner to use during certain package manager commands.\nhttps://bun.sh/docs/runtime/bunfig#install-security-scanner", + "type": "string", + "examples": ["@acme/bun-security-scanner"] + } + } + }, + "minimumReleaseAge": { + "$comment": "https://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "description": "Configure a minimum age (in seconds) for npm package versions. Package versions published more recently than this threshold will be filtered out during installation. Default is null (disabled)\nhttps://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "type": "integer", + "minimum": 0, + "examples": [259200] + }, + "minimumReleaseAgeExcludes": { + "$comment": "https://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "description": "Packages that bypass the minimumReleaseAge requirement and can install immediately.\nhttps://bun.com/docs/runtime/bunfig#install-minimumreleaseage", + "type": "array", + "items": { "type": "string" }, + "examples": [["@types/bun", "typescript"]] + } + } + }, + "run": { + "$comment": "https://bun.sh/docs/runtime/bunfig#bun-run", + "description": "The `bun run` command can be configured under the `[run]` section. These apply to the `bun run` command and the `bun` command when running a file or executable or script.\n\nCurrently, `bunfig.toml` isn't always automatically loaded for `bun run` in a local project (it does check for a global `bunfig.toml`), so you might still need to pass `-c` or `-c=bunfig.toml` to use these settings\nhttps://bun.sh/docs/runtime/bunfig#bun-run", + "type": "object", + "additionalProperties": false, + "properties": { + "shell": { + "$comment": "https://bun.sh/docs/runtime/bunfig#run-shell-use-the-system-shell-or-bun-s-shell", + "description": "The shell to use when running package.json scripts via `bun run` or `bun`. On Windows, this defaults to `\"bun\"` and on other platforms it defaults to `\"system\"`\nhttps://bun.sh/docs/runtime/bunfig#run-shell-use-the-system-shell-or-bun-s-shell", + "type": "string", + "enum": ["system", "bun"] + }, + "bun": { + "$comment": "https://bun.sh/docs/runtime/bunfig#run-bun-auto-alias-node-to-bun", + "type": "boolean", + "description": "Auto alias `node` to `bun`\n\nWhen `true`, this prepends `$PATH` with a `node` symlink that points to the `bun` binary for all scripts or executables invoked by `bun run` or `bun`\nThis means that if you have a script that runs `node`, it will actually run `bun` instead, without needing to change your script. This works recursively, so if your script runs another script that runs `node`, it will also run `bun` instead. This applies to shebangs as well, so if you have a script with a shebang that points to `node`, it will actually run `bun` instead.\nBy default, this is enabled if `node` is not already in your `$PATH`\nhttps://bun.sh/docs/runtime/bunfig#run-bun-auto-alias-node-to-bun", + "default": false, + "examples": [true] + }, + "silent": { + "$comment": "https://bun.sh/docs/runtime/bunfig#run-silent-suppress-reporting-the-command-being-run", + "type": "boolean", + "description": "When `true`, suppresses the output of the command being run by `bun run` or `bun`\nhttps://bun.sh/docs/runtime/bunfig#run-silent-suppress-reporting-the-command-being-run", + "default": false + } + } + } + } +} diff --git a/tests/testdata/json_schemastore_cargo_workspace_members/expected.json b/tests/testdata/json_schemastore_cargo_workspace_members/expected.json new file mode 100644 index 0000000..b60c709 --- /dev/null +++ b/tests/testdata/json_schemastore_cargo_workspace_members/expected.json @@ -0,0 +1,9220 @@ +{ + "version": "v1", + "actions": [ + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2 + ], + "type": "pair", + "start_byte": 14995, + "end_byte": 15145 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1 + ], + "type": "object", + "start_byte": 14855, + "end_byte": 15299 + }, + "position": 2 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2, + 0 + ], + "type": "string", + "label": "\"oneOf\"", + "start_byte": 14995, + "end_byte": 15002 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2 + ], + "type": "pair", + "start_byte": 14995, + "end_byte": 15145 + }, + "position": 0 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2, + 1, + 1 + ], + "type": "object", + "start_byte": 15117, + "end_byte": 15137 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2, + 1 + ], + "type": "array", + "start_byte": 15004, + "end_byte": 15145 + }, + "position": 1, + "subtree": true + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2 + ], + "type": "pair", + "start_byte": 14995, + "end_byte": 15011 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2, + 1, + 0 + ], + "type": "object", + "start_byte": 15014, + "end_byte": 15107 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 3, + 1, + 6, + 1 + ], + "type": "object", + "start_byte": 14855, + "end_byte": 15216 + }, + "old_position": 2, + "subtree": true, + "dest_start_byte": 15026, + "dest_end_byte": 15042, + "group_id": "group-1" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 3, + 1, + 6, + 1, + 3 + ], + "type": "pair", + "start_byte": 15019, + "end_byte": 15062 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 6, + 1, + 2, + 1, + 0 + ], + "type": "object", + "start_byte": 15014, + "end_byte": 15107 + }, + "position": 1, + "old_parent": { + "tree": "before", + "path": [ + 0, + 3, + 1, + 6, + 1 + ], + "type": "object", + "start_byte": 14855, + "end_byte": 15216 + }, + "old_position": 3, + "subtree": true, + "dest_start_byte": 15054, + "dest_end_byte": 15097, + "group_id": "group-1" + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": -1, + "right_line": 267 + }, + { + "left_line": -1, + "right_line": 268 + }, + { + "left_line": 267, + "right_line": 269 + }, + { + "left_line": 268, + "right_line": 270 + }, + { + "left_line": -1, + "right_line": 271 + }, + { + "left_line": -1, + "right_line": 272 + }, + { + "left_line": -1, + "right_line": 273 + }, + { + "left_line": 269, + "right_line": 274 + }, + { + "left_line": 270, + "right_line": 275 + }, + { + "left_line": 271, + "right_line": 276 + }, + { + "left_line": 272, + "right_line": 277 + }, + { + "left_line": 273, + "right_line": 278 + }, + { + "left_line": 274, + "right_line": 279 + }, + { + "left_line": 275, + "right_line": 280 + }, + { + "left_line": 276, + "right_line": 281 + }, + { + "left_line": 277, + "right_line": 282 + }, + { + "left_line": 278, + "right_line": 283 + }, + { + "left_line": 279, + "right_line": 284 + }, + { + "left_line": 280, + "right_line": 285 + }, + { + "left_line": 281, + "right_line": 286 + }, + { + "left_line": 282, + "right_line": 287 + }, + { + "left_line": 283, + "right_line": 288 + }, + { + "left_line": 284, + "right_line": 289 + }, + { + "left_line": 285, + "right_line": 290 + }, + { + "left_line": 286, + "right_line": 291 + }, + { + "left_line": 287, + "right_line": 292 + }, + { + "left_line": 288, + "right_line": 293 + }, + { + "left_line": 289, + "right_line": 294 + }, + { + "left_line": 290, + "right_line": 295 + }, + { + "left_line": 291, + "right_line": 296 + }, + { + "left_line": 292, + "right_line": 297 + }, + { + "left_line": 293, + "right_line": 298 + }, + { + "left_line": 294, + "right_line": 299 + }, + { + "left_line": 295, + "right_line": 300 + }, + { + "left_line": 296, + "right_line": 301 + }, + { + "left_line": 297, + "right_line": 302 + }, + { + "left_line": 298, + "right_line": 303 + }, + { + "left_line": 299, + "right_line": 304 + }, + { + "left_line": 300, + "right_line": 305 + }, + { + "left_line": 301, + "right_line": 306 + }, + { + "left_line": 302, + "right_line": 307 + }, + { + "left_line": 303, + "right_line": 308 + }, + { + "left_line": 304, + "right_line": 309 + }, + { + "left_line": 305, + "right_line": 310 + }, + { + "left_line": 306, + "right_line": 311 + }, + { + "left_line": 307, + "right_line": 312 + }, + { + "left_line": 308, + "right_line": 313 + }, + { + "left_line": 309, + "right_line": 314 + }, + { + "left_line": 310, + "right_line": 315 + }, + { + "left_line": 311, + "right_line": 316 + }, + { + "left_line": 312, + "right_line": 317 + }, + { + "left_line": 313, + "right_line": 318 + }, + { + "left_line": 314, + "right_line": 319 + }, + { + "left_line": 315, + "right_line": 320 + }, + { + "left_line": 316, + "right_line": 321 + }, + { + "left_line": 317, + "right_line": 322 + }, + { + "left_line": 318, + "right_line": 323 + }, + { + "left_line": 319, + "right_line": 324 + }, + { + "left_line": 320, + "right_line": 325 + }, + { + "left_line": 321, + "right_line": 326 + }, + { + "left_line": 322, + "right_line": 327 + }, + { + "left_line": 323, + "right_line": 328 + }, + { + "left_line": 324, + "right_line": 329 + }, + { + "left_line": 325, + "right_line": 330 + }, + { + "left_line": 326, + "right_line": 331 + }, + { + "left_line": 327, + "right_line": 332 + }, + { + "left_line": 328, + "right_line": 333 + }, + { + "left_line": 329, + "right_line": 334 + }, + { + "left_line": 330, + "right_line": 335 + }, + { + "left_line": 331, + "right_line": 336 + }, + { + "left_line": 332, + "right_line": 337 + }, + { + "left_line": 333, + "right_line": 338 + }, + { + "left_line": 334, + "right_line": 339 + }, + { + "left_line": 335, + "right_line": 340 + }, + { + "left_line": 336, + "right_line": 341 + }, + { + "left_line": 337, + "right_line": 342 + }, + { + "left_line": 338, + "right_line": 343 + }, + { + "left_line": 339, + "right_line": 344 + }, + { + "left_line": 340, + "right_line": 345 + }, + { + "left_line": 341, + "right_line": 346 + }, + { + "left_line": 342, + "right_line": 347 + }, + { + "left_line": 343, + "right_line": 348 + }, + { + "left_line": 344, + "right_line": 349 + }, + { + "left_line": 345, + "right_line": 350 + }, + { + "left_line": 346, + "right_line": 351 + }, + { + "left_line": 347, + "right_line": 352 + }, + { + "left_line": 348, + "right_line": 353 + }, + { + "left_line": 349, + "right_line": 354 + }, + { + "left_line": 350, + "right_line": 355 + }, + { + "left_line": 351, + "right_line": 356 + }, + { + "left_line": 352, + "right_line": 357 + }, + { + "left_line": 353, + "right_line": 358 + }, + { + "left_line": 354, + "right_line": 359 + }, + { + "left_line": 355, + "right_line": 360 + }, + { + "left_line": 356, + "right_line": 361 + }, + { + "left_line": 357, + "right_line": 362 + }, + { + "left_line": 358, + "right_line": 363 + }, + { + "left_line": 359, + "right_line": 364 + }, + { + "left_line": 360, + "right_line": 365 + }, + { + "left_line": 361, + "right_line": 366 + }, + { + "left_line": 362, + "right_line": 367 + }, + { + "left_line": 363, + "right_line": 368 + }, + { + "left_line": 364, + "right_line": 369 + }, + { + "left_line": 365, + "right_line": 370 + }, + { + "left_line": 366, + "right_line": 371 + }, + { + "left_line": 367, + "right_line": 372 + }, + { + "left_line": 368, + "right_line": 373 + }, + { + "left_line": 369, + "right_line": 374 + }, + { + "left_line": 370, + "right_line": 375 + }, + { + "left_line": 371, + "right_line": 376 + }, + { + "left_line": 372, + "right_line": 377 + }, + { + "left_line": 373, + "right_line": 378 + }, + { + "left_line": 374, + "right_line": 379 + }, + { + "left_line": 375, + "right_line": 380 + }, + { + "left_line": 376, + "right_line": 381 + }, + { + "left_line": 377, + "right_line": 382 + }, + { + "left_line": 378, + "right_line": 383 + }, + { + "left_line": 379, + "right_line": 384 + }, + { + "left_line": 380, + "right_line": 385 + }, + { + "left_line": 381, + "right_line": 386 + }, + { + "left_line": 382, + "right_line": 387 + }, + { + "left_line": 383, + "right_line": 388 + }, + { + "left_line": 384, + "right_line": 389 + }, + { + "left_line": 385, + "right_line": 390 + }, + { + "left_line": 386, + "right_line": 391 + }, + { + "left_line": 387, + "right_line": 392 + }, + { + "left_line": 388, + "right_line": 393 + }, + { + "left_line": 389, + "right_line": 394 + }, + { + "left_line": 390, + "right_line": 395 + }, + { + "left_line": 391, + "right_line": 396 + }, + { + "left_line": 392, + "right_line": 397 + }, + { + "left_line": 393, + "right_line": 398 + }, + { + "left_line": 394, + "right_line": 399 + }, + { + "left_line": 395, + "right_line": 400 + }, + { + "left_line": 396, + "right_line": 401 + }, + { + "left_line": 397, + "right_line": 402 + }, + { + "left_line": 398, + "right_line": 403 + }, + { + "left_line": 399, + "right_line": 404 + }, + { + "left_line": 400, + "right_line": 405 + }, + { + "left_line": 401, + "right_line": 406 + }, + { + "left_line": 402, + "right_line": 407 + }, + { + "left_line": 403, + "right_line": 408 + }, + { + "left_line": 404, + "right_line": 409 + }, + { + "left_line": 405, + "right_line": 410 + }, + { + "left_line": 406, + "right_line": 411 + }, + { + "left_line": 407, + "right_line": 412 + }, + { + "left_line": 408, + "right_line": 413 + }, + { + "left_line": 409, + "right_line": 414 + }, + { + "left_line": 410, + "right_line": 415 + }, + { + "left_line": 411, + "right_line": 416 + }, + { + "left_line": 412, + "right_line": 417 + }, + { + "left_line": 413, + "right_line": 418 + }, + { + "left_line": 414, + "right_line": 419 + }, + { + "left_line": 415, + "right_line": 420 + }, + { + "left_line": 416, + "right_line": 421 + }, + { + "left_line": 417, + "right_line": 422 + }, + { + "left_line": 418, + "right_line": 423 + }, + { + "left_line": 419, + "right_line": 424 + }, + { + "left_line": 420, + "right_line": 425 + }, + { + "left_line": 421, + "right_line": 426 + }, + { + "left_line": 422, + "right_line": 427 + }, + { + "left_line": 423, + "right_line": 428 + }, + { + "left_line": 424, + "right_line": 429 + }, + { + "left_line": 425, + "right_line": 430 + }, + { + "left_line": 426, + "right_line": 431 + }, + { + "left_line": 427, + "right_line": 432 + }, + { + "left_line": 428, + "right_line": 433 + }, + { + "left_line": 429, + "right_line": 434 + }, + { + "left_line": 430, + "right_line": 435 + }, + { + "left_line": 431, + "right_line": 436 + }, + { + "left_line": 432, + "right_line": 437 + }, + { + "left_line": 433, + "right_line": 438 + }, + { + "left_line": 434, + "right_line": 439 + }, + { + "left_line": 435, + "right_line": 440 + }, + { + "left_line": 436, + "right_line": 441 + }, + { + "left_line": 437, + "right_line": 442 + }, + { + "left_line": 438, + "right_line": 443 + }, + { + "left_line": 439, + "right_line": 444 + }, + { + "left_line": 440, + "right_line": 445 + }, + { + "left_line": 441, + "right_line": 446 + }, + { + "left_line": 442, + "right_line": 447 + }, + { + "left_line": 443, + "right_line": 448 + }, + { + "left_line": 444, + "right_line": 449 + }, + { + "left_line": 445, + "right_line": 450 + }, + { + "left_line": 446, + "right_line": 451 + }, + { + "left_line": 447, + "right_line": 452 + }, + { + "left_line": 448, + "right_line": 453 + }, + { + "left_line": 449, + "right_line": 454 + }, + { + "left_line": 450, + "right_line": 455 + }, + { + "left_line": 451, + "right_line": 456 + }, + { + "left_line": 452, + "right_line": 457 + }, + { + "left_line": 453, + "right_line": 458 + }, + { + "left_line": 454, + "right_line": 459 + }, + { + "left_line": 455, + "right_line": 460 + }, + { + "left_line": 456, + "right_line": 461 + }, + { + "left_line": 457, + "right_line": 462 + }, + { + "left_line": 458, + "right_line": 463 + }, + { + "left_line": 459, + "right_line": 464 + }, + { + "left_line": 460, + "right_line": 465 + }, + { + "left_line": 461, + "right_line": 466 + }, + { + "left_line": 462, + "right_line": 467 + }, + { + "left_line": 463, + "right_line": 468 + }, + { + "left_line": 464, + "right_line": 469 + }, + { + "left_line": 465, + "right_line": 470 + }, + { + "left_line": 466, + "right_line": 471 + }, + { + "left_line": 467, + "right_line": 472 + }, + { + "left_line": 468, + "right_line": 473 + }, + { + "left_line": 469, + "right_line": 474 + }, + { + "left_line": 470, + "right_line": 475 + }, + { + "left_line": 471, + "right_line": 476 + }, + { + "left_line": 472, + "right_line": 477 + }, + { + "left_line": 473, + "right_line": 478 + }, + { + "left_line": 474, + "right_line": 479 + }, + { + "left_line": 475, + "right_line": 480 + }, + { + "left_line": 476, + "right_line": 481 + }, + { + "left_line": 477, + "right_line": 482 + }, + { + "left_line": 478, + "right_line": 483 + }, + { + "left_line": 479, + "right_line": 484 + }, + { + "left_line": 480, + "right_line": 485 + }, + { + "left_line": 481, + "right_line": 486 + }, + { + "left_line": 482, + "right_line": 487 + }, + { + "left_line": 483, + "right_line": 488 + }, + { + "left_line": 484, + "right_line": 489 + }, + { + "left_line": 485, + "right_line": 490 + }, + { + "left_line": 486, + "right_line": 491 + }, + { + "left_line": 487, + "right_line": 492 + }, + { + "left_line": 488, + "right_line": 493 + }, + { + "left_line": 489, + "right_line": 494 + }, + { + "left_line": 490, + "right_line": 495 + }, + { + "left_line": 491, + "right_line": 496 + }, + { + "left_line": 492, + "right_line": 497 + }, + { + "left_line": 493, + "right_line": 498 + }, + { + "left_line": 494, + "right_line": 499 + }, + { + "left_line": 495, + "right_line": 500 + }, + { + "left_line": 496, + "right_line": 501 + }, + { + "left_line": 497, + "right_line": 502 + }, + { + "left_line": 498, + "right_line": 503 + }, + { + "left_line": 499, + "right_line": 504 + }, + { + "left_line": 500, + "right_line": 505 + }, + { + "left_line": 501, + "right_line": 506 + }, + { + "left_line": 502, + "right_line": 507 + }, + { + "left_line": 503, + "right_line": 508 + }, + { + "left_line": 504, + "right_line": 509 + }, + { + "left_line": 505, + "right_line": 510 + }, + { + "left_line": 506, + "right_line": 511 + }, + { + "left_line": 507, + "right_line": 512 + }, + { + "left_line": 508, + "right_line": 513 + }, + { + "left_line": 509, + "right_line": 514 + }, + { + "left_line": 510, + "right_line": 515 + }, + { + "left_line": 511, + "right_line": 516 + }, + { + "left_line": 512, + "right_line": 517 + }, + { + "left_line": 513, + "right_line": 518 + }, + { + "left_line": 514, + "right_line": 519 + }, + { + "left_line": 515, + "right_line": 520 + }, + { + "left_line": 516, + "right_line": 521 + }, + { + "left_line": 517, + "right_line": 522 + }, + { + "left_line": 518, + "right_line": 523 + }, + { + "left_line": 519, + "right_line": 524 + }, + { + "left_line": 520, + "right_line": 525 + }, + { + "left_line": 521, + "right_line": 526 + }, + { + "left_line": 522, + "right_line": 527 + }, + { + "left_line": 523, + "right_line": 528 + }, + { + "left_line": 524, + "right_line": 529 + }, + { + "left_line": 525, + "right_line": 530 + }, + { + "left_line": 526, + "right_line": 531 + }, + { + "left_line": 527, + "right_line": 532 + }, + { + "left_line": 528, + "right_line": 533 + }, + { + "left_line": 529, + "right_line": 534 + }, + { + "left_line": 530, + "right_line": 535 + }, + { + "left_line": 531, + "right_line": 536 + }, + { + "left_line": 532, + "right_line": 537 + }, + { + "left_line": 533, + "right_line": 538 + }, + { + "left_line": 534, + "right_line": 539 + }, + { + "left_line": 535, + "right_line": 540 + }, + { + "left_line": 536, + "right_line": 541 + }, + { + "left_line": 537, + "right_line": 542 + }, + { + "left_line": 538, + "right_line": 543 + }, + { + "left_line": 539, + "right_line": 544 + }, + { + "left_line": 540, + "right_line": 545 + }, + { + "left_line": 541, + "right_line": 546 + }, + { + "left_line": 542, + "right_line": 547 + }, + { + "left_line": 543, + "right_line": 548 + }, + { + "left_line": 544, + "right_line": 549 + }, + { + "left_line": 545, + "right_line": 550 + }, + { + "left_line": 546, + "right_line": 551 + }, + { + "left_line": 547, + "right_line": 552 + }, + { + "left_line": 548, + "right_line": 553 + }, + { + "left_line": 549, + "right_line": 554 + }, + { + "left_line": 550, + "right_line": 555 + }, + { + "left_line": 551, + "right_line": 556 + }, + { + "left_line": 552, + "right_line": 557 + }, + { + "left_line": 553, + "right_line": 558 + }, + { + "left_line": 554, + "right_line": 559 + }, + { + "left_line": 555, + "right_line": 560 + }, + { + "left_line": 556, + "right_line": 561 + }, + { + "left_line": 557, + "right_line": 562 + }, + { + "left_line": 558, + "right_line": 563 + }, + { + "left_line": 559, + "right_line": 564 + }, + { + "left_line": 560, + "right_line": 565 + }, + { + "left_line": 561, + "right_line": 566 + }, + { + "left_line": 562, + "right_line": 567 + }, + { + "left_line": 563, + "right_line": 568 + }, + { + "left_line": 564, + "right_line": 569 + }, + { + "left_line": 565, + "right_line": 570 + }, + { + "left_line": 566, + "right_line": 571 + }, + { + "left_line": 567, + "right_line": 572 + }, + { + "left_line": 568, + "right_line": 573 + }, + { + "left_line": 569, + "right_line": 574 + }, + { + "left_line": 570, + "right_line": 575 + }, + { + "left_line": 571, + "right_line": 576 + }, + { + "left_line": 572, + "right_line": 577 + }, + { + "left_line": 573, + "right_line": 578 + }, + { + "left_line": 574, + "right_line": 579 + }, + { + "left_line": 575, + "right_line": 580 + }, + { + "left_line": 576, + "right_line": 581 + }, + { + "left_line": 577, + "right_line": 582 + }, + { + "left_line": 578, + "right_line": 583 + }, + { + "left_line": 579, + "right_line": 584 + }, + { + "left_line": 580, + "right_line": 585 + }, + { + "left_line": 581, + "right_line": 586 + }, + { + "left_line": 582, + "right_line": 587 + }, + { + "left_line": 583, + "right_line": 588 + }, + { + "left_line": 584, + "right_line": 589 + }, + { + "left_line": 585, + "right_line": 590 + }, + { + "left_line": 586, + "right_line": 591 + }, + { + "left_line": 587, + "right_line": 592 + }, + { + "left_line": 588, + "right_line": 593 + }, + { + "left_line": 589, + "right_line": 594 + }, + { + "left_line": 590, + "right_line": 595 + }, + { + "left_line": 591, + "right_line": 596 + }, + { + "left_line": 592, + "right_line": 597 + }, + { + "left_line": 593, + "right_line": 598 + }, + { + "left_line": 594, + "right_line": 599 + }, + { + "left_line": 595, + "right_line": 600 + }, + { + "left_line": 596, + "right_line": 601 + }, + { + "left_line": 597, + "right_line": 602 + }, + { + "left_line": 598, + "right_line": 603 + }, + { + "left_line": 599, + "right_line": 604 + }, + { + "left_line": 600, + "right_line": 605 + }, + { + "left_line": 601, + "right_line": 606 + }, + { + "left_line": 602, + "right_line": 607 + }, + { + "left_line": 603, + "right_line": 608 + }, + { + "left_line": 604, + "right_line": 609 + }, + { + "left_line": 605, + "right_line": 610 + }, + { + "left_line": 606, + "right_line": 611 + }, + { + "left_line": 607, + "right_line": 612 + }, + { + "left_line": 608, + "right_line": 613 + }, + { + "left_line": 609, + "right_line": 614 + }, + { + "left_line": 610, + "right_line": 615 + }, + { + "left_line": 611, + "right_line": 616 + }, + { + "left_line": 612, + "right_line": 617 + }, + { + "left_line": 613, + "right_line": 618 + }, + { + "left_line": 614, + "right_line": 619 + }, + { + "left_line": 615, + "right_line": 620 + }, + { + "left_line": 616, + "right_line": 621 + }, + { + "left_line": 617, + "right_line": 622 + }, + { + "left_line": 618, + "right_line": 623 + }, + { + "left_line": 619, + "right_line": 624 + }, + { + "left_line": 620, + "right_line": 625 + }, + { + "left_line": 621, + "right_line": 626 + }, + { + "left_line": 622, + "right_line": 627 + }, + { + "left_line": 623, + "right_line": 628 + }, + { + "left_line": 624, + "right_line": 629 + }, + { + "left_line": 625, + "right_line": 630 + }, + { + "left_line": 626, + "right_line": 631 + }, + { + "left_line": 627, + "right_line": 632 + }, + { + "left_line": 628, + "right_line": 633 + }, + { + "left_line": 629, + "right_line": 634 + }, + { + "left_line": 630, + "right_line": 635 + }, + { + "left_line": 631, + "right_line": 636 + }, + { + "left_line": 632, + "right_line": 637 + }, + { + "left_line": 633, + "right_line": 638 + }, + { + "left_line": 634, + "right_line": 639 + }, + { + "left_line": 635, + "right_line": 640 + }, + { + "left_line": 636, + "right_line": 641 + }, + { + "left_line": 637, + "right_line": 642 + }, + { + "left_line": 638, + "right_line": 643 + }, + { + "left_line": 639, + "right_line": 644 + }, + { + "left_line": 640, + "right_line": 645 + }, + { + "left_line": 641, + "right_line": 646 + }, + { + "left_line": 642, + "right_line": 647 + }, + { + "left_line": 643, + "right_line": 648 + }, + { + "left_line": 644, + "right_line": 649 + }, + { + "left_line": 645, + "right_line": 650 + }, + { + "left_line": 646, + "right_line": 651 + }, + { + "left_line": 647, + "right_line": 652 + }, + { + "left_line": 648, + "right_line": 653 + }, + { + "left_line": 649, + "right_line": 654 + }, + { + "left_line": 650, + "right_line": 655 + }, + { + "left_line": 651, + "right_line": 656 + }, + { + "left_line": 652, + "right_line": 657 + }, + { + "left_line": 653, + "right_line": 658 + }, + { + "left_line": 654, + "right_line": 659 + }, + { + "left_line": 655, + "right_line": 660 + }, + { + "left_line": 656, + "right_line": 661 + }, + { + "left_line": 657, + "right_line": 662 + }, + { + "left_line": 658, + "right_line": 663 + }, + { + "left_line": 659, + "right_line": 664 + }, + { + "left_line": 660, + "right_line": 665 + }, + { + "left_line": 661, + "right_line": 666 + }, + { + "left_line": 662, + "right_line": 667 + }, + { + "left_line": 663, + "right_line": 668 + }, + { + "left_line": 664, + "right_line": 669 + }, + { + "left_line": 665, + "right_line": 670 + }, + { + "left_line": 666, + "right_line": 671 + }, + { + "left_line": 667, + "right_line": 672 + }, + { + "left_line": 668, + "right_line": 673 + }, + { + "left_line": 669, + "right_line": 674 + }, + { + "left_line": 670, + "right_line": 675 + }, + { + "left_line": 671, + "right_line": 676 + }, + { + "left_line": 672, + "right_line": 677 + }, + { + "left_line": 673, + "right_line": 678 + }, + { + "left_line": 674, + "right_line": 679 + }, + { + "left_line": 675, + "right_line": 680 + }, + { + "left_line": 676, + "right_line": 681 + }, + { + "left_line": 677, + "right_line": 682 + }, + { + "left_line": 678, + "right_line": 683 + }, + { + "left_line": 679, + "right_line": 684 + }, + { + "left_line": 680, + "right_line": 685 + }, + { + "left_line": 681, + "right_line": 686 + }, + { + "left_line": 682, + "right_line": 687 + }, + { + "left_line": 683, + "right_line": 688 + }, + { + "left_line": 684, + "right_line": 689 + }, + { + "left_line": 685, + "right_line": 690 + }, + { + "left_line": 686, + "right_line": 691 + }, + { + "left_line": 687, + "right_line": 692 + }, + { + "left_line": 688, + "right_line": 693 + }, + { + "left_line": 689, + "right_line": 694 + }, + { + "left_line": 690, + "right_line": 695 + }, + { + "left_line": 691, + "right_line": 696 + }, + { + "left_line": 692, + "right_line": 697 + }, + { + "left_line": 693, + "right_line": 698 + }, + { + "left_line": 694, + "right_line": 699 + }, + { + "left_line": 695, + "right_line": 700 + }, + { + "left_line": 696, + "right_line": 701 + }, + { + "left_line": 697, + "right_line": 702 + }, + { + "left_line": 698, + "right_line": 703 + }, + { + "left_line": 699, + "right_line": 704 + }, + { + "left_line": 700, + "right_line": 705 + }, + { + "left_line": 701, + "right_line": 706 + }, + { + "left_line": 702, + "right_line": 707 + }, + { + "left_line": 703, + "right_line": 708 + }, + { + "left_line": 704, + "right_line": 709 + }, + { + "left_line": 705, + "right_line": 710 + }, + { + "left_line": 706, + "right_line": 711 + }, + { + "left_line": 707, + "right_line": 712 + }, + { + "left_line": 708, + "right_line": 713 + }, + { + "left_line": 709, + "right_line": 714 + }, + { + "left_line": 710, + "right_line": 715 + }, + { + "left_line": 711, + "right_line": 716 + }, + { + "left_line": 712, + "right_line": 717 + }, + { + "left_line": 713, + "right_line": 718 + }, + { + "left_line": 714, + "right_line": 719 + }, + { + "left_line": 715, + "right_line": 720 + }, + { + "left_line": 716, + "right_line": 721 + }, + { + "left_line": 717, + "right_line": 722 + }, + { + "left_line": 718, + "right_line": 723 + }, + { + "left_line": 719, + "right_line": 724 + }, + { + "left_line": 720, + "right_line": 725 + }, + { + "left_line": 721, + "right_line": 726 + }, + { + "left_line": 722, + "right_line": 727 + }, + { + "left_line": 723, + "right_line": 728 + }, + { + "left_line": 724, + "right_line": 729 + }, + { + "left_line": 725, + "right_line": 730 + }, + { + "left_line": 726, + "right_line": 731 + }, + { + "left_line": 727, + "right_line": 732 + }, + { + "left_line": 728, + "right_line": 733 + }, + { + "left_line": 729, + "right_line": 734 + }, + { + "left_line": 730, + "right_line": 735 + }, + { + "left_line": 731, + "right_line": 736 + }, + { + "left_line": 732, + "right_line": 737 + }, + { + "left_line": 733, + "right_line": 738 + }, + { + "left_line": 734, + "right_line": 739 + }, + { + "left_line": 735, + "right_line": 740 + }, + { + "left_line": 736, + "right_line": 741 + }, + { + "left_line": 737, + "right_line": 742 + }, + { + "left_line": 738, + "right_line": 743 + }, + { + "left_line": 739, + "right_line": 744 + }, + { + "left_line": 740, + "right_line": 745 + }, + { + "left_line": 741, + "right_line": 746 + }, + { + "left_line": 742, + "right_line": 747 + }, + { + "left_line": 743, + "right_line": 748 + }, + { + "left_line": 744, + "right_line": 749 + }, + { + "left_line": 745, + "right_line": 750 + }, + { + "left_line": 746, + "right_line": 751 + }, + { + "left_line": 747, + "right_line": 752 + }, + { + "left_line": 748, + "right_line": 753 + }, + { + "left_line": 749, + "right_line": 754 + }, + { + "left_line": 750, + "right_line": 755 + }, + { + "left_line": 751, + "right_line": 756 + }, + { + "left_line": 752, + "right_line": 757 + }, + { + "left_line": 753, + "right_line": 758 + }, + { + "left_line": 754, + "right_line": 759 + }, + { + "left_line": 755, + "right_line": 760 + }, + { + "left_line": 756, + "right_line": 761 + }, + { + "left_line": 757, + "right_line": 762 + }, + { + "left_line": 758, + "right_line": 763 + }, + { + "left_line": 759, + "right_line": 764 + }, + { + "left_line": 760, + "right_line": 765 + }, + { + "left_line": 761, + "right_line": 766 + }, + { + "left_line": 762, + "right_line": 767 + }, + { + "left_line": 763, + "right_line": 768 + }, + { + "left_line": 764, + "right_line": 769 + }, + { + "left_line": 765, + "right_line": 770 + }, + { + "left_line": 766, + "right_line": 771 + }, + { + "left_line": 767, + "right_line": 772 + }, + { + "left_line": 768, + "right_line": 773 + }, + { + "left_line": 769, + "right_line": 774 + }, + { + "left_line": 770, + "right_line": 775 + }, + { + "left_line": 771, + "right_line": 776 + }, + { + "left_line": 772, + "right_line": 777 + }, + { + "left_line": 773, + "right_line": 778 + }, + { + "left_line": 774, + "right_line": 779 + }, + { + "left_line": 775, + "right_line": 780 + }, + { + "left_line": 776, + "right_line": 781 + }, + { + "left_line": 777, + "right_line": 782 + }, + { + "left_line": 778, + "right_line": 783 + }, + { + "left_line": 779, + "right_line": 784 + }, + { + "left_line": 780, + "right_line": 785 + }, + { + "left_line": 781, + "right_line": 786 + }, + { + "left_line": 782, + "right_line": 787 + }, + { + "left_line": 783, + "right_line": 788 + }, + { + "left_line": 784, + "right_line": 789 + }, + { + "left_line": 785, + "right_line": 790 + }, + { + "left_line": 786, + "right_line": 791 + }, + { + "left_line": 787, + "right_line": 792 + }, + { + "left_line": 788, + "right_line": 793 + }, + { + "left_line": 789, + "right_line": 794 + }, + { + "left_line": 790, + "right_line": 795 + }, + { + "left_line": 791, + "right_line": 796 + }, + { + "left_line": 792, + "right_line": 797 + }, + { + "left_line": 793, + "right_line": 798 + }, + { + "left_line": 794, + "right_line": 799 + }, + { + "left_line": 795, + "right_line": 800 + }, + { + "left_line": 796, + "right_line": 801 + }, + { + "left_line": 797, + "right_line": 802 + }, + { + "left_line": 798, + "right_line": 803 + }, + { + "left_line": 799, + "right_line": 804 + }, + { + "left_line": 800, + "right_line": 805 + }, + { + "left_line": 801, + "right_line": 806 + }, + { + "left_line": 802, + "right_line": 807 + }, + { + "left_line": 803, + "right_line": 808 + }, + { + "left_line": 804, + "right_line": 809 + }, + { + "left_line": 805, + "right_line": 810 + }, + { + "left_line": 806, + "right_line": 811 + }, + { + "left_line": 807, + "right_line": 812 + }, + { + "left_line": 808, + "right_line": 813 + }, + { + "left_line": 809, + "right_line": 814 + }, + { + "left_line": 810, + "right_line": 815 + }, + { + "left_line": 811, + "right_line": 816 + }, + { + "left_line": 812, + "right_line": 817 + }, + { + "left_line": 813, + "right_line": 818 + }, + { + "left_line": 814, + "right_line": 819 + }, + { + "left_line": 815, + "right_line": 820 + }, + { + "left_line": 816, + "right_line": 821 + }, + { + "left_line": 817, + "right_line": 822 + }, + { + "left_line": 818, + "right_line": 823 + }, + { + "left_line": 819, + "right_line": 824 + }, + { + "left_line": 820, + "right_line": 825 + }, + { + "left_line": 821, + "right_line": 826 + }, + { + "left_line": 822, + "right_line": 827 + }, + { + "left_line": 823, + "right_line": 828 + }, + { + "left_line": 824, + "right_line": 829 + }, + { + "left_line": 825, + "right_line": 830 + }, + { + "left_line": 826, + "right_line": 831 + }, + { + "left_line": 827, + "right_line": 832 + }, + { + "left_line": 828, + "right_line": 833 + }, + { + "left_line": 829, + "right_line": 834 + }, + { + "left_line": 830, + "right_line": 835 + }, + { + "left_line": 831, + "right_line": 836 + }, + { + "left_line": 832, + "right_line": 837 + }, + { + "left_line": 833, + "right_line": 838 + }, + { + "left_line": 834, + "right_line": 839 + }, + { + "left_line": 835, + "right_line": 840 + }, + { + "left_line": 836, + "right_line": 841 + }, + { + "left_line": 837, + "right_line": 842 + }, + { + "left_line": 838, + "right_line": 843 + }, + { + "left_line": 839, + "right_line": 844 + }, + { + "left_line": 840, + "right_line": 845 + }, + { + "left_line": 841, + "right_line": 846 + }, + { + "left_line": 842, + "right_line": 847 + }, + { + "left_line": 843, + "right_line": 848 + }, + { + "left_line": 844, + "right_line": 849 + }, + { + "left_line": 845, + "right_line": 850 + }, + { + "left_line": 846, + "right_line": 851 + }, + { + "left_line": 847, + "right_line": 852 + }, + { + "left_line": 848, + "right_line": 853 + }, + { + "left_line": 849, + "right_line": 854 + }, + { + "left_line": 850, + "right_line": 855 + }, + { + "left_line": 851, + "right_line": 856 + }, + { + "left_line": 852, + "right_line": 857 + }, + { + "left_line": 853, + "right_line": 858 + }, + { + "left_line": 854, + "right_line": 859 + }, + { + "left_line": 855, + "right_line": 860 + }, + { + "left_line": 856, + "right_line": 861 + }, + { + "left_line": 857, + "right_line": 862 + }, + { + "left_line": 858, + "right_line": 863 + }, + { + "left_line": 859, + "right_line": 864 + }, + { + "left_line": 860, + "right_line": 865 + }, + { + "left_line": 861, + "right_line": 866 + }, + { + "left_line": 862, + "right_line": 867 + }, + { + "left_line": 863, + "right_line": 868 + }, + { + "left_line": 864, + "right_line": 869 + }, + { + "left_line": 865, + "right_line": 870 + }, + { + "left_line": 866, + "right_line": 871 + }, + { + "left_line": 867, + "right_line": 872 + }, + { + "left_line": 868, + "right_line": 873 + }, + { + "left_line": 869, + "right_line": 874 + }, + { + "left_line": 870, + "right_line": 875 + }, + { + "left_line": 871, + "right_line": 876 + }, + { + "left_line": 872, + "right_line": 877 + }, + { + "left_line": 873, + "right_line": 878 + }, + { + "left_line": 874, + "right_line": 879 + }, + { + "left_line": 875, + "right_line": 880 + }, + { + "left_line": 876, + "right_line": 881 + }, + { + "left_line": 877, + "right_line": 882 + }, + { + "left_line": 878, + "right_line": 883 + }, + { + "left_line": 879, + "right_line": 884 + }, + { + "left_line": 880, + "right_line": 885 + }, + { + "left_line": 881, + "right_line": 886 + }, + { + "left_line": 882, + "right_line": 887 + }, + { + "left_line": 883, + "right_line": 888 + }, + { + "left_line": 884, + "right_line": 889 + }, + { + "left_line": 885, + "right_line": 890 + }, + { + "left_line": 886, + "right_line": 891 + }, + { + "left_line": 887, + "right_line": 892 + }, + { + "left_line": 888, + "right_line": 893 + }, + { + "left_line": 889, + "right_line": 894 + }, + { + "left_line": 890, + "right_line": 895 + }, + { + "left_line": 891, + "right_line": 896 + }, + { + "left_line": 892, + "right_line": 897 + }, + { + "left_line": 893, + "right_line": 898 + }, + { + "left_line": 894, + "right_line": 899 + }, + { + "left_line": 895, + "right_line": 900 + }, + { + "left_line": 896, + "right_line": 901 + }, + { + "left_line": 897, + "right_line": 902 + }, + { + "left_line": 898, + "right_line": 903 + }, + { + "left_line": 899, + "right_line": 904 + }, + { + "left_line": 900, + "right_line": 905 + }, + { + "left_line": 901, + "right_line": 906 + }, + { + "left_line": 902, + "right_line": 907 + }, + { + "left_line": 903, + "right_line": 908 + }, + { + "left_line": 904, + "right_line": 909 + }, + { + "left_line": 905, + "right_line": 910 + }, + { + "left_line": 906, + "right_line": 911 + }, + { + "left_line": 907, + "right_line": 912 + }, + { + "left_line": 908, + "right_line": 913 + }, + { + "left_line": 909, + "right_line": 914 + }, + { + "left_line": 910, + "right_line": 915 + }, + { + "left_line": 911, + "right_line": 916 + }, + { + "left_line": 912, + "right_line": 917 + }, + { + "left_line": 913, + "right_line": 918 + }, + { + "left_line": 914, + "right_line": 919 + }, + { + "left_line": 915, + "right_line": 920 + }, + { + "left_line": 916, + "right_line": 921 + }, + { + "left_line": 917, + "right_line": 922 + }, + { + "left_line": 918, + "right_line": 923 + }, + { + "left_line": 919, + "right_line": 924 + }, + { + "left_line": 920, + "right_line": 925 + }, + { + "left_line": 921, + "right_line": 926 + }, + { + "left_line": 922, + "right_line": 927 + }, + { + "left_line": 923, + "right_line": 928 + }, + { + "left_line": 924, + "right_line": 929 + }, + { + "left_line": 925, + "right_line": 930 + }, + { + "left_line": 926, + "right_line": 931 + }, + { + "left_line": 927, + "right_line": 932 + }, + { + "left_line": 928, + "right_line": 933 + }, + { + "left_line": 929, + "right_line": 934 + }, + { + "left_line": 930, + "right_line": 935 + }, + { + "left_line": 931, + "right_line": 936 + }, + { + "left_line": 932, + "right_line": 937 + }, + { + "left_line": 933, + "right_line": 938 + }, + { + "left_line": 934, + "right_line": 939 + }, + { + "left_line": 935, + "right_line": 940 + }, + { + "left_line": 936, + "right_line": 941 + }, + { + "left_line": 937, + "right_line": 942 + }, + { + "left_line": 938, + "right_line": 943 + }, + { + "left_line": 939, + "right_line": 944 + }, + { + "left_line": 940, + "right_line": 945 + }, + { + "left_line": 941, + "right_line": 946 + }, + { + "left_line": 942, + "right_line": 947 + }, + { + "left_line": 943, + "right_line": 948 + }, + { + "left_line": 944, + "right_line": 949 + }, + { + "left_line": 945, + "right_line": 950 + }, + { + "left_line": 946, + "right_line": 951 + }, + { + "left_line": 947, + "right_line": 952 + }, + { + "left_line": 948, + "right_line": 953 + }, + { + "left_line": 949, + "right_line": 954 + }, + { + "left_line": 950, + "right_line": 955 + }, + { + "left_line": 951, + "right_line": 956 + }, + { + "left_line": 952, + "right_line": 957 + }, + { + "left_line": 953, + "right_line": 958 + }, + { + "left_line": 954, + "right_line": 959 + }, + { + "left_line": 955, + "right_line": 960 + }, + { + "left_line": 956, + "right_line": 961 + }, + { + "left_line": 957, + "right_line": 962 + }, + { + "left_line": 958, + "right_line": 963 + }, + { + "left_line": 959, + "right_line": 964 + }, + { + "left_line": 960, + "right_line": 965 + }, + { + "left_line": 961, + "right_line": 966 + }, + { + "left_line": 962, + "right_line": 967 + }, + { + "left_line": 963, + "right_line": 968 + }, + { + "left_line": 964, + "right_line": 969 + }, + { + "left_line": 965, + "right_line": 970 + }, + { + "left_line": 966, + "right_line": 971 + }, + { + "left_line": 967, + "right_line": 972 + }, + { + "left_line": 968, + "right_line": 973 + }, + { + "left_line": 969, + "right_line": 974 + }, + { + "left_line": 970, + "right_line": 975 + }, + { + "left_line": 971, + "right_line": 976 + }, + { + "left_line": 972, + "right_line": 977 + }, + { + "left_line": 973, + "right_line": 978 + }, + { + "left_line": 974, + "right_line": 979 + }, + { + "left_line": 975, + "right_line": 980 + }, + { + "left_line": 976, + "right_line": 981 + }, + { + "left_line": 977, + "right_line": 982 + }, + { + "left_line": 978, + "right_line": 983 + }, + { + "left_line": 979, + "right_line": 984 + }, + { + "left_line": 980, + "right_line": 985 + }, + { + "left_line": 981, + "right_line": 986 + }, + { + "left_line": 982, + "right_line": 987 + }, + { + "left_line": 983, + "right_line": 988 + }, + { + "left_line": 984, + "right_line": 989 + }, + { + "left_line": 985, + "right_line": 990 + }, + { + "left_line": 986, + "right_line": 991 + }, + { + "left_line": 987, + "right_line": 992 + }, + { + "left_line": 988, + "right_line": 993 + }, + { + "left_line": 989, + "right_line": 994 + }, + { + "left_line": 990, + "right_line": 995 + }, + { + "left_line": 991, + "right_line": 996 + }, + { + "left_line": 992, + "right_line": 997 + }, + { + "left_line": 993, + "right_line": 998 + }, + { + "left_line": 994, + "right_line": 999 + }, + { + "left_line": 995, + "right_line": 1000 + }, + { + "left_line": 996, + "right_line": 1001 + }, + { + "left_line": 997, + "right_line": 1002 + }, + { + "left_line": 998, + "right_line": 1003 + }, + { + "left_line": 999, + "right_line": 1004 + }, + { + "left_line": 1000, + "right_line": 1005 + }, + { + "left_line": 1001, + "right_line": 1006 + }, + { + "left_line": 1002, + "right_line": 1007 + }, + { + "left_line": 1003, + "right_line": 1008 + }, + { + "left_line": 1004, + "right_line": 1009 + }, + { + "left_line": 1005, + "right_line": 1010 + }, + { + "left_line": 1006, + "right_line": 1011 + }, + { + "left_line": 1007, + "right_line": 1012 + }, + { + "left_line": 1008, + "right_line": 1013 + }, + { + "left_line": 1009, + "right_line": 1014 + }, + { + "left_line": 1010, + "right_line": 1015 + }, + { + "left_line": 1011, + "right_line": 1016 + }, + { + "left_line": 1012, + "right_line": 1017 + }, + { + "left_line": 1013, + "right_line": 1018 + }, + { + "left_line": 1014, + "right_line": 1019 + }, + { + "left_line": 1015, + "right_line": 1020 + }, + { + "left_line": 1016, + "right_line": 1021 + }, + { + "left_line": 1017, + "right_line": 1022 + }, + { + "left_line": 1018, + "right_line": 1023 + }, + { + "left_line": 1019, + "right_line": 1024 + }, + { + "left_line": 1020, + "right_line": 1025 + }, + { + "left_line": 1021, + "right_line": 1026 + }, + { + "left_line": 1022, + "right_line": 1027 + }, + { + "left_line": 1023, + "right_line": 1028 + }, + { + "left_line": 1024, + "right_line": 1029 + }, + { + "left_line": 1025, + "right_line": 1030 + }, + { + "left_line": 1026, + "right_line": 1031 + }, + { + "left_line": 1027, + "right_line": 1032 + }, + { + "left_line": 1028, + "right_line": 1033 + }, + { + "left_line": 1029, + "right_line": 1034 + }, + { + "left_line": 1030, + "right_line": 1035 + }, + { + "left_line": 1031, + "right_line": 1036 + }, + { + "left_line": 1032, + "right_line": 1037 + }, + { + "left_line": 1033, + "right_line": 1038 + }, + { + "left_line": 1034, + "right_line": 1039 + }, + { + "left_line": 1035, + "right_line": 1040 + }, + { + "left_line": 1036, + "right_line": 1041 + }, + { + "left_line": 1037, + "right_line": 1042 + }, + { + "left_line": 1038, + "right_line": 1043 + }, + { + "left_line": 1039, + "right_line": 1044 + }, + { + "left_line": 1040, + "right_line": 1045 + }, + { + "left_line": 1041, + "right_line": 1046 + }, + { + "left_line": 1042, + "right_line": 1047 + }, + { + "left_line": 1043, + "right_line": 1048 + }, + { + "left_line": 1044, + "right_line": 1049 + }, + { + "left_line": 1045, + "right_line": 1050 + }, + { + "left_line": 1046, + "right_line": 1051 + }, + { + "left_line": 1047, + "right_line": 1052 + }, + { + "left_line": 1048, + "right_line": 1053 + }, + { + "left_line": 1049, + "right_line": 1054 + }, + { + "left_line": 1050, + "right_line": 1055 + }, + { + "left_line": 1051, + "right_line": 1056 + }, + { + "left_line": 1052, + "right_line": 1057 + }, + { + "left_line": 1053, + "right_line": 1058 + }, + { + "left_line": 1054, + "right_line": 1059 + }, + { + "left_line": 1055, + "right_line": 1060 + }, + { + "left_line": 1056, + "right_line": 1061 + }, + { + "left_line": 1057, + "right_line": 1062 + }, + { + "left_line": 1058, + "right_line": 1063 + }, + { + "left_line": 1059, + "right_line": 1064 + }, + { + "left_line": 1060, + "right_line": 1065 + }, + { + "left_line": 1061, + "right_line": 1066 + }, + { + "left_line": 1062, + "right_line": 1067 + }, + { + "left_line": 1063, + "right_line": 1068 + }, + { + "left_line": 1064, + "right_line": 1069 + }, + { + "left_line": 1065, + "right_line": 1070 + }, + { + "left_line": 1066, + "right_line": 1071 + }, + { + "left_line": 1067, + "right_line": 1072 + }, + { + "left_line": 1068, + "right_line": 1073 + }, + { + "left_line": 1069, + "right_line": 1074 + }, + { + "left_line": 1070, + "right_line": 1075 + }, + { + "left_line": 1071, + "right_line": 1076 + }, + { + "left_line": 1072, + "right_line": 1077 + }, + { + "left_line": 1073, + "right_line": 1078 + }, + { + "left_line": 1074, + "right_line": 1079 + }, + { + "left_line": 1075, + "right_line": 1080 + }, + { + "left_line": 1076, + "right_line": 1081 + }, + { + "left_line": 1077, + "right_line": 1082 + }, + { + "left_line": 1078, + "right_line": 1083 + }, + { + "left_line": 1079, + "right_line": 1084 + }, + { + "left_line": 1080, + "right_line": 1085 + }, + { + "left_line": 1081, + "right_line": 1086 + }, + { + "left_line": 1082, + "right_line": 1087 + }, + { + "left_line": 1083, + "right_line": 1088 + }, + { + "left_line": 1084, + "right_line": 1089 + }, + { + "left_line": 1085, + "right_line": 1090 + }, + { + "left_line": 1086, + "right_line": 1091 + }, + { + "left_line": 1087, + "right_line": 1092 + }, + { + "left_line": 1088, + "right_line": 1093 + }, + { + "left_line": 1089, + "right_line": 1094 + }, + { + "left_line": 1090, + "right_line": 1095 + }, + { + "left_line": 1091, + "right_line": 1096 + }, + { + "left_line": 1092, + "right_line": 1097 + }, + { + "left_line": 1093, + "right_line": 1098 + }, + { + "left_line": 1094, + "right_line": 1099 + }, + { + "left_line": 1095, + "right_line": 1100 + }, + { + "left_line": 1096, + "right_line": 1101 + }, + { + "left_line": 1097, + "right_line": 1102 + }, + { + "left_line": 1098, + "right_line": 1103 + }, + { + "left_line": 1099, + "right_line": 1104 + }, + { + "left_line": 1100, + "right_line": 1105 + }, + { + "left_line": 1101, + "right_line": 1106 + }, + { + "left_line": 1102, + "right_line": 1107 + }, + { + "left_line": 1103, + "right_line": 1108 + }, + { + "left_line": 1104, + "right_line": 1109 + }, + { + "left_line": 1105, + "right_line": 1110 + }, + { + "left_line": 1106, + "right_line": 1111 + }, + { + "left_line": 1107, + "right_line": 1112 + }, + { + "left_line": 1108, + "right_line": 1113 + }, + { + "left_line": 1109, + "right_line": 1114 + }, + { + "left_line": 1110, + "right_line": 1115 + }, + { + "left_line": 1111, + "right_line": 1116 + }, + { + "left_line": 1112, + "right_line": 1117 + }, + { + "left_line": 1113, + "right_line": 1118 + }, + { + "left_line": 1114, + "right_line": 1119 + }, + { + "left_line": 1115, + "right_line": 1120 + }, + { + "left_line": 1116, + "right_line": 1121 + }, + { + "left_line": 1117, + "right_line": 1122 + }, + { + "left_line": 1118, + "right_line": 1123 + }, + { + "left_line": 1119, + "right_line": 1124 + }, + { + "left_line": 1120, + "right_line": 1125 + }, + { + "left_line": 1121, + "right_line": 1126 + }, + { + "left_line": 1122, + "right_line": 1127 + }, + { + "left_line": 1123, + "right_line": 1128 + }, + { + "left_line": 1124, + "right_line": 1129 + }, + { + "left_line": 1125, + "right_line": 1130 + }, + { + "left_line": 1126, + "right_line": 1131 + }, + { + "left_line": 1127, + "right_line": 1132 + }, + { + "left_line": 1128, + "right_line": 1133 + }, + { + "left_line": 1129, + "right_line": 1134 + }, + { + "left_line": 1130, + "right_line": 1135 + }, + { + "left_line": 1131, + "right_line": 1136 + }, + { + "left_line": 1132, + "right_line": 1137 + }, + { + "left_line": 1133, + "right_line": 1138 + }, + { + "left_line": 1134, + "right_line": 1139 + }, + { + "left_line": 1135, + "right_line": 1140 + }, + { + "left_line": 1136, + "right_line": 1141 + }, + { + "left_line": 1137, + "right_line": 1142 + }, + { + "left_line": 1138, + "right_line": 1143 + }, + { + "left_line": 1139, + "right_line": 1144 + }, + { + "left_line": 1140, + "right_line": 1145 + }, + { + "left_line": 1141, + "right_line": 1146 + }, + { + "left_line": 1142, + "right_line": 1147 + }, + { + "left_line": 1143, + "right_line": 1148 + }, + { + "left_line": 1144, + "right_line": 1149 + }, + { + "left_line": 1145, + "right_line": 1150 + }, + { + "left_line": 1146, + "right_line": 1151 + }, + { + "left_line": 1147, + "right_line": 1152 + }, + { + "left_line": 1148, + "right_line": 1153 + }, + { + "left_line": 1149, + "right_line": 1154 + }, + { + "left_line": 1150, + "right_line": 1155 + }, + { + "left_line": 1151, + "right_line": 1156 + }, + { + "left_line": 1152, + "right_line": 1157 + }, + { + "left_line": 1153, + "right_line": 1158 + }, + { + "left_line": 1154, + "right_line": 1159 + }, + { + "left_line": 1155, + "right_line": 1160 + }, + { + "left_line": 1156, + "right_line": 1161 + }, + { + "left_line": 1157, + "right_line": 1162 + }, + { + "left_line": 1158, + "right_line": 1163 + }, + { + "left_line": 1159, + "right_line": 1164 + }, + { + "left_line": 1160, + "right_line": 1165 + }, + { + "left_line": 1161, + "right_line": 1166 + }, + { + "left_line": 1162, + "right_line": 1167 + }, + { + "left_line": 1163, + "right_line": 1168 + }, + { + "left_line": 1164, + "right_line": 1169 + }, + { + "left_line": 1165, + "right_line": 1170 + }, + { + "left_line": 1166, + "right_line": 1171 + }, + { + "left_line": 1167, + "right_line": 1172 + }, + { + "left_line": 1168, + "right_line": 1173 + }, + { + "left_line": 1169, + "right_line": 1174 + }, + { + "left_line": 1170, + "right_line": 1175 + }, + { + "left_line": 1171, + "right_line": 1176 + }, + { + "left_line": 1172, + "right_line": 1177 + }, + { + "left_line": 1173, + "right_line": 1178 + }, + { + "left_line": 1174, + "right_line": 1179 + }, + { + "left_line": 1175, + "right_line": 1180 + }, + { + "left_line": 1176, + "right_line": 1181 + }, + { + "left_line": 1177, + "right_line": 1182 + }, + { + "left_line": 1178, + "right_line": 1183 + }, + { + "left_line": 1179, + "right_line": 1184 + }, + { + "left_line": 1180, + "right_line": 1185 + }, + { + "left_line": 1181, + "right_line": 1186 + }, + { + "left_line": 1182, + "right_line": 1187 + }, + { + "left_line": 1183, + "right_line": 1188 + }, + { + "left_line": 1184, + "right_line": 1189 + }, + { + "left_line": 1185, + "right_line": 1190 + }, + { + "left_line": 1186, + "right_line": 1191 + }, + { + "left_line": 1187, + "right_line": 1192 + }, + { + "left_line": 1188, + "right_line": 1193 + }, + { + "left_line": 1189, + "right_line": 1194 + }, + { + "left_line": 1190, + "right_line": 1195 + }, + { + "left_line": 1191, + "right_line": 1196 + }, + { + "left_line": 1192, + "right_line": 1197 + }, + { + "left_line": 1193, + "right_line": 1198 + }, + { + "left_line": 1194, + "right_line": 1199 + }, + { + "left_line": 1195, + "right_line": 1200 + }, + { + "left_line": 1196, + "right_line": 1201 + }, + { + "left_line": 1197, + "right_line": 1202 + }, + { + "left_line": 1198, + "right_line": 1203 + }, + { + "left_line": 1199, + "right_line": 1204 + }, + { + "left_line": 1200, + "right_line": 1205 + }, + { + "left_line": 1201, + "right_line": 1206 + }, + { + "left_line": 1202, + "right_line": 1207 + }, + { + "left_line": 1203, + "right_line": 1208 + }, + { + "left_line": 1204, + "right_line": 1209 + }, + { + "left_line": 1205, + "right_line": 1210 + }, + { + "left_line": 1206, + "right_line": 1211 + }, + { + "left_line": 1207, + "right_line": 1212 + }, + { + "left_line": 1208, + "right_line": 1213 + }, + { + "left_line": 1209, + "right_line": 1214 + }, + { + "left_line": 1210, + "right_line": 1215 + }, + { + "left_line": 1211, + "right_line": 1216 + }, + { + "left_line": 1212, + "right_line": 1217 + }, + { + "left_line": 1213, + "right_line": 1218 + }, + { + "left_line": 1214, + "right_line": 1219 + }, + { + "left_line": 1215, + "right_line": 1220 + }, + { + "left_line": 1216, + "right_line": 1221 + }, + { + "left_line": 1217, + "right_line": 1222 + }, + { + "left_line": 1218, + "right_line": 1223 + }, + { + "left_line": 1219, + "right_line": 1224 + }, + { + "left_line": 1220, + "right_line": 1225 + }, + { + "left_line": 1221, + "right_line": 1226 + }, + { + "left_line": 1222, + "right_line": 1227 + }, + { + "left_line": 1223, + "right_line": 1228 + }, + { + "left_line": 1224, + "right_line": 1229 + }, + { + "left_line": 1225, + "right_line": 1230 + }, + { + "left_line": 1226, + "right_line": 1231 + }, + { + "left_line": 1227, + "right_line": 1232 + }, + { + "left_line": 1228, + "right_line": 1233 + }, + { + "left_line": 1229, + "right_line": 1234 + }, + { + "left_line": 1230, + "right_line": 1235 + }, + { + "left_line": 1231, + "right_line": 1236 + }, + { + "left_line": 1232, + "right_line": 1237 + }, + { + "left_line": 1233, + "right_line": 1238 + }, + { + "left_line": 1234, + "right_line": 1239 + }, + { + "left_line": 1235, + "right_line": 1240 + }, + { + "left_line": 1236, + "right_line": 1241 + }, + { + "left_line": 1237, + "right_line": 1242 + }, + { + "left_line": 1238, + "right_line": 1243 + }, + { + "left_line": 1239, + "right_line": 1244 + }, + { + "left_line": 1240, + "right_line": 1245 + }, + { + "left_line": 1241, + "right_line": 1246 + }, + { + "left_line": 1242, + "right_line": 1247 + }, + { + "left_line": 1243, + "right_line": 1248 + }, + { + "left_line": 1244, + "right_line": 1249 + }, + { + "left_line": 1245, + "right_line": 1250 + }, + { + "left_line": 1246, + "right_line": 1251 + }, + { + "left_line": 1247, + "right_line": 1252 + }, + { + "left_line": 1248, + "right_line": 1253 + }, + { + "left_line": 1249, + "right_line": 1254 + }, + { + "left_line": 1250, + "right_line": 1255 + }, + { + "left_line": 1251, + "right_line": 1256 + }, + { + "left_line": 1252, + "right_line": 1257 + }, + { + "left_line": 1253, + "right_line": 1258 + }, + { + "left_line": 1254, + "right_line": 1259 + }, + { + "left_line": 1255, + "right_line": 1260 + }, + { + "left_line": 1256, + "right_line": 1261 + }, + { + "left_line": 1257, + "right_line": 1262 + }, + { + "left_line": 1258, + "right_line": 1263 + }, + { + "left_line": 1259, + "right_line": 1264 + }, + { + "left_line": 1260, + "right_line": 1265 + }, + { + "left_line": 1261, + "right_line": 1266 + }, + { + "left_line": 1262, + "right_line": 1267 + }, + { + "left_line": 1263, + "right_line": 1268 + }, + { + "left_line": 1264, + "right_line": 1269 + }, + { + "left_line": 1265, + "right_line": 1270 + }, + { + "left_line": 1266, + "right_line": 1271 + }, + { + "left_line": 1267, + "right_line": 1272 + }, + { + "left_line": 1268, + "right_line": 1273 + }, + { + "left_line": 1269, + "right_line": 1274 + }, + { + "left_line": 1270, + "right_line": 1275 + }, + { + "left_line": 1271, + "right_line": 1276 + }, + { + "left_line": 1272, + "right_line": 1277 + }, + { + "left_line": 1273, + "right_line": 1278 + }, + { + "left_line": 1274, + "right_line": 1279 + }, + { + "left_line": 1275, + "right_line": 1280 + }, + { + "left_line": 1276, + "right_line": 1281 + }, + { + "left_line": 1277, + "right_line": 1282 + }, + { + "left_line": 1278, + "right_line": 1283 + }, + { + "left_line": 1279, + "right_line": 1284 + }, + { + "left_line": 1280, + "right_line": 1285 + }, + { + "left_line": 1281, + "right_line": 1286 + }, + { + "left_line": 1282, + "right_line": 1287 + }, + { + "left_line": 1283, + "right_line": 1288 + }, + { + "left_line": 1284, + "right_line": 1289 + }, + { + "left_line": 1285, + "right_line": 1290 + }, + { + "left_line": 1286, + "right_line": 1291 + }, + { + "left_line": 1287, + "right_line": 1292 + }, + { + "left_line": 1288, + "right_line": 1293 + }, + { + "left_line": 1289, + "right_line": 1294 + }, + { + "left_line": 1290, + "right_line": 1295 + }, + { + "left_line": 1291, + "right_line": 1296 + }, + { + "left_line": 1292, + "right_line": 1297 + }, + { + "left_line": 1293, + "right_line": 1298 + }, + { + "left_line": 1294, + "right_line": 1299 + }, + { + "left_line": 1295, + "right_line": 1300 + }, + { + "left_line": 1296, + "right_line": 1301 + }, + { + "left_line": 1297, + "right_line": 1302 + }, + { + "left_line": 1298, + "right_line": 1303 + }, + { + "left_line": 1299, + "right_line": 1304 + }, + { + "left_line": 1300, + "right_line": 1305 + }, + { + "left_line": 1301, + "right_line": 1306 + }, + { + "left_line": 1302, + "right_line": 1307 + }, + { + "left_line": 1303, + "right_line": 1308 + }, + { + "left_line": 1304, + "right_line": 1309 + }, + { + "left_line": 1305, + "right_line": 1310 + }, + { + "left_line": 1306, + "right_line": 1311 + }, + { + "left_line": 1307, + "right_line": 1312 + }, + { + "left_line": 1308, + "right_line": 1313 + }, + { + "left_line": 1309, + "right_line": 1314 + }, + { + "left_line": 1310, + "right_line": 1315 + }, + { + "left_line": 1311, + "right_line": 1316 + }, + { + "left_line": 1312, + "right_line": 1317 + }, + { + "left_line": 1313, + "right_line": 1318 + }, + { + "left_line": 1314, + "right_line": 1319 + }, + { + "left_line": 1315, + "right_line": 1320 + }, + { + "left_line": 1316, + "right_line": 1321 + }, + { + "left_line": 1317, + "right_line": 1322 + }, + { + "left_line": 1318, + "right_line": 1323 + }, + { + "left_line": 1319, + "right_line": 1324 + }, + { + "left_line": 1320, + "right_line": 1325 + }, + { + "left_line": 1321, + "right_line": 1326 + }, + { + "left_line": 1322, + "right_line": 1327 + }, + { + "left_line": 1323, + "right_line": 1328 + }, + { + "left_line": 1324, + "right_line": 1329 + }, + { + "left_line": 1325, + "right_line": 1330 + }, + { + "left_line": 1326, + "right_line": 1331 + }, + { + "left_line": 1327, + "right_line": 1332 + }, + { + "left_line": 1328, + "right_line": 1333 + }, + { + "left_line": 1329, + "right_line": 1334 + }, + { + "left_line": 1330, + "right_line": 1335 + }, + { + "left_line": 1331, + "right_line": 1336 + }, + { + "left_line": 1332, + "right_line": 1337 + }, + { + "left_line": 1333, + "right_line": 1338 + }, + { + "left_line": 1334, + "right_line": 1339 + }, + { + "left_line": 1335, + "right_line": 1340 + }, + { + "left_line": 1336, + "right_line": 1341 + }, + { + "left_line": 1337, + "right_line": 1342 + }, + { + "left_line": 1338, + "right_line": 1343 + }, + { + "left_line": 1339, + "right_line": 1344 + }, + { + "left_line": 1340, + "right_line": 1345 + }, + { + "left_line": 1341, + "right_line": 1346 + }, + { + "left_line": 1342, + "right_line": 1347 + }, + { + "left_line": 1343, + "right_line": 1348 + }, + { + "left_line": 1344, + "right_line": 1349 + }, + { + "left_line": 1345, + "right_line": 1350 + }, + { + "left_line": 1346, + "right_line": 1351 + }, + { + "left_line": 1347, + "right_line": 1352 + }, + { + "left_line": 1348, + "right_line": 1353 + }, + { + "left_line": 1349, + "right_line": 1354 + }, + { + "left_line": 1350, + "right_line": 1355 + }, + { + "left_line": 1351, + "right_line": 1356 + }, + { + "left_line": 1352, + "right_line": 1357 + }, + { + "left_line": 1353, + "right_line": 1358 + }, + { + "left_line": 1354, + "right_line": 1359 + }, + { + "left_line": 1355, + "right_line": 1360 + }, + { + "left_line": 1356, + "right_line": 1361 + }, + { + "left_line": 1357, + "right_line": 1362 + }, + { + "left_line": 1358, + "right_line": 1363 + }, + { + "left_line": 1359, + "right_line": 1364 + }, + { + "left_line": 1360, + "right_line": 1365 + }, + { + "left_line": 1361, + "right_line": 1366 + }, + { + "left_line": 1362, + "right_line": 1367 + }, + { + "left_line": 1363, + "right_line": 1368 + }, + { + "left_line": 1364, + "right_line": 1369 + }, + { + "left_line": 1365, + "right_line": 1370 + }, + { + "left_line": 1366, + "right_line": 1371 + }, + { + "left_line": 1367, + "right_line": 1372 + }, + { + "left_line": 1368, + "right_line": 1373 + }, + { + "left_line": 1369, + "right_line": 1374 + }, + { + "left_line": 1370, + "right_line": 1375 + }, + { + "left_line": 1371, + "right_line": 1376 + }, + { + "left_line": 1372, + "right_line": 1377 + }, + { + "left_line": 1373, + "right_line": 1378 + }, + { + "left_line": 1374, + "right_line": 1379 + }, + { + "left_line": 1375, + "right_line": 1380 + }, + { + "left_line": 1376, + "right_line": 1381 + }, + { + "left_line": 1377, + "right_line": 1382 + }, + { + "left_line": 1378, + "right_line": 1383 + }, + { + "left_line": 1379, + "right_line": 1384 + }, + { + "left_line": 1380, + "right_line": 1385 + }, + { + "left_line": 1381, + "right_line": 1386 + }, + { + "left_line": 1382, + "right_line": 1387 + }, + { + "left_line": 1383, + "right_line": 1388 + }, + { + "left_line": 1384, + "right_line": 1389 + }, + { + "left_line": 1385, + "right_line": 1390 + }, + { + "left_line": 1386, + "right_line": 1391 + }, + { + "left_line": 1387, + "right_line": 1392 + }, + { + "left_line": 1388, + "right_line": 1393 + }, + { + "left_line": 1389, + "right_line": 1394 + }, + { + "left_line": 1390, + "right_line": 1395 + }, + { + "left_line": 1391, + "right_line": 1396 + }, + { + "left_line": 1392, + "right_line": 1397 + }, + { + "left_line": 1393, + "right_line": 1398 + }, + { + "left_line": 1394, + "right_line": 1399 + }, + { + "left_line": 1395, + "right_line": 1400 + }, + { + "left_line": 1396, + "right_line": 1401 + }, + { + "left_line": 1397, + "right_line": 1402 + }, + { + "left_line": 1398, + "right_line": 1403 + }, + { + "left_line": 1399, + "right_line": 1404 + }, + { + "left_line": 1400, + "right_line": 1405 + }, + { + "left_line": 1401, + "right_line": 1406 + }, + { + "left_line": 1402, + "right_line": 1407 + }, + { + "left_line": 1403, + "right_line": 1408 + }, + { + "left_line": 1404, + "right_line": 1409 + }, + { + "left_line": 1405, + "right_line": 1410 + }, + { + "left_line": 1406, + "right_line": 1411 + }, + { + "left_line": 1407, + "right_line": 1412 + }, + { + "left_line": 1408, + "right_line": 1413 + }, + { + "left_line": 1409, + "right_line": 1414 + }, + { + "left_line": 1410, + "right_line": 1415 + }, + { + "left_line": 1411, + "right_line": 1416 + }, + { + "left_line": 1412, + "right_line": 1417 + }, + { + "left_line": 1413, + "right_line": 1418 + }, + { + "left_line": 1414, + "right_line": 1419 + }, + { + "left_line": 1415, + "right_line": 1420 + }, + { + "left_line": 1416, + "right_line": 1421 + }, + { + "left_line": 1417, + "right_line": 1422 + }, + { + "left_line": 1418, + "right_line": 1423 + }, + { + "left_line": 1419, + "right_line": 1424 + }, + { + "left_line": 1420, + "right_line": 1425 + }, + { + "left_line": 1421, + "right_line": 1426 + }, + { + "left_line": 1422, + "right_line": 1427 + }, + { + "left_line": 1423, + "right_line": 1428 + }, + { + "left_line": 1424, + "right_line": 1429 + }, + { + "left_line": 1425, + "right_line": 1430 + }, + { + "left_line": 1426, + "right_line": 1431 + }, + { + "left_line": 1427, + "right_line": 1432 + }, + { + "left_line": 1428, + "right_line": 1433 + }, + { + "left_line": 1429, + "right_line": 1434 + }, + { + "left_line": 1430, + "right_line": 1435 + }, + { + "left_line": 1431, + "right_line": 1436 + }, + { + "left_line": 1432, + "right_line": 1437 + }, + { + "left_line": 1433, + "right_line": 1438 + }, + { + "left_line": 1434, + "right_line": 1439 + }, + { + "left_line": 1435, + "right_line": 1440 + }, + { + "left_line": 1436, + "right_line": 1441 + }, + { + "left_line": 1437, + "right_line": 1442 + }, + { + "left_line": 1438, + "right_line": 1443 + }, + { + "left_line": 1439, + "right_line": 1444 + }, + { + "left_line": 1440, + "right_line": 1445 + }, + { + "left_line": 1441, + "right_line": 1446 + }, + { + "left_line": 1442, + "right_line": 1447 + }, + { + "left_line": 1443, + "right_line": 1448 + }, + { + "left_line": 1444, + "right_line": 1449 + }, + { + "left_line": 1445, + "right_line": 1450 + }, + { + "left_line": 1446, + "right_line": 1451 + }, + { + "left_line": 1447, + "right_line": 1452 + }, + { + "left_line": 1448, + "right_line": 1453 + }, + { + "left_line": 1449, + "right_line": 1454 + }, + { + "left_line": 1450, + "right_line": 1455 + }, + { + "left_line": 1451, + "right_line": 1456 + }, + { + "left_line": 1452, + "right_line": 1457 + }, + { + "left_line": 1453, + "right_line": 1458 + }, + { + "left_line": 1454, + "right_line": 1459 + }, + { + "left_line": 1455, + "right_line": 1460 + }, + { + "left_line": 1456, + "right_line": 1461 + }, + { + "left_line": 1457, + "right_line": 1462 + }, + { + "left_line": 1458, + "right_line": 1463 + }, + { + "left_line": 1459, + "right_line": 1464 + }, + { + "left_line": 1460, + "right_line": 1465 + }, + { + "left_line": 1461, + "right_line": 1466 + }, + { + "left_line": 1462, + "right_line": 1467 + }, + { + "left_line": 1463, + "right_line": 1468 + }, + { + "left_line": 1464, + "right_line": 1469 + }, + { + "left_line": 1465, + "right_line": 1470 + }, + { + "left_line": 1466, + "right_line": 1471 + }, + { + "left_line": 1467, + "right_line": 1472 + }, + { + "left_line": 1468, + "right_line": 1473 + }, + { + "left_line": 1469, + "right_line": 1474 + }, + { + "left_line": 1470, + "right_line": 1475 + }, + { + "left_line": 1471, + "right_line": 1476 + }, + { + "left_line": 1472, + "right_line": 1477 + }, + { + "left_line": 1473, + "right_line": 1478 + }, + { + "left_line": 1474, + "right_line": 1479 + }, + { + "left_line": 1475, + "right_line": 1480 + }, + { + "left_line": 1476, + "right_line": 1481 + }, + { + "left_line": 1477, + "right_line": 1482 + }, + { + "left_line": 1478, + "right_line": 1483 + }, + { + "left_line": 1479, + "right_line": 1484 + }, + { + "left_line": 1480, + "right_line": 1485 + }, + { + "left_line": 1481, + "right_line": 1486 + }, + { + "left_line": 1482, + "right_line": 1487 + }, + { + "left_line": 1483, + "right_line": 1488 + }, + { + "left_line": 1484, + "right_line": 1489 + }, + { + "left_line": 1485, + "right_line": 1490 + }, + { + "left_line": 1486, + "right_line": 1491 + }, + { + "left_line": 1487, + "right_line": 1492 + }, + { + "left_line": 1488, + "right_line": 1493 + }, + { + "left_line": 1489, + "right_line": 1494 + }, + { + "left_line": 1490, + "right_line": 1495 + }, + { + "left_line": 1491, + "right_line": 1496 + }, + { + "left_line": 1492, + "right_line": 1497 + }, + { + "left_line": 1493, + "right_line": 1498 + }, + { + "left_line": 1494, + "right_line": 1499 + }, + { + "left_line": 1495, + "right_line": 1500 + }, + { + "left_line": 1496, + "right_line": 1501 + }, + { + "left_line": 1497, + "right_line": 1502 + }, + { + "left_line": 1498, + "right_line": 1503 + }, + { + "left_line": 1499, + "right_line": 1504 + }, + { + "left_line": 1500, + "right_line": 1505 + }, + { + "left_line": 1501, + "right_line": 1506 + }, + { + "left_line": 1502, + "right_line": 1507 + }, + { + "left_line": 1503, + "right_line": 1508 + }, + { + "left_line": 1504, + "right_line": 1509 + }, + { + "left_line": 1505, + "right_line": 1510 + }, + { + "left_line": 1506, + "right_line": 1511 + }, + { + "left_line": 1507, + "right_line": 1512 + }, + { + "left_line": 1508, + "right_line": 1513 + }, + { + "left_line": 1509, + "right_line": 1514 + }, + { + "left_line": 1510, + "right_line": 1515 + }, + { + "left_line": 1511, + "right_line": 1516 + }, + { + "left_line": 1512, + "right_line": 1517 + }, + { + "left_line": 1513, + "right_line": 1518 + }, + { + "left_line": 1514, + "right_line": 1519 + }, + { + "left_line": 1515, + "right_line": 1520 + }, + { + "left_line": 1516, + "right_line": 1521 + }, + { + "left_line": 1517, + "right_line": 1522 + }, + { + "left_line": 1518, + "right_line": 1523 + }, + { + "left_line": 1519, + "right_line": 1524 + }, + { + "left_line": 1520, + "right_line": 1525 + }, + { + "left_line": 1521, + "right_line": 1526 + }, + { + "left_line": 1522, + "right_line": 1527 + }, + { + "left_line": 1523, + "right_line": 1528 + }, + { + "left_line": 1524, + "right_line": 1529 + }, + { + "left_line": 1525, + "right_line": 1530 + }, + { + "left_line": 1526, + "right_line": 1531 + }, + { + "left_line": 1527, + "right_line": 1532 + }, + { + "left_line": 1528, + "right_line": 1533 + }, + { + "left_line": 1529, + "right_line": 1534 + }, + { + "left_line": 1530, + "right_line": 1535 + }, + { + "left_line": 1531, + "right_line": 1536 + }, + { + "left_line": 1532, + "right_line": 1537 + }, + { + "left_line": 1533, + "right_line": 1538 + }, + { + "left_line": 1534, + "right_line": 1539 + }, + { + "left_line": 1535, + "right_line": 1540 + }, + { + "left_line": 1536, + "right_line": 1541 + }, + { + "left_line": 1537, + "right_line": 1542 + }, + { + "left_line": 1538, + "right_line": 1543 + }, + { + "left_line": 1539, + "right_line": 1544 + }, + { + "left_line": 1540, + "right_line": 1545 + }, + { + "left_line": 1541, + "right_line": 1546 + }, + { + "left_line": 1542, + "right_line": 1547 + }, + { + "left_line": 1543, + "right_line": 1548 + }, + { + "left_line": 1544, + "right_line": 1549 + }, + { + "left_line": 1545, + "right_line": 1550 + }, + { + "left_line": 1546, + "right_line": 1551 + }, + { + "left_line": 1547, + "right_line": 1552 + }, + { + "left_line": 1548, + "right_line": 1553 + }, + { + "left_line": 1549, + "right_line": 1554 + }, + { + "left_line": 1550, + "right_line": 1555 + }, + { + "left_line": 1551, + "right_line": 1556 + }, + { + "left_line": 1552, + "right_line": 1557 + }, + { + "left_line": 1553, + "right_line": 1558 + }, + { + "left_line": 1554, + "right_line": 1559 + }, + { + "left_line": 1555, + "right_line": 1560 + }, + { + "left_line": 1556, + "right_line": 1561 + }, + { + "left_line": 1557, + "right_line": 1562 + }, + { + "left_line": 1558, + "right_line": 1563 + }, + { + "left_line": 1559, + "right_line": 1564 + }, + { + "left_line": 1560, + "right_line": 1565 + }, + { + "left_line": 1561, + "right_line": 1566 + }, + { + "left_line": 1562, + "right_line": 1567 + }, + { + "left_line": 1563, + "right_line": 1568 + }, + { + "left_line": 1564, + "right_line": 1569 + }, + { + "left_line": 1565, + "right_line": 1570 + }, + { + "left_line": 1566, + "right_line": 1571 + }, + { + "left_line": 1567, + "right_line": 1572 + }, + { + "left_line": 1568, + "right_line": 1573 + }, + { + "left_line": 1569, + "right_line": 1574 + }, + { + "left_line": 1570, + "right_line": 1575 + }, + { + "left_line": 1571, + "right_line": 1576 + }, + { + "left_line": 1572, + "right_line": 1577 + }, + { + "left_line": 1573, + "right_line": 1578 + }, + { + "left_line": 1574, + "right_line": 1579 + }, + { + "left_line": 1575, + "right_line": 1580 + }, + { + "left_line": 1576, + "right_line": 1581 + }, + { + "left_line": 1577, + "right_line": 1582 + }, + { + "left_line": 1578, + "right_line": 1583 + }, + { + "left_line": 1579, + "right_line": 1584 + }, + { + "left_line": 1580, + "right_line": 1585 + }, + { + "left_line": 1581, + "right_line": 1586 + }, + { + "left_line": 1582, + "right_line": 1587 + }, + { + "left_line": 1583, + "right_line": 1588 + }, + { + "left_line": 1584, + "right_line": 1589 + }, + { + "left_line": 1585, + "right_line": 1590 + }, + { + "left_line": 1586, + "right_line": 1591 + }, + { + "left_line": 1587, + "right_line": 1592 + }, + { + "left_line": 1588, + "right_line": 1593 + }, + { + "left_line": 1589, + "right_line": 1594 + }, + { + "left_line": 1590, + "right_line": 1595 + }, + { + "left_line": 1591, + "right_line": 1596 + }, + { + "left_line": 1592, + "right_line": 1597 + }, + { + "left_line": 1593, + "right_line": 1598 + }, + { + "left_line": 1594, + "right_line": 1599 + }, + { + "left_line": 1595, + "right_line": 1600 + }, + { + "left_line": 1596, + "right_line": 1601 + }, + { + "left_line": 1597, + "right_line": 1602 + }, + { + "left_line": 1598, + "right_line": 1603 + }, + { + "left_line": 1599, + "right_line": 1604 + }, + { + "left_line": 1600, + "right_line": 1605 + }, + { + "left_line": 1601, + "right_line": 1606 + }, + { + "left_line": 1602, + "right_line": 1607 + }, + { + "left_line": 1603, + "right_line": 1608 + }, + { + "left_line": 1604, + "right_line": 1609 + }, + { + "left_line": 1605, + "right_line": 1610 + }, + { + "left_line": 1606, + "right_line": 1611 + }, + { + "left_line": 1607, + "right_line": 1612 + }, + { + "left_line": 1608, + "right_line": 1613 + }, + { + "left_line": 1609, + "right_line": 1614 + }, + { + "left_line": 1610, + "right_line": 1615 + }, + { + "left_line": 1611, + "right_line": 1616 + }, + { + "left_line": 1612, + "right_line": 1617 + }, + { + "left_line": 1613, + "right_line": 1618 + }, + { + "left_line": 1614, + "right_line": 1619 + }, + { + "left_line": 1615, + "right_line": 1620 + }, + { + "left_line": 1616, + "right_line": 1621 + }, + { + "left_line": 1617, + "right_line": 1622 + }, + { + "left_line": 1618, + "right_line": 1623 + }, + { + "left_line": 1619, + "right_line": 1624 + }, + { + "left_line": 1620, + "right_line": 1625 + }, + { + "left_line": 1621, + "right_line": 1626 + }, + { + "left_line": 1622, + "right_line": 1627 + }, + { + "left_line": 1623, + "right_line": 1628 + }, + { + "left_line": 1624, + "right_line": 1629 + }, + { + "left_line": 1625, + "right_line": 1630 + }, + { + "left_line": 1626, + "right_line": 1631 + }, + { + "left_line": 1627, + "right_line": 1632 + }, + { + "left_line": 1628, + "right_line": 1633 + }, + { + "left_line": 1629, + "right_line": 1634 + }, + { + "left_line": 1630, + "right_line": 1635 + }, + { + "left_line": 1631, + "right_line": 1636 + }, + { + "left_line": 1632, + "right_line": 1637 + }, + { + "left_line": 1633, + "right_line": 1638 + }, + { + "left_line": 1634, + "right_line": 1639 + }, + { + "left_line": 1635, + "right_line": 1640 + }, + { + "left_line": 1636, + "right_line": 1641 + }, + { + "left_line": 1637, + "right_line": 1642 + }, + { + "left_line": 1638, + "right_line": 1643 + }, + { + "left_line": 1639, + "right_line": 1644 + }, + { + "left_line": 1640, + "right_line": 1645 + }, + { + "left_line": 1641, + "right_line": 1646 + }, + { + "left_line": 1642, + "right_line": 1647 + }, + { + "left_line": 1643, + "right_line": 1648 + }, + { + "left_line": 1644, + "right_line": 1649 + }, + { + "left_line": 1645, + "right_line": 1650 + }, + { + "left_line": 1646, + "right_line": 1651 + }, + { + "left_line": 1647, + "right_line": 1652 + }, + { + "left_line": 1648, + "right_line": 1653 + }, + { + "left_line": 1649, + "right_line": 1654 + }, + { + "left_line": 1650, + "right_line": 1655 + }, + { + "left_line": 1651, + "right_line": 1656 + }, + { + "left_line": 1652, + "right_line": 1657 + }, + { + "left_line": 1653, + "right_line": 1658 + }, + { + "left_line": 1654, + "right_line": 1659 + }, + { + "left_line": 1655, + "right_line": 1660 + }, + { + "left_line": 1656, + "right_line": 1661 + }, + { + "left_line": 1657, + "right_line": 1662 + }, + { + "left_line": 1658, + "right_line": 1663 + }, + { + "left_line": 1659, + "right_line": 1664 + }, + { + "left_line": 1660, + "right_line": 1665 + }, + { + "left_line": 1661, + "right_line": 1666 + }, + { + "left_line": 1662, + "right_line": 1667 + }, + { + "left_line": 1663, + "right_line": 1668 + }, + { + "left_line": 1664, + "right_line": 1669 + }, + { + "left_line": 1665, + "right_line": 1670 + }, + { + "left_line": 1666, + "right_line": 1671 + }, + { + "left_line": 1667, + "right_line": 1672 + }, + { + "left_line": 1668, + "right_line": 1673 + }, + { + "left_line": 1669, + "right_line": 1674 + }, + { + "left_line": 1670, + "right_line": 1675 + }, + { + "left_line": 1671, + "right_line": 1676 + }, + { + "left_line": 1672, + "right_line": 1677 + }, + { + "left_line": 1673, + "right_line": 1678 + }, + { + "left_line": 1674, + "right_line": 1679 + }, + { + "left_line": 1675, + "right_line": 1680 + }, + { + "left_line": 1676, + "right_line": 1681 + }, + { + "left_line": 1677, + "right_line": 1682 + }, + { + "left_line": 1678, + "right_line": 1683 + }, + { + "left_line": 1679, + "right_line": 1684 + }, + { + "left_line": 1680, + "right_line": 1685 + }, + { + "left_line": 1681, + "right_line": 1686 + }, + { + "left_line": 1682, + "right_line": 1687 + }, + { + "left_line": 1683, + "right_line": 1688 + }, + { + "left_line": 1684, + "right_line": 1689 + }, + { + "left_line": 1685, + "right_line": 1690 + }, + { + "left_line": 1686, + "right_line": 1691 + }, + { + "left_line": 1687, + "right_line": 1692 + }, + { + "left_line": 1688, + "right_line": 1693 + }, + { + "left_line": 1689, + "right_line": 1694 + }, + { + "left_line": 1690, + "right_line": 1695 + }, + { + "left_line": 1691, + "right_line": 1696 + }, + { + "left_line": 1692, + "right_line": 1697 + }, + { + "left_line": 1693, + "right_line": 1698 + }, + { + "left_line": 1694, + "right_line": 1699 + }, + { + "left_line": 1695, + "right_line": 1700 + }, + { + "left_line": 1696, + "right_line": 1701 + }, + { + "left_line": 1697, + "right_line": 1702 + }, + { + "left_line": 1698, + "right_line": 1703 + }, + { + "left_line": 1699, + "right_line": 1704 + }, + { + "left_line": 1700, + "right_line": 1705 + }, + { + "left_line": 1701, + "right_line": 1706 + }, + { + "left_line": 1702, + "right_line": 1707 + }, + { + "left_line": 1703, + "right_line": 1708 + }, + { + "left_line": 1704, + "right_line": 1709 + }, + { + "left_line": 1705, + "right_line": 1710 + }, + { + "left_line": 1706, + "right_line": 1711 + }, + { + "left_line": 1707, + "right_line": 1712 + }, + { + "left_line": 1708, + "right_line": 1713 + }, + { + "left_line": 1709, + "right_line": 1714 + }, + { + "left_line": 1710, + "right_line": 1715 + }, + { + "left_line": 1711, + "right_line": 1716 + }, + { + "left_line": 1712, + "right_line": 1717 + }, + { + "left_line": 1713, + "right_line": 1718 + }, + { + "left_line": 1714, + "right_line": 1719 + }, + { + "left_line": 1715, + "right_line": 1720 + }, + { + "left_line": 1716, + "right_line": 1721 + }, + { + "left_line": 1717, + "right_line": 1722 + }, + { + "left_line": 1718, + "right_line": 1723 + }, + { + "left_line": 1719, + "right_line": 1724 + }, + { + "left_line": 1720, + "right_line": 1725 + }, + { + "left_line": 1721, + "right_line": 1726 + }, + { + "left_line": 1722, + "right_line": 1727 + }, + { + "left_line": 1723, + "right_line": 1728 + }, + { + "left_line": 1724, + "right_line": 1729 + }, + { + "left_line": 1725, + "right_line": 1730 + }, + { + "left_line": 1726, + "right_line": 1731 + }, + { + "left_line": 1727, + "right_line": 1732 + }, + { + "left_line": 1728, + "right_line": 1733 + }, + { + "left_line": 1729, + "right_line": 1734 + }, + { + "left_line": 1730, + "right_line": 1735 + }, + { + "left_line": 1731, + "right_line": 1736 + }, + { + "left_line": 1732, + "right_line": 1737 + }, + { + "left_line": 1733, + "right_line": 1738 + }, + { + "left_line": 1734, + "right_line": 1739 + }, + { + "left_line": 1735, + "right_line": 1740 + }, + { + "left_line": 1736, + "right_line": 1741 + }, + { + "left_line": 1737, + "right_line": 1742 + }, + { + "left_line": 1738, + "right_line": 1743 + }, + { + "left_line": 1739, + "right_line": 1744 + }, + { + "left_line": 1740, + "right_line": 1745 + }, + { + "left_line": 1741, + "right_line": 1746 + }, + { + "left_line": 1742, + "right_line": 1747 + }, + { + "left_line": 1743, + "right_line": 1748 + }, + { + "left_line": 1744, + "right_line": 1749 + }, + { + "left_line": 1745, + "right_line": 1750 + }, + { + "left_line": 1746, + "right_line": 1751 + }, + { + "left_line": 1747, + "right_line": 1752 + }, + { + "left_line": 1748, + "right_line": 1753 + }, + { + "left_line": 1749, + "right_line": 1754 + }, + { + "left_line": 1750, + "right_line": 1755 + }, + { + "left_line": 1751, + "right_line": 1756 + }, + { + "left_line": 1752, + "right_line": 1757 + }, + { + "left_line": 1753, + "right_line": 1758 + }, + { + "left_line": 1754, + "right_line": 1759 + }, + { + "left_line": 1755, + "right_line": 1760 + }, + { + "left_line": 1756, + "right_line": 1761 + }, + { + "left_line": 1757, + "right_line": 1762 + }, + { + "left_line": 1758, + "right_line": 1763 + }, + { + "left_line": 1759, + "right_line": 1764 + }, + { + "left_line": 1760, + "right_line": 1765 + }, + { + "left_line": 1761, + "right_line": 1766 + }, + { + "left_line": 1762, + "right_line": 1767 + }, + { + "left_line": 1763, + "right_line": 1768 + }, + { + "left_line": 1764, + "right_line": 1769 + }, + { + "left_line": 1765, + "right_line": 1770 + }, + { + "left_line": 1766, + "right_line": 1771 + }, + { + "left_line": 1767, + "right_line": 1772 + }, + { + "left_line": 1768, + "right_line": 1773 + }, + { + "left_line": 1769, + "right_line": 1774 + }, + { + "left_line": 1770, + "right_line": 1775 + }, + { + "left_line": 1771, + "right_line": 1776 + }, + { + "left_line": 1772, + "right_line": 1777 + }, + { + "left_line": 1773, + "right_line": 1778 + }, + { + "left_line": 1774, + "right_line": 1779 + }, + { + "left_line": 1775, + "right_line": 1780 + }, + { + "left_line": 1776, + "right_line": 1781 + }, + { + "left_line": 1777, + "right_line": 1782 + }, + { + "left_line": 1778, + "right_line": 1783 + }, + { + "left_line": 1779, + "right_line": 1784 + }, + { + "left_line": 1780, + "right_line": 1785 + }, + { + "left_line": 1781, + "right_line": 1786 + }, + { + "left_line": 1782, + "right_line": 1787 + }, + { + "left_line": 1783, + "right_line": 1788 + }, + { + "left_line": 1784, + "right_line": 1789 + }, + { + "left_line": 1785, + "right_line": 1790 + }, + { + "left_line": 1786, + "right_line": 1791 + }, + { + "left_line": 1787, + "right_line": 1792 + }, + { + "left_line": 1788, + "right_line": 1793 + }, + { + "left_line": 1789, + "right_line": 1794 + }, + { + "left_line": 1790, + "right_line": 1795 + }, + { + "left_line": 1791, + "right_line": 1796 + }, + { + "left_line": 1792, + "right_line": 1797 + }, + { + "left_line": 1793, + "right_line": 1798 + }, + { + "left_line": 1794, + "right_line": 1799 + }, + { + "left_line": 1795, + "right_line": 1800 + }, + { + "left_line": 1796, + "right_line": 1801 + }, + { + "left_line": 1797, + "right_line": 1802 + }, + { + "left_line": 1798, + "right_line": 1803 + }, + { + "left_line": 1799, + "right_line": 1804 + }, + { + "left_line": 1800, + "right_line": 1805 + }, + { + "left_line": 1801, + "right_line": 1806 + }, + { + "left_line": 1802, + "right_line": 1807 + }, + { + "left_line": 1803, + "right_line": 1808 + }, + { + "left_line": 1804, + "right_line": 1809 + }, + { + "left_line": 1805, + "right_line": 1810 + }, + { + "left_line": 1806, + "right_line": 1811 + }, + { + "left_line": 1807, + "right_line": 1812 + }, + { + "left_line": 1808, + "right_line": 1813 + }, + { + "left_line": 1809, + "right_line": 1814 + }, + { + "left_line": 1810, + "right_line": 1815 + }, + { + "left_line": 1811, + "right_line": 1816 + }, + { + "left_line": 1812, + "right_line": 1817 + }, + { + "left_line": 1813, + "right_line": 1818 + }, + { + "left_line": 1814, + "right_line": 1819 + }, + { + "left_line": 1815, + "right_line": 1820 + }, + { + "left_line": 1816, + "right_line": 1821 + }, + { + "left_line": 1817, + "right_line": 1822 + }, + { + "left_line": 1818, + "right_line": 1823 + }, + { + "left_line": 1819, + "right_line": 1824 + }, + { + "left_line": 1820, + "right_line": 1825 + }, + { + "left_line": 1821, + "right_line": 1826 + }, + { + "left_line": 1822, + "right_line": 1827 + }, + { + "left_line": 1823, + "right_line": 1828 + }, + { + "left_line": 1824, + "right_line": 1829 + }, + { + "left_line": 1825, + "right_line": 1830 + }, + { + "left_line": 1826, + "right_line": 1831 + }, + { + "left_line": 1827, + "right_line": 1832 + }, + { + "left_line": 1828, + "right_line": 1833 + }, + { + "left_line": 1829, + "right_line": 1834 + }, + { + "left_line": 1830, + "right_line": 1835 + }, + { + "left_line": 1831, + "right_line": 1836 + }, + { + "left_line": 1832, + "right_line": 1837 + }, + { + "left_line": 1833, + "right_line": 1838 + }, + { + "left_line": 1834, + "right_line": 1839 + }, + { + "left_line": 1835, + "right_line": 1840 + }, + { + "left_line": 1836, + "right_line": 1841 + }, + { + "left_line": 1837, + "right_line": 1842 + }, + { + "left_line": 1838, + "right_line": 1843 + }, + { + "left_line": 1839, + "right_line": 1844 + }, + { + "left_line": 1840, + "right_line": 1845 + }, + { + "left_line": 1841, + "right_line": 1846 + }, + { + "left_line": 1842, + "right_line": 1847 + }, + { + "left_line": 1843, + "right_line": 1848 + }, + { + "left_line": 1844, + "right_line": 1849 + }, + { + "left_line": 1845, + "right_line": 1850 + }, + { + "left_line": 1846, + "right_line": 1851 + }, + { + "left_line": 1847, + "right_line": 1852 + }, + { + "left_line": 1848, + "right_line": 1853 + }, + { + "left_line": 1849, + "right_line": 1854 + }, + { + "left_line": 1850, + "right_line": 1855 + }, + { + "left_line": 1851, + "right_line": 1856 + }, + { + "left_line": 1852, + "right_line": 1857 + }, + { + "left_line": 1853, + "right_line": 1858 + }, + { + "left_line": 1854, + "right_line": 1859 + }, + { + "left_line": 1855, + "right_line": 1860 + }, + { + "left_line": 1856, + "right_line": 1861 + }, + { + "left_line": 1857, + "right_line": 1862 + }, + { + "left_line": 1858, + "right_line": 1863 + }, + { + "left_line": 1859, + "right_line": 1864 + }, + { + "left_line": 1860, + "right_line": 1865 + }, + { + "left_line": 1861, + "right_line": 1866 + }, + { + "left_line": 1862, + "right_line": 1867 + }, + { + "left_line": 1863, + "right_line": 1868 + }, + { + "left_line": 1864, + "right_line": 1869 + }, + { + "left_line": 1865, + "right_line": 1870 + }, + { + "left_line": 1866, + "right_line": 1871 + }, + { + "left_line": 1867, + "right_line": 1872 + }, + { + "left_line": 1868, + "right_line": 1873 + }, + { + "left_line": 1869, + "right_line": 1874 + }, + { + "left_line": 1870, + "right_line": 1875 + }, + { + "left_line": 1871, + "right_line": 1876 + }, + { + "left_line": 1872, + "right_line": 1877 + }, + { + "left_line": 1873, + "right_line": 1878 + }, + { + "left_line": 1874, + "right_line": 1879 + }, + { + "left_line": 1875, + "right_line": 1880 + }, + { + "left_line": 1876, + "right_line": 1881 + }, + { + "left_line": 1877, + "right_line": 1882 + }, + { + "left_line": 1878, + "right_line": 1883 + }, + { + "left_line": 1879, + "right_line": 1884 + }, + { + "left_line": 1880, + "right_line": 1885 + }, + { + "left_line": 1881, + "right_line": 1886 + }, + { + "left_line": 1882, + "right_line": 1887 + }, + { + "left_line": 1883, + "right_line": 1888 + }, + { + "left_line": 1884, + "right_line": 1889 + }, + { + "left_line": 1885, + "right_line": 1890 + }, + { + "left_line": 1886, + "right_line": 1891 + }, + { + "left_line": 1887, + "right_line": 1892 + }, + { + "left_line": 1888, + "right_line": 1893 + }, + { + "left_line": 1889, + "right_line": 1894 + }, + { + "left_line": 1890, + "right_line": 1895 + }, + { + "left_line": 1891, + "right_line": 1896 + }, + { + "left_line": 1892, + "right_line": 1897 + }, + { + "left_line": 1893, + "right_line": 1898 + }, + { + "left_line": 1894, + "right_line": 1899 + }, + { + "left_line": 1895, + "right_line": 1900 + }, + { + "left_line": 1896, + "right_line": 1901 + }, + { + "left_line": 1897, + "right_line": 1902 + }, + { + "left_line": 1898, + "right_line": 1903 + }, + { + "left_line": 1899, + "right_line": 1904 + }, + { + "left_line": 1900, + "right_line": 1905 + }, + { + "left_line": 1901, + "right_line": 1906 + }, + { + "left_line": 1902, + "right_line": 1907 + }, + { + "left_line": 1903, + "right_line": 1908 + }, + { + "left_line": 1904, + "right_line": 1909 + }, + { + "left_line": 1905, + "right_line": 1910 + }, + { + "left_line": 1906, + "right_line": 1911 + }, + { + "left_line": 1907, + "right_line": 1912 + }, + { + "left_line": 1908, + "right_line": 1913 + }, + { + "left_line": 1909, + "right_line": 1914 + }, + { + "left_line": 1910, + "right_line": 1915 + }, + { + "left_line": 1911, + "right_line": 1916 + }, + { + "left_line": 1912, + "right_line": 1917 + }, + { + "left_line": 1913, + "right_line": 1918 + }, + { + "left_line": 1914, + "right_line": 1919 + }, + { + "left_line": 1915, + "right_line": 1920 + }, + { + "left_line": 1916, + "right_line": 1921 + }, + { + "left_line": 1917, + "right_line": 1922 + }, + { + "left_line": 1918, + "right_line": 1923 + }, + { + "left_line": 1919, + "right_line": 1924 + }, + { + "left_line": 1920, + "right_line": 1925 + }, + { + "left_line": 1921, + "right_line": 1926 + }, + { + "left_line": 1922, + "right_line": 1927 + }, + { + "left_line": 1923, + "right_line": 1928 + }, + { + "left_line": 1924, + "right_line": 1929 + }, + { + "left_line": 1925, + "right_line": 1930 + }, + { + "left_line": 1926, + "right_line": 1931 + }, + { + "left_line": 1927, + "right_line": 1932 + }, + { + "left_line": 1928, + "right_line": 1933 + }, + { + "left_line": 1929, + "right_line": 1934 + }, + { + "left_line": 1930, + "right_line": 1935 + }, + { + "left_line": 1931, + "right_line": 1936 + }, + { + "left_line": 1932, + "right_line": 1937 + }, + { + "left_line": 1933, + "right_line": 1938 + }, + { + "left_line": 1934, + "right_line": 1939 + }, + { + "left_line": 1935, + "right_line": 1940 + }, + { + "left_line": 1936, + "right_line": 1941 + }, + { + "left_line": 1937, + "right_line": 1942 + }, + { + "left_line": 1938, + "right_line": 1943 + }, + { + "left_line": 1939, + "right_line": 1944 + }, + { + "left_line": 1940, + "right_line": 1945 + }, + { + "left_line": 1941, + "right_line": 1946 + }, + { + "left_line": 1942, + "right_line": 1947 + }, + { + "left_line": 1943, + "right_line": 1948 + }, + { + "left_line": 1944, + "right_line": 1949 + }, + { + "left_line": 1945, + "right_line": 1950 + }, + { + "left_line": 1946, + "right_line": 1951 + }, + { + "left_line": 1947, + "right_line": 1952 + }, + { + "left_line": 1948, + "right_line": 1953 + }, + { + "left_line": 1949, + "right_line": 1954 + }, + { + "left_line": 1950, + "right_line": 1955 + }, + { + "left_line": 1951, + "right_line": 1956 + }, + { + "left_line": 1952, + "right_line": 1957 + }, + { + "left_line": 1953, + "right_line": 1958 + }, + { + "left_line": 1954, + "right_line": 1959 + }, + { + "left_line": 1955, + "right_line": 1960 + }, + { + "left_line": 1956, + "right_line": 1961 + }, + { + "left_line": 1957, + "right_line": 1962 + }, + { + "left_line": 1958, + "right_line": 1963 + }, + { + "left_line": 1959, + "right_line": 1964 + }, + { + "left_line": 1960, + "right_line": 1965 + }, + { + "left_line": 1961, + "right_line": 1966 + }, + { + "left_line": 1962, + "right_line": 1967 + }, + { + "left_line": 1963, + "right_line": 1968 + }, + { + "left_line": 1964, + "right_line": 1969 + }, + { + "left_line": 1965, + "right_line": 1970 + }, + { + "left_line": 1966, + "right_line": 1971 + }, + { + "left_line": 1967, + "right_line": 1972 + }, + { + "left_line": 1968, + "right_line": 1973 + }, + { + "left_line": 1969, + "right_line": 1974 + }, + { + "left_line": 1970, + "right_line": 1975 + }, + { + "left_line": 1971, + "right_line": 1976 + }, + { + "left_line": 1972, + "right_line": 1977 + }, + { + "left_line": 1973, + "right_line": 1978 + }, + { + "left_line": 1974, + "right_line": 1979 + }, + { + "left_line": 1975, + "right_line": 1980 + }, + { + "left_line": 1976, + "right_line": 1981 + }, + { + "left_line": 1977, + "right_line": 1982 + }, + { + "left_line": 1978, + "right_line": 1983 + }, + { + "left_line": 1979, + "right_line": 1984 + }, + { + "left_line": 1980, + "right_line": 1985 + }, + { + "left_line": 1981, + "right_line": 1986 + }, + { + "left_line": 1982, + "right_line": 1987 + }, + { + "left_line": 1983, + "right_line": 1988 + }, + { + "left_line": 1984, + "right_line": 1989 + }, + { + "left_line": 1985, + "right_line": 1990 + }, + { + "left_line": 1986, + "right_line": 1991 + }, + { + "left_line": 1987, + "right_line": 1992 + }, + { + "left_line": 1988, + "right_line": 1993 + }, + { + "left_line": 1989, + "right_line": 1994 + }, + { + "left_line": 1990, + "right_line": 1995 + }, + { + "left_line": 1991, + "right_line": 1996 + }, + { + "left_line": 1992, + "right_line": 1997 + }, + { + "left_line": 1993, + "right_line": 1998 + }, + { + "left_line": 1994, + "right_line": 1999 + }, + { + "left_line": 1995, + "right_line": 2000 + }, + { + "left_line": 1996, + "right_line": 2001 + }, + { + "left_line": 1997, + "right_line": 2002 + }, + { + "left_line": 1998, + "right_line": 2003 + }, + { + "left_line": 1999, + "right_line": 2004 + }, + { + "left_line": 2000, + "right_line": 2005 + }, + { + "left_line": 2001, + "right_line": 2006 + }, + { + "left_line": 2002, + "right_line": 2007 + }, + { + "left_line": 2003, + "right_line": 2008 + }, + { + "left_line": 2004, + "right_line": 2009 + }, + { + "left_line": 2005, + "right_line": 2010 + }, + { + "left_line": 2006, + "right_line": 2011 + }, + { + "left_line": 2007, + "right_line": 2012 + }, + { + "left_line": 2008, + "right_line": 2013 + }, + { + "left_line": 2009, + "right_line": 2014 + }, + { + "left_line": 2010, + "right_line": 2015 + }, + { + "left_line": 2011, + "right_line": 2016 + }, + { + "left_line": 2012, + "right_line": 2017 + }, + { + "left_line": 2013, + "right_line": 2018 + }, + { + "left_line": 2014, + "right_line": 2019 + }, + { + "left_line": 2015, + "right_line": 2020 + }, + { + "left_line": 2016, + "right_line": 2021 + }, + { + "left_line": 2017, + "right_line": 2022 + }, + { + "left_line": 2018, + "right_line": 2023 + }, + { + "left_line": 2019, + "right_line": 2024 + }, + { + "left_line": 2020, + "right_line": 2025 + }, + { + "left_line": 2021, + "right_line": 2026 + }, + { + "left_line": 2022, + "right_line": 2027 + }, + { + "left_line": 2023, + "right_line": 2028 + }, + { + "left_line": 2024, + "right_line": 2029 + }, + { + "left_line": 2025, + "right_line": 2030 + }, + { + "left_line": 2026, + "right_line": 2031 + }, + { + "left_line": 2027, + "right_line": 2032 + }, + { + "left_line": 2028, + "right_line": 2033 + }, + { + "left_line": 2029, + "right_line": 2034 + }, + { + "left_line": 2030, + "right_line": 2035 + }, + { + "left_line": 2031, + "right_line": 2036 + }, + { + "left_line": 2032, + "right_line": 2037 + }, + { + "left_line": 2033, + "right_line": 2038 + }, + { + "left_line": 2034, + "right_line": 2039 + }, + { + "left_line": 2035, + "right_line": 2040 + }, + { + "left_line": 2036, + "right_line": 2041 + }, + { + "left_line": 2037, + "right_line": 2042 + }, + { + "left_line": 2038, + "right_line": 2043 + }, + { + "left_line": 2039, + "right_line": 2044 + }, + { + "left_line": 2040, + "right_line": 2045 + }, + { + "left_line": 2041, + "right_line": 2046 + }, + { + "left_line": 2042, + "right_line": 2047 + }, + { + "left_line": 2043, + "right_line": 2048 + }, + { + "left_line": 2044, + "right_line": 2049 + }, + { + "left_line": 2045, + "right_line": 2050 + }, + { + "left_line": 2046, + "right_line": 2051 + }, + { + "left_line": 2047, + "right_line": 2052 + }, + { + "left_line": 2048, + "right_line": 2053 + }, + { + "left_line": 2049, + "right_line": 2054 + }, + { + "left_line": 2050, + "right_line": 2055 + }, + { + "left_line": 2051, + "right_line": 2056 + }, + { + "left_line": 2052, + "right_line": 2057 + }, + { + "left_line": 2053, + "right_line": 2058 + }, + { + "left_line": 2054, + "right_line": 2059 + }, + { + "left_line": 2055, + "right_line": 2060 + }, + { + "left_line": 2056, + "right_line": 2061 + }, + { + "left_line": 2057, + "right_line": 2062 + }, + { + "left_line": 2058, + "right_line": 2063 + }, + { + "left_line": 2059, + "right_line": 2064 + }, + { + "left_line": 2060, + "right_line": 2065 + }, + { + "left_line": 2061, + "right_line": 2066 + }, + { + "left_line": 2062, + "right_line": 2067 + }, + { + "left_line": 2063, + "right_line": 2068 + }, + { + "left_line": 2064, + "right_line": 2069 + }, + { + "left_line": 2065, + "right_line": 2070 + }, + { + "left_line": 2066, + "right_line": 2071 + }, + { + "left_line": 2067, + "right_line": 2072 + }, + { + "left_line": 2068, + "right_line": 2073 + }, + { + "left_line": 2069, + "right_line": 2074 + }, + { + "left_line": 2070, + "right_line": 2075 + }, + { + "left_line": 2071, + "right_line": 2076 + }, + { + "left_line": 2072, + "right_line": 2077 + }, + { + "left_line": 2073, + "right_line": 2078 + }, + { + "left_line": 2074, + "right_line": 2079 + }, + { + "left_line": 2075, + "right_line": 2080 + }, + { + "left_line": 2076, + "right_line": 2081 + }, + { + "left_line": 2077, + "right_line": 2082 + }, + { + "left_line": 2078, + "right_line": 2083 + }, + { + "left_line": 2079, + "right_line": 2084 + }, + { + "left_line": 2080, + "right_line": 2085 + }, + { + "left_line": 2081, + "right_line": 2086 + }, + { + "left_line": 2082, + "right_line": 2087 + }, + { + "left_line": 2083, + "right_line": 2088 + }, + { + "left_line": 2084, + "right_line": 2089 + }, + { + "left_line": 2085, + "right_line": 2090 + }, + { + "left_line": 2086, + "right_line": 2091 + }, + { + "left_line": 2087, + "right_line": 2092 + }, + { + "left_line": 2088, + "right_line": 2093 + }, + { + "left_line": 2089, + "right_line": 2094 + }, + { + "left_line": 2090, + "right_line": 2095 + }, + { + "left_line": 2091, + "right_line": 2096 + }, + { + "left_line": 2092, + "right_line": 2097 + }, + { + "left_line": 2093, + "right_line": 2098 + }, + { + "left_line": 2094, + "right_line": 2099 + }, + { + "left_line": 2095, + "right_line": 2100 + }, + { + "left_line": 2096, + "right_line": 2101 + }, + { + "left_line": 2097, + "right_line": 2102 + }, + { + "left_line": 2098, + "right_line": 2103 + }, + { + "left_line": 2099, + "right_line": 2104 + }, + { + "left_line": 2100, + "right_line": 2105 + }, + { + "left_line": 2101, + "right_line": 2106 + }, + { + "left_line": 2102, + "right_line": 2107 + }, + { + "left_line": 2103, + "right_line": 2108 + }, + { + "left_line": 2104, + "right_line": 2109 + }, + { + "left_line": 2105, + "right_line": 2110 + }, + { + "left_line": 2106, + "right_line": 2111 + }, + { + "left_line": 2107, + "right_line": 2112 + }, + { + "left_line": 2108, + "right_line": 2113 + }, + { + "left_line": 2109, + "right_line": 2114 + }, + { + "left_line": 2110, + "right_line": 2115 + }, + { + "left_line": 2111, + "right_line": 2116 + }, + { + "left_line": 2112, + "right_line": 2117 + }, + { + "left_line": 2113, + "right_line": 2118 + }, + { + "left_line": 2114, + "right_line": 2119 + }, + { + "left_line": 2115, + "right_line": 2120 + }, + { + "left_line": 2116, + "right_line": 2121 + }, + { + "left_line": 2117, + "right_line": 2122 + }, + { + "left_line": 2118, + "right_line": 2123 + }, + { + "left_line": 2119, + "right_line": 2124 + }, + { + "left_line": 2120, + "right_line": 2125 + }, + { + "left_line": 2121, + "right_line": 2126 + }, + { + "left_line": 2122, + "right_line": 2127 + }, + { + "left_line": 2123, + "right_line": 2128 + }, + { + "left_line": 2124, + "right_line": 2129 + }, + { + "left_line": 2125, + "right_line": 2130 + }, + { + "left_line": 2126, + "right_line": 2131 + }, + { + "left_line": 2127, + "right_line": 2132 + }, + { + "left_line": 2128, + "right_line": 2133 + }, + { + "left_line": 2129, + "right_line": 2134 + }, + { + "left_line": 2130, + "right_line": 2135 + }, + { + "left_line": 2131, + "right_line": 2136 + }, + { + "left_line": 2132, + "right_line": 2137 + }, + { + "left_line": 2133, + "right_line": 2138 + }, + { + "left_line": 2134, + "right_line": 2139 + }, + { + "left_line": 2135, + "right_line": 2140 + }, + { + "left_line": 2136, + "right_line": 2141 + }, + { + "left_line": 2137, + "right_line": 2142 + }, + { + "left_line": 2138, + "right_line": 2143 + }, + { + "left_line": 2139, + "right_line": 2144 + }, + { + "left_line": 2140, + "right_line": 2145 + }, + { + "left_line": 2141, + "right_line": 2146 + }, + { + "left_line": 2142, + "right_line": 2147 + }, + { + "left_line": 2143, + "right_line": 2148 + }, + { + "left_line": 2144, + "right_line": 2149 + }, + { + "left_line": 2145, + "right_line": 2150 + }, + { + "left_line": 2146, + "right_line": 2151 + }, + { + "left_line": 2147, + "right_line": 2152 + }, + { + "left_line": 2148, + "right_line": 2153 + }, + { + "left_line": 2149, + "right_line": 2154 + }, + { + "left_line": 2150, + "right_line": 2155 + }, + { + "left_line": 2151, + "right_line": 2156 + }, + { + "left_line": 2152, + "right_line": 2157 + }, + { + "left_line": 2153, + "right_line": 2158 + }, + { + "left_line": 2154, + "right_line": 2159 + }, + { + "left_line": 2155, + "right_line": 2160 + }, + { + "left_line": 2156, + "right_line": 2161 + }, + { + "left_line": 2157, + "right_line": 2162 + }, + { + "left_line": 2158, + "right_line": 2163 + }, + { + "left_line": 2159, + "right_line": 2164 + }, + { + "left_line": 2160, + "right_line": 2165 + }, + { + "left_line": 2161, + "right_line": 2166 + }, + { + "left_line": 2162, + "right_line": 2167 + }, + { + "left_line": 2163, + "right_line": 2168 + }, + { + "left_line": 2164, + "right_line": 2169 + }, + { + "left_line": 2165, + "right_line": 2170 + }, + { + "left_line": 2166, + "right_line": 2171 + }, + { + "left_line": 2167, + "right_line": 2172 + }, + { + "left_line": 2168, + "right_line": 2173 + }, + { + "left_line": 2169, + "right_line": 2174 + }, + { + "left_line": 2170, + "right_line": 2175 + }, + { + "left_line": 2171, + "right_line": 2176 + }, + { + "left_line": 2172, + "right_line": 2177 + }, + { + "left_line": 2173, + "right_line": 2178 + }, + { + "left_line": 2174, + "right_line": 2179 + }, + { + "left_line": 2175, + "right_line": 2180 + }, + { + "left_line": 2176, + "right_line": 2181 + }, + { + "left_line": 2177, + "right_line": 2182 + }, + { + "left_line": 2178, + "right_line": 2183 + }, + { + "left_line": 2179, + "right_line": 2184 + }, + { + "left_line": 2180, + "right_line": 2185 + }, + { + "left_line": 2181, + "right_line": 2186 + }, + { + "left_line": 2182, + "right_line": 2187 + }, + { + "left_line": 2183, + "right_line": 2188 + }, + { + "left_line": 2184, + "right_line": 2189 + }, + { + "left_line": 2185, + "right_line": 2190 + }, + { + "left_line": 2186, + "right_line": 2191 + }, + { + "left_line": 2187, + "right_line": 2192 + }, + { + "left_line": 2188, + "right_line": 2193 + }, + { + "left_line": 2189, + "right_line": 2194 + }, + { + "left_line": 2190, + "right_line": 2195 + }, + { + "left_line": 2191, + "right_line": 2196 + }, + { + "left_line": 2192, + "right_line": 2197 + }, + { + "left_line": 2193, + "right_line": 2198 + }, + { + "left_line": 2194, + "right_line": 2199 + }, + { + "left_line": 2195, + "right_line": 2200 + }, + { + "left_line": 2196, + "right_line": 2201 + }, + { + "left_line": 2197, + "right_line": 2202 + }, + { + "left_line": 2198, + "right_line": 2203 + }, + { + "left_line": 2199, + "right_line": 2204 + }, + { + "left_line": 2200, + "right_line": 2205 + }, + { + "left_line": 2201, + "right_line": 2206 + }, + { + "left_line": 2202, + "right_line": 2207 + }, + { + "left_line": 2203, + "right_line": 2208 + }, + { + "left_line": 2204, + "right_line": 2209 + }, + { + "left_line": 2205, + "right_line": 2210 + }, + { + "left_line": 2206, + "right_line": 2211 + }, + { + "left_line": 2207, + "right_line": 2212 + }, + { + "left_line": 2208, + "right_line": 2213 + }, + { + "left_line": 2209, + "right_line": 2214 + }, + { + "left_line": 2210, + "right_line": 2215 + }, + { + "left_line": 2211, + "right_line": 2216 + }, + { + "left_line": 2212, + "right_line": 2217 + }, + { + "left_line": 2213, + "right_line": 2218 + }, + { + "left_line": 2214, + "right_line": 2219 + }, + { + "left_line": 2215, + "right_line": 2220 + }, + { + "left_line": 2216, + "right_line": 2221 + }, + { + "left_line": 2217, + "right_line": 2222 + }, + { + "left_line": 2218, + "right_line": 2223 + }, + { + "left_line": 2219, + "right_line": 2224 + }, + { + "left_line": 2220, + "right_line": 2225 + }, + { + "left_line": 2221, + "right_line": 2226 + }, + { + "left_line": 2222, + "right_line": 2227 + }, + { + "left_line": 2223, + "right_line": 2228 + }, + { + "left_line": 2224, + "right_line": 2229 + }, + { + "left_line": 2225, + "right_line": 2230 + }, + { + "left_line": 2226, + "right_line": 2231 + }, + { + "left_line": 2227, + "right_line": 2232 + }, + { + "left_line": 2228, + "right_line": 2233 + }, + { + "left_line": 2229, + "right_line": 2234 + }, + { + "left_line": 2230, + "right_line": 2235 + }, + { + "left_line": 2231, + "right_line": 2236 + }, + { + "left_line": 2232, + "right_line": 2237 + }, + { + "left_line": 2233, + "right_line": 2238 + }, + { + "left_line": 2234, + "right_line": 2239 + }, + { + "left_line": 2235, + "right_line": 2240 + }, + { + "left_line": 2236, + "right_line": 2241 + }, + { + "left_line": 2237, + "right_line": 2242 + }, + { + "left_line": 2238, + "right_line": 2243 + }, + { + "left_line": 2239, + "right_line": 2244 + }, + { + "left_line": 2240, + "right_line": 2245 + }, + { + "left_line": 2241, + "right_line": 2246 + }, + { + "left_line": 2242, + "right_line": 2247 + }, + { + "left_line": 2243, + "right_line": 2248 + }, + { + "left_line": 2244, + "right_line": 2249 + }, + { + "left_line": 2245, + "right_line": 2250 + }, + { + "left_line": 2246, + "right_line": 2251 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_cargo_workspace_members/metadata.json b/tests/testdata/json_schemastore_cargo_workspace_members/metadata.json new file mode 100644 index 0000000..d286f2d --- /dev/null +++ b/tests/testdata/json_schemastore_cargo_workspace_members/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "76040a6638273c2434500811ecbb1d11ce150a82", + "description": "Add cargo workspace members schema", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_cargo_workspace_members/new.json b/tests/testdata/json_schemastore_cargo_workspace_members/new.json new file mode 100644 index 0000000..94a34c9 --- /dev/null +++ b/tests/testdata/json_schemastore_cargo_workspace_members/new.json @@ -0,0 +1,2251 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/cargo.json", + "x-tombi-toml-version": "v1.0.0", + "definitions": { + "Build": { + "title": "Build", + "description": "The `build` field specifies a file in the package root which is a [build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) for building native code. More information can be found in the [build script guide](https://doc.rust-lang.org/cargo/reference/build-scripts.html).\n\n\n```toml\n[package]\n# ...\nbuild = \"build.rs\"\n```\n\nThe default is `\"build.rs\"`, which loads the script from a file named\n`build.rs` in the root of the package. Use `build = \"custom_build_name.rs\"` to\nspecify a path to a different file or `build = false` to disable automatic\ndetection of the build script.\n", + "anyOf": [ + { + "description": "Path to the build file.", + "type": "string" + }, + { + "type": "boolean", + "enum": [true, false], + "x-taplo": { + "docs": { + "enumValues": [ + "Automatically detect the build file (`build.rs`).", + "Disable automatic detection of the build file." + ] + } + } + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-build-field" + } + } + }, + "DebugLevel": { + "title": "Debug Level", + "description": "The `debug` setting controls the [`-C debuginfo` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#debuginfo) which controls the\namount of debug information included in the compiled binary.", + "oneOf": [ + { + "type": "string", + "enum": [ + "none", + "line-directives-only", + "line-tables-only", + "limited", + "full" + ] + }, + { + "type": "boolean" + }, + { + "type": "integer", + "enum": [0, 1, 2] + } + ], + "x-taplo": { + "docs": { + "enumValues": [ + "No debug info at all, default for `release` profile", + "Debug info without type or variable-level information. Generates more detailed module-level info than `line-tables-only`.", + "Full debug info, default for `dev` profile", + "Full debug info, default for `dev` profile", + "No debug info at all, default for `release` profile", + "No debug info at all, default for `release` profile", + "Line info directives only. For the nvptx* targets this enables [profiling](https://reviews.llvm.org/D46061). For other use cases, `line-tables-only` is the better, more compatible choice.", + "Line tables only. Generates the minimal amount of debug info for backtraces with filename/line number info, but not anything else, i.e. no variable or function parameter info.", + "Debug info without type or variable-level information. Generates more detailed module-level info than `line-tables-only`.", + "Full debug info, default for `dev` profile" + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#debug" + } + } + }, + "Dependency": { + "title": "Dependency", + "anyOf": [ + { + "$ref": "#/definitions/SemVerRequirement" + }, + { + "$ref": "#/definitions/DetailedDependency" + } + ] + }, + "DetailedDependency": { + "title": "Detailed Dependency", + "type": "object", + "properties": { + "workspace": { + "description": "Inherit this dependency from the workspace manifest.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace" + } + } + }, + "path": { + "description": "Cargo supports **path dependencies** which are typically sub-crates that live within one repository.\nLet's start off by making a new crate inside of our `hello_world` package:\n\n```console\n# inside of hello_world/\n$ cargo new hello_utils\n```\n\nThis will create a new folder `hello_utils` inside of which a `Cargo.toml` and\n`src` folder are ready to be configured. In order to tell Cargo about this, open\nup `hello_world/Cargo.toml` and add `hello_utils` to your dependencies:\n\n```toml\n[dependencies]\nhello_utils = { path = \"hello_utils\" }\n```\n\nThis tells Cargo that we depend on a crate called `hello_utils` which is found\nin the `hello_utils` folder (relative to the `Cargo.toml` it's written in).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies" + } + } + }, + "git": { + "description": "To depend on a library located in a `git` repository, the minimum information\nyou need to specify is the location of the repository with the `git` key:\n\n```toml\n[dependencies]\nrand = { git = \"https://github.com/rust-lang-nursery/rand\" }\n```\n\nCargo will fetch the `git` repository at this location then look for a\n`Cargo.toml` for the requested crate anywhere inside the `git` repository\n(not necessarily at the root - for example, specifying a member crate name\nof a workspace and setting `git` to the repository containing the workspace).\n\nSince we haven't specified any other information, Cargo assumes that\nwe intend to use the latest commit on the main branch to build our package.\nYou can combine the `git` key with the `rev`, `tag`, or `branch` keys to\nspecify something else. Here's an example of specifying that you want to use\nthe latest commit on a branch named `next`:\n\n```toml\n[dependencies]\nrand = { git = \"https://github.com/rust-lang-nursery/rand\", branch = \"next\" }\n```\n\nSee [Git Authentication](https://doc.rust-lang.org/cargo/appendix/git-authentication.html) for help with git authentication for private repos.\n\n> **Note**: [crates.io](https://crates.io/) does not allow packages to be published with `git`\n> dependencies (`git` [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) are ignored). See the [Multiple\n> locations](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#multiple-locations) section for a fallback alternative.\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories" + } + } + }, + "branch": { + "description": "Specify the Git branch to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories" + } + } + }, + "rev": { + "description": "Specify the Git revision to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choice-of-commit).\n\nThis can be a commit hash, or a named reference exposed by the remote repository. GitHub Pull Requests may be specified using the `refs/pull/ID/head` format.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choice-of-commit" + } + } + }, + "tag": { + "description": "Specify the Git tag to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories" + } + } + }, + "version": { + "$ref": "#/definitions/SemVerRequirement" + }, + "default-features": { + "description": "Use the default features of the dependency.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + } + } + }, + "default_features": { + "type": "boolean", + "description": "\"default_features\" is deprecated. Use \"default-features\" instead.", + "deprecated": true, + "x-taplo": { + "hidden": true + } + }, + "features": { + "description": "List of features to activate in the dependency.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "List of features to activate in the dependency.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + }, + "plugins": ["crates"], + "crates": { + "schemas": "feature" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + } + } + }, + "optional": { + "description": "Mark the dependency as optional.\n\nOptional dependencies can be activated through features.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + } + } + }, + "package": { + "description": "Specify the name of the package.\n\nWhen writing a `[dependencies]` section in `Cargo.toml` the key you write for a\ndependency typically matches up to the name of the crate you import from in the\ncode. For some projects, though, you may wish to reference the crate with a\ndifferent name in the code regardless of how it's published on crates.io. For\nexample you may wish to:\n\n* Avoid the need to `use foo as bar` in Rust source.\n* Depend on multiple versions of a crate.\n* Depend on crates with the same name from different registries.\n\nTo support this Cargo supports a `package` key in the `[dependencies]` section\nof which package should be depended on:\n\n```toml\n[package]\nname = \"mypackage\"\nversion = \"0.0.1\"\n\n[dependencies]\nfoo = \"0.1\"\nbar = { git = \"https://github.com/example/project\", package = \"foo\" }\nbaz = { version = \"0.1\", registry = \"custom\", package = \"foo\" }\n```\n\nIn this example, three crates are now available in your Rust code:\n\n```rust\nextern crate foo; // crates.io\nextern crate bar; // git repository\nextern crate baz; // registry `custom`\n```\n\nAll three of these crates have the package name of `foo` in their own\n`Cargo.toml`, so we're explicitly using the `package` key to inform Cargo that\nwe want the `foo` package even though we're calling it something else locally.\nThe `package` key, if not specified, defaults to the name of the dependency\nbeing requested.\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml" + } + } + }, + "public": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "registry": { + "description": "To specify a dependency from a registry other than [crates.io](https://crates.io), first the\nregistry must be configured in a `.cargo/config.toml` file. See the [registries\ndocumentation](https://doc.rust-lang.org/cargo/reference/registries.html) for more information. In the dependency, set the `registry` key\nto the name of the registry to use.\n\n```toml\n[dependencies]\nsome-crate = { version = \"1.0\", registry = \"my-registry\" }\n```\n\n> **Note**: [crates.io](https://crates.io) does not allow packages to be published with\n> dependencies on other registries.\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-other-registries" + } + } + }, + "registry-index": { + "type": "string", + "x-taplo": { + "hidden": true + } + } + }, + "minProperties": 1, + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "initFields": ["version"] + } + }, + "DetailedLint": { + "title": "Detailed Lint", + "type": "object", + "properties": { + "level": { + "$ref": "#/definitions/LintLevel" + }, + "priority": { + "description": "The priority that controls which lints or [lint groups](https://doc.rust-lang.org/rustc/lints/groups.html) override other lint groups. Lower (particularly negative) numbers have lower priority, being overridden by higher numbers, and show up first on the command-line to tools like rustc.", + "type": "integer", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-lints-section" + } + } + } + }, + "x-tombi-table-keys-order": "version-sort" + }, + "Edition": { + "title": "Edition", + "description": "The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc.", + "type": "string", + "enum": ["2015", "2018", "2021", "2024"], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/stable/edition-guide/introduction.html" + } + } + }, + "Inherits": { + "title": "Inherits", + "description": "In addition to the built-in profiles, additional custom profiles can be defined.", + "oneOf": [ + { + "type": "string", + "enum": ["dev", "test", "bench", "release"] + }, + { "type": "string" } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#custom-profiles" + } + } + }, + "Lint": { + "title": "Lint", + "anyOf": [ + { + "$ref": "#/definitions/LintLevel" + }, + { + "$ref": "#/definitions/DetailedLint" + } + ] + }, + "LintLevel": { + "title": "Lint Level", + "description": "Specify the [lint level](https://doc.rust-lang.org/rustc/lints/levels.html) for a lint or lint group.", + "type": "string", + "enum": ["forbid", "deny", "warn", "allow"], + "x-taplo": { + "docs": { + "enumValues": [ + "`forbid` is the same as `deny` in that a lint at this level will produce an error, but unlike the `deny` level, the `forbid` level can not be overridden to be anything lower than an error. However, lint levels may still be capped with [`--cap-lints`](https://doc.rust-lang.org/rustc/lints/levels.html#capping-lints) so `rustc --cap-lints warn` will make lints set to `forbid` just warn.", + "The `deny` lint level produces an error if you violate the lint.", + "The `warn` lint level produces a warning if you violate the lint.", + "The `allow` lint level ignores violations of the lint." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/rustc/lints/levels.html" + } + } + }, + "Lints": { + "type": "object", + "properties": { + "rust": { + "description": "Lint settings for the Rust compiler. See the Rust compiler's [individual lints](https://doc.rust-lang.org/rustc/lints/listing/index.html) or [lint groups](https://doc.rust-lang.org/rustc/lints/groups.html).", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Lint" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "rustdoc": { + "description": "Lint settings for [Rustdoc](https://doc.rust-lang.org/rustdoc/). See Rustdoc's [individual lints](https://doc.rust-lang.org/rustdoc/lints.html) (rustdoc does not have lint groups)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Lint" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "clippy": { + "description": "Lint settings for [Clippy](https://doc.rust-lang.org/clippy/). See Clippy's [individual lints](https://rust-lang.github.io/rust-clippy/master/index.html) or [lint groups](https://doc.rust-lang.org/clippy/lints.html) documentation.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Lint" + }, + "x-tombi-table-keys-order": "version-sort" + } + }, + "additionalProperties": false, + "x-tombi-table-keys-order": "version-sort" + }, + "Lto": { + "title": "Lto", + "description": "The `lto` setting controls the [`-C lto` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#lto) which controls LLVM's [link time optimizations](https://llvm.org/docs/LinkTimeOptimization.html). LTO can produce better optimized code, using\nwhole-program analysis, at the cost of longer linking time.\n \nSee also the [`-C linker-plugin-lto`](https://doc.rust-lang.org/rustc/codegen-options/index.html#linker-plugin-lto) `rustc` flag for cross-language LTO.", + "oneOf": [ + { + "type": "string", + "enum": ["fat", "thin", "off"] + }, + { + "type": "boolean" + } + ], + "x-taplo": { + "docs": { + "enumValues": [ + "Performs \"fat\" LTO which attempts to perform optimizations across all crates within the dependency graph.", + "Performs [\"thin\" LTO](http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html). This is similar to \"fat\", but takes\nsubstantially less time to run while still achieving performance gains\nsimilar to \"fat\".", + "Disables LTO.", + "Performs \"fat\" LTO which attempts to perform optimizations across all crates within the dependency graph.", + "Performs \"thin local LTO\" which performs \"thin\" LTO on the local\ncrate only across its [codegen units](https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units). No LTO is performed\nif codegen units is 1 or [opt-level](https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level) is 0." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#lto" + } + } + }, + "MetaBuild": { + "title": "Meta Build", + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort" + }, + "Resolver": { + "title": "Resolver", + "description": "A different feature resolver algorithm can be used by specifying the resolver version in Cargo.toml like this:\n\n[package]\nname = \"my-package\"\nversion = \"1.0.0\"\nresolver = \"2\"\n\nThe version \"1\" resolver is the original resolver that shipped with Cargo up to version 1.50. The default is \"2\" if the root package specifies edition = \"2021\" or a newer edition. Otherwise the default is \"1\".\n\nThe version \"2\" resolver introduces changes in feature unification. See the features chapter for more details.\n\nThe resolver is a global option that affects the entire workspace. The resolver version in dependencies is ignored, only the value in the top-level package will be used. If using a virtual workspace, the version should be specified in the [workspace] table, for example:\n\n[workspace]\nmembers = [\"member1\", \"member2\"]\nresolver = \"2\"", + "type": "string", + "enum": ["1", "2", "3"], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions" + } + } + }, + "OptLevel": { + "title": "Optimization Level", + "description": "The `opt-level` setting controls the [`-C opt-level` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#opt-level) which controls the level\nof optimization. Higher optimization levels may produce faster runtime code at\nthe expense of longer compiler times. Higher levels may also change and\nrearrange the compiled code which may make it harder to use with a debugger.\n\nIt is recommended to experiment with different levels to find the right\nbalance for your project. There may be surprising results, such as level `3`\nbeing slower than `2`, or the `\"s\"` and `\"z\"` levels not being necessarily\nsmaller. You may also want to reevaluate your settings over time as newer\nversions of `rustc` changes optimization behavior.\n\nSee also [Profile Guided Optimization](https://doc.rust-lang.org/rustc/profile-guided-optimization.html) for more advanced optimization\ntechniques.", + "oneOf": [ + { + "type": "string", + "enum": ["s", "z"] + }, + { + "type": "integer", + "enum": [0, 1, 2, 3] + } + ], + "x-taplo": { + "docs": { + "enumValues": [ + "No optimizations, also turns on [`cfg(debug_assertions)`](https://doc.rust-lang.org/cargo/reference/profiles.html#debug-assertions).", + "Basic optimizations.", + "Some optimizations.", + "All optimizations.", + "Optimize for binary size.", + "Optimize for binary size, but also turn off loop vectorization." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level" + } + } + }, + "Package": { + "title": "Package", + "description": "The only field required by Cargo is [`name`](https://doc.rust-lang.org/cargo/reference/manifest.html#the-name-field).\n If publishing to a registry, the registry may\nrequire additional fields. See the notes below and [the publishing chapter](https://doc.rust-lang.org/cargo/reference/publishing.html) for requirements for publishing to [crates.io](https://crates.io/).", + "type": "object", + "required": ["name"], + "properties": { + "name": { + "description": "The package name is an identifier used to refer to the package. It is used\nwhen listed as a dependency in another package, and as the default name of\ninferred lib and bin targets.\n\nThe name must use only [alphanumeric](https://doc.rust-lang.org/std/primitive.char.html#method.is_alphanumeric) characters or `-` or `_`, and cannot be empty.\nNote that [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) and [`cargo init`](https://doc.rust-lang.org/cargo/commands/cargo-init.html) impose some additional restrictions on\nthe package name, such as enforcing that it is a valid Rust identifier and not\na keyword. [crates.io](https://crates.io) imposes even more restrictions, such as\nenforcing only ASCII characters, not a reserved name, not a special Windows\nname such as \"nul\", is not too long, etc.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-name-field" + } + } + }, + "version": { + "title": "Semantic Version", + "description": "Cargo bakes in the concept of [Semantic Versioning](https://semver.org/), so make sure you follow some basic rules:\n\n* Before you reach 1.0.0, anything goes, but if you make breaking changes,\n increment the minor version. In Rust, breaking changes include adding fields to\n structs or variants to enums.\n* After 1.0.0, only make breaking changes when you increment the major version.\n Don't break the build.\n* After 1.0.0, don't add any new public API (no new `pub` anything) in patch-level\n versions. Always increment the minor version if you add any new `pub` structs,\n traits, fields, types, functions, methods or anything else.\n* Use version numbers with three numeric parts such as 1.0.0 rather than 1.0.", + "anyOf": [ + { + "$ref": "#/definitions/SemVer" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "authors": { + "title": "Authors", + "description": "The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.", + "anyOf": [ + { + "$ref": "#/definitions/Authors" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "edition": { + "title": "Edition", + "description": "The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc.", + "anyOf": [ + { + "$ref": "#/definitions/Edition" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "rust-version": { + "title": "RustVersion", + "description": "The `rust-version` field is an optional key that tells cargo what version of the\nRust language and compiler your package can be compiled with. If the currently\nselected version of the Rust compiler is older than the stated version, cargo\nwill exit with an error, telling the user what version is required.\n\nThe first version of Cargo that supports this field was released with Rust 1.56.0.\nIn older releases, the field will be ignored, and Cargo will display a warning.\n\n```toml\n[package]\n# ...\nrust-version = \"1.56\"\n```\n\nThe Rust version must be a bare version number with two or three components; it\ncannot include semver operators or pre-release identifiers. Compiler pre-release\nidentifiers such as -nightly will be ignored while checking the Rust version.\nThe `rust-version` must be equal to or newer than the version that first\nintroduced the configured `edition`.\n\nThe `rust-version` may be ignored using the `--ignore-rust-version` option.\n\nSetting the `rust-version` key in `[package]` will affect all targets/crates in\nthe package, including test suites, benchmarks, binaries, examples, etc.", + "anyOf": [ + { + "$ref": "#/definitions/RustVersion" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "description": { + "title": "Description", + "description": "The description is a short blurb about the package. [crates.io](https://crates.io) will display\nthis with your package. This should be plain text (not Markdown).\n\n```toml\n[package]\n# ...\ndescription = \"A short description of my package\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires the `description` to be set.", + "anyOf": [ + { + "$ref": "#/definitions/Description" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "documentation": { + "title": "Documentation", + "description": "\nThe `documentation` field specifies a URL to a website hosting the crate's\ndocumentation. If no URL is specified in the manifest file, [crates.io](https://crates.io) will\nautomatically link your crate to the corresponding [docs.rs](https://docs.rs) page.\n\n```toml\n[package]\n# ...\ndocumentation = \"https://docs.rs/bitflags\"\n```\n", + "anyOf": [ + { + "$ref": "#/definitions/Documentation" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "readme": { + "title": "Readme", + "description": "The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.\nThis file will be transferred to the registry when you publish. [crates.io](https://crates.io)\nwill interpret it as Markdown and render it on the crate's page.\n\n```toml\n[package]\n# ...\nreadme = \"README.md\"\n```\n\nIf no value is specified for this field, and a file named `README.md`,\n`README.txt` or `README` exists in the package root, then the name of that\nfile will be used. You can suppress this behavior by setting this field to\n`false`. If the field is set to `true`, a default value of `README.md` will\nbe assumed.\n", + "anyOf": [ + { + "$ref": "#/definitions/Readme" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "homepage": { + "title": "Homepage", + "description": "The `homepage` field should be a URL to a site that is the home page for your\npackage.\n\n```toml\n[package]\n# ...\nhomepage = \"https://serde.rs/\"\n```", + "anyOf": [ + { + "$ref": "#/definitions/Homepage" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "repository": { + "title": "Repository", + "description": "The `repository` field should be a URL to the source repository for your\npackage.\n\n```toml\n[package]\n# ...\nrepository = \"https://github.com/rust-lang/cargo/\"\n```", + "anyOf": [ + { + "$ref": "#/definitions/Repository" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "license": { + "title": "License", + "description": "The `license` field contains the name of the software license that the package\nis released under.\n\n[crates.io](https://crates.io/) interprets the `license` field as an [SPDX 2.1 license\nexpression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60). The name must be a known license\nfrom the [SPDX license list 3.6](https://github.com/spdx/license-list-data/tree/v3.6). Parentheses are not\ncurrently supported. See the [SPDX site](https://spdx.org/license-list) for more information.\n\nSPDX license expressions support AND and OR operators to combine multiple\nlicenses.\n\n```toml\n[package]\n# ...\nlicense = \"MIT OR Apache-2.0\"\n```\n\nUsing `OR` indicates the user may choose either license. Using `AND` indicates\nthe user must comply with both licenses simultaneously. The `WITH` operator\nindicates a license with a special exception. Some examples:\n\n* `MIT OR Apache-2.0`\n* `LGPL-2.1 AND MIT AND BSD-2-Clause`\n* `GPL-2.0+ WITH Bison-exception-2.2`\n\nIf a package is using a nonstandard license, then the `license-file` field may\nbe specified in lieu of the `license` field.", + "anyOf": [ + { + "$ref": "#/definitions/License" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "license-file": { + "title": "LicenseFile", + "description": "The `license-file` field contains the path to a file\ncontaining the text of the license (relative to this `Cargo.toml`).\n\n```toml\n[package]\n# ...\nlicense-file = \"LICENSE.txt\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires either `license` or `license-file` to be set.", + "anyOf": [ + { + "$ref": "#/definitions/LicenseFile" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "keywords": { + "title": "Keywords", + "description": "The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.", + "anyOf": [ + { + "$ref": "#/definitions/Keywords" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "categories": { + "title": "Categories", + "description": "The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.", + "anyOf": [ + { + "$ref": "#/definitions/Categories" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "workspace": { + "description": "The `workspace` field can be used to configure the workspace that this package\nwill be a member of. If not specified this will be inferred as the first\nCargo.toml with `[workspace]` upwards in the filesystem. Setting this is\nuseful if the member is not inside a subdirectory of the workspace root.\n\n```toml\n[package]\n# ...\nworkspace = \"path/to/workspace/root\"\n```\n\nThis field cannot be specified if the manifest already has a `[workspace]`\ntable defined. That is, a crate cannot both be a root crate in a workspace\n(contain `[workspace]`) and also be a member crate of another workspace\n(contain `package.workspace`).\n\nFor more information, see the [workspaces chapter](https://doc.rust-lang.org/cargo/reference/workspaces.html).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-workspace-field" + } + } + }, + "build": { + "$ref": "#/definitions/Build" + }, + "links": { + "description": "The `links` field specifies the name of a native library that is being linked\nto. More information can be found in the [`links`](https://doc.rust-lang.org/cargo/reference/build-scripts.html#the-links-manifest-key) section of the build\nscript guide.\n\n```toml\n[package]\n# ...\nlinks = \"foo\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-links-field" + } + } + }, + "exclude": { + "title": "Exclude", + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "anyOf": [ + { + "$ref": "#/definitions/Exclude" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "include": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "anyOf": [ + { + "$ref": "#/definitions/Include" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "publish": { + "title": "Publish", + "description": "The `publish` field can be used to prevent a package from being published to a package registry (like *crates.io*) by mistake, for instance to keep a package\nprivate in a company.\n\n```toml\n[package]\n# ...\npublish = false\n```\n\nThe value may also be an array of strings which are registry names that are\nallowed to be published to.\n\n```toml\n[package]\n# ...\npublish = [\"some-registry-name\"]\n```", + "anyOf": [ + { + "$ref": "#/definitions/Publish" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "metadata": { + "description": "Cargo by default will warn about unused keys in `Cargo.toml` to assist in\ndetecting typos and such. The `package.metadata` table, however, is completely\nignored by Cargo and will not be warned about. This section can be used for\ntools which would like to store package configuration in `Cargo.toml`. For\nexample:\n\n```toml\n[package]\nname = \"...\"\n# ...\n\n# Metadata used when generating an Android APK, for example.\n[package.metadata.android]\npackage-name = \"my-awesome-android-app\"\nassets = \"path/to/static\"\n```\n", + "type": "object", + "additionalProperties": true, + "properties": { + "playdate": { + "$ref": "#/definitions/PlaydateMetadata" + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-metadata-table" + } + } + }, + "default-run": { + "description": "The `default-run` field in the `[package]` section of the manifest can be used\nto specify a default binary picked by [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html). For example, when there is\nboth `src/bin/a.rs` and `src/bin/b.rs`:\n\n```toml\n[package]\ndefault-run = \"a\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-default-run-field" + } + } + }, + "autobins": { + "description": "Disable automatic discovery of `bin` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n\nTo prevent Cargo from inferring `src/bin/mod.rs` as an executable, set\nthis to `false` to disable auto-discovery.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "autoexamples": { + "description": "Disable automatic discovery of `example` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "autotests": { + "description": "Disable automatic discovery of `test` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "autobenches": { + "description": "Disable automatic discovery of `bench` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "resolver": { + "$ref": "#/definitions/Resolver" + }, + "im-a-teapot": { + "description": "Sets whether the current package is a teapot or something else that is not capable of brewing tea.", + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "metabuild": { + "$ref": "#/definitions/MetaBuild", + "x-taplo": { + "hidden": true + } + }, + "namespaced-features": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "publish-lockfile": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + } + }, + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-package-section" + } + } + }, + "Panic": { + "title": "Panic", + "description": "The `panic` setting controls the [`-C panic` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#panic) which controls which panic\nstrategy to use.\n\nWhen set to `\"unwind\"`, the actual value depends on the default of the target\nplatform. For example, the NVPTX platform does not support unwinding, so it\nalways uses `\"abort\"`.\n\nTests, benchmarks, build scripts, and proc macros ignore the `panic` setting.\nThe `rustc` test harness currently requires `unwind` behavior. See the\n[`panic-abort-tests`](https://doc.rust-lang.org/cargo/reference/unstable.html#panic-abort-tests) unstable flag which enables `abort` behavior.\n\nAdditionally, when using the `abort` strategy and building a test, all of the\ndependencies will also be forced to built with the `unwind` strategy.", + "type": "string", + "enum": ["unwind", "abort"], + "x-taplo": { + "docs": { + "enumValues": [ + "Unwind the stack upon panic.", + "Terminate the process upon panic." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#panic" + } + } + }, + "Platform": { + "title": "Platform", + "type": "object", + "properties": { + "dependencies": { + "description": "Cargo is configured to look for dependencies on [crates.io](https://crates.io) by default. Only\nthe name and a version string are required in this case. In [the cargo\nguide](https://doc.rust-lang.org/cargo/guide/index.html), we specified a dependency on the `time` crate:\n\n```toml\n[dependencies]\ntime = \"0.1.12\"\n```\n\nThe string `\"0.1.12\"` is a [semver](https://github.com/steveklabnik/semver#requirements) version requirement. Since this\nstring does not have any operators in it, it is interpreted the same way as\nif we had specified `\"^0.1.12\"`, which is called a caret requirement.\n\nA dependency can also be defined by a table with additional options:\n\n```toml\n[dependencies]\ntime = { path = \"../time\", version = \"0.1.12\" }\n```", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html" + } + } + }, + "dev-dependencies": { + "description": "The format of `[dev-dependencies]` is equivalent to `[dependencies]`:\n\n```toml\n[dev-dependencies]\ntempdir = \"0.3\"\n```\n\nDev-dependencies are not used when compiling\na package for building, but are used for compiling tests, examples, and\nbenchmarks.\n\nThese dependencies are *not* propagated to other packages which depend on this\npackage.\n\nYou can also have target-specific development dependencies by using\n`dev-dependencies` in the target section header instead of `dependencies`. For\nexample:\n\n```toml\n[target.'cfg(unix)'.dev-dependencies]\nmio = \"0.0.1\"\n```\n\n> **Note**: When a package is published, only dev-dependencies that specify a\n> `version` will be included in the published crate. For most use cases,\n> dev-dependencies are not needed when published, though some users (like OS\n> packagers) may want to run tests within a crate, so providing a `version` if\n> possible can still be beneficial.\n", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "dev_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "build-dependencies": { + "description": "You can depend on other Cargo-based crates for use in your build scripts.\nDependencies are declared through the `build-dependencies` section of the\nmanifest:\n\n```toml\n[build-dependencies]\ncc = \"1.0.3\"\n```\n\nThe build script **does not** have access to the dependencies listed\nin the `dependencies` or `dev-dependencies` section. Build\ndependencies will likewise not be available to the package itself\nunless listed under the `dependencies` section as well. A package\nitself and its build script are built separately, so their\ndependencies need not coincide. Cargo is kept simpler and cleaner by\nusing independent dependencies for independent purposes.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "build_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + } + }, + "x-tombi-table-keys-order": "schema" + }, + "BuildOverride": { + "title": "Build Override", + "description": "Profile settings can be overridden for specific packages and build-time\ncrates. To override the settings for a specific package, use the `package`\ntable to change the settings for the named package:\n\n```toml\n# The `foo` package will use the -Copt-level=3 flag.\n[profile.dev.package.foo]\nopt-level = 3\n```\n\nThe package name is actually a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as\n`[profile.dev.package.\"foo:2.1.0\"]`.\n\nTo override the settings for all dependencies (but not any workspace member),\nuse the `\"*\"` package name:\n\n```toml\n# Set the default for dependencies.\n[profile.dev.package.\"*\"]\nopt-level = 2\n```\n\nTo override the settings for build scripts, proc macros, and their\ndependencies, use the `build-override` table:\n\n```toml\n# Set the settings for build scripts and proc-macros.\n[profile.dev.build-override]\nopt-level = 3\n```\n\n> Note: When a dependency is both a normal dependency and a build dependency,\n> Cargo will try to only build it once when `--target` is not specified. When\n> using `build-override`, the dependency may need to be built twice, once as a\n> normal dependency and once with the overridden build settings. This may\n> increase initial build times.\n", + "allOf": [ + { + "$ref": "#/definitions/Profile" + } + ], + "x-taplo": { + "docs": { + "main": "Profile settings can be overridden for specific packages and build-time\ncrates. To override the settings for a specific package, use the `package`\ntable to change the settings for the named package:\n\n```toml\n# The `foo` package will use the -Copt-level=3 flag.\n[profile.dev.package.foo]\nopt-level = 3\n```\n\nThe package name is actually a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as\n`[profile.dev.package.\"foo:2.1.0\"]`.\n\nTo override the settings for all dependencies (but not any workspace member),\nuse the `\"*\"` package name:\n\n```toml\n# Set the default for dependencies.\n[profile.dev.package.\"*\"]\nopt-level = 2\n```\n\nTo override the settings for build scripts, proc macros, and their\ndependencies, use the `build-override` table:\n\n```toml\n# Set the settings for build scripts and proc-macros.\n[profile.dev.build-override]\nopt-level = 3\n```\n\n> Note: When a dependency is both a normal dependency and a build dependency,\n> Cargo will try to only build it once when `--target` is not specified. When\n> using `build-override`, the dependency may need to be built twice, once as a\n> normal dependency and once with the overridden build settings. This may\n> increase initial build times.\n" + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#overrides" + } + } + }, + "ProfileWithBuildOverride": { + "title": "Profile with Build Override", + "type": "object", + "properties": { + "inherits": { + "$ref": "#/definitions/Inherits" + }, + "opt-level": { + "$ref": "#/definitions/OptLevel" + }, + "debug": { + "$ref": "#/definitions/DebugLevel" + }, + "split-debuginfo": { + "$ref": "#/definitions/SplitDebuginfo" + }, + "strip": { + "$ref": "#/definitions/Strip" + }, + "debug-assertions": { + "$ref": "#/definitions/DebugAssertions" + }, + "overflow-checks": { + "$ref": "#/definitions/OverflowChecks" + }, + "lto": { + "$ref": "#/definitions/Lto" + }, + "panic": { + "$ref": "#/definitions/Panic" + }, + "incremental": { + "$ref": "#/definitions/Incremental" + }, + "codegen-units": { + "$ref": "#/definitions/CodegenUnits" + }, + "rpath": { + "$ref": "#/definitions/Rpath" + }, + "package": { + "$ref": "#/definitions/ProfilePackageOverrides" + }, + "build-override": { + "$ref": "#/definitions/Profile" + } + }, + "x-tombi-table-keys-order": "schema" + }, + "SplitDebuginfo": { + "title": "SplitDebuginfo", + "description": "The split-debuginfo setting controls the -C split-debuginfo flag which controls whether debug information, if generated, is either placed in the executable itself or adjacent to it. This can be useful for reducing the size of the executable, but may make it harder to debug the executable.", + "oneOf": [ + { + "type": "string", + "enum": ["off"], + "description": "This is the default for platforms with ELF binaries and windows-gnu (not Windows MSVC and not macOS). This typically means that DWARF debug information can be found in the final artifact in sections of the executable. This option is not supported on Windows MSVC. On macOS this options prevents the final execution of dsymutil to generate debuginfo." + }, + { + "type": "string", + "enum": ["packed"], + "description": "This is the default for Windows MSVC and macOS. The term \"packed\" here means that all the debug information is packed into a separate file from the main executable. On Windows MSVC this is a *.pdb file, on macOS this is a *.dSYM folder, and on other platforms this is a *.dwp file." + }, + { + "type": "string", + "enum": ["unpacked"], + "description": "This means that debug information will be found in separate files for each compilation unit (object file). This is not supported on Windows MSVC. On macOS this means the original object files will contain debug information. On other Unix platforms this means that *.dwo files will contain debug information." + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#split-debuginfo" + } + } + }, + "Strip": { + "oneOf": [ + { + "type": "string", + "description": "The strip option controls the -C strip flag, which directs rustc to strip either symbols or debuginfo from a binary.", + "enum": ["none", "debuginfo", "symbols"], + "default": "none" + }, + { + "type": "boolean", + "enum": [true], + "title": "Equivalent to \"symbols\"", + "description": "The strip option controls the -C strip flag, which directs rustc to strip either symbols or debuginfo from a binary." + }, + { + "type": "boolean", + "enum": [false], + "title": "Equivalent to \"none\"", + "description": "The strip option controls the -C strip flag, which directs rustc to strip either symbols or debuginfo from a binary." + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#strip" + } + } + }, + "DebugAssertions": { + "description": "The `debug-assertions` setting controls the [`-C debug-assertions` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#debug-assertions) which\nturns `cfg(debug_assertions)` [conditional compilation](https://doc.rust-lang.org/reference/conditional-compilation.html#debug_assertions) on or off. Debug\nassertions are intended to include runtime validation which is only available\nin debug/development builds. These may be things that are too expensive or\notherwise undesirable in a release build. Debug assertions enables the\n[`debug_assert!` macro](https://doc.rust-lang.org/std/macro.debug_assert.html) in the standard library.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#debug-assertions" + } + } + }, + "OverflowChecks": { + "description": "The `overflow-checks` setting controls the [`-C overflow-checks` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#overflow-checks) which\ncontrols the behavior of [runtime integer overflow](https://doc.rust-lang.org/reference/expressions/operator-expr.html#overflow). When overflow-checks are\nenabled, a panic will occur on overflow.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#overflow-checks" + } + } + }, + "Incremental": { + "description": "The `incremental` setting controls the [`-C incremental` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#incremental) which controls\nwhether or not incremental compilation is enabled. Incremental compilation\ncauses `rustc` to to save additional information to disk which will be reused\nwhen recompiling the crate, improving re-compile times. The additional\ninformation is stored in the `target` directory.\n\nThe valid options are:\n\n* `true`: enabled\n* `false`: disabled\n\nIncremental compilation is only used for workspace members and \"path\"\ndependencies.\n\nThe incremental value can be overridden globally with the `CARGO_INCREMENTAL`\n[environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html) or the [`build.incremental`](https://doc.rust-lang.org/cargo/reference/config.html#buildincremental) config variable.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#incremental" + } + } + }, + "CodegenUnits": { + "description": "The `codegen-units` setting controls the [`-C codegen-units` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units) which\ncontrols how many \"code generation units\" a crate will be split into. More\ncode generation units allows more of a crate to be processed in parallel\npossibly reducing compile time, but may produce slower code.\n\nThis option takes an integer greater than 0.\n\nThe default is 256 for [incremental](https://doc.rust-lang.org/cargo/reference/profiles.html#incremental) builds, and 16 for\nnon-incremental builds.", + "type": "integer", + "format": "uint32", + "minimum": 0, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units" + } + } + }, + "Rpath": { + "description": "The `rpath` setting controls the [`-C rpath` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#rpath) which controls\nwhether or not [`rpath`](https://en.wikipedia.org/wiki/Rpath) is enabled.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#rpath" + } + } + }, + "ProfilePackageOverrides": { + "description": "Package-specific overrides.\n\nThe package name is a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as `[profile.dev.package.\"foo:2.1.0\"]`.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Profile" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#overrides" + } + } + }, + "Profile": { + "title": "Profile", + "type": "object", + "properties": { + "inherits": { + "$ref": "#/definitions/Inherits" + }, + "opt-level": { + "$ref": "#/definitions/OptLevel" + }, + "debug": { + "$ref": "#/definitions/DebugLevel" + }, + "split-debuginfo": { + "$ref": "#/definitions/SplitDebuginfo" + }, + "strip": { + "$ref": "#/definitions/Strip" + }, + "debug-assertions": { + "$ref": "#/definitions/DebugAssertions" + }, + "overflow-checks": { + "$ref": "#/definitions/OverflowChecks" + }, + "lto": { + "$ref": "#/definitions/Lto" + }, + "panic": { + "$ref": "#/definitions/Panic" + }, + "incremental": { + "$ref": "#/definitions/Incremental" + }, + "codegen-units": { + "$ref": "#/definitions/CodegenUnits" + }, + "rpath": { + "$ref": "#/definitions/Rpath" + }, + "package": { + "$ref": "#/definitions/ProfilePackageOverrides" + }, + "dir-name": { + "type": "string", + "x-taplo": { + "hidden": true + } + } + }, + "x-tombi-table-keys-order": "schema" + }, + "Profiles": { + "title": "Profiles", + "description": "Profiles provide a way to alter the compiler settings, influencing things like optimizations and debugging symbols.\n\nCargo has 4 built-in profiles: dev, release, test, and bench. It automatically chooses the profile based on which command is being run, the package and target that is being built, and command-line flags like --release.", + "type": "object", + "properties": { + "bench": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "dev": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "release": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "test": { + "$ref": "#/definitions/ProfileWithBuildOverride" + } + }, + "additionalProperties": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html" + } + } + }, + "Publish": { + "title": "Publish", + "description": "The `publish` field can be used to prevent a package from being published to a package registry (like *crates.io*) by mistake, for instance to keep a package\nprivate in a company.\n\n```toml\n[package]\n# ...\npublish = false\n```\n\nThe value may also be an array of strings which are registry names that are\nallowed to be published to.\n\n```toml\n[package]\n# ...\npublish = [\"some-registry-name\"]\n```", + "anyOf": [ + { + "description": "A boolean indicating whether the package can be published.", + "type": "boolean", + "enum": [true, false], + "default": true, + "x-taplo": { + "docs": { + "enumValues": [ + "The package can be published.", + "The package cannot be published." + ] + } + } + }, + { + "type": "array", + "description": "An array of registry names.", + "items": { + "type": "string" + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort" + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field" + } + } + }, + "Readme": { + "title": "Readme", + "description": "The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.\nThis file will be transferred to the registry when you publish. [crates.io](https://crates.io)\nwill interpret it as Markdown and render it on the crate's page.\n\n```toml\n[package]\n# ...\nreadme = \"README.md\"\n```\n\nIf no value is specified for this field, and a file named `README.md`,\n`README.txt` or `README` exists in the package root, then the name of that\nfile will be used. You can suppress this behavior by setting this field to\n`false`. If the field is set to `true`, a default value of `README.md` will\nbe assumed.\n", + "anyOf": [ + { + "description": "The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.", + "type": "string" + }, + { + "type": "boolean", + "enum": [true, false], + "x-taplo": { + "docs": { + "enumValues": [ + "Use the `README.md` file.", + "Do not use the default `README.md` file" + ] + } + } + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-readme-field" + } + } + }, + "SemVer": { + "title": "Semantic Version", + "description": "Cargo bakes in the concept of [Semantic Versioning](https://semver.org/), so make sure you follow some basic rules:\n\n* Before you reach 1.0.0, anything goes, but if you make breaking changes,\n increment the minor version. In Rust, breaking changes include adding fields to\n structs or variants to enums.\n* After 1.0.0, only make breaking changes when you increment the major version.\n Don't break the build.\n* After 1.0.0, don't add any new public API (no new `pub` anything) in patch-level\n versions. Always increment the minor version if you add any new `pub` structs,\n traits, fields, types, functions, methods or anything else.\n* Use version numbers with three numeric parts such as 1.0.0 rather than 1.0.", + "default": "0.1.0", + "type": "string", + "format": "semver", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-version-field" + } + } + }, + "SemVerRequirement": { + "title": "Semantic Version Requirement", + "description": "The [version requirement](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) of the target dependency.", + "default": "*", + "type": "string", + "format": "semver-requirement", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html" + }, + "plugins": ["crates"], + "crates": { + "schemas": "version" + } + } + }, + "Target": { + "title": "Target", + "type": "object", + "properties": { + "bench": { + "description": "The `bench` field indicates whether or not the target is benchmarked by\ndefault by [`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html). The default is `true` for lib, bins, and\nbenchmarks.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field" + } + } + }, + "crate-type": { + "description": "The `crate-type` field defines the [crate types](https://doc.rust-lang.org/reference/linkage.html) that will be generated by the\ntarget. It is an array of strings, allowing you to specify multiple crate\ntypes for a single target. This can only be specified for libraries and\nexamples. Binaries, tests, and benchmarks are always the \"bin\" crate type.\n\nThe available options are `bin`, `lib`, `rlib`, `dylib`, `cdylib`,\n`staticlib`, and `proc-macro`. You can read more about the different crate\ntypes in the [Rust Reference Manual](https://doc.rust-lang.org/reference/linkage.html).", + "type": "array", + "items": { + "description": "The `crate-type` field defines the [crate types](https://doc.rust-lang.org/reference/linkage.html) that will be generated by the\ntarget. It is an array of strings, allowing you to specify multiple crate\ntypes for a single target. This can only be specified for libraries and\nexamples. Binaries, tests, and benchmarks are always the \"bin\" crate type.\n\nThe available options are `bin`, `lib`, `rlib`, `dylib`, `cdylib`,\n`staticlib`, and `proc-macro`. You can read more about the different crate\ntypes in the [Rust Reference Manual](https://doc.rust-lang.org/reference/linkage.html).", + "type": "string", + "x-taplo": { + "docs": { + "enumValues": [ + "A runnable executable will be produced. This requires that there is a `main` function in the crate which\nwill be run when the program begins executing. This will link in all Rust and\nnative dependencies, producing a distributable binary.", + "A Rust library will be produced.\nThis is an ambiguous concept as to what exactly is produced because a library\ncan manifest itself in several forms. The purpose of this generic `lib` option\nis to generate the \"compiler recommended\" style of library. The output library\nwill always be usable by rustc, but the actual type of library may change from\ntime-to-time. The remaining output types are all different flavors of\nlibraries, and the `lib` type can be seen as an alias for one of them (but the\nactual one is compiler-defined).", + "A \"Rust library\" file will be produced. This is used as an intermediate artifact and can be thought of as a\n\"static Rust library\". These `rlib` files, unlike `staticlib` files, are\ninterpreted by the compiler in future linkage. This essentially means\nthat `rustc` will look for metadata in `rlib` files like it looks for metadata\nin dynamic libraries. This form of output is used to produce statically linked\nexecutables as well as `staticlib` outputs.", + "A dynamic Rust library will be produced. This is different from the `lib` output type in that this forces\ndynamic library generation. The resulting dynamic library can be used as a\ndependency for other libraries and/or executables. This output type will\ncreate `*.so` files on linux, `*.dylib` files on osx, and `*.dll` files on\nwindows.", + "A dynamic system library will be produced. This is used when compiling\na dynamic library to be loaded from another language. This output type will\ncreate `*.so` files on Linux, `*.dylib` files on macOS, and `*.dll` files on\nWindows.", + "A static system library will be produced. This is different from other library outputs in that\nthe compiler will never attempt to link to `staticlib` outputs. The\npurpose of this output type is to create a static library containing all of\nthe local crate's code along with all upstream dependencies. The static\nlibrary is actually a `*.a` archive on linux and osx and a `*.lib` file on\nwindows. This format is recommended for use in situations such as linking\nRust code into an existing non-Rust application because it will not have\ndynamic dependencies on other Rust code.", + "The output produced is not specified, but if a `-L` path is provided to it then the\ncompiler will recognize the output artifacts as a macro and it can be loaded\nfor a program. Crates compiled with this crate type must only export\n[procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html). The compiler will automatically set the `proc_macro`\n[configuration option](https://doc.rust-lang.org/reference/conditional-compilation.html). The crates are always compiled with the same target\nthat the compiler itself was built with. For example, if you are executing\nthe compiler from Linux with an `x86_64` CPU, the target will be\n`x86_64-unknown-linux-gnu` even if the crate is a dependency of another crate\nbeing built for a different target." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field" + } + } + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "docs": { + "enumValues": [ + "A runnable executable will be produced. This requires that there is a `main` function in the crate which\nwill be run when the program begins executing. This will link in all Rust and\nnative dependencies, producing a distributable binary.", + "A Rust library will be produced.\nThis is an ambiguous concept as to what exactly is produced because a library\ncan manifest itself in several forms. The purpose of this generic `lib` option\nis to generate the \"compiler recommended\" style of library. The output library\nwill always be usable by rustc, but the actual type of library may change from\ntime-to-time. The remaining output types are all different flavors of\nlibraries, and the `lib` type can be seen as an alias for one of them (but the\nactual one is compiler-defined).", + "A \"Rust library\" file will be produced. This is used as an intermediate artifact and can be thought of as a\n\"static Rust library\". These `rlib` files, unlike `staticlib` files, are\ninterpreted by the compiler in future linkage. This essentially means\nthat `rustc` will look for metadata in `rlib` files like it looks for metadata\nin dynamic libraries. This form of output is used to produce statically linked\nexecutables as well as `staticlib` outputs.", + "A dynamic Rust library will be produced. This is different from the `lib` output type in that this forces\ndynamic library generation. The resulting dynamic library can be used as a\ndependency for other libraries and/or executables. This output type will\ncreate `*.so` files on linux, `*.dylib` files on osx, and `*.dll` files on\nwindows.", + "A dynamic system library will be produced. This is used when compiling\na dynamic library to be loaded from another language. This output type will\ncreate `*.so` files on Linux, `*.dylib` files on macOS, and `*.dll` files on\nWindows.", + "A static system library will be produced. This is different from other library outputs in that\nthe compiler will never attempt to link to `staticlib` outputs. The\npurpose of this output type is to create a static library containing all of\nthe local crate's code along with all upstream dependencies. The static\nlibrary is actually a `*.a` archive on linux and osx and a `*.lib` file on\nwindows. This format is recommended for use in situations such as linking\nRust code into an existing non-Rust application because it will not have\ndynamic dependencies on other Rust code.", + "The output produced is not specified, but if a `-L` path is provided to it then the\ncompiler will recognize the output artifacts as a macro and it can be loaded\nfor a program. Crates compiled with this crate type must only export\n[procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html). The compiler will automatically set the `proc_macro`\n[configuration option](https://doc.rust-lang.org/reference/conditional-compilation.html). The crates are always compiled with the same target\nthat the compiler itself was built with. For example, if you are executing\nthe compiler from Linux with an `x86_64` CPU, the target will be\n`x86_64-unknown-linux-gnu` even if the crate is a dependency of another crate\nbeing built for a different target." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field" + } + } + }, + "crate_type": { + "type": "array", + "items": { + "type": "string", + "x-taplo": { + "hidden": true + } + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "doc": { + "description": "The `doc` field indicates whether or not the target is included in the\ndocumentation generated by [`cargo doc`](https://doc.rust-lang.org/cargo/commands/cargo-doc.html) by default. The default is `true` for\nlibraries and binaries.\n\n> **Note**: The binary will be skipped if its name is the same as the lib\n> target.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-doc-field" + } + } + }, + "doctest": { + "description": "The `doctest` field indicates whether or not [documentation examples](https://doc.rust-lang.org/rustdoc/documentation-tests.html) are\ntested by default by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html). This is only relevant for libraries, it\nhas no effect on other sections. The default is `true` for the library.\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-doctest-field" + } + } + }, + "edition": { + "$ref": "#/definitions/Edition" + }, + "harness": { + "description": "The `harness` field indicates that the [`--test` flag](https://doc.rust-lang.org/rustc/command-line-arguments.html#option-test) will be passed to\n`rustc` which will automatically include the libtest library which is the\ndriver for collecting and running tests marked with the [`#[test]` attribute](https://doc.rust-lang.org/reference/attributes/testing.html#the-test-attribute) or benchmarks with the `#[bench]` attribute. The\ndefault is `true` for all targets.\n\nIf set to `false`, then you are responsible for defining a `main()` function\nto run tests and benchmarks.\n\nTests have the [`cfg(test)` conditional expression](https://doc.rust-lang.org/reference/conditional-compilation.html#test) enabled whether\nor not the harness is enabled.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field" + } + } + }, + "name": { + "description": "The `name` field specifies the name of the target, which corresponds to the\nfilename of the artifact that will be generated. For a library, this is the\ncrate name that dependencies will use to reference it.\n\nFor the `[lib]` and the default binary (`src/main.rs`), this defaults to the\nname of the package, with any dashes replaced with underscores. For other\n[auto discovered](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery) targets, it defaults to the\ndirectory or file name.\n\nThis is required for all targets except `[lib]`.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-name-field" + } + } + }, + "path": { + "description": "The `path` field specifies where the source for the crate is located, relative\nto the `Cargo.toml` file.\n\nIf not specified, the [inferred path](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery) is used based on\nthe target name.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-path-field" + } + } + }, + "plugin": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "proc-macro": { + "description": "The `proc-macro` field indicates that the library is a [procedural macro](https://doc.rust-lang.org/book/ch19-06-macros.html)\n([reference](https://doc.rust-lang.org/reference/procedural-macros.html)). This is only valid for the `[lib]`\ntarget.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-proc-macro-field" + } + } + }, + "proc_macro": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "required-features": { + "description": "The `required-features` field specifies which [features](https://doc.rust-lang.org/cargo/reference/features.html) the target needs in\norder to be built. If any of the required features are not enabled, the\ntarget will be skipped. This is only relevant for the `[[bin]]`, `[[bench]]`,\n`[[test]]`, and `[[example]]` sections, it has no effect on `[lib]`.\n\n```toml\n[features]\n# ...\npostgres = []\nsqlite = []\ntools = []\n\n[[bin]]\nname = \"my-pg-tool\"\nrequired-features = [\"postgres\", \"tools\"]\n```\n", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `required-features` field specifies which [features](https://doc.rust-lang.org/cargo/reference/features.html) the target needs in\norder to be built. If any of the required features are not enabled, the\ntarget will be skipped. This is only relevant for the `[[bin]]`, `[[bench]]`,\n`[[test]]`, and `[[example]]` sections, it has no effect on `[lib]`.\n\n```toml\n[features]\n# ...\npostgres = []\nsqlite = []\ntools = []\n\n[[bin]]\nname = \"my-pg-tool\"\nrequired-features = [\"postgres\", \"tools\"]\n```\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-required-features-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-required-features-field" + } + } + }, + "test": { + "description": "The `test` field indicates whether or not the target is tested by default by\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html). The default is `true` for lib, bins, and tests.\n\n> **Note**: Examples are built by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by default to ensure they\n> continue to compile, but they are not *tested* by default. Setting `test =\n> true` for an example will also build it as a test and run any\n> [`#[test]`](https://doc.rust-lang.org/reference/attributes/testing.html#the-test-attribute) functions defined in the example.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field" + } + } + } + }, + "x-tombi-table-keys-order": "schema" + }, + "Workspace": { + "title": "Workspace", + "description": "The `[workspace]` table in `Cargo.toml` defines which packages are members of\nthe workspace:\n\n```toml\n[workspace]\nmembers = [\"member1\", \"path/to/member2\", \"crates/*\"]\nexclude = [\"crates/foo\", \"path/to/other\"]\n```\n\nAn empty `[workspace]` table can be used with a `[package]` to conveniently\ncreate a workspace with the package and all of its path dependencies.\n\nAll [`path` dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies) residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs](https://docs.rs/glob/0.3.0/glob/struct.Pattern.html) to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.\n\nThe `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.\n\nAn empty `[workspace]` table can be used with a `[package]` to conveniently\ncreate a workspace with the package and all of its path dependencies.", + "type": "object", + "properties": { + "resolver": { + "$ref": "#/definitions/Resolver" + }, + "members": { + "description": "All [`path` dependencies] residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs] to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "All [`path` dependencies] residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs] to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "exclude": { + "description": "The `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "default-members": { + "description": "The optional `default-members` key can be specified to set the members to\noperate on when in the workspace root and the package selection flags are not\nused:\n\n```toml\n[workspace]\nmembers = [\"path/to/member1\", \"path/to/member2\", \"path/to/member3/*\"]\ndefault-members = [\"path/to/member2\", \"path/to/member3/foo\"]\n```\n\nWhen specified, `default-members` must expand to a subset of `members`.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The optional `default-members` key can be specified to set the members to\noperate on when in the workspace root and the package selection flags are not\nused:\n\n```toml\n[workspace]\nmembers = [\"path/to/member1\", \"path/to/member2\", \"path/to/member3/*\"]\ndefault-members = [\"path/to/member2\", \"path/to/member3/foo\"]\n```\n\nWhen specified, `default-members` must expand to a subset of `members`.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "package": { + "description": "The `workspace.package` table is where you define keys that can be\ninherited by members of a workspace. These keys can be inherited by\ndefining them in the member package with `{key}.workspace = true`.\n\nKeys that are supported:\n\n| | |\n|----------------|-----------------|\n| `authors` | `categories` |\n| `description` | `documentation` |\n| `edition` | `exclude` |\n| `homepage` | `include` |\n| `keywords` | `license` |\n| `license-file` | `publish` |\n| `readme` | `repository` |\n| `rust-version` | `version` |\n\n- `license-file` and `readme` are relative to the workspace root\n- `include` and `exclude` are relative to your package root\n\nExample:\n```toml\n# [PROJECT_DIR]/Cargo.toml\n[workspace]\nmembers = [\"bar\"]\n\n[workspace.package]\nversion = \"1.2.3\"\nauthors = [\"Nice Folks\"]\ndescription = \"A short description of my package\"\ndocumentation = \"https://example.com/bar\"\n```\n\n```toml\n# [PROJECT_DIR]/bar/Cargo.toml\n[package]\nname = \"bar\"\nversion.workspace = true\nauthors.workspace = true\ndescription.workspace = true\ndocumentation.workspace = true\n```", + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/SemVer" + }, + "authors": { + "$ref": "#/definitions/Authors" + }, + "edition": { + "$ref": "#/definitions/Edition" + }, + "rust-version": { + "$ref": "#/definitions/RustVersion" + }, + "description": { + "$ref": "#/definitions/Description" + }, + "documentation": { + "$ref": "#/definitions/Documentation" + }, + "readme": { + "$ref": "#/definitions/Readme" + }, + "homepage": { + "$ref": "#/definitions/Homepage" + }, + "repository": { + "$ref": "#/definitions/Repository" + }, + "license": { + "$ref": "#/definitions/License" + }, + "license-file": { + "$ref": "#/definitions/LicenseFile" + }, + "keywords": { + "$ref": "#/definitions/Keywords" + }, + "categories": { + "$ref": "#/definitions/Categories" + }, + "exclude": { + "$ref": "#/definitions/Exclude" + }, + "include": { + "$ref": "#/definitions/Include" + }, + "publish": { + "$ref": "#/definitions/Publish" + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table" + } + } + }, + "dependencies": { + "description": "The `workspace.dependencies` table is where you define dependencies to be\ninherited by members of a workspace.\n\nSpecifying a workspace dependency is similar to [package dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) except:\n- Dependencies from this table cannot be declared as `optional`\n- [`features`][features] declared in this table are additive with the `features` from `[dependencies]`\n\nYou can then [inherit the workspace dependency as a package dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace)\n\nExample:\n```toml\n# [PROJECT_DIR]/Cargo.toml\n[workspace]\nmembers = [\"bar\"]\n\n[workspace.dependencies]\ncc = \"1.0.73\"\nrand = \"0.8.5\"\nregex = { version = \"1.6.0\", default-features = false, features = [\"std\"] }\n```\n\n```toml\n# [PROJECT_DIR]/bar/Cargo.toml\n[package]\nname = \"bar\"\nversion = \"0.2.0\"\n\n[dependencies]\nregex = { workspace = true, features = [\"unicode\"] }\n\n[build-dependencies]\ncc.workspace = true\n\n[dev-dependencies]\nrand.workspace = true\n```", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "lints": { + "$ref": "#/definitions/Lints", + "description": "The `workspace.lints` table is where you define lint configuration to be inherited by members of a workspace.", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "metadata": { + "description": "The `workspace.metadata` table is ignored by Cargo and will not be warned\nabout. This section can be used for tools that would like to store workspace\nconfiguration in `Cargo.toml`. For example:\n\n```toml\n[workspace]\nmembers = [\"member1\", \"member2\"]\n\n[workspace.metadata.webcontents]\nroot = \"path/to/webproject\"\ntool = [\"npm\", \"run\", \"build\"]\n# ...\n```\n\nThere is a similar set of tables at the package level at\n`package.metadata`. While cargo does not specify a\nformat for the content of either of these tables, it is suggested that\nexternal tools may wish to use them in a consistent fashion, such as referring\nto the data in `workspace.metadata` if data is missing from `package.metadata`,\nif that makes sense for the tool in question.\n", + "type": "object", + "additionalProperties": true, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html" + } + } + }, + "Authors": { + "title": "Authors", + "description": "The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field" + } + } + }, + "Categories": { + "title": "Categories", + "description": "The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-categories-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-categories-field" + } + } + }, + "Description": { + "title": "Description", + "description": "The description is a short blurb about the package. [crates.io](https://crates.io) will display\nthis with your package. This should be plain text (not Markdown).\n\n```toml\n[package]\n# ...\ndescription = \"A short description of my package\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires the `description` to be set.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-description-field" + } + } + }, + "Documentation": { + "title": "Documentation", + "description": "\nThe `documentation` field specifies a URL to a website hosting the crate's\ndocumentation. If no URL is specified in the manifest file, [crates.io](https://crates.io) will\nautomatically link your crate to the corresponding [docs.rs](https://docs.rs) page.\n\n```toml\n[package]\n# ...\ndocumentation = \"https://docs.rs/bitflags\"\n```\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-documentation-field" + } + } + }, + "Exclude": { + "title": "Exclude", + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "Homepage": { + "title": "Homepage", + "description": "The `homepage` field should be a URL to a site that is the home page for your\npackage.\n\n```toml\n[package]\n# ...\nhomepage = \"https://serde.rs/\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-homepage-field" + } + } + }, + "Include": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "Keywords": { + "title": "Keywords", + "description": "The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-keywords-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-keywords-field" + } + } + }, + "License": { + "title": "License", + "description": "The `license` field contains the name of the software license that the package\nis released under.\n\n[crates.io](https://crates.io/) interprets the `license` field as an [SPDX 2.1 license\nexpression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60). The name must be a known license\nfrom the [SPDX license list 3.6](https://github.com/spdx/license-list-data/tree/v3.6). Parentheses are not\ncurrently supported. See the [SPDX site](https://spdx.org/license-list) for more information.\n\nSPDX license expressions support AND and OR operators to combine multiple\nlicenses.\n\n```toml\n[package]\n# ...\nlicense = \"MIT OR Apache-2.0\"\n```\n\nUsing `OR` indicates the user may choose either license. Using `AND` indicates\nthe user must comply with both licenses simultaneously. The `WITH` operator\nindicates a license with a special exception. Some examples:\n\n* `MIT OR Apache-2.0`\n* `LGPL-2.1 AND MIT AND BSD-2-Clause`\n* `GPL-2.0+ WITH Bison-exception-2.2`\n\nIf a package is using a nonstandard license, then the `license-file` field may\nbe specified in lieu of the `license` field.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields" + } + } + }, + "LicenseFile": { + "title": "LicenseFile", + "description": "The `license-file` field contains the path to a file\ncontaining the text of the license (relative to this `Cargo.toml`).\n\n```toml\n[package]\n# ...\nlicense-file = \"LICENSE.txt\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires either `license` or `license-file` to be set.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields" + } + } + }, + "Repository": { + "title": "Repository", + "description": "The `repository` field should be a URL to the source repository for your\npackage.\n\n```toml\n[package]\n# ...\nrepository = \"https://github.com/rust-lang/cargo/\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-repository-field" + } + } + }, + "RustVersion": { + "title": "RustVersion", + "description": "The `rust-version` field is an optional key that tells cargo what version of the\nRust language and compiler your package can be compiled with. If the currently\nselected version of the Rust compiler is older than the stated version, cargo\nwill exit with an error, telling the user what version is required.\n\nThe first version of Cargo that supports this field was released with Rust 1.56.0.\nIn older releases, the field will be ignored, and Cargo will display a warning.\n\n```toml\n[package]\n# ...\nrust-version = \"1.56\"\n```\n\nThe Rust version must be a bare version number with two or three components; it\ncannot include semver operators or pre-release identifiers. Compiler pre-release\nidentifiers such as -nightly will be ignored while checking the Rust version.\nThe `rust-version` must be equal to or newer than the version that first\nintroduced the configured `edition`.\n\nThe `rust-version` may be ignored using the `--ignore-rust-version` option.\n\nSetting the `rust-version` key in `[package]` will affect all targets/crates in\nthe package, including test suites, benchmarks, binaries, examples, etc.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field" + } + } + }, + "WorkspaceInheritance": { + "type": "object", + "properties": { + "workspace": { + "title": "Workspace", + "description": "The `workspace` field allow keys to be inherited by defining them in the member package with `{key}.workspace = true`", + "type": "boolean", + "enum": [true] + } + }, + "required": ["workspace"], + "additionalProperties": false, + "x-tombi-table-keys-order": "schema" + }, + "PlaydateMetadata": { + "title": "Playdate Package Metadata", + "description": "Metadata and build configuration.", + "type": "object", + "required": ["bundle-id"], + "properties": { + "bundle-id": { + "type": "string", + "description": "A unique identifier for your game, in reverse DNS notation.", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "name": { + "type": "string", + "description": "A game version number, formatted any way you wish, that is displayed to players. It is not used to compute when updates should occur.", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "author": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "description": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "version": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "build-number": { + "type": "integer", + "exclusiveMinimum": 0, + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "A monotonically-increasing integer value used to indicate a unique version of your game. This can be set using an automated build process like Continuous Integration to avoid having to set the value by hand.\n\nFor sideloaded games, buildNumber is required and is used to determine when a newer version is available to download." + }, + "image-path": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "A directory of images that will be used by the launcher.\n\nMore in [official documentation](https://sdk.play.date/#pdxinfo)." + }, + "launch-sound-path": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "Should point to the path of a short audio file to be played as the game launch animation is taking place.\n\nMore in [official documentation](https://sdk.play.date/#pdxinfo)." + }, + "content-warning": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "Optional. A content warning that displays when the user launches your game for the first time. The user will have the option of backing out and not launching your game if they choose." + }, + "content-warning2": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "Optional. A second content warning that displays on a second screen when the user launches your game for the first time. The user will have the option of backing out and not launching your game if they choose.\n\nNote: `content-warning2` will only display if a `content-warning` attribute is also specified.\n\nThe string displayed on the content warning screen can only be so long before it will be truncated with an \"…\" character. Be sure to keep this in mind when designing your `content-warning` and `content-warning2` text." + }, + "assets": { + "anyOf": [ + { + "$ref": "#/definitions/PlaydateMetadataAssetsMap" + }, + { + "$ref": "#/definitions/PlaydateMetadataAssetsArray" + } + ] + }, + "dev-assets": { + "anyOf": [ + { + "$ref": "#/definitions/PlaydateMetadataAssetsMap" + }, + { + "$ref": "#/definitions/PlaydateMetadataAssetsArray" + } + ] + }, + "options": { + "$ref": "#/definitions/PlaydateMetadataOptions" + }, + "support": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "initKeys": [ + "bundle-id", + "name", + "description", + "author", + "image-path", + "launch-sound-path" + ], + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "x-taplo-info": { + "authors": ["Alex Koz. (https://github.com/boozook)"] + } + }, + "PlaydateMetadataAssetsArray": { + "type": "array", + "title": "Assets list", + "description": "List of paths to include.", + "uniqueItems": true, + "items": { + "title": "Path", + "description": "Path to include.", + "type": "string" + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#assets-list" + } + } + }, + "PlaydateMetadataAssetsMap": { + "type": "object", + "title": "Assets rules", + "description": "Rules used to resolve paths to include.", + "properties": { + "options": { + "$ref": "#/definitions/PlaydateMetadataAssetsOptions" + } + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "title": "Path", + "description": "Path of files to include. Can be absolute, relative to the crate root, or/and glob.\n\nLeft hand is where to put files, path in the resulting package.\n\nRight hand is a path or pattern to match files to include." + }, + { + "type": "boolean", + "title": "Include", + "description": "Include or exclude the file or glob-pattern." + } + ] + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#assets-table" + } + } + }, + "PlaydateMetadataAssetsOptions": { + "type": "object", + "title": "Assets Configuration", + "description": "Options for assets paths resolution and how to build assets collection", + "additionalProperties": false, + "properties": { + "overwrite": { + "type": "boolean", + "description": "Allow overwriting existing files." + }, + "follow-symlinks": { + "type": "boolean" + }, + "method": { + "type": "string", + "enum": ["copy", "link"] + }, + "dependencies": { + "type": "boolean", + "description": "Allow build assets for dependencies." + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#assets-options" + } + } + }, + "PlaydateMetadataOptions": { + "type": "object", + "title": "Configuration", + "description": "Package build options.", + "additionalProperties": true, + "properties": { + "assets": { + "$ref": "#/definitions/PlaydateMetadataAssetsOptions" + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#options" + } + } + } + }, + "description": "A schema for Cargo.toml.", + "properties": { + "cargo-features": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort" + }, + "package": { + "$ref": "#/definitions/Package" + }, + "project": { + "$ref": "#/definitions/Package", + "description": "[project] is deprecated. Use [package] instead.", + "deprecated": true, + "x-taplo": { + "hidden": true + } + }, + "workspace": { + "$ref": "#/definitions/Workspace" + }, + "lib": { + "$ref": "#/definitions/Target", + "x-taplo": { + "docs": { + "main": "The library target defines a \"library\" that can be used and linked by other\nlibraries and executables. The filename defaults to `src/lib.rs`, and the name\nof the library defaults to the name of the package. A package can have only\none library. The settings for the library can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[lib]`\ntable in `Cargo.toml`.\n\n```toml\n# Example of customizing the library in Cargo.toml.\n[lib]\ncrate-type = [\"cdylib\"]\nbench = false\n```\n" + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#library" + } + } + }, + "bin": { + "description": "Binary targets are executable programs that can be run after being compiled.\nThe default binary filename is `src/main.rs`, which defaults to the name of\nthe package. Additional binaries are stored in the [`src/bin/`\ndirectory](https://doc.rust-lang.org/cargo/guide/project-layout.html). The settings for each binary can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[[bin]]` tables in `Cargo.toml`.\n\nBinaries can use the public API of the package's library. They are also linked\nwith the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) defined in `Cargo.toml`.\n\nYou can run individual binaries with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with the `--bin\n` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html) can be used to copy the executable to a\ncommon location.\n\n```toml\n# Example of customizing binaries in Cargo.toml.\n[[bin]]\nname = \"cool-tool\"\ntest = false\nbench = false\n\n[[bin]]\nname = \"frobnicator\"\nrequired-features = [\"frobnicate\"]\n```", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Binary targets are executable programs that can be run after being compiled.\nThe default binary filename is `src/main.rs`, which defaults to the name of\nthe package. Additional binaries are stored in the [`src/bin/`\ndirectory](https://doc.rust-lang.org/cargo/guide/project-layout.html). The settings for each binary can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[[bin]]` tables in `Cargo.toml`.\n\nBinaries can use the public API of the package's library. They are also linked\nwith the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) defined in `Cargo.toml`.\n\nYou can run individual binaries with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with the `--bin\n` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html) can be used to copy the executable to a\ncommon location.\n\n```toml\n# Example of customizing binaries in Cargo.toml.\n[[bin]]\nname = \"cool-tool\"\ntest = false\nbench = false\n\n[[bin]]\nname = \"frobnicator\"\nrequired-features = [\"frobnicate\"]\n```", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries" + } + } + }, + "example": { + "description": "Files located under the [examples directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are example uses of the functionality provided by the library. When compiled, they are placed in the[ target/debug/examples directory](https://doc.rust-lang.org/cargo/guide/build-cache.html).\n\nExamples can use the public API of the package's library. They are also linked with the [dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in Cargo.toml.\n\nBy default, examples are executable binaries (with a `main()` function). You\ncan specify the [`crate-type` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field) to make an example\nbe compiled as a library:\n\n```toml\n[[example]]\nname = \"foo\"\ncrate-type = [\"staticlib\"]\n```\n\nYou can run individual executable examples with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with\nthe `--example ` option. Library examples can be built with\n[`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) with the `--example ` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html)\nwith the `--example ` option can be used to copy executable\nbinaries to a common location. Examples are compiled by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by\ndefault to protect them from bit-rotting. Set [the `test`\nfield](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field) to `true` if you have `#[test]` functions in the\nexample that you want to run with [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html).\n", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Files located under the [examples directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are example uses of the functionality provided by the library. When compiled, they are placed in the[ target/debug/examples directory](https://doc.rust-lang.org/cargo/guide/build-cache.html).\n\nExamples can use the public API of the package's library. They are also linked with the [dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in Cargo.toml.\n\nBy default, examples are executable binaries (with a `main()` function). You\ncan specify the [`crate-type` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field) to make an example\nbe compiled as a library:\n\n```toml\n[[example]]\nname = \"foo\"\ncrate-type = [\"staticlib\"]\n```\n\nYou can run individual executable examples with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with\nthe `--example ` option. Library examples can be built with\n[`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) with the `--example ` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html)\nwith the `--example ` option can be used to copy executable\nbinaries to a common location. Examples are compiled by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by\ndefault to protect them from bit-rotting. Set [the `test`\nfield](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field) to `true` if you have `#[test]` functions in the\nexample that you want to run with [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html).\n", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#examples" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#examples" + } + } + }, + "test": { + "description": "Files located under the [`tests` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are integration\ntests. When you run [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html), Cargo will compile each of these files as\na separate crate, and execute them.\n\nIntegration tests can use the public API of the package's library. They are\nalso linked with the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and\n[`[dev-dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in `Cargo.toml`.\n\nIf you want to share code among multiple integration tests, you can place it\nin a separate module such as `tests/common/mod.rs` and then put `mod common;`\nin each test to import it.\n\nEach integration test results in a separate executable binary, and [`cargo\ntest`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) will run them serially. In some cases this can be inefficient, as it\ncan take longer to compile, and may not make full use of multiple CPUs when\nrunning the tests. If you have a lot of integration tests, you may want to\nconsider creating a single integration test, and split the tests into multiple\nmodules. The libtest harness will automatically find all of the `#[test]`\nannotated functions and run them in parallel. You can pass module names to\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) to only run the tests within that module.\n\nBinary targets are automatically built if there is an integration test. This\nallows an integration test to execute the binary to exercise and test its\nbehavior. The `CARGO_BIN_EXE_` [environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates) is set when the\nintegration test is built so that it can use the [`env` macro](https://doc.rust-lang.org/std/macro.env.html) to locate the\nexecutable.", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Files located under the [`tests` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are integration\ntests. When you run [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html), Cargo will compile each of these files as\na separate crate, and execute them.\n\nIntegration tests can use the public API of the package's library. They are\nalso linked with the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and\n[`[dev-dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in `Cargo.toml`.\n\nIf you want to share code among multiple integration tests, you can place it\nin a separate module such as `tests/common/mod.rs` and then put `mod common;`\nin each test to import it.\n\nEach integration test results in a separate executable binary, and [`cargo\ntest`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) will run them serially. In some cases this can be inefficient, as it\ncan take longer to compile, and may not make full use of multiple CPUs when\nrunning the tests. If you have a lot of integration tests, you may want to\nconsider creating a single integration test, and split the tests into multiple\nmodules. The libtest harness will automatically find all of the `#[test]`\nannotated functions and run them in parallel. You can pass module names to\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) to only run the tests within that module.\n\nBinary targets are automatically built if there is an integration test. This\nallows an integration test to execute the binary to exercise and test its\nbehavior. The `CARGO_BIN_EXE_` [environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates) is set when the\nintegration test is built so that it can use the [`env` macro](https://doc.rust-lang.org/std/macro.env.html) to locate the\nexecutable.", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests" + } + } + }, + "bench": { + "description": "Benchmarks provide a way to test the performance of your code using the\n[`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html) command. They follow the same structure as [tests](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#tests),\nwith each benchmark function annotated with the `#[bench]` attribute.\nSimilarly to tests:\n\n* Benchmarks are placed in the [`benches` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html).\n* Benchmark functions defined in libraries and binaries have access to the\n *private* API within the target they are defined in. Benchmarks in the\n `benches` directory may use the *public* API.\n* [The `bench` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field) can be used to define which targets\n are benchmarked by default.\n* [The `harness` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field) can be used to disable the\n built-in harness.\n\n> **Note**: The [`#[bench]`\n> attribute](https://doc.rust-lang.org/unstable-book/library-features/test.html) is currently\n> unstable and only available on the [nightly channel](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html). There are some\n> packages available on [crates.io](https://crates.io/keywords/benchmark) that\n> may help with running benchmarks on the stable channel, such as\n> [Criterion](https://crates.io/crates/criterion).", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Benchmarks provide a way to test the performance of your code using the\n[`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html) command. They follow the same structure as [tests](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#tests),\nwith each benchmark function annotated with the `#[bench]` attribute.\nSimilarly to tests:\n\n* Benchmarks are placed in the [`benches` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html).\n* Benchmark functions defined in libraries and binaries have access to the\n *private* API within the target they are defined in. Benchmarks in the\n `benches` directory may use the *public* API.\n* [The `bench` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field) can be used to define which targets\n are benchmarked by default.\n* [The `harness` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field) can be used to disable the\n built-in harness.\n\n> **Note**: The [`#[bench]`\n> attribute](https://doc.rust-lang.org/unstable-book/library-features/test.html) is currently\n> unstable and only available on the [nightly channel](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html). There are some\n> packages available on [crates.io](https://crates.io/keywords/benchmark) that\n> may help with running benchmarks on the stable channel, such as\n> [Criterion](https://crates.io/crates/criterion).", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#benchmarks" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#benchmarks" + } + } + }, + "dependencies": { + "description": "Cargo is configured to look for dependencies on [crates.io](https://crates.io) by default. Only\nthe name and a version string are required in this case. In [the cargo\nguide](https://doc.rust-lang.org/cargo/guide/index.html), we specified a dependency on the `time` crate:\n\n```toml\n[dependencies]\ntime = \"0.1.12\"\n```\n\nThe string `\"0.1.12\"` is a [semver](https://github.com/steveklabnik/semver#requirements) version requirement. Since this\nstring does not have any operators in it, it is interpreted the same way as\nif we had specified `\"^0.1.12\"`, which is called a caret requirement.\n\nA dependency can also be defined by a table with additional options:\n\n```toml\n[dependencies]\ntime = { path = \"../time\", version = \"0.1.12\" }\n```", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html" + } + } + }, + "dev-dependencies": { + "description": "The format of `[dev-dependencies]` is equivalent to `[dependencies]`:\n\n```toml\n[dev-dependencies]\ntempdir = \"0.3\"\n```\n\nDev-dependencies are not used when compiling\na package for building, but are used for compiling tests, examples, and\nbenchmarks.\n\nThese dependencies are *not* propagated to other packages which depend on this\npackage.\n\nYou can also have target-specific development dependencies by using\n`dev-dependencies` in the target section header instead of `dependencies`. For\nexample:\n\n```toml\n[target.'cfg(unix)'.dev-dependencies]\nmio = \"0.0.1\"\n```\n\n> **Note**: When a package is published, only dev-dependencies that specify a\n> `version` will be included in the published crate. For most use cases,\n> dev-dependencies are not needed when published, though some users (like OS\n> packagers) may want to run tests within a crate, so providing a `version` if\n> possible can still be beneficial.\n", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "dev_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "description": "[dev_dependencies] is deprecated. Use [dev-dependencies] instead.", + "deprecated": true, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "build-dependencies": { + "description": "You can depend on other Cargo-based crates for use in your build scripts.\nDependencies are declared through the `build-dependencies` section of the\nmanifest:\n\n```toml\n[build-dependencies]\ncc = \"1.0.3\"\n```\n\nThe build script **does not** have access to the dependencies listed\nin the `dependencies` or `dev-dependencies` section. Build\ndependencies will likewise not be available to the package itself\nunless listed under the `dependencies` section as well. A package\nitself and its build script are built separately, so their\ndependencies need not coincide. Cargo is kept simpler and cleaner by\nusing independent dependencies for independent purposes.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "build_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "description": "[build_dependencies] is deprecated. Use [build-dependencies] instead.", + "deprecated": true, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "target": { + "type": "object", + "x-tombi-table-keys-order": "version-sort", + "additionalProperties": { + "$ref": "#/definitions/Platform" + } + }, + "badges": { + "description": "[crates.io](https://crates.io) can display various badges for build status, test coverage, etc. for\neach crate. All badges are optional.\n\n- The badges pertaining to build status that are currently available are\n Appveyor, CircleCI, Cirrus CI, GitLab, Azure DevOps, Travis CI and Bitbucket\n Pipelines.\n- Available badges pertaining to code test coverage are Codecov and Coveralls.\n- There are also maintenance-related badges based on isitmaintained.com\n which state the issue resolution time, percent of open issues, and future\n maintenance intentions.\n\nMost badge specifications require a `repository` key. It is expected to be in\n`user/repo` format.\n\n```toml\n[badges]\n\n# Appveyor: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default), `bitbucket`, and\n# `gitlab`; `id` is optional; you can specify the appveyor project id if you\n# want to use that instead. `project_name` is optional; use when the repository\n# name differs from the appveyor project name.\nappveyor = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Circle CI: `repository` is required. `branch` is optional; default is `master`\ncircle-ci = { repository = \"...\", branch = \"master\" }\n\n# Cirrus CI: `repository` is required. `branch` is optional; default is `master`\ncirrus-ci = { repository = \"...\", branch = \"master\" }\n\n# GitLab: `repository` is required. `branch` is optional; default is `master`\ngitlab = { repository = \"...\", branch = \"master\" }\n\n# Azure DevOps: `project` is required. `pipeline` is required. `build` is optional; default is `1`\n# Note: project = `organization/project`, pipeline = `name_of_pipeline`, build = `definitionId`\nazure-devops = { project = \"...\", pipeline = \"...\", build=\"2\" }\n\n# Travis CI: `repository` in format \"/\" is required.\n# `branch` is optional; default is `master`\ntravis-ci = { repository = \"...\", branch = \"master\" }\n\n# Bitbucket Pipelines: `repository` is required. `branch` is required\nbitbucket-pipelines = { repository = \"...\", branch = \"master\" }\n\n# Codecov: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default), `bitbucket`, and\n# `gitlab`.\ncodecov = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Coveralls: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default) and `bitbucket`.\ncoveralls = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Is it maintained resolution time: `repository` is required.\nis-it-maintained-issue-resolution = { repository = \"...\" }\n\n# Is it maintained percentage of open issues: `repository` is required.\nis-it-maintained-open-issues = { repository = \"...\" }\n\n# Maintenance: `status` is required. Available options are:\n# - `actively-developed`: New features are being added and bugs are being fixed.\n# - `passively-maintained`: There are no plans for new features, but the maintainer intends to\n# respond to issues that get filed.\n# - `as-is`: The crate is feature complete, the maintainer does not intend to continue working on\n# it or providing support, but it works for the purposes it was designed for.\n# - `experimental`: The author wants to share it with the community but is not intending to meet\n# anyone's particular use case.\n# - `looking-for-maintainer`: The current maintainer would like to transfer the crate to someone\n# else.\n# - `deprecated`: The maintainer does not recommend using this crate (the description of the crate\n# can describe why, there could be a better solution available or there could be problems with\n# the crate that the author does not want to fix).\n# - `none`: Displays no badge on crates.io, since the maintainer has not chosen to specify\n# their intentions, potential crate users will need to investigate on their own.\nmaintenance = { status = \"...\" }\n```", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-badges-section" + } + } + }, + "features": { + "description": "Cargo supports features to allow expression of:\n\n* conditional compilation options (usable through `cfg` attributes);\n* optional dependencies, which enhance a package, but are not required; and\n* clusters of optional dependencies, such as `postgres-all`, that would include the\n `postgres` package, the `postgres-macros` package, and possibly other packages\n (such as development-time mocking libraries, debugging tools, etc.).\n\nA feature of a package is either an optional dependency, or a set of other\nfeatures.\n", + "type": "object", + "properties": { + "default": { + "title": "Default Feature", + "description": "The default features of the crate.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/features.html#the-default-feature" + } + } + } + }, + "additionalProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "x-tombi-array-values-order": "version-sort" + }, + "x-tombi-table-keys-order": { + "properties": "schema", + "additionalProperties": "version-sort" + }, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/features.html" + } + } + }, + "lints": { + "description": "Override the default level of lints from different tools by assigning them to a new level in a table.", + "anyOf": [ + { + "$ref": "#/definitions/Lints" + }, + { + "type": "object", + "properties": { + "workspace": { + "type": "boolean", + "description": "Inherit lints from the workspace manifest." + } + }, + "required": ["workspace"], + "additionalProperties": false, + "x-tombi-table-keys-order": "version-sort" + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-lints-section" + } + } + }, + "patch": { + "description": "The `[patch]` section of `Cargo.toml` can be used to override dependencies\nwith other copies. The syntax is similar to the\n[`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) section.\n\n", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-section" + } + } + }, + "replace": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "profile": { + "$ref": "#/definitions/Profiles" + } + }, + "title": "Cargo.toml", + "type": "object", + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo-info": { + "authors": ["tamasfe (https://github.com/tamasfe)"], + "patterns": ["^(.*(/|\\\\)Cargo\\.toml|Cargo\\.toml)$"] + } +} diff --git a/tests/testdata/json_schemastore_cargo_workspace_members/old.json b/tests/testdata/json_schemastore_cargo_workspace_members/old.json new file mode 100644 index 0000000..e1afd63 --- /dev/null +++ b/tests/testdata/json_schemastore_cargo_workspace_members/old.json @@ -0,0 +1,2246 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/cargo.json", + "x-tombi-toml-version": "v1.0.0", + "definitions": { + "Build": { + "title": "Build", + "description": "The `build` field specifies a file in the package root which is a [build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) for building native code. More information can be found in the [build script guide](https://doc.rust-lang.org/cargo/reference/build-scripts.html).\n\n\n```toml\n[package]\n# ...\nbuild = \"build.rs\"\n```\n\nThe default is `\"build.rs\"`, which loads the script from a file named\n`build.rs` in the root of the package. Use `build = \"custom_build_name.rs\"` to\nspecify a path to a different file or `build = false` to disable automatic\ndetection of the build script.\n", + "anyOf": [ + { + "description": "Path to the build file.", + "type": "string" + }, + { + "type": "boolean", + "enum": [true, false], + "x-taplo": { + "docs": { + "enumValues": [ + "Automatically detect the build file (`build.rs`).", + "Disable automatic detection of the build file." + ] + } + } + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-build-field" + } + } + }, + "DebugLevel": { + "title": "Debug Level", + "description": "The `debug` setting controls the [`-C debuginfo` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#debuginfo) which controls the\namount of debug information included in the compiled binary.", + "oneOf": [ + { + "type": "string", + "enum": [ + "none", + "line-directives-only", + "line-tables-only", + "limited", + "full" + ] + }, + { + "type": "boolean" + }, + { + "type": "integer", + "enum": [0, 1, 2] + } + ], + "x-taplo": { + "docs": { + "enumValues": [ + "No debug info at all, default for `release` profile", + "Debug info without type or variable-level information. Generates more detailed module-level info than `line-tables-only`.", + "Full debug info, default for `dev` profile", + "Full debug info, default for `dev` profile", + "No debug info at all, default for `release` profile", + "No debug info at all, default for `release` profile", + "Line info directives only. For the nvptx* targets this enables [profiling](https://reviews.llvm.org/D46061). For other use cases, `line-tables-only` is the better, more compatible choice.", + "Line tables only. Generates the minimal amount of debug info for backtraces with filename/line number info, but not anything else, i.e. no variable or function parameter info.", + "Debug info without type or variable-level information. Generates more detailed module-level info than `line-tables-only`.", + "Full debug info, default for `dev` profile" + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#debug" + } + } + }, + "Dependency": { + "title": "Dependency", + "anyOf": [ + { + "$ref": "#/definitions/SemVerRequirement" + }, + { + "$ref": "#/definitions/DetailedDependency" + } + ] + }, + "DetailedDependency": { + "title": "Detailed Dependency", + "type": "object", + "properties": { + "workspace": { + "description": "Inherit this dependency from the workspace manifest.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace" + } + } + }, + "path": { + "description": "Cargo supports **path dependencies** which are typically sub-crates that live within one repository.\nLet's start off by making a new crate inside of our `hello_world` package:\n\n```console\n# inside of hello_world/\n$ cargo new hello_utils\n```\n\nThis will create a new folder `hello_utils` inside of which a `Cargo.toml` and\n`src` folder are ready to be configured. In order to tell Cargo about this, open\nup `hello_world/Cargo.toml` and add `hello_utils` to your dependencies:\n\n```toml\n[dependencies]\nhello_utils = { path = \"hello_utils\" }\n```\n\nThis tells Cargo that we depend on a crate called `hello_utils` which is found\nin the `hello_utils` folder (relative to the `Cargo.toml` it's written in).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies" + } + } + }, + "git": { + "description": "To depend on a library located in a `git` repository, the minimum information\nyou need to specify is the location of the repository with the `git` key:\n\n```toml\n[dependencies]\nrand = { git = \"https://github.com/rust-lang-nursery/rand\" }\n```\n\nCargo will fetch the `git` repository at this location then look for a\n`Cargo.toml` for the requested crate anywhere inside the `git` repository\n(not necessarily at the root - for example, specifying a member crate name\nof a workspace and setting `git` to the repository containing the workspace).\n\nSince we haven't specified any other information, Cargo assumes that\nwe intend to use the latest commit on the main branch to build our package.\nYou can combine the `git` key with the `rev`, `tag`, or `branch` keys to\nspecify something else. Here's an example of specifying that you want to use\nthe latest commit on a branch named `next`:\n\n```toml\n[dependencies]\nrand = { git = \"https://github.com/rust-lang-nursery/rand\", branch = \"next\" }\n```\n\nSee [Git Authentication](https://doc.rust-lang.org/cargo/appendix/git-authentication.html) for help with git authentication for private repos.\n\n> **Note**: [crates.io](https://crates.io/) does not allow packages to be published with `git`\n> dependencies (`git` [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) are ignored). See the [Multiple\n> locations](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#multiple-locations) section for a fallback alternative.\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories" + } + } + }, + "branch": { + "description": "Specify the Git branch to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories" + } + } + }, + "rev": { + "description": "Specify the Git revision to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choice-of-commit).\n\nThis can be a commit hash, or a named reference exposed by the remote repository. GitHub Pull Requests may be specified using the `refs/pull/ID/head` format.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choice-of-commit" + } + } + }, + "tag": { + "description": "Specify the Git tag to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories" + } + } + }, + "version": { + "$ref": "#/definitions/SemVerRequirement" + }, + "default-features": { + "description": "Use the default features of the dependency.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + } + } + }, + "default_features": { + "type": "boolean", + "description": "\"default_features\" is deprecated. Use \"default-features\" instead.", + "deprecated": true, + "x-taplo": { + "hidden": true + } + }, + "features": { + "description": "List of features to activate in the dependency.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "List of features to activate in the dependency.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + }, + "plugins": ["crates"], + "crates": { + "schemas": "feature" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + } + } + }, + "optional": { + "description": "Mark the dependency as optional.\n\nOptional dependencies can be activated through features.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features" + } + } + }, + "package": { + "description": "Specify the name of the package.\n\nWhen writing a `[dependencies]` section in `Cargo.toml` the key you write for a\ndependency typically matches up to the name of the crate you import from in the\ncode. For some projects, though, you may wish to reference the crate with a\ndifferent name in the code regardless of how it's published on crates.io. For\nexample you may wish to:\n\n* Avoid the need to `use foo as bar` in Rust source.\n* Depend on multiple versions of a crate.\n* Depend on crates with the same name from different registries.\n\nTo support this Cargo supports a `package` key in the `[dependencies]` section\nof which package should be depended on:\n\n```toml\n[package]\nname = \"mypackage\"\nversion = \"0.0.1\"\n\n[dependencies]\nfoo = \"0.1\"\nbar = { git = \"https://github.com/example/project\", package = \"foo\" }\nbaz = { version = \"0.1\", registry = \"custom\", package = \"foo\" }\n```\n\nIn this example, three crates are now available in your Rust code:\n\n```rust\nextern crate foo; // crates.io\nextern crate bar; // git repository\nextern crate baz; // registry `custom`\n```\n\nAll three of these crates have the package name of `foo` in their own\n`Cargo.toml`, so we're explicitly using the `package` key to inform Cargo that\nwe want the `foo` package even though we're calling it something else locally.\nThe `package` key, if not specified, defaults to the name of the dependency\nbeing requested.\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml" + } + } + }, + "public": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "registry": { + "description": "To specify a dependency from a registry other than [crates.io](https://crates.io), first the\nregistry must be configured in a `.cargo/config.toml` file. See the [registries\ndocumentation](https://doc.rust-lang.org/cargo/reference/registries.html) for more information. In the dependency, set the `registry` key\nto the name of the registry to use.\n\n```toml\n[dependencies]\nsome-crate = { version = \"1.0\", registry = \"my-registry\" }\n```\n\n> **Note**: [crates.io](https://crates.io) does not allow packages to be published with\n> dependencies on other registries.\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-other-registries" + } + } + }, + "registry-index": { + "type": "string", + "x-taplo": { + "hidden": true + } + } + }, + "minProperties": 1, + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "initFields": ["version"] + } + }, + "DetailedLint": { + "title": "Detailed Lint", + "type": "object", + "properties": { + "level": { + "$ref": "#/definitions/LintLevel" + }, + "priority": { + "description": "The priority that controls which lints or [lint groups](https://doc.rust-lang.org/rustc/lints/groups.html) override other lint groups. Lower (particularly negative) numbers have lower priority, being overridden by higher numbers, and show up first on the command-line to tools like rustc.", + "type": "integer", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-lints-section" + } + } + } + }, + "x-tombi-table-keys-order": "version-sort" + }, + "Edition": { + "title": "Edition", + "description": "The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc.", + "type": "string", + "enum": ["2015", "2018", "2021", "2024"], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/stable/edition-guide/introduction.html" + } + } + }, + "Inherits": { + "title": "Inherits", + "description": "In addition to the built-in profiles, additional custom profiles can be defined.", + "type": "string", + "enum": ["dev", "test", "bench", "release"], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#custom-profiles" + } + } + }, + "Lint": { + "title": "Lint", + "anyOf": [ + { + "$ref": "#/definitions/LintLevel" + }, + { + "$ref": "#/definitions/DetailedLint" + } + ] + }, + "LintLevel": { + "title": "Lint Level", + "description": "Specify the [lint level](https://doc.rust-lang.org/rustc/lints/levels.html) for a lint or lint group.", + "type": "string", + "enum": ["forbid", "deny", "warn", "allow"], + "x-taplo": { + "docs": { + "enumValues": [ + "`forbid` is the same as `deny` in that a lint at this level will produce an error, but unlike the `deny` level, the `forbid` level can not be overridden to be anything lower than an error. However, lint levels may still be capped with [`--cap-lints`](https://doc.rust-lang.org/rustc/lints/levels.html#capping-lints) so `rustc --cap-lints warn` will make lints set to `forbid` just warn.", + "The `deny` lint level produces an error if you violate the lint.", + "The `warn` lint level produces a warning if you violate the lint.", + "The `allow` lint level ignores violations of the lint." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/rustc/lints/levels.html" + } + } + }, + "Lints": { + "type": "object", + "properties": { + "rust": { + "description": "Lint settings for the Rust compiler. See the Rust compiler's [individual lints](https://doc.rust-lang.org/rustc/lints/listing/index.html) or [lint groups](https://doc.rust-lang.org/rustc/lints/groups.html).", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Lint" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "rustdoc": { + "description": "Lint settings for [Rustdoc](https://doc.rust-lang.org/rustdoc/). See Rustdoc's [individual lints](https://doc.rust-lang.org/rustdoc/lints.html) (rustdoc does not have lint groups)", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Lint" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "clippy": { + "description": "Lint settings for [Clippy](https://doc.rust-lang.org/clippy/). See Clippy's [individual lints](https://rust-lang.github.io/rust-clippy/master/index.html) or [lint groups](https://doc.rust-lang.org/clippy/lints.html) documentation.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Lint" + }, + "x-tombi-table-keys-order": "version-sort" + } + }, + "additionalProperties": false, + "x-tombi-table-keys-order": "version-sort" + }, + "Lto": { + "title": "Lto", + "description": "The `lto` setting controls the [`-C lto` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#lto) which controls LLVM's [link time optimizations](https://llvm.org/docs/LinkTimeOptimization.html). LTO can produce better optimized code, using\nwhole-program analysis, at the cost of longer linking time.\n \nSee also the [`-C linker-plugin-lto`](https://doc.rust-lang.org/rustc/codegen-options/index.html#linker-plugin-lto) `rustc` flag for cross-language LTO.", + "oneOf": [ + { + "type": "string", + "enum": ["fat", "thin", "off"] + }, + { + "type": "boolean" + } + ], + "x-taplo": { + "docs": { + "enumValues": [ + "Performs \"fat\" LTO which attempts to perform optimizations across all crates within the dependency graph.", + "Performs [\"thin\" LTO](http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html). This is similar to \"fat\", but takes\nsubstantially less time to run while still achieving performance gains\nsimilar to \"fat\".", + "Disables LTO.", + "Performs \"fat\" LTO which attempts to perform optimizations across all crates within the dependency graph.", + "Performs \"thin local LTO\" which performs \"thin\" LTO on the local\ncrate only across its [codegen units](https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units). No LTO is performed\nif codegen units is 1 or [opt-level](https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level) is 0." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#lto" + } + } + }, + "MetaBuild": { + "title": "Meta Build", + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort" + }, + "Resolver": { + "title": "Resolver", + "description": "A different feature resolver algorithm can be used by specifying the resolver version in Cargo.toml like this:\n\n[package]\nname = \"my-package\"\nversion = \"1.0.0\"\nresolver = \"2\"\n\nThe version \"1\" resolver is the original resolver that shipped with Cargo up to version 1.50. The default is \"2\" if the root package specifies edition = \"2021\" or a newer edition. Otherwise the default is \"1\".\n\nThe version \"2\" resolver introduces changes in feature unification. See the features chapter for more details.\n\nThe resolver is a global option that affects the entire workspace. The resolver version in dependencies is ignored, only the value in the top-level package will be used. If using a virtual workspace, the version should be specified in the [workspace] table, for example:\n\n[workspace]\nmembers = [\"member1\", \"member2\"]\nresolver = \"2\"", + "type": "string", + "enum": ["1", "2", "3"], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions" + } + } + }, + "OptLevel": { + "title": "Optimization Level", + "description": "The `opt-level` setting controls the [`-C opt-level` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#opt-level) which controls the level\nof optimization. Higher optimization levels may produce faster runtime code at\nthe expense of longer compiler times. Higher levels may also change and\nrearrange the compiled code which may make it harder to use with a debugger.\n\nIt is recommended to experiment with different levels to find the right\nbalance for your project. There may be surprising results, such as level `3`\nbeing slower than `2`, or the `\"s\"` and `\"z\"` levels not being necessarily\nsmaller. You may also want to reevaluate your settings over time as newer\nversions of `rustc` changes optimization behavior.\n\nSee also [Profile Guided Optimization](https://doc.rust-lang.org/rustc/profile-guided-optimization.html) for more advanced optimization\ntechniques.", + "oneOf": [ + { + "type": "string", + "enum": ["s", "z"] + }, + { + "type": "integer", + "enum": [0, 1, 2, 3] + } + ], + "x-taplo": { + "docs": { + "enumValues": [ + "No optimizations, also turns on [`cfg(debug_assertions)`](https://doc.rust-lang.org/cargo/reference/profiles.html#debug-assertions).", + "Basic optimizations.", + "Some optimizations.", + "All optimizations.", + "Optimize for binary size.", + "Optimize for binary size, but also turn off loop vectorization." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level" + } + } + }, + "Package": { + "title": "Package", + "description": "The only field required by Cargo is [`name`](https://doc.rust-lang.org/cargo/reference/manifest.html#the-name-field).\n If publishing to a registry, the registry may\nrequire additional fields. See the notes below and [the publishing chapter](https://doc.rust-lang.org/cargo/reference/publishing.html) for requirements for publishing to [crates.io](https://crates.io/).", + "type": "object", + "required": ["name"], + "properties": { + "name": { + "description": "The package name is an identifier used to refer to the package. It is used\nwhen listed as a dependency in another package, and as the default name of\ninferred lib and bin targets.\n\nThe name must use only [alphanumeric](https://doc.rust-lang.org/std/primitive.char.html#method.is_alphanumeric) characters or `-` or `_`, and cannot be empty.\nNote that [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) and [`cargo init`](https://doc.rust-lang.org/cargo/commands/cargo-init.html) impose some additional restrictions on\nthe package name, such as enforcing that it is a valid Rust identifier and not\na keyword. [crates.io](https://crates.io) imposes even more restrictions, such as\nenforcing only ASCII characters, not a reserved name, not a special Windows\nname such as \"nul\", is not too long, etc.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-name-field" + } + } + }, + "version": { + "title": "Semantic Version", + "description": "Cargo bakes in the concept of [Semantic Versioning](https://semver.org/), so make sure you follow some basic rules:\n\n* Before you reach 1.0.0, anything goes, but if you make breaking changes,\n increment the minor version. In Rust, breaking changes include adding fields to\n structs or variants to enums.\n* After 1.0.0, only make breaking changes when you increment the major version.\n Don't break the build.\n* After 1.0.0, don't add any new public API (no new `pub` anything) in patch-level\n versions. Always increment the minor version if you add any new `pub` structs,\n traits, fields, types, functions, methods or anything else.\n* Use version numbers with three numeric parts such as 1.0.0 rather than 1.0.", + "anyOf": [ + { + "$ref": "#/definitions/SemVer" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "authors": { + "title": "Authors", + "description": "The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.", + "anyOf": [ + { + "$ref": "#/definitions/Authors" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "edition": { + "title": "Edition", + "description": "The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc.", + "anyOf": [ + { + "$ref": "#/definitions/Edition" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "rust-version": { + "title": "RustVersion", + "description": "The `rust-version` field is an optional key that tells cargo what version of the\nRust language and compiler your package can be compiled with. If the currently\nselected version of the Rust compiler is older than the stated version, cargo\nwill exit with an error, telling the user what version is required.\n\nThe first version of Cargo that supports this field was released with Rust 1.56.0.\nIn older releases, the field will be ignored, and Cargo will display a warning.\n\n```toml\n[package]\n# ...\nrust-version = \"1.56\"\n```\n\nThe Rust version must be a bare version number with two or three components; it\ncannot include semver operators or pre-release identifiers. Compiler pre-release\nidentifiers such as -nightly will be ignored while checking the Rust version.\nThe `rust-version` must be equal to or newer than the version that first\nintroduced the configured `edition`.\n\nThe `rust-version` may be ignored using the `--ignore-rust-version` option.\n\nSetting the `rust-version` key in `[package]` will affect all targets/crates in\nthe package, including test suites, benchmarks, binaries, examples, etc.", + "anyOf": [ + { + "$ref": "#/definitions/RustVersion" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "description": { + "title": "Description", + "description": "The description is a short blurb about the package. [crates.io](https://crates.io) will display\nthis with your package. This should be plain text (not Markdown).\n\n```toml\n[package]\n# ...\ndescription = \"A short description of my package\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires the `description` to be set.", + "anyOf": [ + { + "$ref": "#/definitions/Description" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "documentation": { + "title": "Documentation", + "description": "\nThe `documentation` field specifies a URL to a website hosting the crate's\ndocumentation. If no URL is specified in the manifest file, [crates.io](https://crates.io) will\nautomatically link your crate to the corresponding [docs.rs](https://docs.rs) page.\n\n```toml\n[package]\n# ...\ndocumentation = \"https://docs.rs/bitflags\"\n```\n", + "anyOf": [ + { + "$ref": "#/definitions/Documentation" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "readme": { + "title": "Readme", + "description": "The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.\nThis file will be transferred to the registry when you publish. [crates.io](https://crates.io)\nwill interpret it as Markdown and render it on the crate's page.\n\n```toml\n[package]\n# ...\nreadme = \"README.md\"\n```\n\nIf no value is specified for this field, and a file named `README.md`,\n`README.txt` or `README` exists in the package root, then the name of that\nfile will be used. You can suppress this behavior by setting this field to\n`false`. If the field is set to `true`, a default value of `README.md` will\nbe assumed.\n", + "anyOf": [ + { + "$ref": "#/definitions/Readme" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "homepage": { + "title": "Homepage", + "description": "The `homepage` field should be a URL to a site that is the home page for your\npackage.\n\n```toml\n[package]\n# ...\nhomepage = \"https://serde.rs/\"\n```", + "anyOf": [ + { + "$ref": "#/definitions/Homepage" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "repository": { + "title": "Repository", + "description": "The `repository` field should be a URL to the source repository for your\npackage.\n\n```toml\n[package]\n# ...\nrepository = \"https://github.com/rust-lang/cargo/\"\n```", + "anyOf": [ + { + "$ref": "#/definitions/Repository" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "license": { + "title": "License", + "description": "The `license` field contains the name of the software license that the package\nis released under.\n\n[crates.io](https://crates.io/) interprets the `license` field as an [SPDX 2.1 license\nexpression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60). The name must be a known license\nfrom the [SPDX license list 3.6](https://github.com/spdx/license-list-data/tree/v3.6). Parentheses are not\ncurrently supported. See the [SPDX site](https://spdx.org/license-list) for more information.\n\nSPDX license expressions support AND and OR operators to combine multiple\nlicenses.\n\n```toml\n[package]\n# ...\nlicense = \"MIT OR Apache-2.0\"\n```\n\nUsing `OR` indicates the user may choose either license. Using `AND` indicates\nthe user must comply with both licenses simultaneously. The `WITH` operator\nindicates a license with a special exception. Some examples:\n\n* `MIT OR Apache-2.0`\n* `LGPL-2.1 AND MIT AND BSD-2-Clause`\n* `GPL-2.0+ WITH Bison-exception-2.2`\n\nIf a package is using a nonstandard license, then the `license-file` field may\nbe specified in lieu of the `license` field.", + "anyOf": [ + { + "$ref": "#/definitions/License" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "license-file": { + "title": "LicenseFile", + "description": "The `license-file` field contains the path to a file\ncontaining the text of the license (relative to this `Cargo.toml`).\n\n```toml\n[package]\n# ...\nlicense-file = \"LICENSE.txt\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires either `license` or `license-file` to be set.", + "anyOf": [ + { + "$ref": "#/definitions/LicenseFile" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "keywords": { + "title": "Keywords", + "description": "The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.", + "anyOf": [ + { + "$ref": "#/definitions/Keywords" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "categories": { + "title": "Categories", + "description": "The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.", + "anyOf": [ + { + "$ref": "#/definitions/Categories" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "workspace": { + "description": "The `workspace` field can be used to configure the workspace that this package\nwill be a member of. If not specified this will be inferred as the first\nCargo.toml with `[workspace]` upwards in the filesystem. Setting this is\nuseful if the member is not inside a subdirectory of the workspace root.\n\n```toml\n[package]\n# ...\nworkspace = \"path/to/workspace/root\"\n```\n\nThis field cannot be specified if the manifest already has a `[workspace]`\ntable defined. That is, a crate cannot both be a root crate in a workspace\n(contain `[workspace]`) and also be a member crate of another workspace\n(contain `package.workspace`).\n\nFor more information, see the [workspaces chapter](https://doc.rust-lang.org/cargo/reference/workspaces.html).", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-workspace-field" + } + } + }, + "build": { + "$ref": "#/definitions/Build" + }, + "links": { + "description": "The `links` field specifies the name of a native library that is being linked\nto. More information can be found in the [`links`](https://doc.rust-lang.org/cargo/reference/build-scripts.html#the-links-manifest-key) section of the build\nscript guide.\n\n```toml\n[package]\n# ...\nlinks = \"foo\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-links-field" + } + } + }, + "exclude": { + "title": "Exclude", + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "anyOf": [ + { + "$ref": "#/definitions/Exclude" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "include": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "anyOf": [ + { + "$ref": "#/definitions/Include" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "publish": { + "title": "Publish", + "description": "The `publish` field can be used to prevent a package from being published to a package registry (like *crates.io*) by mistake, for instance to keep a package\nprivate in a company.\n\n```toml\n[package]\n# ...\npublish = false\n```\n\nThe value may also be an array of strings which are registry names that are\nallowed to be published to.\n\n```toml\n[package]\n# ...\npublish = [\"some-registry-name\"]\n```", + "anyOf": [ + { + "$ref": "#/definitions/Publish" + }, + { + "$ref": "#/definitions/WorkspaceInheritance" + } + ] + }, + "metadata": { + "description": "Cargo by default will warn about unused keys in `Cargo.toml` to assist in\ndetecting typos and such. The `package.metadata` table, however, is completely\nignored by Cargo and will not be warned about. This section can be used for\ntools which would like to store package configuration in `Cargo.toml`. For\nexample:\n\n```toml\n[package]\nname = \"...\"\n# ...\n\n# Metadata used when generating an Android APK, for example.\n[package.metadata.android]\npackage-name = \"my-awesome-android-app\"\nassets = \"path/to/static\"\n```\n", + "type": "object", + "additionalProperties": true, + "properties": { + "playdate": { + "$ref": "#/definitions/PlaydateMetadata" + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-metadata-table" + } + } + }, + "default-run": { + "description": "The `default-run` field in the `[package]` section of the manifest can be used\nto specify a default binary picked by [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html). For example, when there is\nboth `src/bin/a.rs` and `src/bin/b.rs`:\n\n```toml\n[package]\ndefault-run = \"a\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-default-run-field" + } + } + }, + "autobins": { + "description": "Disable automatic discovery of `bin` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n\nTo prevent Cargo from inferring `src/bin/mod.rs` as an executable, set\nthis to `false` to disable auto-discovery.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "autoexamples": { + "description": "Disable automatic discovery of `example` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "autotests": { + "description": "Disable automatic discovery of `test` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "autobenches": { + "description": "Disable automatic discovery of `bench` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery" + } + } + }, + "resolver": { + "$ref": "#/definitions/Resolver" + }, + "im-a-teapot": { + "description": "Sets whether the current package is a teapot or something else that is not capable of brewing tea.", + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "metabuild": { + "$ref": "#/definitions/MetaBuild", + "x-taplo": { + "hidden": true + } + }, + "namespaced-features": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "publish-lockfile": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + } + }, + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-package-section" + } + } + }, + "Panic": { + "title": "Panic", + "description": "The `panic` setting controls the [`-C panic` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#panic) which controls which panic\nstrategy to use.\n\nWhen set to `\"unwind\"`, the actual value depends on the default of the target\nplatform. For example, the NVPTX platform does not support unwinding, so it\nalways uses `\"abort\"`.\n\nTests, benchmarks, build scripts, and proc macros ignore the `panic` setting.\nThe `rustc` test harness currently requires `unwind` behavior. See the\n[`panic-abort-tests`](https://doc.rust-lang.org/cargo/reference/unstable.html#panic-abort-tests) unstable flag which enables `abort` behavior.\n\nAdditionally, when using the `abort` strategy and building a test, all of the\ndependencies will also be forced to built with the `unwind` strategy.", + "type": "string", + "enum": ["unwind", "abort"], + "x-taplo": { + "docs": { + "enumValues": [ + "Unwind the stack upon panic.", + "Terminate the process upon panic." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#panic" + } + } + }, + "Platform": { + "title": "Platform", + "type": "object", + "properties": { + "dependencies": { + "description": "Cargo is configured to look for dependencies on [crates.io](https://crates.io) by default. Only\nthe name and a version string are required in this case. In [the cargo\nguide](https://doc.rust-lang.org/cargo/guide/index.html), we specified a dependency on the `time` crate:\n\n```toml\n[dependencies]\ntime = \"0.1.12\"\n```\n\nThe string `\"0.1.12\"` is a [semver](https://github.com/steveklabnik/semver#requirements) version requirement. Since this\nstring does not have any operators in it, it is interpreted the same way as\nif we had specified `\"^0.1.12\"`, which is called a caret requirement.\n\nA dependency can also be defined by a table with additional options:\n\n```toml\n[dependencies]\ntime = { path = \"../time\", version = \"0.1.12\" }\n```", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html" + } + } + }, + "dev-dependencies": { + "description": "The format of `[dev-dependencies]` is equivalent to `[dependencies]`:\n\n```toml\n[dev-dependencies]\ntempdir = \"0.3\"\n```\n\nDev-dependencies are not used when compiling\na package for building, but are used for compiling tests, examples, and\nbenchmarks.\n\nThese dependencies are *not* propagated to other packages which depend on this\npackage.\n\nYou can also have target-specific development dependencies by using\n`dev-dependencies` in the target section header instead of `dependencies`. For\nexample:\n\n```toml\n[target.'cfg(unix)'.dev-dependencies]\nmio = \"0.0.1\"\n```\n\n> **Note**: When a package is published, only dev-dependencies that specify a\n> `version` will be included in the published crate. For most use cases,\n> dev-dependencies are not needed when published, though some users (like OS\n> packagers) may want to run tests within a crate, so providing a `version` if\n> possible can still be beneficial.\n", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "dev_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "build-dependencies": { + "description": "You can depend on other Cargo-based crates for use in your build scripts.\nDependencies are declared through the `build-dependencies` section of the\nmanifest:\n\n```toml\n[build-dependencies]\ncc = \"1.0.3\"\n```\n\nThe build script **does not** have access to the dependencies listed\nin the `dependencies` or `dev-dependencies` section. Build\ndependencies will likewise not be available to the package itself\nunless listed under the `dependencies` section as well. A package\nitself and its build script are built separately, so their\ndependencies need not coincide. Cargo is kept simpler and cleaner by\nusing independent dependencies for independent purposes.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "build_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + } + }, + "x-tombi-table-keys-order": "schema" + }, + "BuildOverride": { + "title": "Build Override", + "description": "Profile settings can be overridden for specific packages and build-time\ncrates. To override the settings for a specific package, use the `package`\ntable to change the settings for the named package:\n\n```toml\n# The `foo` package will use the -Copt-level=3 flag.\n[profile.dev.package.foo]\nopt-level = 3\n```\n\nThe package name is actually a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as\n`[profile.dev.package.\"foo:2.1.0\"]`.\n\nTo override the settings for all dependencies (but not any workspace member),\nuse the `\"*\"` package name:\n\n```toml\n# Set the default for dependencies.\n[profile.dev.package.\"*\"]\nopt-level = 2\n```\n\nTo override the settings for build scripts, proc macros, and their\ndependencies, use the `build-override` table:\n\n```toml\n# Set the settings for build scripts and proc-macros.\n[profile.dev.build-override]\nopt-level = 3\n```\n\n> Note: When a dependency is both a normal dependency and a build dependency,\n> Cargo will try to only build it once when `--target` is not specified. When\n> using `build-override`, the dependency may need to be built twice, once as a\n> normal dependency and once with the overridden build settings. This may\n> increase initial build times.\n", + "allOf": [ + { + "$ref": "#/definitions/Profile" + } + ], + "x-taplo": { + "docs": { + "main": "Profile settings can be overridden for specific packages and build-time\ncrates. To override the settings for a specific package, use the `package`\ntable to change the settings for the named package:\n\n```toml\n# The `foo` package will use the -Copt-level=3 flag.\n[profile.dev.package.foo]\nopt-level = 3\n```\n\nThe package name is actually a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as\n`[profile.dev.package.\"foo:2.1.0\"]`.\n\nTo override the settings for all dependencies (but not any workspace member),\nuse the `\"*\"` package name:\n\n```toml\n# Set the default for dependencies.\n[profile.dev.package.\"*\"]\nopt-level = 2\n```\n\nTo override the settings for build scripts, proc macros, and their\ndependencies, use the `build-override` table:\n\n```toml\n# Set the settings for build scripts and proc-macros.\n[profile.dev.build-override]\nopt-level = 3\n```\n\n> Note: When a dependency is both a normal dependency and a build dependency,\n> Cargo will try to only build it once when `--target` is not specified. When\n> using `build-override`, the dependency may need to be built twice, once as a\n> normal dependency and once with the overridden build settings. This may\n> increase initial build times.\n" + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#overrides" + } + } + }, + "ProfileWithBuildOverride": { + "title": "Profile with Build Override", + "type": "object", + "properties": { + "inherits": { + "$ref": "#/definitions/Inherits" + }, + "opt-level": { + "$ref": "#/definitions/OptLevel" + }, + "debug": { + "$ref": "#/definitions/DebugLevel" + }, + "split-debuginfo": { + "$ref": "#/definitions/SplitDebuginfo" + }, + "strip": { + "$ref": "#/definitions/Strip" + }, + "debug-assertions": { + "$ref": "#/definitions/DebugAssertions" + }, + "overflow-checks": { + "$ref": "#/definitions/OverflowChecks" + }, + "lto": { + "$ref": "#/definitions/Lto" + }, + "panic": { + "$ref": "#/definitions/Panic" + }, + "incremental": { + "$ref": "#/definitions/Incremental" + }, + "codegen-units": { + "$ref": "#/definitions/CodegenUnits" + }, + "rpath": { + "$ref": "#/definitions/Rpath" + }, + "package": { + "$ref": "#/definitions/ProfilePackageOverrides" + }, + "build-override": { + "$ref": "#/definitions/Profile" + } + }, + "x-tombi-table-keys-order": "schema" + }, + "SplitDebuginfo": { + "title": "SplitDebuginfo", + "description": "The split-debuginfo setting controls the -C split-debuginfo flag which controls whether debug information, if generated, is either placed in the executable itself or adjacent to it. This can be useful for reducing the size of the executable, but may make it harder to debug the executable.", + "oneOf": [ + { + "type": "string", + "enum": ["off"], + "description": "This is the default for platforms with ELF binaries and windows-gnu (not Windows MSVC and not macOS). This typically means that DWARF debug information can be found in the final artifact in sections of the executable. This option is not supported on Windows MSVC. On macOS this options prevents the final execution of dsymutil to generate debuginfo." + }, + { + "type": "string", + "enum": ["packed"], + "description": "This is the default for Windows MSVC and macOS. The term \"packed\" here means that all the debug information is packed into a separate file from the main executable. On Windows MSVC this is a *.pdb file, on macOS this is a *.dSYM folder, and on other platforms this is a *.dwp file." + }, + { + "type": "string", + "enum": ["unpacked"], + "description": "This means that debug information will be found in separate files for each compilation unit (object file). This is not supported on Windows MSVC. On macOS this means the original object files will contain debug information. On other Unix platforms this means that *.dwo files will contain debug information." + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#split-debuginfo" + } + } + }, + "Strip": { + "oneOf": [ + { + "type": "string", + "description": "The strip option controls the -C strip flag, which directs rustc to strip either symbols or debuginfo from a binary.", + "enum": ["none", "debuginfo", "symbols"], + "default": "none" + }, + { + "type": "boolean", + "enum": [true], + "title": "Equivalent to \"symbols\"", + "description": "The strip option controls the -C strip flag, which directs rustc to strip either symbols or debuginfo from a binary." + }, + { + "type": "boolean", + "enum": [false], + "title": "Equivalent to \"none\"", + "description": "The strip option controls the -C strip flag, which directs rustc to strip either symbols or debuginfo from a binary." + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#strip" + } + } + }, + "DebugAssertions": { + "description": "The `debug-assertions` setting controls the [`-C debug-assertions` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#debug-assertions) which\nturns `cfg(debug_assertions)` [conditional compilation](https://doc.rust-lang.org/reference/conditional-compilation.html#debug_assertions) on or off. Debug\nassertions are intended to include runtime validation which is only available\nin debug/development builds. These may be things that are too expensive or\notherwise undesirable in a release build. Debug assertions enables the\n[`debug_assert!` macro](https://doc.rust-lang.org/std/macro.debug_assert.html) in the standard library.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#debug-assertions" + } + } + }, + "OverflowChecks": { + "description": "The `overflow-checks` setting controls the [`-C overflow-checks` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#overflow-checks) which\ncontrols the behavior of [runtime integer overflow](https://doc.rust-lang.org/reference/expressions/operator-expr.html#overflow). When overflow-checks are\nenabled, a panic will occur on overflow.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#overflow-checks" + } + } + }, + "Incremental": { + "description": "The `incremental` setting controls the [`-C incremental` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#incremental) which controls\nwhether or not incremental compilation is enabled. Incremental compilation\ncauses `rustc` to to save additional information to disk which will be reused\nwhen recompiling the crate, improving re-compile times. The additional\ninformation is stored in the `target` directory.\n\nThe valid options are:\n\n* `true`: enabled\n* `false`: disabled\n\nIncremental compilation is only used for workspace members and \"path\"\ndependencies.\n\nThe incremental value can be overridden globally with the `CARGO_INCREMENTAL`\n[environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html) or the [`build.incremental`](https://doc.rust-lang.org/cargo/reference/config.html#buildincremental) config variable.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#incremental" + } + } + }, + "CodegenUnits": { + "description": "The `codegen-units` setting controls the [`-C codegen-units` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units) which\ncontrols how many \"code generation units\" a crate will be split into. More\ncode generation units allows more of a crate to be processed in parallel\npossibly reducing compile time, but may produce slower code.\n\nThis option takes an integer greater than 0.\n\nThe default is 256 for [incremental](https://doc.rust-lang.org/cargo/reference/profiles.html#incremental) builds, and 16 for\nnon-incremental builds.", + "type": "integer", + "format": "uint32", + "minimum": 0, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units" + } + } + }, + "Rpath": { + "description": "The `rpath` setting controls the [`-C rpath` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#rpath) which controls\nwhether or not [`rpath`](https://en.wikipedia.org/wiki/Rpath) is enabled.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#rpath" + } + } + }, + "ProfilePackageOverrides": { + "description": "Package-specific overrides.\n\nThe package name is a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as `[profile.dev.package.\"foo:2.1.0\"]`.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Profile" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html#overrides" + } + } + }, + "Profile": { + "title": "Profile", + "type": "object", + "properties": { + "inherits": { + "$ref": "#/definitions/Inherits" + }, + "opt-level": { + "$ref": "#/definitions/OptLevel" + }, + "debug": { + "$ref": "#/definitions/DebugLevel" + }, + "split-debuginfo": { + "$ref": "#/definitions/SplitDebuginfo" + }, + "strip": { + "$ref": "#/definitions/Strip" + }, + "debug-assertions": { + "$ref": "#/definitions/DebugAssertions" + }, + "overflow-checks": { + "$ref": "#/definitions/OverflowChecks" + }, + "lto": { + "$ref": "#/definitions/Lto" + }, + "panic": { + "$ref": "#/definitions/Panic" + }, + "incremental": { + "$ref": "#/definitions/Incremental" + }, + "codegen-units": { + "$ref": "#/definitions/CodegenUnits" + }, + "rpath": { + "$ref": "#/definitions/Rpath" + }, + "package": { + "$ref": "#/definitions/ProfilePackageOverrides" + }, + "dir-name": { + "type": "string", + "x-taplo": { + "hidden": true + } + } + }, + "x-tombi-table-keys-order": "schema" + }, + "Profiles": { + "title": "Profiles", + "description": "Profiles provide a way to alter the compiler settings, influencing things like optimizations and debugging symbols.\n\nCargo has 4 built-in profiles: dev, release, test, and bench. It automatically chooses the profile based on which command is being run, the package and target that is being built, and command-line flags like --release.", + "type": "object", + "properties": { + "bench": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "dev": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "release": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "test": { + "$ref": "#/definitions/ProfileWithBuildOverride" + } + }, + "additionalProperties": { + "$ref": "#/definitions/ProfileWithBuildOverride" + }, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/profiles.html" + } + } + }, + "Publish": { + "title": "Publish", + "description": "The `publish` field can be used to prevent a package from being published to a package registry (like *crates.io*) by mistake, for instance to keep a package\nprivate in a company.\n\n```toml\n[package]\n# ...\npublish = false\n```\n\nThe value may also be an array of strings which are registry names that are\nallowed to be published to.\n\n```toml\n[package]\n# ...\npublish = [\"some-registry-name\"]\n```", + "anyOf": [ + { + "description": "A boolean indicating whether the package can be published.", + "type": "boolean", + "enum": [true, false], + "default": true, + "x-taplo": { + "docs": { + "enumValues": [ + "The package can be published.", + "The package cannot be published." + ] + } + } + }, + { + "type": "array", + "description": "An array of registry names.", + "items": { + "type": "string" + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort" + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field" + } + } + }, + "Readme": { + "title": "Readme", + "description": "The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.\nThis file will be transferred to the registry when you publish. [crates.io](https://crates.io)\nwill interpret it as Markdown and render it on the crate's page.\n\n```toml\n[package]\n# ...\nreadme = \"README.md\"\n```\n\nIf no value is specified for this field, and a file named `README.md`,\n`README.txt` or `README` exists in the package root, then the name of that\nfile will be used. You can suppress this behavior by setting this field to\n`false`. If the field is set to `true`, a default value of `README.md` will\nbe assumed.\n", + "anyOf": [ + { + "description": "The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.", + "type": "string" + }, + { + "type": "boolean", + "enum": [true, false], + "x-taplo": { + "docs": { + "enumValues": [ + "Use the `README.md` file.", + "Do not use the default `README.md` file" + ] + } + } + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-readme-field" + } + } + }, + "SemVer": { + "title": "Semantic Version", + "description": "Cargo bakes in the concept of [Semantic Versioning](https://semver.org/), so make sure you follow some basic rules:\n\n* Before you reach 1.0.0, anything goes, but if you make breaking changes,\n increment the minor version. In Rust, breaking changes include adding fields to\n structs or variants to enums.\n* After 1.0.0, only make breaking changes when you increment the major version.\n Don't break the build.\n* After 1.0.0, don't add any new public API (no new `pub` anything) in patch-level\n versions. Always increment the minor version if you add any new `pub` structs,\n traits, fields, types, functions, methods or anything else.\n* Use version numbers with three numeric parts such as 1.0.0 rather than 1.0.", + "default": "0.1.0", + "type": "string", + "format": "semver", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-version-field" + } + } + }, + "SemVerRequirement": { + "title": "Semantic Version Requirement", + "description": "The [version requirement](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) of the target dependency.", + "default": "*", + "type": "string", + "format": "semver-requirement", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html" + }, + "plugins": ["crates"], + "crates": { + "schemas": "version" + } + } + }, + "Target": { + "title": "Target", + "type": "object", + "properties": { + "bench": { + "description": "The `bench` field indicates whether or not the target is benchmarked by\ndefault by [`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html). The default is `true` for lib, bins, and\nbenchmarks.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field" + } + } + }, + "crate-type": { + "description": "The `crate-type` field defines the [crate types](https://doc.rust-lang.org/reference/linkage.html) that will be generated by the\ntarget. It is an array of strings, allowing you to specify multiple crate\ntypes for a single target. This can only be specified for libraries and\nexamples. Binaries, tests, and benchmarks are always the \"bin\" crate type.\n\nThe available options are `bin`, `lib`, `rlib`, `dylib`, `cdylib`,\n`staticlib`, and `proc-macro`. You can read more about the different crate\ntypes in the [Rust Reference Manual](https://doc.rust-lang.org/reference/linkage.html).", + "type": "array", + "items": { + "description": "The `crate-type` field defines the [crate types](https://doc.rust-lang.org/reference/linkage.html) that will be generated by the\ntarget. It is an array of strings, allowing you to specify multiple crate\ntypes for a single target. This can only be specified for libraries and\nexamples. Binaries, tests, and benchmarks are always the \"bin\" crate type.\n\nThe available options are `bin`, `lib`, `rlib`, `dylib`, `cdylib`,\n`staticlib`, and `proc-macro`. You can read more about the different crate\ntypes in the [Rust Reference Manual](https://doc.rust-lang.org/reference/linkage.html).", + "type": "string", + "x-taplo": { + "docs": { + "enumValues": [ + "A runnable executable will be produced. This requires that there is a `main` function in the crate which\nwill be run when the program begins executing. This will link in all Rust and\nnative dependencies, producing a distributable binary.", + "A Rust library will be produced.\nThis is an ambiguous concept as to what exactly is produced because a library\ncan manifest itself in several forms. The purpose of this generic `lib` option\nis to generate the \"compiler recommended\" style of library. The output library\nwill always be usable by rustc, but the actual type of library may change from\ntime-to-time. The remaining output types are all different flavors of\nlibraries, and the `lib` type can be seen as an alias for one of them (but the\nactual one is compiler-defined).", + "A \"Rust library\" file will be produced. This is used as an intermediate artifact and can be thought of as a\n\"static Rust library\". These `rlib` files, unlike `staticlib` files, are\ninterpreted by the compiler in future linkage. This essentially means\nthat `rustc` will look for metadata in `rlib` files like it looks for metadata\nin dynamic libraries. This form of output is used to produce statically linked\nexecutables as well as `staticlib` outputs.", + "A dynamic Rust library will be produced. This is different from the `lib` output type in that this forces\ndynamic library generation. The resulting dynamic library can be used as a\ndependency for other libraries and/or executables. This output type will\ncreate `*.so` files on linux, `*.dylib` files on osx, and `*.dll` files on\nwindows.", + "A dynamic system library will be produced. This is used when compiling\na dynamic library to be loaded from another language. This output type will\ncreate `*.so` files on Linux, `*.dylib` files on macOS, and `*.dll` files on\nWindows.", + "A static system library will be produced. This is different from other library outputs in that\nthe compiler will never attempt to link to `staticlib` outputs. The\npurpose of this output type is to create a static library containing all of\nthe local crate's code along with all upstream dependencies. The static\nlibrary is actually a `*.a` archive on linux and osx and a `*.lib` file on\nwindows. This format is recommended for use in situations such as linking\nRust code into an existing non-Rust application because it will not have\ndynamic dependencies on other Rust code.", + "The output produced is not specified, but if a `-L` path is provided to it then the\ncompiler will recognize the output artifacts as a macro and it can be loaded\nfor a program. Crates compiled with this crate type must only export\n[procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html). The compiler will automatically set the `proc_macro`\n[configuration option](https://doc.rust-lang.org/reference/conditional-compilation.html). The crates are always compiled with the same target\nthat the compiler itself was built with. For example, if you are executing\nthe compiler from Linux with an `x86_64` CPU, the target will be\n`x86_64-unknown-linux-gnu` even if the crate is a dependency of another crate\nbeing built for a different target." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field" + } + } + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "docs": { + "enumValues": [ + "A runnable executable will be produced. This requires that there is a `main` function in the crate which\nwill be run when the program begins executing. This will link in all Rust and\nnative dependencies, producing a distributable binary.", + "A Rust library will be produced.\nThis is an ambiguous concept as to what exactly is produced because a library\ncan manifest itself in several forms. The purpose of this generic `lib` option\nis to generate the \"compiler recommended\" style of library. The output library\nwill always be usable by rustc, but the actual type of library may change from\ntime-to-time. The remaining output types are all different flavors of\nlibraries, and the `lib` type can be seen as an alias for one of them (but the\nactual one is compiler-defined).", + "A \"Rust library\" file will be produced. This is used as an intermediate artifact and can be thought of as a\n\"static Rust library\". These `rlib` files, unlike `staticlib` files, are\ninterpreted by the compiler in future linkage. This essentially means\nthat `rustc` will look for metadata in `rlib` files like it looks for metadata\nin dynamic libraries. This form of output is used to produce statically linked\nexecutables as well as `staticlib` outputs.", + "A dynamic Rust library will be produced. This is different from the `lib` output type in that this forces\ndynamic library generation. The resulting dynamic library can be used as a\ndependency for other libraries and/or executables. This output type will\ncreate `*.so` files on linux, `*.dylib` files on osx, and `*.dll` files on\nwindows.", + "A dynamic system library will be produced. This is used when compiling\na dynamic library to be loaded from another language. This output type will\ncreate `*.so` files on Linux, `*.dylib` files on macOS, and `*.dll` files on\nWindows.", + "A static system library will be produced. This is different from other library outputs in that\nthe compiler will never attempt to link to `staticlib` outputs. The\npurpose of this output type is to create a static library containing all of\nthe local crate's code along with all upstream dependencies. The static\nlibrary is actually a `*.a` archive on linux and osx and a `*.lib` file on\nwindows. This format is recommended for use in situations such as linking\nRust code into an existing non-Rust application because it will not have\ndynamic dependencies on other Rust code.", + "The output produced is not specified, but if a `-L` path is provided to it then the\ncompiler will recognize the output artifacts as a macro and it can be loaded\nfor a program. Crates compiled with this crate type must only export\n[procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html). The compiler will automatically set the `proc_macro`\n[configuration option](https://doc.rust-lang.org/reference/conditional-compilation.html). The crates are always compiled with the same target\nthat the compiler itself was built with. For example, if you are executing\nthe compiler from Linux with an `x86_64` CPU, the target will be\n`x86_64-unknown-linux-gnu` even if the crate is a dependency of another crate\nbeing built for a different target." + ] + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field" + } + } + }, + "crate_type": { + "type": "array", + "items": { + "type": "string", + "x-taplo": { + "hidden": true + } + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "doc": { + "description": "The `doc` field indicates whether or not the target is included in the\ndocumentation generated by [`cargo doc`](https://doc.rust-lang.org/cargo/commands/cargo-doc.html) by default. The default is `true` for\nlibraries and binaries.\n\n> **Note**: The binary will be skipped if its name is the same as the lib\n> target.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-doc-field" + } + } + }, + "doctest": { + "description": "The `doctest` field indicates whether or not [documentation examples](https://doc.rust-lang.org/rustdoc/documentation-tests.html) are\ntested by default by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html). This is only relevant for libraries, it\nhas no effect on other sections. The default is `true` for the library.\n", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-doctest-field" + } + } + }, + "edition": { + "$ref": "#/definitions/Edition" + }, + "harness": { + "description": "The `harness` field indicates that the [`--test` flag](https://doc.rust-lang.org/rustc/command-line-arguments.html#option-test) will be passed to\n`rustc` which will automatically include the libtest library which is the\ndriver for collecting and running tests marked with the [`#[test]` attribute](https://doc.rust-lang.org/reference/attributes/testing.html#the-test-attribute) or benchmarks with the `#[bench]` attribute. The\ndefault is `true` for all targets.\n\nIf set to `false`, then you are responsible for defining a `main()` function\nto run tests and benchmarks.\n\nTests have the [`cfg(test)` conditional expression](https://doc.rust-lang.org/reference/conditional-compilation.html#test) enabled whether\nor not the harness is enabled.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field" + } + } + }, + "name": { + "description": "The `name` field specifies the name of the target, which corresponds to the\nfilename of the artifact that will be generated. For a library, this is the\ncrate name that dependencies will use to reference it.\n\nFor the `[lib]` and the default binary (`src/main.rs`), this defaults to the\nname of the package, with any dashes replaced with underscores. For other\n[auto discovered](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery) targets, it defaults to the\ndirectory or file name.\n\nThis is required for all targets except `[lib]`.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-name-field" + } + } + }, + "path": { + "description": "The `path` field specifies where the source for the crate is located, relative\nto the `Cargo.toml` file.\n\nIf not specified, the [inferred path](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery) is used based on\nthe target name.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-path-field" + } + } + }, + "plugin": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "proc-macro": { + "description": "The `proc-macro` field indicates that the library is a [procedural macro](https://doc.rust-lang.org/book/ch19-06-macros.html)\n([reference](https://doc.rust-lang.org/reference/procedural-macros.html)). This is only valid for the `[lib]`\ntarget.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-proc-macro-field" + } + } + }, + "proc_macro": { + "type": "boolean", + "x-taplo": { + "hidden": true + } + }, + "required-features": { + "description": "The `required-features` field specifies which [features](https://doc.rust-lang.org/cargo/reference/features.html) the target needs in\norder to be built. If any of the required features are not enabled, the\ntarget will be skipped. This is only relevant for the `[[bin]]`, `[[bench]]`,\n`[[test]]`, and `[[example]]` sections, it has no effect on `[lib]`.\n\n```toml\n[features]\n# ...\npostgres = []\nsqlite = []\ntools = []\n\n[[bin]]\nname = \"my-pg-tool\"\nrequired-features = [\"postgres\", \"tools\"]\n```\n", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `required-features` field specifies which [features](https://doc.rust-lang.org/cargo/reference/features.html) the target needs in\norder to be built. If any of the required features are not enabled, the\ntarget will be skipped. This is only relevant for the `[[bin]]`, `[[bench]]`,\n`[[test]]`, and `[[example]]` sections, it has no effect on `[lib]`.\n\n```toml\n[features]\n# ...\npostgres = []\nsqlite = []\ntools = []\n\n[[bin]]\nname = \"my-pg-tool\"\nrequired-features = [\"postgres\", \"tools\"]\n```\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-required-features-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-required-features-field" + } + } + }, + "test": { + "description": "The `test` field indicates whether or not the target is tested by default by\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html). The default is `true` for lib, bins, and tests.\n\n> **Note**: Examples are built by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by default to ensure they\n> continue to compile, but they are not *tested* by default. Setting `test =\n> true` for an example will also build it as a test and run any\n> [`#[test]`](https://doc.rust-lang.org/reference/attributes/testing.html#the-test-attribute) functions defined in the example.", + "type": "boolean", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field" + } + } + } + }, + "x-tombi-table-keys-order": "schema" + }, + "Workspace": { + "title": "Workspace", + "description": "The `[workspace]` table in `Cargo.toml` defines which packages are members of\nthe workspace:\n\n```toml\n[workspace]\nmembers = [\"member1\", \"path/to/member2\", \"crates/*\"]\nexclude = [\"crates/foo\", \"path/to/other\"]\n```\n\nAn empty `[workspace]` table can be used with a `[package]` to conveniently\ncreate a workspace with the package and all of its path dependencies.\n\nAll [`path` dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies) residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs](https://docs.rs/glob/0.3.0/glob/struct.Pattern.html) to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.\n\nThe `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.\n\nAn empty `[workspace]` table can be used with a `[package]` to conveniently\ncreate a workspace with the package and all of its path dependencies.", + "type": "object", + "properties": { + "resolver": { + "$ref": "#/definitions/Resolver" + }, + "members": { + "description": "All [`path` dependencies] residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs] to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "All [`path` dependencies] residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs] to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "exclude": { + "description": "The `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "default-members": { + "description": "The optional `default-members` key can be specified to set the members to\noperate on when in the workspace root and the package selection flags are not\nused:\n\n```toml\n[workspace]\nmembers = [\"path/to/member1\", \"path/to/member2\", \"path/to/member3/*\"]\ndefault-members = [\"path/to/member2\", \"path/to/member3/foo\"]\n```\n\nWhen specified, `default-members` must expand to a subset of `members`.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The optional `default-members` key can be specified to set the members to\noperate on when in the workspace root and the package selection flags are not\nused:\n\n```toml\n[workspace]\nmembers = [\"path/to/member1\", \"path/to/member2\", \"path/to/member3/*\"]\ndefault-members = [\"path/to/member2\", \"path/to/member3/foo\"]\n```\n\nWhen specified, `default-members` must expand to a subset of `members`.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "package": { + "description": "The `workspace.package` table is where you define keys that can be\ninherited by members of a workspace. These keys can be inherited by\ndefining them in the member package with `{key}.workspace = true`.\n\nKeys that are supported:\n\n| | |\n|----------------|-----------------|\n| `authors` | `categories` |\n| `description` | `documentation` |\n| `edition` | `exclude` |\n| `homepage` | `include` |\n| `keywords` | `license` |\n| `license-file` | `publish` |\n| `readme` | `repository` |\n| `rust-version` | `version` |\n\n- `license-file` and `readme` are relative to the workspace root\n- `include` and `exclude` are relative to your package root\n\nExample:\n```toml\n# [PROJECT_DIR]/Cargo.toml\n[workspace]\nmembers = [\"bar\"]\n\n[workspace.package]\nversion = \"1.2.3\"\nauthors = [\"Nice Folks\"]\ndescription = \"A short description of my package\"\ndocumentation = \"https://example.com/bar\"\n```\n\n```toml\n# [PROJECT_DIR]/bar/Cargo.toml\n[package]\nname = \"bar\"\nversion.workspace = true\nauthors.workspace = true\ndescription.workspace = true\ndocumentation.workspace = true\n```", + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/SemVer" + }, + "authors": { + "$ref": "#/definitions/Authors" + }, + "edition": { + "$ref": "#/definitions/Edition" + }, + "rust-version": { + "$ref": "#/definitions/RustVersion" + }, + "description": { + "$ref": "#/definitions/Description" + }, + "documentation": { + "$ref": "#/definitions/Documentation" + }, + "readme": { + "$ref": "#/definitions/Readme" + }, + "homepage": { + "$ref": "#/definitions/Homepage" + }, + "repository": { + "$ref": "#/definitions/Repository" + }, + "license": { + "$ref": "#/definitions/License" + }, + "license-file": { + "$ref": "#/definitions/LicenseFile" + }, + "keywords": { + "$ref": "#/definitions/Keywords" + }, + "categories": { + "$ref": "#/definitions/Categories" + }, + "exclude": { + "$ref": "#/definitions/Exclude" + }, + "include": { + "$ref": "#/definitions/Include" + }, + "publish": { + "$ref": "#/definitions/Publish" + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table" + } + } + }, + "dependencies": { + "description": "The `workspace.dependencies` table is where you define dependencies to be\ninherited by members of a workspace.\n\nSpecifying a workspace dependency is similar to [package dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) except:\n- Dependencies from this table cannot be declared as `optional`\n- [`features`][features] declared in this table are additive with the `features` from `[dependencies]`\n\nYou can then [inherit the workspace dependency as a package dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace)\n\nExample:\n```toml\n# [PROJECT_DIR]/Cargo.toml\n[workspace]\nmembers = [\"bar\"]\n\n[workspace.dependencies]\ncc = \"1.0.73\"\nrand = \"0.8.5\"\nregex = { version = \"1.6.0\", default-features = false, features = [\"std\"] }\n```\n\n```toml\n# [PROJECT_DIR]/bar/Cargo.toml\n[package]\nname = \"bar\"\nversion = \"0.2.0\"\n\n[dependencies]\nregex = { workspace = true, features = [\"unicode\"] }\n\n[build-dependencies]\ncc.workspace = true\n\n[dev-dependencies]\nrand.workspace = true\n```", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "lints": { + "$ref": "#/definitions/Lints", + "description": "The `workspace.lints` table is where you define lint configuration to be inherited by members of a workspace.", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + }, + "metadata": { + "description": "The `workspace.metadata` table is ignored by Cargo and will not be warned\nabout. This section can be used for tools that would like to store workspace\nconfiguration in `Cargo.toml`. For example:\n\n```toml\n[workspace]\nmembers = [\"member1\", \"member2\"]\n\n[workspace.metadata.webcontents]\nroot = \"path/to/webproject\"\ntool = [\"npm\", \"run\", \"build\"]\n# ...\n```\n\nThere is a similar set of tables at the package level at\n`package.metadata`. While cargo does not specify a\nformat for the content of either of these tables, it is suggested that\nexternal tools may wish to use them in a consistent fashion, such as referring\nto the data in `workspace.metadata` if data is missing from `package.metadata`,\nif that makes sense for the tool in question.\n", + "type": "object", + "additionalProperties": true, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section" + } + } + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/workspaces.html" + } + } + }, + "Authors": { + "title": "Authors", + "description": "The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field" + } + } + }, + "Categories": { + "title": "Categories", + "description": "The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-categories-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-categories-field" + } + } + }, + "Description": { + "title": "Description", + "description": "The description is a short blurb about the package. [crates.io](https://crates.io) will display\nthis with your package. This should be plain text (not Markdown).\n\n```toml\n[package]\n# ...\ndescription = \"A short description of my package\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires the `description` to be set.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-description-field" + } + } + }, + "Documentation": { + "title": "Documentation", + "description": "\nThe `documentation` field specifies a URL to a website hosting the crate's\ndocumentation. If no URL is specified in the manifest file, [crates.io](https://crates.io) will\nautomatically link your crate to the corresponding [docs.rs](https://docs.rs) page.\n\n```toml\n[package]\n# ...\ndocumentation = \"https://docs.rs/bitflags\"\n```\n", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-documentation-field" + } + } + }, + "Exclude": { + "title": "Exclude", + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "Homepage": { + "title": "Homepage", + "description": "The `homepage` field should be a URL to a site that is the home page for your\npackage.\n\n```toml\n[package]\n# ...\nhomepage = \"https://serde.rs/\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-homepage-field" + } + } + }, + "Include": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields" + } + } + }, + "Keywords": { + "title": "Keywords", + "description": "The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.", + "type": "array", + "uniqueItems": true, + "items": { + "description": "The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-keywords-field" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-keywords-field" + } + } + }, + "License": { + "title": "License", + "description": "The `license` field contains the name of the software license that the package\nis released under.\n\n[crates.io](https://crates.io/) interprets the `license` field as an [SPDX 2.1 license\nexpression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60). The name must be a known license\nfrom the [SPDX license list 3.6](https://github.com/spdx/license-list-data/tree/v3.6). Parentheses are not\ncurrently supported. See the [SPDX site](https://spdx.org/license-list) for more information.\n\nSPDX license expressions support AND and OR operators to combine multiple\nlicenses.\n\n```toml\n[package]\n# ...\nlicense = \"MIT OR Apache-2.0\"\n```\n\nUsing `OR` indicates the user may choose either license. Using `AND` indicates\nthe user must comply with both licenses simultaneously. The `WITH` operator\nindicates a license with a special exception. Some examples:\n\n* `MIT OR Apache-2.0`\n* `LGPL-2.1 AND MIT AND BSD-2-Clause`\n* `GPL-2.0+ WITH Bison-exception-2.2`\n\nIf a package is using a nonstandard license, then the `license-file` field may\nbe specified in lieu of the `license` field.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields" + } + } + }, + "LicenseFile": { + "title": "LicenseFile", + "description": "The `license-file` field contains the path to a file\ncontaining the text of the license (relative to this `Cargo.toml`).\n\n```toml\n[package]\n# ...\nlicense-file = \"LICENSE.txt\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires either `license` or `license-file` to be set.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields" + } + } + }, + "Repository": { + "title": "Repository", + "description": "The `repository` field should be a URL to the source repository for your\npackage.\n\n```toml\n[package]\n# ...\nrepository = \"https://github.com/rust-lang/cargo/\"\n```", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-repository-field" + } + } + }, + "RustVersion": { + "title": "RustVersion", + "description": "The `rust-version` field is an optional key that tells cargo what version of the\nRust language and compiler your package can be compiled with. If the currently\nselected version of the Rust compiler is older than the stated version, cargo\nwill exit with an error, telling the user what version is required.\n\nThe first version of Cargo that supports this field was released with Rust 1.56.0.\nIn older releases, the field will be ignored, and Cargo will display a warning.\n\n```toml\n[package]\n# ...\nrust-version = \"1.56\"\n```\n\nThe Rust version must be a bare version number with two or three components; it\ncannot include semver operators or pre-release identifiers. Compiler pre-release\nidentifiers such as -nightly will be ignored while checking the Rust version.\nThe `rust-version` must be equal to or newer than the version that first\nintroduced the configured `edition`.\n\nThe `rust-version` may be ignored using the `--ignore-rust-version` option.\n\nSetting the `rust-version` key in `[package]` will affect all targets/crates in\nthe package, including test suites, benchmarks, binaries, examples, etc.", + "type": "string", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field" + } + } + }, + "WorkspaceInheritance": { + "type": "object", + "properties": { + "workspace": { + "title": "Workspace", + "description": "The `workspace` field allow keys to be inherited by defining them in the member package with `{key}.workspace = true`", + "type": "boolean", + "enum": [true] + } + }, + "required": ["workspace"], + "additionalProperties": false, + "x-tombi-table-keys-order": "schema" + }, + "PlaydateMetadata": { + "title": "Playdate Package Metadata", + "description": "Metadata and build configuration.", + "type": "object", + "required": ["bundle-id"], + "properties": { + "bundle-id": { + "type": "string", + "description": "A unique identifier for your game, in reverse DNS notation.", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "name": { + "type": "string", + "description": "A game version number, formatted any way you wish, that is displayed to players. It is not used to compute when updates should occur.", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "author": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "description": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "version": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + } + }, + "build-number": { + "type": "integer", + "exclusiveMinimum": 0, + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "A monotonically-increasing integer value used to indicate a unique version of your game. This can be set using an automated build process like Continuous Integration to avoid having to set the value by hand.\n\nFor sideloaded games, buildNumber is required and is used to determine when a newer version is available to download." + }, + "image-path": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "A directory of images that will be used by the launcher.\n\nMore in [official documentation](https://sdk.play.date/#pdxinfo)." + }, + "launch-sound-path": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "Should point to the path of a short audio file to be played as the game launch animation is taking place.\n\nMore in [official documentation](https://sdk.play.date/#pdxinfo)." + }, + "content-warning": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "Optional. A content warning that displays when the user launches your game for the first time. The user will have the option of backing out and not launching your game if they choose." + }, + "content-warning2": { + "type": "string", + "x-taplo": { + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "description": "Optional. A second content warning that displays on a second screen when the user launches your game for the first time. The user will have the option of backing out and not launching your game if they choose.\n\nNote: `content-warning2` will only display if a `content-warning` attribute is also specified.\n\nThe string displayed on the content warning screen can only be so long before it will be truncated with an \"…\" character. Be sure to keep this in mind when designing your `content-warning` and `content-warning2` text." + }, + "assets": { + "anyOf": [ + { + "$ref": "#/definitions/PlaydateMetadataAssetsMap" + }, + { + "$ref": "#/definitions/PlaydateMetadataAssetsArray" + } + ] + }, + "dev-assets": { + "anyOf": [ + { + "$ref": "#/definitions/PlaydateMetadataAssetsMap" + }, + { + "$ref": "#/definitions/PlaydateMetadataAssetsArray" + } + ] + }, + "options": { + "$ref": "#/definitions/PlaydateMetadataOptions" + }, + "support": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "initKeys": [ + "bundle-id", + "name", + "description", + "author", + "image-path", + "launch-sound-path" + ], + "links": { + "key": "https://sdk.play.date/#pdxinfo" + } + }, + "x-taplo-info": { + "authors": ["Alex Koz. (https://github.com/boozook)"] + } + }, + "PlaydateMetadataAssetsArray": { + "type": "array", + "title": "Assets list", + "description": "List of paths to include.", + "uniqueItems": true, + "items": { + "title": "Path", + "description": "Path to include.", + "type": "string" + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#assets-list" + } + } + }, + "PlaydateMetadataAssetsMap": { + "type": "object", + "title": "Assets rules", + "description": "Rules used to resolve paths to include.", + "properties": { + "options": { + "$ref": "#/definitions/PlaydateMetadataAssetsOptions" + } + }, + "additionalProperties": { + "anyOf": [ + { + "type": "string", + "title": "Path", + "description": "Path of files to include. Can be absolute, relative to the crate root, or/and glob.\n\nLeft hand is where to put files, path in the resulting package.\n\nRight hand is a path or pattern to match files to include." + }, + { + "type": "boolean", + "title": "Include", + "description": "Include or exclude the file or glob-pattern." + } + ] + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#assets-table" + } + } + }, + "PlaydateMetadataAssetsOptions": { + "type": "object", + "title": "Assets Configuration", + "description": "Options for assets paths resolution and how to build assets collection", + "additionalProperties": false, + "properties": { + "overwrite": { + "type": "boolean", + "description": "Allow overwriting existing files." + }, + "follow-symlinks": { + "type": "boolean" + }, + "method": { + "type": "string", + "enum": ["copy", "link"] + }, + "dependencies": { + "type": "boolean", + "description": "Allow build assets for dependencies." + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#assets-options" + } + } + }, + "PlaydateMetadataOptions": { + "type": "object", + "title": "Configuration", + "description": "Package build options.", + "additionalProperties": true, + "properties": { + "assets": { + "$ref": "#/definitions/PlaydateMetadataAssetsOptions" + } + }, + "x-tombi-table-keys-order": "schema", + "x-taplo": { + "links": { + "key": "https://github.com/boozook/playdate/blob/main/support/build/README.md#options" + } + } + } + }, + "description": "A schema for Cargo.toml.", + "properties": { + "cargo-features": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "x-tombi-array-values-order": "version-sort" + }, + "package": { + "$ref": "#/definitions/Package" + }, + "project": { + "$ref": "#/definitions/Package", + "description": "[project] is deprecated. Use [package] instead.", + "deprecated": true, + "x-taplo": { + "hidden": true + } + }, + "workspace": { + "$ref": "#/definitions/Workspace" + }, + "lib": { + "$ref": "#/definitions/Target", + "x-taplo": { + "docs": { + "main": "The library target defines a \"library\" that can be used and linked by other\nlibraries and executables. The filename defaults to `src/lib.rs`, and the name\nof the library defaults to the name of the package. A package can have only\none library. The settings for the library can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[lib]`\ntable in `Cargo.toml`.\n\n```toml\n# Example of customizing the library in Cargo.toml.\n[lib]\ncrate-type = [\"cdylib\"]\nbench = false\n```\n" + }, + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#library" + } + } + }, + "bin": { + "description": "Binary targets are executable programs that can be run after being compiled.\nThe default binary filename is `src/main.rs`, which defaults to the name of\nthe package. Additional binaries are stored in the [`src/bin/`\ndirectory](https://doc.rust-lang.org/cargo/guide/project-layout.html). The settings for each binary can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[[bin]]` tables in `Cargo.toml`.\n\nBinaries can use the public API of the package's library. They are also linked\nwith the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) defined in `Cargo.toml`.\n\nYou can run individual binaries with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with the `--bin\n` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html) can be used to copy the executable to a\ncommon location.\n\n```toml\n# Example of customizing binaries in Cargo.toml.\n[[bin]]\nname = \"cool-tool\"\ntest = false\nbench = false\n\n[[bin]]\nname = \"frobnicator\"\nrequired-features = [\"frobnicate\"]\n```", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Binary targets are executable programs that can be run after being compiled.\nThe default binary filename is `src/main.rs`, which defaults to the name of\nthe package. Additional binaries are stored in the [`src/bin/`\ndirectory](https://doc.rust-lang.org/cargo/guide/project-layout.html). The settings for each binary can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[[bin]]` tables in `Cargo.toml`.\n\nBinaries can use the public API of the package's library. They are also linked\nwith the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) defined in `Cargo.toml`.\n\nYou can run individual binaries with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with the `--bin\n` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html) can be used to copy the executable to a\ncommon location.\n\n```toml\n# Example of customizing binaries in Cargo.toml.\n[[bin]]\nname = \"cool-tool\"\ntest = false\nbench = false\n\n[[bin]]\nname = \"frobnicator\"\nrequired-features = [\"frobnicate\"]\n```", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries" + } + } + }, + "example": { + "description": "Files located under the [examples directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are example uses of the functionality provided by the library. When compiled, they are placed in the[ target/debug/examples directory](https://doc.rust-lang.org/cargo/guide/build-cache.html).\n\nExamples can use the public API of the package's library. They are also linked with the [dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in Cargo.toml.\n\nBy default, examples are executable binaries (with a `main()` function). You\ncan specify the [`crate-type` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field) to make an example\nbe compiled as a library:\n\n```toml\n[[example]]\nname = \"foo\"\ncrate-type = [\"staticlib\"]\n```\n\nYou can run individual executable examples with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with\nthe `--example ` option. Library examples can be built with\n[`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) with the `--example ` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html)\nwith the `--example ` option can be used to copy executable\nbinaries to a common location. Examples are compiled by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by\ndefault to protect them from bit-rotting. Set [the `test`\nfield](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field) to `true` if you have `#[test]` functions in the\nexample that you want to run with [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html).\n", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Files located under the [examples directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are example uses of the functionality provided by the library. When compiled, they are placed in the[ target/debug/examples directory](https://doc.rust-lang.org/cargo/guide/build-cache.html).\n\nExamples can use the public API of the package's library. They are also linked with the [dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in Cargo.toml.\n\nBy default, examples are executable binaries (with a `main()` function). You\ncan specify the [`crate-type` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field) to make an example\nbe compiled as a library:\n\n```toml\n[[example]]\nname = \"foo\"\ncrate-type = [\"staticlib\"]\n```\n\nYou can run individual executable examples with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with\nthe `--example ` option. Library examples can be built with\n[`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) with the `--example ` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html)\nwith the `--example ` option can be used to copy executable\nbinaries to a common location. Examples are compiled by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by\ndefault to protect them from bit-rotting. Set [the `test`\nfield](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field) to `true` if you have `#[test]` functions in the\nexample that you want to run with [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html).\n", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#examples" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#examples" + } + } + }, + "test": { + "description": "Files located under the [`tests` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are integration\ntests. When you run [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html), Cargo will compile each of these files as\na separate crate, and execute them.\n\nIntegration tests can use the public API of the package's library. They are\nalso linked with the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and\n[`[dev-dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in `Cargo.toml`.\n\nIf you want to share code among multiple integration tests, you can place it\nin a separate module such as `tests/common/mod.rs` and then put `mod common;`\nin each test to import it.\n\nEach integration test results in a separate executable binary, and [`cargo\ntest`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) will run them serially. In some cases this can be inefficient, as it\ncan take longer to compile, and may not make full use of multiple CPUs when\nrunning the tests. If you have a lot of integration tests, you may want to\nconsider creating a single integration test, and split the tests into multiple\nmodules. The libtest harness will automatically find all of the `#[test]`\nannotated functions and run them in parallel. You can pass module names to\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) to only run the tests within that module.\n\nBinary targets are automatically built if there is an integration test. This\nallows an integration test to execute the binary to exercise and test its\nbehavior. The `CARGO_BIN_EXE_` [environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates) is set when the\nintegration test is built so that it can use the [`env` macro](https://doc.rust-lang.org/std/macro.env.html) to locate the\nexecutable.", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Files located under the [`tests` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are integration\ntests. When you run [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html), Cargo will compile each of these files as\na separate crate, and execute them.\n\nIntegration tests can use the public API of the package's library. They are\nalso linked with the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and\n[`[dev-dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in `Cargo.toml`.\n\nIf you want to share code among multiple integration tests, you can place it\nin a separate module such as `tests/common/mod.rs` and then put `mod common;`\nin each test to import it.\n\nEach integration test results in a separate executable binary, and [`cargo\ntest`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) will run them serially. In some cases this can be inefficient, as it\ncan take longer to compile, and may not make full use of multiple CPUs when\nrunning the tests. If you have a lot of integration tests, you may want to\nconsider creating a single integration test, and split the tests into multiple\nmodules. The libtest harness will automatically find all of the `#[test]`\nannotated functions and run them in parallel. You can pass module names to\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) to only run the tests within that module.\n\nBinary targets are automatically built if there is an integration test. This\nallows an integration test to execute the binary to exercise and test its\nbehavior. The `CARGO_BIN_EXE_` [environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates) is set when the\nintegration test is built so that it can use the [`env` macro](https://doc.rust-lang.org/std/macro.env.html) to locate the\nexecutable.", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests" + } + } + }, + "bench": { + "description": "Benchmarks provide a way to test the performance of your code using the\n[`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html) command. They follow the same structure as [tests](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#tests),\nwith each benchmark function annotated with the `#[bench]` attribute.\nSimilarly to tests:\n\n* Benchmarks are placed in the [`benches` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html).\n* Benchmark functions defined in libraries and binaries have access to the\n *private* API within the target they are defined in. Benchmarks in the\n `benches` directory may use the *public* API.\n* [The `bench` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field) can be used to define which targets\n are benchmarked by default.\n* [The `harness` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field) can be used to disable the\n built-in harness.\n\n> **Note**: The [`#[bench]`\n> attribute](https://doc.rust-lang.org/unstable-book/library-features/test.html) is currently\n> unstable and only available on the [nightly channel](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html). There are some\n> packages available on [crates.io](https://crates.io/keywords/benchmark) that\n> may help with running benchmarks on the stable channel, such as\n> [Criterion](https://crates.io/crates/criterion).", + "type": "array", + "items": { + "$ref": "#/definitions/Target", + "description": "Benchmarks provide a way to test the performance of your code using the\n[`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html) command. They follow the same structure as [tests](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#tests),\nwith each benchmark function annotated with the `#[bench]` attribute.\nSimilarly to tests:\n\n* Benchmarks are placed in the [`benches` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html).\n* Benchmark functions defined in libraries and binaries have access to the\n *private* API within the target they are defined in. Benchmarks in the\n `benches` directory may use the *public* API.\n* [The `bench` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field) can be used to define which targets\n are benchmarked by default.\n* [The `harness` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field) can be used to disable the\n built-in harness.\n\n> **Note**: The [`#[bench]`\n> attribute](https://doc.rust-lang.org/unstable-book/library-features/test.html) is currently\n> unstable and only available on the [nightly channel](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html). There are some\n> packages available on [crates.io](https://crates.io/keywords/benchmark) that\n> may help with running benchmarks on the stable channel, such as\n> [Criterion](https://crates.io/crates/criterion).", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#benchmarks" + } + } + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/cargo-targets.html#benchmarks" + } + } + }, + "dependencies": { + "description": "Cargo is configured to look for dependencies on [crates.io](https://crates.io) by default. Only\nthe name and a version string are required in this case. In [the cargo\nguide](https://doc.rust-lang.org/cargo/guide/index.html), we specified a dependency on the `time` crate:\n\n```toml\n[dependencies]\ntime = \"0.1.12\"\n```\n\nThe string `\"0.1.12\"` is a [semver](https://github.com/steveklabnik/semver#requirements) version requirement. Since this\nstring does not have any operators in it, it is interpreted the same way as\nif we had specified `\"^0.1.12\"`, which is called a caret requirement.\n\nA dependency can also be defined by a table with additional options:\n\n```toml\n[dependencies]\ntime = { path = \"../time\", version = \"0.1.12\" }\n```", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html" + } + } + }, + "dev-dependencies": { + "description": "The format of `[dev-dependencies]` is equivalent to `[dependencies]`:\n\n```toml\n[dev-dependencies]\ntempdir = \"0.3\"\n```\n\nDev-dependencies are not used when compiling\na package for building, but are used for compiling tests, examples, and\nbenchmarks.\n\nThese dependencies are *not* propagated to other packages which depend on this\npackage.\n\nYou can also have target-specific development dependencies by using\n`dev-dependencies` in the target section header instead of `dependencies`. For\nexample:\n\n```toml\n[target.'cfg(unix)'.dev-dependencies]\nmio = \"0.0.1\"\n```\n\n> **Note**: When a package is published, only dev-dependencies that specify a\n> `version` will be included in the published crate. For most use cases,\n> dev-dependencies are not needed when published, though some users (like OS\n> packagers) may want to run tests within a crate, so providing a `version` if\n> possible can still be beneficial.\n", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "dev_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "description": "[dev_dependencies] is deprecated. Use [dev-dependencies] instead.", + "deprecated": true, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "build-dependencies": { + "description": "You can depend on other Cargo-based crates for use in your build scripts.\nDependencies are declared through the `build-dependencies` section of the\nmanifest:\n\n```toml\n[build-dependencies]\ncc = \"1.0.3\"\n```\n\nThe build script **does not** have access to the dependencies listed\nin the `dependencies` or `dev-dependencies` section. Build\ndependencies will likewise not be available to the package itself\nunless listed under the `dependencies` section as well. A package\nitself and its build script are built separately, so their\ndependencies need not coincide. Cargo is kept simpler and cleaner by\nusing independent dependencies for independent purposes.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies" + }, + "plugins": ["crates"], + "crates": { + "schemas": "dependencies" + } + } + }, + "build_dependencies": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "description": "[build_dependencies] is deprecated. Use [build-dependencies] instead.", + "deprecated": true, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "target": { + "type": "object", + "x-tombi-table-keys-order": "version-sort", + "additionalProperties": { + "$ref": "#/definitions/Platform" + } + }, + "badges": { + "description": "[crates.io](https://crates.io) can display various badges for build status, test coverage, etc. for\neach crate. All badges are optional.\n\n- The badges pertaining to build status that are currently available are\n Appveyor, CircleCI, Cirrus CI, GitLab, Azure DevOps, Travis CI and Bitbucket\n Pipelines.\n- Available badges pertaining to code test coverage are Codecov and Coveralls.\n- There are also maintenance-related badges based on isitmaintained.com\n which state the issue resolution time, percent of open issues, and future\n maintenance intentions.\n\nMost badge specifications require a `repository` key. It is expected to be in\n`user/repo` format.\n\n```toml\n[badges]\n\n# Appveyor: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default), `bitbucket`, and\n# `gitlab`; `id` is optional; you can specify the appveyor project id if you\n# want to use that instead. `project_name` is optional; use when the repository\n# name differs from the appveyor project name.\nappveyor = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Circle CI: `repository` is required. `branch` is optional; default is `master`\ncircle-ci = { repository = \"...\", branch = \"master\" }\n\n# Cirrus CI: `repository` is required. `branch` is optional; default is `master`\ncirrus-ci = { repository = \"...\", branch = \"master\" }\n\n# GitLab: `repository` is required. `branch` is optional; default is `master`\ngitlab = { repository = \"...\", branch = \"master\" }\n\n# Azure DevOps: `project` is required. `pipeline` is required. `build` is optional; default is `1`\n# Note: project = `organization/project`, pipeline = `name_of_pipeline`, build = `definitionId`\nazure-devops = { project = \"...\", pipeline = \"...\", build=\"2\" }\n\n# Travis CI: `repository` in format \"/\" is required.\n# `branch` is optional; default is `master`\ntravis-ci = { repository = \"...\", branch = \"master\" }\n\n# Bitbucket Pipelines: `repository` is required. `branch` is required\nbitbucket-pipelines = { repository = \"...\", branch = \"master\" }\n\n# Codecov: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default), `bitbucket`, and\n# `gitlab`.\ncodecov = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Coveralls: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default) and `bitbucket`.\ncoveralls = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Is it maintained resolution time: `repository` is required.\nis-it-maintained-issue-resolution = { repository = \"...\" }\n\n# Is it maintained percentage of open issues: `repository` is required.\nis-it-maintained-open-issues = { repository = \"...\" }\n\n# Maintenance: `status` is required. Available options are:\n# - `actively-developed`: New features are being added and bugs are being fixed.\n# - `passively-maintained`: There are no plans for new features, but the maintainer intends to\n# respond to issues that get filed.\n# - `as-is`: The crate is feature complete, the maintainer does not intend to continue working on\n# it or providing support, but it works for the purposes it was designed for.\n# - `experimental`: The author wants to share it with the community but is not intending to meet\n# anyone's particular use case.\n# - `looking-for-maintainer`: The current maintainer would like to transfer the crate to someone\n# else.\n# - `deprecated`: The maintainer does not recommend using this crate (the description of the crate\n# can describe why, there could be a better solution available or there could be problems with\n# the crate that the author does not want to fix).\n# - `none`: Displays no badge on crates.io, since the maintainer has not chosen to specify\n# their intentions, potential crate users will need to investigate on their own.\nmaintenance = { status = \"...\" }\n```", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/manifest.html#the-badges-section" + } + } + }, + "features": { + "description": "Cargo supports features to allow expression of:\n\n* conditional compilation options (usable through `cfg` attributes);\n* optional dependencies, which enhance a package, but are not required; and\n* clusters of optional dependencies, such as `postgres-all`, that would include the\n `postgres` package, the `postgres-macros` package, and possibly other packages\n (such as development-time mocking libraries, debugging tools, etc.).\n\nA feature of a package is either an optional dependency, or a set of other\nfeatures.\n", + "type": "object", + "properties": { + "default": { + "title": "Default Feature", + "description": "The default features of the crate.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "x-tombi-array-values-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/features.html#the-default-feature" + } + } + } + }, + "additionalProperties": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "x-tombi-array-values-order": "version-sort" + }, + "x-tombi-table-keys-order": { + "properties": "schema", + "additionalProperties": "version-sort" + }, + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/features.html" + } + } + }, + "lints": { + "description": "Override the default level of lints from different tools by assigning them to a new level in a table.", + "anyOf": [ + { + "$ref": "#/definitions/Lints" + }, + { + "type": "object", + "properties": { + "workspace": { + "type": "boolean", + "description": "Inherit lints from the workspace manifest." + } + }, + "required": ["workspace"], + "additionalProperties": false, + "x-tombi-table-keys-order": "version-sort" + } + ], + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-lints-section" + } + } + }, + "patch": { + "description": "The `[patch]` section of `Cargo.toml` can be used to override dependencies\nwith other copies. The syntax is similar to the\n[`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) section.\n\n", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "links": { + "key": "https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-section" + } + } + }, + "replace": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Dependency" + }, + "x-tombi-table-keys-order": "version-sort", + "x-taplo": { + "hidden": true + } + }, + "profile": { + "$ref": "#/definitions/Profiles" + } + }, + "title": "Cargo.toml", + "type": "object", + "additionalProperties": false, + "x-tombi-table-keys-order": "schema", + "x-taplo-info": { + "authors": ["tamasfe (https://github.com/tamasfe)"], + "patterns": ["^(.*(/|\\\\)Cargo\\.toml|Cargo\\.toml)$"] + } +} diff --git a/tests/testdata/json_schemastore_catalog_add_schema/expected.json b/tests/testdata/json_schemastore_catalog_add_schema/expected.json new file mode 100644 index 0000000..2bb08c9 --- /dev/null +++ b/tests/testdata/json_schemastore_catalog_add_schema/expected.json @@ -0,0 +1,39633 @@ +{ + "version": "v1", + "actions": [ + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 987, + 2 + ], + "type": "pair", + "start_byte": 314569, + "end_byte": 314626 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 1168 + ], + "type": "object", + "start_byte": 379689, + "end_byte": 379928 + }, + "position": 3, + "old_parent": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 987 + ], + "type": "object", + "start_byte": 314458, + "end_byte": 314632 + }, + "old_position": 2, + "subtree": true, + "dest_start_byte": 379865, + "dest_end_byte": 379922 + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 1169, + 0, + 1 + ], + "type": "string", + "label": "\"Preset list for a WinUtil\"", + "start_byte": 379885, + "end_byte": 379912 + }, + "old_value": "\"Preset list for a WinUtil\"", + "new_value": "\"Preset list for a \\\"ChrisTitusTech/winutil\\\"\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 1168, + 0, + 1 + ], + "type": "string", + "label": "\"Preset list for a \\\"ChrisTitusTech/winutil\\\"\"", + "start_byte": 379705, + "end_byte": 379751 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 987, + 0 + ], + "type": "pair", + "start_byte": 314466, + "end_byte": 314483 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 987, + 1 + ], + "type": "pair", + "start_byte": 314491, + "end_byte": 314561 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 987 + ], + "type": "object", + "start_byte": 314458, + "end_byte": 314632 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 1169, + 3 + ], + "type": "pair", + "start_byte": 380026, + "end_byte": 380082 + }, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": 334, + "right_line": 334 + }, + { + "left_line": 335, + "right_line": 335 + }, + { + "left_line": 336, + "right_line": 336 + }, + { + "left_line": 337, + "right_line": 337 + }, + { + "left_line": 338, + "right_line": 338 + }, + { + "left_line": 339, + "right_line": 339 + }, + { + "left_line": 340, + "right_line": 340 + }, + { + "left_line": 341, + "right_line": 341 + }, + { + "left_line": 342, + "right_line": 342 + }, + { + "left_line": 343, + "right_line": 343 + }, + { + "left_line": 344, + "right_line": 344 + }, + { + "left_line": 345, + "right_line": 345 + }, + { + "left_line": 346, + "right_line": 346 + }, + { + "left_line": 347, + "right_line": 347 + }, + { + "left_line": 348, + "right_line": 348 + }, + { + "left_line": 349, + "right_line": 349 + }, + { + "left_line": 350, + "right_line": 350 + }, + { + "left_line": 351, + "right_line": 351 + }, + { + "left_line": 352, + "right_line": 352 + }, + { + "left_line": 353, + "right_line": 353 + }, + { + "left_line": 354, + "right_line": 354 + }, + { + "left_line": 355, + "right_line": 355 + }, + { + "left_line": 356, + "right_line": 356 + }, + { + "left_line": 357, + "right_line": 357 + }, + { + "left_line": 358, + "right_line": 358 + }, + { + "left_line": 359, + "right_line": 359 + }, + { + "left_line": 360, + "right_line": 360 + }, + { + "left_line": 361, + "right_line": 361 + }, + { + "left_line": 362, + "right_line": 362 + }, + { + "left_line": 363, + "right_line": 363 + }, + { + "left_line": 364, + "right_line": 364 + }, + { + "left_line": 365, + "right_line": 365 + }, + { + "left_line": 366, + "right_line": 366 + }, + { + "left_line": 367, + "right_line": 367 + }, + { + "left_line": 368, + "right_line": 368 + }, + { + "left_line": 369, + "right_line": 369 + }, + { + "left_line": 370, + "right_line": 370 + }, + { + "left_line": 371, + "right_line": 371 + }, + { + "left_line": 372, + "right_line": 372 + }, + { + "left_line": 373, + "right_line": 373 + }, + { + "left_line": 374, + "right_line": 374 + }, + { + "left_line": 375, + "right_line": 375 + }, + { + "left_line": 376, + "right_line": 376 + }, + { + "left_line": 377, + "right_line": 377 + }, + { + "left_line": 378, + "right_line": 378 + }, + { + "left_line": 379, + "right_line": 379 + }, + { + "left_line": 380, + "right_line": 380 + }, + { + "left_line": 381, + "right_line": 381 + }, + { + "left_line": 382, + "right_line": 382 + }, + { + "left_line": 383, + "right_line": 383 + }, + { + "left_line": 384, + "right_line": 384 + }, + { + "left_line": 385, + "right_line": 385 + }, + { + "left_line": 386, + "right_line": 386 + }, + { + "left_line": 387, + "right_line": 387 + }, + { + "left_line": 388, + "right_line": 388 + }, + { + "left_line": 389, + "right_line": 389 + }, + { + "left_line": 390, + "right_line": 390 + }, + { + "left_line": 391, + "right_line": 391 + }, + { + "left_line": 392, + "right_line": 392 + }, + { + "left_line": 393, + "right_line": 393 + }, + { + "left_line": 394, + "right_line": 394 + }, + { + "left_line": 395, + "right_line": 395 + }, + { + "left_line": 396, + "right_line": 396 + }, + { + "left_line": 397, + "right_line": 397 + }, + { + "left_line": 398, + "right_line": 398 + }, + { + "left_line": 399, + "right_line": 399 + }, + { + "left_line": 400, + "right_line": 400 + }, + { + "left_line": 401, + "right_line": 401 + }, + { + "left_line": 402, + "right_line": 402 + }, + { + "left_line": 403, + "right_line": 403 + }, + { + "left_line": 404, + "right_line": 404 + }, + { + "left_line": 405, + "right_line": 405 + }, + { + "left_line": 406, + "right_line": 406 + }, + { + "left_line": 407, + "right_line": 407 + }, + { + "left_line": 408, + "right_line": 408 + }, + { + "left_line": 409, + "right_line": 409 + }, + { + "left_line": 410, + "right_line": 410 + }, + { + "left_line": 411, + "right_line": 411 + }, + { + "left_line": 412, + "right_line": 412 + }, + { + "left_line": 413, + "right_line": 413 + }, + { + "left_line": 414, + "right_line": 414 + }, + { + "left_line": 415, + "right_line": 415 + }, + { + "left_line": 416, + "right_line": 416 + }, + { + "left_line": 417, + "right_line": 417 + }, + { + "left_line": 418, + "right_line": 418 + }, + { + "left_line": 419, + "right_line": 419 + }, + { + "left_line": 420, + "right_line": 420 + }, + { + "left_line": 421, + "right_line": 421 + }, + { + "left_line": 422, + "right_line": 422 + }, + { + "left_line": 423, + "right_line": 423 + }, + { + "left_line": 424, + "right_line": 424 + }, + { + "left_line": 425, + "right_line": 425 + }, + { + "left_line": 426, + "right_line": 426 + }, + { + "left_line": 427, + "right_line": 427 + }, + { + "left_line": 428, + "right_line": 428 + }, + { + "left_line": 429, + "right_line": 429 + }, + { + "left_line": 430, + "right_line": 430 + }, + { + "left_line": 431, + "right_line": 431 + }, + { + "left_line": 432, + "right_line": 432 + }, + { + "left_line": 433, + "right_line": 433 + }, + { + "left_line": 434, + "right_line": 434 + }, + { + "left_line": 435, + "right_line": 435 + }, + { + "left_line": 436, + "right_line": 436 + }, + { + "left_line": 437, + "right_line": 437 + }, + { + "left_line": 438, + "right_line": 438 + }, + { + "left_line": 439, + "right_line": 439 + }, + { + "left_line": 440, + "right_line": 440 + }, + { + "left_line": 441, + "right_line": 441 + }, + { + "left_line": 442, + "right_line": 442 + }, + { + "left_line": 443, + "right_line": 443 + }, + { + "left_line": 444, + "right_line": 444 + }, + { + "left_line": 445, + "right_line": 445 + }, + { + "left_line": 446, + "right_line": 446 + }, + { + "left_line": 447, + "right_line": 447 + }, + { + "left_line": 448, + "right_line": 448 + }, + { + "left_line": 449, + "right_line": 449 + }, + { + "left_line": 450, + "right_line": 450 + }, + { + "left_line": 451, + "right_line": 451 + }, + { + "left_line": 452, + "right_line": 452 + }, + { + "left_line": 453, + "right_line": 453 + }, + { + "left_line": 454, + "right_line": 454 + }, + { + "left_line": 455, + "right_line": 455 + }, + { + "left_line": 456, + "right_line": 456 + }, + { + "left_line": 457, + "right_line": 457 + }, + { + "left_line": 458, + "right_line": 458 + }, + { + "left_line": 459, + "right_line": 459 + }, + { + "left_line": 460, + "right_line": 460 + }, + { + "left_line": 461, + "right_line": 461 + }, + { + "left_line": 462, + "right_line": 462 + }, + { + "left_line": 463, + "right_line": 463 + }, + { + "left_line": 464, + "right_line": 464 + }, + { + "left_line": 465, + "right_line": 465 + }, + { + "left_line": 466, + "right_line": 466 + }, + { + "left_line": 467, + "right_line": 467 + }, + { + "left_line": 468, + "right_line": 468 + }, + { + "left_line": 469, + "right_line": 469 + }, + { + "left_line": 470, + "right_line": 470 + }, + { + "left_line": 471, + "right_line": 471 + }, + { + "left_line": 472, + "right_line": 472 + }, + { + "left_line": 473, + "right_line": 473 + }, + { + "left_line": 474, + "right_line": 474 + }, + { + "left_line": 475, + "right_line": 475 + }, + { + "left_line": 476, + "right_line": 476 + }, + { + "left_line": 477, + "right_line": 477 + }, + { + "left_line": 478, + "right_line": 478 + }, + { + "left_line": 479, + "right_line": 479 + }, + { + "left_line": 480, + "right_line": 480 + }, + { + "left_line": 481, + "right_line": 481 + }, + { + "left_line": 482, + "right_line": 482 + }, + { + "left_line": 483, + "right_line": 483 + }, + { + "left_line": 484, + "right_line": 484 + }, + { + "left_line": 485, + "right_line": 485 + }, + { + "left_line": 486, + "right_line": 486 + }, + { + "left_line": 487, + "right_line": 487 + }, + { + "left_line": 488, + "right_line": 488 + }, + { + "left_line": 489, + "right_line": 489 + }, + { + "left_line": 490, + "right_line": 490 + }, + { + "left_line": 491, + "right_line": 491 + }, + { + "left_line": 492, + "right_line": 492 + }, + { + "left_line": 493, + "right_line": 493 + }, + { + "left_line": 494, + "right_line": 494 + }, + { + "left_line": 495, + "right_line": 495 + }, + { + "left_line": 496, + "right_line": 496 + }, + { + "left_line": 497, + "right_line": 497 + }, + { + "left_line": 498, + "right_line": 498 + }, + { + "left_line": 499, + "right_line": 499 + }, + { + "left_line": 500, + "right_line": 500 + }, + { + "left_line": 501, + "right_line": 501 + }, + { + "left_line": 502, + "right_line": 502 + }, + { + "left_line": 503, + "right_line": 503 + }, + { + "left_line": 504, + "right_line": 504 + }, + { + "left_line": 505, + "right_line": 505 + }, + { + "left_line": 506, + "right_line": 506 + }, + { + "left_line": 507, + "right_line": 507 + }, + { + "left_line": 508, + "right_line": 508 + }, + { + "left_line": 509, + "right_line": 509 + }, + { + "left_line": 510, + "right_line": 510 + }, + { + "left_line": 511, + "right_line": 511 + }, + { + "left_line": 512, + "right_line": 512 + }, + { + "left_line": 513, + "right_line": 513 + }, + { + "left_line": 514, + "right_line": 514 + }, + { + "left_line": 515, + "right_line": 515 + }, + { + "left_line": 516, + "right_line": 516 + }, + { + "left_line": 517, + "right_line": 517 + }, + { + "left_line": 518, + "right_line": 518 + }, + { + "left_line": 519, + "right_line": 519 + }, + { + "left_line": 520, + "right_line": 520 + }, + { + "left_line": 521, + "right_line": 521 + }, + { + "left_line": 522, + "right_line": 522 + }, + { + "left_line": 523, + "right_line": 523 + }, + { + "left_line": 524, + "right_line": 524 + }, + { + "left_line": 525, + "right_line": 525 + }, + { + "left_line": 526, + "right_line": 526 + }, + { + "left_line": 527, + "right_line": 527 + }, + { + "left_line": 528, + "right_line": 528 + }, + { + "left_line": 529, + "right_line": 529 + }, + { + "left_line": 530, + "right_line": 530 + }, + { + "left_line": 531, + "right_line": 531 + }, + { + "left_line": 532, + "right_line": 532 + }, + { + "left_line": 533, + "right_line": 533 + }, + { + "left_line": 534, + "right_line": 534 + }, + { + "left_line": 535, + "right_line": 535 + }, + { + "left_line": 536, + "right_line": 536 + }, + { + "left_line": 537, + "right_line": 537 + }, + { + "left_line": 538, + "right_line": 538 + }, + { + "left_line": 539, + "right_line": 539 + }, + { + "left_line": 540, + "right_line": 540 + }, + { + "left_line": 541, + "right_line": 541 + }, + { + "left_line": 542, + "right_line": 542 + }, + { + "left_line": 543, + "right_line": 543 + }, + { + "left_line": 544, + "right_line": 544 + }, + { + "left_line": 545, + "right_line": 545 + }, + { + "left_line": 546, + "right_line": 546 + }, + { + "left_line": 547, + "right_line": 547 + }, + { + "left_line": 548, + "right_line": 548 + }, + { + "left_line": 549, + "right_line": 549 + }, + { + "left_line": 550, + "right_line": 550 + }, + { + "left_line": 551, + "right_line": 551 + }, + { + "left_line": 552, + "right_line": 552 + }, + { + "left_line": 553, + "right_line": 553 + }, + { + "left_line": 554, + "right_line": 554 + }, + { + "left_line": 555, + "right_line": 555 + }, + { + "left_line": 556, + "right_line": 556 + }, + { + "left_line": 557, + "right_line": 557 + }, + { + "left_line": 558, + "right_line": 558 + }, + { + "left_line": 559, + "right_line": 559 + }, + { + "left_line": 560, + "right_line": 560 + }, + { + "left_line": 561, + "right_line": 561 + }, + { + "left_line": 562, + "right_line": 562 + }, + { + "left_line": 563, + "right_line": 563 + }, + { + "left_line": 564, + "right_line": 564 + }, + { + "left_line": 565, + "right_line": 565 + }, + { + "left_line": 566, + "right_line": 566 + }, + { + "left_line": 567, + "right_line": 567 + }, + { + "left_line": 568, + "right_line": 568 + }, + { + "left_line": 569, + "right_line": 569 + }, + { + "left_line": 570, + "right_line": 570 + }, + { + "left_line": 571, + "right_line": 571 + }, + { + "left_line": 572, + "right_line": 572 + }, + { + "left_line": 573, + "right_line": 573 + }, + { + "left_line": 574, + "right_line": 574 + }, + { + "left_line": 575, + "right_line": 575 + }, + { + "left_line": 576, + "right_line": 576 + }, + { + "left_line": 577, + "right_line": 577 + }, + { + "left_line": 578, + "right_line": 578 + }, + { + "left_line": 579, + "right_line": 579 + }, + { + "left_line": 580, + "right_line": 580 + }, + { + "left_line": 581, + "right_line": 581 + }, + { + "left_line": 582, + "right_line": 582 + }, + { + "left_line": 583, + "right_line": 583 + }, + { + "left_line": 584, + "right_line": 584 + }, + { + "left_line": 585, + "right_line": 585 + }, + { + "left_line": 586, + "right_line": 586 + }, + { + "left_line": 587, + "right_line": 587 + }, + { + "left_line": 588, + "right_line": 588 + }, + { + "left_line": 589, + "right_line": 589 + }, + { + "left_line": 590, + "right_line": 590 + }, + { + "left_line": 591, + "right_line": 591 + }, + { + "left_line": 592, + "right_line": 592 + }, + { + "left_line": 593, + "right_line": 593 + }, + { + "left_line": 594, + "right_line": 594 + }, + { + "left_line": 595, + "right_line": 595 + }, + { + "left_line": 596, + "right_line": 596 + }, + { + "left_line": 597, + "right_line": 597 + }, + { + "left_line": 598, + "right_line": 598 + }, + { + "left_line": 599, + "right_line": 599 + }, + { + "left_line": 600, + "right_line": 600 + }, + { + "left_line": 601, + "right_line": 601 + }, + { + "left_line": 602, + "right_line": 602 + }, + { + "left_line": 603, + "right_line": 603 + }, + { + "left_line": 604, + "right_line": 604 + }, + { + "left_line": 605, + "right_line": 605 + }, + { + "left_line": 606, + "right_line": 606 + }, + { + "left_line": 607, + "right_line": 607 + }, + { + "left_line": 608, + "right_line": 608 + }, + { + "left_line": 609, + "right_line": 609 + }, + { + "left_line": 610, + "right_line": 610 + }, + { + "left_line": 611, + "right_line": 611 + }, + { + "left_line": 612, + "right_line": 612 + }, + { + "left_line": 613, + "right_line": 613 + }, + { + "left_line": 614, + "right_line": 614 + }, + { + "left_line": 615, + "right_line": 615 + }, + { + "left_line": 616, + "right_line": 616 + }, + { + "left_line": 617, + "right_line": 617 + }, + { + "left_line": 618, + "right_line": 618 + }, + { + "left_line": 619, + "right_line": 619 + }, + { + "left_line": 620, + "right_line": 620 + }, + { + "left_line": 621, + "right_line": 621 + }, + { + "left_line": 622, + "right_line": 622 + }, + { + "left_line": 623, + "right_line": 623 + }, + { + "left_line": 624, + "right_line": 624 + }, + { + "left_line": 625, + "right_line": 625 + }, + { + "left_line": 626, + "right_line": 626 + }, + { + "left_line": 627, + "right_line": 627 + }, + { + "left_line": 628, + "right_line": 628 + }, + { + "left_line": 629, + "right_line": 629 + }, + { + "left_line": 630, + "right_line": 630 + }, + { + "left_line": 631, + "right_line": 631 + }, + { + "left_line": 632, + "right_line": 632 + }, + { + "left_line": 633, + "right_line": 633 + }, + { + "left_line": 634, + "right_line": 634 + }, + { + "left_line": 635, + "right_line": 635 + }, + { + "left_line": 636, + "right_line": 636 + }, + { + "left_line": 637, + "right_line": 637 + }, + { + "left_line": 638, + "right_line": 638 + }, + { + "left_line": 639, + "right_line": 639 + }, + { + "left_line": 640, + "right_line": 640 + }, + { + "left_line": 641, + "right_line": 641 + }, + { + "left_line": 642, + "right_line": 642 + }, + { + "left_line": 643, + "right_line": 643 + }, + { + "left_line": 644, + "right_line": 644 + }, + { + "left_line": 645, + "right_line": 645 + }, + { + "left_line": 646, + "right_line": 646 + }, + { + "left_line": 647, + "right_line": 647 + }, + { + "left_line": 648, + "right_line": 648 + }, + { + "left_line": 649, + "right_line": 649 + }, + { + "left_line": 650, + "right_line": 650 + }, + { + "left_line": 651, + "right_line": 651 + }, + { + "left_line": 652, + "right_line": 652 + }, + { + "left_line": 653, + "right_line": 653 + }, + { + "left_line": 654, + "right_line": 654 + }, + { + "left_line": 655, + "right_line": 655 + }, + { + "left_line": 656, + "right_line": 656 + }, + { + "left_line": 657, + "right_line": 657 + }, + { + "left_line": 658, + "right_line": 658 + }, + { + "left_line": 659, + "right_line": 659 + }, + { + "left_line": 660, + "right_line": 660 + }, + { + "left_line": 661, + "right_line": 661 + }, + { + "left_line": 662, + "right_line": 662 + }, + { + "left_line": 663, + "right_line": 663 + }, + { + "left_line": 664, + "right_line": 664 + }, + { + "left_line": 665, + "right_line": 665 + }, + { + "left_line": 666, + "right_line": 666 + }, + { + "left_line": 667, + "right_line": 667 + }, + { + "left_line": 668, + "right_line": 668 + }, + { + "left_line": 669, + "right_line": 669 + }, + { + "left_line": 670, + "right_line": 670 + }, + { + "left_line": 671, + "right_line": 671 + }, + { + "left_line": 672, + "right_line": 672 + }, + { + "left_line": 673, + "right_line": 673 + }, + { + "left_line": 674, + "right_line": 674 + }, + { + "left_line": 675, + "right_line": 675 + }, + { + "left_line": 676, + "right_line": 676 + }, + { + "left_line": 677, + "right_line": 677 + }, + { + "left_line": 678, + "right_line": 678 + }, + { + "left_line": 679, + "right_line": 679 + }, + { + "left_line": 680, + "right_line": 680 + }, + { + "left_line": 681, + "right_line": 681 + }, + { + "left_line": 682, + "right_line": 682 + }, + { + "left_line": 683, + "right_line": 683 + }, + { + "left_line": 684, + "right_line": 684 + }, + { + "left_line": 685, + "right_line": 685 + }, + { + "left_line": 686, + "right_line": 686 + }, + { + "left_line": 687, + "right_line": 687 + }, + { + "left_line": 688, + "right_line": 688 + }, + { + "left_line": 689, + "right_line": 689 + }, + { + "left_line": 690, + "right_line": 690 + }, + { + "left_line": 691, + "right_line": 691 + }, + { + "left_line": 692, + "right_line": 692 + }, + { + "left_line": 693, + "right_line": 693 + }, + { + "left_line": 694, + "right_line": 694 + }, + { + "left_line": 695, + "right_line": 695 + }, + { + "left_line": 696, + "right_line": 696 + }, + { + "left_line": 697, + "right_line": 697 + }, + { + "left_line": 698, + "right_line": 698 + }, + { + "left_line": 699, + "right_line": 699 + }, + { + "left_line": 700, + "right_line": 700 + }, + { + "left_line": 701, + "right_line": 701 + }, + { + "left_line": 702, + "right_line": 702 + }, + { + "left_line": 703, + "right_line": 703 + }, + { + "left_line": 704, + "right_line": 704 + }, + { + "left_line": 705, + "right_line": 705 + }, + { + "left_line": 706, + "right_line": 706 + }, + { + "left_line": 707, + "right_line": 707 + }, + { + "left_line": 708, + "right_line": 708 + }, + { + "left_line": 709, + "right_line": 709 + }, + { + "left_line": 710, + "right_line": 710 + }, + { + "left_line": 711, + "right_line": 711 + }, + { + "left_line": 712, + "right_line": 712 + }, + { + "left_line": 713, + "right_line": 713 + }, + { + "left_line": 714, + "right_line": 714 + }, + { + "left_line": 715, + "right_line": 715 + }, + { + "left_line": 716, + "right_line": 716 + }, + { + "left_line": 717, + "right_line": 717 + }, + { + "left_line": 718, + "right_line": 718 + }, + { + "left_line": 719, + "right_line": 719 + }, + { + "left_line": 720, + "right_line": 720 + }, + { + "left_line": 721, + "right_line": 721 + }, + { + "left_line": 722, + "right_line": 722 + }, + { + "left_line": 723, + "right_line": 723 + }, + { + "left_line": 724, + "right_line": 724 + }, + { + "left_line": 725, + "right_line": 725 + }, + { + "left_line": 726, + "right_line": 726 + }, + { + "left_line": 727, + "right_line": 727 + }, + { + "left_line": 728, + "right_line": 728 + }, + { + "left_line": 729, + "right_line": 729 + }, + { + "left_line": 730, + "right_line": 730 + }, + { + "left_line": 731, + "right_line": 731 + }, + { + "left_line": 732, + "right_line": 732 + }, + { + "left_line": 733, + "right_line": 733 + }, + { + "left_line": 734, + "right_line": 734 + }, + { + "left_line": 735, + "right_line": 735 + }, + { + "left_line": 736, + "right_line": 736 + }, + { + "left_line": 737, + "right_line": 737 + }, + { + "left_line": 738, + "right_line": 738 + }, + { + "left_line": 739, + "right_line": 739 + }, + { + "left_line": 740, + "right_line": 740 + }, + { + "left_line": 741, + "right_line": 741 + }, + { + "left_line": 742, + "right_line": 742 + }, + { + "left_line": 743, + "right_line": 743 + }, + { + "left_line": 744, + "right_line": 744 + }, + { + "left_line": 745, + "right_line": 745 + }, + { + "left_line": 746, + "right_line": 746 + }, + { + "left_line": 747, + "right_line": 747 + }, + { + "left_line": 748, + "right_line": 748 + }, + { + "left_line": 749, + "right_line": 749 + }, + { + "left_line": 750, + "right_line": 750 + }, + { + "left_line": 751, + "right_line": 751 + }, + { + "left_line": 752, + "right_line": 752 + }, + { + "left_line": 753, + "right_line": 753 + }, + { + "left_line": 754, + "right_line": 754 + }, + { + "left_line": 755, + "right_line": 755 + }, + { + "left_line": 756, + "right_line": 756 + }, + { + "left_line": 757, + "right_line": 757 + }, + { + "left_line": 758, + "right_line": 758 + }, + { + "left_line": 759, + "right_line": 759 + }, + { + "left_line": 760, + "right_line": 760 + }, + { + "left_line": 761, + "right_line": 761 + }, + { + "left_line": 762, + "right_line": 762 + }, + { + "left_line": 763, + "right_line": 763 + }, + { + "left_line": 764, + "right_line": 764 + }, + { + "left_line": 765, + "right_line": 765 + }, + { + "left_line": 766, + "right_line": 766 + }, + { + "left_line": 767, + "right_line": 767 + }, + { + "left_line": 768, + "right_line": 768 + }, + { + "left_line": 769, + "right_line": 769 + }, + { + "left_line": 770, + "right_line": 770 + }, + { + "left_line": 771, + "right_line": 771 + }, + { + "left_line": 772, + "right_line": 772 + }, + { + "left_line": 773, + "right_line": 773 + }, + { + "left_line": 774, + "right_line": 774 + }, + { + "left_line": 775, + "right_line": 775 + }, + { + "left_line": 776, + "right_line": 776 + }, + { + "left_line": 777, + "right_line": 777 + }, + { + "left_line": 778, + "right_line": 778 + }, + { + "left_line": 779, + "right_line": 779 + }, + { + "left_line": 780, + "right_line": 780 + }, + { + "left_line": 781, + "right_line": 781 + }, + { + "left_line": 782, + "right_line": 782 + }, + { + "left_line": 783, + "right_line": 783 + }, + { + "left_line": 784, + "right_line": 784 + }, + { + "left_line": 785, + "right_line": 785 + }, + { + "left_line": 786, + "right_line": 786 + }, + { + "left_line": 787, + "right_line": 787 + }, + { + "left_line": 788, + "right_line": 788 + }, + { + "left_line": 789, + "right_line": 789 + }, + { + "left_line": 790, + "right_line": 790 + }, + { + "left_line": 791, + "right_line": 791 + }, + { + "left_line": 792, + "right_line": 792 + }, + { + "left_line": 793, + "right_line": 793 + }, + { + "left_line": 794, + "right_line": 794 + }, + { + "left_line": 795, + "right_line": 795 + }, + { + "left_line": 796, + "right_line": 796 + }, + { + "left_line": 797, + "right_line": 797 + }, + { + "left_line": 798, + "right_line": 798 + }, + { + "left_line": 799, + "right_line": 799 + }, + { + "left_line": 800, + "right_line": 800 + }, + { + "left_line": 801, + "right_line": 801 + }, + { + "left_line": 802, + "right_line": 802 + }, + { + "left_line": 803, + "right_line": 803 + }, + { + "left_line": 804, + "right_line": 804 + }, + { + "left_line": 805, + "right_line": 805 + }, + { + "left_line": 806, + "right_line": 806 + }, + { + "left_line": 807, + "right_line": 807 + }, + { + "left_line": 808, + "right_line": 808 + }, + { + "left_line": 809, + "right_line": 809 + }, + { + "left_line": 810, + "right_line": 810 + }, + { + "left_line": 811, + "right_line": 811 + }, + { + "left_line": 812, + "right_line": 812 + }, + { + "left_line": 813, + "right_line": 813 + }, + { + "left_line": 814, + "right_line": 814 + }, + { + "left_line": 815, + "right_line": 815 + }, + { + "left_line": 816, + "right_line": 816 + }, + { + "left_line": 817, + "right_line": 817 + }, + { + "left_line": 818, + "right_line": 818 + }, + { + "left_line": 819, + "right_line": 819 + }, + { + "left_line": 820, + "right_line": 820 + }, + { + "left_line": 821, + "right_line": 821 + }, + { + "left_line": 822, + "right_line": 822 + }, + { + "left_line": 823, + "right_line": 823 + }, + { + "left_line": 824, + "right_line": 824 + }, + { + "left_line": 825, + "right_line": 825 + }, + { + "left_line": 826, + "right_line": 826 + }, + { + "left_line": 827, + "right_line": 827 + }, + { + "left_line": 828, + "right_line": 828 + }, + { + "left_line": 829, + "right_line": 829 + }, + { + "left_line": 830, + "right_line": 830 + }, + { + "left_line": 831, + "right_line": 831 + }, + { + "left_line": 832, + "right_line": 832 + }, + { + "left_line": 833, + "right_line": 833 + }, + { + "left_line": 834, + "right_line": 834 + }, + { + "left_line": 835, + "right_line": 835 + }, + { + "left_line": 836, + "right_line": 836 + }, + { + "left_line": 837, + "right_line": 837 + }, + { + "left_line": 838, + "right_line": 838 + }, + { + "left_line": 839, + "right_line": 839 + }, + { + "left_line": 840, + "right_line": 840 + }, + { + "left_line": 841, + "right_line": 841 + }, + { + "left_line": 842, + "right_line": 842 + }, + { + "left_line": 843, + "right_line": 843 + }, + { + "left_line": 844, + "right_line": 844 + }, + { + "left_line": 845, + "right_line": 845 + }, + { + "left_line": 846, + "right_line": 846 + }, + { + "left_line": 847, + "right_line": 847 + }, + { + "left_line": 848, + "right_line": 848 + }, + { + "left_line": 849, + "right_line": 849 + }, + { + "left_line": 850, + "right_line": 850 + }, + { + "left_line": 851, + "right_line": 851 + }, + { + "left_line": 852, + "right_line": 852 + }, + { + "left_line": 853, + "right_line": 853 + }, + { + "left_line": 854, + "right_line": 854 + }, + { + "left_line": 855, + "right_line": 855 + }, + { + "left_line": 856, + "right_line": 856 + }, + { + "left_line": 857, + "right_line": 857 + }, + { + "left_line": 858, + "right_line": 858 + }, + { + "left_line": 859, + "right_line": 859 + }, + { + "left_line": 860, + "right_line": 860 + }, + { + "left_line": 861, + "right_line": 861 + }, + { + "left_line": 862, + "right_line": 862 + }, + { + "left_line": 863, + "right_line": 863 + }, + { + "left_line": 864, + "right_line": 864 + }, + { + "left_line": 865, + "right_line": 865 + }, + { + "left_line": 866, + "right_line": 866 + }, + { + "left_line": 867, + "right_line": 867 + }, + { + "left_line": 868, + "right_line": 868 + }, + { + "left_line": 869, + "right_line": 869 + }, + { + "left_line": 870, + "right_line": 870 + }, + { + "left_line": 871, + "right_line": 871 + }, + { + "left_line": 872, + "right_line": 872 + }, + { + "left_line": 873, + "right_line": 873 + }, + { + "left_line": 874, + "right_line": 874 + }, + { + "left_line": 875, + "right_line": 875 + }, + { + "left_line": 876, + "right_line": 876 + }, + { + "left_line": 877, + "right_line": 877 + }, + { + "left_line": 878, + "right_line": 878 + }, + { + "left_line": 879, + "right_line": 879 + }, + { + "left_line": 880, + "right_line": 880 + }, + { + "left_line": 881, + "right_line": 881 + }, + { + "left_line": 882, + "right_line": 882 + }, + { + "left_line": 883, + "right_line": 883 + }, + { + "left_line": 884, + "right_line": 884 + }, + { + "left_line": 885, + "right_line": 885 + }, + { + "left_line": 886, + "right_line": 886 + }, + { + "left_line": 887, + "right_line": 887 + }, + { + "left_line": 888, + "right_line": 888 + }, + { + "left_line": 889, + "right_line": 889 + }, + { + "left_line": 890, + "right_line": 890 + }, + { + "left_line": 891, + "right_line": 891 + }, + { + "left_line": 892, + "right_line": 892 + }, + { + "left_line": 893, + "right_line": 893 + }, + { + "left_line": 894, + "right_line": 894 + }, + { + "left_line": 895, + "right_line": 895 + }, + { + "left_line": 896, + "right_line": 896 + }, + { + "left_line": 897, + "right_line": 897 + }, + { + "left_line": 898, + "right_line": 898 + }, + { + "left_line": 899, + "right_line": 899 + }, + { + "left_line": 900, + "right_line": 900 + }, + { + "left_line": 901, + "right_line": 901 + }, + { + "left_line": 902, + "right_line": 902 + }, + { + "left_line": 903, + "right_line": 903 + }, + { + "left_line": 904, + "right_line": 904 + }, + { + "left_line": 905, + "right_line": 905 + }, + { + "left_line": 906, + "right_line": 906 + }, + { + "left_line": 907, + "right_line": 907 + }, + { + "left_line": 908, + "right_line": 908 + }, + { + "left_line": 909, + "right_line": 909 + }, + { + "left_line": 910, + "right_line": 910 + }, + { + "left_line": 911, + "right_line": 911 + }, + { + "left_line": 912, + "right_line": 912 + }, + { + "left_line": 913, + "right_line": 913 + }, + { + "left_line": 914, + "right_line": 914 + }, + { + "left_line": 915, + "right_line": 915 + }, + { + "left_line": 916, + "right_line": 916 + }, + { + "left_line": 917, + "right_line": 917 + }, + { + "left_line": 918, + "right_line": 918 + }, + { + "left_line": 919, + "right_line": 919 + }, + { + "left_line": 920, + "right_line": 920 + }, + { + "left_line": 921, + "right_line": 921 + }, + { + "left_line": 922, + "right_line": 922 + }, + { + "left_line": 923, + "right_line": 923 + }, + { + "left_line": 924, + "right_line": 924 + }, + { + "left_line": 925, + "right_line": 925 + }, + { + "left_line": 926, + "right_line": 926 + }, + { + "left_line": 927, + "right_line": 927 + }, + { + "left_line": 928, + "right_line": 928 + }, + { + "left_line": 929, + "right_line": 929 + }, + { + "left_line": 930, + "right_line": 930 + }, + { + "left_line": 931, + "right_line": 931 + }, + { + "left_line": 932, + "right_line": 932 + }, + { + "left_line": 933, + "right_line": 933 + }, + { + "left_line": 934, + "right_line": 934 + }, + { + "left_line": 935, + "right_line": 935 + }, + { + "left_line": 936, + "right_line": 936 + }, + { + "left_line": 937, + "right_line": 937 + }, + { + "left_line": 938, + "right_line": 938 + }, + { + "left_line": 939, + "right_line": 939 + }, + { + "left_line": 940, + "right_line": 940 + }, + { + "left_line": 941, + "right_line": 941 + }, + { + "left_line": 942, + "right_line": 942 + }, + { + "left_line": 943, + "right_line": 943 + }, + { + "left_line": 944, + "right_line": 944 + }, + { + "left_line": 945, + "right_line": 945 + }, + { + "left_line": 946, + "right_line": 946 + }, + { + "left_line": 947, + "right_line": 947 + }, + { + "left_line": 948, + "right_line": 948 + }, + { + "left_line": 949, + "right_line": 949 + }, + { + "left_line": 950, + "right_line": 950 + }, + { + "left_line": 951, + "right_line": 951 + }, + { + "left_line": 952, + "right_line": 952 + }, + { + "left_line": 953, + "right_line": 953 + }, + { + "left_line": 954, + "right_line": 954 + }, + { + "left_line": 955, + "right_line": 955 + }, + { + "left_line": 956, + "right_line": 956 + }, + { + "left_line": 957, + "right_line": 957 + }, + { + "left_line": 958, + "right_line": 958 + }, + { + "left_line": 959, + "right_line": 959 + }, + { + "left_line": 960, + "right_line": 960 + }, + { + "left_line": 961, + "right_line": 961 + }, + { + "left_line": 962, + "right_line": 962 + }, + { + "left_line": 963, + "right_line": 963 + }, + { + "left_line": 964, + "right_line": 964 + }, + { + "left_line": 965, + "right_line": 965 + }, + { + "left_line": 966, + "right_line": 966 + }, + { + "left_line": 967, + "right_line": 967 + }, + { + "left_line": 968, + "right_line": 968 + }, + { + "left_line": 969, + "right_line": 969 + }, + { + "left_line": 970, + "right_line": 970 + }, + { + "left_line": 971, + "right_line": 971 + }, + { + "left_line": 972, + "right_line": 972 + }, + { + "left_line": 973, + "right_line": 973 + }, + { + "left_line": 974, + "right_line": 974 + }, + { + "left_line": 975, + "right_line": 975 + }, + { + "left_line": 976, + "right_line": 976 + }, + { + "left_line": 977, + "right_line": 977 + }, + { + "left_line": 978, + "right_line": 978 + }, + { + "left_line": 979, + "right_line": 979 + }, + { + "left_line": 980, + "right_line": 980 + }, + { + "left_line": 981, + "right_line": 981 + }, + { + "left_line": 982, + "right_line": 982 + }, + { + "left_line": 983, + "right_line": 983 + }, + { + "left_line": 984, + "right_line": 984 + }, + { + "left_line": 985, + "right_line": 985 + }, + { + "left_line": 986, + "right_line": 986 + }, + { + "left_line": 987, + "right_line": 987 + }, + { + "left_line": 988, + "right_line": 988 + }, + { + "left_line": 989, + "right_line": 989 + }, + { + "left_line": 990, + "right_line": 990 + }, + { + "left_line": 991, + "right_line": 991 + }, + { + "left_line": 992, + "right_line": 992 + }, + { + "left_line": 993, + "right_line": 993 + }, + { + "left_line": 994, + "right_line": 994 + }, + { + "left_line": 995, + "right_line": 995 + }, + { + "left_line": 996, + "right_line": 996 + }, + { + "left_line": 997, + "right_line": 997 + }, + { + "left_line": 998, + "right_line": 998 + }, + { + "left_line": 999, + "right_line": 999 + }, + { + "left_line": 1000, + "right_line": 1000 + }, + { + "left_line": 1001, + "right_line": 1001 + }, + { + "left_line": 1002, + "right_line": 1002 + }, + { + "left_line": 1003, + "right_line": 1003 + }, + { + "left_line": 1004, + "right_line": 1004 + }, + { + "left_line": 1005, + "right_line": 1005 + }, + { + "left_line": 1006, + "right_line": 1006 + }, + { + "left_line": 1007, + "right_line": 1007 + }, + { + "left_line": 1008, + "right_line": 1008 + }, + { + "left_line": 1009, + "right_line": 1009 + }, + { + "left_line": 1010, + "right_line": 1010 + }, + { + "left_line": 1011, + "right_line": 1011 + }, + { + "left_line": 1012, + "right_line": 1012 + }, + { + "left_line": 1013, + "right_line": 1013 + }, + { + "left_line": 1014, + "right_line": 1014 + }, + { + "left_line": 1015, + "right_line": 1015 + }, + { + "left_line": 1016, + "right_line": 1016 + }, + { + "left_line": 1017, + "right_line": 1017 + }, + { + "left_line": 1018, + "right_line": 1018 + }, + { + "left_line": 1019, + "right_line": 1019 + }, + { + "left_line": 1020, + "right_line": 1020 + }, + { + "left_line": 1021, + "right_line": 1021 + }, + { + "left_line": 1022, + "right_line": 1022 + }, + { + "left_line": 1023, + "right_line": 1023 + }, + { + "left_line": 1024, + "right_line": 1024 + }, + { + "left_line": 1025, + "right_line": 1025 + }, + { + "left_line": 1026, + "right_line": 1026 + }, + { + "left_line": 1027, + "right_line": 1027 + }, + { + "left_line": 1028, + "right_line": 1028 + }, + { + "left_line": 1029, + "right_line": 1029 + }, + { + "left_line": 1030, + "right_line": 1030 + }, + { + "left_line": 1031, + "right_line": 1031 + }, + { + "left_line": 1032, + "right_line": 1032 + }, + { + "left_line": 1033, + "right_line": 1033 + }, + { + "left_line": 1034, + "right_line": 1034 + }, + { + "left_line": 1035, + "right_line": 1035 + }, + { + "left_line": 1036, + "right_line": 1036 + }, + { + "left_line": 1037, + "right_line": 1037 + }, + { + "left_line": 1038, + "right_line": 1038 + }, + { + "left_line": 1039, + "right_line": 1039 + }, + { + "left_line": 1040, + "right_line": 1040 + }, + { + "left_line": 1041, + "right_line": 1041 + }, + { + "left_line": 1042, + "right_line": 1042 + }, + { + "left_line": 1043, + "right_line": 1043 + }, + { + "left_line": 1044, + "right_line": 1044 + }, + { + "left_line": 1045, + "right_line": 1045 + }, + { + "left_line": 1046, + "right_line": 1046 + }, + { + "left_line": 1047, + "right_line": 1047 + }, + { + "left_line": 1048, + "right_line": 1048 + }, + { + "left_line": 1049, + "right_line": 1049 + }, + { + "left_line": 1050, + "right_line": 1050 + }, + { + "left_line": 1051, + "right_line": 1051 + }, + { + "left_line": 1052, + "right_line": 1052 + }, + { + "left_line": 1053, + "right_line": 1053 + }, + { + "left_line": 1054, + "right_line": 1054 + }, + { + "left_line": 1055, + "right_line": 1055 + }, + { + "left_line": 1056, + "right_line": 1056 + }, + { + "left_line": 1057, + "right_line": 1057 + }, + { + "left_line": 1058, + "right_line": 1058 + }, + { + "left_line": 1059, + "right_line": 1059 + }, + { + "left_line": 1060, + "right_line": 1060 + }, + { + "left_line": 1061, + "right_line": 1061 + }, + { + "left_line": 1062, + "right_line": 1062 + }, + { + "left_line": 1063, + "right_line": 1063 + }, + { + "left_line": 1064, + "right_line": 1064 + }, + { + "left_line": 1065, + "right_line": 1065 + }, + { + "left_line": 1066, + "right_line": 1066 + }, + { + "left_line": 1067, + "right_line": 1067 + }, + { + "left_line": 1068, + "right_line": 1068 + }, + { + "left_line": 1069, + "right_line": 1069 + }, + { + "left_line": 1070, + "right_line": 1070 + }, + { + "left_line": 1071, + "right_line": 1071 + }, + { + "left_line": 1072, + "right_line": 1072 + }, + { + "left_line": 1073, + "right_line": 1073 + }, + { + "left_line": 1074, + "right_line": 1074 + }, + { + "left_line": 1075, + "right_line": 1075 + }, + { + "left_line": 1076, + "right_line": 1076 + }, + { + "left_line": 1077, + "right_line": 1077 + }, + { + "left_line": 1078, + "right_line": 1078 + }, + { + "left_line": 1079, + "right_line": 1079 + }, + { + "left_line": 1080, + "right_line": 1080 + }, + { + "left_line": 1081, + "right_line": 1081 + }, + { + "left_line": 1082, + "right_line": 1082 + }, + { + "left_line": 1083, + "right_line": 1083 + }, + { + "left_line": 1084, + "right_line": 1084 + }, + { + "left_line": 1085, + "right_line": 1085 + }, + { + "left_line": 1086, + "right_line": 1086 + }, + { + "left_line": 1087, + "right_line": 1087 + }, + { + "left_line": 1088, + "right_line": 1088 + }, + { + "left_line": 1089, + "right_line": 1089 + }, + { + "left_line": 1090, + "right_line": 1090 + }, + { + "left_line": 1091, + "right_line": 1091 + }, + { + "left_line": 1092, + "right_line": 1092 + }, + { + "left_line": 1093, + "right_line": 1093 + }, + { + "left_line": 1094, + "right_line": 1094 + }, + { + "left_line": 1095, + "right_line": 1095 + }, + { + "left_line": 1096, + "right_line": 1096 + }, + { + "left_line": 1097, + "right_line": 1097 + }, + { + "left_line": 1098, + "right_line": 1098 + }, + { + "left_line": 1099, + "right_line": 1099 + }, + { + "left_line": 1100, + "right_line": 1100 + }, + { + "left_line": 1101, + "right_line": 1101 + }, + { + "left_line": 1102, + "right_line": 1102 + }, + { + "left_line": 1103, + "right_line": 1103 + }, + { + "left_line": 1104, + "right_line": 1104 + }, + { + "left_line": 1105, + "right_line": 1105 + }, + { + "left_line": 1106, + "right_line": 1106 + }, + { + "left_line": 1107, + "right_line": 1107 + }, + { + "left_line": 1108, + "right_line": 1108 + }, + { + "left_line": 1109, + "right_line": 1109 + }, + { + "left_line": 1110, + "right_line": 1110 + }, + { + "left_line": 1111, + "right_line": 1111 + }, + { + "left_line": 1112, + "right_line": 1112 + }, + { + "left_line": 1113, + "right_line": 1113 + }, + { + "left_line": 1114, + "right_line": 1114 + }, + { + "left_line": 1115, + "right_line": 1115 + }, + { + "left_line": 1116, + "right_line": 1116 + }, + { + "left_line": 1117, + "right_line": 1117 + }, + { + "left_line": 1118, + "right_line": 1118 + }, + { + "left_line": 1119, + "right_line": 1119 + }, + { + "left_line": 1120, + "right_line": 1120 + }, + { + "left_line": 1121, + "right_line": 1121 + }, + { + "left_line": 1122, + "right_line": 1122 + }, + { + "left_line": 1123, + "right_line": 1123 + }, + { + "left_line": 1124, + "right_line": 1124 + }, + { + "left_line": 1125, + "right_line": 1125 + }, + { + "left_line": 1126, + "right_line": 1126 + }, + { + "left_line": 1127, + "right_line": 1127 + }, + { + "left_line": 1128, + "right_line": 1128 + }, + { + "left_line": 1129, + "right_line": 1129 + }, + { + "left_line": 1130, + "right_line": 1130 + }, + { + "left_line": 1131, + "right_line": 1131 + }, + { + "left_line": 1132, + "right_line": 1132 + }, + { + "left_line": 1133, + "right_line": 1133 + }, + { + "left_line": 1134, + "right_line": 1134 + }, + { + "left_line": 1135, + "right_line": 1135 + }, + { + "left_line": 1136, + "right_line": 1136 + }, + { + "left_line": 1137, + "right_line": 1137 + }, + { + "left_line": 1138, + "right_line": 1138 + }, + { + "left_line": 1139, + "right_line": 1139 + }, + { + "left_line": 1140, + "right_line": 1140 + }, + { + "left_line": 1141, + "right_line": 1141 + }, + { + "left_line": 1142, + "right_line": 1142 + }, + { + "left_line": 1143, + "right_line": 1143 + }, + { + "left_line": 1144, + "right_line": 1144 + }, + { + "left_line": 1145, + "right_line": 1145 + }, + { + "left_line": 1146, + "right_line": 1146 + }, + { + "left_line": 1147, + "right_line": 1147 + }, + { + "left_line": 1148, + "right_line": 1148 + }, + { + "left_line": 1149, + "right_line": 1149 + }, + { + "left_line": 1150, + "right_line": 1150 + }, + { + "left_line": 1151, + "right_line": 1151 + }, + { + "left_line": 1152, + "right_line": 1152 + }, + { + "left_line": 1153, + "right_line": 1153 + }, + { + "left_line": 1154, + "right_line": 1154 + }, + { + "left_line": 1155, + "right_line": 1155 + }, + { + "left_line": 1156, + "right_line": 1156 + }, + { + "left_line": 1157, + "right_line": 1157 + }, + { + "left_line": 1158, + "right_line": 1158 + }, + { + "left_line": 1159, + "right_line": 1159 + }, + { + "left_line": 1160, + "right_line": 1160 + }, + { + "left_line": 1161, + "right_line": 1161 + }, + { + "left_line": 1162, + "right_line": 1162 + }, + { + "left_line": 1163, + "right_line": 1163 + }, + { + "left_line": 1164, + "right_line": 1164 + }, + { + "left_line": 1165, + "right_line": 1165 + }, + { + "left_line": 1166, + "right_line": 1166 + }, + { + "left_line": 1167, + "right_line": 1167 + }, + { + "left_line": 1168, + "right_line": 1168 + }, + { + "left_line": 1169, + "right_line": 1169 + }, + { + "left_line": 1170, + "right_line": 1170 + }, + { + "left_line": 1171, + "right_line": 1171 + }, + { + "left_line": 1172, + "right_line": 1172 + }, + { + "left_line": 1173, + "right_line": 1173 + }, + { + "left_line": 1174, + "right_line": 1174 + }, + { + "left_line": 1175, + "right_line": 1175 + }, + { + "left_line": 1176, + "right_line": 1176 + }, + { + "left_line": 1177, + "right_line": 1177 + }, + { + "left_line": 1178, + "right_line": 1178 + }, + { + "left_line": 1179, + "right_line": 1179 + }, + { + "left_line": 1180, + "right_line": 1180 + }, + { + "left_line": 1181, + "right_line": 1181 + }, + { + "left_line": 1182, + "right_line": 1182 + }, + { + "left_line": 1183, + "right_line": 1183 + }, + { + "left_line": 1184, + "right_line": 1184 + }, + { + "left_line": 1185, + "right_line": 1185 + }, + { + "left_line": 1186, + "right_line": 1186 + }, + { + "left_line": 1187, + "right_line": 1187 + }, + { + "left_line": 1188, + "right_line": 1188 + }, + { + "left_line": 1189, + "right_line": 1189 + }, + { + "left_line": 1190, + "right_line": 1190 + }, + { + "left_line": 1191, + "right_line": 1191 + }, + { + "left_line": 1192, + "right_line": 1192 + }, + { + "left_line": 1193, + "right_line": 1193 + }, + { + "left_line": 1194, + "right_line": 1194 + }, + { + "left_line": 1195, + "right_line": 1195 + }, + { + "left_line": 1196, + "right_line": 1196 + }, + { + "left_line": 1197, + "right_line": 1197 + }, + { + "left_line": 1198, + "right_line": 1198 + }, + { + "left_line": 1199, + "right_line": 1199 + }, + { + "left_line": 1200, + "right_line": 1200 + }, + { + "left_line": 1201, + "right_line": 1201 + }, + { + "left_line": 1202, + "right_line": 1202 + }, + { + "left_line": 1203, + "right_line": 1203 + }, + { + "left_line": 1204, + "right_line": 1204 + }, + { + "left_line": 1205, + "right_line": 1205 + }, + { + "left_line": 1206, + "right_line": 1206 + }, + { + "left_line": 1207, + "right_line": 1207 + }, + { + "left_line": 1208, + "right_line": 1208 + }, + { + "left_line": 1209, + "right_line": 1209 + }, + { + "left_line": 1210, + "right_line": 1210 + }, + { + "left_line": 1211, + "right_line": 1211 + }, + { + "left_line": 1212, + "right_line": 1212 + }, + { + "left_line": 1213, + "right_line": 1213 + }, + { + "left_line": 1214, + "right_line": 1214 + }, + { + "left_line": 1215, + "right_line": 1215 + }, + { + "left_line": 1216, + "right_line": 1216 + }, + { + "left_line": 1217, + "right_line": 1217 + }, + { + "left_line": 1218, + "right_line": 1218 + }, + { + "left_line": 1219, + "right_line": 1219 + }, + { + "left_line": 1220, + "right_line": 1220 + }, + { + "left_line": 1221, + "right_line": 1221 + }, + { + "left_line": 1222, + "right_line": 1222 + }, + { + "left_line": 1223, + "right_line": 1223 + }, + { + "left_line": 1224, + "right_line": 1224 + }, + { + "left_line": 1225, + "right_line": 1225 + }, + { + "left_line": 1226, + "right_line": 1226 + }, + { + "left_line": 1227, + "right_line": 1227 + }, + { + "left_line": 1228, + "right_line": 1228 + }, + { + "left_line": 1229, + "right_line": 1229 + }, + { + "left_line": 1230, + "right_line": 1230 + }, + { + "left_line": 1231, + "right_line": 1231 + }, + { + "left_line": 1232, + "right_line": 1232 + }, + { + "left_line": 1233, + "right_line": 1233 + }, + { + "left_line": 1234, + "right_line": 1234 + }, + { + "left_line": 1235, + "right_line": 1235 + }, + { + "left_line": 1236, + "right_line": 1236 + }, + { + "left_line": 1237, + "right_line": 1237 + }, + { + "left_line": 1238, + "right_line": 1238 + }, + { + "left_line": 1239, + "right_line": 1239 + }, + { + "left_line": 1240, + "right_line": 1240 + }, + { + "left_line": 1241, + "right_line": 1241 + }, + { + "left_line": 1242, + "right_line": 1242 + }, + { + "left_line": 1243, + "right_line": 1243 + }, + { + "left_line": 1244, + "right_line": 1244 + }, + { + "left_line": 1245, + "right_line": 1245 + }, + { + "left_line": 1246, + "right_line": 1246 + }, + { + "left_line": 1247, + "right_line": 1247 + }, + { + "left_line": 1248, + "right_line": 1248 + }, + { + "left_line": 1249, + "right_line": 1249 + }, + { + "left_line": 1250, + "right_line": 1250 + }, + { + "left_line": 1251, + "right_line": 1251 + }, + { + "left_line": 1252, + "right_line": 1252 + }, + { + "left_line": 1253, + "right_line": 1253 + }, + { + "left_line": 1254, + "right_line": 1254 + }, + { + "left_line": 1255, + "right_line": 1255 + }, + { + "left_line": 1256, + "right_line": 1256 + }, + { + "left_line": 1257, + "right_line": 1257 + }, + { + "left_line": 1258, + "right_line": 1258 + }, + { + "left_line": 1259, + "right_line": 1259 + }, + { + "left_line": 1260, + "right_line": 1260 + }, + { + "left_line": 1261, + "right_line": 1261 + }, + { + "left_line": 1262, + "right_line": 1262 + }, + { + "left_line": 1263, + "right_line": 1263 + }, + { + "left_line": 1264, + "right_line": 1264 + }, + { + "left_line": 1265, + "right_line": 1265 + }, + { + "left_line": 1266, + "right_line": 1266 + }, + { + "left_line": 1267, + "right_line": 1267 + }, + { + "left_line": 1268, + "right_line": 1268 + }, + { + "left_line": 1269, + "right_line": 1269 + }, + { + "left_line": 1270, + "right_line": 1270 + }, + { + "left_line": 1271, + "right_line": 1271 + }, + { + "left_line": 1272, + "right_line": 1272 + }, + { + "left_line": 1273, + "right_line": 1273 + }, + { + "left_line": 1274, + "right_line": 1274 + }, + { + "left_line": 1275, + "right_line": 1275 + }, + { + "left_line": 1276, + "right_line": 1276 + }, + { + "left_line": 1277, + "right_line": 1277 + }, + { + "left_line": 1278, + "right_line": 1278 + }, + { + "left_line": 1279, + "right_line": 1279 + }, + { + "left_line": 1280, + "right_line": 1280 + }, + { + "left_line": 1281, + "right_line": 1281 + }, + { + "left_line": 1282, + "right_line": 1282 + }, + { + "left_line": 1283, + "right_line": 1283 + }, + { + "left_line": 1284, + "right_line": 1284 + }, + { + "left_line": 1285, + "right_line": 1285 + }, + { + "left_line": 1286, + "right_line": 1286 + }, + { + "left_line": 1287, + "right_line": 1287 + }, + { + "left_line": 1288, + "right_line": 1288 + }, + { + "left_line": 1289, + "right_line": 1289 + }, + { + "left_line": 1290, + "right_line": 1290 + }, + { + "left_line": 1291, + "right_line": 1291 + }, + { + "left_line": 1292, + "right_line": 1292 + }, + { + "left_line": 1293, + "right_line": 1293 + }, + { + "left_line": 1294, + "right_line": 1294 + }, + { + "left_line": 1295, + "right_line": 1295 + }, + { + "left_line": 1296, + "right_line": 1296 + }, + { + "left_line": 1297, + "right_line": 1297 + }, + { + "left_line": 1298, + "right_line": 1298 + }, + { + "left_line": 1299, + "right_line": 1299 + }, + { + "left_line": 1300, + "right_line": 1300 + }, + { + "left_line": 1301, + "right_line": 1301 + }, + { + "left_line": 1302, + "right_line": 1302 + }, + { + "left_line": 1303, + "right_line": 1303 + }, + { + "left_line": 1304, + "right_line": 1304 + }, + { + "left_line": 1305, + "right_line": 1305 + }, + { + "left_line": 1306, + "right_line": 1306 + }, + { + "left_line": 1307, + "right_line": 1307 + }, + { + "left_line": 1308, + "right_line": 1308 + }, + { + "left_line": 1309, + "right_line": 1309 + }, + { + "left_line": 1310, + "right_line": 1310 + }, + { + "left_line": 1311, + "right_line": 1311 + }, + { + "left_line": 1312, + "right_line": 1312 + }, + { + "left_line": 1313, + "right_line": 1313 + }, + { + "left_line": 1314, + "right_line": 1314 + }, + { + "left_line": 1315, + "right_line": 1315 + }, + { + "left_line": 1316, + "right_line": 1316 + }, + { + "left_line": 1317, + "right_line": 1317 + }, + { + "left_line": 1318, + "right_line": 1318 + }, + { + "left_line": 1319, + "right_line": 1319 + }, + { + "left_line": 1320, + "right_line": 1320 + }, + { + "left_line": 1321, + "right_line": 1321 + }, + { + "left_line": 1322, + "right_line": 1322 + }, + { + "left_line": 1323, + "right_line": 1323 + }, + { + "left_line": 1324, + "right_line": 1324 + }, + { + "left_line": 1325, + "right_line": 1325 + }, + { + "left_line": 1326, + "right_line": 1326 + }, + { + "left_line": 1327, + "right_line": 1327 + }, + { + "left_line": 1328, + "right_line": 1328 + }, + { + "left_line": 1329, + "right_line": 1329 + }, + { + "left_line": 1330, + "right_line": 1330 + }, + { + "left_line": 1331, + "right_line": 1331 + }, + { + "left_line": 1332, + "right_line": 1332 + }, + { + "left_line": 1333, + "right_line": 1333 + }, + { + "left_line": 1334, + "right_line": 1334 + }, + { + "left_line": 1335, + "right_line": 1335 + }, + { + "left_line": 1336, + "right_line": 1336 + }, + { + "left_line": 1337, + "right_line": 1337 + }, + { + "left_line": 1338, + "right_line": 1338 + }, + { + "left_line": 1339, + "right_line": 1339 + }, + { + "left_line": 1340, + "right_line": 1340 + }, + { + "left_line": 1341, + "right_line": 1341 + }, + { + "left_line": 1342, + "right_line": 1342 + }, + { + "left_line": 1343, + "right_line": 1343 + }, + { + "left_line": 1344, + "right_line": 1344 + }, + { + "left_line": 1345, + "right_line": 1345 + }, + { + "left_line": 1346, + "right_line": 1346 + }, + { + "left_line": 1347, + "right_line": 1347 + }, + { + "left_line": 1348, + "right_line": 1348 + }, + { + "left_line": 1349, + "right_line": 1349 + }, + { + "left_line": 1350, + "right_line": 1350 + }, + { + "left_line": 1351, + "right_line": 1351 + }, + { + "left_line": 1352, + "right_line": 1352 + }, + { + "left_line": 1353, + "right_line": 1353 + }, + { + "left_line": 1354, + "right_line": 1354 + }, + { + "left_line": 1355, + "right_line": 1355 + }, + { + "left_line": 1356, + "right_line": 1356 + }, + { + "left_line": 1357, + "right_line": 1357 + }, + { + "left_line": 1358, + "right_line": 1358 + }, + { + "left_line": 1359, + "right_line": 1359 + }, + { + "left_line": 1360, + "right_line": 1360 + }, + { + "left_line": 1361, + "right_line": 1361 + }, + { + "left_line": 1362, + "right_line": 1362 + }, + { + "left_line": 1363, + "right_line": 1363 + }, + { + "left_line": 1364, + "right_line": 1364 + }, + { + "left_line": 1365, + "right_line": 1365 + }, + { + "left_line": 1366, + "right_line": 1366 + }, + { + "left_line": 1367, + "right_line": 1367 + }, + { + "left_line": 1368, + "right_line": 1368 + }, + { + "left_line": 1369, + "right_line": 1369 + }, + { + "left_line": 1370, + "right_line": 1370 + }, + { + "left_line": 1371, + "right_line": 1371 + }, + { + "left_line": 1372, + "right_line": 1372 + }, + { + "left_line": 1373, + "right_line": 1373 + }, + { + "left_line": 1374, + "right_line": 1374 + }, + { + "left_line": 1375, + "right_line": 1375 + }, + { + "left_line": 1376, + "right_line": 1376 + }, + { + "left_line": 1377, + "right_line": 1377 + }, + { + "left_line": 1378, + "right_line": 1378 + }, + { + "left_line": 1379, + "right_line": 1379 + }, + { + "left_line": 1380, + "right_line": 1380 + }, + { + "left_line": 1381, + "right_line": 1381 + }, + { + "left_line": 1382, + "right_line": 1382 + }, + { + "left_line": 1383, + "right_line": 1383 + }, + { + "left_line": 1384, + "right_line": 1384 + }, + { + "left_line": 1385, + "right_line": 1385 + }, + { + "left_line": 1386, + "right_line": 1386 + }, + { + "left_line": 1387, + "right_line": 1387 + }, + { + "left_line": 1388, + "right_line": 1388 + }, + { + "left_line": 1389, + "right_line": 1389 + }, + { + "left_line": 1390, + "right_line": 1390 + }, + { + "left_line": 1391, + "right_line": 1391 + }, + { + "left_line": 1392, + "right_line": 1392 + }, + { + "left_line": 1393, + "right_line": 1393 + }, + { + "left_line": 1394, + "right_line": 1394 + }, + { + "left_line": 1395, + "right_line": 1395 + }, + { + "left_line": 1396, + "right_line": 1396 + }, + { + "left_line": 1397, + "right_line": 1397 + }, + { + "left_line": 1398, + "right_line": 1398 + }, + { + "left_line": 1399, + "right_line": 1399 + }, + { + "left_line": 1400, + "right_line": 1400 + }, + { + "left_line": 1401, + "right_line": 1401 + }, + { + "left_line": 1402, + "right_line": 1402 + }, + { + "left_line": 1403, + "right_line": 1403 + }, + { + "left_line": 1404, + "right_line": 1404 + }, + { + "left_line": 1405, + "right_line": 1405 + }, + { + "left_line": 1406, + "right_line": 1406 + }, + { + "left_line": 1407, + "right_line": 1407 + }, + { + "left_line": 1408, + "right_line": 1408 + }, + { + "left_line": 1409, + "right_line": 1409 + }, + { + "left_line": 1410, + "right_line": 1410 + }, + { + "left_line": 1411, + "right_line": 1411 + }, + { + "left_line": 1412, + "right_line": 1412 + }, + { + "left_line": 1413, + "right_line": 1413 + }, + { + "left_line": 1414, + "right_line": 1414 + }, + { + "left_line": 1415, + "right_line": 1415 + }, + { + "left_line": 1416, + "right_line": 1416 + }, + { + "left_line": 1417, + "right_line": 1417 + }, + { + "left_line": 1418, + "right_line": 1418 + }, + { + "left_line": 1419, + "right_line": 1419 + }, + { + "left_line": 1420, + "right_line": 1420 + }, + { + "left_line": 1421, + "right_line": 1421 + }, + { + "left_line": 1422, + "right_line": 1422 + }, + { + "left_line": 1423, + "right_line": 1423 + }, + { + "left_line": 1424, + "right_line": 1424 + }, + { + "left_line": 1425, + "right_line": 1425 + }, + { + "left_line": 1426, + "right_line": 1426 + }, + { + "left_line": 1427, + "right_line": 1427 + }, + { + "left_line": 1428, + "right_line": 1428 + }, + { + "left_line": 1429, + "right_line": 1429 + }, + { + "left_line": 1430, + "right_line": 1430 + }, + { + "left_line": 1431, + "right_line": 1431 + }, + { + "left_line": 1432, + "right_line": 1432 + }, + { + "left_line": 1433, + "right_line": 1433 + }, + { + "left_line": 1434, + "right_line": 1434 + }, + { + "left_line": 1435, + "right_line": 1435 + }, + { + "left_line": 1436, + "right_line": 1436 + }, + { + "left_line": 1437, + "right_line": 1437 + }, + { + "left_line": 1438, + "right_line": 1438 + }, + { + "left_line": 1439, + "right_line": 1439 + }, + { + "left_line": 1440, + "right_line": 1440 + }, + { + "left_line": 1441, + "right_line": 1441 + }, + { + "left_line": 1442, + "right_line": 1442 + }, + { + "left_line": 1443, + "right_line": 1443 + }, + { + "left_line": 1444, + "right_line": 1444 + }, + { + "left_line": 1445, + "right_line": 1445 + }, + { + "left_line": 1446, + "right_line": 1446 + }, + { + "left_line": 1447, + "right_line": 1447 + }, + { + "left_line": 1448, + "right_line": 1448 + }, + { + "left_line": 1449, + "right_line": 1449 + }, + { + "left_line": 1450, + "right_line": 1450 + }, + { + "left_line": 1451, + "right_line": 1451 + }, + { + "left_line": 1452, + "right_line": 1452 + }, + { + "left_line": 1453, + "right_line": 1453 + }, + { + "left_line": 1454, + "right_line": 1454 + }, + { + "left_line": 1455, + "right_line": 1455 + }, + { + "left_line": 1456, + "right_line": 1456 + }, + { + "left_line": 1457, + "right_line": 1457 + }, + { + "left_line": 1458, + "right_line": 1458 + }, + { + "left_line": 1459, + "right_line": 1459 + }, + { + "left_line": 1460, + "right_line": 1460 + }, + { + "left_line": 1461, + "right_line": 1461 + }, + { + "left_line": 1462, + "right_line": 1462 + }, + { + "left_line": 1463, + "right_line": 1463 + }, + { + "left_line": 1464, + "right_line": 1464 + }, + { + "left_line": 1465, + "right_line": 1465 + }, + { + "left_line": 1466, + "right_line": 1466 + }, + { + "left_line": 1467, + "right_line": 1467 + }, + { + "left_line": 1468, + "right_line": 1468 + }, + { + "left_line": 1469, + "right_line": 1469 + }, + { + "left_line": 1470, + "right_line": 1470 + }, + { + "left_line": 1471, + "right_line": 1471 + }, + { + "left_line": 1472, + "right_line": 1472 + }, + { + "left_line": 1473, + "right_line": 1473 + }, + { + "left_line": 1474, + "right_line": 1474 + }, + { + "left_line": 1475, + "right_line": 1475 + }, + { + "left_line": 1476, + "right_line": 1476 + }, + { + "left_line": 1477, + "right_line": 1477 + }, + { + "left_line": 1478, + "right_line": 1478 + }, + { + "left_line": 1479, + "right_line": 1479 + }, + { + "left_line": 1480, + "right_line": 1480 + }, + { + "left_line": 1481, + "right_line": 1481 + }, + { + "left_line": 1482, + "right_line": 1482 + }, + { + "left_line": 1483, + "right_line": 1483 + }, + { + "left_line": 1484, + "right_line": 1484 + }, + { + "left_line": 1485, + "right_line": 1485 + }, + { + "left_line": 1486, + "right_line": 1486 + }, + { + "left_line": 1487, + "right_line": 1487 + }, + { + "left_line": 1488, + "right_line": 1488 + }, + { + "left_line": 1489, + "right_line": 1489 + }, + { + "left_line": 1490, + "right_line": 1490 + }, + { + "left_line": 1491, + "right_line": 1491 + }, + { + "left_line": 1492, + "right_line": 1492 + }, + { + "left_line": 1493, + "right_line": 1493 + }, + { + "left_line": 1494, + "right_line": 1494 + }, + { + "left_line": 1495, + "right_line": 1495 + }, + { + "left_line": 1496, + "right_line": 1496 + }, + { + "left_line": 1497, + "right_line": 1497 + }, + { + "left_line": 1498, + "right_line": 1498 + }, + { + "left_line": 1499, + "right_line": 1499 + }, + { + "left_line": 1500, + "right_line": 1500 + }, + { + "left_line": 1501, + "right_line": 1501 + }, + { + "left_line": 1502, + "right_line": 1502 + }, + { + "left_line": 1503, + "right_line": 1503 + }, + { + "left_line": 1504, + "right_line": 1504 + }, + { + "left_line": 1505, + "right_line": 1505 + }, + { + "left_line": 1506, + "right_line": 1506 + }, + { + "left_line": 1507, + "right_line": 1507 + }, + { + "left_line": 1508, + "right_line": 1508 + }, + { + "left_line": 1509, + "right_line": 1509 + }, + { + "left_line": 1510, + "right_line": 1510 + }, + { + "left_line": 1511, + "right_line": 1511 + }, + { + "left_line": 1512, + "right_line": 1512 + }, + { + "left_line": 1513, + "right_line": 1513 + }, + { + "left_line": 1514, + "right_line": 1514 + }, + { + "left_line": 1515, + "right_line": 1515 + }, + { + "left_line": 1516, + "right_line": 1516 + }, + { + "left_line": 1517, + "right_line": 1517 + }, + { + "left_line": 1518, + "right_line": 1518 + }, + { + "left_line": 1519, + "right_line": 1519 + }, + { + "left_line": 1520, + "right_line": 1520 + }, + { + "left_line": 1521, + "right_line": 1521 + }, + { + "left_line": 1522, + "right_line": 1522 + }, + { + "left_line": 1523, + "right_line": 1523 + }, + { + "left_line": 1524, + "right_line": 1524 + }, + { + "left_line": 1525, + "right_line": 1525 + }, + { + "left_line": 1526, + "right_line": 1526 + }, + { + "left_line": 1527, + "right_line": 1527 + }, + { + "left_line": 1528, + "right_line": 1528 + }, + { + "left_line": 1529, + "right_line": 1529 + }, + { + "left_line": 1530, + "right_line": 1530 + }, + { + "left_line": 1531, + "right_line": 1531 + }, + { + "left_line": 1532, + "right_line": 1532 + }, + { + "left_line": 1533, + "right_line": 1533 + }, + { + "left_line": 1534, + "right_line": 1534 + }, + { + "left_line": 1535, + "right_line": 1535 + }, + { + "left_line": 1536, + "right_line": 1536 + }, + { + "left_line": 1537, + "right_line": 1537 + }, + { + "left_line": 1538, + "right_line": 1538 + }, + { + "left_line": 1539, + "right_line": 1539 + }, + { + "left_line": 1540, + "right_line": 1540 + }, + { + "left_line": 1541, + "right_line": 1541 + }, + { + "left_line": 1542, + "right_line": 1542 + }, + { + "left_line": 1543, + "right_line": 1543 + }, + { + "left_line": 1544, + "right_line": 1544 + }, + { + "left_line": 1545, + "right_line": 1545 + }, + { + "left_line": 1546, + "right_line": 1546 + }, + { + "left_line": 1547, + "right_line": 1547 + }, + { + "left_line": 1548, + "right_line": 1548 + }, + { + "left_line": 1549, + "right_line": 1549 + }, + { + "left_line": 1550, + "right_line": 1550 + }, + { + "left_line": 1551, + "right_line": 1551 + }, + { + "left_line": 1552, + "right_line": 1552 + }, + { + "left_line": 1553, + "right_line": 1553 + }, + { + "left_line": 1554, + "right_line": 1554 + }, + { + "left_line": 1555, + "right_line": 1555 + }, + { + "left_line": 1556, + "right_line": 1556 + }, + { + "left_line": 1557, + "right_line": 1557 + }, + { + "left_line": 1558, + "right_line": 1558 + }, + { + "left_line": 1559, + "right_line": 1559 + }, + { + "left_line": 1560, + "right_line": 1560 + }, + { + "left_line": 1561, + "right_line": 1561 + }, + { + "left_line": 1562, + "right_line": 1562 + }, + { + "left_line": 1563, + "right_line": 1563 + }, + { + "left_line": 1564, + "right_line": 1564 + }, + { + "left_line": 1565, + "right_line": 1565 + }, + { + "left_line": 1566, + "right_line": 1566 + }, + { + "left_line": 1567, + "right_line": 1567 + }, + { + "left_line": 1568, + "right_line": 1568 + }, + { + "left_line": 1569, + "right_line": 1569 + }, + { + "left_line": 1570, + "right_line": 1570 + }, + { + "left_line": 1571, + "right_line": 1571 + }, + { + "left_line": 1572, + "right_line": 1572 + }, + { + "left_line": 1573, + "right_line": 1573 + }, + { + "left_line": 1574, + "right_line": 1574 + }, + { + "left_line": 1575, + "right_line": 1575 + }, + { + "left_line": 1576, + "right_line": 1576 + }, + { + "left_line": 1577, + "right_line": 1577 + }, + { + "left_line": 1578, + "right_line": 1578 + }, + { + "left_line": 1579, + "right_line": 1579 + }, + { + "left_line": 1580, + "right_line": 1580 + }, + { + "left_line": 1581, + "right_line": 1581 + }, + { + "left_line": 1582, + "right_line": 1582 + }, + { + "left_line": 1583, + "right_line": 1583 + }, + { + "left_line": 1584, + "right_line": 1584 + }, + { + "left_line": 1585, + "right_line": 1585 + }, + { + "left_line": 1586, + "right_line": 1586 + }, + { + "left_line": 1587, + "right_line": 1587 + }, + { + "left_line": 1588, + "right_line": 1588 + }, + { + "left_line": 1589, + "right_line": 1589 + }, + { + "left_line": 1590, + "right_line": 1590 + }, + { + "left_line": 1591, + "right_line": 1591 + }, + { + "left_line": 1592, + "right_line": 1592 + }, + { + "left_line": 1593, + "right_line": 1593 + }, + { + "left_line": 1594, + "right_line": 1594 + }, + { + "left_line": 1595, + "right_line": 1595 + }, + { + "left_line": 1596, + "right_line": 1596 + }, + { + "left_line": 1597, + "right_line": 1597 + }, + { + "left_line": 1598, + "right_line": 1598 + }, + { + "left_line": 1599, + "right_line": 1599 + }, + { + "left_line": 1600, + "right_line": 1600 + }, + { + "left_line": 1601, + "right_line": 1601 + }, + { + "left_line": 1602, + "right_line": 1602 + }, + { + "left_line": 1603, + "right_line": 1603 + }, + { + "left_line": 1604, + "right_line": 1604 + }, + { + "left_line": 1605, + "right_line": 1605 + }, + { + "left_line": 1606, + "right_line": 1606 + }, + { + "left_line": 1607, + "right_line": 1607 + }, + { + "left_line": 1608, + "right_line": 1608 + }, + { + "left_line": 1609, + "right_line": 1609 + }, + { + "left_line": 1610, + "right_line": 1610 + }, + { + "left_line": 1611, + "right_line": 1611 + }, + { + "left_line": 1612, + "right_line": 1612 + }, + { + "left_line": 1613, + "right_line": 1613 + }, + { + "left_line": 1614, + "right_line": 1614 + }, + { + "left_line": 1615, + "right_line": 1615 + }, + { + "left_line": 1616, + "right_line": 1616 + }, + { + "left_line": 1617, + "right_line": 1617 + }, + { + "left_line": 1618, + "right_line": 1618 + }, + { + "left_line": 1619, + "right_line": 1619 + }, + { + "left_line": 1620, + "right_line": 1620 + }, + { + "left_line": 1621, + "right_line": 1621 + }, + { + "left_line": 1622, + "right_line": 1622 + }, + { + "left_line": 1623, + "right_line": 1623 + }, + { + "left_line": 1624, + "right_line": 1624 + }, + { + "left_line": 1625, + "right_line": 1625 + }, + { + "left_line": 1626, + "right_line": 1626 + }, + { + "left_line": 1627, + "right_line": 1627 + }, + { + "left_line": 1628, + "right_line": 1628 + }, + { + "left_line": 1629, + "right_line": 1629 + }, + { + "left_line": 1630, + "right_line": 1630 + }, + { + "left_line": 1631, + "right_line": 1631 + }, + { + "left_line": 1632, + "right_line": 1632 + }, + { + "left_line": 1633, + "right_line": 1633 + }, + { + "left_line": 1634, + "right_line": 1634 + }, + { + "left_line": 1635, + "right_line": 1635 + }, + { + "left_line": 1636, + "right_line": 1636 + }, + { + "left_line": 1637, + "right_line": 1637 + }, + { + "left_line": 1638, + "right_line": 1638 + }, + { + "left_line": 1639, + "right_line": 1639 + }, + { + "left_line": 1640, + "right_line": 1640 + }, + { + "left_line": 1641, + "right_line": 1641 + }, + { + "left_line": 1642, + "right_line": 1642 + }, + { + "left_line": 1643, + "right_line": 1643 + }, + { + "left_line": 1644, + "right_line": 1644 + }, + { + "left_line": 1645, + "right_line": 1645 + }, + { + "left_line": 1646, + "right_line": 1646 + }, + { + "left_line": 1647, + "right_line": 1647 + }, + { + "left_line": 1648, + "right_line": 1648 + }, + { + "left_line": 1649, + "right_line": 1649 + }, + { + "left_line": 1650, + "right_line": 1650 + }, + { + "left_line": 1651, + "right_line": 1651 + }, + { + "left_line": 1652, + "right_line": 1652 + }, + { + "left_line": 1653, + "right_line": 1653 + }, + { + "left_line": 1654, + "right_line": 1654 + }, + { + "left_line": 1655, + "right_line": 1655 + }, + { + "left_line": 1656, + "right_line": 1656 + }, + { + "left_line": 1657, + "right_line": 1657 + }, + { + "left_line": 1658, + "right_line": 1658 + }, + { + "left_line": 1659, + "right_line": 1659 + }, + { + "left_line": 1660, + "right_line": 1660 + }, + { + "left_line": 1661, + "right_line": 1661 + }, + { + "left_line": 1662, + "right_line": 1662 + }, + { + "left_line": 1663, + "right_line": 1663 + }, + { + "left_line": 1664, + "right_line": 1664 + }, + { + "left_line": 1665, + "right_line": 1665 + }, + { + "left_line": 1666, + "right_line": 1666 + }, + { + "left_line": 1667, + "right_line": 1667 + }, + { + "left_line": 1668, + "right_line": 1668 + }, + { + "left_line": 1669, + "right_line": 1669 + }, + { + "left_line": 1670, + "right_line": 1670 + }, + { + "left_line": 1671, + "right_line": 1671 + }, + { + "left_line": 1672, + "right_line": 1672 + }, + { + "left_line": 1673, + "right_line": 1673 + }, + { + "left_line": 1674, + "right_line": 1674 + }, + { + "left_line": 1675, + "right_line": 1675 + }, + { + "left_line": 1676, + "right_line": 1676 + }, + { + "left_line": 1677, + "right_line": 1677 + }, + { + "left_line": 1678, + "right_line": 1678 + }, + { + "left_line": 1679, + "right_line": 1679 + }, + { + "left_line": 1680, + "right_line": 1680 + }, + { + "left_line": 1681, + "right_line": 1681 + }, + { + "left_line": 1682, + "right_line": 1682 + }, + { + "left_line": 1683, + "right_line": 1683 + }, + { + "left_line": 1684, + "right_line": 1684 + }, + { + "left_line": 1685, + "right_line": 1685 + }, + { + "left_line": 1686, + "right_line": 1686 + }, + { + "left_line": 1687, + "right_line": 1687 + }, + { + "left_line": 1688, + "right_line": 1688 + }, + { + "left_line": 1689, + "right_line": 1689 + }, + { + "left_line": 1690, + "right_line": 1690 + }, + { + "left_line": 1691, + "right_line": 1691 + }, + { + "left_line": 1692, + "right_line": 1692 + }, + { + "left_line": 1693, + "right_line": 1693 + }, + { + "left_line": 1694, + "right_line": 1694 + }, + { + "left_line": 1695, + "right_line": 1695 + }, + { + "left_line": 1696, + "right_line": 1696 + }, + { + "left_line": 1697, + "right_line": 1697 + }, + { + "left_line": 1698, + "right_line": 1698 + }, + { + "left_line": 1699, + "right_line": 1699 + }, + { + "left_line": 1700, + "right_line": 1700 + }, + { + "left_line": 1701, + "right_line": 1701 + }, + { + "left_line": 1702, + "right_line": 1702 + }, + { + "left_line": 1703, + "right_line": 1703 + }, + { + "left_line": 1704, + "right_line": 1704 + }, + { + "left_line": 1705, + "right_line": 1705 + }, + { + "left_line": 1706, + "right_line": 1706 + }, + { + "left_line": 1707, + "right_line": 1707 + }, + { + "left_line": 1708, + "right_line": 1708 + }, + { + "left_line": 1709, + "right_line": 1709 + }, + { + "left_line": 1710, + "right_line": 1710 + }, + { + "left_line": 1711, + "right_line": 1711 + }, + { + "left_line": 1712, + "right_line": 1712 + }, + { + "left_line": 1713, + "right_line": 1713 + }, + { + "left_line": 1714, + "right_line": 1714 + }, + { + "left_line": 1715, + "right_line": 1715 + }, + { + "left_line": 1716, + "right_line": 1716 + }, + { + "left_line": 1717, + "right_line": 1717 + }, + { + "left_line": 1718, + "right_line": 1718 + }, + { + "left_line": 1719, + "right_line": 1719 + }, + { + "left_line": 1720, + "right_line": 1720 + }, + { + "left_line": 1721, + "right_line": 1721 + }, + { + "left_line": 1722, + "right_line": 1722 + }, + { + "left_line": 1723, + "right_line": 1723 + }, + { + "left_line": 1724, + "right_line": 1724 + }, + { + "left_line": 1725, + "right_line": 1725 + }, + { + "left_line": 1726, + "right_line": 1726 + }, + { + "left_line": 1727, + "right_line": 1727 + }, + { + "left_line": 1728, + "right_line": 1728 + }, + { + "left_line": 1729, + "right_line": 1729 + }, + { + "left_line": 1730, + "right_line": 1730 + }, + { + "left_line": 1731, + "right_line": 1731 + }, + { + "left_line": 1732, + "right_line": 1732 + }, + { + "left_line": 1733, + "right_line": 1733 + }, + { + "left_line": 1734, + "right_line": 1734 + }, + { + "left_line": 1735, + "right_line": 1735 + }, + { + "left_line": 1736, + "right_line": 1736 + }, + { + "left_line": 1737, + "right_line": 1737 + }, + { + "left_line": 1738, + "right_line": 1738 + }, + { + "left_line": 1739, + "right_line": 1739 + }, + { + "left_line": 1740, + "right_line": 1740 + }, + { + "left_line": 1741, + "right_line": 1741 + }, + { + "left_line": 1742, + "right_line": 1742 + }, + { + "left_line": 1743, + "right_line": 1743 + }, + { + "left_line": 1744, + "right_line": 1744 + }, + { + "left_line": 1745, + "right_line": 1745 + }, + { + "left_line": 1746, + "right_line": 1746 + }, + { + "left_line": 1747, + "right_line": 1747 + }, + { + "left_line": 1748, + "right_line": 1748 + }, + { + "left_line": 1749, + "right_line": 1749 + }, + { + "left_line": 1750, + "right_line": 1750 + }, + { + "left_line": 1751, + "right_line": 1751 + }, + { + "left_line": 1752, + "right_line": 1752 + }, + { + "left_line": 1753, + "right_line": 1753 + }, + { + "left_line": 1754, + "right_line": 1754 + }, + { + "left_line": 1755, + "right_line": 1755 + }, + { + "left_line": 1756, + "right_line": 1756 + }, + { + "left_line": 1757, + "right_line": 1757 + }, + { + "left_line": 1758, + "right_line": 1758 + }, + { + "left_line": 1759, + "right_line": 1759 + }, + { + "left_line": 1760, + "right_line": 1760 + }, + { + "left_line": 1761, + "right_line": 1761 + }, + { + "left_line": 1762, + "right_line": 1762 + }, + { + "left_line": 1763, + "right_line": 1763 + }, + { + "left_line": 1764, + "right_line": 1764 + }, + { + "left_line": 1765, + "right_line": 1765 + }, + { + "left_line": 1766, + "right_line": 1766 + }, + { + "left_line": 1767, + "right_line": 1767 + }, + { + "left_line": 1768, + "right_line": 1768 + }, + { + "left_line": 1769, + "right_line": 1769 + }, + { + "left_line": 1770, + "right_line": 1770 + }, + { + "left_line": 1771, + "right_line": 1771 + }, + { + "left_line": 1772, + "right_line": 1772 + }, + { + "left_line": 1773, + "right_line": 1773 + }, + { + "left_line": 1774, + "right_line": 1774 + }, + { + "left_line": 1775, + "right_line": 1775 + }, + { + "left_line": 1776, + "right_line": 1776 + }, + { + "left_line": 1777, + "right_line": 1777 + }, + { + "left_line": 1778, + "right_line": 1778 + }, + { + "left_line": 1779, + "right_line": 1779 + }, + { + "left_line": 1780, + "right_line": 1780 + }, + { + "left_line": 1781, + "right_line": 1781 + }, + { + "left_line": 1782, + "right_line": 1782 + }, + { + "left_line": 1783, + "right_line": 1783 + }, + { + "left_line": 1784, + "right_line": 1784 + }, + { + "left_line": 1785, + "right_line": 1785 + }, + { + "left_line": 1786, + "right_line": 1786 + }, + { + "left_line": 1787, + "right_line": 1787 + }, + { + "left_line": 1788, + "right_line": 1788 + }, + { + "left_line": 1789, + "right_line": 1789 + }, + { + "left_line": 1790, + "right_line": 1790 + }, + { + "left_line": 1791, + "right_line": 1791 + }, + { + "left_line": 1792, + "right_line": 1792 + }, + { + "left_line": 1793, + "right_line": 1793 + }, + { + "left_line": 1794, + "right_line": 1794 + }, + { + "left_line": 1795, + "right_line": 1795 + }, + { + "left_line": 1796, + "right_line": 1796 + }, + { + "left_line": 1797, + "right_line": 1797 + }, + { + "left_line": 1798, + "right_line": 1798 + }, + { + "left_line": 1799, + "right_line": 1799 + }, + { + "left_line": 1800, + "right_line": 1800 + }, + { + "left_line": 1801, + "right_line": 1801 + }, + { + "left_line": 1802, + "right_line": 1802 + }, + { + "left_line": 1803, + "right_line": 1803 + }, + { + "left_line": 1804, + "right_line": 1804 + }, + { + "left_line": 1805, + "right_line": 1805 + }, + { + "left_line": 1806, + "right_line": 1806 + }, + { + "left_line": 1807, + "right_line": 1807 + }, + { + "left_line": 1808, + "right_line": 1808 + }, + { + "left_line": 1809, + "right_line": 1809 + }, + { + "left_line": 1810, + "right_line": 1810 + }, + { + "left_line": 1811, + "right_line": 1811 + }, + { + "left_line": 1812, + "right_line": 1812 + }, + { + "left_line": 1813, + "right_line": 1813 + }, + { + "left_line": 1814, + "right_line": 1814 + }, + { + "left_line": 1815, + "right_line": 1815 + }, + { + "left_line": 1816, + "right_line": 1816 + }, + { + "left_line": 1817, + "right_line": 1817 + }, + { + "left_line": 1818, + "right_line": 1818 + }, + { + "left_line": 1819, + "right_line": 1819 + }, + { + "left_line": 1820, + "right_line": 1820 + }, + { + "left_line": 1821, + "right_line": 1821 + }, + { + "left_line": 1822, + "right_line": 1822 + }, + { + "left_line": 1823, + "right_line": 1823 + }, + { + "left_line": 1824, + "right_line": 1824 + }, + { + "left_line": 1825, + "right_line": 1825 + }, + { + "left_line": 1826, + "right_line": 1826 + }, + { + "left_line": 1827, + "right_line": 1827 + }, + { + "left_line": 1828, + "right_line": 1828 + }, + { + "left_line": 1829, + "right_line": 1829 + }, + { + "left_line": 1830, + "right_line": 1830 + }, + { + "left_line": 1831, + "right_line": 1831 + }, + { + "left_line": 1832, + "right_line": 1832 + }, + { + "left_line": 1833, + "right_line": 1833 + }, + { + "left_line": 1834, + "right_line": 1834 + }, + { + "left_line": 1835, + "right_line": 1835 + }, + { + "left_line": 1836, + "right_line": 1836 + }, + { + "left_line": 1837, + "right_line": 1837 + }, + { + "left_line": 1838, + "right_line": 1838 + }, + { + "left_line": 1839, + "right_line": 1839 + }, + { + "left_line": 1840, + "right_line": 1840 + }, + { + "left_line": 1841, + "right_line": 1841 + }, + { + "left_line": 1842, + "right_line": 1842 + }, + { + "left_line": 1843, + "right_line": 1843 + }, + { + "left_line": 1844, + "right_line": 1844 + }, + { + "left_line": 1845, + "right_line": 1845 + }, + { + "left_line": 1846, + "right_line": 1846 + }, + { + "left_line": 1847, + "right_line": 1847 + }, + { + "left_line": 1848, + "right_line": 1848 + }, + { + "left_line": 1849, + "right_line": 1849 + }, + { + "left_line": 1850, + "right_line": 1850 + }, + { + "left_line": 1851, + "right_line": 1851 + }, + { + "left_line": 1852, + "right_line": 1852 + }, + { + "left_line": 1853, + "right_line": 1853 + }, + { + "left_line": 1854, + "right_line": 1854 + }, + { + "left_line": 1855, + "right_line": 1855 + }, + { + "left_line": 1856, + "right_line": 1856 + }, + { + "left_line": 1857, + "right_line": 1857 + }, + { + "left_line": 1858, + "right_line": 1858 + }, + { + "left_line": 1859, + "right_line": 1859 + }, + { + "left_line": 1860, + "right_line": 1860 + }, + { + "left_line": 1861, + "right_line": 1861 + }, + { + "left_line": 1862, + "right_line": 1862 + }, + { + "left_line": 1863, + "right_line": 1863 + }, + { + "left_line": 1864, + "right_line": 1864 + }, + { + "left_line": 1865, + "right_line": 1865 + }, + { + "left_line": 1866, + "right_line": 1866 + }, + { + "left_line": 1867, + "right_line": 1867 + }, + { + "left_line": 1868, + "right_line": 1868 + }, + { + "left_line": 1869, + "right_line": 1869 + }, + { + "left_line": 1870, + "right_line": 1870 + }, + { + "left_line": 1871, + "right_line": 1871 + }, + { + "left_line": 1872, + "right_line": 1872 + }, + { + "left_line": 1873, + "right_line": 1873 + }, + { + "left_line": 1874, + "right_line": 1874 + }, + { + "left_line": 1875, + "right_line": 1875 + }, + { + "left_line": 1876, + "right_line": 1876 + }, + { + "left_line": 1877, + "right_line": 1877 + }, + { + "left_line": 1878, + "right_line": 1878 + }, + { + "left_line": 1879, + "right_line": 1879 + }, + { + "left_line": 1880, + "right_line": 1880 + }, + { + "left_line": 1881, + "right_line": 1881 + }, + { + "left_line": 1882, + "right_line": 1882 + }, + { + "left_line": 1883, + "right_line": 1883 + }, + { + "left_line": 1884, + "right_line": 1884 + }, + { + "left_line": 1885, + "right_line": 1885 + }, + { + "left_line": 1886, + "right_line": 1886 + }, + { + "left_line": 1887, + "right_line": 1887 + }, + { + "left_line": 1888, + "right_line": 1888 + }, + { + "left_line": 1889, + "right_line": 1889 + }, + { + "left_line": 1890, + "right_line": 1890 + }, + { + "left_line": 1891, + "right_line": 1891 + }, + { + "left_line": 1892, + "right_line": 1892 + }, + { + "left_line": 1893, + "right_line": 1893 + }, + { + "left_line": 1894, + "right_line": 1894 + }, + { + "left_line": 1895, + "right_line": 1895 + }, + { + "left_line": 1896, + "right_line": 1896 + }, + { + "left_line": 1897, + "right_line": 1897 + }, + { + "left_line": 1898, + "right_line": 1898 + }, + { + "left_line": 1899, + "right_line": 1899 + }, + { + "left_line": 1900, + "right_line": 1900 + }, + { + "left_line": 1901, + "right_line": 1901 + }, + { + "left_line": 1902, + "right_line": 1902 + }, + { + "left_line": 1903, + "right_line": 1903 + }, + { + "left_line": 1904, + "right_line": 1904 + }, + { + "left_line": 1905, + "right_line": 1905 + }, + { + "left_line": 1906, + "right_line": 1906 + }, + { + "left_line": 1907, + "right_line": 1907 + }, + { + "left_line": 1908, + "right_line": 1908 + }, + { + "left_line": 1909, + "right_line": 1909 + }, + { + "left_line": 1910, + "right_line": 1910 + }, + { + "left_line": 1911, + "right_line": 1911 + }, + { + "left_line": 1912, + "right_line": 1912 + }, + { + "left_line": 1913, + "right_line": 1913 + }, + { + "left_line": 1914, + "right_line": 1914 + }, + { + "left_line": 1915, + "right_line": 1915 + }, + { + "left_line": 1916, + "right_line": 1916 + }, + { + "left_line": 1917, + "right_line": 1917 + }, + { + "left_line": 1918, + "right_line": 1918 + }, + { + "left_line": 1919, + "right_line": 1919 + }, + { + "left_line": 1920, + "right_line": 1920 + }, + { + "left_line": 1921, + "right_line": 1921 + }, + { + "left_line": 1922, + "right_line": 1922 + }, + { + "left_line": 1923, + "right_line": 1923 + }, + { + "left_line": 1924, + "right_line": 1924 + }, + { + "left_line": 1925, + "right_line": 1925 + }, + { + "left_line": 1926, + "right_line": 1926 + }, + { + "left_line": 1927, + "right_line": 1927 + }, + { + "left_line": 1928, + "right_line": 1928 + }, + { + "left_line": 1929, + "right_line": 1929 + }, + { + "left_line": 1930, + "right_line": 1930 + }, + { + "left_line": 1931, + "right_line": 1931 + }, + { + "left_line": 1932, + "right_line": 1932 + }, + { + "left_line": 1933, + "right_line": 1933 + }, + { + "left_line": 1934, + "right_line": 1934 + }, + { + "left_line": 1935, + "right_line": 1935 + }, + { + "left_line": 1936, + "right_line": 1936 + }, + { + "left_line": 1937, + "right_line": 1937 + }, + { + "left_line": 1938, + "right_line": 1938 + }, + { + "left_line": 1939, + "right_line": 1939 + }, + { + "left_line": 1940, + "right_line": 1940 + }, + { + "left_line": 1941, + "right_line": 1941 + }, + { + "left_line": 1942, + "right_line": 1942 + }, + { + "left_line": 1943, + "right_line": 1943 + }, + { + "left_line": 1944, + "right_line": 1944 + }, + { + "left_line": 1945, + "right_line": 1945 + }, + { + "left_line": 1946, + "right_line": 1946 + }, + { + "left_line": 1947, + "right_line": 1947 + }, + { + "left_line": 1948, + "right_line": 1948 + }, + { + "left_line": 1949, + "right_line": 1949 + }, + { + "left_line": 1950, + "right_line": 1950 + }, + { + "left_line": 1951, + "right_line": 1951 + }, + { + "left_line": 1952, + "right_line": 1952 + }, + { + "left_line": 1953, + "right_line": 1953 + }, + { + "left_line": 1954, + "right_line": 1954 + }, + { + "left_line": 1955, + "right_line": 1955 + }, + { + "left_line": 1956, + "right_line": 1956 + }, + { + "left_line": 1957, + "right_line": 1957 + }, + { + "left_line": 1958, + "right_line": 1958 + }, + { + "left_line": 1959, + "right_line": 1959 + }, + { + "left_line": 1960, + "right_line": 1960 + }, + { + "left_line": 1961, + "right_line": 1961 + }, + { + "left_line": 1962, + "right_line": 1962 + }, + { + "left_line": 1963, + "right_line": 1963 + }, + { + "left_line": 1964, + "right_line": 1964 + }, + { + "left_line": 1965, + "right_line": 1965 + }, + { + "left_line": 1966, + "right_line": 1966 + }, + { + "left_line": 1967, + "right_line": 1967 + }, + { + "left_line": 1968, + "right_line": 1968 + }, + { + "left_line": 1969, + "right_line": 1969 + }, + { + "left_line": 1970, + "right_line": 1970 + }, + { + "left_line": 1971, + "right_line": 1971 + }, + { + "left_line": 1972, + "right_line": 1972 + }, + { + "left_line": 1973, + "right_line": 1973 + }, + { + "left_line": 1974, + "right_line": 1974 + }, + { + "left_line": 1975, + "right_line": 1975 + }, + { + "left_line": 1976, + "right_line": 1976 + }, + { + "left_line": 1977, + "right_line": 1977 + }, + { + "left_line": 1978, + "right_line": 1978 + }, + { + "left_line": 1979, + "right_line": 1979 + }, + { + "left_line": 1980, + "right_line": 1980 + }, + { + "left_line": 1981, + "right_line": 1981 + }, + { + "left_line": 1982, + "right_line": 1982 + }, + { + "left_line": 1983, + "right_line": 1983 + }, + { + "left_line": 1984, + "right_line": 1984 + }, + { + "left_line": 1985, + "right_line": 1985 + }, + { + "left_line": 1986, + "right_line": 1986 + }, + { + "left_line": 1987, + "right_line": 1987 + }, + { + "left_line": 1988, + "right_line": 1988 + }, + { + "left_line": 1989, + "right_line": 1989 + }, + { + "left_line": 1990, + "right_line": 1990 + }, + { + "left_line": 1991, + "right_line": 1991 + }, + { + "left_line": 1992, + "right_line": 1992 + }, + { + "left_line": 1993, + "right_line": 1993 + }, + { + "left_line": 1994, + "right_line": 1994 + }, + { + "left_line": 1995, + "right_line": 1995 + }, + { + "left_line": 1996, + "right_line": 1996 + }, + { + "left_line": 1997, + "right_line": 1997 + }, + { + "left_line": 1998, + "right_line": 1998 + }, + { + "left_line": 1999, + "right_line": 1999 + }, + { + "left_line": 2000, + "right_line": 2000 + }, + { + "left_line": 2001, + "right_line": 2001 + }, + { + "left_line": 2002, + "right_line": 2002 + }, + { + "left_line": 2003, + "right_line": 2003 + }, + { + "left_line": 2004, + "right_line": 2004 + }, + { + "left_line": 2005, + "right_line": 2005 + }, + { + "left_line": 2006, + "right_line": 2006 + }, + { + "left_line": 2007, + "right_line": 2007 + }, + { + "left_line": 2008, + "right_line": 2008 + }, + { + "left_line": 2009, + "right_line": 2009 + }, + { + "left_line": 2010, + "right_line": 2010 + }, + { + "left_line": 2011, + "right_line": 2011 + }, + { + "left_line": 2012, + "right_line": 2012 + }, + { + "left_line": 2013, + "right_line": 2013 + }, + { + "left_line": 2014, + "right_line": 2014 + }, + { + "left_line": 2015, + "right_line": 2015 + }, + { + "left_line": 2016, + "right_line": 2016 + }, + { + "left_line": 2017, + "right_line": 2017 + }, + { + "left_line": 2018, + "right_line": 2018 + }, + { + "left_line": 2019, + "right_line": 2019 + }, + { + "left_line": 2020, + "right_line": 2020 + }, + { + "left_line": 2021, + "right_line": 2021 + }, + { + "left_line": 2022, + "right_line": 2022 + }, + { + "left_line": 2023, + "right_line": 2023 + }, + { + "left_line": 2024, + "right_line": 2024 + }, + { + "left_line": 2025, + "right_line": 2025 + }, + { + "left_line": 2026, + "right_line": 2026 + }, + { + "left_line": 2027, + "right_line": 2027 + }, + { + "left_line": 2028, + "right_line": 2028 + }, + { + "left_line": 2029, + "right_line": 2029 + }, + { + "left_line": 2030, + "right_line": 2030 + }, + { + "left_line": 2031, + "right_line": 2031 + }, + { + "left_line": 2032, + "right_line": 2032 + }, + { + "left_line": 2033, + "right_line": 2033 + }, + { + "left_line": 2034, + "right_line": 2034 + }, + { + "left_line": 2035, + "right_line": 2035 + }, + { + "left_line": 2036, + "right_line": 2036 + }, + { + "left_line": 2037, + "right_line": 2037 + }, + { + "left_line": 2038, + "right_line": 2038 + }, + { + "left_line": 2039, + "right_line": 2039 + }, + { + "left_line": 2040, + "right_line": 2040 + }, + { + "left_line": 2041, + "right_line": 2041 + }, + { + "left_line": 2042, + "right_line": 2042 + }, + { + "left_line": 2043, + "right_line": 2043 + }, + { + "left_line": 2044, + "right_line": 2044 + }, + { + "left_line": 2045, + "right_line": 2045 + }, + { + "left_line": 2046, + "right_line": 2046 + }, + { + "left_line": 2047, + "right_line": 2047 + }, + { + "left_line": 2048, + "right_line": 2048 + }, + { + "left_line": 2049, + "right_line": 2049 + }, + { + "left_line": 2050, + "right_line": 2050 + }, + { + "left_line": 2051, + "right_line": 2051 + }, + { + "left_line": 2052, + "right_line": 2052 + }, + { + "left_line": 2053, + "right_line": 2053 + }, + { + "left_line": 2054, + "right_line": 2054 + }, + { + "left_line": 2055, + "right_line": 2055 + }, + { + "left_line": 2056, + "right_line": 2056 + }, + { + "left_line": 2057, + "right_line": 2057 + }, + { + "left_line": 2058, + "right_line": 2058 + }, + { + "left_line": 2059, + "right_line": 2059 + }, + { + "left_line": 2060, + "right_line": 2060 + }, + { + "left_line": 2061, + "right_line": 2061 + }, + { + "left_line": 2062, + "right_line": 2062 + }, + { + "left_line": 2063, + "right_line": 2063 + }, + { + "left_line": 2064, + "right_line": 2064 + }, + { + "left_line": 2065, + "right_line": 2065 + }, + { + "left_line": 2066, + "right_line": 2066 + }, + { + "left_line": 2067, + "right_line": 2067 + }, + { + "left_line": 2068, + "right_line": 2068 + }, + { + "left_line": 2069, + "right_line": 2069 + }, + { + "left_line": 2070, + "right_line": 2070 + }, + { + "left_line": 2071, + "right_line": 2071 + }, + { + "left_line": 2072, + "right_line": 2072 + }, + { + "left_line": 2073, + "right_line": 2073 + }, + { + "left_line": 2074, + "right_line": 2074 + }, + { + "left_line": 2075, + "right_line": 2075 + }, + { + "left_line": 2076, + "right_line": 2076 + }, + { + "left_line": 2077, + "right_line": 2077 + }, + { + "left_line": 2078, + "right_line": 2078 + }, + { + "left_line": 2079, + "right_line": 2079 + }, + { + "left_line": 2080, + "right_line": 2080 + }, + { + "left_line": 2081, + "right_line": 2081 + }, + { + "left_line": 2082, + "right_line": 2082 + }, + { + "left_line": 2083, + "right_line": 2083 + }, + { + "left_line": 2084, + "right_line": 2084 + }, + { + "left_line": 2085, + "right_line": 2085 + }, + { + "left_line": 2086, + "right_line": 2086 + }, + { + "left_line": 2087, + "right_line": 2087 + }, + { + "left_line": 2088, + "right_line": 2088 + }, + { + "left_line": 2089, + "right_line": 2089 + }, + { + "left_line": 2090, + "right_line": 2090 + }, + { + "left_line": 2091, + "right_line": 2091 + }, + { + "left_line": 2092, + "right_line": 2092 + }, + { + "left_line": 2093, + "right_line": 2093 + }, + { + "left_line": 2094, + "right_line": 2094 + }, + { + "left_line": 2095, + "right_line": 2095 + }, + { + "left_line": 2096, + "right_line": 2096 + }, + { + "left_line": 2097, + "right_line": 2097 + }, + { + "left_line": 2098, + "right_line": 2098 + }, + { + "left_line": 2099, + "right_line": 2099 + }, + { + "left_line": 2100, + "right_line": 2100 + }, + { + "left_line": 2101, + "right_line": 2101 + }, + { + "left_line": 2102, + "right_line": 2102 + }, + { + "left_line": 2103, + "right_line": 2103 + }, + { + "left_line": 2104, + "right_line": 2104 + }, + { + "left_line": 2105, + "right_line": 2105 + }, + { + "left_line": 2106, + "right_line": 2106 + }, + { + "left_line": 2107, + "right_line": 2107 + }, + { + "left_line": 2108, + "right_line": 2108 + }, + { + "left_line": 2109, + "right_line": 2109 + }, + { + "left_line": 2110, + "right_line": 2110 + }, + { + "left_line": 2111, + "right_line": 2111 + }, + { + "left_line": 2112, + "right_line": 2112 + }, + { + "left_line": 2113, + "right_line": 2113 + }, + { + "left_line": 2114, + "right_line": 2114 + }, + { + "left_line": 2115, + "right_line": 2115 + }, + { + "left_line": 2116, + "right_line": 2116 + }, + { + "left_line": 2117, + "right_line": 2117 + }, + { + "left_line": 2118, + "right_line": 2118 + }, + { + "left_line": 2119, + "right_line": 2119 + }, + { + "left_line": 2120, + "right_line": 2120 + }, + { + "left_line": 2121, + "right_line": 2121 + }, + { + "left_line": 2122, + "right_line": 2122 + }, + { + "left_line": 2123, + "right_line": 2123 + }, + { + "left_line": 2124, + "right_line": 2124 + }, + { + "left_line": 2125, + "right_line": 2125 + }, + { + "left_line": 2126, + "right_line": 2126 + }, + { + "left_line": 2127, + "right_line": 2127 + }, + { + "left_line": 2128, + "right_line": 2128 + }, + { + "left_line": 2129, + "right_line": 2129 + }, + { + "left_line": 2130, + "right_line": 2130 + }, + { + "left_line": 2131, + "right_line": 2131 + }, + { + "left_line": 2132, + "right_line": 2132 + }, + { + "left_line": 2133, + "right_line": 2133 + }, + { + "left_line": 2134, + "right_line": 2134 + }, + { + "left_line": 2135, + "right_line": 2135 + }, + { + "left_line": 2136, + "right_line": 2136 + }, + { + "left_line": 2137, + "right_line": 2137 + }, + { + "left_line": 2138, + "right_line": 2138 + }, + { + "left_line": 2139, + "right_line": 2139 + }, + { + "left_line": 2140, + "right_line": 2140 + }, + { + "left_line": 2141, + "right_line": 2141 + }, + { + "left_line": 2142, + "right_line": 2142 + }, + { + "left_line": 2143, + "right_line": 2143 + }, + { + "left_line": 2144, + "right_line": 2144 + }, + { + "left_line": 2145, + "right_line": 2145 + }, + { + "left_line": 2146, + "right_line": 2146 + }, + { + "left_line": 2147, + "right_line": 2147 + }, + { + "left_line": 2148, + "right_line": 2148 + }, + { + "left_line": 2149, + "right_line": 2149 + }, + { + "left_line": 2150, + "right_line": 2150 + }, + { + "left_line": 2151, + "right_line": 2151 + }, + { + "left_line": 2152, + "right_line": 2152 + }, + { + "left_line": 2153, + "right_line": 2153 + }, + { + "left_line": 2154, + "right_line": 2154 + }, + { + "left_line": 2155, + "right_line": 2155 + }, + { + "left_line": 2156, + "right_line": 2156 + }, + { + "left_line": 2157, + "right_line": 2157 + }, + { + "left_line": 2158, + "right_line": 2158 + }, + { + "left_line": 2159, + "right_line": 2159 + }, + { + "left_line": 2160, + "right_line": 2160 + }, + { + "left_line": 2161, + "right_line": 2161 + }, + { + "left_line": 2162, + "right_line": 2162 + }, + { + "left_line": 2163, + "right_line": 2163 + }, + { + "left_line": 2164, + "right_line": 2164 + }, + { + "left_line": 2165, + "right_line": 2165 + }, + { + "left_line": 2166, + "right_line": 2166 + }, + { + "left_line": 2167, + "right_line": 2167 + }, + { + "left_line": 2168, + "right_line": 2168 + }, + { + "left_line": 2169, + "right_line": 2169 + }, + { + "left_line": 2170, + "right_line": 2170 + }, + { + "left_line": 2171, + "right_line": 2171 + }, + { + "left_line": 2172, + "right_line": 2172 + }, + { + "left_line": 2173, + "right_line": 2173 + }, + { + "left_line": 2174, + "right_line": 2174 + }, + { + "left_line": 2175, + "right_line": 2175 + }, + { + "left_line": 2176, + "right_line": 2176 + }, + { + "left_line": 2177, + "right_line": 2177 + }, + { + "left_line": 2178, + "right_line": 2178 + }, + { + "left_line": 2179, + "right_line": 2179 + }, + { + "left_line": 2180, + "right_line": 2180 + }, + { + "left_line": 2181, + "right_line": 2181 + }, + { + "left_line": 2182, + "right_line": 2182 + }, + { + "left_line": 2183, + "right_line": 2183 + }, + { + "left_line": 2184, + "right_line": 2184 + }, + { + "left_line": 2185, + "right_line": 2185 + }, + { + "left_line": 2186, + "right_line": 2186 + }, + { + "left_line": 2187, + "right_line": 2187 + }, + { + "left_line": 2188, + "right_line": 2188 + }, + { + "left_line": 2189, + "right_line": 2189 + }, + { + "left_line": 2190, + "right_line": 2190 + }, + { + "left_line": 2191, + "right_line": 2191 + }, + { + "left_line": 2192, + "right_line": 2192 + }, + { + "left_line": 2193, + "right_line": 2193 + }, + { + "left_line": 2194, + "right_line": 2194 + }, + { + "left_line": 2195, + "right_line": 2195 + }, + { + "left_line": 2196, + "right_line": 2196 + }, + { + "left_line": 2197, + "right_line": 2197 + }, + { + "left_line": 2198, + "right_line": 2198 + }, + { + "left_line": 2199, + "right_line": 2199 + }, + { + "left_line": 2200, + "right_line": 2200 + }, + { + "left_line": 2201, + "right_line": 2201 + }, + { + "left_line": 2202, + "right_line": 2202 + }, + { + "left_line": 2203, + "right_line": 2203 + }, + { + "left_line": 2204, + "right_line": 2204 + }, + { + "left_line": 2205, + "right_line": 2205 + }, + { + "left_line": 2206, + "right_line": 2206 + }, + { + "left_line": 2207, + "right_line": 2207 + }, + { + "left_line": 2208, + "right_line": 2208 + }, + { + "left_line": 2209, + "right_line": 2209 + }, + { + "left_line": 2210, + "right_line": 2210 + }, + { + "left_line": 2211, + "right_line": 2211 + }, + { + "left_line": 2212, + "right_line": 2212 + }, + { + "left_line": 2213, + "right_line": 2213 + }, + { + "left_line": 2214, + "right_line": 2214 + }, + { + "left_line": 2215, + "right_line": 2215 + }, + { + "left_line": 2216, + "right_line": 2216 + }, + { + "left_line": 2217, + "right_line": 2217 + }, + { + "left_line": 2218, + "right_line": 2218 + }, + { + "left_line": 2219, + "right_line": 2219 + }, + { + "left_line": 2220, + "right_line": 2220 + }, + { + "left_line": 2221, + "right_line": 2221 + }, + { + "left_line": 2222, + "right_line": 2222 + }, + { + "left_line": 2223, + "right_line": 2223 + }, + { + "left_line": 2224, + "right_line": 2224 + }, + { + "left_line": 2225, + "right_line": 2225 + }, + { + "left_line": 2226, + "right_line": 2226 + }, + { + "left_line": 2227, + "right_line": 2227 + }, + { + "left_line": 2228, + "right_line": 2228 + }, + { + "left_line": 2229, + "right_line": 2229 + }, + { + "left_line": 2230, + "right_line": 2230 + }, + { + "left_line": 2231, + "right_line": 2231 + }, + { + "left_line": 2232, + "right_line": 2232 + }, + { + "left_line": 2233, + "right_line": 2233 + }, + { + "left_line": 2234, + "right_line": 2234 + }, + { + "left_line": 2235, + "right_line": 2235 + }, + { + "left_line": 2236, + "right_line": 2236 + }, + { + "left_line": 2237, + "right_line": 2237 + }, + { + "left_line": 2238, + "right_line": 2238 + }, + { + "left_line": 2239, + "right_line": 2239 + }, + { + "left_line": 2240, + "right_line": 2240 + }, + { + "left_line": 2241, + "right_line": 2241 + }, + { + "left_line": 2242, + "right_line": 2242 + }, + { + "left_line": 2243, + "right_line": 2243 + }, + { + "left_line": 2244, + "right_line": 2244 + }, + { + "left_line": 2245, + "right_line": 2245 + }, + { + "left_line": 2246, + "right_line": 2246 + }, + { + "left_line": 2247, + "right_line": 2247 + }, + { + "left_line": 2248, + "right_line": 2248 + }, + { + "left_line": 2249, + "right_line": 2249 + }, + { + "left_line": 2250, + "right_line": 2250 + }, + { + "left_line": 2251, + "right_line": 2251 + }, + { + "left_line": 2252, + "right_line": 2252 + }, + { + "left_line": 2253, + "right_line": 2253 + }, + { + "left_line": 2254, + "right_line": 2254 + }, + { + "left_line": 2255, + "right_line": 2255 + }, + { + "left_line": 2256, + "right_line": 2256 + }, + { + "left_line": 2257, + "right_line": 2257 + }, + { + "left_line": 2258, + "right_line": 2258 + }, + { + "left_line": 2259, + "right_line": 2259 + }, + { + "left_line": 2260, + "right_line": 2260 + }, + { + "left_line": 2261, + "right_line": 2261 + }, + { + "left_line": 2262, + "right_line": 2262 + }, + { + "left_line": 2263, + "right_line": 2263 + }, + { + "left_line": 2264, + "right_line": 2264 + }, + { + "left_line": 2265, + "right_line": 2265 + }, + { + "left_line": 2266, + "right_line": 2266 + }, + { + "left_line": 2267, + "right_line": 2267 + }, + { + "left_line": 2268, + "right_line": 2268 + }, + { + "left_line": 2269, + "right_line": 2269 + }, + { + "left_line": 2270, + "right_line": 2270 + }, + { + "left_line": 2271, + "right_line": 2271 + }, + { + "left_line": 2272, + "right_line": 2272 + }, + { + "left_line": 2273, + "right_line": 2273 + }, + { + "left_line": 2274, + "right_line": 2274 + }, + { + "left_line": 2275, + "right_line": 2275 + }, + { + "left_line": 2276, + "right_line": 2276 + }, + { + "left_line": 2277, + "right_line": 2277 + }, + { + "left_line": 2278, + "right_line": 2278 + }, + { + "left_line": 2279, + "right_line": 2279 + }, + { + "left_line": 2280, + "right_line": 2280 + }, + { + "left_line": 2281, + "right_line": 2281 + }, + { + "left_line": 2282, + "right_line": 2282 + }, + { + "left_line": 2283, + "right_line": 2283 + }, + { + "left_line": 2284, + "right_line": 2284 + }, + { + "left_line": 2285, + "right_line": 2285 + }, + { + "left_line": 2286, + "right_line": 2286 + }, + { + "left_line": 2287, + "right_line": 2287 + }, + { + "left_line": 2288, + "right_line": 2288 + }, + { + "left_line": 2289, + "right_line": 2289 + }, + { + "left_line": 2290, + "right_line": 2290 + }, + { + "left_line": 2291, + "right_line": 2291 + }, + { + "left_line": 2292, + "right_line": 2292 + }, + { + "left_line": 2293, + "right_line": 2293 + }, + { + "left_line": 2294, + "right_line": 2294 + }, + { + "left_line": 2295, + "right_line": 2295 + }, + { + "left_line": 2296, + "right_line": 2296 + }, + { + "left_line": 2297, + "right_line": 2297 + }, + { + "left_line": 2298, + "right_line": 2298 + }, + { + "left_line": 2299, + "right_line": 2299 + }, + { + "left_line": 2300, + "right_line": 2300 + }, + { + "left_line": 2301, + "right_line": 2301 + }, + { + "left_line": 2302, + "right_line": 2302 + }, + { + "left_line": 2303, + "right_line": 2303 + }, + { + "left_line": 2304, + "right_line": 2304 + }, + { + "left_line": 2305, + "right_line": 2305 + }, + { + "left_line": 2306, + "right_line": 2306 + }, + { + "left_line": 2307, + "right_line": 2307 + }, + { + "left_line": 2308, + "right_line": 2308 + }, + { + "left_line": 2309, + "right_line": 2309 + }, + { + "left_line": 2310, + "right_line": 2310 + }, + { + "left_line": 2311, + "right_line": 2311 + }, + { + "left_line": 2312, + "right_line": 2312 + }, + { + "left_line": 2313, + "right_line": 2313 + }, + { + "left_line": 2314, + "right_line": 2314 + }, + { + "left_line": 2315, + "right_line": 2315 + }, + { + "left_line": 2316, + "right_line": 2316 + }, + { + "left_line": 2317, + "right_line": 2317 + }, + { + "left_line": 2318, + "right_line": 2318 + }, + { + "left_line": 2319, + "right_line": 2319 + }, + { + "left_line": 2320, + "right_line": 2320 + }, + { + "left_line": 2321, + "right_line": 2321 + }, + { + "left_line": 2322, + "right_line": 2322 + }, + { + "left_line": 2323, + "right_line": 2323 + }, + { + "left_line": 2324, + "right_line": 2324 + }, + { + "left_line": 2325, + "right_line": 2325 + }, + { + "left_line": 2326, + "right_line": 2326 + }, + { + "left_line": 2327, + "right_line": 2327 + }, + { + "left_line": 2328, + "right_line": 2328 + }, + { + "left_line": 2329, + "right_line": 2329 + }, + { + "left_line": 2330, + "right_line": 2330 + }, + { + "left_line": 2331, + "right_line": 2331 + }, + { + "left_line": 2332, + "right_line": 2332 + }, + { + "left_line": 2333, + "right_line": 2333 + }, + { + "left_line": 2334, + "right_line": 2334 + }, + { + "left_line": 2335, + "right_line": 2335 + }, + { + "left_line": 2336, + "right_line": 2336 + }, + { + "left_line": 2337, + "right_line": 2337 + }, + { + "left_line": 2338, + "right_line": 2338 + }, + { + "left_line": 2339, + "right_line": 2339 + }, + { + "left_line": 2340, + "right_line": 2340 + }, + { + "left_line": 2341, + "right_line": 2341 + }, + { + "left_line": 2342, + "right_line": 2342 + }, + { + "left_line": 2343, + "right_line": 2343 + }, + { + "left_line": 2344, + "right_line": 2344 + }, + { + "left_line": 2345, + "right_line": 2345 + }, + { + "left_line": 2346, + "right_line": 2346 + }, + { + "left_line": 2347, + "right_line": 2347 + }, + { + "left_line": 2348, + "right_line": 2348 + }, + { + "left_line": 2349, + "right_line": 2349 + }, + { + "left_line": 2350, + "right_line": 2350 + }, + { + "left_line": 2351, + "right_line": 2351 + }, + { + "left_line": 2352, + "right_line": 2352 + }, + { + "left_line": 2353, + "right_line": 2353 + }, + { + "left_line": 2354, + "right_line": 2354 + }, + { + "left_line": 2355, + "right_line": 2355 + }, + { + "left_line": 2356, + "right_line": 2356 + }, + { + "left_line": 2357, + "right_line": 2357 + }, + { + "left_line": 2358, + "right_line": 2358 + }, + { + "left_line": 2359, + "right_line": 2359 + }, + { + "left_line": 2360, + "right_line": 2360 + }, + { + "left_line": 2361, + "right_line": 2361 + }, + { + "left_line": 2362, + "right_line": 2362 + }, + { + "left_line": 2363, + "right_line": 2363 + }, + { + "left_line": 2364, + "right_line": 2364 + }, + { + "left_line": 2365, + "right_line": 2365 + }, + { + "left_line": 2366, + "right_line": 2366 + }, + { + "left_line": 2367, + "right_line": 2367 + }, + { + "left_line": 2368, + "right_line": 2368 + }, + { + "left_line": 2369, + "right_line": 2369 + }, + { + "left_line": 2370, + "right_line": 2370 + }, + { + "left_line": 2371, + "right_line": 2371 + }, + { + "left_line": 2372, + "right_line": 2372 + }, + { + "left_line": 2373, + "right_line": 2373 + }, + { + "left_line": 2374, + "right_line": 2374 + }, + { + "left_line": 2375, + "right_line": 2375 + }, + { + "left_line": 2376, + "right_line": 2376 + }, + { + "left_line": 2377, + "right_line": 2377 + }, + { + "left_line": 2378, + "right_line": 2378 + }, + { + "left_line": 2379, + "right_line": 2379 + }, + { + "left_line": 2380, + "right_line": 2380 + }, + { + "left_line": 2381, + "right_line": 2381 + }, + { + "left_line": 2382, + "right_line": 2382 + }, + { + "left_line": 2383, + "right_line": 2383 + }, + { + "left_line": 2384, + "right_line": 2384 + }, + { + "left_line": 2385, + "right_line": 2385 + }, + { + "left_line": 2386, + "right_line": 2386 + }, + { + "left_line": 2387, + "right_line": 2387 + }, + { + "left_line": 2388, + "right_line": 2388 + }, + { + "left_line": 2389, + "right_line": 2389 + }, + { + "left_line": 2390, + "right_line": 2390 + }, + { + "left_line": 2391, + "right_line": 2391 + }, + { + "left_line": 2392, + "right_line": 2392 + }, + { + "left_line": 2393, + "right_line": 2393 + }, + { + "left_line": 2394, + "right_line": 2394 + }, + { + "left_line": 2395, + "right_line": 2395 + }, + { + "left_line": 2396, + "right_line": 2396 + }, + { + "left_line": 2397, + "right_line": 2397 + }, + { + "left_line": 2398, + "right_line": 2398 + }, + { + "left_line": 2399, + "right_line": 2399 + }, + { + "left_line": 2400, + "right_line": 2400 + }, + { + "left_line": 2401, + "right_line": 2401 + }, + { + "left_line": 2402, + "right_line": 2402 + }, + { + "left_line": 2403, + "right_line": 2403 + }, + { + "left_line": 2404, + "right_line": 2404 + }, + { + "left_line": 2405, + "right_line": 2405 + }, + { + "left_line": 2406, + "right_line": 2406 + }, + { + "left_line": 2407, + "right_line": 2407 + }, + { + "left_line": 2408, + "right_line": 2408 + }, + { + "left_line": 2409, + "right_line": 2409 + }, + { + "left_line": 2410, + "right_line": 2410 + }, + { + "left_line": 2411, + "right_line": 2411 + }, + { + "left_line": 2412, + "right_line": 2412 + }, + { + "left_line": 2413, + "right_line": 2413 + }, + { + "left_line": 2414, + "right_line": 2414 + }, + { + "left_line": 2415, + "right_line": 2415 + }, + { + "left_line": 2416, + "right_line": 2416 + }, + { + "left_line": 2417, + "right_line": 2417 + }, + { + "left_line": 2418, + "right_line": 2418 + }, + { + "left_line": 2419, + "right_line": 2419 + }, + { + "left_line": 2420, + "right_line": 2420 + }, + { + "left_line": 2421, + "right_line": 2421 + }, + { + "left_line": 2422, + "right_line": 2422 + }, + { + "left_line": 2423, + "right_line": 2423 + }, + { + "left_line": 2424, + "right_line": 2424 + }, + { + "left_line": 2425, + "right_line": 2425 + }, + { + "left_line": 2426, + "right_line": 2426 + }, + { + "left_line": 2427, + "right_line": 2427 + }, + { + "left_line": 2428, + "right_line": 2428 + }, + { + "left_line": 2429, + "right_line": 2429 + }, + { + "left_line": 2430, + "right_line": 2430 + }, + { + "left_line": 2431, + "right_line": 2431 + }, + { + "left_line": 2432, + "right_line": 2432 + }, + { + "left_line": 2433, + "right_line": 2433 + }, + { + "left_line": 2434, + "right_line": 2434 + }, + { + "left_line": 2435, + "right_line": 2435 + }, + { + "left_line": 2436, + "right_line": 2436 + }, + { + "left_line": 2437, + "right_line": 2437 + }, + { + "left_line": 2438, + "right_line": 2438 + }, + { + "left_line": 2439, + "right_line": 2439 + }, + { + "left_line": 2440, + "right_line": 2440 + }, + { + "left_line": 2441, + "right_line": 2441 + }, + { + "left_line": 2442, + "right_line": 2442 + }, + { + "left_line": 2443, + "right_line": 2443 + }, + { + "left_line": 2444, + "right_line": 2444 + }, + { + "left_line": 2445, + "right_line": 2445 + }, + { + "left_line": 2446, + "right_line": 2446 + }, + { + "left_line": 2447, + "right_line": 2447 + }, + { + "left_line": 2448, + "right_line": 2448 + }, + { + "left_line": 2449, + "right_line": 2449 + }, + { + "left_line": 2450, + "right_line": 2450 + }, + { + "left_line": 2451, + "right_line": 2451 + }, + { + "left_line": 2452, + "right_line": 2452 + }, + { + "left_line": 2453, + "right_line": 2453 + }, + { + "left_line": 2454, + "right_line": 2454 + }, + { + "left_line": 2455, + "right_line": 2455 + }, + { + "left_line": 2456, + "right_line": 2456 + }, + { + "left_line": 2457, + "right_line": 2457 + }, + { + "left_line": 2458, + "right_line": 2458 + }, + { + "left_line": 2459, + "right_line": 2459 + }, + { + "left_line": 2460, + "right_line": 2460 + }, + { + "left_line": 2461, + "right_line": 2461 + }, + { + "left_line": 2462, + "right_line": 2462 + }, + { + "left_line": 2463, + "right_line": 2463 + }, + { + "left_line": 2464, + "right_line": 2464 + }, + { + "left_line": 2465, + "right_line": 2465 + }, + { + "left_line": 2466, + "right_line": 2466 + }, + { + "left_line": 2467, + "right_line": 2467 + }, + { + "left_line": 2468, + "right_line": 2468 + }, + { + "left_line": 2469, + "right_line": 2469 + }, + { + "left_line": 2470, + "right_line": 2470 + }, + { + "left_line": 2471, + "right_line": 2471 + }, + { + "left_line": 2472, + "right_line": 2472 + }, + { + "left_line": 2473, + "right_line": 2473 + }, + { + "left_line": 2474, + "right_line": 2474 + }, + { + "left_line": 2475, + "right_line": 2475 + }, + { + "left_line": 2476, + "right_line": 2476 + }, + { + "left_line": 2477, + "right_line": 2477 + }, + { + "left_line": 2478, + "right_line": 2478 + }, + { + "left_line": 2479, + "right_line": 2479 + }, + { + "left_line": 2480, + "right_line": 2480 + }, + { + "left_line": 2481, + "right_line": 2481 + }, + { + "left_line": 2482, + "right_line": 2482 + }, + { + "left_line": 2483, + "right_line": 2483 + }, + { + "left_line": 2484, + "right_line": 2484 + }, + { + "left_line": 2485, + "right_line": 2485 + }, + { + "left_line": 2486, + "right_line": 2486 + }, + { + "left_line": 2487, + "right_line": 2487 + }, + { + "left_line": 2488, + "right_line": 2488 + }, + { + "left_line": 2489, + "right_line": 2489 + }, + { + "left_line": 2490, + "right_line": 2490 + }, + { + "left_line": 2491, + "right_line": 2491 + }, + { + "left_line": 2492, + "right_line": 2492 + }, + { + "left_line": 2493, + "right_line": 2493 + }, + { + "left_line": 2494, + "right_line": 2494 + }, + { + "left_line": 2495, + "right_line": 2495 + }, + { + "left_line": 2496, + "right_line": 2496 + }, + { + "left_line": 2497, + "right_line": 2497 + }, + { + "left_line": 2498, + "right_line": 2498 + }, + { + "left_line": 2499, + "right_line": 2499 + }, + { + "left_line": 2500, + "right_line": 2500 + }, + { + "left_line": 2501, + "right_line": 2501 + }, + { + "left_line": 2502, + "right_line": 2502 + }, + { + "left_line": 2503, + "right_line": 2503 + }, + { + "left_line": 2504, + "right_line": 2504 + }, + { + "left_line": 2505, + "right_line": 2505 + }, + { + "left_line": 2506, + "right_line": 2506 + }, + { + "left_line": 2507, + "right_line": 2507 + }, + { + "left_line": 2508, + "right_line": 2508 + }, + { + "left_line": 2509, + "right_line": 2509 + }, + { + "left_line": 2510, + "right_line": 2510 + }, + { + "left_line": 2511, + "right_line": 2511 + }, + { + "left_line": 2512, + "right_line": 2512 + }, + { + "left_line": 2513, + "right_line": 2513 + }, + { + "left_line": 2514, + "right_line": 2514 + }, + { + "left_line": 2515, + "right_line": 2515 + }, + { + "left_line": 2516, + "right_line": 2516 + }, + { + "left_line": 2517, + "right_line": 2517 + }, + { + "left_line": 2518, + "right_line": 2518 + }, + { + "left_line": 2519, + "right_line": 2519 + }, + { + "left_line": 2520, + "right_line": 2520 + }, + { + "left_line": 2521, + "right_line": 2521 + }, + { + "left_line": 2522, + "right_line": 2522 + }, + { + "left_line": 2523, + "right_line": 2523 + }, + { + "left_line": 2524, + "right_line": 2524 + }, + { + "left_line": 2525, + "right_line": 2525 + }, + { + "left_line": 2526, + "right_line": 2526 + }, + { + "left_line": 2527, + "right_line": 2527 + }, + { + "left_line": 2528, + "right_line": 2528 + }, + { + "left_line": 2529, + "right_line": 2529 + }, + { + "left_line": 2530, + "right_line": 2530 + }, + { + "left_line": 2531, + "right_line": 2531 + }, + { + "left_line": 2532, + "right_line": 2532 + }, + { + "left_line": 2533, + "right_line": 2533 + }, + { + "left_line": 2534, + "right_line": 2534 + }, + { + "left_line": 2535, + "right_line": 2535 + }, + { + "left_line": 2536, + "right_line": 2536 + }, + { + "left_line": 2537, + "right_line": 2537 + }, + { + "left_line": 2538, + "right_line": 2538 + }, + { + "left_line": 2539, + "right_line": 2539 + }, + { + "left_line": 2540, + "right_line": 2540 + }, + { + "left_line": 2541, + "right_line": 2541 + }, + { + "left_line": 2542, + "right_line": 2542 + }, + { + "left_line": 2543, + "right_line": 2543 + }, + { + "left_line": 2544, + "right_line": 2544 + }, + { + "left_line": 2545, + "right_line": 2545 + }, + { + "left_line": 2546, + "right_line": 2546 + }, + { + "left_line": 2547, + "right_line": 2547 + }, + { + "left_line": 2548, + "right_line": 2548 + }, + { + "left_line": 2549, + "right_line": 2549 + }, + { + "left_line": 2550, + "right_line": 2550 + }, + { + "left_line": 2551, + "right_line": 2551 + }, + { + "left_line": 2552, + "right_line": 2552 + }, + { + "left_line": 2553, + "right_line": 2553 + }, + { + "left_line": 2554, + "right_line": 2554 + }, + { + "left_line": 2555, + "right_line": 2555 + }, + { + "left_line": 2556, + "right_line": 2556 + }, + { + "left_line": 2557, + "right_line": 2557 + }, + { + "left_line": 2558, + "right_line": 2558 + }, + { + "left_line": 2559, + "right_line": 2559 + }, + { + "left_line": 2560, + "right_line": 2560 + }, + { + "left_line": 2561, + "right_line": 2561 + }, + { + "left_line": 2562, + "right_line": 2562 + }, + { + "left_line": 2563, + "right_line": 2563 + }, + { + "left_line": 2564, + "right_line": 2564 + }, + { + "left_line": 2565, + "right_line": 2565 + }, + { + "left_line": 2566, + "right_line": 2566 + }, + { + "left_line": 2567, + "right_line": 2567 + }, + { + "left_line": 2568, + "right_line": 2568 + }, + { + "left_line": 2569, + "right_line": 2569 + }, + { + "left_line": 2570, + "right_line": 2570 + }, + { + "left_line": 2571, + "right_line": 2571 + }, + { + "left_line": 2572, + "right_line": 2572 + }, + { + "left_line": 2573, + "right_line": 2573 + }, + { + "left_line": 2574, + "right_line": 2574 + }, + { + "left_line": 2575, + "right_line": 2575 + }, + { + "left_line": 2576, + "right_line": 2576 + }, + { + "left_line": 2577, + "right_line": 2577 + }, + { + "left_line": 2578, + "right_line": 2578 + }, + { + "left_line": 2579, + "right_line": 2579 + }, + { + "left_line": 2580, + "right_line": 2580 + }, + { + "left_line": 2581, + "right_line": 2581 + }, + { + "left_line": 2582, + "right_line": 2582 + }, + { + "left_line": 2583, + "right_line": 2583 + }, + { + "left_line": 2584, + "right_line": 2584 + }, + { + "left_line": 2585, + "right_line": 2585 + }, + { + "left_line": 2586, + "right_line": 2586 + }, + { + "left_line": 2587, + "right_line": 2587 + }, + { + "left_line": 2588, + "right_line": 2588 + }, + { + "left_line": 2589, + "right_line": 2589 + }, + { + "left_line": 2590, + "right_line": 2590 + }, + { + "left_line": 2591, + "right_line": 2591 + }, + { + "left_line": 2592, + "right_line": 2592 + }, + { + "left_line": 2593, + "right_line": 2593 + }, + { + "left_line": 2594, + "right_line": 2594 + }, + { + "left_line": 2595, + "right_line": 2595 + }, + { + "left_line": 2596, + "right_line": 2596 + }, + { + "left_line": 2597, + "right_line": 2597 + }, + { + "left_line": 2598, + "right_line": 2598 + }, + { + "left_line": 2599, + "right_line": 2599 + }, + { + "left_line": 2600, + "right_line": 2600 + }, + { + "left_line": 2601, + "right_line": 2601 + }, + { + "left_line": 2602, + "right_line": 2602 + }, + { + "left_line": 2603, + "right_line": 2603 + }, + { + "left_line": 2604, + "right_line": 2604 + }, + { + "left_line": 2605, + "right_line": 2605 + }, + { + "left_line": 2606, + "right_line": 2606 + }, + { + "left_line": 2607, + "right_line": 2607 + }, + { + "left_line": 2608, + "right_line": 2608 + }, + { + "left_line": 2609, + "right_line": 2609 + }, + { + "left_line": 2610, + "right_line": 2610 + }, + { + "left_line": 2611, + "right_line": 2611 + }, + { + "left_line": 2612, + "right_line": 2612 + }, + { + "left_line": 2613, + "right_line": 2613 + }, + { + "left_line": 2614, + "right_line": 2614 + }, + { + "left_line": 2615, + "right_line": 2615 + }, + { + "left_line": 2616, + "right_line": 2616 + }, + { + "left_line": 2617, + "right_line": 2617 + }, + { + "left_line": 2618, + "right_line": 2618 + }, + { + "left_line": 2619, + "right_line": 2619 + }, + { + "left_line": 2620, + "right_line": 2620 + }, + { + "left_line": 2621, + "right_line": 2621 + }, + { + "left_line": 2622, + "right_line": 2622 + }, + { + "left_line": 2623, + "right_line": 2623 + }, + { + "left_line": 2624, + "right_line": 2624 + }, + { + "left_line": 2625, + "right_line": 2625 + }, + { + "left_line": 2626, + "right_line": 2626 + }, + { + "left_line": 2627, + "right_line": 2627 + }, + { + "left_line": 2628, + "right_line": 2628 + }, + { + "left_line": 2629, + "right_line": 2629 + }, + { + "left_line": 2630, + "right_line": 2630 + }, + { + "left_line": 2631, + "right_line": 2631 + }, + { + "left_line": 2632, + "right_line": 2632 + }, + { + "left_line": 2633, + "right_line": 2633 + }, + { + "left_line": 2634, + "right_line": 2634 + }, + { + "left_line": 2635, + "right_line": 2635 + }, + { + "left_line": 2636, + "right_line": 2636 + }, + { + "left_line": 2637, + "right_line": 2637 + }, + { + "left_line": 2638, + "right_line": 2638 + }, + { + "left_line": 2639, + "right_line": 2639 + }, + { + "left_line": 2640, + "right_line": 2640 + }, + { + "left_line": 2641, + "right_line": 2641 + }, + { + "left_line": 2642, + "right_line": 2642 + }, + { + "left_line": 2643, + "right_line": 2643 + }, + { + "left_line": 2644, + "right_line": 2644 + }, + { + "left_line": 2645, + "right_line": 2645 + }, + { + "left_line": 2646, + "right_line": 2646 + }, + { + "left_line": 2647, + "right_line": 2647 + }, + { + "left_line": 2648, + "right_line": 2648 + }, + { + "left_line": 2649, + "right_line": 2649 + }, + { + "left_line": 2650, + "right_line": 2650 + }, + { + "left_line": 2651, + "right_line": 2651 + }, + { + "left_line": 2652, + "right_line": 2652 + }, + { + "left_line": 2653, + "right_line": 2653 + }, + { + "left_line": 2654, + "right_line": 2654 + }, + { + "left_line": 2655, + "right_line": 2655 + }, + { + "left_line": 2656, + "right_line": 2656 + }, + { + "left_line": 2657, + "right_line": 2657 + }, + { + "left_line": 2658, + "right_line": 2658 + }, + { + "left_line": 2659, + "right_line": 2659 + }, + { + "left_line": 2660, + "right_line": 2660 + }, + { + "left_line": 2661, + "right_line": 2661 + }, + { + "left_line": 2662, + "right_line": 2662 + }, + { + "left_line": 2663, + "right_line": 2663 + }, + { + "left_line": 2664, + "right_line": 2664 + }, + { + "left_line": 2665, + "right_line": 2665 + }, + { + "left_line": 2666, + "right_line": 2666 + }, + { + "left_line": 2667, + "right_line": 2667 + }, + { + "left_line": 2668, + "right_line": 2668 + }, + { + "left_line": 2669, + "right_line": 2669 + }, + { + "left_line": 2670, + "right_line": 2670 + }, + { + "left_line": 2671, + "right_line": 2671 + }, + { + "left_line": 2672, + "right_line": 2672 + }, + { + "left_line": 2673, + "right_line": 2673 + }, + { + "left_line": 2674, + "right_line": 2674 + }, + { + "left_line": 2675, + "right_line": 2675 + }, + { + "left_line": 2676, + "right_line": 2676 + }, + { + "left_line": 2677, + "right_line": 2677 + }, + { + "left_line": 2678, + "right_line": 2678 + }, + { + "left_line": 2679, + "right_line": 2679 + }, + { + "left_line": 2680, + "right_line": 2680 + }, + { + "left_line": 2681, + "right_line": 2681 + }, + { + "left_line": 2682, + "right_line": 2682 + }, + { + "left_line": 2683, + "right_line": 2683 + }, + { + "left_line": 2684, + "right_line": 2684 + }, + { + "left_line": 2685, + "right_line": 2685 + }, + { + "left_line": 2686, + "right_line": 2686 + }, + { + "left_line": 2687, + "right_line": 2687 + }, + { + "left_line": 2688, + "right_line": 2688 + }, + { + "left_line": 2689, + "right_line": 2689 + }, + { + "left_line": 2690, + "right_line": 2690 + }, + { + "left_line": 2691, + "right_line": 2691 + }, + { + "left_line": 2692, + "right_line": 2692 + }, + { + "left_line": 2693, + "right_line": 2693 + }, + { + "left_line": 2694, + "right_line": 2694 + }, + { + "left_line": 2695, + "right_line": 2695 + }, + { + "left_line": 2696, + "right_line": 2696 + }, + { + "left_line": 2697, + "right_line": 2697 + }, + { + "left_line": 2698, + "right_line": 2698 + }, + { + "left_line": 2699, + "right_line": 2699 + }, + { + "left_line": 2700, + "right_line": 2700 + }, + { + "left_line": 2701, + "right_line": 2701 + }, + { + "left_line": 2702, + "right_line": 2702 + }, + { + "left_line": 2703, + "right_line": 2703 + }, + { + "left_line": 2704, + "right_line": 2704 + }, + { + "left_line": 2705, + "right_line": 2705 + }, + { + "left_line": 2706, + "right_line": 2706 + }, + { + "left_line": 2707, + "right_line": 2707 + }, + { + "left_line": 2708, + "right_line": 2708 + }, + { + "left_line": 2709, + "right_line": 2709 + }, + { + "left_line": 2710, + "right_line": 2710 + }, + { + "left_line": 2711, + "right_line": 2711 + }, + { + "left_line": 2712, + "right_line": 2712 + }, + { + "left_line": 2713, + "right_line": 2713 + }, + { + "left_line": 2714, + "right_line": 2714 + }, + { + "left_line": 2715, + "right_line": 2715 + }, + { + "left_line": 2716, + "right_line": 2716 + }, + { + "left_line": 2717, + "right_line": 2717 + }, + { + "left_line": 2718, + "right_line": 2718 + }, + { + "left_line": 2719, + "right_line": 2719 + }, + { + "left_line": 2720, + "right_line": 2720 + }, + { + "left_line": 2721, + "right_line": 2721 + }, + { + "left_line": 2722, + "right_line": 2722 + }, + { + "left_line": 2723, + "right_line": 2723 + }, + { + "left_line": 2724, + "right_line": 2724 + }, + { + "left_line": 2725, + "right_line": 2725 + }, + { + "left_line": 2726, + "right_line": 2726 + }, + { + "left_line": 2727, + "right_line": 2727 + }, + { + "left_line": 2728, + "right_line": 2728 + }, + { + "left_line": 2729, + "right_line": 2729 + }, + { + "left_line": 2730, + "right_line": 2730 + }, + { + "left_line": 2731, + "right_line": 2731 + }, + { + "left_line": 2732, + "right_line": 2732 + }, + { + "left_line": 2733, + "right_line": 2733 + }, + { + "left_line": 2734, + "right_line": 2734 + }, + { + "left_line": 2735, + "right_line": 2735 + }, + { + "left_line": 2736, + "right_line": 2736 + }, + { + "left_line": 2737, + "right_line": 2737 + }, + { + "left_line": 2738, + "right_line": 2738 + }, + { + "left_line": 2739, + "right_line": 2739 + }, + { + "left_line": 2740, + "right_line": 2740 + }, + { + "left_line": 2741, + "right_line": 2741 + }, + { + "left_line": 2742, + "right_line": 2742 + }, + { + "left_line": 2743, + "right_line": 2743 + }, + { + "left_line": 2744, + "right_line": 2744 + }, + { + "left_line": 2745, + "right_line": 2745 + }, + { + "left_line": 2746, + "right_line": 2746 + }, + { + "left_line": 2747, + "right_line": 2747 + }, + { + "left_line": 2748, + "right_line": 2748 + }, + { + "left_line": 2749, + "right_line": 2749 + }, + { + "left_line": 2750, + "right_line": 2750 + }, + { + "left_line": 2751, + "right_line": 2751 + }, + { + "left_line": 2752, + "right_line": 2752 + }, + { + "left_line": 2753, + "right_line": 2753 + }, + { + "left_line": 2754, + "right_line": 2754 + }, + { + "left_line": 2755, + "right_line": 2755 + }, + { + "left_line": 2756, + "right_line": 2756 + }, + { + "left_line": 2757, + "right_line": 2757 + }, + { + "left_line": 2758, + "right_line": 2758 + }, + { + "left_line": 2759, + "right_line": 2759 + }, + { + "left_line": 2760, + "right_line": 2760 + }, + { + "left_line": 2761, + "right_line": 2761 + }, + { + "left_line": 2762, + "right_line": 2762 + }, + { + "left_line": 2763, + "right_line": 2763 + }, + { + "left_line": 2764, + "right_line": 2764 + }, + { + "left_line": 2765, + "right_line": 2765 + }, + { + "left_line": 2766, + "right_line": 2766 + }, + { + "left_line": 2767, + "right_line": 2767 + }, + { + "left_line": 2768, + "right_line": 2768 + }, + { + "left_line": 2769, + "right_line": 2769 + }, + { + "left_line": 2770, + "right_line": 2770 + }, + { + "left_line": 2771, + "right_line": 2771 + }, + { + "left_line": 2772, + "right_line": 2772 + }, + { + "left_line": 2773, + "right_line": 2773 + }, + { + "left_line": 2774, + "right_line": 2774 + }, + { + "left_line": 2775, + "right_line": 2775 + }, + { + "left_line": 2776, + "right_line": 2776 + }, + { + "left_line": 2777, + "right_line": 2777 + }, + { + "left_line": 2778, + "right_line": 2778 + }, + { + "left_line": 2779, + "right_line": 2779 + }, + { + "left_line": 2780, + "right_line": 2780 + }, + { + "left_line": 2781, + "right_line": 2781 + }, + { + "left_line": 2782, + "right_line": 2782 + }, + { + "left_line": 2783, + "right_line": 2783 + }, + { + "left_line": 2784, + "right_line": 2784 + }, + { + "left_line": 2785, + "right_line": 2785 + }, + { + "left_line": 2786, + "right_line": 2786 + }, + { + "left_line": 2787, + "right_line": 2787 + }, + { + "left_line": 2788, + "right_line": 2788 + }, + { + "left_line": 2789, + "right_line": 2789 + }, + { + "left_line": 2790, + "right_line": 2790 + }, + { + "left_line": 2791, + "right_line": 2791 + }, + { + "left_line": 2792, + "right_line": 2792 + }, + { + "left_line": 2793, + "right_line": 2793 + }, + { + "left_line": 2794, + "right_line": 2794 + }, + { + "left_line": 2795, + "right_line": 2795 + }, + { + "left_line": 2796, + "right_line": 2796 + }, + { + "left_line": 2797, + "right_line": 2797 + }, + { + "left_line": 2798, + "right_line": 2798 + }, + { + "left_line": 2799, + "right_line": 2799 + }, + { + "left_line": 2800, + "right_line": 2800 + }, + { + "left_line": 2801, + "right_line": 2801 + }, + { + "left_line": 2802, + "right_line": 2802 + }, + { + "left_line": 2803, + "right_line": 2803 + }, + { + "left_line": 2804, + "right_line": 2804 + }, + { + "left_line": 2805, + "right_line": 2805 + }, + { + "left_line": 2806, + "right_line": 2806 + }, + { + "left_line": 2807, + "right_line": 2807 + }, + { + "left_line": 2808, + "right_line": 2808 + }, + { + "left_line": 2809, + "right_line": 2809 + }, + { + "left_line": 2810, + "right_line": 2810 + }, + { + "left_line": 2811, + "right_line": 2811 + }, + { + "left_line": 2812, + "right_line": 2812 + }, + { + "left_line": 2813, + "right_line": 2813 + }, + { + "left_line": 2814, + "right_line": 2814 + }, + { + "left_line": 2815, + "right_line": 2815 + }, + { + "left_line": 2816, + "right_line": 2816 + }, + { + "left_line": 2817, + "right_line": 2817 + }, + { + "left_line": 2818, + "right_line": 2818 + }, + { + "left_line": 2819, + "right_line": 2819 + }, + { + "left_line": 2820, + "right_line": 2820 + }, + { + "left_line": 2821, + "right_line": 2821 + }, + { + "left_line": 2822, + "right_line": 2822 + }, + { + "left_line": 2823, + "right_line": 2823 + }, + { + "left_line": 2824, + "right_line": 2824 + }, + { + "left_line": 2825, + "right_line": 2825 + }, + { + "left_line": 2826, + "right_line": 2826 + }, + { + "left_line": 2827, + "right_line": 2827 + }, + { + "left_line": 2828, + "right_line": 2828 + }, + { + "left_line": 2829, + "right_line": 2829 + }, + { + "left_line": 2830, + "right_line": 2830 + }, + { + "left_line": 2831, + "right_line": 2831 + }, + { + "left_line": 2832, + "right_line": 2832 + }, + { + "left_line": 2833, + "right_line": 2833 + }, + { + "left_line": 2834, + "right_line": 2834 + }, + { + "left_line": 2835, + "right_line": 2835 + }, + { + "left_line": 2836, + "right_line": 2836 + }, + { + "left_line": 2837, + "right_line": 2837 + }, + { + "left_line": 2838, + "right_line": 2838 + }, + { + "left_line": 2839, + "right_line": 2839 + }, + { + "left_line": 2840, + "right_line": 2840 + }, + { + "left_line": 2841, + "right_line": 2841 + }, + { + "left_line": 2842, + "right_line": 2842 + }, + { + "left_line": 2843, + "right_line": 2843 + }, + { + "left_line": 2844, + "right_line": 2844 + }, + { + "left_line": 2845, + "right_line": 2845 + }, + { + "left_line": 2846, + "right_line": 2846 + }, + { + "left_line": 2847, + "right_line": 2847 + }, + { + "left_line": 2848, + "right_line": 2848 + }, + { + "left_line": 2849, + "right_line": 2849 + }, + { + "left_line": 2850, + "right_line": 2850 + }, + { + "left_line": 2851, + "right_line": 2851 + }, + { + "left_line": 2852, + "right_line": 2852 + }, + { + "left_line": 2853, + "right_line": 2853 + }, + { + "left_line": 2854, + "right_line": 2854 + }, + { + "left_line": 2855, + "right_line": 2855 + }, + { + "left_line": 2856, + "right_line": 2856 + }, + { + "left_line": 2857, + "right_line": 2857 + }, + { + "left_line": 2858, + "right_line": 2858 + }, + { + "left_line": 2859, + "right_line": 2859 + }, + { + "left_line": 2860, + "right_line": 2860 + }, + { + "left_line": 2861, + "right_line": 2861 + }, + { + "left_line": 2862, + "right_line": 2862 + }, + { + "left_line": 2863, + "right_line": 2863 + }, + { + "left_line": 2864, + "right_line": 2864 + }, + { + "left_line": 2865, + "right_line": 2865 + }, + { + "left_line": 2866, + "right_line": 2866 + }, + { + "left_line": 2867, + "right_line": 2867 + }, + { + "left_line": 2868, + "right_line": 2868 + }, + { + "left_line": 2869, + "right_line": 2869 + }, + { + "left_line": 2870, + "right_line": 2870 + }, + { + "left_line": 2871, + "right_line": 2871 + }, + { + "left_line": 2872, + "right_line": 2872 + }, + { + "left_line": 2873, + "right_line": 2873 + }, + { + "left_line": 2874, + "right_line": 2874 + }, + { + "left_line": 2875, + "right_line": 2875 + }, + { + "left_line": 2876, + "right_line": 2876 + }, + { + "left_line": 2877, + "right_line": 2877 + }, + { + "left_line": 2878, + "right_line": 2878 + }, + { + "left_line": 2879, + "right_line": 2879 + }, + { + "left_line": 2880, + "right_line": 2880 + }, + { + "left_line": 2881, + "right_line": 2881 + }, + { + "left_line": 2882, + "right_line": 2882 + }, + { + "left_line": 2883, + "right_line": 2883 + }, + { + "left_line": 2884, + "right_line": 2884 + }, + { + "left_line": 2885, + "right_line": 2885 + }, + { + "left_line": 2886, + "right_line": 2886 + }, + { + "left_line": 2887, + "right_line": 2887 + }, + { + "left_line": 2888, + "right_line": 2888 + }, + { + "left_line": 2889, + "right_line": 2889 + }, + { + "left_line": 2890, + "right_line": 2890 + }, + { + "left_line": 2891, + "right_line": 2891 + }, + { + "left_line": 2892, + "right_line": 2892 + }, + { + "left_line": 2893, + "right_line": 2893 + }, + { + "left_line": 2894, + "right_line": 2894 + }, + { + "left_line": 2895, + "right_line": 2895 + }, + { + "left_line": 2896, + "right_line": 2896 + }, + { + "left_line": 2897, + "right_line": 2897 + }, + { + "left_line": 2898, + "right_line": 2898 + }, + { + "left_line": 2899, + "right_line": 2899 + }, + { + "left_line": 2900, + "right_line": 2900 + }, + { + "left_line": 2901, + "right_line": 2901 + }, + { + "left_line": 2902, + "right_line": 2902 + }, + { + "left_line": 2903, + "right_line": 2903 + }, + { + "left_line": 2904, + "right_line": 2904 + }, + { + "left_line": 2905, + "right_line": 2905 + }, + { + "left_line": 2906, + "right_line": 2906 + }, + { + "left_line": 2907, + "right_line": 2907 + }, + { + "left_line": 2908, + "right_line": 2908 + }, + { + "left_line": 2909, + "right_line": 2909 + }, + { + "left_line": 2910, + "right_line": 2910 + }, + { + "left_line": 2911, + "right_line": 2911 + }, + { + "left_line": 2912, + "right_line": 2912 + }, + { + "left_line": 2913, + "right_line": 2913 + }, + { + "left_line": 2914, + "right_line": 2914 + }, + { + "left_line": 2915, + "right_line": 2915 + }, + { + "left_line": 2916, + "right_line": 2916 + }, + { + "left_line": 2917, + "right_line": 2917 + }, + { + "left_line": 2918, + "right_line": 2918 + }, + { + "left_line": 2919, + "right_line": 2919 + }, + { + "left_line": 2920, + "right_line": 2920 + }, + { + "left_line": 2921, + "right_line": 2921 + }, + { + "left_line": 2922, + "right_line": 2922 + }, + { + "left_line": 2923, + "right_line": 2923 + }, + { + "left_line": 2924, + "right_line": 2924 + }, + { + "left_line": 2925, + "right_line": 2925 + }, + { + "left_line": 2926, + "right_line": 2926 + }, + { + "left_line": 2927, + "right_line": 2927 + }, + { + "left_line": 2928, + "right_line": 2928 + }, + { + "left_line": 2929, + "right_line": 2929 + }, + { + "left_line": 2930, + "right_line": 2930 + }, + { + "left_line": 2931, + "right_line": 2931 + }, + { + "left_line": 2932, + "right_line": 2932 + }, + { + "left_line": 2933, + "right_line": 2933 + }, + { + "left_line": 2934, + "right_line": 2934 + }, + { + "left_line": 2935, + "right_line": 2935 + }, + { + "left_line": 2936, + "right_line": 2936 + }, + { + "left_line": 2937, + "right_line": 2937 + }, + { + "left_line": 2938, + "right_line": 2938 + }, + { + "left_line": 2939, + "right_line": 2939 + }, + { + "left_line": 2940, + "right_line": 2940 + }, + { + "left_line": 2941, + "right_line": 2941 + }, + { + "left_line": 2942, + "right_line": 2942 + }, + { + "left_line": 2943, + "right_line": 2943 + }, + { + "left_line": 2944, + "right_line": 2944 + }, + { + "left_line": 2945, + "right_line": 2945 + }, + { + "left_line": 2946, + "right_line": 2946 + }, + { + "left_line": 2947, + "right_line": 2947 + }, + { + "left_line": 2948, + "right_line": 2948 + }, + { + "left_line": 2949, + "right_line": 2949 + }, + { + "left_line": 2950, + "right_line": 2950 + }, + { + "left_line": 2951, + "right_line": 2951 + }, + { + "left_line": 2952, + "right_line": 2952 + }, + { + "left_line": 2953, + "right_line": 2953 + }, + { + "left_line": 2954, + "right_line": 2954 + }, + { + "left_line": 2955, + "right_line": 2955 + }, + { + "left_line": 2956, + "right_line": 2956 + }, + { + "left_line": 2957, + "right_line": 2957 + }, + { + "left_line": 2958, + "right_line": 2958 + }, + { + "left_line": 2959, + "right_line": 2959 + }, + { + "left_line": 2960, + "right_line": 2960 + }, + { + "left_line": 2961, + "right_line": 2961 + }, + { + "left_line": 2962, + "right_line": 2962 + }, + { + "left_line": 2963, + "right_line": 2963 + }, + { + "left_line": 2964, + "right_line": 2964 + }, + { + "left_line": 2965, + "right_line": 2965 + }, + { + "left_line": 2966, + "right_line": 2966 + }, + { + "left_line": 2967, + "right_line": 2967 + }, + { + "left_line": 2968, + "right_line": 2968 + }, + { + "left_line": 2969, + "right_line": 2969 + }, + { + "left_line": 2970, + "right_line": 2970 + }, + { + "left_line": 2971, + "right_line": 2971 + }, + { + "left_line": 2972, + "right_line": 2972 + }, + { + "left_line": 2973, + "right_line": 2973 + }, + { + "left_line": 2974, + "right_line": 2974 + }, + { + "left_line": 2975, + "right_line": 2975 + }, + { + "left_line": 2976, + "right_line": 2976 + }, + { + "left_line": 2977, + "right_line": 2977 + }, + { + "left_line": 2978, + "right_line": 2978 + }, + { + "left_line": 2979, + "right_line": 2979 + }, + { + "left_line": 2980, + "right_line": 2980 + }, + { + "left_line": 2981, + "right_line": 2981 + }, + { + "left_line": 2982, + "right_line": 2982 + }, + { + "left_line": 2983, + "right_line": 2983 + }, + { + "left_line": 2984, + "right_line": 2984 + }, + { + "left_line": 2985, + "right_line": 2985 + }, + { + "left_line": 2986, + "right_line": 2986 + }, + { + "left_line": 2987, + "right_line": 2987 + }, + { + "left_line": 2988, + "right_line": 2988 + }, + { + "left_line": 2989, + "right_line": 2989 + }, + { + "left_line": 2990, + "right_line": 2990 + }, + { + "left_line": 2991, + "right_line": 2991 + }, + { + "left_line": 2992, + "right_line": 2992 + }, + { + "left_line": 2993, + "right_line": 2993 + }, + { + "left_line": 2994, + "right_line": 2994 + }, + { + "left_line": 2995, + "right_line": 2995 + }, + { + "left_line": 2996, + "right_line": 2996 + }, + { + "left_line": 2997, + "right_line": 2997 + }, + { + "left_line": 2998, + "right_line": 2998 + }, + { + "left_line": 2999, + "right_line": 2999 + }, + { + "left_line": 3000, + "right_line": 3000 + }, + { + "left_line": 3001, + "right_line": 3001 + }, + { + "left_line": 3002, + "right_line": 3002 + }, + { + "left_line": 3003, + "right_line": 3003 + }, + { + "left_line": 3004, + "right_line": 3004 + }, + { + "left_line": 3005, + "right_line": 3005 + }, + { + "left_line": 3006, + "right_line": 3006 + }, + { + "left_line": 3007, + "right_line": 3007 + }, + { + "left_line": 3008, + "right_line": 3008 + }, + { + "left_line": 3009, + "right_line": 3009 + }, + { + "left_line": 3010, + "right_line": 3010 + }, + { + "left_line": 3011, + "right_line": 3011 + }, + { + "left_line": 3012, + "right_line": 3012 + }, + { + "left_line": 3013, + "right_line": 3013 + }, + { + "left_line": 3014, + "right_line": 3014 + }, + { + "left_line": 3015, + "right_line": 3015 + }, + { + "left_line": 3016, + "right_line": 3016 + }, + { + "left_line": 3017, + "right_line": 3017 + }, + { + "left_line": 3018, + "right_line": 3018 + }, + { + "left_line": 3019, + "right_line": 3019 + }, + { + "left_line": 3020, + "right_line": 3020 + }, + { + "left_line": 3021, + "right_line": 3021 + }, + { + "left_line": 3022, + "right_line": 3022 + }, + { + "left_line": 3023, + "right_line": 3023 + }, + { + "left_line": 3024, + "right_line": 3024 + }, + { + "left_line": 3025, + "right_line": 3025 + }, + { + "left_line": 3026, + "right_line": 3026 + }, + { + "left_line": 3027, + "right_line": 3027 + }, + { + "left_line": 3028, + "right_line": 3028 + }, + { + "left_line": 3029, + "right_line": 3029 + }, + { + "left_line": 3030, + "right_line": 3030 + }, + { + "left_line": 3031, + "right_line": 3031 + }, + { + "left_line": 3032, + "right_line": 3032 + }, + { + "left_line": 3033, + "right_line": 3033 + }, + { + "left_line": 3034, + "right_line": 3034 + }, + { + "left_line": 3035, + "right_line": 3035 + }, + { + "left_line": 3036, + "right_line": 3036 + }, + { + "left_line": 3037, + "right_line": 3037 + }, + { + "left_line": 3038, + "right_line": 3038 + }, + { + "left_line": 3039, + "right_line": 3039 + }, + { + "left_line": 3040, + "right_line": 3040 + }, + { + "left_line": 3041, + "right_line": 3041 + }, + { + "left_line": 3042, + "right_line": 3042 + }, + { + "left_line": 3043, + "right_line": 3043 + }, + { + "left_line": 3044, + "right_line": 3044 + }, + { + "left_line": 3045, + "right_line": 3045 + }, + { + "left_line": 3046, + "right_line": 3046 + }, + { + "left_line": 3047, + "right_line": 3047 + }, + { + "left_line": 3048, + "right_line": 3048 + }, + { + "left_line": 3049, + "right_line": 3049 + }, + { + "left_line": 3050, + "right_line": 3050 + }, + { + "left_line": 3051, + "right_line": 3051 + }, + { + "left_line": 3052, + "right_line": 3052 + }, + { + "left_line": 3053, + "right_line": 3053 + }, + { + "left_line": 3054, + "right_line": 3054 + }, + { + "left_line": 3055, + "right_line": 3055 + }, + { + "left_line": 3056, + "right_line": 3056 + }, + { + "left_line": 3057, + "right_line": 3057 + }, + { + "left_line": 3058, + "right_line": 3058 + }, + { + "left_line": 3059, + "right_line": 3059 + }, + { + "left_line": 3060, + "right_line": 3060 + }, + { + "left_line": 3061, + "right_line": 3061 + }, + { + "left_line": 3062, + "right_line": 3062 + }, + { + "left_line": 3063, + "right_line": 3063 + }, + { + "left_line": 3064, + "right_line": 3064 + }, + { + "left_line": 3065, + "right_line": 3065 + }, + { + "left_line": 3066, + "right_line": 3066 + }, + { + "left_line": 3067, + "right_line": 3067 + }, + { + "left_line": 3068, + "right_line": 3068 + }, + { + "left_line": 3069, + "right_line": 3069 + }, + { + "left_line": 3070, + "right_line": 3070 + }, + { + "left_line": 3071, + "right_line": 3071 + }, + { + "left_line": 3072, + "right_line": 3072 + }, + { + "left_line": 3073, + "right_line": 3073 + }, + { + "left_line": 3074, + "right_line": 3074 + }, + { + "left_line": 3075, + "right_line": 3075 + }, + { + "left_line": 3076, + "right_line": 3076 + }, + { + "left_line": 3077, + "right_line": 3077 + }, + { + "left_line": 3078, + "right_line": 3078 + }, + { + "left_line": 3079, + "right_line": 3079 + }, + { + "left_line": 3080, + "right_line": 3080 + }, + { + "left_line": 3081, + "right_line": 3081 + }, + { + "left_line": 3082, + "right_line": 3082 + }, + { + "left_line": 3083, + "right_line": 3083 + }, + { + "left_line": 3084, + "right_line": 3084 + }, + { + "left_line": 3085, + "right_line": 3085 + }, + { + "left_line": 3086, + "right_line": 3086 + }, + { + "left_line": 3087, + "right_line": 3087 + }, + { + "left_line": 3088, + "right_line": 3088 + }, + { + "left_line": 3089, + "right_line": 3089 + }, + { + "left_line": 3090, + "right_line": 3090 + }, + { + "left_line": 3091, + "right_line": 3091 + }, + { + "left_line": 3092, + "right_line": 3092 + }, + { + "left_line": 3093, + "right_line": 3093 + }, + { + "left_line": 3094, + "right_line": 3094 + }, + { + "left_line": 3095, + "right_line": 3095 + }, + { + "left_line": 3096, + "right_line": 3096 + }, + { + "left_line": 3097, + "right_line": 3097 + }, + { + "left_line": 3098, + "right_line": 3098 + }, + { + "left_line": 3099, + "right_line": 3099 + }, + { + "left_line": 3100, + "right_line": 3100 + }, + { + "left_line": 3101, + "right_line": 3101 + }, + { + "left_line": 3102, + "right_line": 3102 + }, + { + "left_line": 3103, + "right_line": 3103 + }, + { + "left_line": 3104, + "right_line": 3104 + }, + { + "left_line": 3105, + "right_line": 3105 + }, + { + "left_line": 3106, + "right_line": 3106 + }, + { + "left_line": 3107, + "right_line": 3107 + }, + { + "left_line": 3108, + "right_line": 3108 + }, + { + "left_line": 3109, + "right_line": 3109 + }, + { + "left_line": 3110, + "right_line": 3110 + }, + { + "left_line": 3111, + "right_line": 3111 + }, + { + "left_line": 3112, + "right_line": 3112 + }, + { + "left_line": 3113, + "right_line": 3113 + }, + { + "left_line": 3114, + "right_line": 3114 + }, + { + "left_line": 3115, + "right_line": 3115 + }, + { + "left_line": 3116, + "right_line": 3116 + }, + { + "left_line": 3117, + "right_line": 3117 + }, + { + "left_line": 3118, + "right_line": 3118 + }, + { + "left_line": 3119, + "right_line": 3119 + }, + { + "left_line": 3120, + "right_line": 3120 + }, + { + "left_line": 3121, + "right_line": 3121 + }, + { + "left_line": 3122, + "right_line": 3122 + }, + { + "left_line": 3123, + "right_line": 3123 + }, + { + "left_line": 3124, + "right_line": 3124 + }, + { + "left_line": 3125, + "right_line": 3125 + }, + { + "left_line": 3126, + "right_line": 3126 + }, + { + "left_line": 3127, + "right_line": 3127 + }, + { + "left_line": 3128, + "right_line": 3128 + }, + { + "left_line": 3129, + "right_line": 3129 + }, + { + "left_line": 3130, + "right_line": 3130 + }, + { + "left_line": 3131, + "right_line": 3131 + }, + { + "left_line": 3132, + "right_line": 3132 + }, + { + "left_line": 3133, + "right_line": 3133 + }, + { + "left_line": 3134, + "right_line": 3134 + }, + { + "left_line": 3135, + "right_line": 3135 + }, + { + "left_line": 3136, + "right_line": 3136 + }, + { + "left_line": 3137, + "right_line": 3137 + }, + { + "left_line": 3138, + "right_line": 3138 + }, + { + "left_line": 3139, + "right_line": 3139 + }, + { + "left_line": 3140, + "right_line": 3140 + }, + { + "left_line": 3141, + "right_line": 3141 + }, + { + "left_line": 3142, + "right_line": 3142 + }, + { + "left_line": 3143, + "right_line": 3143 + }, + { + "left_line": 3144, + "right_line": 3144 + }, + { + "left_line": 3145, + "right_line": 3145 + }, + { + "left_line": 3146, + "right_line": 3146 + }, + { + "left_line": 3147, + "right_line": 3147 + }, + { + "left_line": 3148, + "right_line": 3148 + }, + { + "left_line": 3149, + "right_line": 3149 + }, + { + "left_line": 3150, + "right_line": 3150 + }, + { + "left_line": 3151, + "right_line": 3151 + }, + { + "left_line": 3152, + "right_line": 3152 + }, + { + "left_line": 3153, + "right_line": 3153 + }, + { + "left_line": 3154, + "right_line": 3154 + }, + { + "left_line": 3155, + "right_line": 3155 + }, + { + "left_line": 3156, + "right_line": 3156 + }, + { + "left_line": 3157, + "right_line": 3157 + }, + { + "left_line": 3158, + "right_line": 3158 + }, + { + "left_line": 3159, + "right_line": 3159 + }, + { + "left_line": 3160, + "right_line": 3160 + }, + { + "left_line": 3161, + "right_line": 3161 + }, + { + "left_line": 3162, + "right_line": 3162 + }, + { + "left_line": 3163, + "right_line": 3163 + }, + { + "left_line": 3164, + "right_line": 3164 + }, + { + "left_line": 3165, + "right_line": 3165 + }, + { + "left_line": 3166, + "right_line": 3166 + }, + { + "left_line": 3167, + "right_line": 3167 + }, + { + "left_line": 3168, + "right_line": 3168 + }, + { + "left_line": 3169, + "right_line": 3169 + }, + { + "left_line": 3170, + "right_line": 3170 + }, + { + "left_line": 3171, + "right_line": 3171 + }, + { + "left_line": 3172, + "right_line": 3172 + }, + { + "left_line": 3173, + "right_line": 3173 + }, + { + "left_line": 3174, + "right_line": 3174 + }, + { + "left_line": 3175, + "right_line": 3175 + }, + { + "left_line": 3176, + "right_line": 3176 + }, + { + "left_line": 3177, + "right_line": 3177 + }, + { + "left_line": 3178, + "right_line": 3178 + }, + { + "left_line": 3179, + "right_line": 3179 + }, + { + "left_line": 3180, + "right_line": 3180 + }, + { + "left_line": 3181, + "right_line": 3181 + }, + { + "left_line": 3182, + "right_line": 3182 + }, + { + "left_line": 3183, + "right_line": 3183 + }, + { + "left_line": 3184, + "right_line": 3184 + }, + { + "left_line": 3185, + "right_line": 3185 + }, + { + "left_line": 3186, + "right_line": 3186 + }, + { + "left_line": 3187, + "right_line": 3187 + }, + { + "left_line": 3188, + "right_line": 3188 + }, + { + "left_line": 3189, + "right_line": 3189 + }, + { + "left_line": 3190, + "right_line": 3190 + }, + { + "left_line": 3191, + "right_line": 3191 + }, + { + "left_line": 3192, + "right_line": 3192 + }, + { + "left_line": 3193, + "right_line": 3193 + }, + { + "left_line": 3194, + "right_line": 3194 + }, + { + "left_line": 3195, + "right_line": 3195 + }, + { + "left_line": 3196, + "right_line": 3196 + }, + { + "left_line": 3197, + "right_line": 3197 + }, + { + "left_line": 3198, + "right_line": 3198 + }, + { + "left_line": 3199, + "right_line": 3199 + }, + { + "left_line": 3200, + "right_line": 3200 + }, + { + "left_line": 3201, + "right_line": 3201 + }, + { + "left_line": 3202, + "right_line": 3202 + }, + { + "left_line": 3203, + "right_line": 3203 + }, + { + "left_line": 3204, + "right_line": 3204 + }, + { + "left_line": 3205, + "right_line": 3205 + }, + { + "left_line": 3206, + "right_line": 3206 + }, + { + "left_line": 3207, + "right_line": 3207 + }, + { + "left_line": 3208, + "right_line": 3208 + }, + { + "left_line": 3209, + "right_line": 3209 + }, + { + "left_line": 3210, + "right_line": 3210 + }, + { + "left_line": 3211, + "right_line": 3211 + }, + { + "left_line": 3212, + "right_line": 3212 + }, + { + "left_line": 3213, + "right_line": 3213 + }, + { + "left_line": 3214, + "right_line": 3214 + }, + { + "left_line": 3215, + "right_line": 3215 + }, + { + "left_line": 3216, + "right_line": 3216 + }, + { + "left_line": 3217, + "right_line": 3217 + }, + { + "left_line": 3218, + "right_line": 3218 + }, + { + "left_line": 3219, + "right_line": 3219 + }, + { + "left_line": 3220, + "right_line": 3220 + }, + { + "left_line": 3221, + "right_line": 3221 + }, + { + "left_line": 3222, + "right_line": 3222 + }, + { + "left_line": 3223, + "right_line": 3223 + }, + { + "left_line": 3224, + "right_line": 3224 + }, + { + "left_line": 3225, + "right_line": 3225 + }, + { + "left_line": 3226, + "right_line": 3226 + }, + { + "left_line": 3227, + "right_line": 3227 + }, + { + "left_line": 3228, + "right_line": 3228 + }, + { + "left_line": 3229, + "right_line": 3229 + }, + { + "left_line": 3230, + "right_line": 3230 + }, + { + "left_line": 3231, + "right_line": 3231 + }, + { + "left_line": 3232, + "right_line": 3232 + }, + { + "left_line": 3233, + "right_line": 3233 + }, + { + "left_line": 3234, + "right_line": 3234 + }, + { + "left_line": 3235, + "right_line": 3235 + }, + { + "left_line": 3236, + "right_line": 3236 + }, + { + "left_line": 3237, + "right_line": 3237 + }, + { + "left_line": 3238, + "right_line": 3238 + }, + { + "left_line": 3239, + "right_line": 3239 + }, + { + "left_line": 3240, + "right_line": 3240 + }, + { + "left_line": 3241, + "right_line": 3241 + }, + { + "left_line": 3242, + "right_line": 3242 + }, + { + "left_line": 3243, + "right_line": 3243 + }, + { + "left_line": 3244, + "right_line": 3244 + }, + { + "left_line": 3245, + "right_line": 3245 + }, + { + "left_line": 3246, + "right_line": 3246 + }, + { + "left_line": 3247, + "right_line": 3247 + }, + { + "left_line": 3248, + "right_line": 3248 + }, + { + "left_line": 3249, + "right_line": 3249 + }, + { + "left_line": 3250, + "right_line": 3250 + }, + { + "left_line": 3251, + "right_line": 3251 + }, + { + "left_line": 3252, + "right_line": 3252 + }, + { + "left_line": 3253, + "right_line": 3253 + }, + { + "left_line": 3254, + "right_line": 3254 + }, + { + "left_line": 3255, + "right_line": 3255 + }, + { + "left_line": 3256, + "right_line": 3256 + }, + { + "left_line": 3257, + "right_line": 3257 + }, + { + "left_line": 3258, + "right_line": 3258 + }, + { + "left_line": 3259, + "right_line": 3259 + }, + { + "left_line": 3260, + "right_line": 3260 + }, + { + "left_line": 3261, + "right_line": 3261 + }, + { + "left_line": 3262, + "right_line": 3262 + }, + { + "left_line": 3263, + "right_line": 3263 + }, + { + "left_line": 3264, + "right_line": 3264 + }, + { + "left_line": 3265, + "right_line": 3265 + }, + { + "left_line": 3266, + "right_line": 3266 + }, + { + "left_line": 3267, + "right_line": 3267 + }, + { + "left_line": 3268, + "right_line": 3268 + }, + { + "left_line": 3269, + "right_line": 3269 + }, + { + "left_line": 3270, + "right_line": 3270 + }, + { + "left_line": 3271, + "right_line": 3271 + }, + { + "left_line": 3272, + "right_line": 3272 + }, + { + "left_line": 3273, + "right_line": 3273 + }, + { + "left_line": 3274, + "right_line": 3274 + }, + { + "left_line": 3275, + "right_line": 3275 + }, + { + "left_line": 3276, + "right_line": 3276 + }, + { + "left_line": 3277, + "right_line": 3277 + }, + { + "left_line": 3278, + "right_line": 3278 + }, + { + "left_line": 3279, + "right_line": 3279 + }, + { + "left_line": 3280, + "right_line": 3280 + }, + { + "left_line": 3281, + "right_line": 3281 + }, + { + "left_line": 3282, + "right_line": 3282 + }, + { + "left_line": 3283, + "right_line": 3283 + }, + { + "left_line": 3284, + "right_line": 3284 + }, + { + "left_line": 3285, + "right_line": 3285 + }, + { + "left_line": 3286, + "right_line": 3286 + }, + { + "left_line": 3287, + "right_line": 3287 + }, + { + "left_line": 3288, + "right_line": 3288 + }, + { + "left_line": 3289, + "right_line": 3289 + }, + { + "left_line": 3290, + "right_line": 3290 + }, + { + "left_line": 3291, + "right_line": 3291 + }, + { + "left_line": 3292, + "right_line": 3292 + }, + { + "left_line": 3293, + "right_line": 3293 + }, + { + "left_line": 3294, + "right_line": 3294 + }, + { + "left_line": 3295, + "right_line": 3295 + }, + { + "left_line": 3296, + "right_line": 3296 + }, + { + "left_line": 3297, + "right_line": 3297 + }, + { + "left_line": 3298, + "right_line": 3298 + }, + { + "left_line": 3299, + "right_line": 3299 + }, + { + "left_line": 3300, + "right_line": 3300 + }, + { + "left_line": 3301, + "right_line": 3301 + }, + { + "left_line": 3302, + "right_line": 3302 + }, + { + "left_line": 3303, + "right_line": 3303 + }, + { + "left_line": 3304, + "right_line": 3304 + }, + { + "left_line": 3305, + "right_line": 3305 + }, + { + "left_line": 3306, + "right_line": 3306 + }, + { + "left_line": 3307, + "right_line": 3307 + }, + { + "left_line": 3308, + "right_line": 3308 + }, + { + "left_line": 3309, + "right_line": 3309 + }, + { + "left_line": 3310, + "right_line": 3310 + }, + { + "left_line": 3311, + "right_line": 3311 + }, + { + "left_line": 3312, + "right_line": 3312 + }, + { + "left_line": 3313, + "right_line": 3313 + }, + { + "left_line": 3314, + "right_line": 3314 + }, + { + "left_line": 3315, + "right_line": 3315 + }, + { + "left_line": 3316, + "right_line": 3316 + }, + { + "left_line": 3317, + "right_line": 3317 + }, + { + "left_line": 3318, + "right_line": 3318 + }, + { + "left_line": 3319, + "right_line": 3319 + }, + { + "left_line": 3320, + "right_line": 3320 + }, + { + "left_line": 3321, + "right_line": 3321 + }, + { + "left_line": 3322, + "right_line": 3322 + }, + { + "left_line": 3323, + "right_line": 3323 + }, + { + "left_line": 3324, + "right_line": 3324 + }, + { + "left_line": 3325, + "right_line": 3325 + }, + { + "left_line": 3326, + "right_line": 3326 + }, + { + "left_line": 3327, + "right_line": 3327 + }, + { + "left_line": 3328, + "right_line": 3328 + }, + { + "left_line": 3329, + "right_line": 3329 + }, + { + "left_line": 3330, + "right_line": 3330 + }, + { + "left_line": 3331, + "right_line": 3331 + }, + { + "left_line": 3332, + "right_line": 3332 + }, + { + "left_line": 3333, + "right_line": 3333 + }, + { + "left_line": 3334, + "right_line": 3334 + }, + { + "left_line": 3335, + "right_line": 3335 + }, + { + "left_line": 3336, + "right_line": 3336 + }, + { + "left_line": 3337, + "right_line": 3337 + }, + { + "left_line": 3338, + "right_line": 3338 + }, + { + "left_line": 3339, + "right_line": 3339 + }, + { + "left_line": 3340, + "right_line": 3340 + }, + { + "left_line": 3341, + "right_line": 3341 + }, + { + "left_line": 3342, + "right_line": 3342 + }, + { + "left_line": 3343, + "right_line": 3343 + }, + { + "left_line": 3344, + "right_line": 3344 + }, + { + "left_line": 3345, + "right_line": 3345 + }, + { + "left_line": 3346, + "right_line": 3346 + }, + { + "left_line": 3347, + "right_line": 3347 + }, + { + "left_line": 3348, + "right_line": 3348 + }, + { + "left_line": 3349, + "right_line": 3349 + }, + { + "left_line": 3350, + "right_line": 3350 + }, + { + "left_line": 3351, + "right_line": 3351 + }, + { + "left_line": 3352, + "right_line": 3352 + }, + { + "left_line": 3353, + "right_line": 3353 + }, + { + "left_line": 3354, + "right_line": 3354 + }, + { + "left_line": 3355, + "right_line": 3355 + }, + { + "left_line": 3356, + "right_line": 3356 + }, + { + "left_line": 3357, + "right_line": 3357 + }, + { + "left_line": 3358, + "right_line": 3358 + }, + { + "left_line": 3359, + "right_line": 3359 + }, + { + "left_line": 3360, + "right_line": 3360 + }, + { + "left_line": 3361, + "right_line": 3361 + }, + { + "left_line": 3362, + "right_line": 3362 + }, + { + "left_line": 3363, + "right_line": 3363 + }, + { + "left_line": 3364, + "right_line": 3364 + }, + { + "left_line": 3365, + "right_line": 3365 + }, + { + "left_line": 3366, + "right_line": 3366 + }, + { + "left_line": 3367, + "right_line": 3367 + }, + { + "left_line": 3368, + "right_line": 3368 + }, + { + "left_line": 3369, + "right_line": 3369 + }, + { + "left_line": 3370, + "right_line": 3370 + }, + { + "left_line": 3371, + "right_line": 3371 + }, + { + "left_line": 3372, + "right_line": 3372 + }, + { + "left_line": 3373, + "right_line": 3373 + }, + { + "left_line": 3374, + "right_line": 3374 + }, + { + "left_line": 3375, + "right_line": 3375 + }, + { + "left_line": 3376, + "right_line": 3376 + }, + { + "left_line": 3377, + "right_line": 3377 + }, + { + "left_line": 3378, + "right_line": 3378 + }, + { + "left_line": 3379, + "right_line": 3379 + }, + { + "left_line": 3380, + "right_line": 3380 + }, + { + "left_line": 3381, + "right_line": 3381 + }, + { + "left_line": 3382, + "right_line": 3382 + }, + { + "left_line": 3383, + "right_line": 3383 + }, + { + "left_line": 3384, + "right_line": 3384 + }, + { + "left_line": 3385, + "right_line": 3385 + }, + { + "left_line": 3386, + "right_line": 3386 + }, + { + "left_line": 3387, + "right_line": 3387 + }, + { + "left_line": 3388, + "right_line": 3388 + }, + { + "left_line": 3389, + "right_line": 3389 + }, + { + "left_line": 3390, + "right_line": 3390 + }, + { + "left_line": 3391, + "right_line": 3391 + }, + { + "left_line": 3392, + "right_line": 3392 + }, + { + "left_line": 3393, + "right_line": 3393 + }, + { + "left_line": 3394, + "right_line": 3394 + }, + { + "left_line": 3395, + "right_line": 3395 + }, + { + "left_line": 3396, + "right_line": 3396 + }, + { + "left_line": 3397, + "right_line": 3397 + }, + { + "left_line": 3398, + "right_line": 3398 + }, + { + "left_line": 3399, + "right_line": 3399 + }, + { + "left_line": 3400, + "right_line": 3400 + }, + { + "left_line": 3401, + "right_line": 3401 + }, + { + "left_line": 3402, + "right_line": 3402 + }, + { + "left_line": 3403, + "right_line": 3403 + }, + { + "left_line": 3404, + "right_line": 3404 + }, + { + "left_line": 3405, + "right_line": 3405 + }, + { + "left_line": 3406, + "right_line": 3406 + }, + { + "left_line": 3407, + "right_line": 3407 + }, + { + "left_line": 3408, + "right_line": 3408 + }, + { + "left_line": 3409, + "right_line": 3409 + }, + { + "left_line": 3410, + "right_line": 3410 + }, + { + "left_line": 3411, + "right_line": 3411 + }, + { + "left_line": 3412, + "right_line": 3412 + }, + { + "left_line": 3413, + "right_line": 3413 + }, + { + "left_line": 3414, + "right_line": 3414 + }, + { + "left_line": 3415, + "right_line": 3415 + }, + { + "left_line": 3416, + "right_line": 3416 + }, + { + "left_line": 3417, + "right_line": 3417 + }, + { + "left_line": 3418, + "right_line": 3418 + }, + { + "left_line": 3419, + "right_line": 3419 + }, + { + "left_line": 3420, + "right_line": 3420 + }, + { + "left_line": 3421, + "right_line": 3421 + }, + { + "left_line": 3422, + "right_line": 3422 + }, + { + "left_line": 3423, + "right_line": 3423 + }, + { + "left_line": 3424, + "right_line": 3424 + }, + { + "left_line": 3425, + "right_line": 3425 + }, + { + "left_line": 3426, + "right_line": 3426 + }, + { + "left_line": 3427, + "right_line": 3427 + }, + { + "left_line": 3428, + "right_line": 3428 + }, + { + "left_line": 3429, + "right_line": 3429 + }, + { + "left_line": 3430, + "right_line": 3430 + }, + { + "left_line": 3431, + "right_line": 3431 + }, + { + "left_line": 3432, + "right_line": 3432 + }, + { + "left_line": 3433, + "right_line": 3433 + }, + { + "left_line": 3434, + "right_line": 3434 + }, + { + "left_line": 3435, + "right_line": 3435 + }, + { + "left_line": 3436, + "right_line": 3436 + }, + { + "left_line": 3437, + "right_line": 3437 + }, + { + "left_line": 3438, + "right_line": 3438 + }, + { + "left_line": 3439, + "right_line": 3439 + }, + { + "left_line": 3440, + "right_line": 3440 + }, + { + "left_line": 3441, + "right_line": 3441 + }, + { + "left_line": 3442, + "right_line": 3442 + }, + { + "left_line": 3443, + "right_line": 3443 + }, + { + "left_line": 3444, + "right_line": 3444 + }, + { + "left_line": 3445, + "right_line": 3445 + }, + { + "left_line": 3446, + "right_line": 3446 + }, + { + "left_line": 3447, + "right_line": 3447 + }, + { + "left_line": 3448, + "right_line": 3448 + }, + { + "left_line": 3449, + "right_line": 3449 + }, + { + "left_line": 3450, + "right_line": 3450 + }, + { + "left_line": 3451, + "right_line": 3451 + }, + { + "left_line": 3452, + "right_line": 3452 + }, + { + "left_line": 3453, + "right_line": 3453 + }, + { + "left_line": 3454, + "right_line": 3454 + }, + { + "left_line": 3455, + "right_line": 3455 + }, + { + "left_line": 3456, + "right_line": 3456 + }, + { + "left_line": 3457, + "right_line": 3457 + }, + { + "left_line": 3458, + "right_line": 3458 + }, + { + "left_line": 3459, + "right_line": 3459 + }, + { + "left_line": 3460, + "right_line": 3460 + }, + { + "left_line": 3461, + "right_line": 3461 + }, + { + "left_line": 3462, + "right_line": 3462 + }, + { + "left_line": 3463, + "right_line": 3463 + }, + { + "left_line": 3464, + "right_line": 3464 + }, + { + "left_line": 3465, + "right_line": 3465 + }, + { + "left_line": 3466, + "right_line": 3466 + }, + { + "left_line": 3467, + "right_line": 3467 + }, + { + "left_line": 3468, + "right_line": 3468 + }, + { + "left_line": 3469, + "right_line": 3469 + }, + { + "left_line": 3470, + "right_line": 3470 + }, + { + "left_line": 3471, + "right_line": 3471 + }, + { + "left_line": 3472, + "right_line": 3472 + }, + { + "left_line": 3473, + "right_line": 3473 + }, + { + "left_line": 3474, + "right_line": 3474 + }, + { + "left_line": 3475, + "right_line": 3475 + }, + { + "left_line": 3476, + "right_line": 3476 + }, + { + "left_line": 3477, + "right_line": 3477 + }, + { + "left_line": 3478, + "right_line": 3478 + }, + { + "left_line": 3479, + "right_line": 3479 + }, + { + "left_line": 3480, + "right_line": 3480 + }, + { + "left_line": 3481, + "right_line": 3481 + }, + { + "left_line": 3482, + "right_line": 3482 + }, + { + "left_line": 3483, + "right_line": 3483 + }, + { + "left_line": 3484, + "right_line": 3484 + }, + { + "left_line": 3485, + "right_line": 3485 + }, + { + "left_line": 3486, + "right_line": 3486 + }, + { + "left_line": 3487, + "right_line": 3487 + }, + { + "left_line": 3488, + "right_line": 3488 + }, + { + "left_line": 3489, + "right_line": 3489 + }, + { + "left_line": 3490, + "right_line": 3490 + }, + { + "left_line": 3491, + "right_line": 3491 + }, + { + "left_line": 3492, + "right_line": 3492 + }, + { + "left_line": 3493, + "right_line": 3493 + }, + { + "left_line": 3494, + "right_line": 3494 + }, + { + "left_line": 3495, + "right_line": 3495 + }, + { + "left_line": 3496, + "right_line": 3496 + }, + { + "left_line": 3497, + "right_line": 3497 + }, + { + "left_line": 3498, + "right_line": 3498 + }, + { + "left_line": 3499, + "right_line": 3499 + }, + { + "left_line": 3500, + "right_line": 3500 + }, + { + "left_line": 3501, + "right_line": 3501 + }, + { + "left_line": 3502, + "right_line": 3502 + }, + { + "left_line": 3503, + "right_line": 3503 + }, + { + "left_line": 3504, + "right_line": 3504 + }, + { + "left_line": 3505, + "right_line": 3505 + }, + { + "left_line": 3506, + "right_line": 3506 + }, + { + "left_line": 3507, + "right_line": 3507 + }, + { + "left_line": 3508, + "right_line": 3508 + }, + { + "left_line": 3509, + "right_line": 3509 + }, + { + "left_line": 3510, + "right_line": 3510 + }, + { + "left_line": 3511, + "right_line": 3511 + }, + { + "left_line": 3512, + "right_line": 3512 + }, + { + "left_line": 3513, + "right_line": 3513 + }, + { + "left_line": 3514, + "right_line": 3514 + }, + { + "left_line": 3515, + "right_line": 3515 + }, + { + "left_line": 3516, + "right_line": 3516 + }, + { + "left_line": 3517, + "right_line": 3517 + }, + { + "left_line": 3518, + "right_line": 3518 + }, + { + "left_line": 3519, + "right_line": 3519 + }, + { + "left_line": 3520, + "right_line": 3520 + }, + { + "left_line": 3521, + "right_line": 3521 + }, + { + "left_line": 3522, + "right_line": 3522 + }, + { + "left_line": 3523, + "right_line": 3523 + }, + { + "left_line": 3524, + "right_line": 3524 + }, + { + "left_line": 3525, + "right_line": 3525 + }, + { + "left_line": 3526, + "right_line": 3526 + }, + { + "left_line": 3527, + "right_line": 3527 + }, + { + "left_line": 3528, + "right_line": 3528 + }, + { + "left_line": 3529, + "right_line": 3529 + }, + { + "left_line": 3530, + "right_line": 3530 + }, + { + "left_line": 3531, + "right_line": 3531 + }, + { + "left_line": 3532, + "right_line": 3532 + }, + { + "left_line": 3533, + "right_line": 3533 + }, + { + "left_line": 3534, + "right_line": 3534 + }, + { + "left_line": 3535, + "right_line": 3535 + }, + { + "left_line": 3536, + "right_line": 3536 + }, + { + "left_line": 3537, + "right_line": 3537 + }, + { + "left_line": 3538, + "right_line": 3538 + }, + { + "left_line": 3539, + "right_line": 3539 + }, + { + "left_line": 3540, + "right_line": 3540 + }, + { + "left_line": 3541, + "right_line": 3541 + }, + { + "left_line": 3542, + "right_line": 3542 + }, + { + "left_line": 3543, + "right_line": 3543 + }, + { + "left_line": 3544, + "right_line": 3544 + }, + { + "left_line": 3545, + "right_line": 3545 + }, + { + "left_line": 3546, + "right_line": 3546 + }, + { + "left_line": 3547, + "right_line": 3547 + }, + { + "left_line": 3548, + "right_line": 3548 + }, + { + "left_line": 3549, + "right_line": 3549 + }, + { + "left_line": 3550, + "right_line": 3550 + }, + { + "left_line": 3551, + "right_line": 3551 + }, + { + "left_line": 3552, + "right_line": 3552 + }, + { + "left_line": 3553, + "right_line": 3553 + }, + { + "left_line": 3554, + "right_line": 3554 + }, + { + "left_line": 3555, + "right_line": 3555 + }, + { + "left_line": 3556, + "right_line": 3556 + }, + { + "left_line": 3557, + "right_line": 3557 + }, + { + "left_line": 3558, + "right_line": 3558 + }, + { + "left_line": 3559, + "right_line": 3559 + }, + { + "left_line": 3560, + "right_line": 3560 + }, + { + "left_line": 3561, + "right_line": 3561 + }, + { + "left_line": 3562, + "right_line": 3562 + }, + { + "left_line": 3563, + "right_line": 3563 + }, + { + "left_line": 3564, + "right_line": 3564 + }, + { + "left_line": 3565, + "right_line": 3565 + }, + { + "left_line": 3566, + "right_line": 3566 + }, + { + "left_line": 3567, + "right_line": 3567 + }, + { + "left_line": 3568, + "right_line": 3568 + }, + { + "left_line": 3569, + "right_line": 3569 + }, + { + "left_line": 3570, + "right_line": 3570 + }, + { + "left_line": 3571, + "right_line": 3571 + }, + { + "left_line": 3572, + "right_line": 3572 + }, + { + "left_line": 3573, + "right_line": 3573 + }, + { + "left_line": 3574, + "right_line": 3574 + }, + { + "left_line": 3575, + "right_line": 3575 + }, + { + "left_line": 3576, + "right_line": 3576 + }, + { + "left_line": 3577, + "right_line": 3577 + }, + { + "left_line": 3578, + "right_line": 3578 + }, + { + "left_line": 3579, + "right_line": 3579 + }, + { + "left_line": 3580, + "right_line": 3580 + }, + { + "left_line": 3581, + "right_line": 3581 + }, + { + "left_line": 3582, + "right_line": 3582 + }, + { + "left_line": 3583, + "right_line": 3583 + }, + { + "left_line": 3584, + "right_line": 3584 + }, + { + "left_line": 3585, + "right_line": 3585 + }, + { + "left_line": 3586, + "right_line": 3586 + }, + { + "left_line": 3587, + "right_line": 3587 + }, + { + "left_line": 3588, + "right_line": 3588 + }, + { + "left_line": 3589, + "right_line": 3589 + }, + { + "left_line": 3590, + "right_line": 3590 + }, + { + "left_line": 3591, + "right_line": 3591 + }, + { + "left_line": 3592, + "right_line": 3592 + }, + { + "left_line": 3593, + "right_line": 3593 + }, + { + "left_line": 3594, + "right_line": 3594 + }, + { + "left_line": 3595, + "right_line": 3595 + }, + { + "left_line": 3596, + "right_line": 3596 + }, + { + "left_line": 3597, + "right_line": 3597 + }, + { + "left_line": 3598, + "right_line": 3598 + }, + { + "left_line": 3599, + "right_line": 3599 + }, + { + "left_line": 3600, + "right_line": 3600 + }, + { + "left_line": 3601, + "right_line": 3601 + }, + { + "left_line": 3602, + "right_line": 3602 + }, + { + "left_line": 3603, + "right_line": 3603 + }, + { + "left_line": 3604, + "right_line": 3604 + }, + { + "left_line": 3605, + "right_line": 3605 + }, + { + "left_line": 3606, + "right_line": 3606 + }, + { + "left_line": 3607, + "right_line": 3607 + }, + { + "left_line": 3608, + "right_line": 3608 + }, + { + "left_line": 3609, + "right_line": 3609 + }, + { + "left_line": 3610, + "right_line": 3610 + }, + { + "left_line": 3611, + "right_line": 3611 + }, + { + "left_line": 3612, + "right_line": 3612 + }, + { + "left_line": 3613, + "right_line": 3613 + }, + { + "left_line": 3614, + "right_line": 3614 + }, + { + "left_line": 3615, + "right_line": 3615 + }, + { + "left_line": 3616, + "right_line": 3616 + }, + { + "left_line": 3617, + "right_line": 3617 + }, + { + "left_line": 3618, + "right_line": 3618 + }, + { + "left_line": 3619, + "right_line": 3619 + }, + { + "left_line": 3620, + "right_line": 3620 + }, + { + "left_line": 3621, + "right_line": 3621 + }, + { + "left_line": 3622, + "right_line": 3622 + }, + { + "left_line": 3623, + "right_line": 3623 + }, + { + "left_line": 3624, + "right_line": 3624 + }, + { + "left_line": 3625, + "right_line": 3625 + }, + { + "left_line": 3626, + "right_line": 3626 + }, + { + "left_line": 3627, + "right_line": 3627 + }, + { + "left_line": 3628, + "right_line": 3628 + }, + { + "left_line": 3629, + "right_line": 3629 + }, + { + "left_line": 3630, + "right_line": 3630 + }, + { + "left_line": 3631, + "right_line": 3631 + }, + { + "left_line": 3632, + "right_line": 3632 + }, + { + "left_line": 3633, + "right_line": 3633 + }, + { + "left_line": 3634, + "right_line": 3634 + }, + { + "left_line": 3635, + "right_line": 3635 + }, + { + "left_line": 3636, + "right_line": 3636 + }, + { + "left_line": 3637, + "right_line": 3637 + }, + { + "left_line": 3638, + "right_line": 3638 + }, + { + "left_line": 3639, + "right_line": 3639 + }, + { + "left_line": 3640, + "right_line": 3640 + }, + { + "left_line": 3641, + "right_line": 3641 + }, + { + "left_line": 3642, + "right_line": 3642 + }, + { + "left_line": 3643, + "right_line": 3643 + }, + { + "left_line": 3644, + "right_line": 3644 + }, + { + "left_line": 3645, + "right_line": 3645 + }, + { + "left_line": 3646, + "right_line": 3646 + }, + { + "left_line": 3647, + "right_line": 3647 + }, + { + "left_line": 3648, + "right_line": 3648 + }, + { + "left_line": 3649, + "right_line": 3649 + }, + { + "left_line": 3650, + "right_line": 3650 + }, + { + "left_line": 3651, + "right_line": 3651 + }, + { + "left_line": 3652, + "right_line": 3652 + }, + { + "left_line": 3653, + "right_line": 3653 + }, + { + "left_line": 3654, + "right_line": 3654 + }, + { + "left_line": 3655, + "right_line": 3655 + }, + { + "left_line": 3656, + "right_line": 3656 + }, + { + "left_line": 3657, + "right_line": 3657 + }, + { + "left_line": 3658, + "right_line": 3658 + }, + { + "left_line": 3659, + "right_line": 3659 + }, + { + "left_line": 3660, + "right_line": 3660 + }, + { + "left_line": 3661, + "right_line": 3661 + }, + { + "left_line": 3662, + "right_line": 3662 + }, + { + "left_line": 3663, + "right_line": 3663 + }, + { + "left_line": 3664, + "right_line": 3664 + }, + { + "left_line": 3665, + "right_line": 3665 + }, + { + "left_line": 3666, + "right_line": 3666 + }, + { + "left_line": 3667, + "right_line": 3667 + }, + { + "left_line": 3668, + "right_line": 3668 + }, + { + "left_line": 3669, + "right_line": 3669 + }, + { + "left_line": 3670, + "right_line": 3670 + }, + { + "left_line": 3671, + "right_line": 3671 + }, + { + "left_line": 3672, + "right_line": 3672 + }, + { + "left_line": 3673, + "right_line": 3673 + }, + { + "left_line": 3674, + "right_line": 3674 + }, + { + "left_line": 3675, + "right_line": 3675 + }, + { + "left_line": 3676, + "right_line": 3676 + }, + { + "left_line": 3677, + "right_line": 3677 + }, + { + "left_line": 3678, + "right_line": 3678 + }, + { + "left_line": 3679, + "right_line": 3679 + }, + { + "left_line": 3680, + "right_line": 3680 + }, + { + "left_line": 3681, + "right_line": 3681 + }, + { + "left_line": 3682, + "right_line": 3682 + }, + { + "left_line": 3683, + "right_line": 3683 + }, + { + "left_line": 3684, + "right_line": 3684 + }, + { + "left_line": 3685, + "right_line": 3685 + }, + { + "left_line": 3686, + "right_line": 3686 + }, + { + "left_line": 3687, + "right_line": 3687 + }, + { + "left_line": 3688, + "right_line": 3688 + }, + { + "left_line": 3689, + "right_line": 3689 + }, + { + "left_line": 3690, + "right_line": 3690 + }, + { + "left_line": 3691, + "right_line": 3691 + }, + { + "left_line": 3692, + "right_line": 3692 + }, + { + "left_line": 3693, + "right_line": 3693 + }, + { + "left_line": 3694, + "right_line": 3694 + }, + { + "left_line": 3695, + "right_line": 3695 + }, + { + "left_line": 3696, + "right_line": 3696 + }, + { + "left_line": 3697, + "right_line": 3697 + }, + { + "left_line": 3698, + "right_line": 3698 + }, + { + "left_line": 3699, + "right_line": 3699 + }, + { + "left_line": 3700, + "right_line": 3700 + }, + { + "left_line": 3701, + "right_line": 3701 + }, + { + "left_line": 3702, + "right_line": 3702 + }, + { + "left_line": 3703, + "right_line": 3703 + }, + { + "left_line": 3704, + "right_line": 3704 + }, + { + "left_line": 3705, + "right_line": 3705 + }, + { + "left_line": 3706, + "right_line": 3706 + }, + { + "left_line": 3707, + "right_line": 3707 + }, + { + "left_line": 3708, + "right_line": 3708 + }, + { + "left_line": 3709, + "right_line": 3709 + }, + { + "left_line": 3710, + "right_line": 3710 + }, + { + "left_line": 3711, + "right_line": 3711 + }, + { + "left_line": 3712, + "right_line": 3712 + }, + { + "left_line": 3713, + "right_line": 3713 + }, + { + "left_line": 3714, + "right_line": 3714 + }, + { + "left_line": 3715, + "right_line": 3715 + }, + { + "left_line": 3716, + "right_line": 3716 + }, + { + "left_line": 3717, + "right_line": 3717 + }, + { + "left_line": 3718, + "right_line": 3718 + }, + { + "left_line": 3719, + "right_line": 3719 + }, + { + "left_line": 3720, + "right_line": 3720 + }, + { + "left_line": 3721, + "right_line": 3721 + }, + { + "left_line": 3722, + "right_line": 3722 + }, + { + "left_line": 3723, + "right_line": 3723 + }, + { + "left_line": 3724, + "right_line": 3724 + }, + { + "left_line": 3725, + "right_line": 3725 + }, + { + "left_line": 3726, + "right_line": 3726 + }, + { + "left_line": 3727, + "right_line": 3727 + }, + { + "left_line": 3728, + "right_line": 3728 + }, + { + "left_line": 3729, + "right_line": 3729 + }, + { + "left_line": 3730, + "right_line": 3730 + }, + { + "left_line": 3731, + "right_line": 3731 + }, + { + "left_line": 3732, + "right_line": 3732 + }, + { + "left_line": 3733, + "right_line": 3733 + }, + { + "left_line": 3734, + "right_line": 3734 + }, + { + "left_line": 3735, + "right_line": 3735 + }, + { + "left_line": 3736, + "right_line": 3736 + }, + { + "left_line": 3737, + "right_line": 3737 + }, + { + "left_line": 3738, + "right_line": 3738 + }, + { + "left_line": 3739, + "right_line": 3739 + }, + { + "left_line": 3740, + "right_line": 3740 + }, + { + "left_line": 3741, + "right_line": 3741 + }, + { + "left_line": 3742, + "right_line": 3742 + }, + { + "left_line": 3743, + "right_line": 3743 + }, + { + "left_line": 3744, + "right_line": 3744 + }, + { + "left_line": 3745, + "right_line": 3745 + }, + { + "left_line": 3746, + "right_line": 3746 + }, + { + "left_line": 3747, + "right_line": 3747 + }, + { + "left_line": 3748, + "right_line": 3748 + }, + { + "left_line": 3749, + "right_line": 3749 + }, + { + "left_line": 3750, + "right_line": 3750 + }, + { + "left_line": 3751, + "right_line": 3751 + }, + { + "left_line": 3752, + "right_line": 3752 + }, + { + "left_line": 3753, + "right_line": 3753 + }, + { + "left_line": 3754, + "right_line": 3754 + }, + { + "left_line": 3755, + "right_line": 3755 + }, + { + "left_line": 3756, + "right_line": 3756 + }, + { + "left_line": 3757, + "right_line": 3757 + }, + { + "left_line": 3758, + "right_line": 3758 + }, + { + "left_line": 3759, + "right_line": 3759 + }, + { + "left_line": 3760, + "right_line": 3760 + }, + { + "left_line": 3761, + "right_line": 3761 + }, + { + "left_line": 3762, + "right_line": 3762 + }, + { + "left_line": 3763, + "right_line": 3763 + }, + { + "left_line": 3764, + "right_line": 3764 + }, + { + "left_line": 3765, + "right_line": 3765 + }, + { + "left_line": 3766, + "right_line": 3766 + }, + { + "left_line": 3767, + "right_line": 3767 + }, + { + "left_line": 3768, + "right_line": 3768 + }, + { + "left_line": 3769, + "right_line": 3769 + }, + { + "left_line": 3770, + "right_line": 3770 + }, + { + "left_line": 3771, + "right_line": 3771 + }, + { + "left_line": 3772, + "right_line": 3772 + }, + { + "left_line": 3773, + "right_line": 3773 + }, + { + "left_line": 3774, + "right_line": 3774 + }, + { + "left_line": 3775, + "right_line": 3775 + }, + { + "left_line": 3776, + "right_line": 3776 + }, + { + "left_line": 3777, + "right_line": 3777 + }, + { + "left_line": 3778, + "right_line": 3778 + }, + { + "left_line": 3779, + "right_line": 3779 + }, + { + "left_line": 3780, + "right_line": 3780 + }, + { + "left_line": 3781, + "right_line": 3781 + }, + { + "left_line": 3782, + "right_line": 3782 + }, + { + "left_line": 3783, + "right_line": 3783 + }, + { + "left_line": 3784, + "right_line": 3784 + }, + { + "left_line": 3785, + "right_line": 3785 + }, + { + "left_line": 3786, + "right_line": 3786 + }, + { + "left_line": 3787, + "right_line": 3787 + }, + { + "left_line": 3788, + "right_line": 3788 + }, + { + "left_line": 3789, + "right_line": 3789 + }, + { + "left_line": 3790, + "right_line": 3790 + }, + { + "left_line": 3791, + "right_line": 3791 + }, + { + "left_line": 3792, + "right_line": 3792 + }, + { + "left_line": 3793, + "right_line": 3793 + }, + { + "left_line": 3794, + "right_line": 3794 + }, + { + "left_line": 3795, + "right_line": 3795 + }, + { + "left_line": 3796, + "right_line": 3796 + }, + { + "left_line": 3797, + "right_line": 3797 + }, + { + "left_line": 3798, + "right_line": 3798 + }, + { + "left_line": 3799, + "right_line": 3799 + }, + { + "left_line": 3800, + "right_line": 3800 + }, + { + "left_line": 3801, + "right_line": 3801 + }, + { + "left_line": 3802, + "right_line": 3802 + }, + { + "left_line": 3803, + "right_line": 3803 + }, + { + "left_line": 3804, + "right_line": 3804 + }, + { + "left_line": 3805, + "right_line": 3805 + }, + { + "left_line": 3806, + "right_line": 3806 + }, + { + "left_line": 3807, + "right_line": 3807 + }, + { + "left_line": 3808, + "right_line": 3808 + }, + { + "left_line": 3809, + "right_line": 3809 + }, + { + "left_line": 3810, + "right_line": 3810 + }, + { + "left_line": 3811, + "right_line": 3811 + }, + { + "left_line": 3812, + "right_line": 3812 + }, + { + "left_line": 3813, + "right_line": 3813 + }, + { + "left_line": 3814, + "right_line": 3814 + }, + { + "left_line": 3815, + "right_line": 3815 + }, + { + "left_line": 3816, + "right_line": 3816 + }, + { + "left_line": 3817, + "right_line": 3817 + }, + { + "left_line": 3818, + "right_line": 3818 + }, + { + "left_line": 3819, + "right_line": 3819 + }, + { + "left_line": 3820, + "right_line": 3820 + }, + { + "left_line": 3821, + "right_line": 3821 + }, + { + "left_line": 3822, + "right_line": 3822 + }, + { + "left_line": 3823, + "right_line": 3823 + }, + { + "left_line": 3824, + "right_line": 3824 + }, + { + "left_line": 3825, + "right_line": 3825 + }, + { + "left_line": 3826, + "right_line": 3826 + }, + { + "left_line": 3827, + "right_line": 3827 + }, + { + "left_line": 3828, + "right_line": 3828 + }, + { + "left_line": 3829, + "right_line": 3829 + }, + { + "left_line": 3830, + "right_line": 3830 + }, + { + "left_line": 3831, + "right_line": 3831 + }, + { + "left_line": 3832, + "right_line": 3832 + }, + { + "left_line": 3833, + "right_line": 3833 + }, + { + "left_line": 3834, + "right_line": 3834 + }, + { + "left_line": 3835, + "right_line": 3835 + }, + { + "left_line": 3836, + "right_line": 3836 + }, + { + "left_line": 3837, + "right_line": 3837 + }, + { + "left_line": 3838, + "right_line": 3838 + }, + { + "left_line": 3839, + "right_line": 3839 + }, + { + "left_line": 3840, + "right_line": 3840 + }, + { + "left_line": 3841, + "right_line": 3841 + }, + { + "left_line": 3842, + "right_line": 3842 + }, + { + "left_line": 3843, + "right_line": 3843 + }, + { + "left_line": 3844, + "right_line": 3844 + }, + { + "left_line": 3845, + "right_line": 3845 + }, + { + "left_line": 3846, + "right_line": 3846 + }, + { + "left_line": 3847, + "right_line": 3847 + }, + { + "left_line": 3848, + "right_line": 3848 + }, + { + "left_line": 3849, + "right_line": 3849 + }, + { + "left_line": 3850, + "right_line": 3850 + }, + { + "left_line": 3851, + "right_line": 3851 + }, + { + "left_line": 3852, + "right_line": 3852 + }, + { + "left_line": 3853, + "right_line": 3853 + }, + { + "left_line": 3854, + "right_line": 3854 + }, + { + "left_line": 3855, + "right_line": 3855 + }, + { + "left_line": 3856, + "right_line": 3856 + }, + { + "left_line": 3857, + "right_line": 3857 + }, + { + "left_line": 3858, + "right_line": 3858 + }, + { + "left_line": 3859, + "right_line": 3859 + }, + { + "left_line": 3860, + "right_line": 3860 + }, + { + "left_line": 3861, + "right_line": 3861 + }, + { + "left_line": 3862, + "right_line": 3862 + }, + { + "left_line": 3863, + "right_line": 3863 + }, + { + "left_line": 3864, + "right_line": 3864 + }, + { + "left_line": 3865, + "right_line": 3865 + }, + { + "left_line": 3866, + "right_line": 3866 + }, + { + "left_line": 3867, + "right_line": 3867 + }, + { + "left_line": 3868, + "right_line": 3868 + }, + { + "left_line": 3869, + "right_line": 3869 + }, + { + "left_line": 3870, + "right_line": 3870 + }, + { + "left_line": 3871, + "right_line": 3871 + }, + { + "left_line": 3872, + "right_line": 3872 + }, + { + "left_line": 3873, + "right_line": 3873 + }, + { + "left_line": 3874, + "right_line": 3874 + }, + { + "left_line": 3875, + "right_line": 3875 + }, + { + "left_line": 3876, + "right_line": 3876 + }, + { + "left_line": 3877, + "right_line": 3877 + }, + { + "left_line": 3878, + "right_line": 3878 + }, + { + "left_line": 3879, + "right_line": 3879 + }, + { + "left_line": 3880, + "right_line": 3880 + }, + { + "left_line": 3881, + "right_line": 3881 + }, + { + "left_line": 3882, + "right_line": 3882 + }, + { + "left_line": 3883, + "right_line": 3883 + }, + { + "left_line": 3884, + "right_line": 3884 + }, + { + "left_line": 3885, + "right_line": 3885 + }, + { + "left_line": 3886, + "right_line": 3886 + }, + { + "left_line": 3887, + "right_line": 3887 + }, + { + "left_line": 3888, + "right_line": 3888 + }, + { + "left_line": 3889, + "right_line": 3889 + }, + { + "left_line": 3890, + "right_line": 3890 + }, + { + "left_line": 3891, + "right_line": 3891 + }, + { + "left_line": 3892, + "right_line": 3892 + }, + { + "left_line": 3893, + "right_line": 3893 + }, + { + "left_line": 3894, + "right_line": 3894 + }, + { + "left_line": 3895, + "right_line": 3895 + }, + { + "left_line": 3896, + "right_line": 3896 + }, + { + "left_line": 3897, + "right_line": 3897 + }, + { + "left_line": 3898, + "right_line": 3898 + }, + { + "left_line": 3899, + "right_line": 3899 + }, + { + "left_line": 3900, + "right_line": 3900 + }, + { + "left_line": 3901, + "right_line": 3901 + }, + { + "left_line": 3902, + "right_line": 3902 + }, + { + "left_line": 3903, + "right_line": 3903 + }, + { + "left_line": 3904, + "right_line": 3904 + }, + { + "left_line": 3905, + "right_line": 3905 + }, + { + "left_line": 3906, + "right_line": 3906 + }, + { + "left_line": 3907, + "right_line": 3907 + }, + { + "left_line": 3908, + "right_line": 3908 + }, + { + "left_line": 3909, + "right_line": 3909 + }, + { + "left_line": 3910, + "right_line": 3910 + }, + { + "left_line": 3911, + "right_line": 3911 + }, + { + "left_line": 3912, + "right_line": 3912 + }, + { + "left_line": 3913, + "right_line": 3913 + }, + { + "left_line": 3914, + "right_line": 3914 + }, + { + "left_line": 3915, + "right_line": 3915 + }, + { + "left_line": 3916, + "right_line": 3916 + }, + { + "left_line": 3917, + "right_line": 3917 + }, + { + "left_line": 3918, + "right_line": 3918 + }, + { + "left_line": 3919, + "right_line": 3919 + }, + { + "left_line": 3920, + "right_line": 3920 + }, + { + "left_line": 3921, + "right_line": 3921 + }, + { + "left_line": 3922, + "right_line": 3922 + }, + { + "left_line": 3923, + "right_line": 3923 + }, + { + "left_line": 3924, + "right_line": 3924 + }, + { + "left_line": 3925, + "right_line": 3925 + }, + { + "left_line": 3926, + "right_line": 3926 + }, + { + "left_line": 3927, + "right_line": 3927 + }, + { + "left_line": 3928, + "right_line": 3928 + }, + { + "left_line": 3929, + "right_line": 3929 + }, + { + "left_line": 3930, + "right_line": 3930 + }, + { + "left_line": 3931, + "right_line": 3931 + }, + { + "left_line": 3932, + "right_line": 3932 + }, + { + "left_line": 3933, + "right_line": 3933 + }, + { + "left_line": 3934, + "right_line": 3934 + }, + { + "left_line": 3935, + "right_line": 3935 + }, + { + "left_line": 3936, + "right_line": 3936 + }, + { + "left_line": 3937, + "right_line": 3937 + }, + { + "left_line": 3938, + "right_line": 3938 + }, + { + "left_line": 3939, + "right_line": 3939 + }, + { + "left_line": 3940, + "right_line": 3940 + }, + { + "left_line": 3941, + "right_line": 3941 + }, + { + "left_line": 3942, + "right_line": 3942 + }, + { + "left_line": 3943, + "right_line": 3943 + }, + { + "left_line": 3944, + "right_line": 3944 + }, + { + "left_line": 3945, + "right_line": 3945 + }, + { + "left_line": 3946, + "right_line": 3946 + }, + { + "left_line": 3947, + "right_line": 3947 + }, + { + "left_line": 3948, + "right_line": 3948 + }, + { + "left_line": 3949, + "right_line": 3949 + }, + { + "left_line": 3950, + "right_line": 3950 + }, + { + "left_line": 3951, + "right_line": 3951 + }, + { + "left_line": 3952, + "right_line": 3952 + }, + { + "left_line": 3953, + "right_line": 3953 + }, + { + "left_line": 3954, + "right_line": 3954 + }, + { + "left_line": 3955, + "right_line": 3955 + }, + { + "left_line": 3956, + "right_line": 3956 + }, + { + "left_line": 3957, + "right_line": 3957 + }, + { + "left_line": 3958, + "right_line": 3958 + }, + { + "left_line": 3959, + "right_line": 3959 + }, + { + "left_line": 3960, + "right_line": 3960 + }, + { + "left_line": 3961, + "right_line": 3961 + }, + { + "left_line": 3962, + "right_line": 3962 + }, + { + "left_line": 3963, + "right_line": 3963 + }, + { + "left_line": 3964, + "right_line": 3964 + }, + { + "left_line": 3965, + "right_line": 3965 + }, + { + "left_line": 3966, + "right_line": 3966 + }, + { + "left_line": 3967, + "right_line": 3967 + }, + { + "left_line": 3968, + "right_line": 3968 + }, + { + "left_line": 3969, + "right_line": 3969 + }, + { + "left_line": 3970, + "right_line": 3970 + }, + { + "left_line": 3971, + "right_line": 3971 + }, + { + "left_line": 3972, + "right_line": 3972 + }, + { + "left_line": 3973, + "right_line": 3973 + }, + { + "left_line": 3974, + "right_line": 3974 + }, + { + "left_line": 3975, + "right_line": 3975 + }, + { + "left_line": 3976, + "right_line": 3976 + }, + { + "left_line": 3977, + "right_line": 3977 + }, + { + "left_line": 3978, + "right_line": 3978 + }, + { + "left_line": 3979, + "right_line": 3979 + }, + { + "left_line": 3980, + "right_line": 3980 + }, + { + "left_line": 3981, + "right_line": 3981 + }, + { + "left_line": 3982, + "right_line": 3982 + }, + { + "left_line": 3983, + "right_line": 3983 + }, + { + "left_line": 3984, + "right_line": 3984 + }, + { + "left_line": 3985, + "right_line": 3985 + }, + { + "left_line": 3986, + "right_line": 3986 + }, + { + "left_line": 3987, + "right_line": 3987 + }, + { + "left_line": 3988, + "right_line": 3988 + }, + { + "left_line": 3989, + "right_line": 3989 + }, + { + "left_line": 3990, + "right_line": 3990 + }, + { + "left_line": 3991, + "right_line": 3991 + }, + { + "left_line": 3992, + "right_line": 3992 + }, + { + "left_line": 3993, + "right_line": 3993 + }, + { + "left_line": 3994, + "right_line": 3994 + }, + { + "left_line": 3995, + "right_line": 3995 + }, + { + "left_line": 3996, + "right_line": 3996 + }, + { + "left_line": 3997, + "right_line": 3997 + }, + { + "left_line": 3998, + "right_line": 3998 + }, + { + "left_line": 3999, + "right_line": 3999 + }, + { + "left_line": 4000, + "right_line": 4000 + }, + { + "left_line": 4001, + "right_line": 4001 + }, + { + "left_line": 4002, + "right_line": 4002 + }, + { + "left_line": 4003, + "right_line": 4003 + }, + { + "left_line": 4004, + "right_line": 4004 + }, + { + "left_line": 4005, + "right_line": 4005 + }, + { + "left_line": 4006, + "right_line": 4006 + }, + { + "left_line": 4007, + "right_line": 4007 + }, + { + "left_line": 4008, + "right_line": 4008 + }, + { + "left_line": 4009, + "right_line": 4009 + }, + { + "left_line": 4010, + "right_line": 4010 + }, + { + "left_line": 4011, + "right_line": 4011 + }, + { + "left_line": 4012, + "right_line": 4012 + }, + { + "left_line": 4013, + "right_line": 4013 + }, + { + "left_line": 4014, + "right_line": 4014 + }, + { + "left_line": 4015, + "right_line": 4015 + }, + { + "left_line": 4016, + "right_line": 4016 + }, + { + "left_line": 4017, + "right_line": 4017 + }, + { + "left_line": 4018, + "right_line": 4018 + }, + { + "left_line": 4019, + "right_line": 4019 + }, + { + "left_line": 4020, + "right_line": 4020 + }, + { + "left_line": 4021, + "right_line": 4021 + }, + { + "left_line": 4022, + "right_line": 4022 + }, + { + "left_line": 4023, + "right_line": 4023 + }, + { + "left_line": 4024, + "right_line": 4024 + }, + { + "left_line": 4025, + "right_line": 4025 + }, + { + "left_line": 4026, + "right_line": 4026 + }, + { + "left_line": 4027, + "right_line": 4027 + }, + { + "left_line": 4028, + "right_line": 4028 + }, + { + "left_line": 4029, + "right_line": 4029 + }, + { + "left_line": 4030, + "right_line": 4030 + }, + { + "left_line": 4031, + "right_line": 4031 + }, + { + "left_line": 4032, + "right_line": 4032 + }, + { + "left_line": 4033, + "right_line": 4033 + }, + { + "left_line": 4034, + "right_line": 4034 + }, + { + "left_line": 4035, + "right_line": 4035 + }, + { + "left_line": 4036, + "right_line": 4036 + }, + { + "left_line": 4037, + "right_line": 4037 + }, + { + "left_line": 4038, + "right_line": 4038 + }, + { + "left_line": 4039, + "right_line": 4039 + }, + { + "left_line": 4040, + "right_line": 4040 + }, + { + "left_line": 4041, + "right_line": 4041 + }, + { + "left_line": 4042, + "right_line": 4042 + }, + { + "left_line": 4043, + "right_line": 4043 + }, + { + "left_line": 4044, + "right_line": 4044 + }, + { + "left_line": 4045, + "right_line": 4045 + }, + { + "left_line": 4046, + "right_line": 4046 + }, + { + "left_line": 4047, + "right_line": 4047 + }, + { + "left_line": 4048, + "right_line": 4048 + }, + { + "left_line": 4049, + "right_line": 4049 + }, + { + "left_line": 4050, + "right_line": 4050 + }, + { + "left_line": 4051, + "right_line": 4051 + }, + { + "left_line": 4052, + "right_line": 4052 + }, + { + "left_line": 4053, + "right_line": 4053 + }, + { + "left_line": 4054, + "right_line": 4054 + }, + { + "left_line": 4055, + "right_line": 4055 + }, + { + "left_line": 4056, + "right_line": 4056 + }, + { + "left_line": 4057, + "right_line": 4057 + }, + { + "left_line": 4058, + "right_line": 4058 + }, + { + "left_line": 4059, + "right_line": 4059 + }, + { + "left_line": 4060, + "right_line": 4060 + }, + { + "left_line": 4061, + "right_line": 4061 + }, + { + "left_line": 4062, + "right_line": 4062 + }, + { + "left_line": 4063, + "right_line": 4063 + }, + { + "left_line": 4064, + "right_line": 4064 + }, + { + "left_line": 4065, + "right_line": 4065 + }, + { + "left_line": 4066, + "right_line": 4066 + }, + { + "left_line": 4067, + "right_line": 4067 + }, + { + "left_line": 4068, + "right_line": 4068 + }, + { + "left_line": 4069, + "right_line": 4069 + }, + { + "left_line": 4070, + "right_line": 4070 + }, + { + "left_line": 4071, + "right_line": 4071 + }, + { + "left_line": 4072, + "right_line": 4072 + }, + { + "left_line": 4073, + "right_line": 4073 + }, + { + "left_line": 4074, + "right_line": 4074 + }, + { + "left_line": 4075, + "right_line": 4075 + }, + { + "left_line": 4076, + "right_line": 4076 + }, + { + "left_line": 4077, + "right_line": 4077 + }, + { + "left_line": 4078, + "right_line": 4078 + }, + { + "left_line": 4079, + "right_line": 4079 + }, + { + "left_line": 4080, + "right_line": 4080 + }, + { + "left_line": 4081, + "right_line": 4081 + }, + { + "left_line": 4082, + "right_line": 4082 + }, + { + "left_line": 4083, + "right_line": 4083 + }, + { + "left_line": 4084, + "right_line": 4084 + }, + { + "left_line": 4085, + "right_line": 4085 + }, + { + "left_line": 4086, + "right_line": 4086 + }, + { + "left_line": 4087, + "right_line": 4087 + }, + { + "left_line": 4088, + "right_line": 4088 + }, + { + "left_line": 4089, + "right_line": 4089 + }, + { + "left_line": 4090, + "right_line": 4090 + }, + { + "left_line": 4091, + "right_line": 4091 + }, + { + "left_line": 4092, + "right_line": 4092 + }, + { + "left_line": 4093, + "right_line": 4093 + }, + { + "left_line": 4094, + "right_line": 4094 + }, + { + "left_line": 4095, + "right_line": 4095 + }, + { + "left_line": 4096, + "right_line": 4096 + }, + { + "left_line": 4097, + "right_line": 4097 + }, + { + "left_line": 4098, + "right_line": 4098 + }, + { + "left_line": 4099, + "right_line": 4099 + }, + { + "left_line": 4100, + "right_line": 4100 + }, + { + "left_line": 4101, + "right_line": 4101 + }, + { + "left_line": 4102, + "right_line": 4102 + }, + { + "left_line": 4103, + "right_line": 4103 + }, + { + "left_line": 4104, + "right_line": 4104 + }, + { + "left_line": 4105, + "right_line": 4105 + }, + { + "left_line": 4106, + "right_line": 4106 + }, + { + "left_line": 4107, + "right_line": 4107 + }, + { + "left_line": 4108, + "right_line": 4108 + }, + { + "left_line": 4109, + "right_line": 4109 + }, + { + "left_line": 4110, + "right_line": 4110 + }, + { + "left_line": 4111, + "right_line": 4111 + }, + { + "left_line": 4112, + "right_line": 4112 + }, + { + "left_line": 4113, + "right_line": 4113 + }, + { + "left_line": 4114, + "right_line": 4114 + }, + { + "left_line": 4115, + "right_line": 4115 + }, + { + "left_line": 4116, + "right_line": 4116 + }, + { + "left_line": 4117, + "right_line": 4117 + }, + { + "left_line": 4118, + "right_line": 4118 + }, + { + "left_line": 4119, + "right_line": 4119 + }, + { + "left_line": 4120, + "right_line": 4120 + }, + { + "left_line": 4121, + "right_line": 4121 + }, + { + "left_line": 4122, + "right_line": 4122 + }, + { + "left_line": 4123, + "right_line": 4123 + }, + { + "left_line": 4124, + "right_line": 4124 + }, + { + "left_line": 4125, + "right_line": 4125 + }, + { + "left_line": 4126, + "right_line": 4126 + }, + { + "left_line": 4127, + "right_line": 4127 + }, + { + "left_line": 4128, + "right_line": 4128 + }, + { + "left_line": 4129, + "right_line": 4129 + }, + { + "left_line": 4130, + "right_line": 4130 + }, + { + "left_line": 4131, + "right_line": 4131 + }, + { + "left_line": 4132, + "right_line": 4132 + }, + { + "left_line": 4133, + "right_line": 4133 + }, + { + "left_line": 4134, + "right_line": 4134 + }, + { + "left_line": 4135, + "right_line": 4135 + }, + { + "left_line": 4136, + "right_line": 4136 + }, + { + "left_line": 4137, + "right_line": 4137 + }, + { + "left_line": 4138, + "right_line": 4138 + }, + { + "left_line": 4139, + "right_line": 4139 + }, + { + "left_line": 4140, + "right_line": 4140 + }, + { + "left_line": 4141, + "right_line": 4141 + }, + { + "left_line": 4142, + "right_line": 4142 + }, + { + "left_line": 4143, + "right_line": 4143 + }, + { + "left_line": 4144, + "right_line": 4144 + }, + { + "left_line": 4145, + "right_line": 4145 + }, + { + "left_line": 4146, + "right_line": 4146 + }, + { + "left_line": 4147, + "right_line": 4147 + }, + { + "left_line": 4148, + "right_line": 4148 + }, + { + "left_line": 4149, + "right_line": 4149 + }, + { + "left_line": 4150, + "right_line": 4150 + }, + { + "left_line": 4151, + "right_line": 4151 + }, + { + "left_line": 4152, + "right_line": 4152 + }, + { + "left_line": 4153, + "right_line": 4153 + }, + { + "left_line": 4154, + "right_line": 4154 + }, + { + "left_line": 4155, + "right_line": 4155 + }, + { + "left_line": 4156, + "right_line": 4156 + }, + { + "left_line": 4157, + "right_line": 4157 + }, + { + "left_line": 4158, + "right_line": 4158 + }, + { + "left_line": 4159, + "right_line": 4159 + }, + { + "left_line": 4160, + "right_line": 4160 + }, + { + "left_line": 4161, + "right_line": 4161 + }, + { + "left_line": 4162, + "right_line": 4162 + }, + { + "left_line": 4163, + "right_line": 4163 + }, + { + "left_line": 4164, + "right_line": 4164 + }, + { + "left_line": 4165, + "right_line": 4165 + }, + { + "left_line": 4166, + "right_line": 4166 + }, + { + "left_line": 4167, + "right_line": 4167 + }, + { + "left_line": 4168, + "right_line": 4168 + }, + { + "left_line": 4169, + "right_line": 4169 + }, + { + "left_line": 4170, + "right_line": 4170 + }, + { + "left_line": 4171, + "right_line": 4171 + }, + { + "left_line": 4172, + "right_line": 4172 + }, + { + "left_line": 4173, + "right_line": 4173 + }, + { + "left_line": 4174, + "right_line": 4174 + }, + { + "left_line": 4175, + "right_line": 4175 + }, + { + "left_line": 4176, + "right_line": 4176 + }, + { + "left_line": 4177, + "right_line": 4177 + }, + { + "left_line": 4178, + "right_line": 4178 + }, + { + "left_line": 4179, + "right_line": 4179 + }, + { + "left_line": 4180, + "right_line": 4180 + }, + { + "left_line": 4181, + "right_line": 4181 + }, + { + "left_line": 4182, + "right_line": 4182 + }, + { + "left_line": 4183, + "right_line": 4183 + }, + { + "left_line": 4184, + "right_line": 4184 + }, + { + "left_line": 4185, + "right_line": 4185 + }, + { + "left_line": 4186, + "right_line": 4186 + }, + { + "left_line": 4187, + "right_line": 4187 + }, + { + "left_line": 4188, + "right_line": 4188 + }, + { + "left_line": 4189, + "right_line": 4189 + }, + { + "left_line": 4190, + "right_line": 4190 + }, + { + "left_line": 4191, + "right_line": 4191 + }, + { + "left_line": 4192, + "right_line": 4192 + }, + { + "left_line": 4193, + "right_line": 4193 + }, + { + "left_line": 4194, + "right_line": 4194 + }, + { + "left_line": 4195, + "right_line": 4195 + }, + { + "left_line": 4196, + "right_line": 4196 + }, + { + "left_line": 4197, + "right_line": 4197 + }, + { + "left_line": 4198, + "right_line": 4198 + }, + { + "left_line": 4199, + "right_line": 4199 + }, + { + "left_line": 4200, + "right_line": 4200 + }, + { + "left_line": 4201, + "right_line": 4201 + }, + { + "left_line": 4202, + "right_line": 4202 + }, + { + "left_line": 4203, + "right_line": 4203 + }, + { + "left_line": 4204, + "right_line": 4204 + }, + { + "left_line": 4205, + "right_line": 4205 + }, + { + "left_line": 4206, + "right_line": 4206 + }, + { + "left_line": 4207, + "right_line": 4207 + }, + { + "left_line": 4208, + "right_line": 4208 + }, + { + "left_line": 4209, + "right_line": 4209 + }, + { + "left_line": 4210, + "right_line": 4210 + }, + { + "left_line": 4211, + "right_line": 4211 + }, + { + "left_line": 4212, + "right_line": 4212 + }, + { + "left_line": 4213, + "right_line": 4213 + }, + { + "left_line": 4214, + "right_line": 4214 + }, + { + "left_line": 4215, + "right_line": 4215 + }, + { + "left_line": 4216, + "right_line": 4216 + }, + { + "left_line": 4217, + "right_line": 4217 + }, + { + "left_line": 4218, + "right_line": 4218 + }, + { + "left_line": 4219, + "right_line": 4219 + }, + { + "left_line": 4220, + "right_line": 4220 + }, + { + "left_line": 4221, + "right_line": 4221 + }, + { + "left_line": 4222, + "right_line": 4222 + }, + { + "left_line": 4223, + "right_line": 4223 + }, + { + "left_line": 4224, + "right_line": 4224 + }, + { + "left_line": 4225, + "right_line": 4225 + }, + { + "left_line": 4226, + "right_line": 4226 + }, + { + "left_line": 4227, + "right_line": 4227 + }, + { + "left_line": 4228, + "right_line": 4228 + }, + { + "left_line": 4229, + "right_line": 4229 + }, + { + "left_line": 4230, + "right_line": 4230 + }, + { + "left_line": 4231, + "right_line": 4231 + }, + { + "left_line": 4232, + "right_line": 4232 + }, + { + "left_line": 4233, + "right_line": 4233 + }, + { + "left_line": 4234, + "right_line": 4234 + }, + { + "left_line": 4235, + "right_line": 4235 + }, + { + "left_line": 4236, + "right_line": 4236 + }, + { + "left_line": 4237, + "right_line": 4237 + }, + { + "left_line": 4238, + "right_line": 4238 + }, + { + "left_line": 4239, + "right_line": 4239 + }, + { + "left_line": 4240, + "right_line": 4240 + }, + { + "left_line": 4241, + "right_line": 4241 + }, + { + "left_line": 4242, + "right_line": 4242 + }, + { + "left_line": 4243, + "right_line": 4243 + }, + { + "left_line": 4244, + "right_line": 4244 + }, + { + "left_line": 4245, + "right_line": 4245 + }, + { + "left_line": 4246, + "right_line": 4246 + }, + { + "left_line": 4247, + "right_line": 4247 + }, + { + "left_line": 4248, + "right_line": 4248 + }, + { + "left_line": 4249, + "right_line": 4249 + }, + { + "left_line": 4250, + "right_line": 4250 + }, + { + "left_line": 4251, + "right_line": 4251 + }, + { + "left_line": 4252, + "right_line": 4252 + }, + { + "left_line": 4253, + "right_line": 4253 + }, + { + "left_line": 4254, + "right_line": 4254 + }, + { + "left_line": 4255, + "right_line": 4255 + }, + { + "left_line": 4256, + "right_line": 4256 + }, + { + "left_line": 4257, + "right_line": 4257 + }, + { + "left_line": 4258, + "right_line": 4258 + }, + { + "left_line": 4259, + "right_line": 4259 + }, + { + "left_line": 4260, + "right_line": 4260 + }, + { + "left_line": 4261, + "right_line": 4261 + }, + { + "left_line": 4262, + "right_line": 4262 + }, + { + "left_line": 4263, + "right_line": 4263 + }, + { + "left_line": 4264, + "right_line": 4264 + }, + { + "left_line": 4265, + "right_line": 4265 + }, + { + "left_line": 4266, + "right_line": 4266 + }, + { + "left_line": 4267, + "right_line": 4267 + }, + { + "left_line": 4268, + "right_line": 4268 + }, + { + "left_line": 4269, + "right_line": 4269 + }, + { + "left_line": 4270, + "right_line": 4270 + }, + { + "left_line": 4271, + "right_line": 4271 + }, + { + "left_line": 4272, + "right_line": 4272 + }, + { + "left_line": 4273, + "right_line": 4273 + }, + { + "left_line": 4274, + "right_line": 4274 + }, + { + "left_line": 4275, + "right_line": 4275 + }, + { + "left_line": 4276, + "right_line": 4276 + }, + { + "left_line": 4277, + "right_line": 4277 + }, + { + "left_line": 4278, + "right_line": 4278 + }, + { + "left_line": 4279, + "right_line": 4279 + }, + { + "left_line": 4280, + "right_line": 4280 + }, + { + "left_line": 4281, + "right_line": 4281 + }, + { + "left_line": 4282, + "right_line": 4282 + }, + { + "left_line": 4283, + "right_line": 4283 + }, + { + "left_line": 4284, + "right_line": 4284 + }, + { + "left_line": 4285, + "right_line": 4285 + }, + { + "left_line": 4286, + "right_line": 4286 + }, + { + "left_line": 4287, + "right_line": 4287 + }, + { + "left_line": 4288, + "right_line": 4288 + }, + { + "left_line": 4289, + "right_line": 4289 + }, + { + "left_line": 4290, + "right_line": 4290 + }, + { + "left_line": 4291, + "right_line": 4291 + }, + { + "left_line": 4292, + "right_line": 4292 + }, + { + "left_line": 4293, + "right_line": 4293 + }, + { + "left_line": 4294, + "right_line": 4294 + }, + { + "left_line": 4295, + "right_line": 4295 + }, + { + "left_line": 4296, + "right_line": 4296 + }, + { + "left_line": 4297, + "right_line": 4297 + }, + { + "left_line": 4298, + "right_line": 4298 + }, + { + "left_line": 4299, + "right_line": 4299 + }, + { + "left_line": 4300, + "right_line": 4300 + }, + { + "left_line": 4301, + "right_line": 4301 + }, + { + "left_line": 4302, + "right_line": 4302 + }, + { + "left_line": 4303, + "right_line": 4303 + }, + { + "left_line": 4304, + "right_line": 4304 + }, + { + "left_line": 4305, + "right_line": 4305 + }, + { + "left_line": 4306, + "right_line": 4306 + }, + { + "left_line": 4307, + "right_line": 4307 + }, + { + "left_line": 4308, + "right_line": 4308 + }, + { + "left_line": 4309, + "right_line": 4309 + }, + { + "left_line": 4310, + "right_line": 4310 + }, + { + "left_line": 4311, + "right_line": 4311 + }, + { + "left_line": 4312, + "right_line": 4312 + }, + { + "left_line": 4313, + "right_line": 4313 + }, + { + "left_line": 4314, + "right_line": 4314 + }, + { + "left_line": 4315, + "right_line": 4315 + }, + { + "left_line": 4316, + "right_line": 4316 + }, + { + "left_line": 4317, + "right_line": 4317 + }, + { + "left_line": 4318, + "right_line": 4318 + }, + { + "left_line": 4319, + "right_line": 4319 + }, + { + "left_line": 4320, + "right_line": 4320 + }, + { + "left_line": 4321, + "right_line": 4321 + }, + { + "left_line": 4322, + "right_line": 4322 + }, + { + "left_line": 4323, + "right_line": 4323 + }, + { + "left_line": 4324, + "right_line": 4324 + }, + { + "left_line": 4325, + "right_line": 4325 + }, + { + "left_line": 4326, + "right_line": 4326 + }, + { + "left_line": 4327, + "right_line": 4327 + }, + { + "left_line": 4328, + "right_line": 4328 + }, + { + "left_line": 4329, + "right_line": 4329 + }, + { + "left_line": 4330, + "right_line": 4330 + }, + { + "left_line": 4331, + "right_line": 4331 + }, + { + "left_line": 4332, + "right_line": 4332 + }, + { + "left_line": 4333, + "right_line": 4333 + }, + { + "left_line": 4334, + "right_line": 4334 + }, + { + "left_line": 4335, + "right_line": 4335 + }, + { + "left_line": 4336, + "right_line": 4336 + }, + { + "left_line": 4337, + "right_line": 4337 + }, + { + "left_line": 4338, + "right_line": 4338 + }, + { + "left_line": 4339, + "right_line": 4339 + }, + { + "left_line": 4340, + "right_line": 4340 + }, + { + "left_line": 4341, + "right_line": 4341 + }, + { + "left_line": 4342, + "right_line": 4342 + }, + { + "left_line": 4343, + "right_line": 4343 + }, + { + "left_line": 4344, + "right_line": 4344 + }, + { + "left_line": 4345, + "right_line": 4345 + }, + { + "left_line": 4346, + "right_line": 4346 + }, + { + "left_line": 4347, + "right_line": 4347 + }, + { + "left_line": 4348, + "right_line": 4348 + }, + { + "left_line": 4349, + "right_line": 4349 + }, + { + "left_line": 4350, + "right_line": 4350 + }, + { + "left_line": 4351, + "right_line": 4351 + }, + { + "left_line": 4352, + "right_line": 4352 + }, + { + "left_line": 4353, + "right_line": 4353 + }, + { + "left_line": 4354, + "right_line": 4354 + }, + { + "left_line": 4355, + "right_line": 4355 + }, + { + "left_line": 4356, + "right_line": 4356 + }, + { + "left_line": 4357, + "right_line": 4357 + }, + { + "left_line": 4358, + "right_line": 4358 + }, + { + "left_line": 4359, + "right_line": 4359 + }, + { + "left_line": 4360, + "right_line": 4360 + }, + { + "left_line": 4361, + "right_line": 4361 + }, + { + "left_line": 4362, + "right_line": 4362 + }, + { + "left_line": 4363, + "right_line": 4363 + }, + { + "left_line": 4364, + "right_line": 4364 + }, + { + "left_line": 4365, + "right_line": 4365 + }, + { + "left_line": 4366, + "right_line": 4366 + }, + { + "left_line": 4367, + "right_line": 4367 + }, + { + "left_line": 4368, + "right_line": 4368 + }, + { + "left_line": 4369, + "right_line": 4369 + }, + { + "left_line": 4370, + "right_line": 4370 + }, + { + "left_line": 4371, + "right_line": 4371 + }, + { + "left_line": 4372, + "right_line": 4372 + }, + { + "left_line": 4373, + "right_line": 4373 + }, + { + "left_line": 4374, + "right_line": 4374 + }, + { + "left_line": 4375, + "right_line": 4375 + }, + { + "left_line": 4376, + "right_line": 4376 + }, + { + "left_line": 4377, + "right_line": 4377 + }, + { + "left_line": 4378, + "right_line": 4378 + }, + { + "left_line": 4379, + "right_line": 4379 + }, + { + "left_line": 4380, + "right_line": 4380 + }, + { + "left_line": 4381, + "right_line": 4381 + }, + { + "left_line": 4382, + "right_line": 4382 + }, + { + "left_line": 4383, + "right_line": 4383 + }, + { + "left_line": 4384, + "right_line": 4384 + }, + { + "left_line": 4385, + "right_line": 4385 + }, + { + "left_line": 4386, + "right_line": 4386 + }, + { + "left_line": 4387, + "right_line": 4387 + }, + { + "left_line": 4388, + "right_line": 4388 + }, + { + "left_line": 4389, + "right_line": 4389 + }, + { + "left_line": 4390, + "right_line": 4390 + }, + { + "left_line": 4391, + "right_line": 4391 + }, + { + "left_line": 4392, + "right_line": 4392 + }, + { + "left_line": 4393, + "right_line": 4393 + }, + { + "left_line": 4394, + "right_line": 4394 + }, + { + "left_line": 4395, + "right_line": 4395 + }, + { + "left_line": 4396, + "right_line": 4396 + }, + { + "left_line": 4397, + "right_line": 4397 + }, + { + "left_line": 4398, + "right_line": 4398 + }, + { + "left_line": 4399, + "right_line": 4399 + }, + { + "left_line": 4400, + "right_line": 4400 + }, + { + "left_line": 4401, + "right_line": 4401 + }, + { + "left_line": 4402, + "right_line": 4402 + }, + { + "left_line": 4403, + "right_line": 4403 + }, + { + "left_line": 4404, + "right_line": 4404 + }, + { + "left_line": 4405, + "right_line": 4405 + }, + { + "left_line": 4406, + "right_line": 4406 + }, + { + "left_line": 4407, + "right_line": 4407 + }, + { + "left_line": 4408, + "right_line": 4408 + }, + { + "left_line": 4409, + "right_line": 4409 + }, + { + "left_line": 4410, + "right_line": 4410 + }, + { + "left_line": 4411, + "right_line": 4411 + }, + { + "left_line": 4412, + "right_line": 4412 + }, + { + "left_line": 4413, + "right_line": 4413 + }, + { + "left_line": 4414, + "right_line": 4414 + }, + { + "left_line": 4415, + "right_line": 4415 + }, + { + "left_line": 4416, + "right_line": 4416 + }, + { + "left_line": 4417, + "right_line": 4417 + }, + { + "left_line": 4418, + "right_line": 4418 + }, + { + "left_line": 4419, + "right_line": 4419 + }, + { + "left_line": 4420, + "right_line": 4420 + }, + { + "left_line": 4421, + "right_line": 4421 + }, + { + "left_line": 4422, + "right_line": 4422 + }, + { + "left_line": 4423, + "right_line": 4423 + }, + { + "left_line": 4424, + "right_line": 4424 + }, + { + "left_line": 4425, + "right_line": 4425 + }, + { + "left_line": 4426, + "right_line": 4426 + }, + { + "left_line": 4427, + "right_line": 4427 + }, + { + "left_line": 4428, + "right_line": 4428 + }, + { + "left_line": 4429, + "right_line": 4429 + }, + { + "left_line": 4430, + "right_line": 4430 + }, + { + "left_line": 4431, + "right_line": 4431 + }, + { + "left_line": 4432, + "right_line": 4432 + }, + { + "left_line": 4433, + "right_line": 4433 + }, + { + "left_line": 4434, + "right_line": 4434 + }, + { + "left_line": 4435, + "right_line": 4435 + }, + { + "left_line": 4436, + "right_line": 4436 + }, + { + "left_line": 4437, + "right_line": 4437 + }, + { + "left_line": 4438, + "right_line": 4438 + }, + { + "left_line": 4439, + "right_line": 4439 + }, + { + "left_line": 4440, + "right_line": 4440 + }, + { + "left_line": 4441, + "right_line": 4441 + }, + { + "left_line": 4442, + "right_line": 4442 + }, + { + "left_line": 4443, + "right_line": 4443 + }, + { + "left_line": 4444, + "right_line": 4444 + }, + { + "left_line": 4445, + "right_line": 4445 + }, + { + "left_line": 4446, + "right_line": 4446 + }, + { + "left_line": 4447, + "right_line": 4447 + }, + { + "left_line": 4448, + "right_line": 4448 + }, + { + "left_line": 4449, + "right_line": 4449 + }, + { + "left_line": 4450, + "right_line": 4450 + }, + { + "left_line": 4451, + "right_line": 4451 + }, + { + "left_line": 4452, + "right_line": 4452 + }, + { + "left_line": 4453, + "right_line": 4453 + }, + { + "left_line": 4454, + "right_line": 4454 + }, + { + "left_line": 4455, + "right_line": 4455 + }, + { + "left_line": 4456, + "right_line": 4456 + }, + { + "left_line": 4457, + "right_line": 4457 + }, + { + "left_line": 4458, + "right_line": 4458 + }, + { + "left_line": 4459, + "right_line": 4459 + }, + { + "left_line": 4460, + "right_line": 4460 + }, + { + "left_line": 4461, + "right_line": 4461 + }, + { + "left_line": 4462, + "right_line": 4462 + }, + { + "left_line": 4463, + "right_line": 4463 + }, + { + "left_line": 4464, + "right_line": 4464 + }, + { + "left_line": 4465, + "right_line": 4465 + }, + { + "left_line": 4466, + "right_line": 4466 + }, + { + "left_line": 4467, + "right_line": 4467 + }, + { + "left_line": 4468, + "right_line": 4468 + }, + { + "left_line": 4469, + "right_line": 4469 + }, + { + "left_line": 4470, + "right_line": 4470 + }, + { + "left_line": 4471, + "right_line": 4471 + }, + { + "left_line": 4472, + "right_line": 4472 + }, + { + "left_line": 4473, + "right_line": 4473 + }, + { + "left_line": 4474, + "right_line": 4474 + }, + { + "left_line": 4475, + "right_line": 4475 + }, + { + "left_line": 4476, + "right_line": 4476 + }, + { + "left_line": 4477, + "right_line": 4477 + }, + { + "left_line": 4478, + "right_line": 4478 + }, + { + "left_line": 4479, + "right_line": 4479 + }, + { + "left_line": 4480, + "right_line": 4480 + }, + { + "left_line": 4481, + "right_line": 4481 + }, + { + "left_line": 4482, + "right_line": 4482 + }, + { + "left_line": 4483, + "right_line": 4483 + }, + { + "left_line": 4484, + "right_line": 4484 + }, + { + "left_line": 4485, + "right_line": 4485 + }, + { + "left_line": 4486, + "right_line": 4486 + }, + { + "left_line": 4487, + "right_line": 4487 + }, + { + "left_line": 4488, + "right_line": 4488 + }, + { + "left_line": 4489, + "right_line": 4489 + }, + { + "left_line": 4490, + "right_line": 4490 + }, + { + "left_line": 4491, + "right_line": 4491 + }, + { + "left_line": 4492, + "right_line": 4492 + }, + { + "left_line": 4493, + "right_line": 4493 + }, + { + "left_line": 4494, + "right_line": 4494 + }, + { + "left_line": 4495, + "right_line": 4495 + }, + { + "left_line": 4496, + "right_line": 4496 + }, + { + "left_line": 4497, + "right_line": 4497 + }, + { + "left_line": 4498, + "right_line": 4498 + }, + { + "left_line": 4499, + "right_line": 4499 + }, + { + "left_line": 4500, + "right_line": 4500 + }, + { + "left_line": 4501, + "right_line": 4501 + }, + { + "left_line": 4502, + "right_line": 4502 + }, + { + "left_line": 4503, + "right_line": 4503 + }, + { + "left_line": 4504, + "right_line": 4504 + }, + { + "left_line": 4505, + "right_line": 4505 + }, + { + "left_line": 4506, + "right_line": 4506 + }, + { + "left_line": 4507, + "right_line": 4507 + }, + { + "left_line": 4508, + "right_line": 4508 + }, + { + "left_line": 4509, + "right_line": 4509 + }, + { + "left_line": 4510, + "right_line": 4510 + }, + { + "left_line": 4511, + "right_line": 4511 + }, + { + "left_line": 4512, + "right_line": 4512 + }, + { + "left_line": 4513, + "right_line": 4513 + }, + { + "left_line": 4514, + "right_line": 4514 + }, + { + "left_line": 4515, + "right_line": 4515 + }, + { + "left_line": 4516, + "right_line": 4516 + }, + { + "left_line": 4517, + "right_line": 4517 + }, + { + "left_line": 4518, + "right_line": 4518 + }, + { + "left_line": 4519, + "right_line": 4519 + }, + { + "left_line": 4520, + "right_line": 4520 + }, + { + "left_line": 4521, + "right_line": 4521 + }, + { + "left_line": 4522, + "right_line": 4522 + }, + { + "left_line": 4523, + "right_line": 4523 + }, + { + "left_line": 4524, + "right_line": 4524 + }, + { + "left_line": 4525, + "right_line": 4525 + }, + { + "left_line": 4526, + "right_line": 4526 + }, + { + "left_line": 4527, + "right_line": 4527 + }, + { + "left_line": 4528, + "right_line": 4528 + }, + { + "left_line": 4529, + "right_line": 4529 + }, + { + "left_line": 4530, + "right_line": 4530 + }, + { + "left_line": 4531, + "right_line": 4531 + }, + { + "left_line": 4532, + "right_line": 4532 + }, + { + "left_line": 4533, + "right_line": 4533 + }, + { + "left_line": 4534, + "right_line": 4534 + }, + { + "left_line": 4535, + "right_line": 4535 + }, + { + "left_line": 4536, + "right_line": 4536 + }, + { + "left_line": 4537, + "right_line": 4537 + }, + { + "left_line": 4538, + "right_line": 4538 + }, + { + "left_line": 4539, + "right_line": 4539 + }, + { + "left_line": 4540, + "right_line": 4540 + }, + { + "left_line": 4541, + "right_line": 4541 + }, + { + "left_line": 4542, + "right_line": 4542 + }, + { + "left_line": 4543, + "right_line": 4543 + }, + { + "left_line": 4544, + "right_line": 4544 + }, + { + "left_line": 4545, + "right_line": 4545 + }, + { + "left_line": 4546, + "right_line": 4546 + }, + { + "left_line": 4547, + "right_line": 4547 + }, + { + "left_line": 4548, + "right_line": 4548 + }, + { + "left_line": 4549, + "right_line": 4549 + }, + { + "left_line": 4550, + "right_line": 4550 + }, + { + "left_line": 4551, + "right_line": 4551 + }, + { + "left_line": 4552, + "right_line": 4552 + }, + { + "left_line": 4553, + "right_line": 4553 + }, + { + "left_line": 4554, + "right_line": 4554 + }, + { + "left_line": 4555, + "right_line": 4555 + }, + { + "left_line": 4556, + "right_line": 4556 + }, + { + "left_line": 4557, + "right_line": 4557 + }, + { + "left_line": 4558, + "right_line": 4558 + }, + { + "left_line": 4559, + "right_line": 4559 + }, + { + "left_line": 4560, + "right_line": 4560 + }, + { + "left_line": 4561, + "right_line": 4561 + }, + { + "left_line": 4562, + "right_line": 4562 + }, + { + "left_line": 4563, + "right_line": 4563 + }, + { + "left_line": 4564, + "right_line": 4564 + }, + { + "left_line": 4565, + "right_line": 4565 + }, + { + "left_line": 4566, + "right_line": 4566 + }, + { + "left_line": 4567, + "right_line": 4567 + }, + { + "left_line": 4568, + "right_line": 4568 + }, + { + "left_line": 4569, + "right_line": 4569 + }, + { + "left_line": 4570, + "right_line": 4570 + }, + { + "left_line": 4571, + "right_line": 4571 + }, + { + "left_line": 4572, + "right_line": 4572 + }, + { + "left_line": 4573, + "right_line": 4573 + }, + { + "left_line": 4574, + "right_line": 4574 + }, + { + "left_line": 4575, + "right_line": 4575 + }, + { + "left_line": 4576, + "right_line": 4576 + }, + { + "left_line": 4577, + "right_line": 4577 + }, + { + "left_line": 4578, + "right_line": 4578 + }, + { + "left_line": 4579, + "right_line": 4579 + }, + { + "left_line": 4580, + "right_line": 4580 + }, + { + "left_line": 4581, + "right_line": 4581 + }, + { + "left_line": 4582, + "right_line": 4582 + }, + { + "left_line": 4583, + "right_line": 4583 + }, + { + "left_line": 4584, + "right_line": 4584 + }, + { + "left_line": 4585, + "right_line": 4585 + }, + { + "left_line": 4586, + "right_line": 4586 + }, + { + "left_line": 4587, + "right_line": 4587 + }, + { + "left_line": 4588, + "right_line": 4588 + }, + { + "left_line": 4589, + "right_line": 4589 + }, + { + "left_line": 4590, + "right_line": 4590 + }, + { + "left_line": 4591, + "right_line": 4591 + }, + { + "left_line": 4592, + "right_line": 4592 + }, + { + "left_line": 4593, + "right_line": 4593 + }, + { + "left_line": 4594, + "right_line": 4594 + }, + { + "left_line": 4595, + "right_line": 4595 + }, + { + "left_line": 4596, + "right_line": 4596 + }, + { + "left_line": 4597, + "right_line": 4597 + }, + { + "left_line": 4598, + "right_line": 4598 + }, + { + "left_line": 4599, + "right_line": 4599 + }, + { + "left_line": 4600, + "right_line": 4600 + }, + { + "left_line": 4601, + "right_line": 4601 + }, + { + "left_line": 4602, + "right_line": 4602 + }, + { + "left_line": 4603, + "right_line": 4603 + }, + { + "left_line": 4604, + "right_line": 4604 + }, + { + "left_line": 4605, + "right_line": 4605 + }, + { + "left_line": 4606, + "right_line": 4606 + }, + { + "left_line": 4607, + "right_line": 4607 + }, + { + "left_line": 4608, + "right_line": 4608 + }, + { + "left_line": 4609, + "right_line": 4609 + }, + { + "left_line": 4610, + "right_line": 4610 + }, + { + "left_line": 4611, + "right_line": 4611 + }, + { + "left_line": 4612, + "right_line": 4612 + }, + { + "left_line": 4613, + "right_line": 4613 + }, + { + "left_line": 4614, + "right_line": 4614 + }, + { + "left_line": 4615, + "right_line": 4615 + }, + { + "left_line": 4616, + "right_line": 4616 + }, + { + "left_line": 4617, + "right_line": 4617 + }, + { + "left_line": 4618, + "right_line": 4618 + }, + { + "left_line": 4619, + "right_line": 4619 + }, + { + "left_line": 4620, + "right_line": 4620 + }, + { + "left_line": 4621, + "right_line": 4621 + }, + { + "left_line": 4622, + "right_line": 4622 + }, + { + "left_line": 4623, + "right_line": 4623 + }, + { + "left_line": 4624, + "right_line": 4624 + }, + { + "left_line": 4625, + "right_line": 4625 + }, + { + "left_line": 4626, + "right_line": 4626 + }, + { + "left_line": 4627, + "right_line": 4627 + }, + { + "left_line": 4628, + "right_line": 4628 + }, + { + "left_line": 4629, + "right_line": 4629 + }, + { + "left_line": 4630, + "right_line": 4630 + }, + { + "left_line": 4631, + "right_line": 4631 + }, + { + "left_line": 4632, + "right_line": 4632 + }, + { + "left_line": 4633, + "right_line": 4633 + }, + { + "left_line": 4634, + "right_line": 4634 + }, + { + "left_line": 4635, + "right_line": 4635 + }, + { + "left_line": 4636, + "right_line": 4636 + }, + { + "left_line": 4637, + "right_line": 4637 + }, + { + "left_line": 4638, + "right_line": 4638 + }, + { + "left_line": 4639, + "right_line": 4639 + }, + { + "left_line": 4640, + "right_line": 4640 + }, + { + "left_line": 4641, + "right_line": 4641 + }, + { + "left_line": 4642, + "right_line": 4642 + }, + { + "left_line": 4643, + "right_line": 4643 + }, + { + "left_line": 4644, + "right_line": 4644 + }, + { + "left_line": 4645, + "right_line": 4645 + }, + { + "left_line": 4646, + "right_line": 4646 + }, + { + "left_line": 4647, + "right_line": 4647 + }, + { + "left_line": 4648, + "right_line": 4648 + }, + { + "left_line": 4649, + "right_line": 4649 + }, + { + "left_line": 4650, + "right_line": 4650 + }, + { + "left_line": 4651, + "right_line": 4651 + }, + { + "left_line": 4652, + "right_line": 4652 + }, + { + "left_line": 4653, + "right_line": 4653 + }, + { + "left_line": 4654, + "right_line": 4654 + }, + { + "left_line": 4655, + "right_line": 4655 + }, + { + "left_line": 4656, + "right_line": 4656 + }, + { + "left_line": 4657, + "right_line": 4657 + }, + { + "left_line": 4658, + "right_line": 4658 + }, + { + "left_line": 4659, + "right_line": 4659 + }, + { + "left_line": 4660, + "right_line": 4660 + }, + { + "left_line": 4661, + "right_line": 4661 + }, + { + "left_line": 4662, + "right_line": 4662 + }, + { + "left_line": 4663, + "right_line": 4663 + }, + { + "left_line": 4664, + "right_line": 4664 + }, + { + "left_line": 4665, + "right_line": 4665 + }, + { + "left_line": 4666, + "right_line": 4666 + }, + { + "left_line": 4667, + "right_line": 4667 + }, + { + "left_line": 4668, + "right_line": 4668 + }, + { + "left_line": 4669, + "right_line": 4669 + }, + { + "left_line": 4670, + "right_line": 4670 + }, + { + "left_line": 4671, + "right_line": 4671 + }, + { + "left_line": 4672, + "right_line": 4672 + }, + { + "left_line": 4673, + "right_line": 4673 + }, + { + "left_line": 4674, + "right_line": 4674 + }, + { + "left_line": 4675, + "right_line": 4675 + }, + { + "left_line": 4676, + "right_line": 4676 + }, + { + "left_line": 4677, + "right_line": 4677 + }, + { + "left_line": 4678, + "right_line": 4678 + }, + { + "left_line": 4679, + "right_line": 4679 + }, + { + "left_line": 4680, + "right_line": 4680 + }, + { + "left_line": 4681, + "right_line": 4681 + }, + { + "left_line": 4682, + "right_line": 4682 + }, + { + "left_line": 4683, + "right_line": 4683 + }, + { + "left_line": 4684, + "right_line": 4684 + }, + { + "left_line": 4685, + "right_line": 4685 + }, + { + "left_line": 4686, + "right_line": 4686 + }, + { + "left_line": 4687, + "right_line": 4687 + }, + { + "left_line": 4688, + "right_line": 4688 + }, + { + "left_line": 4689, + "right_line": 4689 + }, + { + "left_line": 4690, + "right_line": 4690 + }, + { + "left_line": 4691, + "right_line": 4691 + }, + { + "left_line": 4692, + "right_line": 4692 + }, + { + "left_line": 4693, + "right_line": 4693 + }, + { + "left_line": 4694, + "right_line": 4694 + }, + { + "left_line": 4695, + "right_line": 4695 + }, + { + "left_line": 4696, + "right_line": 4696 + }, + { + "left_line": 4697, + "right_line": 4697 + }, + { + "left_line": 4698, + "right_line": 4698 + }, + { + "left_line": 4699, + "right_line": 4699 + }, + { + "left_line": 4700, + "right_line": 4700 + }, + { + "left_line": 4701, + "right_line": 4701 + }, + { + "left_line": 4702, + "right_line": 4702 + }, + { + "left_line": 4703, + "right_line": 4703 + }, + { + "left_line": 4704, + "right_line": 4704 + }, + { + "left_line": 4705, + "right_line": 4705 + }, + { + "left_line": 4706, + "right_line": 4706 + }, + { + "left_line": 4707, + "right_line": 4707 + }, + { + "left_line": 4708, + "right_line": 4708 + }, + { + "left_line": 4709, + "right_line": 4709 + }, + { + "left_line": 4710, + "right_line": 4710 + }, + { + "left_line": 4711, + "right_line": 4711 + }, + { + "left_line": 4712, + "right_line": 4712 + }, + { + "left_line": 4713, + "right_line": 4713 + }, + { + "left_line": 4714, + "right_line": 4714 + }, + { + "left_line": 4715, + "right_line": 4715 + }, + { + "left_line": 4716, + "right_line": 4716 + }, + { + "left_line": 4717, + "right_line": 4717 + }, + { + "left_line": 4718, + "right_line": 4718 + }, + { + "left_line": 4719, + "right_line": 4719 + }, + { + "left_line": 4720, + "right_line": 4720 + }, + { + "left_line": 4721, + "right_line": 4721 + }, + { + "left_line": 4722, + "right_line": 4722 + }, + { + "left_line": 4723, + "right_line": 4723 + }, + { + "left_line": 4724, + "right_line": 4724 + }, + { + "left_line": 4725, + "right_line": 4725 + }, + { + "left_line": 4726, + "right_line": 4726 + }, + { + "left_line": 4727, + "right_line": 4727 + }, + { + "left_line": 4728, + "right_line": 4728 + }, + { + "left_line": 4729, + "right_line": 4729 + }, + { + "left_line": 4730, + "right_line": 4730 + }, + { + "left_line": 4731, + "right_line": 4731 + }, + { + "left_line": 4732, + "right_line": 4732 + }, + { + "left_line": 4733, + "right_line": 4733 + }, + { + "left_line": 4734, + "right_line": 4734 + }, + { + "left_line": 4735, + "right_line": 4735 + }, + { + "left_line": 4736, + "right_line": 4736 + }, + { + "left_line": 4737, + "right_line": 4737 + }, + { + "left_line": 4738, + "right_line": 4738 + }, + { + "left_line": 4739, + "right_line": 4739 + }, + { + "left_line": 4740, + "right_line": 4740 + }, + { + "left_line": 4741, + "right_line": 4741 + }, + { + "left_line": 4742, + "right_line": 4742 + }, + { + "left_line": 4743, + "right_line": 4743 + }, + { + "left_line": 4744, + "right_line": 4744 + }, + { + "left_line": 4745, + "right_line": 4745 + }, + { + "left_line": 4746, + "right_line": 4746 + }, + { + "left_line": 4747, + "right_line": 4747 + }, + { + "left_line": 4748, + "right_line": 4748 + }, + { + "left_line": 4749, + "right_line": 4749 + }, + { + "left_line": 4750, + "right_line": 4750 + }, + { + "left_line": 4751, + "right_line": 4751 + }, + { + "left_line": 4752, + "right_line": 4752 + }, + { + "left_line": 4753, + "right_line": 4753 + }, + { + "left_line": 4754, + "right_line": 4754 + }, + { + "left_line": 4755, + "right_line": 4755 + }, + { + "left_line": 4756, + "right_line": 4756 + }, + { + "left_line": 4757, + "right_line": 4757 + }, + { + "left_line": 4758, + "right_line": 4758 + }, + { + "left_line": 4759, + "right_line": 4759 + }, + { + "left_line": 4760, + "right_line": 4760 + }, + { + "left_line": 4761, + "right_line": 4761 + }, + { + "left_line": 4762, + "right_line": 4762 + }, + { + "left_line": 4763, + "right_line": 4763 + }, + { + "left_line": 4764, + "right_line": 4764 + }, + { + "left_line": 4765, + "right_line": 4765 + }, + { + "left_line": 4766, + "right_line": 4766 + }, + { + "left_line": 4767, + "right_line": 4767 + }, + { + "left_line": 4768, + "right_line": 4768 + }, + { + "left_line": 4769, + "right_line": 4769 + }, + { + "left_line": 4770, + "right_line": 4770 + }, + { + "left_line": 4771, + "right_line": 4771 + }, + { + "left_line": 4772, + "right_line": 4772 + }, + { + "left_line": 4773, + "right_line": 4773 + }, + { + "left_line": 4774, + "right_line": 4774 + }, + { + "left_line": 4775, + "right_line": 4775 + }, + { + "left_line": 4776, + "right_line": 4776 + }, + { + "left_line": 4777, + "right_line": 4777 + }, + { + "left_line": 4778, + "right_line": 4778 + }, + { + "left_line": 4779, + "right_line": 4779 + }, + { + "left_line": 4780, + "right_line": 4780 + }, + { + "left_line": 4781, + "right_line": 4781 + }, + { + "left_line": 4782, + "right_line": 4782 + }, + { + "left_line": 4783, + "right_line": 4783 + }, + { + "left_line": 4784, + "right_line": 4784 + }, + { + "left_line": 4785, + "right_line": 4785 + }, + { + "left_line": 4786, + "right_line": 4786 + }, + { + "left_line": 4787, + "right_line": 4787 + }, + { + "left_line": 4788, + "right_line": 4788 + }, + { + "left_line": 4789, + "right_line": 4789 + }, + { + "left_line": 4790, + "right_line": 4790 + }, + { + "left_line": 4791, + "right_line": 4791 + }, + { + "left_line": 4792, + "right_line": 4792 + }, + { + "left_line": 4793, + "right_line": 4793 + }, + { + "left_line": 4794, + "right_line": 4794 + }, + { + "left_line": 4795, + "right_line": 4795 + }, + { + "left_line": 4796, + "right_line": 4796 + }, + { + "left_line": 4797, + "right_line": 4797 + }, + { + "left_line": 4798, + "right_line": 4798 + }, + { + "left_line": 4799, + "right_line": 4799 + }, + { + "left_line": 4800, + "right_line": 4800 + }, + { + "left_line": 4801, + "right_line": 4801 + }, + { + "left_line": 4802, + "right_line": 4802 + }, + { + "left_line": 4803, + "right_line": 4803 + }, + { + "left_line": 4804, + "right_line": 4804 + }, + { + "left_line": 4805, + "right_line": 4805 + }, + { + "left_line": 4806, + "right_line": 4806 + }, + { + "left_line": 4807, + "right_line": 4807 + }, + { + "left_line": 4808, + "right_line": 4808 + }, + { + "left_line": 4809, + "right_line": 4809 + }, + { + "left_line": 4810, + "right_line": 4810 + }, + { + "left_line": 4811, + "right_line": 4811 + }, + { + "left_line": 4812, + "right_line": 4812 + }, + { + "left_line": 4813, + "right_line": 4813 + }, + { + "left_line": 4814, + "right_line": 4814 + }, + { + "left_line": 4815, + "right_line": 4815 + }, + { + "left_line": 4816, + "right_line": 4816 + }, + { + "left_line": 4817, + "right_line": 4817 + }, + { + "left_line": 4818, + "right_line": 4818 + }, + { + "left_line": 4819, + "right_line": 4819 + }, + { + "left_line": 4820, + "right_line": 4820 + }, + { + "left_line": 4821, + "right_line": 4821 + }, + { + "left_line": 4822, + "right_line": 4822 + }, + { + "left_line": 4823, + "right_line": 4823 + }, + { + "left_line": 4824, + "right_line": 4824 + }, + { + "left_line": 4825, + "right_line": 4825 + }, + { + "left_line": 4826, + "right_line": 4826 + }, + { + "left_line": 4827, + "right_line": 4827 + }, + { + "left_line": 4828, + "right_line": 4828 + }, + { + "left_line": 4829, + "right_line": 4829 + }, + { + "left_line": 4830, + "right_line": 4830 + }, + { + "left_line": 4831, + "right_line": 4831 + }, + { + "left_line": 4832, + "right_line": 4832 + }, + { + "left_line": 4833, + "right_line": 4833 + }, + { + "left_line": 4834, + "right_line": 4834 + }, + { + "left_line": 4835, + "right_line": 4835 + }, + { + "left_line": 4836, + "right_line": 4836 + }, + { + "left_line": 4837, + "right_line": 4837 + }, + { + "left_line": 4838, + "right_line": 4838 + }, + { + "left_line": 4839, + "right_line": 4839 + }, + { + "left_line": 4840, + "right_line": 4840 + }, + { + "left_line": 4841, + "right_line": 4841 + }, + { + "left_line": 4842, + "right_line": 4842 + }, + { + "left_line": 4843, + "right_line": 4843 + }, + { + "left_line": 4844, + "right_line": 4844 + }, + { + "left_line": 4845, + "right_line": 4845 + }, + { + "left_line": 4846, + "right_line": 4846 + }, + { + "left_line": 4847, + "right_line": 4847 + }, + { + "left_line": 4848, + "right_line": 4848 + }, + { + "left_line": 4849, + "right_line": 4849 + }, + { + "left_line": 4850, + "right_line": 4850 + }, + { + "left_line": 4851, + "right_line": 4851 + }, + { + "left_line": 4852, + "right_line": 4852 + }, + { + "left_line": 4853, + "right_line": 4853 + }, + { + "left_line": 4854, + "right_line": 4854 + }, + { + "left_line": 4855, + "right_line": 4855 + }, + { + "left_line": 4856, + "right_line": 4856 + }, + { + "left_line": 4857, + "right_line": 4857 + }, + { + "left_line": 4858, + "right_line": 4858 + }, + { + "left_line": 4859, + "right_line": 4859 + }, + { + "left_line": 4860, + "right_line": 4860 + }, + { + "left_line": 4861, + "right_line": 4861 + }, + { + "left_line": 4862, + "right_line": 4862 + }, + { + "left_line": 4863, + "right_line": 4863 + }, + { + "left_line": 4864, + "right_line": 4864 + }, + { + "left_line": 4865, + "right_line": 4865 + }, + { + "left_line": 4866, + "right_line": 4866 + }, + { + "left_line": 4867, + "right_line": 4867 + }, + { + "left_line": 4868, + "right_line": 4868 + }, + { + "left_line": 4869, + "right_line": 4869 + }, + { + "left_line": 4870, + "right_line": 4870 + }, + { + "left_line": 4871, + "right_line": 4871 + }, + { + "left_line": 4872, + "right_line": 4872 + }, + { + "left_line": 4873, + "right_line": 4873 + }, + { + "left_line": 4874, + "right_line": 4874 + }, + { + "left_line": 4875, + "right_line": 4875 + }, + { + "left_line": 4876, + "right_line": 4876 + }, + { + "left_line": 4877, + "right_line": 4877 + }, + { + "left_line": 4878, + "right_line": 4878 + }, + { + "left_line": 4879, + "right_line": 4879 + }, + { + "left_line": 4880, + "right_line": 4880 + }, + { + "left_line": 4881, + "right_line": 4881 + }, + { + "left_line": 4882, + "right_line": 4882 + }, + { + "left_line": 4883, + "right_line": 4883 + }, + { + "left_line": 4884, + "right_line": 4884 + }, + { + "left_line": 4885, + "right_line": 4885 + }, + { + "left_line": 4886, + "right_line": 4886 + }, + { + "left_line": 4887, + "right_line": 4887 + }, + { + "left_line": 4888, + "right_line": 4888 + }, + { + "left_line": 4889, + "right_line": 4889 + }, + { + "left_line": 4890, + "right_line": 4890 + }, + { + "left_line": 4891, + "right_line": 4891 + }, + { + "left_line": 4892, + "right_line": 4892 + }, + { + "left_line": 4893, + "right_line": 4893 + }, + { + "left_line": 4894, + "right_line": 4894 + }, + { + "left_line": 4895, + "right_line": 4895 + }, + { + "left_line": 4896, + "right_line": 4896 + }, + { + "left_line": 4897, + "right_line": 4897 + }, + { + "left_line": 4898, + "right_line": 4898 + }, + { + "left_line": 4899, + "right_line": 4899 + }, + { + "left_line": 4900, + "right_line": 4900 + }, + { + "left_line": 4901, + "right_line": 4901 + }, + { + "left_line": 4902, + "right_line": 4902 + }, + { + "left_line": 4903, + "right_line": 4903 + }, + { + "left_line": 4904, + "right_line": 4904 + }, + { + "left_line": 4905, + "right_line": 4905 + }, + { + "left_line": 4906, + "right_line": 4906 + }, + { + "left_line": 4907, + "right_line": 4907 + }, + { + "left_line": 4908, + "right_line": 4908 + }, + { + "left_line": 4909, + "right_line": 4909 + }, + { + "left_line": 4910, + "right_line": 4910 + }, + { + "left_line": 4911, + "right_line": 4911 + }, + { + "left_line": 4912, + "right_line": 4912 + }, + { + "left_line": 4913, + "right_line": 4913 + }, + { + "left_line": 4914, + "right_line": 4914 + }, + { + "left_line": 4915, + "right_line": 4915 + }, + { + "left_line": 4916, + "right_line": 4916 + }, + { + "left_line": 4917, + "right_line": 4917 + }, + { + "left_line": 4918, + "right_line": 4918 + }, + { + "left_line": 4919, + "right_line": 4919 + }, + { + "left_line": 4920, + "right_line": 4920 + }, + { + "left_line": 4921, + "right_line": 4921 + }, + { + "left_line": 4922, + "right_line": 4922 + }, + { + "left_line": 4923, + "right_line": 4923 + }, + { + "left_line": 4924, + "right_line": 4924 + }, + { + "left_line": 4925, + "right_line": 4925 + }, + { + "left_line": 4926, + "right_line": 4926 + }, + { + "left_line": 4927, + "right_line": 4927 + }, + { + "left_line": 4928, + "right_line": 4928 + }, + { + "left_line": 4929, + "right_line": 4929 + }, + { + "left_line": 4930, + "right_line": 4930 + }, + { + "left_line": 4931, + "right_line": 4931 + }, + { + "left_line": 4932, + "right_line": 4932 + }, + { + "left_line": 4933, + "right_line": 4933 + }, + { + "left_line": 4934, + "right_line": 4934 + }, + { + "left_line": 4935, + "right_line": 4935 + }, + { + "left_line": 4936, + "right_line": 4936 + }, + { + "left_line": 4937, + "right_line": 4937 + }, + { + "left_line": 4938, + "right_line": 4938 + }, + { + "left_line": 4939, + "right_line": 4939 + }, + { + "left_line": 4940, + "right_line": 4940 + }, + { + "left_line": 4941, + "right_line": 4941 + }, + { + "left_line": 4942, + "right_line": 4942 + }, + { + "left_line": 4943, + "right_line": 4943 + }, + { + "left_line": 4944, + "right_line": 4944 + }, + { + "left_line": 4945, + "right_line": 4945 + }, + { + "left_line": 4946, + "right_line": 4946 + }, + { + "left_line": 4947, + "right_line": 4947 + }, + { + "left_line": 4948, + "right_line": 4948 + }, + { + "left_line": 4949, + "right_line": 4949 + }, + { + "left_line": 4950, + "right_line": 4950 + }, + { + "left_line": 4951, + "right_line": 4951 + }, + { + "left_line": 4952, + "right_line": 4952 + }, + { + "left_line": 4953, + "right_line": 4953 + }, + { + "left_line": 4954, + "right_line": 4954 + }, + { + "left_line": 4955, + "right_line": 4955 + }, + { + "left_line": 4956, + "right_line": 4956 + }, + { + "left_line": 4957, + "right_line": 4957 + }, + { + "left_line": 4958, + "right_line": 4958 + }, + { + "left_line": 4959, + "right_line": 4959 + }, + { + "left_line": 4960, + "right_line": 4960 + }, + { + "left_line": 4961, + "right_line": 4961 + }, + { + "left_line": 4962, + "right_line": 4962 + }, + { + "left_line": 4963, + "right_line": 4963 + }, + { + "left_line": 4964, + "right_line": 4964 + }, + { + "left_line": 4965, + "right_line": 4965 + }, + { + "left_line": 4966, + "right_line": 4966 + }, + { + "left_line": 4967, + "right_line": 4967 + }, + { + "left_line": 4968, + "right_line": 4968 + }, + { + "left_line": 4969, + "right_line": 4969 + }, + { + "left_line": 4970, + "right_line": 4970 + }, + { + "left_line": 4971, + "right_line": 4971 + }, + { + "left_line": 4972, + "right_line": 4972 + }, + { + "left_line": 4973, + "right_line": 4973 + }, + { + "left_line": 4974, + "right_line": 4974 + }, + { + "left_line": 4975, + "right_line": 4975 + }, + { + "left_line": 4976, + "right_line": 4976 + }, + { + "left_line": 4977, + "right_line": 4977 + }, + { + "left_line": 4978, + "right_line": 4978 + }, + { + "left_line": 4979, + "right_line": 4979 + }, + { + "left_line": 4980, + "right_line": 4980 + }, + { + "left_line": 4981, + "right_line": 4981 + }, + { + "left_line": 4982, + "right_line": 4982 + }, + { + "left_line": 4983, + "right_line": 4983 + }, + { + "left_line": 4984, + "right_line": 4984 + }, + { + "left_line": 4985, + "right_line": 4985 + }, + { + "left_line": 4986, + "right_line": 4986 + }, + { + "left_line": 4987, + "right_line": 4987 + }, + { + "left_line": 4988, + "right_line": 4988 + }, + { + "left_line": 4989, + "right_line": 4989 + }, + { + "left_line": 4990, + "right_line": 4990 + }, + { + "left_line": 4991, + "right_line": 4991 + }, + { + "left_line": 4992, + "right_line": 4992 + }, + { + "left_line": 4993, + "right_line": 4993 + }, + { + "left_line": 4994, + "right_line": 4994 + }, + { + "left_line": 4995, + "right_line": 4995 + }, + { + "left_line": 4996, + "right_line": 4996 + }, + { + "left_line": 4997, + "right_line": 4997 + }, + { + "left_line": 4998, + "right_line": 4998 + }, + { + "left_line": 4999, + "right_line": 4999 + }, + { + "left_line": 5000, + "right_line": 5000 + }, + { + "left_line": 5001, + "right_line": 5001 + }, + { + "left_line": 5002, + "right_line": 5002 + }, + { + "left_line": 5003, + "right_line": 5003 + }, + { + "left_line": 5004, + "right_line": 5004 + }, + { + "left_line": 5005, + "right_line": 5005 + }, + { + "left_line": 5006, + "right_line": 5006 + }, + { + "left_line": 5007, + "right_line": 5007 + }, + { + "left_line": 5008, + "right_line": 5008 + }, + { + "left_line": 5009, + "right_line": 5009 + }, + { + "left_line": 5010, + "right_line": 5010 + }, + { + "left_line": 5011, + "right_line": 5011 + }, + { + "left_line": 5012, + "right_line": 5012 + }, + { + "left_line": 5013, + "right_line": 5013 + }, + { + "left_line": 5014, + "right_line": 5014 + }, + { + "left_line": 5015, + "right_line": 5015 + }, + { + "left_line": 5016, + "right_line": 5016 + }, + { + "left_line": 5017, + "right_line": 5017 + }, + { + "left_line": 5018, + "right_line": 5018 + }, + { + "left_line": 5019, + "right_line": 5019 + }, + { + "left_line": 5020, + "right_line": 5020 + }, + { + "left_line": 5021, + "right_line": 5021 + }, + { + "left_line": 5022, + "right_line": 5022 + }, + { + "left_line": 5023, + "right_line": 5023 + }, + { + "left_line": 5024, + "right_line": 5024 + }, + { + "left_line": 5025, + "right_line": 5025 + }, + { + "left_line": 5026, + "right_line": 5026 + }, + { + "left_line": 5027, + "right_line": 5027 + }, + { + "left_line": 5028, + "right_line": 5028 + }, + { + "left_line": 5029, + "right_line": 5029 + }, + { + "left_line": 5030, + "right_line": 5030 + }, + { + "left_line": 5031, + "right_line": 5031 + }, + { + "left_line": 5032, + "right_line": 5032 + }, + { + "left_line": 5033, + "right_line": 5033 + }, + { + "left_line": 5034, + "right_line": 5034 + }, + { + "left_line": 5035, + "right_line": 5035 + }, + { + "left_line": 5036, + "right_line": 5036 + }, + { + "left_line": 5037, + "right_line": 5037 + }, + { + "left_line": 5038, + "right_line": 5038 + }, + { + "left_line": 5039, + "right_line": 5039 + }, + { + "left_line": 5040, + "right_line": 5040 + }, + { + "left_line": 5041, + "right_line": 5041 + }, + { + "left_line": 5042, + "right_line": 5042 + }, + { + "left_line": 5043, + "right_line": 5043 + }, + { + "left_line": 5044, + "right_line": 5044 + }, + { + "left_line": 5045, + "right_line": 5045 + }, + { + "left_line": 5046, + "right_line": 5046 + }, + { + "left_line": 5047, + "right_line": 5047 + }, + { + "left_line": 5048, + "right_line": 5048 + }, + { + "left_line": 5049, + "right_line": 5049 + }, + { + "left_line": 5050, + "right_line": 5050 + }, + { + "left_line": 5051, + "right_line": 5051 + }, + { + "left_line": 5052, + "right_line": 5052 + }, + { + "left_line": 5053, + "right_line": 5053 + }, + { + "left_line": 5054, + "right_line": 5054 + }, + { + "left_line": 5055, + "right_line": 5055 + }, + { + "left_line": 5056, + "right_line": 5056 + }, + { + "left_line": 5057, + "right_line": 5057 + }, + { + "left_line": 5058, + "right_line": 5058 + }, + { + "left_line": 5059, + "right_line": 5059 + }, + { + "left_line": 5060, + "right_line": 5060 + }, + { + "left_line": 5061, + "right_line": 5061 + }, + { + "left_line": 5062, + "right_line": 5062 + }, + { + "left_line": 5063, + "right_line": 5063 + }, + { + "left_line": 5064, + "right_line": 5064 + }, + { + "left_line": 5065, + "right_line": 5065 + }, + { + "left_line": 5066, + "right_line": 5066 + }, + { + "left_line": 5067, + "right_line": 5067 + }, + { + "left_line": 5068, + "right_line": 5068 + }, + { + "left_line": 5069, + "right_line": 5069 + }, + { + "left_line": 5070, + "right_line": 5070 + }, + { + "left_line": 5071, + "right_line": 5071 + }, + { + "left_line": 5072, + "right_line": 5072 + }, + { + "left_line": 5073, + "right_line": 5073 + }, + { + "left_line": 5074, + "right_line": 5074 + }, + { + "left_line": 5075, + "right_line": 5075 + }, + { + "left_line": 5076, + "right_line": 5076 + }, + { + "left_line": 5077, + "right_line": 5077 + }, + { + "left_line": 5078, + "right_line": 5078 + }, + { + "left_line": 5079, + "right_line": 5079 + }, + { + "left_line": 5080, + "right_line": 5080 + }, + { + "left_line": 5081, + "right_line": 5081 + }, + { + "left_line": 5082, + "right_line": 5082 + }, + { + "left_line": 5083, + "right_line": 5083 + }, + { + "left_line": 5084, + "right_line": 5084 + }, + { + "left_line": 5085, + "right_line": 5085 + }, + { + "left_line": 5086, + "right_line": 5086 + }, + { + "left_line": 5087, + "right_line": 5087 + }, + { + "left_line": 5088, + "right_line": 5088 + }, + { + "left_line": 5089, + "right_line": 5089 + }, + { + "left_line": 5090, + "right_line": 5090 + }, + { + "left_line": 5091, + "right_line": 5091 + }, + { + "left_line": 5092, + "right_line": 5092 + }, + { + "left_line": 5093, + "right_line": 5093 + }, + { + "left_line": 5094, + "right_line": 5094 + }, + { + "left_line": 5095, + "right_line": 5095 + }, + { + "left_line": 5096, + "right_line": 5096 + }, + { + "left_line": 5097, + "right_line": 5097 + }, + { + "left_line": 5098, + "right_line": 5098 + }, + { + "left_line": 5099, + "right_line": 5099 + }, + { + "left_line": 5100, + "right_line": 5100 + }, + { + "left_line": 5101, + "right_line": 5101 + }, + { + "left_line": 5102, + "right_line": 5102 + }, + { + "left_line": 5103, + "right_line": 5103 + }, + { + "left_line": 5104, + "right_line": 5104 + }, + { + "left_line": 5105, + "right_line": 5105 + }, + { + "left_line": 5106, + "right_line": 5106 + }, + { + "left_line": 5107, + "right_line": 5107 + }, + { + "left_line": 5108, + "right_line": 5108 + }, + { + "left_line": 5109, + "right_line": 5109 + }, + { + "left_line": 5110, + "right_line": 5110 + }, + { + "left_line": 5111, + "right_line": 5111 + }, + { + "left_line": 5112, + "right_line": 5112 + }, + { + "left_line": 5113, + "right_line": 5113 + }, + { + "left_line": 5114, + "right_line": 5114 + }, + { + "left_line": 5115, + "right_line": 5115 + }, + { + "left_line": 5116, + "right_line": 5116 + }, + { + "left_line": 5117, + "right_line": 5117 + }, + { + "left_line": 5118, + "right_line": 5118 + }, + { + "left_line": 5119, + "right_line": 5119 + }, + { + "left_line": 5120, + "right_line": 5120 + }, + { + "left_line": 5121, + "right_line": 5121 + }, + { + "left_line": 5122, + "right_line": 5122 + }, + { + "left_line": 5123, + "right_line": 5123 + }, + { + "left_line": 5124, + "right_line": 5124 + }, + { + "left_line": 5125, + "right_line": 5125 + }, + { + "left_line": 5126, + "right_line": 5126 + }, + { + "left_line": 5127, + "right_line": 5127 + }, + { + "left_line": 5128, + "right_line": 5128 + }, + { + "left_line": 5129, + "right_line": 5129 + }, + { + "left_line": 5130, + "right_line": 5130 + }, + { + "left_line": 5131, + "right_line": 5131 + }, + { + "left_line": 5132, + "right_line": 5132 + }, + { + "left_line": 5133, + "right_line": 5133 + }, + { + "left_line": 5134, + "right_line": 5134 + }, + { + "left_line": 5135, + "right_line": 5135 + }, + { + "left_line": 5136, + "right_line": 5136 + }, + { + "left_line": 5137, + "right_line": 5137 + }, + { + "left_line": 5138, + "right_line": 5138 + }, + { + "left_line": 5139, + "right_line": 5139 + }, + { + "left_line": 5140, + "right_line": 5140 + }, + { + "left_line": 5141, + "right_line": 5141 + }, + { + "left_line": 5142, + "right_line": 5142 + }, + { + "left_line": 5143, + "right_line": 5143 + }, + { + "left_line": 5144, + "right_line": 5144 + }, + { + "left_line": 5145, + "right_line": 5145 + }, + { + "left_line": 5146, + "right_line": 5146 + }, + { + "left_line": 5147, + "right_line": 5147 + }, + { + "left_line": 5148, + "right_line": 5148 + }, + { + "left_line": 5149, + "right_line": 5149 + }, + { + "left_line": 5150, + "right_line": 5150 + }, + { + "left_line": 5151, + "right_line": 5151 + }, + { + "left_line": 5152, + "right_line": 5152 + }, + { + "left_line": 5153, + "right_line": 5153 + }, + { + "left_line": 5154, + "right_line": 5154 + }, + { + "left_line": 5155, + "right_line": 5155 + }, + { + "left_line": 5156, + "right_line": 5156 + }, + { + "left_line": 5157, + "right_line": 5157 + }, + { + "left_line": 5158, + "right_line": 5158 + }, + { + "left_line": 5159, + "right_line": 5159 + }, + { + "left_line": 5160, + "right_line": 5160 + }, + { + "left_line": 5161, + "right_line": 5161 + }, + { + "left_line": 5162, + "right_line": 5162 + }, + { + "left_line": 5163, + "right_line": 5163 + }, + { + "left_line": 5164, + "right_line": 5164 + }, + { + "left_line": 5165, + "right_line": 5165 + }, + { + "left_line": 5166, + "right_line": 5166 + }, + { + "left_line": 5167, + "right_line": 5167 + }, + { + "left_line": 5168, + "right_line": 5168 + }, + { + "left_line": 5169, + "right_line": 5169 + }, + { + "left_line": 5170, + "right_line": 5170 + }, + { + "left_line": 5171, + "right_line": 5171 + }, + { + "left_line": 5172, + "right_line": 5172 + }, + { + "left_line": 5173, + "right_line": 5173 + }, + { + "left_line": 5174, + "right_line": 5174 + }, + { + "left_line": 5175, + "right_line": 5175 + }, + { + "left_line": 5176, + "right_line": 5176 + }, + { + "left_line": 5177, + "right_line": 5177 + }, + { + "left_line": 5178, + "right_line": 5178 + }, + { + "left_line": 5179, + "right_line": 5179 + }, + { + "left_line": 5180, + "right_line": 5180 + }, + { + "left_line": 5181, + "right_line": 5181 + }, + { + "left_line": 5182, + "right_line": 5182 + }, + { + "left_line": 5183, + "right_line": 5183 + }, + { + "left_line": 5184, + "right_line": 5184 + }, + { + "left_line": 5185, + "right_line": 5185 + }, + { + "left_line": 5186, + "right_line": 5186 + }, + { + "left_line": 5187, + "right_line": 5187 + }, + { + "left_line": 5188, + "right_line": 5188 + }, + { + "left_line": 5189, + "right_line": 5189 + }, + { + "left_line": 5190, + "right_line": 5190 + }, + { + "left_line": 5191, + "right_line": 5191 + }, + { + "left_line": 5192, + "right_line": 5192 + }, + { + "left_line": 5193, + "right_line": 5193 + }, + { + "left_line": 5194, + "right_line": 5194 + }, + { + "left_line": 5195, + "right_line": 5195 + }, + { + "left_line": 5196, + "right_line": 5196 + }, + { + "left_line": 5197, + "right_line": 5197 + }, + { + "left_line": 5198, + "right_line": 5198 + }, + { + "left_line": 5199, + "right_line": 5199 + }, + { + "left_line": 5200, + "right_line": 5200 + }, + { + "left_line": 5201, + "right_line": 5201 + }, + { + "left_line": 5202, + "right_line": 5202 + }, + { + "left_line": 5203, + "right_line": 5203 + }, + { + "left_line": 5204, + "right_line": 5204 + }, + { + "left_line": 5205, + "right_line": 5205 + }, + { + "left_line": 5206, + "right_line": 5206 + }, + { + "left_line": 5207, + "right_line": 5207 + }, + { + "left_line": 5208, + "right_line": 5208 + }, + { + "left_line": 5209, + "right_line": 5209 + }, + { + "left_line": 5210, + "right_line": 5210 + }, + { + "left_line": 5211, + "right_line": 5211 + }, + { + "left_line": 5212, + "right_line": 5212 + }, + { + "left_line": 5213, + "right_line": 5213 + }, + { + "left_line": 5214, + "right_line": 5214 + }, + { + "left_line": 5215, + "right_line": 5215 + }, + { + "left_line": 5216, + "right_line": 5216 + }, + { + "left_line": 5217, + "right_line": 5217 + }, + { + "left_line": 5218, + "right_line": 5218 + }, + { + "left_line": 5219, + "right_line": 5219 + }, + { + "left_line": 5220, + "right_line": 5220 + }, + { + "left_line": 5221, + "right_line": 5221 + }, + { + "left_line": 5222, + "right_line": 5222 + }, + { + "left_line": 5223, + "right_line": 5223 + }, + { + "left_line": 5224, + "right_line": 5224 + }, + { + "left_line": 5225, + "right_line": 5225 + }, + { + "left_line": 5226, + "right_line": 5226 + }, + { + "left_line": 5227, + "right_line": 5227 + }, + { + "left_line": 5228, + "right_line": 5228 + }, + { + "left_line": 5229, + "right_line": 5229 + }, + { + "left_line": 5230, + "right_line": 5230 + }, + { + "left_line": 5231, + "right_line": 5231 + }, + { + "left_line": 5232, + "right_line": 5232 + }, + { + "left_line": 5233, + "right_line": 5233 + }, + { + "left_line": 5234, + "right_line": 5234 + }, + { + "left_line": 5235, + "right_line": 5235 + }, + { + "left_line": 5236, + "right_line": 5236 + }, + { + "left_line": 5237, + "right_line": 5237 + }, + { + "left_line": 5238, + "right_line": 5238 + }, + { + "left_line": 5239, + "right_line": 5239 + }, + { + "left_line": 5240, + "right_line": 5240 + }, + { + "left_line": 5241, + "right_line": 5241 + }, + { + "left_line": 5242, + "right_line": 5242 + }, + { + "left_line": 5243, + "right_line": 5243 + }, + { + "left_line": 5244, + "right_line": 5244 + }, + { + "left_line": 5245, + "right_line": 5245 + }, + { + "left_line": 5246, + "right_line": 5246 + }, + { + "left_line": 5247, + "right_line": 5247 + }, + { + "left_line": 5248, + "right_line": 5248 + }, + { + "left_line": 5249, + "right_line": 5249 + }, + { + "left_line": 5250, + "right_line": 5250 + }, + { + "left_line": 5251, + "right_line": 5251 + }, + { + "left_line": 5252, + "right_line": 5252 + }, + { + "left_line": 5253, + "right_line": 5253 + }, + { + "left_line": 5254, + "right_line": 5254 + }, + { + "left_line": 5255, + "right_line": 5255 + }, + { + "left_line": 5256, + "right_line": 5256 + }, + { + "left_line": 5257, + "right_line": 5257 + }, + { + "left_line": 5258, + "right_line": 5258 + }, + { + "left_line": 5259, + "right_line": 5259 + }, + { + "left_line": 5260, + "right_line": 5260 + }, + { + "left_line": 5261, + "right_line": 5261 + }, + { + "left_line": 5262, + "right_line": 5262 + }, + { + "left_line": 5263, + "right_line": 5263 + }, + { + "left_line": 5264, + "right_line": 5264 + }, + { + "left_line": 5265, + "right_line": 5265 + }, + { + "left_line": 5266, + "right_line": 5266 + }, + { + "left_line": 5267, + "right_line": 5267 + }, + { + "left_line": 5268, + "right_line": 5268 + }, + { + "left_line": 5269, + "right_line": 5269 + }, + { + "left_line": 5270, + "right_line": 5270 + }, + { + "left_line": 5271, + "right_line": 5271 + }, + { + "left_line": 5272, + "right_line": 5272 + }, + { + "left_line": 5273, + "right_line": 5273 + }, + { + "left_line": 5274, + "right_line": 5274 + }, + { + "left_line": 5275, + "right_line": 5275 + }, + { + "left_line": 5276, + "right_line": 5276 + }, + { + "left_line": 5277, + "right_line": 5277 + }, + { + "left_line": 5278, + "right_line": 5278 + }, + { + "left_line": 5279, + "right_line": 5279 + }, + { + "left_line": 5280, + "right_line": 5280 + }, + { + "left_line": 5281, + "right_line": 5281 + }, + { + "left_line": 5282, + "right_line": 5282 + }, + { + "left_line": 5283, + "right_line": 5283 + }, + { + "left_line": 5284, + "right_line": 5284 + }, + { + "left_line": 5285, + "right_line": 5285 + }, + { + "left_line": 5286, + "right_line": 5286 + }, + { + "left_line": 5287, + "right_line": 5287 + }, + { + "left_line": 5288, + "right_line": 5288 + }, + { + "left_line": 5289, + "right_line": 5289 + }, + { + "left_line": 5290, + "right_line": 5290 + }, + { + "left_line": 5291, + "right_line": 5291 + }, + { + "left_line": 5292, + "right_line": 5292 + }, + { + "left_line": 5293, + "right_line": 5293 + }, + { + "left_line": 5294, + "right_line": 5294 + }, + { + "left_line": 5295, + "right_line": 5295 + }, + { + "left_line": 5296, + "right_line": 5296 + }, + { + "left_line": 5297, + "right_line": 5297 + }, + { + "left_line": 5298, + "right_line": 5298 + }, + { + "left_line": 5299, + "right_line": 5299 + }, + { + "left_line": 5300, + "right_line": 5300 + }, + { + "left_line": 5301, + "right_line": 5301 + }, + { + "left_line": 5302, + "right_line": 5302 + }, + { + "left_line": 5303, + "right_line": 5303 + }, + { + "left_line": 5304, + "right_line": 5304 + }, + { + "left_line": 5305, + "right_line": 5305 + }, + { + "left_line": 5306, + "right_line": 5306 + }, + { + "left_line": 5307, + "right_line": 5307 + }, + { + "left_line": 5308, + "right_line": 5308 + }, + { + "left_line": 5309, + "right_line": 5309 + }, + { + "left_line": 5310, + "right_line": 5310 + }, + { + "left_line": 5311, + "right_line": 5311 + }, + { + "left_line": 5312, + "right_line": 5312 + }, + { + "left_line": 5313, + "right_line": 5313 + }, + { + "left_line": 5314, + "right_line": 5314 + }, + { + "left_line": 5315, + "right_line": 5315 + }, + { + "left_line": 5316, + "right_line": 5316 + }, + { + "left_line": 5317, + "right_line": 5317 + }, + { + "left_line": 5318, + "right_line": 5318 + }, + { + "left_line": 5319, + "right_line": 5319 + }, + { + "left_line": 5320, + "right_line": 5320 + }, + { + "left_line": 5321, + "right_line": 5321 + }, + { + "left_line": 5322, + "right_line": 5322 + }, + { + "left_line": 5323, + "right_line": 5323 + }, + { + "left_line": 5324, + "right_line": 5324 + }, + { + "left_line": 5325, + "right_line": 5325 + }, + { + "left_line": 5326, + "right_line": 5326 + }, + { + "left_line": 5327, + "right_line": 5327 + }, + { + "left_line": 5328, + "right_line": 5328 + }, + { + "left_line": 5329, + "right_line": 5329 + }, + { + "left_line": 5330, + "right_line": 5330 + }, + { + "left_line": 5331, + "right_line": 5331 + }, + { + "left_line": 5332, + "right_line": 5332 + }, + { + "left_line": 5333, + "right_line": 5333 + }, + { + "left_line": 5334, + "right_line": 5334 + }, + { + "left_line": 5335, + "right_line": 5335 + }, + { + "left_line": 5336, + "right_line": 5336 + }, + { + "left_line": 5337, + "right_line": 5337 + }, + { + "left_line": 5338, + "right_line": 5338 + }, + { + "left_line": 5339, + "right_line": 5339 + }, + { + "left_line": 5340, + "right_line": 5340 + }, + { + "left_line": 5341, + "right_line": 5341 + }, + { + "left_line": 5342, + "right_line": 5342 + }, + { + "left_line": 5343, + "right_line": 5343 + }, + { + "left_line": 5344, + "right_line": 5344 + }, + { + "left_line": 5345, + "right_line": 5345 + }, + { + "left_line": 5346, + "right_line": 5346 + }, + { + "left_line": 5347, + "right_line": 5347 + }, + { + "left_line": 5348, + "right_line": 5348 + }, + { + "left_line": 5349, + "right_line": 5349 + }, + { + "left_line": 5350, + "right_line": 5350 + }, + { + "left_line": 5351, + "right_line": 5351 + }, + { + "left_line": 5352, + "right_line": 5352 + }, + { + "left_line": 5353, + "right_line": 5353 + }, + { + "left_line": 5354, + "right_line": 5354 + }, + { + "left_line": 5355, + "right_line": 5355 + }, + { + "left_line": 5356, + "right_line": 5356 + }, + { + "left_line": 5357, + "right_line": 5357 + }, + { + "left_line": 5358, + "right_line": 5358 + }, + { + "left_line": 5359, + "right_line": 5359 + }, + { + "left_line": 5360, + "right_line": 5360 + }, + { + "left_line": 5361, + "right_line": 5361 + }, + { + "left_line": 5362, + "right_line": 5362 + }, + { + "left_line": 5363, + "right_line": 5363 + }, + { + "left_line": 5364, + "right_line": 5364 + }, + { + "left_line": 5365, + "right_line": 5365 + }, + { + "left_line": 5366, + "right_line": 5366 + }, + { + "left_line": 5367, + "right_line": 5367 + }, + { + "left_line": 5368, + "right_line": 5368 + }, + { + "left_line": 5369, + "right_line": 5369 + }, + { + "left_line": 5370, + "right_line": 5370 + }, + { + "left_line": 5371, + "right_line": 5371 + }, + { + "left_line": 5372, + "right_line": 5372 + }, + { + "left_line": 5373, + "right_line": 5373 + }, + { + "left_line": 5374, + "right_line": 5374 + }, + { + "left_line": 5375, + "right_line": 5375 + }, + { + "left_line": 5376, + "right_line": 5376 + }, + { + "left_line": 5377, + "right_line": 5377 + }, + { + "left_line": 5378, + "right_line": 5378 + }, + { + "left_line": 5379, + "right_line": 5379 + }, + { + "left_line": 5380, + "right_line": 5380 + }, + { + "left_line": 5381, + "right_line": 5381 + }, + { + "left_line": 5382, + "right_line": 5382 + }, + { + "left_line": 5383, + "right_line": 5383 + }, + { + "left_line": 5384, + "right_line": 5384 + }, + { + "left_line": 5385, + "right_line": 5385 + }, + { + "left_line": 5386, + "right_line": 5386 + }, + { + "left_line": 5387, + "right_line": 5387 + }, + { + "left_line": 5388, + "right_line": 5388 + }, + { + "left_line": 5389, + "right_line": 5389 + }, + { + "left_line": 5390, + "right_line": 5390 + }, + { + "left_line": 5391, + "right_line": 5391 + }, + { + "left_line": 5392, + "right_line": 5392 + }, + { + "left_line": 5393, + "right_line": 5393 + }, + { + "left_line": 5394, + "right_line": 5394 + }, + { + "left_line": 5395, + "right_line": 5395 + }, + { + "left_line": 5396, + "right_line": 5396 + }, + { + "left_line": 5397, + "right_line": 5397 + }, + { + "left_line": 5398, + "right_line": 5398 + }, + { + "left_line": 5399, + "right_line": 5399 + }, + { + "left_line": 5400, + "right_line": 5400 + }, + { + "left_line": 5401, + "right_line": 5401 + }, + { + "left_line": 5402, + "right_line": 5402 + }, + { + "left_line": 5403, + "right_line": 5403 + }, + { + "left_line": 5404, + "right_line": 5404 + }, + { + "left_line": 5405, + "right_line": 5405 + }, + { + "left_line": 5406, + "right_line": 5406 + }, + { + "left_line": 5407, + "right_line": 5407 + }, + { + "left_line": 5408, + "right_line": 5408 + }, + { + "left_line": 5409, + "right_line": 5409 + }, + { + "left_line": 5410, + "right_line": 5410 + }, + { + "left_line": 5411, + "right_line": 5411 + }, + { + "left_line": 5412, + "right_line": 5412 + }, + { + "left_line": 5413, + "right_line": 5413 + }, + { + "left_line": 5414, + "right_line": 5414 + }, + { + "left_line": 5415, + "right_line": 5415 + }, + { + "left_line": 5416, + "right_line": 5416 + }, + { + "left_line": 5417, + "right_line": 5417 + }, + { + "left_line": 5418, + "right_line": 5418 + }, + { + "left_line": 5419, + "right_line": 5419 + }, + { + "left_line": 5420, + "right_line": 5420 + }, + { + "left_line": 5421, + "right_line": 5421 + }, + { + "left_line": 5422, + "right_line": 5422 + }, + { + "left_line": 5423, + "right_line": 5423 + }, + { + "left_line": 5424, + "right_line": 5424 + }, + { + "left_line": 5425, + "right_line": 5425 + }, + { + "left_line": 5426, + "right_line": 5426 + }, + { + "left_line": 5427, + "right_line": 5427 + }, + { + "left_line": 5428, + "right_line": 5428 + }, + { + "left_line": 5429, + "right_line": 5429 + }, + { + "left_line": 5430, + "right_line": 5430 + }, + { + "left_line": 5431, + "right_line": 5431 + }, + { + "left_line": 5432, + "right_line": 5432 + }, + { + "left_line": 5433, + "right_line": 5433 + }, + { + "left_line": 5434, + "right_line": 5434 + }, + { + "left_line": 5435, + "right_line": 5435 + }, + { + "left_line": 5436, + "right_line": 5436 + }, + { + "left_line": 5437, + "right_line": 5437 + }, + { + "left_line": 5438, + "right_line": 5438 + }, + { + "left_line": 5439, + "right_line": 5439 + }, + { + "left_line": 5440, + "right_line": 5440 + }, + { + "left_line": 5441, + "right_line": 5441 + }, + { + "left_line": 5442, + "right_line": 5442 + }, + { + "left_line": 5443, + "right_line": 5443 + }, + { + "left_line": 5444, + "right_line": 5444 + }, + { + "left_line": 5445, + "right_line": 5445 + }, + { + "left_line": 5446, + "right_line": 5446 + }, + { + "left_line": 5447, + "right_line": 5447 + }, + { + "left_line": 5448, + "right_line": 5448 + }, + { + "left_line": 5449, + "right_line": 5449 + }, + { + "left_line": 5450, + "right_line": 5450 + }, + { + "left_line": 5451, + "right_line": 5451 + }, + { + "left_line": 5452, + "right_line": 5452 + }, + { + "left_line": 5453, + "right_line": 5453 + }, + { + "left_line": 5454, + "right_line": 5454 + }, + { + "left_line": 5455, + "right_line": 5455 + }, + { + "left_line": 5456, + "right_line": 5456 + }, + { + "left_line": 5457, + "right_line": 5457 + }, + { + "left_line": 5458, + "right_line": 5458 + }, + { + "left_line": 5459, + "right_line": 5459 + }, + { + "left_line": 5460, + "right_line": 5460 + }, + { + "left_line": 5461, + "right_line": 5461 + }, + { + "left_line": 5462, + "right_line": 5462 + }, + { + "left_line": 5463, + "right_line": 5463 + }, + { + "left_line": 5464, + "right_line": 5464 + }, + { + "left_line": 5465, + "right_line": 5465 + }, + { + "left_line": 5466, + "right_line": 5466 + }, + { + "left_line": 5467, + "right_line": 5467 + }, + { + "left_line": 5468, + "right_line": 5468 + }, + { + "left_line": 5469, + "right_line": 5469 + }, + { + "left_line": 5470, + "right_line": 5470 + }, + { + "left_line": 5471, + "right_line": 5471 + }, + { + "left_line": 5472, + "right_line": 5472 + }, + { + "left_line": 5473, + "right_line": 5473 + }, + { + "left_line": 5474, + "right_line": 5474 + }, + { + "left_line": 5475, + "right_line": 5475 + }, + { + "left_line": 5476, + "right_line": 5476 + }, + { + "left_line": 5477, + "right_line": 5477 + }, + { + "left_line": 5478, + "right_line": 5478 + }, + { + "left_line": 5479, + "right_line": 5479 + }, + { + "left_line": 5480, + "right_line": 5480 + }, + { + "left_line": 5481, + "right_line": 5481 + }, + { + "left_line": 5482, + "right_line": 5482 + }, + { + "left_line": 5483, + "right_line": 5483 + }, + { + "left_line": 5484, + "right_line": 5484 + }, + { + "left_line": 5485, + "right_line": 5485 + }, + { + "left_line": 5486, + "right_line": 5486 + }, + { + "left_line": 5487, + "right_line": 5487 + }, + { + "left_line": 5488, + "right_line": 5488 + }, + { + "left_line": 5489, + "right_line": 5489 + }, + { + "left_line": 5490, + "right_line": 5490 + }, + { + "left_line": 5491, + "right_line": 5491 + }, + { + "left_line": 5492, + "right_line": 5492 + }, + { + "left_line": 5493, + "right_line": 5493 + }, + { + "left_line": 5494, + "right_line": 5494 + }, + { + "left_line": 5495, + "right_line": 5495 + }, + { + "left_line": 5496, + "right_line": 5496 + }, + { + "left_line": 5497, + "right_line": 5497 + }, + { + "left_line": 5498, + "right_line": 5498 + }, + { + "left_line": 5499, + "right_line": 5499 + }, + { + "left_line": 5500, + "right_line": 5500 + }, + { + "left_line": 5501, + "right_line": 5501 + }, + { + "left_line": 5502, + "right_line": 5502 + }, + { + "left_line": 5503, + "right_line": 5503 + }, + { + "left_line": 5504, + "right_line": 5504 + }, + { + "left_line": 5505, + "right_line": 5505 + }, + { + "left_line": 5506, + "right_line": 5506 + }, + { + "left_line": 5507, + "right_line": 5507 + }, + { + "left_line": 5508, + "right_line": 5508 + }, + { + "left_line": 5509, + "right_line": 5509 + }, + { + "left_line": 5510, + "right_line": 5510 + }, + { + "left_line": 5511, + "right_line": 5511 + }, + { + "left_line": 5512, + "right_line": 5512 + }, + { + "left_line": 5513, + "right_line": 5513 + }, + { + "left_line": 5514, + "right_line": 5514 + }, + { + "left_line": 5515, + "right_line": 5515 + }, + { + "left_line": 5516, + "right_line": 5516 + }, + { + "left_line": 5517, + "right_line": 5517 + }, + { + "left_line": 5518, + "right_line": 5518 + }, + { + "left_line": 5519, + "right_line": 5519 + }, + { + "left_line": 5520, + "right_line": 5520 + }, + { + "left_line": 5521, + "right_line": 5521 + }, + { + "left_line": 5522, + "right_line": 5522 + }, + { + "left_line": 5523, + "right_line": 5523 + }, + { + "left_line": 5524, + "right_line": 5524 + }, + { + "left_line": 5525, + "right_line": 5525 + }, + { + "left_line": 5526, + "right_line": 5526 + }, + { + "left_line": 5527, + "right_line": 5527 + }, + { + "left_line": 5528, + "right_line": 5528 + }, + { + "left_line": 5529, + "right_line": 5529 + }, + { + "left_line": 5530, + "right_line": 5530 + }, + { + "left_line": 5531, + "right_line": 5531 + }, + { + "left_line": 5532, + "right_line": 5532 + }, + { + "left_line": 5533, + "right_line": 5533 + }, + { + "left_line": 5534, + "right_line": 5534 + }, + { + "left_line": 5535, + "right_line": 5535 + }, + { + "left_line": 5536, + "right_line": 5536 + }, + { + "left_line": 5537, + "right_line": 5537 + }, + { + "left_line": 5538, + "right_line": 5538 + }, + { + "left_line": 5539, + "right_line": 5539 + }, + { + "left_line": 5540, + "right_line": 5540 + }, + { + "left_line": 5541, + "right_line": 5541 + }, + { + "left_line": 5542, + "right_line": 5542 + }, + { + "left_line": 5543, + "right_line": 5543 + }, + { + "left_line": 5544, + "right_line": 5544 + }, + { + "left_line": 5545, + "right_line": 5545 + }, + { + "left_line": 5546, + "right_line": 5546 + }, + { + "left_line": 5547, + "right_line": 5547 + }, + { + "left_line": 5548, + "right_line": 5548 + }, + { + "left_line": 5549, + "right_line": 5549 + }, + { + "left_line": 5550, + "right_line": 5550 + }, + { + "left_line": 5551, + "right_line": 5551 + }, + { + "left_line": 5552, + "right_line": 5552 + }, + { + "left_line": 5553, + "right_line": 5553 + }, + { + "left_line": 5554, + "right_line": 5554 + }, + { + "left_line": 5555, + "right_line": 5555 + }, + { + "left_line": 5556, + "right_line": 5556 + }, + { + "left_line": 5557, + "right_line": 5557 + }, + { + "left_line": 5558, + "right_line": 5558 + }, + { + "left_line": 5559, + "right_line": 5559 + }, + { + "left_line": 5560, + "right_line": 5560 + }, + { + "left_line": 5561, + "right_line": 5561 + }, + { + "left_line": 5562, + "right_line": 5562 + }, + { + "left_line": 5563, + "right_line": 5563 + }, + { + "left_line": 5564, + "right_line": 5564 + }, + { + "left_line": 5565, + "right_line": 5565 + }, + { + "left_line": 5566, + "right_line": 5566 + }, + { + "left_line": 5567, + "right_line": 5567 + }, + { + "left_line": 5568, + "right_line": 5568 + }, + { + "left_line": 5569, + "right_line": 5569 + }, + { + "left_line": 5570, + "right_line": 5570 + }, + { + "left_line": 5571, + "right_line": 5571 + }, + { + "left_line": 5572, + "right_line": 5572 + }, + { + "left_line": 5573, + "right_line": 5573 + }, + { + "left_line": 5574, + "right_line": 5574 + }, + { + "left_line": 5575, + "right_line": 5575 + }, + { + "left_line": 5576, + "right_line": 5576 + }, + { + "left_line": 5577, + "right_line": 5577 + }, + { + "left_line": 5578, + "right_line": 5578 + }, + { + "left_line": 5579, + "right_line": 5579 + }, + { + "left_line": 5580, + "right_line": 5580 + }, + { + "left_line": 5581, + "right_line": 5581 + }, + { + "left_line": 5582, + "right_line": 5582 + }, + { + "left_line": 5583, + "right_line": 5583 + }, + { + "left_line": 5584, + "right_line": 5584 + }, + { + "left_line": 5585, + "right_line": 5585 + }, + { + "left_line": 5586, + "right_line": 5586 + }, + { + "left_line": 5587, + "right_line": 5587 + }, + { + "left_line": 5588, + "right_line": 5588 + }, + { + "left_line": 5589, + "right_line": 5589 + }, + { + "left_line": 5590, + "right_line": 5590 + }, + { + "left_line": 5591, + "right_line": 5591 + }, + { + "left_line": 5592, + "right_line": 5592 + }, + { + "left_line": 5593, + "right_line": 5593 + }, + { + "left_line": 5594, + "right_line": 5594 + }, + { + "left_line": 5595, + "right_line": 5595 + }, + { + "left_line": 5596, + "right_line": 5596 + }, + { + "left_line": 5597, + "right_line": 5597 + }, + { + "left_line": 5598, + "right_line": 5598 + }, + { + "left_line": 5599, + "right_line": 5599 + }, + { + "left_line": 5600, + "right_line": 5600 + }, + { + "left_line": 5601, + "right_line": 5601 + }, + { + "left_line": 5602, + "right_line": 5602 + }, + { + "left_line": 5603, + "right_line": 5603 + }, + { + "left_line": 5604, + "right_line": 5604 + }, + { + "left_line": 5605, + "right_line": 5605 + }, + { + "left_line": 5606, + "right_line": 5606 + }, + { + "left_line": 5607, + "right_line": 5607 + }, + { + "left_line": 5608, + "right_line": 5608 + }, + { + "left_line": 5609, + "right_line": 5609 + }, + { + "left_line": 5610, + "right_line": 5610 + }, + { + "left_line": 5611, + "right_line": 5611 + }, + { + "left_line": 5612, + "right_line": 5612 + }, + { + "left_line": 5613, + "right_line": 5613 + }, + { + "left_line": 5614, + "right_line": 5614 + }, + { + "left_line": 5615, + "right_line": 5615 + }, + { + "left_line": 5616, + "right_line": 5616 + }, + { + "left_line": 5617, + "right_line": 5617 + }, + { + "left_line": 5618, + "right_line": 5618 + }, + { + "left_line": 5619, + "right_line": 5619 + }, + { + "left_line": 5620, + "right_line": 5620 + }, + { + "left_line": 5621, + "right_line": 5621 + }, + { + "left_line": 5622, + "right_line": 5622 + }, + { + "left_line": 5623, + "right_line": 5623 + }, + { + "left_line": 5624, + "right_line": 5624 + }, + { + "left_line": 5625, + "right_line": 5625 + }, + { + "left_line": 5626, + "right_line": 5626 + }, + { + "left_line": 5627, + "right_line": 5627 + }, + { + "left_line": 5628, + "right_line": 5628 + }, + { + "left_line": 5629, + "right_line": 5629 + }, + { + "left_line": 5630, + "right_line": 5630 + }, + { + "left_line": 5631, + "right_line": 5631 + }, + { + "left_line": 5632, + "right_line": 5632 + }, + { + "left_line": 5633, + "right_line": 5633 + }, + { + "left_line": 5634, + "right_line": 5634 + }, + { + "left_line": 5635, + "right_line": 5635 + }, + { + "left_line": 5636, + "right_line": 5636 + }, + { + "left_line": 5637, + "right_line": 5637 + }, + { + "left_line": 5638, + "right_line": 5638 + }, + { + "left_line": 5639, + "right_line": 5639 + }, + { + "left_line": 5640, + "right_line": 5640 + }, + { + "left_line": 5641, + "right_line": 5641 + }, + { + "left_line": 5642, + "right_line": 5642 + }, + { + "left_line": 5643, + "right_line": 5643 + }, + { + "left_line": 5644, + "right_line": 5644 + }, + { + "left_line": 5645, + "right_line": 5645 + }, + { + "left_line": 5646, + "right_line": 5646 + }, + { + "left_line": 5647, + "right_line": 5647 + }, + { + "left_line": 5648, + "right_line": 5648 + }, + { + "left_line": 5649, + "right_line": 5649 + }, + { + "left_line": 5650, + "right_line": 5650 + }, + { + "left_line": 5651, + "right_line": 5651 + }, + { + "left_line": 5652, + "right_line": 5652 + }, + { + "left_line": 5653, + "right_line": 5653 + }, + { + "left_line": 5654, + "right_line": 5654 + }, + { + "left_line": 5655, + "right_line": 5655 + }, + { + "left_line": 5656, + "right_line": 5656 + }, + { + "left_line": 5657, + "right_line": 5657 + }, + { + "left_line": 5658, + "right_line": 5658 + }, + { + "left_line": 5659, + "right_line": 5659 + }, + { + "left_line": 5660, + "right_line": 5660 + }, + { + "left_line": 5661, + "right_line": 5661 + }, + { + "left_line": 5662, + "right_line": 5662 + }, + { + "left_line": 5663, + "right_line": 5663 + }, + { + "left_line": 5664, + "right_line": 5664 + }, + { + "left_line": 5665, + "right_line": 5665 + }, + { + "left_line": 5666, + "right_line": 5666 + }, + { + "left_line": 5667, + "right_line": 5667 + }, + { + "left_line": 5668, + "right_line": 5668 + }, + { + "left_line": 5669, + "right_line": 5669 + }, + { + "left_line": 5670, + "right_line": 5670 + }, + { + "left_line": 5671, + "right_line": 5671 + }, + { + "left_line": 5672, + "right_line": 5672 + }, + { + "left_line": 5673, + "right_line": 5673 + }, + { + "left_line": 5674, + "right_line": 5674 + }, + { + "left_line": 5675, + "right_line": 5675 + }, + { + "left_line": 5676, + "right_line": 5676 + }, + { + "left_line": 5677, + "right_line": 5677 + }, + { + "left_line": 5678, + "right_line": 5678 + }, + { + "left_line": 5679, + "right_line": 5679 + }, + { + "left_line": 5680, + "right_line": 5680 + }, + { + "left_line": 5681, + "right_line": 5681 + }, + { + "left_line": 5682, + "right_line": 5682 + }, + { + "left_line": 5683, + "right_line": 5683 + }, + { + "left_line": 5684, + "right_line": 5684 + }, + { + "left_line": 5685, + "right_line": 5685 + }, + { + "left_line": 5686, + "right_line": 5686 + }, + { + "left_line": 5687, + "right_line": 5687 + }, + { + "left_line": 5688, + "right_line": 5688 + }, + { + "left_line": 5689, + "right_line": 5689 + }, + { + "left_line": 5690, + "right_line": 5690 + }, + { + "left_line": 5691, + "right_line": 5691 + }, + { + "left_line": 5692, + "right_line": 5692 + }, + { + "left_line": 5693, + "right_line": 5693 + }, + { + "left_line": 5694, + "right_line": 5694 + }, + { + "left_line": 5695, + "right_line": 5695 + }, + { + "left_line": 5696, + "right_line": 5696 + }, + { + "left_line": 5697, + "right_line": 5697 + }, + { + "left_line": 5698, + "right_line": 5698 + }, + { + "left_line": 5699, + "right_line": 5699 + }, + { + "left_line": 5700, + "right_line": 5700 + }, + { + "left_line": 5701, + "right_line": 5701 + }, + { + "left_line": 5702, + "right_line": 5702 + }, + { + "left_line": 5703, + "right_line": 5703 + }, + { + "left_line": 5704, + "right_line": 5704 + }, + { + "left_line": 5705, + "right_line": 5705 + }, + { + "left_line": 5706, + "right_line": 5706 + }, + { + "left_line": 5707, + "right_line": 5707 + }, + { + "left_line": 5708, + "right_line": 5708 + }, + { + "left_line": 5709, + "right_line": 5709 + }, + { + "left_line": 5710, + "right_line": 5710 + }, + { + "left_line": 5711, + "right_line": 5711 + }, + { + "left_line": 5712, + "right_line": 5712 + }, + { + "left_line": 5713, + "right_line": 5713 + }, + { + "left_line": 5714, + "right_line": 5714 + }, + { + "left_line": 5715, + "right_line": 5715 + }, + { + "left_line": 5716, + "right_line": 5716 + }, + { + "left_line": 5717, + "right_line": 5717 + }, + { + "left_line": 5718, + "right_line": 5718 + }, + { + "left_line": 5719, + "right_line": 5719 + }, + { + "left_line": 5720, + "right_line": 5720 + }, + { + "left_line": 5721, + "right_line": 5721 + }, + { + "left_line": 5722, + "right_line": 5722 + }, + { + "left_line": 5723, + "right_line": 5723 + }, + { + "left_line": 5724, + "right_line": 5724 + }, + { + "left_line": 5725, + "right_line": 5725 + }, + { + "left_line": 5726, + "right_line": 5726 + }, + { + "left_line": 5727, + "right_line": 5727 + }, + { + "left_line": 5728, + "right_line": 5728 + }, + { + "left_line": 5729, + "right_line": 5729 + }, + { + "left_line": 5730, + "right_line": 5730 + }, + { + "left_line": 5731, + "right_line": 5731 + }, + { + "left_line": 5732, + "right_line": 5732 + }, + { + "left_line": 5733, + "right_line": 5733 + }, + { + "left_line": 5734, + "right_line": 5734 + }, + { + "left_line": 5735, + "right_line": 5735 + }, + { + "left_line": 5736, + "right_line": 5736 + }, + { + "left_line": 5737, + "right_line": 5737 + }, + { + "left_line": 5738, + "right_line": 5738 + }, + { + "left_line": 5739, + "right_line": 5739 + }, + { + "left_line": 5740, + "right_line": 5740 + }, + { + "left_line": 5741, + "right_line": 5741 + }, + { + "left_line": 5742, + "right_line": 5742 + }, + { + "left_line": 5743, + "right_line": 5743 + }, + { + "left_line": 5744, + "right_line": 5744 + }, + { + "left_line": 5745, + "right_line": 5745 + }, + { + "left_line": 5746, + "right_line": 5746 + }, + { + "left_line": 5747, + "right_line": 5747 + }, + { + "left_line": 5748, + "right_line": 5748 + }, + { + "left_line": 5749, + "right_line": 5749 + }, + { + "left_line": 5750, + "right_line": 5750 + }, + { + "left_line": 5751, + "right_line": 5751 + }, + { + "left_line": 5752, + "right_line": 5752 + }, + { + "left_line": 5753, + "right_line": 5753 + }, + { + "left_line": 5754, + "right_line": 5754 + }, + { + "left_line": 5755, + "right_line": 5755 + }, + { + "left_line": 5756, + "right_line": 5756 + }, + { + "left_line": 5757, + "right_line": 5757 + }, + { + "left_line": 5758, + "right_line": 5758 + }, + { + "left_line": 5759, + "right_line": 5759 + }, + { + "left_line": 5760, + "right_line": 5760 + }, + { + "left_line": 5761, + "right_line": 5761 + }, + { + "left_line": 5762, + "right_line": 5762 + }, + { + "left_line": 5763, + "right_line": 5763 + }, + { + "left_line": 5764, + "right_line": 5764 + }, + { + "left_line": 5765, + "right_line": 5765 + }, + { + "left_line": 5766, + "right_line": 5766 + }, + { + "left_line": 5767, + "right_line": 5767 + }, + { + "left_line": 5768, + "right_line": 5768 + }, + { + "left_line": 5769, + "right_line": 5769 + }, + { + "left_line": 5770, + "right_line": 5770 + }, + { + "left_line": 5771, + "right_line": 5771 + }, + { + "left_line": 5772, + "right_line": 5772 + }, + { + "left_line": 5773, + "right_line": 5773 + }, + { + "left_line": 5774, + "right_line": 5774 + }, + { + "left_line": 5775, + "right_line": 5775 + }, + { + "left_line": 5776, + "right_line": 5776 + }, + { + "left_line": 5777, + "right_line": 5777 + }, + { + "left_line": 5778, + "right_line": 5778 + }, + { + "left_line": 5779, + "right_line": 5779 + }, + { + "left_line": 5780, + "right_line": 5780 + }, + { + "left_line": 5781, + "right_line": 5781 + }, + { + "left_line": 5782, + "right_line": 5782 + }, + { + "left_line": 5783, + "right_line": 5783 + }, + { + "left_line": 5784, + "right_line": 5784 + }, + { + "left_line": 5785, + "right_line": 5785 + }, + { + "left_line": 5786, + "right_line": 5786 + }, + { + "left_line": 5787, + "right_line": 5787 + }, + { + "left_line": 5788, + "right_line": 5788 + }, + { + "left_line": 5789, + "right_line": 5789 + }, + { + "left_line": 5790, + "right_line": 5790 + }, + { + "left_line": 5791, + "right_line": 5791 + }, + { + "left_line": 5792, + "right_line": 5792 + }, + { + "left_line": 5793, + "right_line": 5793 + }, + { + "left_line": 5794, + "right_line": 5794 + }, + { + "left_line": 5795, + "right_line": 5795 + }, + { + "left_line": 5796, + "right_line": 5796 + }, + { + "left_line": 5797, + "right_line": 5797 + }, + { + "left_line": 5798, + "right_line": 5798 + }, + { + "left_line": 5799, + "right_line": 5799 + }, + { + "left_line": 5800, + "right_line": 5800 + }, + { + "left_line": 5801, + "right_line": 5801 + }, + { + "left_line": 5802, + "right_line": 5802 + }, + { + "left_line": 5803, + "right_line": 5803 + }, + { + "left_line": 5804, + "right_line": 5804 + }, + { + "left_line": 5805, + "right_line": 5805 + }, + { + "left_line": 5806, + "right_line": 5806 + }, + { + "left_line": 5807, + "right_line": 5807 + }, + { + "left_line": 5808, + "right_line": 5808 + }, + { + "left_line": 5809, + "right_line": 5809 + }, + { + "left_line": 5810, + "right_line": 5810 + }, + { + "left_line": 5811, + "right_line": 5811 + }, + { + "left_line": 5812, + "right_line": 5812 + }, + { + "left_line": 5813, + "right_line": 5813 + }, + { + "left_line": 5814, + "right_line": 5814 + }, + { + "left_line": 5815, + "right_line": 5815 + }, + { + "left_line": 5816, + "right_line": 5816 + }, + { + "left_line": 5817, + "right_line": 5817 + }, + { + "left_line": 5818, + "right_line": 5818 + }, + { + "left_line": 5819, + "right_line": 5819 + }, + { + "left_line": 5820, + "right_line": 5820 + }, + { + "left_line": 5821, + "right_line": 5821 + }, + { + "left_line": 5822, + "right_line": 5822 + }, + { + "left_line": 5823, + "right_line": 5823 + }, + { + "left_line": 5824, + "right_line": 5824 + }, + { + "left_line": 5825, + "right_line": 5825 + }, + { + "left_line": 5826, + "right_line": 5826 + }, + { + "left_line": 5827, + "right_line": 5827 + }, + { + "left_line": 5828, + "right_line": 5828 + }, + { + "left_line": 5829, + "right_line": 5829 + }, + { + "left_line": 5830, + "right_line": 5830 + }, + { + "left_line": 5831, + "right_line": 5831 + }, + { + "left_line": 5832, + "right_line": 5832 + }, + { + "left_line": 5833, + "right_line": 5833 + }, + { + "left_line": 5834, + "right_line": 5834 + }, + { + "left_line": 5835, + "right_line": 5835 + }, + { + "left_line": 5836, + "right_line": 5836 + }, + { + "left_line": 5837, + "right_line": 5837 + }, + { + "left_line": 5838, + "right_line": 5838 + }, + { + "left_line": 5839, + "right_line": 5839 + }, + { + "left_line": 5840, + "right_line": 5840 + }, + { + "left_line": 5841, + "right_line": 5841 + }, + { + "left_line": 5842, + "right_line": 5842 + }, + { + "left_line": 5843, + "right_line": 5843 + }, + { + "left_line": 5844, + "right_line": 5844 + }, + { + "left_line": 5845, + "right_line": 5845 + }, + { + "left_line": 5846, + "right_line": 5846 + }, + { + "left_line": 5847, + "right_line": 5847 + }, + { + "left_line": 5848, + "right_line": 5848 + }, + { + "left_line": 5849, + "right_line": 5849 + }, + { + "left_line": 5850, + "right_line": 5850 + }, + { + "left_line": 5851, + "right_line": 5851 + }, + { + "left_line": 5852, + "right_line": 5852 + }, + { + "left_line": 5853, + "right_line": 5853 + }, + { + "left_line": 5854, + "right_line": 5854 + }, + { + "left_line": 5855, + "right_line": 5855 + }, + { + "left_line": 5856, + "right_line": 5856 + }, + { + "left_line": 5857, + "right_line": 5857 + }, + { + "left_line": 5858, + "right_line": 5858 + }, + { + "left_line": 5859, + "right_line": 5859 + }, + { + "left_line": 5860, + "right_line": 5860 + }, + { + "left_line": 5861, + "right_line": 5861 + }, + { + "left_line": 5862, + "right_line": 5862 + }, + { + "left_line": 5863, + "right_line": 5863 + }, + { + "left_line": 5864, + "right_line": 5864 + }, + { + "left_line": 5865, + "right_line": 5865 + }, + { + "left_line": 5866, + "right_line": 5866 + }, + { + "left_line": 5867, + "right_line": 5867 + }, + { + "left_line": 5868, + "right_line": 5868 + }, + { + "left_line": 5869, + "right_line": 5869 + }, + { + "left_line": 5870, + "right_line": 5870 + }, + { + "left_line": 5871, + "right_line": 5871 + }, + { + "left_line": 5872, + "right_line": 5872 + }, + { + "left_line": 5873, + "right_line": 5873 + }, + { + "left_line": 5874, + "right_line": 5874 + }, + { + "left_line": 5875, + "right_line": 5875 + }, + { + "left_line": 5876, + "right_line": 5876 + }, + { + "left_line": 5877, + "right_line": 5877 + }, + { + "left_line": 5878, + "right_line": 5878 + }, + { + "left_line": 5879, + "right_line": 5879 + }, + { + "left_line": 5880, + "right_line": 5880 + }, + { + "left_line": 5881, + "right_line": 5881 + }, + { + "left_line": 5882, + "right_line": 5882 + }, + { + "left_line": 5883, + "right_line": 5883 + }, + { + "left_line": 5884, + "right_line": 5884 + }, + { + "left_line": 5885, + "right_line": 5885 + }, + { + "left_line": 5886, + "right_line": 5886 + }, + { + "left_line": 5887, + "right_line": 5887 + }, + { + "left_line": 5888, + "right_line": 5888 + }, + { + "left_line": 5889, + "right_line": 5889 + }, + { + "left_line": 5890, + "right_line": 5890 + }, + { + "left_line": 5891, + "right_line": 5891 + }, + { + "left_line": 5892, + "right_line": 5892 + }, + { + "left_line": 5893, + "right_line": 5893 + }, + { + "left_line": 5894, + "right_line": 5894 + }, + { + "left_line": 5895, + "right_line": 5895 + }, + { + "left_line": 5896, + "right_line": 5896 + }, + { + "left_line": 5897, + "right_line": 5897 + }, + { + "left_line": 5898, + "right_line": 5898 + }, + { + "left_line": 5899, + "right_line": 5899 + }, + { + "left_line": 5900, + "right_line": 5900 + }, + { + "left_line": 5901, + "right_line": 5901 + }, + { + "left_line": 5902, + "right_line": 5902 + }, + { + "left_line": 5903, + "right_line": 5903 + }, + { + "left_line": 5904, + "right_line": 5904 + }, + { + "left_line": 5905, + "right_line": 5905 + }, + { + "left_line": 5906, + "right_line": 5906 + }, + { + "left_line": 5907, + "right_line": 5907 + }, + { + "left_line": 5908, + "right_line": 5908 + }, + { + "left_line": 5909, + "right_line": 5909 + }, + { + "left_line": 5910, + "right_line": 5910 + }, + { + "left_line": 5911, + "right_line": 5911 + }, + { + "left_line": 5912, + "right_line": 5912 + }, + { + "left_line": 5913, + "right_line": 5913 + }, + { + "left_line": 5914, + "right_line": 5914 + }, + { + "left_line": 5915, + "right_line": 5915 + }, + { + "left_line": 5916, + "right_line": 5916 + }, + { + "left_line": 5917, + "right_line": 5917 + }, + { + "left_line": 5918, + "right_line": 5918 + }, + { + "left_line": 5919, + "right_line": 5919 + }, + { + "left_line": 5920, + "right_line": 5920 + }, + { + "left_line": 5921, + "right_line": 5921 + }, + { + "left_line": 5922, + "right_line": 5922 + }, + { + "left_line": 5923, + "right_line": 5923 + }, + { + "left_line": 5924, + "right_line": 5924 + }, + { + "left_line": 5925, + "right_line": 5925 + }, + { + "left_line": 5926, + "right_line": 5926 + }, + { + "left_line": 5927, + "right_line": 5927 + }, + { + "left_line": 5928, + "right_line": 5928 + }, + { + "left_line": 5929, + "right_line": 5929 + }, + { + "left_line": 5930, + "right_line": 5930 + }, + { + "left_line": 5931, + "right_line": 5931 + }, + { + "left_line": 5932, + "right_line": 5932 + }, + { + "left_line": 5933, + "right_line": 5933 + }, + { + "left_line": 5934, + "right_line": 5934 + }, + { + "left_line": 5935, + "right_line": 5935 + }, + { + "left_line": 5936, + "right_line": 5936 + }, + { + "left_line": 5937, + "right_line": 5937 + }, + { + "left_line": 5938, + "right_line": 5938 + }, + { + "left_line": 5939, + "right_line": 5939 + }, + { + "left_line": 5940, + "right_line": 5940 + }, + { + "left_line": 5941, + "right_line": 5941 + }, + { + "left_line": 5942, + "right_line": 5942 + }, + { + "left_line": 5943, + "right_line": 5943 + }, + { + "left_line": 5944, + "right_line": 5944 + }, + { + "left_line": 5945, + "right_line": 5945 + }, + { + "left_line": 5946, + "right_line": 5946 + }, + { + "left_line": 5947, + "right_line": 5947 + }, + { + "left_line": 5948, + "right_line": 5948 + }, + { + "left_line": 5949, + "right_line": 5949 + }, + { + "left_line": 5950, + "right_line": 5950 + }, + { + "left_line": 5951, + "right_line": 5951 + }, + { + "left_line": 5952, + "right_line": 5952 + }, + { + "left_line": 5953, + "right_line": 5953 + }, + { + "left_line": 5954, + "right_line": 5954 + }, + { + "left_line": 5955, + "right_line": 5955 + }, + { + "left_line": 5956, + "right_line": 5956 + }, + { + "left_line": 5957, + "right_line": 5957 + }, + { + "left_line": 5958, + "right_line": 5958 + }, + { + "left_line": 5959, + "right_line": 5959 + }, + { + "left_line": 5960, + "right_line": 5960 + }, + { + "left_line": 5961, + "right_line": 5961 + }, + { + "left_line": 5962, + "right_line": 5962 + }, + { + "left_line": 5963, + "right_line": 5963 + }, + { + "left_line": 5964, + "right_line": 5964 + }, + { + "left_line": 5965, + "right_line": 5965 + }, + { + "left_line": 5966, + "right_line": 5966 + }, + { + "left_line": 5967, + "right_line": 5967 + }, + { + "left_line": 5968, + "right_line": 5968 + }, + { + "left_line": 5969, + "right_line": 5969 + }, + { + "left_line": 5970, + "right_line": 5970 + }, + { + "left_line": 5971, + "right_line": 5971 + }, + { + "left_line": 5972, + "right_line": 5972 + }, + { + "left_line": 5973, + "right_line": 5973 + }, + { + "left_line": 5974, + "right_line": 5974 + }, + { + "left_line": 5975, + "right_line": 5975 + }, + { + "left_line": 5976, + "right_line": 5976 + }, + { + "left_line": 5977, + "right_line": 5977 + }, + { + "left_line": 5978, + "right_line": 5978 + }, + { + "left_line": 5979, + "right_line": 5979 + }, + { + "left_line": 5980, + "right_line": 5980 + }, + { + "left_line": 5981, + "right_line": 5981 + }, + { + "left_line": 5982, + "right_line": 5982 + }, + { + "left_line": 5983, + "right_line": 5983 + }, + { + "left_line": 5984, + "right_line": 5984 + }, + { + "left_line": 5985, + "right_line": 5985 + }, + { + "left_line": 5986, + "right_line": 5986 + }, + { + "left_line": 5987, + "right_line": 5987 + }, + { + "left_line": 5988, + "right_line": 5988 + }, + { + "left_line": 5989, + "right_line": 5989 + }, + { + "left_line": 5990, + "right_line": 5990 + }, + { + "left_line": 5991, + "right_line": 5991 + }, + { + "left_line": 5992, + "right_line": 5992 + }, + { + "left_line": 5993, + "right_line": 5993 + }, + { + "left_line": 5994, + "right_line": 5994 + }, + { + "left_line": 5995, + "right_line": 5995 + }, + { + "left_line": 5996, + "right_line": 5996 + }, + { + "left_line": 5997, + "right_line": 5997 + }, + { + "left_line": 5998, + "right_line": 5998 + }, + { + "left_line": 5999, + "right_line": 5999 + }, + { + "left_line": 6000, + "right_line": 6000 + }, + { + "left_line": 6001, + "right_line": 6001 + }, + { + "left_line": 6002, + "right_line": 6002 + }, + { + "left_line": 6003, + "right_line": 6003 + }, + { + "left_line": 6004, + "right_line": 6004 + }, + { + "left_line": 6005, + "right_line": 6005 + }, + { + "left_line": 6006, + "right_line": 6006 + }, + { + "left_line": 6007, + "right_line": 6007 + }, + { + "left_line": 6008, + "right_line": 6008 + }, + { + "left_line": 6009, + "right_line": 6009 + }, + { + "left_line": 6010, + "right_line": 6010 + }, + { + "left_line": 6011, + "right_line": 6011 + }, + { + "left_line": 6012, + "right_line": 6012 + }, + { + "left_line": 6013, + "right_line": 6013 + }, + { + "left_line": 6014, + "right_line": 6014 + }, + { + "left_line": 6015, + "right_line": 6015 + }, + { + "left_line": 6016, + "right_line": 6016 + }, + { + "left_line": 6017, + "right_line": 6017 + }, + { + "left_line": 6018, + "right_line": 6018 + }, + { + "left_line": 6019, + "right_line": 6019 + }, + { + "left_line": 6020, + "right_line": 6020 + }, + { + "left_line": 6021, + "right_line": 6021 + }, + { + "left_line": 6022, + "right_line": 6022 + }, + { + "left_line": 6023, + "right_line": 6023 + }, + { + "left_line": 6024, + "right_line": 6024 + }, + { + "left_line": 6025, + "right_line": 6025 + }, + { + "left_line": 6026, + "right_line": 6026 + }, + { + "left_line": 6027, + "right_line": 6027 + }, + { + "left_line": 6028, + "right_line": 6028 + }, + { + "left_line": 6029, + "right_line": 6029 + }, + { + "left_line": 6030, + "right_line": 6030 + }, + { + "left_line": 6031, + "right_line": 6031 + }, + { + "left_line": 6032, + "right_line": 6032 + }, + { + "left_line": 6033, + "right_line": 6033 + }, + { + "left_line": 6034, + "right_line": 6034 + }, + { + "left_line": 6035, + "right_line": 6035 + }, + { + "left_line": 6036, + "right_line": 6036 + }, + { + "left_line": 6037, + "right_line": 6037 + }, + { + "left_line": 6038, + "right_line": 6038 + }, + { + "left_line": 6039, + "right_line": 6039 + }, + { + "left_line": 6040, + "right_line": 6040 + }, + { + "left_line": 6041, + "right_line": 6041 + }, + { + "left_line": 6042, + "right_line": 6042 + }, + { + "left_line": 6043, + "right_line": 6043 + }, + { + "left_line": 6044, + "right_line": 6044 + }, + { + "left_line": 6045, + "right_line": 6045 + }, + { + "left_line": 6046, + "right_line": 6046 + }, + { + "left_line": 6047, + "right_line": 6047 + }, + { + "left_line": 6048, + "right_line": 6048 + }, + { + "left_line": 6049, + "right_line": 6049 + }, + { + "left_line": 6050, + "right_line": 6050 + }, + { + "left_line": 6051, + "right_line": 6051 + }, + { + "left_line": 6052, + "right_line": 6052 + }, + { + "left_line": 6053, + "right_line": 6053 + }, + { + "left_line": 6054, + "right_line": 6054 + }, + { + "left_line": 6055, + "right_line": 6055 + }, + { + "left_line": 6056, + "right_line": 6056 + }, + { + "left_line": 6057, + "right_line": 6057 + }, + { + "left_line": 6058, + "right_line": 6058 + }, + { + "left_line": 6059, + "right_line": 6059 + }, + { + "left_line": 6060, + "right_line": 6060 + }, + { + "left_line": 6061, + "right_line": 6061 + }, + { + "left_line": 6062, + "right_line": 6062 + }, + { + "left_line": 6063, + "right_line": 6063 + }, + { + "left_line": 6064, + "right_line": 6064 + }, + { + "left_line": 6065, + "right_line": 6065 + }, + { + "left_line": 6066, + "right_line": 6066 + }, + { + "left_line": 6067, + "right_line": 6067 + }, + { + "left_line": 6068, + "right_line": 6068 + }, + { + "left_line": 6069, + "right_line": 6069 + }, + { + "left_line": 6070, + "right_line": 6070 + }, + { + "left_line": 6071, + "right_line": 6071 + }, + { + "left_line": 6072, + "right_line": 6072 + }, + { + "left_line": 6073, + "right_line": 6073 + }, + { + "left_line": 6074, + "right_line": 6074 + }, + { + "left_line": 6075, + "right_line": 6075 + }, + { + "left_line": 6076, + "right_line": 6076 + }, + { + "left_line": 6077, + "right_line": 6077 + }, + { + "left_line": 6078, + "right_line": 6078 + }, + { + "left_line": 6079, + "right_line": 6079 + }, + { + "left_line": 6080, + "right_line": 6080 + }, + { + "left_line": 6081, + "right_line": 6081 + }, + { + "left_line": 6082, + "right_line": 6082 + }, + { + "left_line": 6083, + "right_line": 6083 + }, + { + "left_line": 6084, + "right_line": 6084 + }, + { + "left_line": 6085, + "right_line": 6085 + }, + { + "left_line": 6086, + "right_line": 6086 + }, + { + "left_line": 6087, + "right_line": 6087 + }, + { + "left_line": 6088, + "right_line": 6088 + }, + { + "left_line": 6089, + "right_line": 6089 + }, + { + "left_line": 6090, + "right_line": 6090 + }, + { + "left_line": 6091, + "right_line": 6091 + }, + { + "left_line": 6092, + "right_line": 6092 + }, + { + "left_line": 6093, + "right_line": 6093 + }, + { + "left_line": 6094, + "right_line": 6094 + }, + { + "left_line": 6095, + "right_line": 6095 + }, + { + "left_line": 6096, + "right_line": 6096 + }, + { + "left_line": 6097, + "right_line": 6097 + }, + { + "left_line": 6098, + "right_line": 6098 + }, + { + "left_line": 6099, + "right_line": 6099 + }, + { + "left_line": 6100, + "right_line": 6100 + }, + { + "left_line": 6101, + "right_line": 6101 + }, + { + "left_line": 6102, + "right_line": 6102 + }, + { + "left_line": 6103, + "right_line": 6103 + }, + { + "left_line": 6104, + "right_line": 6104 + }, + { + "left_line": 6105, + "right_line": 6105 + }, + { + "left_line": 6106, + "right_line": 6106 + }, + { + "left_line": 6107, + "right_line": 6107 + }, + { + "left_line": 6108, + "right_line": 6108 + }, + { + "left_line": 6109, + "right_line": 6109 + }, + { + "left_line": 6110, + "right_line": 6110 + }, + { + "left_line": 6111, + "right_line": 6111 + }, + { + "left_line": 6112, + "right_line": 6112 + }, + { + "left_line": 6113, + "right_line": 6113 + }, + { + "left_line": 6114, + "right_line": 6114 + }, + { + "left_line": 6115, + "right_line": 6115 + }, + { + "left_line": 6116, + "right_line": 6116 + }, + { + "left_line": 6117, + "right_line": 6117 + }, + { + "left_line": 6118, + "right_line": 6118 + }, + { + "left_line": 6119, + "right_line": 6119 + }, + { + "left_line": 6120, + "right_line": 6120 + }, + { + "left_line": 6121, + "right_line": 6121 + }, + { + "left_line": 6122, + "right_line": 6122 + }, + { + "left_line": 6123, + "right_line": 6123 + }, + { + "left_line": 6124, + "right_line": 6124 + }, + { + "left_line": 6125, + "right_line": 6125 + }, + { + "left_line": 6126, + "right_line": 6126 + }, + { + "left_line": 6127, + "right_line": 6127 + }, + { + "left_line": 6128, + "right_line": 6128 + }, + { + "left_line": 6129, + "right_line": 6129 + }, + { + "left_line": 6130, + "right_line": 6130 + }, + { + "left_line": 6131, + "right_line": 6131 + }, + { + "left_line": 6132, + "right_line": 6132 + }, + { + "left_line": 6133, + "right_line": 6133 + }, + { + "left_line": 6134, + "right_line": 6134 + }, + { + "left_line": 6135, + "right_line": 6135 + }, + { + "left_line": 6136, + "right_line": 6136 + }, + { + "left_line": 6137, + "right_line": 6137 + }, + { + "left_line": 6138, + "right_line": 6138 + }, + { + "left_line": 6139, + "right_line": 6139 + }, + { + "left_line": 6140, + "right_line": 6140 + }, + { + "left_line": 6141, + "right_line": 6141 + }, + { + "left_line": 6142, + "right_line": 6142 + }, + { + "left_line": 6143, + "right_line": 6143 + }, + { + "left_line": 6144, + "right_line": 6144 + }, + { + "left_line": 6145, + "right_line": 6145 + }, + { + "left_line": 6146, + "right_line": 6146 + }, + { + "left_line": 6147, + "right_line": 6147 + }, + { + "left_line": 6148, + "right_line": 6148 + }, + { + "left_line": 6149, + "right_line": 6149 + }, + { + "left_line": 6150, + "right_line": 6150 + }, + { + "left_line": 6151, + "right_line": 6151 + }, + { + "left_line": 6152, + "right_line": 6152 + }, + { + "left_line": 6153, + "right_line": 6153 + }, + { + "left_line": 6154, + "right_line": 6154 + }, + { + "left_line": 6155, + "right_line": 6155 + }, + { + "left_line": 6156, + "right_line": 6156 + }, + { + "left_line": 6157, + "right_line": 6157 + }, + { + "left_line": 6158, + "right_line": 6158 + }, + { + "left_line": 6159, + "right_line": 6159 + }, + { + "left_line": 6160, + "right_line": 6160 + }, + { + "left_line": 6161, + "right_line": 6161 + }, + { + "left_line": 6162, + "right_line": 6162 + }, + { + "left_line": 6163, + "right_line": 6163 + }, + { + "left_line": 6164, + "right_line": 6164 + }, + { + "left_line": 6165, + "right_line": 6165 + }, + { + "left_line": 6166, + "right_line": 6166 + }, + { + "left_line": 6167, + "right_line": 6167 + }, + { + "left_line": 6168, + "right_line": 6168 + }, + { + "left_line": 6169, + "right_line": 6169 + }, + { + "left_line": 6170, + "right_line": 6170 + }, + { + "left_line": 6171, + "right_line": 6171 + }, + { + "left_line": 6172, + "right_line": 6172 + }, + { + "left_line": 6173, + "right_line": 6173 + }, + { + "left_line": 6174, + "right_line": 6174 + }, + { + "left_line": 6175, + "right_line": 6175 + }, + { + "left_line": 6176, + "right_line": 6176 + }, + { + "left_line": 6177, + "right_line": 6177 + }, + { + "left_line": 6178, + "right_line": 6178 + }, + { + "left_line": 6179, + "right_line": 6179 + }, + { + "left_line": 6180, + "right_line": 6180 + }, + { + "left_line": 6181, + "right_line": 6181 + }, + { + "left_line": 6182, + "right_line": 6182 + }, + { + "left_line": 6183, + "right_line": 6183 + }, + { + "left_line": 6184, + "right_line": 6184 + }, + { + "left_line": 6185, + "right_line": 6185 + }, + { + "left_line": 6186, + "right_line": 6186 + }, + { + "left_line": 6187, + "right_line": 6187 + }, + { + "left_line": 6188, + "right_line": 6188 + }, + { + "left_line": 6189, + "right_line": 6189 + }, + { + "left_line": 6190, + "right_line": 6190 + }, + { + "left_line": 6191, + "right_line": 6191 + }, + { + "left_line": 6192, + "right_line": 6192 + }, + { + "left_line": 6193, + "right_line": 6193 + }, + { + "left_line": 6194, + "right_line": 6194 + }, + { + "left_line": 6195, + "right_line": 6195 + }, + { + "left_line": 6196, + "right_line": 6196 + }, + { + "left_line": 6197, + "right_line": 6197 + }, + { + "left_line": 6198, + "right_line": 6198 + }, + { + "left_line": 6199, + "right_line": 6199 + }, + { + "left_line": 6200, + "right_line": 6200 + }, + { + "left_line": 6201, + "right_line": 6201 + }, + { + "left_line": 6202, + "right_line": 6202 + }, + { + "left_line": 6203, + "right_line": 6203 + }, + { + "left_line": 6204, + "right_line": 6204 + }, + { + "left_line": 6205, + "right_line": 6205 + }, + { + "left_line": 6206, + "right_line": 6206 + }, + { + "left_line": 6207, + "right_line": 6207 + }, + { + "left_line": 6208, + "right_line": 6208 + }, + { + "left_line": 6209, + "right_line": 6209 + }, + { + "left_line": 6210, + "right_line": 6210 + }, + { + "left_line": 6211, + "right_line": 6211 + }, + { + "left_line": 6212, + "right_line": 6212 + }, + { + "left_line": 6213, + "right_line": 6213 + }, + { + "left_line": 6214, + "right_line": 6214 + }, + { + "left_line": 6215, + "right_line": 6215 + }, + { + "left_line": 6216, + "right_line": 6216 + }, + { + "left_line": 6217, + "right_line": 6217 + }, + { + "left_line": 6218, + "right_line": 6218 + }, + { + "left_line": 6219, + "right_line": 6219 + }, + { + "left_line": 6220, + "right_line": 6220 + }, + { + "left_line": 6221, + "right_line": 6221 + }, + { + "left_line": 6222, + "right_line": 6222 + }, + { + "left_line": 6223, + "right_line": 6223 + }, + { + "left_line": 6224, + "right_line": 6224 + }, + { + "left_line": 6225, + "right_line": 6225 + }, + { + "left_line": 6226, + "right_line": 6226 + }, + { + "left_line": 6227, + "right_line": 6227 + }, + { + "left_line": 6228, + "right_line": 6228 + }, + { + "left_line": 6229, + "right_line": 6229 + }, + { + "left_line": 6230, + "right_line": 6230 + }, + { + "left_line": 6231, + "right_line": 6231 + }, + { + "left_line": 6232, + "right_line": 6232 + }, + { + "left_line": 6233, + "right_line": 6233 + }, + { + "left_line": 6234, + "right_line": 6234 + }, + { + "left_line": 6235, + "right_line": 6235 + }, + { + "left_line": 6236, + "right_line": 6236 + }, + { + "left_line": 6237, + "right_line": 6237 + }, + { + "left_line": 6238, + "right_line": 6238 + }, + { + "left_line": 6239, + "right_line": 6239 + }, + { + "left_line": 6240, + "right_line": 6240 + }, + { + "left_line": 6241, + "right_line": 6241 + }, + { + "left_line": 6242, + "right_line": 6242 + }, + { + "left_line": 6243, + "right_line": 6243 + }, + { + "left_line": 6244, + "right_line": 6244 + }, + { + "left_line": 6245, + "right_line": 6245 + }, + { + "left_line": 6246, + "right_line": 6246 + }, + { + "left_line": 6247, + "right_line": 6247 + }, + { + "left_line": 6248, + "right_line": 6248 + }, + { + "left_line": 6249, + "right_line": 6249 + }, + { + "left_line": 6250, + "right_line": 6250 + }, + { + "left_line": 6251, + "right_line": 6251 + }, + { + "left_line": 6252, + "right_line": 6252 + }, + { + "left_line": 6253, + "right_line": 6253 + }, + { + "left_line": 6254, + "right_line": 6254 + }, + { + "left_line": 6255, + "right_line": 6255 + }, + { + "left_line": 6256, + "right_line": 6256 + }, + { + "left_line": 6257, + "right_line": 6257 + }, + { + "left_line": 6258, + "right_line": 6258 + }, + { + "left_line": 6259, + "right_line": 6259 + }, + { + "left_line": 6260, + "right_line": 6260 + }, + { + "left_line": 6261, + "right_line": 6261 + }, + { + "left_line": 6262, + "right_line": 6262 + }, + { + "left_line": 6263, + "right_line": 6263 + }, + { + "left_line": 6264, + "right_line": 6264 + }, + { + "left_line": 6265, + "right_line": 6265 + }, + { + "left_line": 6266, + "right_line": 6266 + }, + { + "left_line": 6267, + "right_line": 6267 + }, + { + "left_line": 6268, + "right_line": 6268 + }, + { + "left_line": 6269, + "right_line": 6269 + }, + { + "left_line": 6270, + "right_line": 6270 + }, + { + "left_line": 6271, + "right_line": 6271 + }, + { + "left_line": 6272, + "right_line": 6272 + }, + { + "left_line": 6273, + "right_line": 6273 + }, + { + "left_line": 6274, + "right_line": 6274 + }, + { + "left_line": 6275, + "right_line": 6275 + }, + { + "left_line": 6276, + "right_line": 6276 + }, + { + "left_line": 6277, + "right_line": 6277 + }, + { + "left_line": 6278, + "right_line": 6278 + }, + { + "left_line": 6279, + "right_line": 6279 + }, + { + "left_line": 6280, + "right_line": 6280 + }, + { + "left_line": 6281, + "right_line": 6281 + }, + { + "left_line": 6282, + "right_line": 6282 + }, + { + "left_line": 6283, + "right_line": 6283 + }, + { + "left_line": 6284, + "right_line": 6284 + }, + { + "left_line": 6285, + "right_line": 6285 + }, + { + "left_line": 6286, + "right_line": 6286 + }, + { + "left_line": 6287, + "right_line": 6287 + }, + { + "left_line": 6288, + "right_line": 6288 + }, + { + "left_line": 6289, + "right_line": 6289 + }, + { + "left_line": 6290, + "right_line": 6290 + }, + { + "left_line": 6291, + "right_line": 6291 + }, + { + "left_line": 6292, + "right_line": 6292 + }, + { + "left_line": 6293, + "right_line": 6293 + }, + { + "left_line": 6294, + "right_line": 6294 + }, + { + "left_line": 6295, + "right_line": 6295 + }, + { + "left_line": 6296, + "right_line": 6296 + }, + { + "left_line": 6297, + "right_line": 6297 + }, + { + "left_line": 6298, + "right_line": 6298 + }, + { + "left_line": 6299, + "right_line": 6299 + }, + { + "left_line": 6300, + "right_line": 6300 + }, + { + "left_line": 6301, + "right_line": 6301 + }, + { + "left_line": 6302, + "right_line": 6302 + }, + { + "left_line": 6303, + "right_line": 6303 + }, + { + "left_line": 6304, + "right_line": 6304 + }, + { + "left_line": 6305, + "right_line": 6305 + }, + { + "left_line": 6306, + "right_line": 6306 + }, + { + "left_line": 6307, + "right_line": 6307 + }, + { + "left_line": 6308, + "right_line": 6308 + }, + { + "left_line": 6309, + "right_line": 6309 + }, + { + "left_line": 6310, + "right_line": 6310 + }, + { + "left_line": 6311, + "right_line": 6311 + }, + { + "left_line": 6312, + "right_line": 6312 + }, + { + "left_line": 6313, + "right_line": 6313 + }, + { + "left_line": 6314, + "right_line": 6314 + }, + { + "left_line": 6315, + "right_line": 6315 + }, + { + "left_line": 6316, + "right_line": 6316 + }, + { + "left_line": 6317, + "right_line": 6317 + }, + { + "left_line": 6318, + "right_line": 6318 + }, + { + "left_line": 6319, + "right_line": 6319 + }, + { + "left_line": 6320, + "right_line": 6320 + }, + { + "left_line": 6321, + "right_line": 6321 + }, + { + "left_line": 6322, + "right_line": 6322 + }, + { + "left_line": 6323, + "right_line": 6323 + }, + { + "left_line": 6324, + "right_line": 6324 + }, + { + "left_line": 6325, + "right_line": 6325 + }, + { + "left_line": 6326, + "right_line": 6326 + }, + { + "left_line": 6327, + "right_line": 6327 + }, + { + "left_line": 6328, + "right_line": 6328 + }, + { + "left_line": 6329, + "right_line": 6329 + }, + { + "left_line": 6330, + "right_line": 6330 + }, + { + "left_line": 6331, + "right_line": 6331 + }, + { + "left_line": 6332, + "right_line": 6332 + }, + { + "left_line": 6333, + "right_line": 6333 + }, + { + "left_line": 6334, + "right_line": 6334 + }, + { + "left_line": 6335, + "right_line": 6335 + }, + { + "left_line": 6336, + "right_line": 6336 + }, + { + "left_line": 6337, + "right_line": 6337 + }, + { + "left_line": 6338, + "right_line": 6338 + }, + { + "left_line": 6339, + "right_line": 6339 + }, + { + "left_line": 6340, + "right_line": 6340 + }, + { + "left_line": 6341, + "right_line": 6341 + }, + { + "left_line": 6342, + "right_line": 6342 + }, + { + "left_line": 6343, + "right_line": 6343 + }, + { + "left_line": 6344, + "right_line": 6344 + }, + { + "left_line": 6345, + "right_line": 6345 + }, + { + "left_line": 6346, + "right_line": 6346 + }, + { + "left_line": 6347, + "right_line": 6347 + }, + { + "left_line": 6348, + "right_line": 6348 + }, + { + "left_line": 6349, + "right_line": 6349 + }, + { + "left_line": 6350, + "right_line": 6350 + }, + { + "left_line": 6351, + "right_line": 6351 + }, + { + "left_line": 6352, + "right_line": 6352 + }, + { + "left_line": 6353, + "right_line": 6353 + }, + { + "left_line": 6354, + "right_line": 6354 + }, + { + "left_line": 6355, + "right_line": 6355 + }, + { + "left_line": 6356, + "right_line": 6356 + }, + { + "left_line": 6357, + "right_line": 6357 + }, + { + "left_line": 6358, + "right_line": 6358 + }, + { + "left_line": 6359, + "right_line": 6359 + }, + { + "left_line": 6360, + "right_line": 6360 + }, + { + "left_line": 6361, + "right_line": 6361 + }, + { + "left_line": 6362, + "right_line": 6362 + }, + { + "left_line": 6363, + "right_line": 6363 + }, + { + "left_line": 6364, + "right_line": 6364 + }, + { + "left_line": 6365, + "right_line": 6365 + }, + { + "left_line": 6366, + "right_line": 6366 + }, + { + "left_line": 6367, + "right_line": 6367 + }, + { + "left_line": 6368, + "right_line": 6368 + }, + { + "left_line": 6369, + "right_line": 6369 + }, + { + "left_line": 6370, + "right_line": 6370 + }, + { + "left_line": 6371, + "right_line": 6371 + }, + { + "left_line": 6372, + "right_line": 6372 + }, + { + "left_line": 6373, + "right_line": 6373 + }, + { + "left_line": 6374, + "right_line": 6374 + }, + { + "left_line": 6375, + "right_line": 6375 + }, + { + "left_line": 6376, + "right_line": 6376 + }, + { + "left_line": 6377, + "right_line": 6377 + }, + { + "left_line": 6378, + "right_line": 6378 + }, + { + "left_line": 6379, + "right_line": 6379 + }, + { + "left_line": 6380, + "right_line": 6380 + }, + { + "left_line": 6381, + "right_line": 6381 + }, + { + "left_line": 6382, + "right_line": 6382 + }, + { + "left_line": 6383, + "right_line": 6383 + }, + { + "left_line": 6384, + "right_line": 6384 + }, + { + "left_line": 6385, + "right_line": 6385 + }, + { + "left_line": 6386, + "right_line": 6386 + }, + { + "left_line": 6387, + "right_line": 6387 + }, + { + "left_line": 6388, + "right_line": 6388 + }, + { + "left_line": 6389, + "right_line": 6389 + }, + { + "left_line": 6390, + "right_line": 6390 + }, + { + "left_line": 6391, + "right_line": 6391 + }, + { + "left_line": 6392, + "right_line": 6392 + }, + { + "left_line": 6393, + "right_line": 6393 + }, + { + "left_line": 6394, + "right_line": 6394 + }, + { + "left_line": 6395, + "right_line": 6395 + }, + { + "left_line": 6396, + "right_line": 6396 + }, + { + "left_line": 6397, + "right_line": 6397 + }, + { + "left_line": 6398, + "right_line": 6398 + }, + { + "left_line": 6399, + "right_line": 6399 + }, + { + "left_line": 6400, + "right_line": 6400 + }, + { + "left_line": 6401, + "right_line": 6401 + }, + { + "left_line": 6402, + "right_line": 6402 + }, + { + "left_line": 6403, + "right_line": 6403 + }, + { + "left_line": 6404, + "right_line": 6404 + }, + { + "left_line": 6405, + "right_line": 6405 + }, + { + "left_line": 6406, + "right_line": 6406 + }, + { + "left_line": 6407, + "right_line": 6407 + }, + { + "left_line": 6408, + "right_line": 6408 + }, + { + "left_line": 6409, + "right_line": 6409 + }, + { + "left_line": 6410, + "right_line": 6410 + }, + { + "left_line": 6411, + "right_line": 6411 + }, + { + "left_line": 6412, + "right_line": 6412 + }, + { + "left_line": 6413, + "right_line": 6413 + }, + { + "left_line": 6414, + "right_line": 6414 + }, + { + "left_line": 6415, + "right_line": 6415 + }, + { + "left_line": 6416, + "right_line": 6416 + }, + { + "left_line": 6417, + "right_line": 6417 + }, + { + "left_line": 6418, + "right_line": 6418 + }, + { + "left_line": 6419, + "right_line": 6419 + }, + { + "left_line": 6420, + "right_line": 6420 + }, + { + "left_line": 6421, + "right_line": 6421 + }, + { + "left_line": 6422, + "right_line": 6422 + }, + { + "left_line": 6423, + "right_line": 6423 + }, + { + "left_line": 6424, + "right_line": 6424 + }, + { + "left_line": 6425, + "right_line": 6425 + }, + { + "left_line": 6426, + "right_line": 6426 + }, + { + "left_line": 6427, + "right_line": 6427 + }, + { + "left_line": 6428, + "right_line": 6428 + }, + { + "left_line": 6429, + "right_line": 6429 + }, + { + "left_line": 6430, + "right_line": 6430 + }, + { + "left_line": 6431, + "right_line": 6431 + }, + { + "left_line": 6432, + "right_line": 6432 + }, + { + "left_line": 6433, + "right_line": 6433 + }, + { + "left_line": 6434, + "right_line": 6434 + }, + { + "left_line": 6435, + "right_line": 6435 + }, + { + "left_line": 6436, + "right_line": 6436 + }, + { + "left_line": 6437, + "right_line": 6437 + }, + { + "left_line": 6438, + "right_line": 6438 + }, + { + "left_line": 6439, + "right_line": 6439 + }, + { + "left_line": 6440, + "right_line": 6440 + }, + { + "left_line": 6441, + "right_line": 6441 + }, + { + "left_line": 6442, + "right_line": 6442 + }, + { + "left_line": 6443, + "right_line": 6443 + }, + { + "left_line": 6444, + "right_line": 6444 + }, + { + "left_line": 6445, + "right_line": 6445 + }, + { + "left_line": 6446, + "right_line": 6446 + }, + { + "left_line": 6447, + "right_line": 6447 + }, + { + "left_line": 6448, + "right_line": 6448 + }, + { + "left_line": 6449, + "right_line": 6449 + }, + { + "left_line": 6450, + "right_line": 6450 + }, + { + "left_line": 6451, + "right_line": 6451 + }, + { + "left_line": 6452, + "right_line": 6452 + }, + { + "left_line": 6453, + "right_line": 6453 + }, + { + "left_line": 6454, + "right_line": 6454 + }, + { + "left_line": 6455, + "right_line": 6455 + }, + { + "left_line": 6456, + "right_line": 6456 + }, + { + "left_line": 6457, + "right_line": 6457 + }, + { + "left_line": 6458, + "right_line": 6458 + }, + { + "left_line": 6459, + "right_line": 6459 + }, + { + "left_line": 6460, + "right_line": 6460 + }, + { + "left_line": 6461, + "right_line": 6461 + }, + { + "left_line": 6462, + "right_line": 6462 + }, + { + "left_line": 6463, + "right_line": 6463 + }, + { + "left_line": 6464, + "right_line": 6464 + }, + { + "left_line": 6465, + "right_line": 6465 + }, + { + "left_line": 6466, + "right_line": 6466 + }, + { + "left_line": 6467, + "right_line": 6467 + }, + { + "left_line": 6468, + "right_line": 6468 + }, + { + "left_line": 6469, + "right_line": 6469 + }, + { + "left_line": 6470, + "right_line": 6470 + }, + { + "left_line": 6471, + "right_line": 6471 + }, + { + "left_line": 6472, + "right_line": 6472 + }, + { + "left_line": 6473, + "right_line": 6473 + }, + { + "left_line": 6474, + "right_line": 6474 + }, + { + "left_line": 6475, + "right_line": 6475 + }, + { + "left_line": 6476, + "right_line": 6476 + }, + { + "left_line": 6477, + "right_line": 6477 + }, + { + "left_line": 6478, + "right_line": 6478 + }, + { + "left_line": 6479, + "right_line": 6479 + }, + { + "left_line": 6480, + "right_line": 6480 + }, + { + "left_line": 6481, + "right_line": 6481 + }, + { + "left_line": 6482, + "right_line": 6482 + }, + { + "left_line": 6483, + "right_line": 6483 + }, + { + "left_line": 6484, + "right_line": 6484 + }, + { + "left_line": 6485, + "right_line": 6485 + }, + { + "left_line": 6486, + "right_line": 6486 + }, + { + "left_line": 6487, + "right_line": 6487 + }, + { + "left_line": 6488, + "right_line": 6488 + }, + { + "left_line": 6489, + "right_line": 6489 + }, + { + "left_line": 6490, + "right_line": 6490 + }, + { + "left_line": 6491, + "right_line": 6491 + }, + { + "left_line": 6492, + "right_line": 6492 + }, + { + "left_line": 6493, + "right_line": 6493 + }, + { + "left_line": 6494, + "right_line": 6494 + }, + { + "left_line": 6495, + "right_line": 6495 + }, + { + "left_line": 6496, + "right_line": 6496 + }, + { + "left_line": 6497, + "right_line": 6497 + }, + { + "left_line": 6498, + "right_line": 6498 + }, + { + "left_line": 6499, + "right_line": 6499 + }, + { + "left_line": 6500, + "right_line": 6500 + }, + { + "left_line": 6501, + "right_line": 6501 + }, + { + "left_line": 6502, + "right_line": 6502 + }, + { + "left_line": 6503, + "right_line": 6503 + }, + { + "left_line": 6504, + "right_line": 6504 + }, + { + "left_line": 6505, + "right_line": 6505 + }, + { + "left_line": 6506, + "right_line": 6506 + }, + { + "left_line": 6507, + "right_line": 6507 + }, + { + "left_line": 6508, + "right_line": 6508 + }, + { + "left_line": 6509, + "right_line": 6509 + }, + { + "left_line": 6510, + "right_line": 6510 + }, + { + "left_line": 6511, + "right_line": 6511 + }, + { + "left_line": 6512, + "right_line": 6512 + }, + { + "left_line": 6513, + "right_line": 6513 + }, + { + "left_line": 6514, + "right_line": 6514 + }, + { + "left_line": 6515, + "right_line": 6515 + }, + { + "left_line": 6516, + "right_line": 6516 + }, + { + "left_line": 6517, + "right_line": 6517 + }, + { + "left_line": 6518, + "right_line": 6518 + }, + { + "left_line": 6519, + "right_line": 6519 + }, + { + "left_line": 6520, + "right_line": 6520 + }, + { + "left_line": 6521, + "right_line": 6521 + }, + { + "left_line": 6522, + "right_line": 6522 + }, + { + "left_line": 6523, + "right_line": 6523 + }, + { + "left_line": 6524, + "right_line": 6524 + }, + { + "left_line": 6525, + "right_line": 6525 + }, + { + "left_line": 6526, + "right_line": 6526 + }, + { + "left_line": 6527, + "right_line": 6527 + }, + { + "left_line": 6528, + "right_line": 6528 + }, + { + "left_line": 6529, + "right_line": 6529 + }, + { + "left_line": 6530, + "right_line": 6530 + }, + { + "left_line": 6531, + "right_line": 6531 + }, + { + "left_line": 6532, + "right_line": 6532 + }, + { + "left_line": 6533, + "right_line": 6533 + }, + { + "left_line": 6534, + "right_line": 6534 + }, + { + "left_line": 6535, + "right_line": 6535 + }, + { + "left_line": 6536, + "right_line": 6536 + }, + { + "left_line": 6537, + "right_line": 6537 + }, + { + "left_line": 6538, + "right_line": 6538 + }, + { + "left_line": 6539, + "right_line": 6539 + }, + { + "left_line": 6540, + "right_line": 6540 + }, + { + "left_line": 6541, + "right_line": 6541 + }, + { + "left_line": 6542, + "right_line": 6542 + }, + { + "left_line": 6543, + "right_line": 6543 + }, + { + "left_line": 6544, + "right_line": 6544 + }, + { + "left_line": 6545, + "right_line": 6545 + }, + { + "left_line": 6546, + "right_line": 6546 + }, + { + "left_line": 6547, + "right_line": 6547 + }, + { + "left_line": 6548, + "right_line": 6548 + }, + { + "left_line": 6549, + "right_line": 6549 + }, + { + "left_line": 6550, + "right_line": 6550 + }, + { + "left_line": 6551, + "right_line": 6551 + }, + { + "left_line": 6552, + "right_line": 6552 + }, + { + "left_line": 6553, + "right_line": 6553 + }, + { + "left_line": 6554, + "right_line": 6554 + }, + { + "left_line": 6555, + "right_line": 6555 + }, + { + "left_line": 6556, + "right_line": 6556 + }, + { + "left_line": 6557, + "right_line": 6557 + }, + { + "left_line": 6558, + "right_line": 6558 + }, + { + "left_line": 6559, + "right_line": 6559 + }, + { + "left_line": 6560, + "right_line": 6560 + }, + { + "left_line": 6561, + "right_line": 6561 + }, + { + "left_line": 6562, + "right_line": 6562 + }, + { + "left_line": 6563, + "right_line": 6563 + }, + { + "left_line": 6564, + "right_line": 6564 + }, + { + "left_line": 6565, + "right_line": 6565 + }, + { + "left_line": 6566, + "right_line": 6566 + }, + { + "left_line": 6567, + "right_line": 6567 + }, + { + "left_line": 6568, + "right_line": 6568 + }, + { + "left_line": 6569, + "right_line": 6569 + }, + { + "left_line": 6570, + "right_line": 6570 + }, + { + "left_line": 6571, + "right_line": 6571 + }, + { + "left_line": 6572, + "right_line": 6572 + }, + { + "left_line": 6573, + "right_line": 6573 + }, + { + "left_line": 6574, + "right_line": 6574 + }, + { + "left_line": 6575, + "right_line": 6575 + }, + { + "left_line": 6576, + "right_line": 6576 + }, + { + "left_line": 6577, + "right_line": 6577 + }, + { + "left_line": 6578, + "right_line": 6578 + }, + { + "left_line": 6579, + "right_line": 6579 + }, + { + "left_line": 6580, + "right_line": 6580 + }, + { + "left_line": 6581, + "right_line": 6581 + }, + { + "left_line": 6582, + "right_line": 6582 + }, + { + "left_line": 6583, + "right_line": 6583 + }, + { + "left_line": 6584, + "right_line": 6584 + }, + { + "left_line": 6585, + "right_line": 6585 + }, + { + "left_line": 6586, + "right_line": 6586 + }, + { + "left_line": 6587, + "right_line": 6587 + }, + { + "left_line": 6588, + "right_line": 6588 + }, + { + "left_line": 6589, + "right_line": 6589 + }, + { + "left_line": 6590, + "right_line": 6590 + }, + { + "left_line": 6591, + "right_line": 6591 + }, + { + "left_line": 6592, + "right_line": 6592 + }, + { + "left_line": 6593, + "right_line": 6593 + }, + { + "left_line": 6594, + "right_line": 6594 + }, + { + "left_line": 6595, + "right_line": 6595 + }, + { + "left_line": 6596, + "right_line": 6596 + }, + { + "left_line": 6597, + "right_line": 6597 + }, + { + "left_line": 6598, + "right_line": 6598 + }, + { + "left_line": 6599, + "right_line": 6599 + }, + { + "left_line": 6600, + "right_line": 6600 + }, + { + "left_line": 6601, + "right_line": 6601 + }, + { + "left_line": 6602, + "right_line": 6602 + }, + { + "left_line": 6603, + "right_line": 6603 + }, + { + "left_line": 6604, + "right_line": 6604 + }, + { + "left_line": 6605, + "right_line": 6605 + }, + { + "left_line": 6606, + "right_line": 6606 + }, + { + "left_line": 6607, + "right_line": 6607 + }, + { + "left_line": 6608, + "right_line": 6608 + }, + { + "left_line": 6609, + "right_line": 6609 + }, + { + "left_line": 6610, + "right_line": 6610 + }, + { + "left_line": 6611, + "right_line": 6611 + }, + { + "left_line": 6612, + "right_line": 6612 + }, + { + "left_line": 6613, + "right_line": 6613 + }, + { + "left_line": 6614, + "right_line": 6614 + }, + { + "left_line": 6615, + "right_line": 6615 + }, + { + "left_line": 6616, + "right_line": 6616 + }, + { + "left_line": 6617, + "right_line": 6617 + }, + { + "left_line": 6618, + "right_line": 6618 + }, + { + "left_line": 6619, + "right_line": 6619 + }, + { + "left_line": 6620, + "right_line": 6620 + }, + { + "left_line": 6621, + "right_line": 6621 + }, + { + "left_line": 6622, + "right_line": 6622 + }, + { + "left_line": 6623, + "right_line": 6623 + }, + { + "left_line": 6624, + "right_line": 6624 + }, + { + "left_line": 6625, + "right_line": 6625 + }, + { + "left_line": 6626, + "right_line": 6626 + }, + { + "left_line": 6627, + "right_line": 6627 + }, + { + "left_line": 6628, + "right_line": 6628 + }, + { + "left_line": 6629, + "right_line": 6629 + }, + { + "left_line": 6630, + "right_line": 6630 + }, + { + "left_line": 6631, + "right_line": 6631 + }, + { + "left_line": 6632, + "right_line": 6632 + }, + { + "left_line": 6633, + "right_line": 6633 + }, + { + "left_line": 6634, + "right_line": 6634 + }, + { + "left_line": 6635, + "right_line": 6635 + }, + { + "left_line": 6636, + "right_line": 6636 + }, + { + "left_line": 6637, + "right_line": 6637 + }, + { + "left_line": 6638, + "right_line": 6638 + }, + { + "left_line": 6639, + "right_line": 6639 + }, + { + "left_line": 6640, + "right_line": 6640 + }, + { + "left_line": 6641, + "right_line": 6641 + }, + { + "left_line": 6642, + "right_line": 6642 + }, + { + "left_line": 6643, + "right_line": 6643 + }, + { + "left_line": 6644, + "right_line": 6644 + }, + { + "left_line": 6645, + "right_line": 6645 + }, + { + "left_line": 6646, + "right_line": 6646 + }, + { + "left_line": 6647, + "right_line": 6647 + }, + { + "left_line": 6648, + "right_line": 6648 + }, + { + "left_line": 6649, + "right_line": 6649 + }, + { + "left_line": 6650, + "right_line": 6650 + }, + { + "left_line": 6651, + "right_line": 6651 + }, + { + "left_line": 6652, + "right_line": 6652 + }, + { + "left_line": 6653, + "right_line": 6653 + }, + { + "left_line": 6654, + "right_line": 6654 + }, + { + "left_line": 6655, + "right_line": 6655 + }, + { + "left_line": 6656, + "right_line": 6656 + }, + { + "left_line": 6657, + "right_line": 6657 + }, + { + "left_line": 6658, + "right_line": 6658 + }, + { + "left_line": 6659, + "right_line": 6659 + }, + { + "left_line": 6660, + "right_line": 6660 + }, + { + "left_line": 6661, + "right_line": 6661 + }, + { + "left_line": 6662, + "right_line": 6662 + }, + { + "left_line": 6663, + "right_line": 6663 + }, + { + "left_line": 6664, + "right_line": 6664 + }, + { + "left_line": 6665, + "right_line": 6665 + }, + { + "left_line": 6666, + "right_line": 6666 + }, + { + "left_line": 6667, + "right_line": 6667 + }, + { + "left_line": 6668, + "right_line": 6668 + }, + { + "left_line": 6669, + "right_line": 6669 + }, + { + "left_line": 6670, + "right_line": 6670 + }, + { + "left_line": 6671, + "right_line": 6671 + }, + { + "left_line": 6672, + "right_line": 6672 + }, + { + "left_line": 6673, + "right_line": 6673 + }, + { + "left_line": 6674, + "right_line": 6674 + }, + { + "left_line": 6675, + "right_line": 6675 + }, + { + "left_line": 6676, + "right_line": 6676 + }, + { + "left_line": 6677, + "right_line": 6677 + }, + { + "left_line": 6678, + "right_line": 6678 + }, + { + "left_line": 6679, + "right_line": 6679 + }, + { + "left_line": 6680, + "right_line": 6680 + }, + { + "left_line": 6681, + "right_line": 6681 + }, + { + "left_line": 6682, + "right_line": 6682 + }, + { + "left_line": 6683, + "right_line": 6683 + }, + { + "left_line": 6684, + "right_line": 6684 + }, + { + "left_line": 6685, + "right_line": 6685 + }, + { + "left_line": 6686, + "right_line": 6686 + }, + { + "left_line": 6687, + "right_line": 6687 + }, + { + "left_line": 6688, + "right_line": 6688 + }, + { + "left_line": 6689, + "right_line": 6689 + }, + { + "left_line": 6690, + "right_line": 6690 + }, + { + "left_line": 6691, + "right_line": 6691 + }, + { + "left_line": 6692, + "right_line": 6692 + }, + { + "left_line": 6693, + "right_line": 6693 + }, + { + "left_line": 6694, + "right_line": 6694 + }, + { + "left_line": 6695, + "right_line": 6695 + }, + { + "left_line": 6696, + "right_line": 6696 + }, + { + "left_line": 6697, + "right_line": 6697 + }, + { + "left_line": 6698, + "right_line": 6698 + }, + { + "left_line": 6699, + "right_line": 6699 + }, + { + "left_line": 6700, + "right_line": 6700 + }, + { + "left_line": 6701, + "right_line": 6701 + }, + { + "left_line": 6702, + "right_line": 6702 + }, + { + "left_line": 6703, + "right_line": 6703 + }, + { + "left_line": 6704, + "right_line": 6704 + }, + { + "left_line": 6705, + "right_line": 6705 + }, + { + "left_line": 6706, + "right_line": 6706 + }, + { + "left_line": 6707, + "right_line": 6707 + }, + { + "left_line": 6708, + "right_line": 6708 + }, + { + "left_line": 6709, + "right_line": 6709 + }, + { + "left_line": 6710, + "right_line": 6710 + }, + { + "left_line": 6711, + "right_line": 6711 + }, + { + "left_line": 6712, + "right_line": 6712 + }, + { + "left_line": 6713, + "right_line": 6713 + }, + { + "left_line": 6714, + "right_line": 6714 + }, + { + "left_line": 6715, + "right_line": 6715 + }, + { + "left_line": 6716, + "right_line": 6716 + }, + { + "left_line": 6717, + "right_line": 6717 + }, + { + "left_line": 6718, + "right_line": 6718 + }, + { + "left_line": 6719, + "right_line": 6719 + }, + { + "left_line": 6720, + "right_line": 6720 + }, + { + "left_line": 6721, + "right_line": 6721 + }, + { + "left_line": 6722, + "right_line": 6722 + }, + { + "left_line": 6723, + "right_line": 6723 + }, + { + "left_line": 6724, + "right_line": 6724 + }, + { + "left_line": 6725, + "right_line": 6725 + }, + { + "left_line": 6726, + "right_line": 6726 + }, + { + "left_line": 6727, + "right_line": 6727 + }, + { + "left_line": 6728, + "right_line": 6728 + }, + { + "left_line": 6729, + "right_line": 6729 + }, + { + "left_line": 6730, + "right_line": 6730 + }, + { + "left_line": 6731, + "right_line": 6731 + }, + { + "left_line": 6732, + "right_line": 6732 + }, + { + "left_line": 6733, + "right_line": 6733 + }, + { + "left_line": 6734, + "right_line": 6734 + }, + { + "left_line": 6735, + "right_line": 6735 + }, + { + "left_line": 6736, + "right_line": 6736 + }, + { + "left_line": 6737, + "right_line": 6737 + }, + { + "left_line": 6738, + "right_line": 6738 + }, + { + "left_line": 6739, + "right_line": 6739 + }, + { + "left_line": 6740, + "right_line": 6740 + }, + { + "left_line": 6741, + "right_line": 6741 + }, + { + "left_line": 6742, + "right_line": 6742 + }, + { + "left_line": 6743, + "right_line": 6743 + }, + { + "left_line": 6744, + "right_line": 6744 + }, + { + "left_line": 6745, + "right_line": 6745 + }, + { + "left_line": 6746, + "right_line": 6746 + }, + { + "left_line": 6747, + "right_line": 6747 + }, + { + "left_line": 6748, + "right_line": 6748 + }, + { + "left_line": 6749, + "right_line": 6749 + }, + { + "left_line": 6750, + "right_line": 6750 + }, + { + "left_line": 6751, + "right_line": 6751 + }, + { + "left_line": 6752, + "right_line": 6752 + }, + { + "left_line": 6753, + "right_line": 6753 + }, + { + "left_line": 6754, + "right_line": 6754 + }, + { + "left_line": 6755, + "right_line": 6755 + }, + { + "left_line": 6756, + "right_line": 6756 + }, + { + "left_line": 6757, + "right_line": 6757 + }, + { + "left_line": 6758, + "right_line": 6758 + }, + { + "left_line": 6759, + "right_line": 6759 + }, + { + "left_line": 6760, + "right_line": 6760 + }, + { + "left_line": 6761, + "right_line": 6761 + }, + { + "left_line": 6762, + "right_line": 6762 + }, + { + "left_line": 6763, + "right_line": 6763 + }, + { + "left_line": 6764, + "right_line": 6764 + }, + { + "left_line": 6765, + "right_line": 6765 + }, + { + "left_line": 6766, + "right_line": 6766 + }, + { + "left_line": 6767, + "right_line": 6767 + }, + { + "left_line": 6768, + "right_line": 6768 + }, + { + "left_line": 6769, + "right_line": 6769 + }, + { + "left_line": 6770, + "right_line": 6770 + }, + { + "left_line": 6771, + "right_line": 6771 + }, + { + "left_line": 6772, + "right_line": 6772 + }, + { + "left_line": 6773, + "right_line": 6773 + }, + { + "left_line": 6774, + "right_line": 6774 + }, + { + "left_line": 6775, + "right_line": 6775 + }, + { + "left_line": 6776, + "right_line": 6776 + }, + { + "left_line": 6777, + "right_line": 6777 + }, + { + "left_line": 6778, + "right_line": 6778 + }, + { + "left_line": 6779, + "right_line": 6779 + }, + { + "left_line": 6780, + "right_line": 6780 + }, + { + "left_line": 6781, + "right_line": 6781 + }, + { + "left_line": 6782, + "right_line": 6782 + }, + { + "left_line": 6783, + "right_line": 6783 + }, + { + "left_line": 6784, + "right_line": 6784 + }, + { + "left_line": 6785, + "right_line": 6785 + }, + { + "left_line": 6786, + "right_line": 6786 + }, + { + "left_line": 6787, + "right_line": 6787 + }, + { + "left_line": 6788, + "right_line": 6788 + }, + { + "left_line": 6789, + "right_line": 6789 + }, + { + "left_line": 6790, + "right_line": 6790 + }, + { + "left_line": 6791, + "right_line": 6791 + }, + { + "left_line": 6792, + "right_line": 6792 + }, + { + "left_line": 6793, + "right_line": 6793 + }, + { + "left_line": 6794, + "right_line": 6794 + }, + { + "left_line": 6795, + "right_line": 6795 + }, + { + "left_line": 6796, + "right_line": 6796 + }, + { + "left_line": 6797, + "right_line": 6797 + }, + { + "left_line": 6798, + "right_line": 6798 + }, + { + "left_line": 6799, + "right_line": 6799 + }, + { + "left_line": 6800, + "right_line": 6800 + }, + { + "left_line": 6801, + "right_line": 6801 + }, + { + "left_line": 6802, + "right_line": 6802 + }, + { + "left_line": 6803, + "right_line": 6803 + }, + { + "left_line": 6804, + "right_line": 6804 + }, + { + "left_line": 6805, + "right_line": 6805 + }, + { + "left_line": 6806, + "right_line": 6806 + }, + { + "left_line": 6807, + "right_line": 6807 + }, + { + "left_line": 6808, + "right_line": 6808 + }, + { + "left_line": 6809, + "right_line": 6809 + }, + { + "left_line": 6810, + "right_line": 6810 + }, + { + "left_line": 6811, + "right_line": 6811 + }, + { + "left_line": 6812, + "right_line": 6812 + }, + { + "left_line": 6813, + "right_line": 6813 + }, + { + "left_line": 6814, + "right_line": 6814 + }, + { + "left_line": 6815, + "right_line": 6815 + }, + { + "left_line": 6816, + "right_line": 6816 + }, + { + "left_line": 6817, + "right_line": 6817 + }, + { + "left_line": 6818, + "right_line": 6818 + }, + { + "left_line": 6819, + "right_line": 6819 + }, + { + "left_line": 6820, + "right_line": 6820 + }, + { + "left_line": 6821, + "right_line": 6821 + }, + { + "left_line": 6822, + "right_line": 6822 + }, + { + "left_line": 6823, + "right_line": 6823 + }, + { + "left_line": 6824, + "right_line": 6824 + }, + { + "left_line": 6825, + "right_line": 6825 + }, + { + "left_line": 6826, + "right_line": 6826 + }, + { + "left_line": 6827, + "right_line": 6827 + }, + { + "left_line": 6828, + "right_line": 6828 + }, + { + "left_line": 6829, + "right_line": 6829 + }, + { + "left_line": 6830, + "right_line": 6830 + }, + { + "left_line": 6831, + "right_line": 6831 + }, + { + "left_line": 6832, + "right_line": 6832 + }, + { + "left_line": 6833, + "right_line": 6833 + }, + { + "left_line": 6834, + "right_line": 6834 + }, + { + "left_line": 6835, + "right_line": 6835 + }, + { + "left_line": 6836, + "right_line": 6836 + }, + { + "left_line": 6837, + "right_line": 6837 + }, + { + "left_line": 6838, + "right_line": 6838 + }, + { + "left_line": 6839, + "right_line": 6839 + }, + { + "left_line": 6840, + "right_line": 6840 + }, + { + "left_line": 6841, + "right_line": 6841 + }, + { + "left_line": 6842, + "right_line": 6842 + }, + { + "left_line": 6843, + "right_line": 6843 + }, + { + "left_line": 6844, + "right_line": 6844 + }, + { + "left_line": 6845, + "right_line": 6845 + }, + { + "left_line": 6846, + "right_line": 6846 + }, + { + "left_line": 6847, + "right_line": 6847 + }, + { + "left_line": 6848, + "right_line": 6848 + }, + { + "left_line": 6849, + "right_line": 6849 + }, + { + "left_line": 6850, + "right_line": 6850 + }, + { + "left_line": 6851, + "right_line": 6851 + }, + { + "left_line": 6852, + "right_line": 6852 + }, + { + "left_line": 6853, + "right_line": 6853 + }, + { + "left_line": 6854, + "right_line": 6854 + }, + { + "left_line": 6855, + "right_line": 6855 + }, + { + "left_line": 6856, + "right_line": 6856 + }, + { + "left_line": 6857, + "right_line": 6857 + }, + { + "left_line": 6858, + "right_line": 6858 + }, + { + "left_line": 6859, + "right_line": 6859 + }, + { + "left_line": 6860, + "right_line": 6860 + }, + { + "left_line": 6861, + "right_line": 6861 + }, + { + "left_line": 6862, + "right_line": 6862 + }, + { + "left_line": 6863, + "right_line": 6863 + }, + { + "left_line": 6864, + "right_line": 6864 + }, + { + "left_line": 6865, + "right_line": 6865 + }, + { + "left_line": 6866, + "right_line": 6866 + }, + { + "left_line": 6867, + "right_line": 6867 + }, + { + "left_line": 6868, + "right_line": 6868 + }, + { + "left_line": 6869, + "right_line": 6869 + }, + { + "left_line": 6870, + "right_line": 6870 + }, + { + "left_line": 6871, + "right_line": 6871 + }, + { + "left_line": 6872, + "right_line": 6872 + }, + { + "left_line": 6873, + "right_line": 6873 + }, + { + "left_line": 6874, + "right_line": 6874 + }, + { + "left_line": 6875, + "right_line": 6875 + }, + { + "left_line": 6876, + "right_line": 6876 + }, + { + "left_line": 6877, + "right_line": 6877 + }, + { + "left_line": 6878, + "right_line": 6878 + }, + { + "left_line": 6879, + "right_line": 6879 + }, + { + "left_line": 6880, + "right_line": 6880 + }, + { + "left_line": 6881, + "right_line": 6881 + }, + { + "left_line": 6882, + "right_line": 6882 + }, + { + "left_line": 6883, + "right_line": 6883 + }, + { + "left_line": 6884, + "right_line": 6884 + }, + { + "left_line": 6885, + "right_line": 6885 + }, + { + "left_line": 6886, + "right_line": 6886 + }, + { + "left_line": 6887, + "right_line": 6887 + }, + { + "left_line": 6888, + "right_line": 6888 + }, + { + "left_line": 6889, + "right_line": 6889 + }, + { + "left_line": 6890, + "right_line": 6890 + }, + { + "left_line": 6891, + "right_line": 6891 + }, + { + "left_line": 6892, + "right_line": 6892 + }, + { + "left_line": 6893, + "right_line": 6893 + }, + { + "left_line": 6894, + "right_line": 6894 + }, + { + "left_line": 6895, + "right_line": 6895 + }, + { + "left_line": 6896, + "right_line": 6896 + }, + { + "left_line": 6897, + "right_line": 6897 + }, + { + "left_line": 6898, + "right_line": 6898 + }, + { + "left_line": 6899, + "right_line": 6899 + }, + { + "left_line": 6900, + "right_line": 6900 + }, + { + "left_line": 6901, + "right_line": 6901 + }, + { + "left_line": 6902, + "right_line": 6902 + }, + { + "left_line": 6903, + "right_line": 6903 + }, + { + "left_line": 6904, + "right_line": 6904 + }, + { + "left_line": 6905, + "right_line": 6905 + }, + { + "left_line": 6906, + "right_line": 6906 + }, + { + "left_line": 6907, + "right_line": 6907 + }, + { + "left_line": 6908, + "right_line": 6908 + }, + { + "left_line": 6909, + "right_line": 6909 + }, + { + "left_line": 6910, + "right_line": 6910 + }, + { + "left_line": 6911, + "right_line": 6911 + }, + { + "left_line": 6912, + "right_line": 6912 + }, + { + "left_line": 6913, + "right_line": 6913 + }, + { + "left_line": 6914, + "right_line": 6914 + }, + { + "left_line": 6915, + "right_line": 6915 + }, + { + "left_line": 6916, + "right_line": 6916 + }, + { + "left_line": 6917, + "right_line": 6917 + }, + { + "left_line": 6918, + "right_line": 6918 + }, + { + "left_line": 6919, + "right_line": 6919 + }, + { + "left_line": 6920, + "right_line": 6920 + }, + { + "left_line": 6921, + "right_line": 6921 + }, + { + "left_line": 6922, + "right_line": 6922 + }, + { + "left_line": 6923, + "right_line": 6923 + }, + { + "left_line": 6924, + "right_line": 6924 + }, + { + "left_line": 6925, + "right_line": 6925 + }, + { + "left_line": 6926, + "right_line": 6926 + }, + { + "left_line": 6927, + "right_line": 6927 + }, + { + "left_line": 6928, + "right_line": 6928 + }, + { + "left_line": 6929, + "right_line": 6929 + }, + { + "left_line": 6930, + "right_line": 6930 + }, + { + "left_line": 6931, + "right_line": 6931 + }, + { + "left_line": 6932, + "right_line": 6932 + }, + { + "left_line": 6933, + "right_line": 6933 + }, + { + "left_line": 6934, + "right_line": 6934 + }, + { + "left_line": 6935, + "right_line": 6935 + }, + { + "left_line": 6936, + "right_line": 6936 + }, + { + "left_line": 6937, + "right_line": 6937 + }, + { + "left_line": 6938, + "right_line": 6938 + }, + { + "left_line": 6939, + "right_line": 6939 + }, + { + "left_line": 6940, + "right_line": 6940 + }, + { + "left_line": 6941, + "right_line": 6941 + }, + { + "left_line": 6942, + "right_line": 6942 + }, + { + "left_line": 6943, + "right_line": 6943 + }, + { + "left_line": 6944, + "right_line": 6944 + }, + { + "left_line": 6945, + "right_line": 6945 + }, + { + "left_line": 6946, + "right_line": 6946 + }, + { + "left_line": 6947, + "right_line": 6947 + }, + { + "left_line": 6948, + "right_line": 6948 + }, + { + "left_line": 6949, + "right_line": 6949 + }, + { + "left_line": 6950, + "right_line": 6950 + }, + { + "left_line": 6951, + "right_line": 6951 + }, + { + "left_line": 6952, + "right_line": 6952 + }, + { + "left_line": 6953, + "right_line": 6953 + }, + { + "left_line": 6954, + "right_line": 6954 + }, + { + "left_line": 6955, + "right_line": 6955 + }, + { + "left_line": 6956, + "right_line": 6956 + }, + { + "left_line": 6957, + "right_line": 6957 + }, + { + "left_line": 6958, + "right_line": 6958 + }, + { + "left_line": 6959, + "right_line": 6959 + }, + { + "left_line": 6960, + "right_line": 6960 + }, + { + "left_line": 6961, + "right_line": 6961 + }, + { + "left_line": 6962, + "right_line": 6962 + }, + { + "left_line": 6963, + "right_line": 6963 + }, + { + "left_line": 6964, + "right_line": 6964 + }, + { + "left_line": 6965, + "right_line": 6965 + }, + { + "left_line": 6966, + "right_line": 6966 + }, + { + "left_line": 6967, + "right_line": 6967 + }, + { + "left_line": 6968, + "right_line": 6968 + }, + { + "left_line": 6969, + "right_line": 6969 + }, + { + "left_line": 6970, + "right_line": 6970 + }, + { + "left_line": 6971, + "right_line": 6971 + }, + { + "left_line": 6972, + "right_line": 6972 + }, + { + "left_line": 6973, + "right_line": 6973 + }, + { + "left_line": 6974, + "right_line": 6974 + }, + { + "left_line": 6975, + "right_line": 6975 + }, + { + "left_line": 6976, + "right_line": 6976 + }, + { + "left_line": 6977, + "right_line": 6977 + }, + { + "left_line": 6978, + "right_line": 6978 + }, + { + "left_line": 6979, + "right_line": 6979 + }, + { + "left_line": 6980, + "right_line": 6980 + }, + { + "left_line": 6981, + "right_line": 6981 + }, + { + "left_line": 6982, + "right_line": 6982 + }, + { + "left_line": 6983, + "right_line": 6983 + }, + { + "left_line": 6984, + "right_line": 6984 + }, + { + "left_line": 6985, + "right_line": 6985 + }, + { + "left_line": 6986, + "right_line": 6986 + }, + { + "left_line": 6987, + "right_line": 6987 + }, + { + "left_line": 6988, + "right_line": 6988 + }, + { + "left_line": 6989, + "right_line": 6989 + }, + { + "left_line": 6990, + "right_line": 6990 + }, + { + "left_line": 6991, + "right_line": 6991 + }, + { + "left_line": 6992, + "right_line": 6992 + }, + { + "left_line": 6993, + "right_line": 6993 + }, + { + "left_line": 6994, + "right_line": 6994 + }, + { + "left_line": 6995, + "right_line": 6995 + }, + { + "left_line": 6996, + "right_line": 6996 + }, + { + "left_line": 6997, + "right_line": 6997 + }, + { + "left_line": 6998, + "right_line": 6998 + }, + { + "left_line": 6999, + "right_line": 6999 + }, + { + "left_line": 7000, + "right_line": 7000 + }, + { + "left_line": 7001, + "right_line": 7001 + }, + { + "left_line": 7002, + "right_line": 7002 + }, + { + "left_line": 7003, + "right_line": 7003 + }, + { + "left_line": 7004, + "right_line": 7004 + }, + { + "left_line": 7005, + "right_line": 7005 + }, + { + "left_line": 7006, + "right_line": 7006 + }, + { + "left_line": 7007, + "right_line": 7007 + }, + { + "left_line": 7008, + "right_line": 7008 + }, + { + "left_line": 7009, + "right_line": 7009 + }, + { + "left_line": 7010, + "right_line": 7010 + }, + { + "left_line": 7011, + "right_line": 7011 + }, + { + "left_line": 7012, + "right_line": 7012 + }, + { + "left_line": 7013, + "right_line": 7013 + }, + { + "left_line": 7014, + "right_line": 7014 + }, + { + "left_line": 7015, + "right_line": 7015 + }, + { + "left_line": 7016, + "right_line": 7016 + }, + { + "left_line": 7017, + "right_line": 7017 + }, + { + "left_line": 7018, + "right_line": 7018 + }, + { + "left_line": 7019, + "right_line": 7019 + }, + { + "left_line": 7020, + "right_line": 7020 + }, + { + "left_line": 7021, + "right_line": 7021 + }, + { + "left_line": 7022, + "right_line": 7022 + }, + { + "left_line": 7023, + "right_line": 7023 + }, + { + "left_line": 7024, + "right_line": 7024 + }, + { + "left_line": 7025, + "right_line": 7025 + }, + { + "left_line": 7026, + "right_line": 7026 + }, + { + "left_line": 7027, + "right_line": 7027 + }, + { + "left_line": 7028, + "right_line": 7028 + }, + { + "left_line": 7029, + "right_line": 7029 + }, + { + "left_line": 7030, + "right_line": 7030 + }, + { + "left_line": 7031, + "right_line": 7031 + }, + { + "left_line": 7032, + "right_line": 7032 + }, + { + "left_line": 7033, + "right_line": 7033 + }, + { + "left_line": 7034, + "right_line": 7034 + }, + { + "left_line": 7035, + "right_line": 7035 + }, + { + "left_line": 7036, + "right_line": 7036 + }, + { + "left_line": 7037, + "right_line": 7037 + }, + { + "left_line": 7038, + "right_line": 7038 + }, + { + "left_line": 7039, + "right_line": 7039 + }, + { + "left_line": 7040, + "right_line": 7040 + }, + { + "left_line": 7041, + "right_line": 7041 + }, + { + "left_line": 7042, + "right_line": 7042 + }, + { + "left_line": 7043, + "right_line": 7043 + }, + { + "left_line": 7044, + "right_line": 7044 + }, + { + "left_line": 7045, + "right_line": 7045 + }, + { + "left_line": 7046, + "right_line": 7046 + }, + { + "left_line": 7047, + "right_line": 7047 + }, + { + "left_line": 7048, + "right_line": 7048 + }, + { + "left_line": 7049, + "right_line": 7049 + }, + { + "left_line": 7050, + "right_line": 7050 + }, + { + "left_line": 7051, + "right_line": 7051 + }, + { + "left_line": 7052, + "right_line": 7052 + }, + { + "left_line": 7053, + "right_line": 7053 + }, + { + "left_line": 7054, + "right_line": 7054 + }, + { + "left_line": 7055, + "right_line": 7055 + }, + { + "left_line": 7056, + "right_line": 7056 + }, + { + "left_line": 7057, + "right_line": 7057 + }, + { + "left_line": 7058, + "right_line": 7058 + }, + { + "left_line": 7059, + "right_line": 7059 + }, + { + "left_line": 7060, + "right_line": 7060 + }, + { + "left_line": 7061, + "right_line": 7061 + }, + { + "left_line": 7062, + "right_line": 7062 + }, + { + "left_line": 7063, + "right_line": 7063 + }, + { + "left_line": 7064, + "right_line": 7064 + }, + { + "left_line": 7065, + "right_line": 7065 + }, + { + "left_line": 7066, + "right_line": 7066 + }, + { + "left_line": 7067, + "right_line": 7067 + }, + { + "left_line": 7068, + "right_line": 7068 + }, + { + "left_line": 7069, + "right_line": 7069 + }, + { + "left_line": 7070, + "right_line": 7070 + }, + { + "left_line": 7071, + "right_line": 7071 + }, + { + "left_line": 7072, + "right_line": 7072 + }, + { + "left_line": 7073, + "right_line": 7073 + }, + { + "left_line": 7074, + "right_line": 7074 + }, + { + "left_line": 7075, + "right_line": 7075 + }, + { + "left_line": 7076, + "right_line": 7076 + }, + { + "left_line": 7077, + "right_line": 7077 + }, + { + "left_line": 7078, + "right_line": 7078 + }, + { + "left_line": 7079, + "right_line": 7079 + }, + { + "left_line": 7080, + "right_line": 7080 + }, + { + "left_line": 7081, + "right_line": 7081 + }, + { + "left_line": 7082, + "right_line": 7082 + }, + { + "left_line": 7083, + "right_line": 7083 + }, + { + "left_line": 7084, + "right_line": 7084 + }, + { + "left_line": 7085, + "right_line": 7085 + }, + { + "left_line": 7086, + "right_line": 7086 + }, + { + "left_line": 7087, + "right_line": 7087 + }, + { + "left_line": 7088, + "right_line": 7088 + }, + { + "left_line": 7089, + "right_line": 7089 + }, + { + "left_line": 7090, + "right_line": 7090 + }, + { + "left_line": 7091, + "right_line": 7091 + }, + { + "left_line": 7092, + "right_line": 7092 + }, + { + "left_line": 7093, + "right_line": 7093 + }, + { + "left_line": 7094, + "right_line": 7094 + }, + { + "left_line": 7095, + "right_line": 7095 + }, + { + "left_line": 7096, + "right_line": 7096 + }, + { + "left_line": 7097, + "right_line": 7097 + }, + { + "left_line": 7098, + "right_line": 7098 + }, + { + "left_line": 7099, + "right_line": 7099 + }, + { + "left_line": 7100, + "right_line": 7100 + }, + { + "left_line": 7101, + "right_line": 7101 + }, + { + "left_line": 7102, + "right_line": 7102 + }, + { + "left_line": 7103, + "right_line": 7103 + }, + { + "left_line": 7104, + "right_line": 7104 + }, + { + "left_line": 7105, + "right_line": 7105 + }, + { + "left_line": 7106, + "right_line": 7106 + }, + { + "left_line": 7107, + "right_line": 7107 + }, + { + "left_line": 7108, + "right_line": 7108 + }, + { + "left_line": 7109, + "right_line": 7109 + }, + { + "left_line": 7110, + "right_line": 7110 + }, + { + "left_line": 7111, + "right_line": 7111 + }, + { + "left_line": 7112, + "right_line": 7112 + }, + { + "left_line": 7113, + "right_line": 7113 + }, + { + "left_line": 7114, + "right_line": 7114 + }, + { + "left_line": 7115, + "right_line": 7115 + }, + { + "left_line": 7116, + "right_line": 7116 + }, + { + "left_line": 7117, + "right_line": 7117 + }, + { + "left_line": 7118, + "right_line": 7118 + }, + { + "left_line": 7119, + "right_line": 7119 + }, + { + "left_line": 7120, + "right_line": 7120 + }, + { + "left_line": 7121, + "right_line": 7121 + }, + { + "left_line": 7122, + "right_line": 7122 + }, + { + "left_line": 7123, + "right_line": 7123 + }, + { + "left_line": 7124, + "right_line": 7124 + }, + { + "left_line": 7125, + "right_line": 7125 + }, + { + "left_line": 7126, + "right_line": 7126 + }, + { + "left_line": 7127, + "right_line": 7127 + }, + { + "left_line": 7128, + "right_line": 7128 + }, + { + "left_line": 7129, + "right_line": 7129 + }, + { + "left_line": 7130, + "right_line": 7130 + }, + { + "left_line": 7131, + "right_line": 7131 + }, + { + "left_line": 7132, + "right_line": 7132 + }, + { + "left_line": 7133, + "right_line": 7133 + }, + { + "left_line": 7134, + "right_line": 7134 + }, + { + "left_line": 7135, + "right_line": 7135 + }, + { + "left_line": 7136, + "right_line": 7136 + }, + { + "left_line": 7137, + "right_line": 7137 + }, + { + "left_line": 7138, + "right_line": 7138 + }, + { + "left_line": 7139, + "right_line": 7139 + }, + { + "left_line": 7140, + "right_line": 7140 + }, + { + "left_line": 7141, + "right_line": 7141 + }, + { + "left_line": 7142, + "right_line": 7142 + }, + { + "left_line": 7143, + "right_line": 7143 + }, + { + "left_line": 7144, + "right_line": 7144 + }, + { + "left_line": 7145, + "right_line": 7145 + }, + { + "left_line": 7146, + "right_line": 7146 + }, + { + "left_line": 7147, + "right_line": 7147 + }, + { + "left_line": 7148, + "right_line": 7148 + }, + { + "left_line": 7149, + "right_line": 7149 + }, + { + "left_line": 7150, + "right_line": 7150 + }, + { + "left_line": 7151, + "right_line": 7151 + }, + { + "left_line": 7152, + "right_line": 7152 + }, + { + "left_line": 7153, + "right_line": 7153 + }, + { + "left_line": 7154, + "right_line": 7154 + }, + { + "left_line": 7155, + "right_line": 7155 + }, + { + "left_line": 7156, + "right_line": 7156 + }, + { + "left_line": 7157, + "right_line": 7157 + }, + { + "left_line": 7158, + "right_line": 7158 + }, + { + "left_line": 7159, + "right_line": 7159 + }, + { + "left_line": 7160, + "right_line": 7160 + }, + { + "left_line": 7161, + "right_line": 7161 + }, + { + "left_line": 7162, + "right_line": 7162 + }, + { + "left_line": 7163, + "right_line": 7163 + }, + { + "left_line": 7164, + "right_line": 7164 + }, + { + "left_line": 7165, + "right_line": 7165 + }, + { + "left_line": 7166, + "right_line": 7166 + }, + { + "left_line": 7167, + "right_line": 7167 + }, + { + "left_line": 7168, + "right_line": 7168 + }, + { + "left_line": 7169, + "right_line": 7169 + }, + { + "left_line": 7170, + "right_line": 7170 + }, + { + "left_line": 7171, + "right_line": 7171 + }, + { + "left_line": 7172, + "right_line": 7172 + }, + { + "left_line": 7173, + "right_line": 7173 + }, + { + "left_line": 7174, + "right_line": 7174 + }, + { + "left_line": 7175, + "right_line": 7175 + }, + { + "left_line": 7176, + "right_line": 7176 + }, + { + "left_line": 7177, + "right_line": 7177 + }, + { + "left_line": 7178, + "right_line": 7178 + }, + { + "left_line": 7179, + "right_line": 7179 + }, + { + "left_line": 7180, + "right_line": 7180 + }, + { + "left_line": 7181, + "right_line": 7181 + }, + { + "left_line": 7182, + "right_line": 7182 + }, + { + "left_line": 7183, + "right_line": 7183 + }, + { + "left_line": 7184, + "right_line": 7184 + }, + { + "left_line": 7185, + "right_line": 7185 + }, + { + "left_line": 7186, + "right_line": 7186 + }, + { + "left_line": 7187, + "right_line": 7187 + }, + { + "left_line": 7188, + "right_line": 7188 + }, + { + "left_line": 7189, + "right_line": 7189 + }, + { + "left_line": 7190, + "right_line": 7190 + }, + { + "left_line": 7191, + "right_line": 7191 + }, + { + "left_line": 7192, + "right_line": 7192 + }, + { + "left_line": 7193, + "right_line": 7193 + }, + { + "left_line": 7194, + "right_line": 7194 + }, + { + "left_line": 7195, + "right_line": 7195 + }, + { + "left_line": 7196, + "right_line": 7196 + }, + { + "left_line": 7197, + "right_line": 7197 + }, + { + "left_line": 7198, + "right_line": 7198 + }, + { + "left_line": 7199, + "right_line": 7199 + }, + { + "left_line": 7200, + "right_line": 7200 + }, + { + "left_line": 7201, + "right_line": 7201 + }, + { + "left_line": 7202, + "right_line": 7202 + }, + { + "left_line": 7203, + "right_line": 7203 + }, + { + "left_line": 7204, + "right_line": 7204 + }, + { + "left_line": 7205, + "right_line": 7205 + }, + { + "left_line": 7206, + "right_line": 7206 + }, + { + "left_line": 7207, + "right_line": 7207 + }, + { + "left_line": 7208, + "right_line": 7208 + }, + { + "left_line": 7209, + "right_line": 7209 + }, + { + "left_line": 7210, + "right_line": 7210 + }, + { + "left_line": 7211, + "right_line": 7211 + }, + { + "left_line": 7212, + "right_line": 7212 + }, + { + "left_line": 7213, + "right_line": 7213 + }, + { + "left_line": 7214, + "right_line": 7214 + }, + { + "left_line": 7215, + "right_line": 7215 + }, + { + "left_line": 7216, + "right_line": 7216 + }, + { + "left_line": 7217, + "right_line": 7217 + }, + { + "left_line": 7218, + "right_line": 7218 + }, + { + "left_line": 7219, + "right_line": 7219 + }, + { + "left_line": 7220, + "right_line": 7220 + }, + { + "left_line": 7221, + "right_line": 7221 + }, + { + "left_line": 7222, + "right_line": 7222 + }, + { + "left_line": 7223, + "right_line": 7223 + }, + { + "left_line": 7224, + "right_line": 7224 + }, + { + "left_line": 7225, + "right_line": 7225 + }, + { + "left_line": 7226, + "right_line": 7226 + }, + { + "left_line": 7227, + "right_line": 7227 + }, + { + "left_line": 7228, + "right_line": 7228 + }, + { + "left_line": 7229, + "right_line": 7229 + }, + { + "left_line": 7230, + "right_line": 7230 + }, + { + "left_line": 7231, + "right_line": 7231 + }, + { + "left_line": 7232, + "right_line": 7232 + }, + { + "left_line": 7233, + "right_line": 7233 + }, + { + "left_line": 7234, + "right_line": 7234 + }, + { + "left_line": 7235, + "right_line": 7235 + }, + { + "left_line": 7236, + "right_line": 7236 + }, + { + "left_line": 7237, + "right_line": 7237 + }, + { + "left_line": 7238, + "right_line": 7238 + }, + { + "left_line": 7239, + "right_line": 7239 + }, + { + "left_line": 7240, + "right_line": 7240 + }, + { + "left_line": 7241, + "right_line": 7241 + }, + { + "left_line": 7242, + "right_line": 7242 + }, + { + "left_line": 7243, + "right_line": 7243 + }, + { + "left_line": 7244, + "right_line": 7244 + }, + { + "left_line": 7245, + "right_line": 7245 + }, + { + "left_line": 7246, + "right_line": 7246 + }, + { + "left_line": 7247, + "right_line": 7247 + }, + { + "left_line": 7248, + "right_line": 7248 + }, + { + "left_line": 7249, + "right_line": 7249 + }, + { + "left_line": 7250, + "right_line": 7250 + }, + { + "left_line": 7251, + "right_line": 7251 + }, + { + "left_line": 7252, + "right_line": 7252 + }, + { + "left_line": 7253, + "right_line": 7253 + }, + { + "left_line": 7254, + "right_line": 7254 + }, + { + "left_line": 7255, + "right_line": 7255 + }, + { + "left_line": 7256, + "right_line": 7256 + }, + { + "left_line": 7257, + "right_line": 7257 + }, + { + "left_line": 7258, + "right_line": 7258 + }, + { + "left_line": 7259, + "right_line": 7259 + }, + { + "left_line": 7260, + "right_line": 7260 + }, + { + "left_line": 7261, + "right_line": 7261 + }, + { + "left_line": 7262, + "right_line": 7262 + }, + { + "left_line": 7263, + "right_line": 7263 + }, + { + "left_line": 7264, + "right_line": 7264 + }, + { + "left_line": 7265, + "right_line": 7265 + }, + { + "left_line": 7266, + "right_line": 7266 + }, + { + "left_line": 7267, + "right_line": 7267 + }, + { + "left_line": 7268, + "right_line": 7268 + }, + { + "left_line": 7269, + "right_line": 7269 + }, + { + "left_line": 7270, + "right_line": 7270 + }, + { + "left_line": 7271, + "right_line": 7271 + }, + { + "left_line": 7272, + "right_line": 7272 + }, + { + "left_line": 7273, + "right_line": 7273 + }, + { + "left_line": 7274, + "right_line": 7274 + }, + { + "left_line": 7275, + "right_line": 7275 + }, + { + "left_line": 7276, + "right_line": 7276 + }, + { + "left_line": 7277, + "right_line": 7277 + }, + { + "left_line": 7278, + "right_line": 7278 + }, + { + "left_line": 7279, + "right_line": 7279 + }, + { + "left_line": 7280, + "right_line": 7280 + }, + { + "left_line": 7281, + "right_line": 7281 + }, + { + "left_line": 7282, + "right_line": 7282 + }, + { + "left_line": 7283, + "right_line": 7283 + }, + { + "left_line": 7284, + "right_line": 7284 + }, + { + "left_line": 7285, + "right_line": 7285 + }, + { + "left_line": 7286, + "right_line": 7286 + }, + { + "left_line": 7287, + "right_line": 7287 + }, + { + "left_line": 7288, + "right_line": 7288 + }, + { + "left_line": 7289, + "right_line": 7289 + }, + { + "left_line": 7290, + "right_line": 7290 + }, + { + "left_line": 7291, + "right_line": 7291 + }, + { + "left_line": 7292, + "right_line": 7292 + }, + { + "left_line": 7293, + "right_line": 7293 + }, + { + "left_line": 7294, + "right_line": 7294 + }, + { + "left_line": 7295, + "right_line": 7295 + }, + { + "left_line": 7296, + "right_line": 7296 + }, + { + "left_line": 7297, + "right_line": 7297 + }, + { + "left_line": 7298, + "right_line": 7298 + }, + { + "left_line": 7299, + "right_line": 7299 + }, + { + "left_line": 7300, + "right_line": 7300 + }, + { + "left_line": 7301, + "right_line": 7301 + }, + { + "left_line": 7302, + "right_line": 7302 + }, + { + "left_line": 7303, + "right_line": 7303 + }, + { + "left_line": 7304, + "right_line": 7304 + }, + { + "left_line": 7305, + "right_line": 7305 + }, + { + "left_line": 7306, + "right_line": 7306 + }, + { + "left_line": 7307, + "right_line": 7307 + }, + { + "left_line": 7308, + "right_line": 7308 + }, + { + "left_line": 7309, + "right_line": 7309 + }, + { + "left_line": 7310, + "right_line": 7310 + }, + { + "left_line": 7311, + "right_line": 7311 + }, + { + "left_line": 7312, + "right_line": 7312 + }, + { + "left_line": 7313, + "right_line": 7313 + }, + { + "left_line": 7314, + "right_line": 7314 + }, + { + "left_line": 7315, + "right_line": 7315 + }, + { + "left_line": 7316, + "right_line": 7316 + }, + { + "left_line": 7317, + "right_line": 7317 + }, + { + "left_line": 7318, + "right_line": 7318 + }, + { + "left_line": 7319, + "right_line": 7319 + }, + { + "left_line": 7320, + "right_line": 7320 + }, + { + "left_line": 7321, + "right_line": 7321 + }, + { + "left_line": 7322, + "right_line": 7322 + }, + { + "left_line": 7323, + "right_line": 7323 + }, + { + "left_line": 7324, + "right_line": 7324 + }, + { + "left_line": 7325, + "right_line": 7325 + }, + { + "left_line": 7326, + "right_line": 7326 + }, + { + "left_line": 7327, + "right_line": 7327 + }, + { + "left_line": 7328, + "right_line": 7328 + }, + { + "left_line": 7329, + "right_line": 7329 + }, + { + "left_line": 7330, + "right_line": 7330 + }, + { + "left_line": 7331, + "right_line": 7331 + }, + { + "left_line": 7332, + "right_line": 7332 + }, + { + "left_line": 7333, + "right_line": 7333 + }, + { + "left_line": 7334, + "right_line": 7334 + }, + { + "left_line": 7335, + "right_line": 7335 + }, + { + "left_line": 7336, + "right_line": 7336 + }, + { + "left_line": 7337, + "right_line": 7337 + }, + { + "left_line": 7338, + "right_line": 7338 + }, + { + "left_line": 7339, + "right_line": 7339 + }, + { + "left_line": 7340, + "right_line": 7340 + }, + { + "left_line": 7341, + "right_line": 7341 + }, + { + "left_line": 7342, + "right_line": 7342 + }, + { + "left_line": 7343, + "right_line": 7343 + }, + { + "left_line": 7344, + "right_line": 7344 + }, + { + "left_line": 7345, + "right_line": 7345 + }, + { + "left_line": 7346, + "right_line": 7346 + }, + { + "left_line": 7347, + "right_line": 7347 + }, + { + "left_line": 7348, + "right_line": 7348 + }, + { + "left_line": 7349, + "right_line": 7349 + }, + { + "left_line": 7350, + "right_line": 7350 + }, + { + "left_line": 7351, + "right_line": 7351 + }, + { + "left_line": 7352, + "right_line": 7352 + }, + { + "left_line": 7353, + "right_line": 7353 + }, + { + "left_line": 7354, + "right_line": 7354 + }, + { + "left_line": 7355, + "right_line": 7355 + }, + { + "left_line": 7356, + "right_line": 7356 + }, + { + "left_line": 7357, + "right_line": 7357 + }, + { + "left_line": 7358, + "right_line": 7358 + }, + { + "left_line": 7359, + "right_line": 7359 + }, + { + "left_line": 7360, + "right_line": 7360 + }, + { + "left_line": 7361, + "right_line": 7361 + }, + { + "left_line": 7362, + "right_line": 7362 + }, + { + "left_line": 7363, + "right_line": 7363 + }, + { + "left_line": 7364, + "right_line": 7364 + }, + { + "left_line": 7365, + "right_line": 7365 + }, + { + "left_line": 7366, + "right_line": 7366 + }, + { + "left_line": 7367, + "right_line": 7367 + }, + { + "left_line": 7368, + "right_line": 7368 + }, + { + "left_line": 7369, + "right_line": 7369 + }, + { + "left_line": 7370, + "right_line": 7370 + }, + { + "left_line": 7371, + "right_line": 7371 + }, + { + "left_line": 7372, + "right_line": 7372 + }, + { + "left_line": 7373, + "right_line": 7373 + }, + { + "left_line": 7374, + "right_line": 7374 + }, + { + "left_line": 7375, + "right_line": 7375 + }, + { + "left_line": 7376, + "right_line": 7376 + }, + { + "left_line": 7377, + "right_line": 7377 + }, + { + "left_line": 7378, + "right_line": 7378 + }, + { + "left_line": 7379, + "right_line": 7379 + }, + { + "left_line": 7380, + "right_line": 7380 + }, + { + "left_line": 7381, + "right_line": 7381 + }, + { + "left_line": 7382, + "right_line": 7382 + }, + { + "left_line": 7383, + "right_line": 7383 + }, + { + "left_line": 7384, + "right_line": 7384 + }, + { + "left_line": 7385, + "right_line": 7385 + }, + { + "left_line": 7386, + "right_line": 7386 + }, + { + "left_line": 7387, + "right_line": 7387 + }, + { + "left_line": 7388, + "right_line": 7388 + }, + { + "left_line": 7389, + "right_line": 7389 + }, + { + "left_line": 7390, + "right_line": 7390 + }, + { + "left_line": 7391, + "right_line": 7391 + }, + { + "left_line": 7392, + "right_line": 7392 + }, + { + "left_line": 7393, + "right_line": 7393 + }, + { + "left_line": 7394, + "right_line": 7394 + }, + { + "left_line": 7395, + "right_line": 7395 + }, + { + "left_line": 7396, + "right_line": 7396 + }, + { + "left_line": 7397, + "right_line": 7397 + }, + { + "left_line": 7398, + "right_line": 7398 + }, + { + "left_line": 7399, + "right_line": 7399 + }, + { + "left_line": 7400, + "right_line": 7400 + }, + { + "left_line": 7401, + "right_line": 7401 + }, + { + "left_line": 7402, + "right_line": 7402 + }, + { + "left_line": 7403, + "right_line": 7403 + }, + { + "left_line": 7404, + "right_line": 7404 + }, + { + "left_line": 7405, + "right_line": 7405 + }, + { + "left_line": 7406, + "right_line": 7406 + }, + { + "left_line": 7407, + "right_line": 7407 + }, + { + "left_line": 7408, + "right_line": 7408 + }, + { + "left_line": 7409, + "right_line": 7409 + }, + { + "left_line": 7410, + "right_line": 7410 + }, + { + "left_line": 7411, + "right_line": 7411 + }, + { + "left_line": 7412, + "right_line": 7412 + }, + { + "left_line": 7413, + "right_line": 7413 + }, + { + "left_line": 7414, + "right_line": 7414 + }, + { + "left_line": 7415, + "right_line": 7415 + }, + { + "left_line": 7416, + "right_line": 7416 + }, + { + "left_line": 7417, + "right_line": 7417 + }, + { + "left_line": 7418, + "right_line": 7418 + }, + { + "left_line": 7419, + "right_line": 7419 + }, + { + "left_line": 7420, + "right_line": 7420 + }, + { + "left_line": 7421, + "right_line": 7421 + }, + { + "left_line": 7422, + "right_line": 7422 + }, + { + "left_line": 7423, + "right_line": 7423 + }, + { + "left_line": 7424, + "right_line": 7424 + }, + { + "left_line": 7425, + "right_line": 7425 + }, + { + "left_line": 7426, + "right_line": 7426 + }, + { + "left_line": 7427, + "right_line": 7427 + }, + { + "left_line": 7428, + "right_line": 7428 + }, + { + "left_line": 7429, + "right_line": 7429 + }, + { + "left_line": 7430, + "right_line": 7430 + }, + { + "left_line": 7431, + "right_line": 7431 + }, + { + "left_line": 7432, + "right_line": 7432 + }, + { + "left_line": 7433, + "right_line": 7433 + }, + { + "left_line": 7434, + "right_line": 7434 + }, + { + "left_line": 7435, + "right_line": 7435 + }, + { + "left_line": 7436, + "right_line": 7436 + }, + { + "left_line": 7437, + "right_line": 7437 + }, + { + "left_line": 7438, + "right_line": 7438 + }, + { + "left_line": 7439, + "right_line": 7439 + }, + { + "left_line": 7440, + "right_line": 7440 + }, + { + "left_line": 7441, + "right_line": 7441 + }, + { + "left_line": 7442, + "right_line": 7442 + }, + { + "left_line": 7443, + "right_line": 7443 + }, + { + "left_line": 7444, + "right_line": 7444 + }, + { + "left_line": 7445, + "right_line": 7445 + }, + { + "left_line": 7446, + "right_line": 7446 + }, + { + "left_line": 7447, + "right_line": 7447 + }, + { + "left_line": 7448, + "right_line": 7448 + }, + { + "left_line": 7449, + "right_line": 7449 + }, + { + "left_line": 7450, + "right_line": 7450 + }, + { + "left_line": 7451, + "right_line": 7451 + }, + { + "left_line": 7452, + "right_line": 7452 + }, + { + "left_line": 7453, + "right_line": 7453 + }, + { + "left_line": 7454, + "right_line": 7454 + }, + { + "left_line": 7455, + "right_line": 7455 + }, + { + "left_line": 7456, + "right_line": 7456 + }, + { + "left_line": 7457, + "right_line": 7457 + }, + { + "left_line": 7458, + "right_line": 7458 + }, + { + "left_line": 7459, + "right_line": 7459 + }, + { + "left_line": 7460, + "right_line": 7460 + }, + { + "left_line": 7461, + "right_line": 7461 + }, + { + "left_line": 7462, + "right_line": 7462 + }, + { + "left_line": 7463, + "right_line": 7463 + }, + { + "left_line": 7464, + "right_line": 7464 + }, + { + "left_line": 7465, + "right_line": 7465 + }, + { + "left_line": 7466, + "right_line": 7466 + }, + { + "left_line": 7467, + "right_line": 7467 + }, + { + "left_line": 7468, + "right_line": 7468 + }, + { + "left_line": 7469, + "right_line": 7469 + }, + { + "left_line": 7470, + "right_line": 7470 + }, + { + "left_line": 7471, + "right_line": 7471 + }, + { + "left_line": 7472, + "right_line": 7472 + }, + { + "left_line": 7473, + "right_line": 7473 + }, + { + "left_line": 7474, + "right_line": 7474 + }, + { + "left_line": 7475, + "right_line": 7475 + }, + { + "left_line": 7476, + "right_line": 7476 + }, + { + "left_line": 7477, + "right_line": 7477 + }, + { + "left_line": 7478, + "right_line": 7478 + }, + { + "left_line": 7479, + "right_line": 7479 + }, + { + "left_line": 7480, + "right_line": 7480 + }, + { + "left_line": 7481, + "right_line": 7481 + }, + { + "left_line": 7482, + "right_line": 7482 + }, + { + "left_line": 7483, + "right_line": 7483 + }, + { + "left_line": 7484, + "right_line": 7484 + }, + { + "left_line": 7485, + "right_line": 7485 + }, + { + "left_line": 7486, + "right_line": 7486 + }, + { + "left_line": 7487, + "right_line": 7487 + }, + { + "left_line": 7488, + "right_line": 7488 + }, + { + "left_line": 7489, + "right_line": 7489 + }, + { + "left_line": 7490, + "right_line": 7490 + }, + { + "left_line": 7491, + "right_line": 7491 + }, + { + "left_line": 7492, + "right_line": 7492 + }, + { + "left_line": 7493, + "right_line": 7493 + }, + { + "left_line": 7494, + "right_line": 7494 + }, + { + "left_line": 7495, + "right_line": 7495 + }, + { + "left_line": 7496, + "right_line": 7496 + }, + { + "left_line": 7497, + "right_line": 7497 + }, + { + "left_line": 7498, + "right_line": 7498 + }, + { + "left_line": 7499, + "right_line": 7499 + }, + { + "left_line": 7500, + "right_line": 7500 + }, + { + "left_line": 7501, + "right_line": 7501 + }, + { + "left_line": 7502, + "right_line": 7502 + }, + { + "left_line": 7503, + "right_line": 7503 + }, + { + "left_line": 7504, + "right_line": 7504 + }, + { + "left_line": 7505, + "right_line": 7505 + }, + { + "left_line": 7506, + "right_line": 7506 + }, + { + "left_line": 7507, + "right_line": 7507 + }, + { + "left_line": 7508, + "right_line": 7508 + }, + { + "left_line": 7509, + "right_line": 7509 + }, + { + "left_line": 7510, + "right_line": 7510 + }, + { + "left_line": 7511, + "right_line": 7511 + }, + { + "left_line": 7512, + "right_line": 7512 + }, + { + "left_line": 7513, + "right_line": 7513 + }, + { + "left_line": 7514, + "right_line": 7514 + }, + { + "left_line": 7515, + "right_line": 7515 + }, + { + "left_line": 7516, + "right_line": 7516 + }, + { + "left_line": 7517, + "right_line": 7517 + }, + { + "left_line": 7518, + "right_line": 7518 + }, + { + "left_line": 7519, + "right_line": 7519 + }, + { + "left_line": 7520, + "right_line": 7520 + }, + { + "left_line": 7521, + "right_line": 7521 + }, + { + "left_line": 7522, + "right_line": 7522 + }, + { + "left_line": 7523, + "right_line": 7523 + }, + { + "left_line": 7524, + "right_line": 7524 + }, + { + "left_line": 7525, + "right_line": 7525 + }, + { + "left_line": 7526, + "right_line": 7526 + }, + { + "left_line": 7527, + "right_line": 7527 + }, + { + "left_line": 7528, + "right_line": 7528 + }, + { + "left_line": 7529, + "right_line": 7529 + }, + { + "left_line": 7530, + "right_line": 7530 + }, + { + "left_line": 7531, + "right_line": 7531 + }, + { + "left_line": 7532, + "right_line": 7532 + }, + { + "left_line": 7533, + "right_line": 7533 + }, + { + "left_line": 7534, + "right_line": 7534 + }, + { + "left_line": 7535, + "right_line": 7535 + }, + { + "left_line": 7536, + "right_line": 7536 + }, + { + "left_line": 7537, + "right_line": -1 + }, + { + "left_line": 7538, + "right_line": -1 + }, + { + "left_line": 7539, + "right_line": -1 + }, + { + "left_line": 7540, + "right_line": -1 + }, + { + "left_line": 7541, + "right_line": -1 + }, + { + "left_line": 7542, + "right_line": 7537 + }, + { + "left_line": 7543, + "right_line": 7538 + }, + { + "left_line": 7544, + "right_line": 7539 + }, + { + "left_line": 7545, + "right_line": 7540 + }, + { + "left_line": 7546, + "right_line": 7541 + }, + { + "left_line": 7547, + "right_line": 7542 + }, + { + "left_line": 7548, + "right_line": 7543 + }, + { + "left_line": 7549, + "right_line": 7544 + }, + { + "left_line": 7550, + "right_line": 7545 + }, + { + "left_line": 7551, + "right_line": 7546 + }, + { + "left_line": 7552, + "right_line": 7547 + }, + { + "left_line": 7553, + "right_line": 7548 + }, + { + "left_line": 7554, + "right_line": 7549 + }, + { + "left_line": 7555, + "right_line": 7550 + }, + { + "left_line": 7556, + "right_line": 7551 + }, + { + "left_line": 7557, + "right_line": 7552 + }, + { + "left_line": 7558, + "right_line": 7553 + }, + { + "left_line": 7559, + "right_line": 7554 + }, + { + "left_line": 7560, + "right_line": 7555 + }, + { + "left_line": 7561, + "right_line": 7556 + }, + { + "left_line": 7562, + "right_line": 7557 + }, + { + "left_line": 7563, + "right_line": 7558 + }, + { + "left_line": 7564, + "right_line": 7559 + }, + { + "left_line": 7565, + "right_line": 7560 + }, + { + "left_line": 7566, + "right_line": 7561 + }, + { + "left_line": 7567, + "right_line": 7562 + }, + { + "left_line": 7568, + "right_line": 7563 + }, + { + "left_line": 7569, + "right_line": 7564 + }, + { + "left_line": 7570, + "right_line": 7565 + }, + { + "left_line": 7571, + "right_line": 7566 + }, + { + "left_line": 7572, + "right_line": 7567 + }, + { + "left_line": 7573, + "right_line": 7568 + }, + { + "left_line": 7574, + "right_line": 7569 + }, + { + "left_line": 7575, + "right_line": 7570 + }, + { + "left_line": 7576, + "right_line": 7571 + }, + { + "left_line": 7577, + "right_line": 7572 + }, + { + "left_line": 7578, + "right_line": 7573 + }, + { + "left_line": 7579, + "right_line": 7574 + }, + { + "left_line": 7580, + "right_line": 7575 + }, + { + "left_line": 7581, + "right_line": 7576 + }, + { + "left_line": 7582, + "right_line": 7577 + }, + { + "left_line": 7583, + "right_line": 7578 + }, + { + "left_line": 7584, + "right_line": 7579 + }, + { + "left_line": 7585, + "right_line": 7580 + }, + { + "left_line": 7586, + "right_line": 7581 + }, + { + "left_line": 7587, + "right_line": 7582 + }, + { + "left_line": 7588, + "right_line": 7583 + }, + { + "left_line": 7589, + "right_line": 7584 + }, + { + "left_line": 7590, + "right_line": 7585 + }, + { + "left_line": 7591, + "right_line": 7586 + }, + { + "left_line": 7592, + "right_line": 7587 + }, + { + "left_line": 7593, + "right_line": 7588 + }, + { + "left_line": 7594, + "right_line": 7589 + }, + { + "left_line": 7595, + "right_line": 7590 + }, + { + "left_line": 7596, + "right_line": 7591 + }, + { + "left_line": 7597, + "right_line": 7592 + }, + { + "left_line": 7598, + "right_line": 7593 + }, + { + "left_line": 7599, + "right_line": 7594 + }, + { + "left_line": 7600, + "right_line": 7595 + }, + { + "left_line": 7601, + "right_line": 7596 + }, + { + "left_line": 7602, + "right_line": 7597 + }, + { + "left_line": 7603, + "right_line": 7598 + }, + { + "left_line": 7604, + "right_line": 7599 + }, + { + "left_line": 7605, + "right_line": 7600 + }, + { + "left_line": 7606, + "right_line": 7601 + }, + { + "left_line": 7607, + "right_line": 7602 + }, + { + "left_line": 7608, + "right_line": 7603 + }, + { + "left_line": 7609, + "right_line": 7604 + }, + { + "left_line": 7610, + "right_line": 7605 + }, + { + "left_line": 7611, + "right_line": 7606 + }, + { + "left_line": 7612, + "right_line": 7607 + }, + { + "left_line": 7613, + "right_line": 7608 + }, + { + "left_line": 7614, + "right_line": 7609 + }, + { + "left_line": 7615, + "right_line": 7610 + }, + { + "left_line": 7616, + "right_line": 7611 + }, + { + "left_line": 7617, + "right_line": 7612 + }, + { + "left_line": 7618, + "right_line": 7613 + }, + { + "left_line": 7619, + "right_line": 7614 + }, + { + "left_line": 7620, + "right_line": 7615 + }, + { + "left_line": 7621, + "right_line": 7616 + }, + { + "left_line": 7622, + "right_line": 7617 + }, + { + "left_line": 7623, + "right_line": 7618 + }, + { + "left_line": 7624, + "right_line": 7619 + }, + { + "left_line": 7625, + "right_line": 7620 + }, + { + "left_line": 7626, + "right_line": 7621 + }, + { + "left_line": 7627, + "right_line": 7622 + }, + { + "left_line": 7628, + "right_line": 7623 + }, + { + "left_line": 7629, + "right_line": 7624 + }, + { + "left_line": 7630, + "right_line": 7625 + }, + { + "left_line": 7631, + "right_line": 7626 + }, + { + "left_line": 7632, + "right_line": 7627 + }, + { + "left_line": 7633, + "right_line": 7628 + }, + { + "left_line": 7634, + "right_line": 7629 + }, + { + "left_line": 7635, + "right_line": 7630 + }, + { + "left_line": 7636, + "right_line": 7631 + }, + { + "left_line": 7637, + "right_line": 7632 + }, + { + "left_line": 7638, + "right_line": 7633 + }, + { + "left_line": 7639, + "right_line": 7634 + }, + { + "left_line": 7640, + "right_line": 7635 + }, + { + "left_line": 7641, + "right_line": 7636 + }, + { + "left_line": 7642, + "right_line": 7637 + }, + { + "left_line": 7643, + "right_line": 7638 + }, + { + "left_line": 7644, + "right_line": 7639 + }, + { + "left_line": 7645, + "right_line": 7640 + }, + { + "left_line": 7646, + "right_line": 7641 + }, + { + "left_line": 7647, + "right_line": 7642 + }, + { + "left_line": 7648, + "right_line": 7643 + }, + { + "left_line": 7649, + "right_line": 7644 + }, + { + "left_line": 7650, + "right_line": 7645 + }, + { + "left_line": 7651, + "right_line": 7646 + }, + { + "left_line": 7652, + "right_line": 7647 + }, + { + "left_line": 7653, + "right_line": 7648 + }, + { + "left_line": 7654, + "right_line": 7649 + }, + { + "left_line": 7655, + "right_line": 7650 + }, + { + "left_line": 7656, + "right_line": 7651 + }, + { + "left_line": 7657, + "right_line": 7652 + }, + { + "left_line": 7658, + "right_line": 7653 + }, + { + "left_line": 7659, + "right_line": 7654 + }, + { + "left_line": 7660, + "right_line": 7655 + }, + { + "left_line": 7661, + "right_line": 7656 + }, + { + "left_line": 7662, + "right_line": 7657 + }, + { + "left_line": 7663, + "right_line": 7658 + }, + { + "left_line": 7664, + "right_line": 7659 + }, + { + "left_line": 7665, + "right_line": 7660 + }, + { + "left_line": 7666, + "right_line": 7661 + }, + { + "left_line": 7667, + "right_line": 7662 + }, + { + "left_line": 7668, + "right_line": 7663 + }, + { + "left_line": 7669, + "right_line": 7664 + }, + { + "left_line": 7670, + "right_line": 7665 + }, + { + "left_line": 7671, + "right_line": 7666 + }, + { + "left_line": 7672, + "right_line": 7667 + }, + { + "left_line": 7673, + "right_line": 7668 + }, + { + "left_line": 7674, + "right_line": 7669 + }, + { + "left_line": 7675, + "right_line": 7670 + }, + { + "left_line": 7676, + "right_line": 7671 + }, + { + "left_line": 7677, + "right_line": 7672 + }, + { + "left_line": 7678, + "right_line": 7673 + }, + { + "left_line": 7679, + "right_line": 7674 + }, + { + "left_line": 7680, + "right_line": 7675 + }, + { + "left_line": 7681, + "right_line": 7676 + }, + { + "left_line": 7682, + "right_line": 7677 + }, + { + "left_line": 7683, + "right_line": 7678 + }, + { + "left_line": 7684, + "right_line": 7679 + }, + { + "left_line": 7685, + "right_line": 7680 + }, + { + "left_line": 7686, + "right_line": 7681 + }, + { + "left_line": 7687, + "right_line": 7682 + }, + { + "left_line": 7688, + "right_line": 7683 + }, + { + "left_line": 7689, + "right_line": 7684 + }, + { + "left_line": 7690, + "right_line": 7685 + }, + { + "left_line": 7691, + "right_line": 7686 + }, + { + "left_line": 7692, + "right_line": 7687 + }, + { + "left_line": 7693, + "right_line": 7688 + }, + { + "left_line": 7694, + "right_line": 7689 + }, + { + "left_line": 7695, + "right_line": 7690 + }, + { + "left_line": 7696, + "right_line": 7691 + }, + { + "left_line": 7697, + "right_line": 7692 + }, + { + "left_line": 7698, + "right_line": 7693 + }, + { + "left_line": 7699, + "right_line": 7694 + }, + { + "left_line": 7700, + "right_line": 7695 + }, + { + "left_line": 7701, + "right_line": 7696 + }, + { + "left_line": 7702, + "right_line": 7697 + }, + { + "left_line": 7703, + "right_line": 7698 + }, + { + "left_line": 7704, + "right_line": 7699 + }, + { + "left_line": 7705, + "right_line": 7700 + }, + { + "left_line": 7706, + "right_line": 7701 + }, + { + "left_line": 7707, + "right_line": 7702 + }, + { + "left_line": 7708, + "right_line": 7703 + }, + { + "left_line": 7709, + "right_line": 7704 + }, + { + "left_line": 7710, + "right_line": 7705 + }, + { + "left_line": 7711, + "right_line": 7706 + }, + { + "left_line": 7712, + "right_line": 7707 + }, + { + "left_line": 7713, + "right_line": 7708 + }, + { + "left_line": 7714, + "right_line": 7709 + }, + { + "left_line": 7715, + "right_line": 7710 + }, + { + "left_line": 7716, + "right_line": 7711 + }, + { + "left_line": 7717, + "right_line": 7712 + }, + { + "left_line": 7718, + "right_line": 7713 + }, + { + "left_line": 7719, + "right_line": 7714 + }, + { + "left_line": 7720, + "right_line": 7715 + }, + { + "left_line": 7721, + "right_line": 7716 + }, + { + "left_line": 7722, + "right_line": 7717 + }, + { + "left_line": 7723, + "right_line": 7718 + }, + { + "left_line": 7724, + "right_line": 7719 + }, + { + "left_line": 7725, + "right_line": 7720 + }, + { + "left_line": 7726, + "right_line": 7721 + }, + { + "left_line": 7727, + "right_line": 7722 + }, + { + "left_line": 7728, + "right_line": 7723 + }, + { + "left_line": 7729, + "right_line": 7724 + }, + { + "left_line": 7730, + "right_line": 7725 + }, + { + "left_line": 7731, + "right_line": 7726 + }, + { + "left_line": 7732, + "right_line": 7727 + }, + { + "left_line": 7733, + "right_line": 7728 + }, + { + "left_line": 7734, + "right_line": 7729 + }, + { + "left_line": 7735, + "right_line": 7730 + }, + { + "left_line": 7736, + "right_line": 7731 + }, + { + "left_line": 7737, + "right_line": 7732 + }, + { + "left_line": 7738, + "right_line": 7733 + }, + { + "left_line": 7739, + "right_line": 7734 + }, + { + "left_line": 7740, + "right_line": 7735 + }, + { + "left_line": 7741, + "right_line": 7736 + }, + { + "left_line": 7742, + "right_line": 7737 + }, + { + "left_line": 7743, + "right_line": 7738 + }, + { + "left_line": 7744, + "right_line": 7739 + }, + { + "left_line": 7745, + "right_line": 7740 + }, + { + "left_line": 7746, + "right_line": 7741 + }, + { + "left_line": 7747, + "right_line": 7742 + }, + { + "left_line": 7748, + "right_line": 7743 + }, + { + "left_line": 7749, + "right_line": 7744 + }, + { + "left_line": 7750, + "right_line": 7745 + }, + { + "left_line": 7751, + "right_line": 7746 + }, + { + "left_line": 7752, + "right_line": 7747 + }, + { + "left_line": 7753, + "right_line": 7748 + }, + { + "left_line": 7754, + "right_line": 7749 + }, + { + "left_line": 7755, + "right_line": 7750 + }, + { + "left_line": 7756, + "right_line": 7751 + }, + { + "left_line": 7757, + "right_line": 7752 + }, + { + "left_line": 7758, + "right_line": 7753 + }, + { + "left_line": 7759, + "right_line": 7754 + }, + { + "left_line": 7760, + "right_line": 7755 + }, + { + "left_line": 7761, + "right_line": 7756 + }, + { + "left_line": 7762, + "right_line": 7757 + }, + { + "left_line": 7763, + "right_line": 7758 + }, + { + "left_line": 7764, + "right_line": 7759 + }, + { + "left_line": 7765, + "right_line": 7760 + }, + { + "left_line": 7766, + "right_line": 7761 + }, + { + "left_line": 7767, + "right_line": 7762 + }, + { + "left_line": 7768, + "right_line": 7763 + }, + { + "left_line": 7769, + "right_line": 7764 + }, + { + "left_line": 7770, + "right_line": 7765 + }, + { + "left_line": 7771, + "right_line": 7766 + }, + { + "left_line": 7772, + "right_line": 7767 + }, + { + "left_line": 7773, + "right_line": 7768 + }, + { + "left_line": 7774, + "right_line": 7769 + }, + { + "left_line": 7775, + "right_line": 7770 + }, + { + "left_line": 7776, + "right_line": 7771 + }, + { + "left_line": 7777, + "right_line": 7772 + }, + { + "left_line": 7778, + "right_line": 7773 + }, + { + "left_line": 7779, + "right_line": 7774 + }, + { + "left_line": 7780, + "right_line": 7775 + }, + { + "left_line": 7781, + "right_line": 7776 + }, + { + "left_line": 7782, + "right_line": 7777 + }, + { + "left_line": 7783, + "right_line": 7778 + }, + { + "left_line": 7784, + "right_line": 7779 + }, + { + "left_line": 7785, + "right_line": 7780 + }, + { + "left_line": 7786, + "right_line": 7781 + }, + { + "left_line": 7787, + "right_line": 7782 + }, + { + "left_line": 7788, + "right_line": 7783 + }, + { + "left_line": 7789, + "right_line": 7784 + }, + { + "left_line": 7790, + "right_line": 7785 + }, + { + "left_line": 7791, + "right_line": 7786 + }, + { + "left_line": 7792, + "right_line": 7787 + }, + { + "left_line": 7793, + "right_line": 7788 + }, + { + "left_line": 7794, + "right_line": 7789 + }, + { + "left_line": 7795, + "right_line": 7790 + }, + { + "left_line": 7796, + "right_line": 7791 + }, + { + "left_line": 7797, + "right_line": 7792 + }, + { + "left_line": 7798, + "right_line": 7793 + }, + { + "left_line": 7799, + "right_line": 7794 + }, + { + "left_line": 7800, + "right_line": 7795 + }, + { + "left_line": 7801, + "right_line": 7796 + }, + { + "left_line": 7802, + "right_line": 7797 + }, + { + "left_line": 7803, + "right_line": 7798 + }, + { + "left_line": 7804, + "right_line": 7799 + }, + { + "left_line": 7805, + "right_line": 7800 + }, + { + "left_line": 7806, + "right_line": 7801 + }, + { + "left_line": 7807, + "right_line": 7802 + }, + { + "left_line": 7808, + "right_line": 7803 + }, + { + "left_line": 7809, + "right_line": 7804 + }, + { + "left_line": 7810, + "right_line": 7805 + }, + { + "left_line": 7811, + "right_line": 7806 + }, + { + "left_line": 7812, + "right_line": 7807 + }, + { + "left_line": 7813, + "right_line": 7808 + }, + { + "left_line": 7814, + "right_line": 7809 + }, + { + "left_line": 7815, + "right_line": 7810 + }, + { + "left_line": 7816, + "right_line": 7811 + }, + { + "left_line": 7817, + "right_line": 7812 + }, + { + "left_line": 7818, + "right_line": 7813 + }, + { + "left_line": 7819, + "right_line": 7814 + }, + { + "left_line": 7820, + "right_line": 7815 + }, + { + "left_line": 7821, + "right_line": 7816 + }, + { + "left_line": 7822, + "right_line": 7817 + }, + { + "left_line": 7823, + "right_line": 7818 + }, + { + "left_line": 7824, + "right_line": 7819 + }, + { + "left_line": 7825, + "right_line": 7820 + }, + { + "left_line": 7826, + "right_line": 7821 + }, + { + "left_line": 7827, + "right_line": 7822 + }, + { + "left_line": 7828, + "right_line": 7823 + }, + { + "left_line": 7829, + "right_line": 7824 + }, + { + "left_line": 7830, + "right_line": 7825 + }, + { + "left_line": 7831, + "right_line": 7826 + }, + { + "left_line": 7832, + "right_line": 7827 + }, + { + "left_line": 7833, + "right_line": 7828 + }, + { + "left_line": 7834, + "right_line": 7829 + }, + { + "left_line": 7835, + "right_line": 7830 + }, + { + "left_line": 7836, + "right_line": 7831 + }, + { + "left_line": 7837, + "right_line": 7832 + }, + { + "left_line": 7838, + "right_line": 7833 + }, + { + "left_line": 7839, + "right_line": 7834 + }, + { + "left_line": 7840, + "right_line": 7835 + }, + { + "left_line": 7841, + "right_line": 7836 + }, + { + "left_line": 7842, + "right_line": 7837 + }, + { + "left_line": 7843, + "right_line": 7838 + }, + { + "left_line": 7844, + "right_line": 7839 + }, + { + "left_line": 7845, + "right_line": 7840 + }, + { + "left_line": 7846, + "right_line": 7841 + }, + { + "left_line": 7847, + "right_line": 7842 + }, + { + "left_line": 7848, + "right_line": 7843 + }, + { + "left_line": 7849, + "right_line": 7844 + }, + { + "left_line": 7850, + "right_line": 7845 + }, + { + "left_line": 7851, + "right_line": 7846 + }, + { + "left_line": 7852, + "right_line": 7847 + }, + { + "left_line": 7853, + "right_line": 7848 + }, + { + "left_line": 7854, + "right_line": 7849 + }, + { + "left_line": 7855, + "right_line": 7850 + }, + { + "left_line": 7856, + "right_line": 7851 + }, + { + "left_line": 7857, + "right_line": 7852 + }, + { + "left_line": 7858, + "right_line": 7853 + }, + { + "left_line": 7859, + "right_line": 7854 + }, + { + "left_line": 7860, + "right_line": 7855 + }, + { + "left_line": 7861, + "right_line": 7856 + }, + { + "left_line": 7862, + "right_line": 7857 + }, + { + "left_line": 7863, + "right_line": 7858 + }, + { + "left_line": 7864, + "right_line": 7859 + }, + { + "left_line": 7865, + "right_line": 7860 + }, + { + "left_line": 7866, + "right_line": 7861 + }, + { + "left_line": 7867, + "right_line": 7862 + }, + { + "left_line": 7868, + "right_line": 7863 + }, + { + "left_line": 7869, + "right_line": 7864 + }, + { + "left_line": 7870, + "right_line": 7865 + }, + { + "left_line": 7871, + "right_line": 7866 + }, + { + "left_line": 7872, + "right_line": 7867 + }, + { + "left_line": 7873, + "right_line": 7868 + }, + { + "left_line": 7874, + "right_line": 7869 + }, + { + "left_line": 7875, + "right_line": 7870 + }, + { + "left_line": 7876, + "right_line": 7871 + }, + { + "left_line": 7877, + "right_line": 7872 + }, + { + "left_line": 7878, + "right_line": 7873 + }, + { + "left_line": 7879, + "right_line": 7874 + }, + { + "left_line": 7880, + "right_line": 7875 + }, + { + "left_line": 7881, + "right_line": 7876 + }, + { + "left_line": 7882, + "right_line": 7877 + }, + { + "left_line": 7883, + "right_line": 7878 + }, + { + "left_line": 7884, + "right_line": 7879 + }, + { + "left_line": 7885, + "right_line": 7880 + }, + { + "left_line": 7886, + "right_line": 7881 + }, + { + "left_line": 7887, + "right_line": 7882 + }, + { + "left_line": 7888, + "right_line": 7883 + }, + { + "left_line": 7889, + "right_line": 7884 + }, + { + "left_line": 7890, + "right_line": 7885 + }, + { + "left_line": 7891, + "right_line": 7886 + }, + { + "left_line": 7892, + "right_line": 7887 + }, + { + "left_line": 7893, + "right_line": 7888 + }, + { + "left_line": 7894, + "right_line": 7889 + }, + { + "left_line": 7895, + "right_line": 7890 + }, + { + "left_line": 7896, + "right_line": 7891 + }, + { + "left_line": 7897, + "right_line": 7892 + }, + { + "left_line": 7898, + "right_line": 7893 + }, + { + "left_line": 7899, + "right_line": 7894 + }, + { + "left_line": 7900, + "right_line": 7895 + }, + { + "left_line": 7901, + "right_line": 7896 + }, + { + "left_line": 7902, + "right_line": 7897 + }, + { + "left_line": 7903, + "right_line": 7898 + }, + { + "left_line": 7904, + "right_line": 7899 + }, + { + "left_line": 7905, + "right_line": 7900 + }, + { + "left_line": 7906, + "right_line": 7901 + }, + { + "left_line": 7907, + "right_line": 7902 + }, + { + "left_line": 7908, + "right_line": 7903 + }, + { + "left_line": 7909, + "right_line": 7904 + }, + { + "left_line": 7910, + "right_line": 7905 + }, + { + "left_line": 7911, + "right_line": 7906 + }, + { + "left_line": 7912, + "right_line": 7907 + }, + { + "left_line": 7913, + "right_line": 7908 + }, + { + "left_line": 7914, + "right_line": 7909 + }, + { + "left_line": 7915, + "right_line": 7910 + }, + { + "left_line": 7916, + "right_line": 7911 + }, + { + "left_line": 7917, + "right_line": 7912 + }, + { + "left_line": 7918, + "right_line": 7913 + }, + { + "left_line": 7919, + "right_line": 7914 + }, + { + "left_line": 7920, + "right_line": 7915 + }, + { + "left_line": 7921, + "right_line": 7916 + }, + { + "left_line": 7922, + "right_line": 7917 + }, + { + "left_line": 7923, + "right_line": 7918 + }, + { + "left_line": 7924, + "right_line": 7919 + }, + { + "left_line": 7925, + "right_line": 7920 + }, + { + "left_line": 7926, + "right_line": 7921 + }, + { + "left_line": 7927, + "right_line": 7922 + }, + { + "left_line": 7928, + "right_line": 7923 + }, + { + "left_line": 7929, + "right_line": 7924 + }, + { + "left_line": 7930, + "right_line": 7925 + }, + { + "left_line": 7931, + "right_line": 7926 + }, + { + "left_line": 7932, + "right_line": 7927 + }, + { + "left_line": 7933, + "right_line": 7928 + }, + { + "left_line": 7934, + "right_line": 7929 + }, + { + "left_line": 7935, + "right_line": 7930 + }, + { + "left_line": 7936, + "right_line": 7931 + }, + { + "left_line": 7937, + "right_line": 7932 + }, + { + "left_line": 7938, + "right_line": 7933 + }, + { + "left_line": 7939, + "right_line": 7934 + }, + { + "left_line": 7940, + "right_line": 7935 + }, + { + "left_line": 7941, + "right_line": 7936 + }, + { + "left_line": 7942, + "right_line": 7937 + }, + { + "left_line": 7943, + "right_line": 7938 + }, + { + "left_line": 7944, + "right_line": 7939 + }, + { + "left_line": 7945, + "right_line": 7940 + }, + { + "left_line": 7946, + "right_line": 7941 + }, + { + "left_line": 7947, + "right_line": 7942 + }, + { + "left_line": 7948, + "right_line": 7943 + }, + { + "left_line": 7949, + "right_line": 7944 + }, + { + "left_line": 7950, + "right_line": 7945 + }, + { + "left_line": 7951, + "right_line": 7946 + }, + { + "left_line": 7952, + "right_line": 7947 + }, + { + "left_line": 7953, + "right_line": 7948 + }, + { + "left_line": 7954, + "right_line": 7949 + }, + { + "left_line": 7955, + "right_line": 7950 + }, + { + "left_line": 7956, + "right_line": 7951 + }, + { + "left_line": 7957, + "right_line": 7952 + }, + { + "left_line": 7958, + "right_line": 7953 + }, + { + "left_line": 7959, + "right_line": 7954 + }, + { + "left_line": 7960, + "right_line": 7955 + }, + { + "left_line": 7961, + "right_line": 7956 + }, + { + "left_line": 7962, + "right_line": 7957 + }, + { + "left_line": 7963, + "right_line": 7958 + }, + { + "left_line": 7964, + "right_line": 7959 + }, + { + "left_line": 7965, + "right_line": 7960 + }, + { + "left_line": 7966, + "right_line": 7961 + }, + { + "left_line": 7967, + "right_line": 7962 + }, + { + "left_line": 7968, + "right_line": 7963 + }, + { + "left_line": 7969, + "right_line": 7964 + }, + { + "left_line": 7970, + "right_line": 7965 + }, + { + "left_line": 7971, + "right_line": 7966 + }, + { + "left_line": 7972, + "right_line": 7967 + }, + { + "left_line": 7973, + "right_line": 7968 + }, + { + "left_line": 7974, + "right_line": 7969 + }, + { + "left_line": 7975, + "right_line": 7970 + }, + { + "left_line": 7976, + "right_line": 7971 + }, + { + "left_line": 7977, + "right_line": 7972 + }, + { + "left_line": 7978, + "right_line": 7973 + }, + { + "left_line": 7979, + "right_line": 7974 + }, + { + "left_line": 7980, + "right_line": 7975 + }, + { + "left_line": 7981, + "right_line": 7976 + }, + { + "left_line": 7982, + "right_line": 7977 + }, + { + "left_line": 7983, + "right_line": 7978 + }, + { + "left_line": 7984, + "right_line": 7979 + }, + { + "left_line": 7985, + "right_line": 7980 + }, + { + "left_line": 7986, + "right_line": 7981 + }, + { + "left_line": 7987, + "right_line": 7982 + }, + { + "left_line": 7988, + "right_line": 7983 + }, + { + "left_line": 7989, + "right_line": 7984 + }, + { + "left_line": 7990, + "right_line": 7985 + }, + { + "left_line": 7991, + "right_line": 7986 + }, + { + "left_line": 7992, + "right_line": 7987 + }, + { + "left_line": 7993, + "right_line": 7988 + }, + { + "left_line": 7994, + "right_line": 7989 + }, + { + "left_line": 7995, + "right_line": 7990 + }, + { + "left_line": 7996, + "right_line": 7991 + }, + { + "left_line": 7997, + "right_line": 7992 + }, + { + "left_line": 7998, + "right_line": 7993 + }, + { + "left_line": 7999, + "right_line": 7994 + }, + { + "left_line": 8000, + "right_line": 7995 + }, + { + "left_line": 8001, + "right_line": 7996 + }, + { + "left_line": 8002, + "right_line": 7997 + }, + { + "left_line": 8003, + "right_line": 7998 + }, + { + "left_line": 8004, + "right_line": 7999 + }, + { + "left_line": 8005, + "right_line": 8000 + }, + { + "left_line": 8006, + "right_line": 8001 + }, + { + "left_line": 8007, + "right_line": 8002 + }, + { + "left_line": 8008, + "right_line": 8003 + }, + { + "left_line": 8009, + "right_line": 8004 + }, + { + "left_line": 8010, + "right_line": 8005 + }, + { + "left_line": 8011, + "right_line": 8006 + }, + { + "left_line": 8012, + "right_line": 8007 + }, + { + "left_line": 8013, + "right_line": 8008 + }, + { + "left_line": 8014, + "right_line": 8009 + }, + { + "left_line": 8015, + "right_line": 8010 + }, + { + "left_line": 8016, + "right_line": 8011 + }, + { + "left_line": 8017, + "right_line": 8012 + }, + { + "left_line": 8018, + "right_line": 8013 + }, + { + "left_line": 8019, + "right_line": 8014 + }, + { + "left_line": 8020, + "right_line": 8015 + }, + { + "left_line": 8021, + "right_line": 8016 + }, + { + "left_line": 8022, + "right_line": 8017 + }, + { + "left_line": 8023, + "right_line": 8018 + }, + { + "left_line": 8024, + "right_line": 8019 + }, + { + "left_line": 8025, + "right_line": 8020 + }, + { + "left_line": 8026, + "right_line": 8021 + }, + { + "left_line": 8027, + "right_line": 8022 + }, + { + "left_line": 8028, + "right_line": 8023 + }, + { + "left_line": 8029, + "right_line": 8024 + }, + { + "left_line": 8030, + "right_line": 8025 + }, + { + "left_line": 8031, + "right_line": 8026 + }, + { + "left_line": 8032, + "right_line": 8027 + }, + { + "left_line": 8033, + "right_line": 8028 + }, + { + "left_line": 8034, + "right_line": 8029 + }, + { + "left_line": 8035, + "right_line": 8030 + }, + { + "left_line": 8036, + "right_line": 8031 + }, + { + "left_line": 8037, + "right_line": 8032 + }, + { + "left_line": 8038, + "right_line": 8033 + }, + { + "left_line": 8039, + "right_line": 8034 + }, + { + "left_line": 8040, + "right_line": 8035 + }, + { + "left_line": 8041, + "right_line": 8036 + }, + { + "left_line": 8042, + "right_line": 8037 + }, + { + "left_line": 8043, + "right_line": 8038 + }, + { + "left_line": 8044, + "right_line": 8039 + }, + { + "left_line": 8045, + "right_line": 8040 + }, + { + "left_line": 8046, + "right_line": 8041 + }, + { + "left_line": 8047, + "right_line": 8042 + }, + { + "left_line": 8048, + "right_line": 8043 + }, + { + "left_line": 8049, + "right_line": 8044 + }, + { + "left_line": 8050, + "right_line": 8045 + }, + { + "left_line": 8051, + "right_line": 8046 + }, + { + "left_line": 8052, + "right_line": 8047 + }, + { + "left_line": 8053, + "right_line": 8048 + }, + { + "left_line": 8054, + "right_line": 8049 + }, + { + "left_line": 8055, + "right_line": 8050 + }, + { + "left_line": 8056, + "right_line": 8051 + }, + { + "left_line": 8057, + "right_line": 8052 + }, + { + "left_line": 8058, + "right_line": 8053 + }, + { + "left_line": 8059, + "right_line": 8054 + }, + { + "left_line": 8060, + "right_line": 8055 + }, + { + "left_line": 8061, + "right_line": 8056 + }, + { + "left_line": 8062, + "right_line": 8057 + }, + { + "left_line": 8063, + "right_line": 8058 + }, + { + "left_line": 8064, + "right_line": 8059 + }, + { + "left_line": 8065, + "right_line": 8060 + }, + { + "left_line": 8066, + "right_line": 8061 + }, + { + "left_line": 8067, + "right_line": 8062 + }, + { + "left_line": 8068, + "right_line": 8063 + }, + { + "left_line": 8069, + "right_line": 8064 + }, + { + "left_line": 8070, + "right_line": 8065 + }, + { + "left_line": 8071, + "right_line": 8066 + }, + { + "left_line": 8072, + "right_line": 8067 + }, + { + "left_line": 8073, + "right_line": 8068 + }, + { + "left_line": 8074, + "right_line": 8069 + }, + { + "left_line": 8075, + "right_line": 8070 + }, + { + "left_line": 8076, + "right_line": 8071 + }, + { + "left_line": 8077, + "right_line": 8072 + }, + { + "left_line": 8078, + "right_line": 8073 + }, + { + "left_line": 8079, + "right_line": 8074 + }, + { + "left_line": 8080, + "right_line": 8075 + }, + { + "left_line": 8081, + "right_line": 8076 + }, + { + "left_line": 8082, + "right_line": 8077 + }, + { + "left_line": 8083, + "right_line": 8078 + }, + { + "left_line": 8084, + "right_line": 8079 + }, + { + "left_line": 8085, + "right_line": 8080 + }, + { + "left_line": 8086, + "right_line": 8081 + }, + { + "left_line": 8087, + "right_line": 8082 + }, + { + "left_line": 8088, + "right_line": 8083 + }, + { + "left_line": 8089, + "right_line": 8084 + }, + { + "left_line": 8090, + "right_line": 8085 + }, + { + "left_line": 8091, + "right_line": 8086 + }, + { + "left_line": 8092, + "right_line": 8087 + }, + { + "left_line": 8093, + "right_line": 8088 + }, + { + "left_line": 8094, + "right_line": 8089 + }, + { + "left_line": 8095, + "right_line": 8090 + }, + { + "left_line": 8096, + "right_line": 8091 + }, + { + "left_line": 8097, + "right_line": 8092 + }, + { + "left_line": 8098, + "right_line": 8093 + }, + { + "left_line": 8099, + "right_line": 8094 + }, + { + "left_line": 8100, + "right_line": 8095 + }, + { + "left_line": 8101, + "right_line": 8096 + }, + { + "left_line": 8102, + "right_line": 8097 + }, + { + "left_line": 8103, + "right_line": 8098 + }, + { + "left_line": 8104, + "right_line": 8099 + }, + { + "left_line": 8105, + "right_line": 8100 + }, + { + "left_line": 8106, + "right_line": 8101 + }, + { + "left_line": 8107, + "right_line": 8102 + }, + { + "left_line": 8108, + "right_line": 8103 + }, + { + "left_line": 8109, + "right_line": 8104 + }, + { + "left_line": 8110, + "right_line": 8105 + }, + { + "left_line": 8111, + "right_line": 8106 + }, + { + "left_line": 8112, + "right_line": 8107 + }, + { + "left_line": 8113, + "right_line": 8108 + }, + { + "left_line": 8114, + "right_line": 8109 + }, + { + "left_line": 8115, + "right_line": 8110 + }, + { + "left_line": 8116, + "right_line": 8111 + }, + { + "left_line": 8117, + "right_line": 8112 + }, + { + "left_line": 8118, + "right_line": 8113 + }, + { + "left_line": 8119, + "right_line": 8114 + }, + { + "left_line": 8120, + "right_line": 8115 + }, + { + "left_line": 8121, + "right_line": 8116 + }, + { + "left_line": 8122, + "right_line": 8117 + }, + { + "left_line": 8123, + "right_line": 8118 + }, + { + "left_line": 8124, + "right_line": 8119 + }, + { + "left_line": 8125, + "right_line": 8120 + }, + { + "left_line": 8126, + "right_line": 8121 + }, + { + "left_line": 8127, + "right_line": 8122 + }, + { + "left_line": 8128, + "right_line": 8123 + }, + { + "left_line": 8129, + "right_line": 8124 + }, + { + "left_line": 8130, + "right_line": 8125 + }, + { + "left_line": 8131, + "right_line": 8126 + }, + { + "left_line": 8132, + "right_line": 8127 + }, + { + "left_line": 8133, + "right_line": 8128 + }, + { + "left_line": 8134, + "right_line": 8129 + }, + { + "left_line": 8135, + "right_line": 8130 + }, + { + "left_line": 8136, + "right_line": 8131 + }, + { + "left_line": 8137, + "right_line": 8132 + }, + { + "left_line": 8138, + "right_line": 8133 + }, + { + "left_line": 8139, + "right_line": 8134 + }, + { + "left_line": 8140, + "right_line": 8135 + }, + { + "left_line": 8141, + "right_line": 8136 + }, + { + "left_line": 8142, + "right_line": 8137 + }, + { + "left_line": 8143, + "right_line": 8138 + }, + { + "left_line": 8144, + "right_line": 8139 + }, + { + "left_line": 8145, + "right_line": 8140 + }, + { + "left_line": 8146, + "right_line": 8141 + }, + { + "left_line": 8147, + "right_line": 8142 + }, + { + "left_line": 8148, + "right_line": 8143 + }, + { + "left_line": 8149, + "right_line": 8144 + }, + { + "left_line": 8150, + "right_line": 8145 + }, + { + "left_line": 8151, + "right_line": 8146 + }, + { + "left_line": 8152, + "right_line": 8147 + }, + { + "left_line": 8153, + "right_line": 8148 + }, + { + "left_line": 8154, + "right_line": 8149 + }, + { + "left_line": 8155, + "right_line": 8150 + }, + { + "left_line": 8156, + "right_line": 8151 + }, + { + "left_line": 8157, + "right_line": 8152 + }, + { + "left_line": 8158, + "right_line": 8153 + }, + { + "left_line": 8159, + "right_line": 8154 + }, + { + "left_line": 8160, + "right_line": 8155 + }, + { + "left_line": 8161, + "right_line": 8156 + }, + { + "left_line": 8162, + "right_line": 8157 + }, + { + "left_line": 8163, + "right_line": 8158 + }, + { + "left_line": 8164, + "right_line": 8159 + }, + { + "left_line": 8165, + "right_line": 8160 + }, + { + "left_line": 8166, + "right_line": 8161 + }, + { + "left_line": 8167, + "right_line": 8162 + }, + { + "left_line": 8168, + "right_line": 8163 + }, + { + "left_line": 8169, + "right_line": 8164 + }, + { + "left_line": 8170, + "right_line": 8165 + }, + { + "left_line": 8171, + "right_line": 8166 + }, + { + "left_line": 8172, + "right_line": 8167 + }, + { + "left_line": 8173, + "right_line": 8168 + }, + { + "left_line": 8174, + "right_line": 8169 + }, + { + "left_line": 8175, + "right_line": 8170 + }, + { + "left_line": 8176, + "right_line": 8171 + }, + { + "left_line": 8177, + "right_line": 8172 + }, + { + "left_line": 8178, + "right_line": 8173 + }, + { + "left_line": 8179, + "right_line": 8174 + }, + { + "left_line": 8180, + "right_line": 8175 + }, + { + "left_line": 8181, + "right_line": 8176 + }, + { + "left_line": 8182, + "right_line": 8177 + }, + { + "left_line": 8183, + "right_line": 8178 + }, + { + "left_line": 8184, + "right_line": 8179 + }, + { + "left_line": 8185, + "right_line": 8180 + }, + { + "left_line": 8186, + "right_line": 8181 + }, + { + "left_line": 8187, + "right_line": 8182 + }, + { + "left_line": 8188, + "right_line": 8183 + }, + { + "left_line": 8189, + "right_line": 8184 + }, + { + "left_line": 8190, + "right_line": 8185 + }, + { + "left_line": 8191, + "right_line": 8186 + }, + { + "left_line": 8192, + "right_line": 8187 + }, + { + "left_line": 8193, + "right_line": 8188 + }, + { + "left_line": 8194, + "right_line": 8189 + }, + { + "left_line": 8195, + "right_line": 8190 + }, + { + "left_line": 8196, + "right_line": 8191 + }, + { + "left_line": 8197, + "right_line": 8192 + }, + { + "left_line": 8198, + "right_line": 8193 + }, + { + "left_line": 8199, + "right_line": 8194 + }, + { + "left_line": 8200, + "right_line": 8195 + }, + { + "left_line": 8201, + "right_line": 8196 + }, + { + "left_line": 8202, + "right_line": 8197 + }, + { + "left_line": 8203, + "right_line": 8198 + }, + { + "left_line": 8204, + "right_line": 8199 + }, + { + "left_line": 8205, + "right_line": 8200 + }, + { + "left_line": 8206, + "right_line": 8201 + }, + { + "left_line": 8207, + "right_line": 8202 + }, + { + "left_line": 8208, + "right_line": 8203 + }, + { + "left_line": 8209, + "right_line": 8204 + }, + { + "left_line": 8210, + "right_line": 8205 + }, + { + "left_line": 8211, + "right_line": 8206 + }, + { + "left_line": 8212, + "right_line": 8207 + }, + { + "left_line": 8213, + "right_line": 8208 + }, + { + "left_line": 8214, + "right_line": 8209 + }, + { + "left_line": 8215, + "right_line": 8210 + }, + { + "left_line": 8216, + "right_line": 8211 + }, + { + "left_line": 8217, + "right_line": 8212 + }, + { + "left_line": 8218, + "right_line": 8213 + }, + { + "left_line": 8219, + "right_line": 8214 + }, + { + "left_line": 8220, + "right_line": 8215 + }, + { + "left_line": 8221, + "right_line": 8216 + }, + { + "left_line": 8222, + "right_line": 8217 + }, + { + "left_line": 8223, + "right_line": 8218 + }, + { + "left_line": 8224, + "right_line": 8219 + }, + { + "left_line": 8225, + "right_line": 8220 + }, + { + "left_line": 8226, + "right_line": 8221 + }, + { + "left_line": 8227, + "right_line": 8222 + }, + { + "left_line": 8228, + "right_line": 8223 + }, + { + "left_line": 8229, + "right_line": 8224 + }, + { + "left_line": 8230, + "right_line": 8225 + }, + { + "left_line": 8231, + "right_line": 8226 + }, + { + "left_line": 8232, + "right_line": 8227 + }, + { + "left_line": 8233, + "right_line": 8228 + }, + { + "left_line": 8234, + "right_line": 8229 + }, + { + "left_line": 8235, + "right_line": 8230 + }, + { + "left_line": 8236, + "right_line": 8231 + }, + { + "left_line": 8237, + "right_line": 8232 + }, + { + "left_line": 8238, + "right_line": 8233 + }, + { + "left_line": 8239, + "right_line": 8234 + }, + { + "left_line": 8240, + "right_line": 8235 + }, + { + "left_line": 8241, + "right_line": 8236 + }, + { + "left_line": 8242, + "right_line": 8237 + }, + { + "left_line": 8243, + "right_line": 8238 + }, + { + "left_line": 8244, + "right_line": 8239 + }, + { + "left_line": 8245, + "right_line": 8240 + }, + { + "left_line": 8246, + "right_line": 8241 + }, + { + "left_line": 8247, + "right_line": 8242 + }, + { + "left_line": 8248, + "right_line": 8243 + }, + { + "left_line": 8249, + "right_line": 8244 + }, + { + "left_line": 8250, + "right_line": 8245 + }, + { + "left_line": 8251, + "right_line": 8246 + }, + { + "left_line": 8252, + "right_line": 8247 + }, + { + "left_line": 8253, + "right_line": 8248 + }, + { + "left_line": 8254, + "right_line": 8249 + }, + { + "left_line": 8255, + "right_line": 8250 + }, + { + "left_line": 8256, + "right_line": 8251 + }, + { + "left_line": 8257, + "right_line": 8252 + }, + { + "left_line": 8258, + "right_line": 8253 + }, + { + "left_line": 8259, + "right_line": 8254 + }, + { + "left_line": 8260, + "right_line": 8255 + }, + { + "left_line": 8261, + "right_line": 8256 + }, + { + "left_line": 8262, + "right_line": 8257 + }, + { + "left_line": 8263, + "right_line": 8258 + }, + { + "left_line": 8264, + "right_line": 8259 + }, + { + "left_line": 8265, + "right_line": 8260 + }, + { + "left_line": 8266, + "right_line": 8261 + }, + { + "left_line": 8267, + "right_line": 8262 + }, + { + "left_line": 8268, + "right_line": 8263 + }, + { + "left_line": 8269, + "right_line": 8264 + }, + { + "left_line": 8270, + "right_line": 8265 + }, + { + "left_line": 8271, + "right_line": 8266 + }, + { + "left_line": 8272, + "right_line": 8267 + }, + { + "left_line": 8273, + "right_line": 8268 + }, + { + "left_line": 8274, + "right_line": 8269 + }, + { + "left_line": 8275, + "right_line": 8270 + }, + { + "left_line": 8276, + "right_line": 8271 + }, + { + "left_line": 8277, + "right_line": 8272 + }, + { + "left_line": 8278, + "right_line": 8273 + }, + { + "left_line": 8279, + "right_line": 8274 + }, + { + "left_line": 8280, + "right_line": 8275 + }, + { + "left_line": 8281, + "right_line": 8276 + }, + { + "left_line": 8282, + "right_line": 8277 + }, + { + "left_line": 8283, + "right_line": 8278 + }, + { + "left_line": 8284, + "right_line": 8279 + }, + { + "left_line": 8285, + "right_line": 8280 + }, + { + "left_line": 8286, + "right_line": 8281 + }, + { + "left_line": 8287, + "right_line": 8282 + }, + { + "left_line": 8288, + "right_line": 8283 + }, + { + "left_line": 8289, + "right_line": 8284 + }, + { + "left_line": 8290, + "right_line": 8285 + }, + { + "left_line": 8291, + "right_line": 8286 + }, + { + "left_line": 8292, + "right_line": 8287 + }, + { + "left_line": 8293, + "right_line": 8288 + }, + { + "left_line": 8294, + "right_line": 8289 + }, + { + "left_line": 8295, + "right_line": 8290 + }, + { + "left_line": 8296, + "right_line": 8291 + }, + { + "left_line": 8297, + "right_line": 8292 + }, + { + "left_line": 8298, + "right_line": 8293 + }, + { + "left_line": 8299, + "right_line": 8294 + }, + { + "left_line": 8300, + "right_line": 8295 + }, + { + "left_line": 8301, + "right_line": 8296 + }, + { + "left_line": 8302, + "right_line": 8297 + }, + { + "left_line": 8303, + "right_line": 8298 + }, + { + "left_line": 8304, + "right_line": 8299 + }, + { + "left_line": 8305, + "right_line": 8300 + }, + { + "left_line": 8306, + "right_line": 8301 + }, + { + "left_line": 8307, + "right_line": 8302 + }, + { + "left_line": 8308, + "right_line": 8303 + }, + { + "left_line": 8309, + "right_line": 8304 + }, + { + "left_line": 8310, + "right_line": 8305 + }, + { + "left_line": 8311, + "right_line": 8306 + }, + { + "left_line": 8312, + "right_line": 8307 + }, + { + "left_line": 8313, + "right_line": 8308 + }, + { + "left_line": 8314, + "right_line": 8309 + }, + { + "left_line": 8315, + "right_line": 8310 + }, + { + "left_line": 8316, + "right_line": 8311 + }, + { + "left_line": 8317, + "right_line": 8312 + }, + { + "left_line": 8318, + "right_line": 8313 + }, + { + "left_line": 8319, + "right_line": 8314 + }, + { + "left_line": 8320, + "right_line": 8315 + }, + { + "left_line": 8321, + "right_line": 8316 + }, + { + "left_line": 8322, + "right_line": 8317 + }, + { + "left_line": 8323, + "right_line": 8318 + }, + { + "left_line": 8324, + "right_line": 8319 + }, + { + "left_line": 8325, + "right_line": 8320 + }, + { + "left_line": 8326, + "right_line": 8321 + }, + { + "left_line": 8327, + "right_line": 8322 + }, + { + "left_line": 8328, + "right_line": 8323 + }, + { + "left_line": 8329, + "right_line": 8324 + }, + { + "left_line": 8330, + "right_line": 8325 + }, + { + "left_line": 8331, + "right_line": 8326 + }, + { + "left_line": 8332, + "right_line": 8327 + }, + { + "left_line": 8333, + "right_line": 8328 + }, + { + "left_line": 8334, + "right_line": 8329 + }, + { + "left_line": 8335, + "right_line": 8330 + }, + { + "left_line": 8336, + "right_line": 8331 + }, + { + "left_line": 8337, + "right_line": 8332 + }, + { + "left_line": 8338, + "right_line": 8333 + }, + { + "left_line": 8339, + "right_line": 8334 + }, + { + "left_line": 8340, + "right_line": 8335 + }, + { + "left_line": 8341, + "right_line": 8336 + }, + { + "left_line": 8342, + "right_line": 8337 + }, + { + "left_line": 8343, + "right_line": 8338 + }, + { + "left_line": 8344, + "right_line": 8339 + }, + { + "left_line": 8345, + "right_line": 8340 + }, + { + "left_line": 8346, + "right_line": 8341 + }, + { + "left_line": 8347, + "right_line": 8342 + }, + { + "left_line": 8348, + "right_line": 8343 + }, + { + "left_line": 8349, + "right_line": 8344 + }, + { + "left_line": 8350, + "right_line": 8345 + }, + { + "left_line": 8351, + "right_line": 8346 + }, + { + "left_line": 8352, + "right_line": 8347 + }, + { + "left_line": 8353, + "right_line": 8348 + }, + { + "left_line": 8354, + "right_line": 8349 + }, + { + "left_line": 8355, + "right_line": 8350 + }, + { + "left_line": 8356, + "right_line": 8351 + }, + { + "left_line": 8357, + "right_line": 8352 + }, + { + "left_line": 8358, + "right_line": 8353 + }, + { + "left_line": 8359, + "right_line": 8354 + }, + { + "left_line": 8360, + "right_line": 8355 + }, + { + "left_line": 8361, + "right_line": 8356 + }, + { + "left_line": 8362, + "right_line": 8357 + }, + { + "left_line": 8363, + "right_line": 8358 + }, + { + "left_line": 8364, + "right_line": 8359 + }, + { + "left_line": 8365, + "right_line": 8360 + }, + { + "left_line": 8366, + "right_line": 8361 + }, + { + "left_line": 8367, + "right_line": 8362 + }, + { + "left_line": 8368, + "right_line": 8363 + }, + { + "left_line": 8369, + "right_line": 8364 + }, + { + "left_line": 8370, + "right_line": 8365 + }, + { + "left_line": 8371, + "right_line": 8366 + }, + { + "left_line": 8372, + "right_line": 8367 + }, + { + "left_line": 8373, + "right_line": 8368 + }, + { + "left_line": 8374, + "right_line": 8369 + }, + { + "left_line": 8375, + "right_line": 8370 + }, + { + "left_line": 8376, + "right_line": 8371 + }, + { + "left_line": 8377, + "right_line": 8372 + }, + { + "left_line": 8378, + "right_line": 8373 + }, + { + "left_line": 8379, + "right_line": 8374 + }, + { + "left_line": 8380, + "right_line": 8375 + }, + { + "left_line": 8381, + "right_line": 8376 + }, + { + "left_line": 8382, + "right_line": 8377 + }, + { + "left_line": 8383, + "right_line": 8378 + }, + { + "left_line": 8384, + "right_line": 8379 + }, + { + "left_line": 8385, + "right_line": 8380 + }, + { + "left_line": 8386, + "right_line": 8381 + }, + { + "left_line": 8387, + "right_line": 8382 + }, + { + "left_line": 8388, + "right_line": 8383 + }, + { + "left_line": 8389, + "right_line": 8384 + }, + { + "left_line": 8390, + "right_line": 8385 + }, + { + "left_line": 8391, + "right_line": 8386 + }, + { + "left_line": 8392, + "right_line": 8387 + }, + { + "left_line": 8393, + "right_line": 8388 + }, + { + "left_line": 8394, + "right_line": 8389 + }, + { + "left_line": 8395, + "right_line": 8390 + }, + { + "left_line": 8396, + "right_line": 8391 + }, + { + "left_line": 8397, + "right_line": 8392 + }, + { + "left_line": 8398, + "right_line": 8393 + }, + { + "left_line": 8399, + "right_line": 8394 + }, + { + "left_line": 8400, + "right_line": 8395 + }, + { + "left_line": 8401, + "right_line": 8396 + }, + { + "left_line": 8402, + "right_line": 8397 + }, + { + "left_line": 8403, + "right_line": 8398 + }, + { + "left_line": 8404, + "right_line": 8399 + }, + { + "left_line": 8405, + "right_line": 8400 + }, + { + "left_line": 8406, + "right_line": 8401 + }, + { + "left_line": 8407, + "right_line": 8402 + }, + { + "left_line": 8408, + "right_line": 8403 + }, + { + "left_line": 8409, + "right_line": 8404 + }, + { + "left_line": 8410, + "right_line": 8405 + }, + { + "left_line": 8411, + "right_line": 8406 + }, + { + "left_line": 8412, + "right_line": 8407 + }, + { + "left_line": 8413, + "right_line": 8408 + }, + { + "left_line": 8414, + "right_line": 8409 + }, + { + "left_line": 8415, + "right_line": 8410 + }, + { + "left_line": 8416, + "right_line": 8411 + }, + { + "left_line": 8417, + "right_line": 8412 + }, + { + "left_line": 8418, + "right_line": 8413 + }, + { + "left_line": 8419, + "right_line": 8414 + }, + { + "left_line": 8420, + "right_line": 8415 + }, + { + "left_line": 8421, + "right_line": 8416 + }, + { + "left_line": 8422, + "right_line": 8417 + }, + { + "left_line": 8423, + "right_line": 8418 + }, + { + "left_line": 8424, + "right_line": 8419 + }, + { + "left_line": 8425, + "right_line": 8420 + }, + { + "left_line": 8426, + "right_line": 8421 + }, + { + "left_line": 8427, + "right_line": 8422 + }, + { + "left_line": 8428, + "right_line": 8423 + }, + { + "left_line": 8429, + "right_line": 8424 + }, + { + "left_line": 8430, + "right_line": 8425 + }, + { + "left_line": 8431, + "right_line": 8426 + }, + { + "left_line": 8432, + "right_line": 8427 + }, + { + "left_line": 8433, + "right_line": 8428 + }, + { + "left_line": 8434, + "right_line": 8429 + }, + { + "left_line": 8435, + "right_line": 8430 + }, + { + "left_line": 8436, + "right_line": 8431 + }, + { + "left_line": 8437, + "right_line": 8432 + }, + { + "left_line": 8438, + "right_line": 8433 + }, + { + "left_line": 8439, + "right_line": 8434 + }, + { + "left_line": 8440, + "right_line": 8435 + }, + { + "left_line": 8441, + "right_line": 8436 + }, + { + "left_line": 8442, + "right_line": 8437 + }, + { + "left_line": 8443, + "right_line": 8438 + }, + { + "left_line": 8444, + "right_line": 8439 + }, + { + "left_line": 8445, + "right_line": 8440 + }, + { + "left_line": 8446, + "right_line": 8441 + }, + { + "left_line": 8447, + "right_line": 8442 + }, + { + "left_line": 8448, + "right_line": 8443 + }, + { + "left_line": 8449, + "right_line": 8444 + }, + { + "left_line": 8450, + "right_line": 8445 + }, + { + "left_line": 8451, + "right_line": 8446 + }, + { + "left_line": 8452, + "right_line": 8447 + }, + { + "left_line": 8453, + "right_line": 8448 + }, + { + "left_line": 8454, + "right_line": 8449 + }, + { + "left_line": 8455, + "right_line": 8450 + }, + { + "left_line": 8456, + "right_line": 8451 + }, + { + "left_line": 8457, + "right_line": 8452 + }, + { + "left_line": 8458, + "right_line": 8453 + }, + { + "left_line": 8459, + "right_line": 8454 + }, + { + "left_line": 8460, + "right_line": 8455 + }, + { + "left_line": 8461, + "right_line": 8456 + }, + { + "left_line": 8462, + "right_line": 8457 + }, + { + "left_line": 8463, + "right_line": 8458 + }, + { + "left_line": 8464, + "right_line": 8459 + }, + { + "left_line": 8465, + "right_line": 8460 + }, + { + "left_line": 8466, + "right_line": 8461 + }, + { + "left_line": 8467, + "right_line": 8462 + }, + { + "left_line": 8468, + "right_line": 8463 + }, + { + "left_line": 8469, + "right_line": 8464 + }, + { + "left_line": 8470, + "right_line": 8465 + }, + { + "left_line": 8471, + "right_line": 8466 + }, + { + "left_line": 8472, + "right_line": 8467 + }, + { + "left_line": 8473, + "right_line": 8468 + }, + { + "left_line": 8474, + "right_line": 8469 + }, + { + "left_line": 8475, + "right_line": 8470 + }, + { + "left_line": 8476, + "right_line": 8471 + }, + { + "left_line": 8477, + "right_line": 8472 + }, + { + "left_line": 8478, + "right_line": 8473 + }, + { + "left_line": 8479, + "right_line": 8474 + }, + { + "left_line": 8480, + "right_line": 8475 + }, + { + "left_line": 8481, + "right_line": 8476 + }, + { + "left_line": 8482, + "right_line": 8477 + }, + { + "left_line": 8483, + "right_line": 8478 + }, + { + "left_line": 8484, + "right_line": 8479 + }, + { + "left_line": 8485, + "right_line": 8480 + }, + { + "left_line": 8486, + "right_line": 8481 + }, + { + "left_line": 8487, + "right_line": 8482 + }, + { + "left_line": 8488, + "right_line": 8483 + }, + { + "left_line": 8489, + "right_line": 8484 + }, + { + "left_line": 8490, + "right_line": 8485 + }, + { + "left_line": 8491, + "right_line": 8486 + }, + { + "left_line": 8492, + "right_line": 8487 + }, + { + "left_line": 8493, + "right_line": 8488 + }, + { + "left_line": 8494, + "right_line": 8489 + }, + { + "left_line": 8495, + "right_line": 8490 + }, + { + "left_line": 8496, + "right_line": 8491 + }, + { + "left_line": 8497, + "right_line": 8492 + }, + { + "left_line": 8498, + "right_line": 8493 + }, + { + "left_line": 8499, + "right_line": 8494 + }, + { + "left_line": 8500, + "right_line": 8495 + }, + { + "left_line": 8501, + "right_line": 8496 + }, + { + "left_line": 8502, + "right_line": 8497 + }, + { + "left_line": 8503, + "right_line": 8498 + }, + { + "left_line": 8504, + "right_line": 8499 + }, + { + "left_line": 8505, + "right_line": 8500 + }, + { + "left_line": 8506, + "right_line": 8501 + }, + { + "left_line": 8507, + "right_line": 8502 + }, + { + "left_line": 8508, + "right_line": 8503 + }, + { + "left_line": 8509, + "right_line": 8504 + }, + { + "left_line": 8510, + "right_line": 8505 + }, + { + "left_line": 8511, + "right_line": 8506 + }, + { + "left_line": 8512, + "right_line": 8507 + }, + { + "left_line": 8513, + "right_line": 8508 + }, + { + "left_line": 8514, + "right_line": 8509 + }, + { + "left_line": 8515, + "right_line": 8510 + }, + { + "left_line": 8516, + "right_line": 8511 + }, + { + "left_line": 8517, + "right_line": 8512 + }, + { + "left_line": 8518, + "right_line": 8513 + }, + { + "left_line": 8519, + "right_line": 8514 + }, + { + "left_line": 8520, + "right_line": 8515 + }, + { + "left_line": 8521, + "right_line": 8516 + }, + { + "left_line": 8522, + "right_line": 8517 + }, + { + "left_line": 8523, + "right_line": 8518 + }, + { + "left_line": 8524, + "right_line": 8519 + }, + { + "left_line": 8525, + "right_line": 8520 + }, + { + "left_line": 8526, + "right_line": 8521 + }, + { + "left_line": 8527, + "right_line": 8522 + }, + { + "left_line": 8528, + "right_line": 8523 + }, + { + "left_line": 8529, + "right_line": 8524 + }, + { + "left_line": 8530, + "right_line": 8525 + }, + { + "left_line": 8531, + "right_line": 8526 + }, + { + "left_line": 8532, + "right_line": 8527 + }, + { + "left_line": 8533, + "right_line": 8528 + }, + { + "left_line": 8534, + "right_line": 8529 + }, + { + "left_line": 8535, + "right_line": 8530 + }, + { + "left_line": 8536, + "right_line": 8531 + }, + { + "left_line": 8537, + "right_line": 8532 + }, + { + "left_line": 8538, + "right_line": 8533 + }, + { + "left_line": 8539, + "right_line": 8534 + }, + { + "left_line": 8540, + "right_line": 8535 + }, + { + "left_line": 8541, + "right_line": 8536 + }, + { + "left_line": 8542, + "right_line": 8537 + }, + { + "left_line": 8543, + "right_line": 8538 + }, + { + "left_line": 8544, + "right_line": 8539 + }, + { + "left_line": 8545, + "right_line": 8540 + }, + { + "left_line": 8546, + "right_line": 8541 + }, + { + "left_line": 8547, + "right_line": 8542 + }, + { + "left_line": 8548, + "right_line": 8543 + }, + { + "left_line": 8549, + "right_line": 8544 + }, + { + "left_line": 8550, + "right_line": 8545 + }, + { + "left_line": 8551, + "right_line": 8546 + }, + { + "left_line": 8552, + "right_line": 8547 + }, + { + "left_line": 8553, + "right_line": 8548 + }, + { + "left_line": 8554, + "right_line": 8549 + }, + { + "left_line": 8555, + "right_line": 8550 + }, + { + "left_line": 8556, + "right_line": 8551 + }, + { + "left_line": 8557, + "right_line": 8552 + }, + { + "left_line": 8558, + "right_line": 8553 + }, + { + "left_line": 8559, + "right_line": 8554 + }, + { + "left_line": 8560, + "right_line": 8555 + }, + { + "left_line": 8561, + "right_line": 8556 + }, + { + "left_line": 8562, + "right_line": 8557 + }, + { + "left_line": 8563, + "right_line": 8558 + }, + { + "left_line": 8564, + "right_line": 8559 + }, + { + "left_line": 8565, + "right_line": 8560 + }, + { + "left_line": 8566, + "right_line": 8561 + }, + { + "left_line": 8567, + "right_line": 8562 + }, + { + "left_line": 8568, + "right_line": 8563 + }, + { + "left_line": 8569, + "right_line": 8564 + }, + { + "left_line": 8570, + "right_line": 8565 + }, + { + "left_line": 8571, + "right_line": 8566 + }, + { + "left_line": 8572, + "right_line": 8567 + }, + { + "left_line": 8573, + "right_line": 8568 + }, + { + "left_line": 8574, + "right_line": 8569 + }, + { + "left_line": 8575, + "right_line": 8570 + }, + { + "left_line": 8576, + "right_line": 8571 + }, + { + "left_line": 8577, + "right_line": 8572 + }, + { + "left_line": 8578, + "right_line": 8573 + }, + { + "left_line": 8579, + "right_line": 8574 + }, + { + "left_line": 8580, + "right_line": 8575 + }, + { + "left_line": 8581, + "right_line": 8576 + }, + { + "left_line": 8582, + "right_line": 8577 + }, + { + "left_line": 8583, + "right_line": 8578 + }, + { + "left_line": 8584, + "right_line": 8579 + }, + { + "left_line": 8585, + "right_line": 8580 + }, + { + "left_line": 8586, + "right_line": 8581 + }, + { + "left_line": 8587, + "right_line": 8582 + }, + { + "left_line": 8588, + "right_line": 8583 + }, + { + "left_line": 8589, + "right_line": 8584 + }, + { + "left_line": 8590, + "right_line": 8585 + }, + { + "left_line": 8591, + "right_line": 8586 + }, + { + "left_line": 8592, + "right_line": 8587 + }, + { + "left_line": 8593, + "right_line": 8588 + }, + { + "left_line": 8594, + "right_line": 8589 + }, + { + "left_line": 8595, + "right_line": 8590 + }, + { + "left_line": 8596, + "right_line": 8591 + }, + { + "left_line": 8597, + "right_line": 8592 + }, + { + "left_line": 8598, + "right_line": 8593 + }, + { + "left_line": 8599, + "right_line": 8594 + }, + { + "left_line": 8600, + "right_line": 8595 + }, + { + "left_line": 8601, + "right_line": 8596 + }, + { + "left_line": 8602, + "right_line": 8597 + }, + { + "left_line": 8603, + "right_line": 8598 + }, + { + "left_line": 8604, + "right_line": 8599 + }, + { + "left_line": 8605, + "right_line": 8600 + }, + { + "left_line": 8606, + "right_line": 8601 + }, + { + "left_line": 8607, + "right_line": 8602 + }, + { + "left_line": 8608, + "right_line": 8603 + }, + { + "left_line": 8609, + "right_line": 8604 + }, + { + "left_line": 8610, + "right_line": 8605 + }, + { + "left_line": 8611, + "right_line": 8606 + }, + { + "left_line": 8612, + "right_line": 8607 + }, + { + "left_line": 8613, + "right_line": 8608 + }, + { + "left_line": 8614, + "right_line": 8609 + }, + { + "left_line": 8615, + "right_line": 8610 + }, + { + "left_line": 8616, + "right_line": 8611 + }, + { + "left_line": 8617, + "right_line": 8612 + }, + { + "left_line": 8618, + "right_line": 8613 + }, + { + "left_line": 8619, + "right_line": 8614 + }, + { + "left_line": 8620, + "right_line": 8615 + }, + { + "left_line": 8621, + "right_line": 8616 + }, + { + "left_line": 8622, + "right_line": 8617 + }, + { + "left_line": 8623, + "right_line": 8618 + }, + { + "left_line": 8624, + "right_line": 8619 + }, + { + "left_line": 8625, + "right_line": 8620 + }, + { + "left_line": 8626, + "right_line": 8621 + }, + { + "left_line": 8627, + "right_line": 8622 + }, + { + "left_line": 8628, + "right_line": 8623 + }, + { + "left_line": 8629, + "right_line": 8624 + }, + { + "left_line": 8630, + "right_line": 8625 + }, + { + "left_line": 8631, + "right_line": 8626 + }, + { + "left_line": 8632, + "right_line": 8627 + }, + { + "left_line": 8633, + "right_line": 8628 + }, + { + "left_line": 8634, + "right_line": 8629 + }, + { + "left_line": 8635, + "right_line": 8630 + }, + { + "left_line": 8636, + "right_line": 8631 + }, + { + "left_line": 8637, + "right_line": 8632 + }, + { + "left_line": 8638, + "right_line": 8633 + }, + { + "left_line": 8639, + "right_line": 8634 + }, + { + "left_line": 8640, + "right_line": 8635 + }, + { + "left_line": 8641, + "right_line": 8636 + }, + { + "left_line": 8642, + "right_line": 8637 + }, + { + "left_line": 8643, + "right_line": 8638 + }, + { + "left_line": 8644, + "right_line": 8639 + }, + { + "left_line": 8645, + "right_line": 8640 + }, + { + "left_line": 8646, + "right_line": 8641 + }, + { + "left_line": 8647, + "right_line": 8642 + }, + { + "left_line": 8648, + "right_line": 8643 + }, + { + "left_line": 8649, + "right_line": 8644 + }, + { + "left_line": 8650, + "right_line": 8645 + }, + { + "left_line": 8651, + "right_line": 8646 + }, + { + "left_line": 8652, + "right_line": 8647 + }, + { + "left_line": 8653, + "right_line": 8648 + }, + { + "left_line": 8654, + "right_line": 8649 + }, + { + "left_line": 8655, + "right_line": 8650 + }, + { + "left_line": 8656, + "right_line": 8651 + }, + { + "left_line": 8657, + "right_line": 8652 + }, + { + "left_line": 8658, + "right_line": 8653 + }, + { + "left_line": 8659, + "right_line": 8654 + }, + { + "left_line": 8660, + "right_line": 8655 + }, + { + "left_line": 8661, + "right_line": 8656 + }, + { + "left_line": 8662, + "right_line": 8657 + }, + { + "left_line": 8663, + "right_line": 8658 + }, + { + "left_line": 8664, + "right_line": 8659 + }, + { + "left_line": 8665, + "right_line": 8660 + }, + { + "left_line": 8666, + "right_line": 8661 + }, + { + "left_line": 8667, + "right_line": 8662 + }, + { + "left_line": 8668, + "right_line": 8663 + }, + { + "left_line": 8669, + "right_line": 8664 + }, + { + "left_line": 8670, + "right_line": 8665 + }, + { + "left_line": 8671, + "right_line": 8666 + }, + { + "left_line": 8672, + "right_line": 8667 + }, + { + "left_line": 8673, + "right_line": 8668 + }, + { + "left_line": 8674, + "right_line": 8669 + }, + { + "left_line": 8675, + "right_line": 8670 + }, + { + "left_line": 8676, + "right_line": 8671 + }, + { + "left_line": 8677, + "right_line": 8672 + }, + { + "left_line": 8678, + "right_line": 8673 + }, + { + "left_line": 8679, + "right_line": 8674 + }, + { + "left_line": 8680, + "right_line": 8675 + }, + { + "left_line": 8681, + "right_line": 8676 + }, + { + "left_line": 8682, + "right_line": 8677 + }, + { + "left_line": 8683, + "right_line": 8678 + }, + { + "left_line": 8684, + "right_line": 8679 + }, + { + "left_line": 8685, + "right_line": 8680 + }, + { + "left_line": 8686, + "right_line": 8681 + }, + { + "left_line": 8687, + "right_line": 8682 + }, + { + "left_line": 8688, + "right_line": 8683 + }, + { + "left_line": 8689, + "right_line": 8684 + }, + { + "left_line": 8690, + "right_line": 8685 + }, + { + "left_line": 8691, + "right_line": 8686 + }, + { + "left_line": 8692, + "right_line": 8687 + }, + { + "left_line": 8693, + "right_line": 8688 + }, + { + "left_line": 8694, + "right_line": 8689 + }, + { + "left_line": 8695, + "right_line": 8690 + }, + { + "left_line": 8696, + "right_line": 8691 + }, + { + "left_line": 8697, + "right_line": 8692 + }, + { + "left_line": 8698, + "right_line": 8693 + }, + { + "left_line": 8699, + "right_line": 8694 + }, + { + "left_line": 8700, + "right_line": 8695 + }, + { + "left_line": 8701, + "right_line": 8696 + }, + { + "left_line": 8702, + "right_line": 8697 + }, + { + "left_line": 8703, + "right_line": 8698 + }, + { + "left_line": 8704, + "right_line": 8699 + }, + { + "left_line": 8705, + "right_line": 8700 + }, + { + "left_line": 8706, + "right_line": 8701 + }, + { + "left_line": 8707, + "right_line": 8702 + }, + { + "left_line": 8708, + "right_line": 8703 + }, + { + "left_line": 8709, + "right_line": 8704 + }, + { + "left_line": 8710, + "right_line": 8705 + }, + { + "left_line": 8711, + "right_line": 8706 + }, + { + "left_line": 8712, + "right_line": 8707 + }, + { + "left_line": 8713, + "right_line": 8708 + }, + { + "left_line": 8714, + "right_line": 8709 + }, + { + "left_line": 8715, + "right_line": 8710 + }, + { + "left_line": 8716, + "right_line": 8711 + }, + { + "left_line": 8717, + "right_line": 8712 + }, + { + "left_line": 8718, + "right_line": 8713 + }, + { + "left_line": 8719, + "right_line": 8714 + }, + { + "left_line": 8720, + "right_line": 8715 + }, + { + "left_line": 8721, + "right_line": 8716 + }, + { + "left_line": 8722, + "right_line": 8717 + }, + { + "left_line": 8723, + "right_line": 8718 + }, + { + "left_line": 8724, + "right_line": 8719 + }, + { + "left_line": 8725, + "right_line": 8720 + }, + { + "left_line": 8726, + "right_line": 8721 + }, + { + "left_line": 8727, + "right_line": 8722 + }, + { + "left_line": 8728, + "right_line": 8723 + }, + { + "left_line": 8729, + "right_line": 8724 + }, + { + "left_line": 8730, + "right_line": 8725 + }, + { + "left_line": 8731, + "right_line": 8726 + }, + { + "left_line": 8732, + "right_line": 8727 + }, + { + "left_line": 8733, + "right_line": 8728 + }, + { + "left_line": 8734, + "right_line": 8729 + }, + { + "left_line": 8735, + "right_line": 8730 + }, + { + "left_line": 8736, + "right_line": 8731 + }, + { + "left_line": 8737, + "right_line": 8732 + }, + { + "left_line": 8738, + "right_line": 8733 + }, + { + "left_line": 8739, + "right_line": 8734 + }, + { + "left_line": 8740, + "right_line": 8735 + }, + { + "left_line": 8741, + "right_line": 8736 + }, + { + "left_line": 8742, + "right_line": 8737 + }, + { + "left_line": 8743, + "right_line": 8738 + }, + { + "left_line": 8744, + "right_line": 8739 + }, + { + "left_line": 8745, + "right_line": 8740 + }, + { + "left_line": 8746, + "right_line": 8741 + }, + { + "left_line": 8747, + "right_line": 8742 + }, + { + "left_line": 8748, + "right_line": 8743 + }, + { + "left_line": 8749, + "right_line": 8744 + }, + { + "left_line": 8750, + "right_line": 8745 + }, + { + "left_line": 8751, + "right_line": 8746 + }, + { + "left_line": 8752, + "right_line": 8747 + }, + { + "left_line": 8753, + "right_line": 8748 + }, + { + "left_line": 8754, + "right_line": 8749 + }, + { + "left_line": 8755, + "right_line": 8750 + }, + { + "left_line": 8756, + "right_line": 8751 + }, + { + "left_line": 8757, + "right_line": 8752 + }, + { + "left_line": 8758, + "right_line": 8753 + }, + { + "left_line": 8759, + "right_line": 8754 + }, + { + "left_line": 8760, + "right_line": 8755 + }, + { + "left_line": 8761, + "right_line": 8756 + }, + { + "left_line": 8762, + "right_line": 8757 + }, + { + "left_line": 8763, + "right_line": 8758 + }, + { + "left_line": 8764, + "right_line": 8759 + }, + { + "left_line": 8765, + "right_line": 8760 + }, + { + "left_line": 8766, + "right_line": 8761 + }, + { + "left_line": 8767, + "right_line": 8762 + }, + { + "left_line": 8768, + "right_line": 8763 + }, + { + "left_line": 8769, + "right_line": 8764 + }, + { + "left_line": 8770, + "right_line": 8765 + }, + { + "left_line": 8771, + "right_line": 8766 + }, + { + "left_line": 8772, + "right_line": 8767 + }, + { + "left_line": 8773, + "right_line": 8768 + }, + { + "left_line": 8774, + "right_line": 8769 + }, + { + "left_line": 8775, + "right_line": 8770 + }, + { + "left_line": 8776, + "right_line": 8771 + }, + { + "left_line": 8777, + "right_line": 8772 + }, + { + "left_line": 8778, + "right_line": 8773 + }, + { + "left_line": 8779, + "right_line": 8774 + }, + { + "left_line": 8780, + "right_line": 8775 + }, + { + "left_line": 8781, + "right_line": 8776 + }, + { + "left_line": 8782, + "right_line": 8777 + }, + { + "left_line": 8783, + "right_line": 8778 + }, + { + "left_line": 8784, + "right_line": 8779 + }, + { + "left_line": 8785, + "right_line": 8780 + }, + { + "left_line": 8786, + "right_line": 8781 + }, + { + "left_line": 8787, + "right_line": 8782 + }, + { + "left_line": 8788, + "right_line": 8783 + }, + { + "left_line": 8789, + "right_line": 8784 + }, + { + "left_line": 8790, + "right_line": 8785 + }, + { + "left_line": 8791, + "right_line": 8786 + }, + { + "left_line": 8792, + "right_line": 8787 + }, + { + "left_line": 8793, + "right_line": 8788 + }, + { + "left_line": 8794, + "right_line": 8789 + }, + { + "left_line": 8795, + "right_line": 8790 + }, + { + "left_line": 8796, + "right_line": 8791 + }, + { + "left_line": 8797, + "right_line": 8792 + }, + { + "left_line": 8798, + "right_line": 8793 + }, + { + "left_line": 8799, + "right_line": 8794 + }, + { + "left_line": 8800, + "right_line": 8795 + }, + { + "left_line": 8801, + "right_line": 8796 + }, + { + "left_line": 8802, + "right_line": 8797 + }, + { + "left_line": 8803, + "right_line": 8798 + }, + { + "left_line": 8804, + "right_line": 8799 + }, + { + "left_line": 8805, + "right_line": 8800 + }, + { + "left_line": 8806, + "right_line": 8801 + }, + { + "left_line": 8807, + "right_line": 8802 + }, + { + "left_line": 8808, + "right_line": 8803 + }, + { + "left_line": 8809, + "right_line": 8804 + }, + { + "left_line": 8810, + "right_line": 8805 + }, + { + "left_line": 8811, + "right_line": 8806 + }, + { + "left_line": 8812, + "right_line": 8807 + }, + { + "left_line": 8813, + "right_line": 8808 + }, + { + "left_line": 8814, + "right_line": 8809 + }, + { + "left_line": 8815, + "right_line": 8810 + }, + { + "left_line": 8816, + "right_line": 8811 + }, + { + "left_line": 8817, + "right_line": 8812 + }, + { + "left_line": 8818, + "right_line": 8813 + }, + { + "left_line": 8819, + "right_line": 8814 + }, + { + "left_line": 8820, + "right_line": 8815 + }, + { + "left_line": 8821, + "right_line": 8816 + }, + { + "left_line": 8822, + "right_line": 8817 + }, + { + "left_line": 8823, + "right_line": 8818 + }, + { + "left_line": 8824, + "right_line": 8819 + }, + { + "left_line": 8825, + "right_line": 8820 + }, + { + "left_line": 8826, + "right_line": 8821 + }, + { + "left_line": 8827, + "right_line": 8822 + }, + { + "left_line": 8828, + "right_line": 8823 + }, + { + "left_line": 8829, + "right_line": 8824 + }, + { + "left_line": 8830, + "right_line": 8825 + }, + { + "left_line": 8831, + "right_line": 8826 + }, + { + "left_line": 8832, + "right_line": 8827 + }, + { + "left_line": 8833, + "right_line": 8828 + }, + { + "left_line": 8834, + "right_line": 8829 + }, + { + "left_line": 8835, + "right_line": 8830 + }, + { + "left_line": 8836, + "right_line": 8831 + }, + { + "left_line": 8837, + "right_line": 8832 + }, + { + "left_line": 8838, + "right_line": 8833 + }, + { + "left_line": 8839, + "right_line": 8834 + }, + { + "left_line": 8840, + "right_line": 8835 + }, + { + "left_line": 8841, + "right_line": 8836 + }, + { + "left_line": 8842, + "right_line": 8837 + }, + { + "left_line": 8843, + "right_line": 8838 + }, + { + "left_line": 8844, + "right_line": 8839 + }, + { + "left_line": 8845, + "right_line": 8840 + }, + { + "left_line": 8846, + "right_line": 8841 + }, + { + "left_line": 8847, + "right_line": 8842 + }, + { + "left_line": 8848, + "right_line": 8843 + }, + { + "left_line": 8849, + "right_line": 8844 + }, + { + "left_line": 8850, + "right_line": 8845 + }, + { + "left_line": 8851, + "right_line": 8846 + }, + { + "left_line": 8852, + "right_line": 8847 + }, + { + "left_line": 8853, + "right_line": 8848 + }, + { + "left_line": 8854, + "right_line": 8849 + }, + { + "left_line": 8855, + "right_line": 8850 + }, + { + "left_line": 8856, + "right_line": 8851 + }, + { + "left_line": 8857, + "right_line": 8852 + }, + { + "left_line": 8858, + "right_line": 8853 + }, + { + "left_line": 8859, + "right_line": 8854 + }, + { + "left_line": 8860, + "right_line": 8855 + }, + { + "left_line": 8861, + "right_line": 8856 + }, + { + "left_line": 8862, + "right_line": 8857 + }, + { + "left_line": 8863, + "right_line": 8858 + }, + { + "left_line": 8864, + "right_line": 8859 + }, + { + "left_line": 8865, + "right_line": 8860 + }, + { + "left_line": 8866, + "right_line": 8861 + }, + { + "left_line": 8867, + "right_line": 8862 + }, + { + "left_line": 8868, + "right_line": 8863 + }, + { + "left_line": 8869, + "right_line": 8864 + }, + { + "left_line": 8870, + "right_line": 8865 + }, + { + "left_line": 8871, + "right_line": 8866 + }, + { + "left_line": 8872, + "right_line": 8867 + }, + { + "left_line": 8873, + "right_line": 8868 + }, + { + "left_line": 8874, + "right_line": 8869 + }, + { + "left_line": 8875, + "right_line": 8870 + }, + { + "left_line": 8876, + "right_line": 8871 + }, + { + "left_line": 8877, + "right_line": 8872 + }, + { + "left_line": 8878, + "right_line": 8873 + }, + { + "left_line": 8879, + "right_line": 8874 + }, + { + "left_line": 8880, + "right_line": 8875 + }, + { + "left_line": 8881, + "right_line": 8876 + }, + { + "left_line": 8882, + "right_line": 8877 + }, + { + "left_line": 8883, + "right_line": 8878 + }, + { + "left_line": 8884, + "right_line": 8879 + }, + { + "left_line": 8885, + "right_line": 8880 + }, + { + "left_line": 8886, + "right_line": 8881 + }, + { + "left_line": 8887, + "right_line": 8882 + }, + { + "left_line": 8888, + "right_line": 8883 + }, + { + "left_line": 8889, + "right_line": 8884 + }, + { + "left_line": 8890, + "right_line": 8885 + }, + { + "left_line": 8891, + "right_line": 8886 + }, + { + "left_line": 8892, + "right_line": 8887 + }, + { + "left_line": 8893, + "right_line": 8888 + }, + { + "left_line": 8894, + "right_line": 8889 + }, + { + "left_line": 8895, + "right_line": 8890 + }, + { + "left_line": 8896, + "right_line": 8891 + }, + { + "left_line": 8897, + "right_line": 8892 + }, + { + "left_line": 8898, + "right_line": 8893 + }, + { + "left_line": 8899, + "right_line": 8894 + }, + { + "left_line": 8900, + "right_line": 8895 + }, + { + "left_line": 8901, + "right_line": 8896 + }, + { + "left_line": 8902, + "right_line": 8897 + }, + { + "left_line": 8903, + "right_line": 8898 + }, + { + "left_line": 8904, + "right_line": 8899 + }, + { + "left_line": 8905, + "right_line": 8900 + }, + { + "left_line": 8906, + "right_line": 8901 + }, + { + "left_line": 8907, + "right_line": 8902 + }, + { + "left_line": 8908, + "right_line": 8903 + }, + { + "left_line": 8909, + "right_line": 8904 + }, + { + "left_line": 8910, + "right_line": 8905 + }, + { + "left_line": 8911, + "right_line": 8906 + }, + { + "left_line": 8912, + "right_line": 8907 + }, + { + "left_line": 8913, + "right_line": 8908 + }, + { + "left_line": 8914, + "right_line": 8909 + }, + { + "left_line": 8915, + "right_line": 8910 + }, + { + "left_line": 8916, + "right_line": 8911 + }, + { + "left_line": 8917, + "right_line": 8912 + }, + { + "left_line": 8918, + "right_line": 8913 + }, + { + "left_line": 8919, + "right_line": 8914 + }, + { + "left_line": 8920, + "right_line": 8915 + }, + { + "left_line": 8921, + "right_line": 8916 + }, + { + "left_line": 8922, + "right_line": 8917 + }, + { + "left_line": 8923, + "right_line": 8918 + }, + { + "left_line": 8924, + "right_line": 8919 + }, + { + "left_line": 8925, + "right_line": 8920 + }, + { + "left_line": 8926, + "right_line": 8921 + }, + { + "left_line": 8927, + "right_line": 8922 + }, + { + "left_line": 8928, + "right_line": 8923 + }, + { + "left_line": 8929, + "right_line": 8924 + }, + { + "left_line": 8930, + "right_line": 8925 + }, + { + "left_line": 8931, + "right_line": 8926 + }, + { + "left_line": 8932, + "right_line": 8927 + }, + { + "left_line": 8933, + "right_line": 8928 + }, + { + "left_line": 8934, + "right_line": 8929 + }, + { + "left_line": 8935, + "right_line": 8930 + }, + { + "left_line": 8936, + "right_line": 8931 + }, + { + "left_line": 8937, + "right_line": 8932 + }, + { + "left_line": 8938, + "right_line": 8933 + }, + { + "left_line": 8939, + "right_line": 8934 + }, + { + "left_line": 8940, + "right_line": 8935 + }, + { + "left_line": 8941, + "right_line": 8936 + }, + { + "left_line": 8942, + "right_line": 8937 + }, + { + "left_line": 8943, + "right_line": 8938 + }, + { + "left_line": 8944, + "right_line": 8939 + }, + { + "left_line": 8945, + "right_line": 8940 + }, + { + "left_line": 8946, + "right_line": 8941 + }, + { + "left_line": 8947, + "right_line": 8942 + }, + { + "left_line": 8948, + "right_line": 8943 + }, + { + "left_line": 8949, + "right_line": 8944 + }, + { + "left_line": 8950, + "right_line": 8945 + }, + { + "left_line": 8951, + "right_line": 8946 + }, + { + "left_line": 8952, + "right_line": 8947 + }, + { + "left_line": 8953, + "right_line": 8948 + }, + { + "left_line": 8954, + "right_line": 8949 + }, + { + "left_line": 8955, + "right_line": 8950 + }, + { + "left_line": 8956, + "right_line": 8951 + }, + { + "left_line": 8957, + "right_line": 8952 + }, + { + "left_line": 8958, + "right_line": 8953 + }, + { + "left_line": 8959, + "right_line": 8954 + }, + { + "left_line": 8960, + "right_line": 8955 + }, + { + "left_line": 8961, + "right_line": 8956 + }, + { + "left_line": 8962, + "right_line": 8957 + }, + { + "left_line": 8963, + "right_line": 8958 + }, + { + "left_line": 8964, + "right_line": 8959 + }, + { + "left_line": 8965, + "right_line": 8960 + }, + { + "left_line": 8966, + "right_line": 8961 + }, + { + "left_line": 8967, + "right_line": 8962 + }, + { + "left_line": 8968, + "right_line": 8963 + }, + { + "left_line": 8969, + "right_line": 8964 + }, + { + "left_line": 8970, + "right_line": 8965 + }, + { + "left_line": 8971, + "right_line": 8966 + }, + { + "left_line": 8972, + "right_line": 8967 + }, + { + "left_line": 8973, + "right_line": 8968 + }, + { + "left_line": 8974, + "right_line": 8969 + }, + { + "left_line": 8975, + "right_line": 8970 + }, + { + "left_line": 8976, + "right_line": 8971 + }, + { + "left_line": 8977, + "right_line": 8972 + }, + { + "left_line": 8978, + "right_line": 8973 + }, + { + "left_line": 8979, + "right_line": 8974 + }, + { + "left_line": 8980, + "right_line": 8975 + }, + { + "left_line": 8981, + "right_line": 8976 + }, + { + "left_line": 8982, + "right_line": 8977 + }, + { + "left_line": 8983, + "right_line": 8978 + }, + { + "left_line": 8984, + "right_line": 8979 + }, + { + "left_line": 8985, + "right_line": 8980 + }, + { + "left_line": 8986, + "right_line": 8981 + }, + { + "left_line": 8987, + "right_line": 8982 + }, + { + "left_line": 8988, + "right_line": 8983 + }, + { + "left_line": 8989, + "right_line": 8984 + }, + { + "left_line": 8990, + "right_line": 8985 + }, + { + "left_line": 8991, + "right_line": -1 + }, + { + "left_line": -1, + "right_line": 8986 + }, + { + "left_line": 8992, + "right_line": 8987 + }, + { + "left_line": 8993, + "right_line": 8988 + }, + { + "left_line": 8994, + "right_line": 8989 + }, + { + "left_line": 8995, + "right_line": 8990 + }, + { + "left_line": 8996, + "right_line": 8991 + }, + { + "left_line": 8997, + "right_line": 8992 + }, + { + "left_line": 8998, + "right_line": 8993 + }, + { + "left_line": 8999, + "right_line": 8994 + }, + { + "left_line": 9000, + "right_line": 8995 + }, + { + "left_line": 9001, + "right_line": 8996 + }, + { + "left_line": 9002, + "right_line": 8997 + }, + { + "left_line": 9003, + "right_line": 8998 + }, + { + "left_line": 9004, + "right_line": 8999 + }, + { + "left_line": 9005, + "right_line": 9000 + }, + { + "left_line": 9006, + "right_line": 9001 + }, + { + "left_line": 9007, + "right_line": 9002 + }, + { + "left_line": 9008, + "right_line": 9003 + }, + { + "left_line": 9009, + "right_line": 9004 + }, + { + "left_line": 9010, + "right_line": 9005 + }, + { + "left_line": 9011, + "right_line": 9006 + }, + { + "left_line": 9012, + "right_line": 9007 + }, + { + "left_line": 9013, + "right_line": 9008 + }, + { + "left_line": 9014, + "right_line": 9009 + }, + { + "left_line": 9015, + "right_line": 9010 + }, + { + "left_line": 9016, + "right_line": 9011 + }, + { + "left_line": 9017, + "right_line": 9012 + }, + { + "left_line": 9018, + "right_line": 9013 + }, + { + "left_line": 9019, + "right_line": 9014 + }, + { + "left_line": 9020, + "right_line": 9015 + }, + { + "left_line": 9021, + "right_line": 9016 + }, + { + "left_line": 9022, + "right_line": 9017 + }, + { + "left_line": 9023, + "right_line": 9018 + }, + { + "left_line": 9024, + "right_line": 9019 + }, + { + "left_line": 9025, + "right_line": 9020 + }, + { + "left_line": 9026, + "right_line": 9021 + }, + { + "left_line": 9027, + "right_line": 9022 + }, + { + "left_line": 9028, + "right_line": 9023 + }, + { + "left_line": 9029, + "right_line": 9024 + }, + { + "left_line": 9030, + "right_line": 9025 + }, + { + "left_line": 9031, + "right_line": 9026 + }, + { + "left_line": 9032, + "right_line": 9027 + }, + { + "left_line": 9033, + "right_line": 9028 + }, + { + "left_line": 9034, + "right_line": 9029 + }, + { + "left_line": 9035, + "right_line": 9030 + }, + { + "left_line": 9036, + "right_line": 9031 + }, + { + "left_line": 9037, + "right_line": 9032 + }, + { + "left_line": 9038, + "right_line": 9033 + }, + { + "left_line": 9039, + "right_line": 9034 + }, + { + "left_line": 9040, + "right_line": 9035 + }, + { + "left_line": 9041, + "right_line": 9036 + }, + { + "left_line": 9042, + "right_line": 9037 + }, + { + "left_line": 9043, + "right_line": 9038 + }, + { + "left_line": 9044, + "right_line": 9039 + }, + { + "left_line": 9045, + "right_line": 9040 + }, + { + "left_line": 9046, + "right_line": 9041 + }, + { + "left_line": 9047, + "right_line": 9042 + }, + { + "left_line": 9048, + "right_line": 9043 + }, + { + "left_line": 9049, + "right_line": 9044 + }, + { + "left_line": 9050, + "right_line": 9045 + }, + { + "left_line": 9051, + "right_line": 9046 + }, + { + "left_line": 9052, + "right_line": 9047 + }, + { + "left_line": 9053, + "right_line": 9048 + }, + { + "left_line": 9054, + "right_line": 9049 + }, + { + "left_line": 9055, + "right_line": 9050 + }, + { + "left_line": 9056, + "right_line": 9051 + }, + { + "left_line": 9057, + "right_line": 9052 + }, + { + "left_line": 9058, + "right_line": 9053 + }, + { + "left_line": 9059, + "right_line": 9054 + }, + { + "left_line": 9060, + "right_line": 9055 + }, + { + "left_line": 9061, + "right_line": 9056 + }, + { + "left_line": 9062, + "right_line": 9057 + }, + { + "left_line": 9063, + "right_line": 9058 + }, + { + "left_line": 9064, + "right_line": 9059 + }, + { + "left_line": 9065, + "right_line": 9060 + }, + { + "left_line": 9066, + "right_line": 9061 + }, + { + "left_line": 9067, + "right_line": 9062 + }, + { + "left_line": 9068, + "right_line": 9063 + }, + { + "left_line": 9069, + "right_line": 9064 + }, + { + "left_line": 9070, + "right_line": 9065 + }, + { + "left_line": 9071, + "right_line": 9066 + }, + { + "left_line": 9072, + "right_line": 9067 + }, + { + "left_line": 9073, + "right_line": 9068 + }, + { + "left_line": 9074, + "right_line": 9069 + }, + { + "left_line": 9075, + "right_line": 9070 + }, + { + "left_line": 9076, + "right_line": 9071 + }, + { + "left_line": 9077, + "right_line": 9072 + }, + { + "left_line": 9078, + "right_line": 9073 + }, + { + "left_line": 9079, + "right_line": 9074 + }, + { + "left_line": 9080, + "right_line": 9075 + }, + { + "left_line": 9081, + "right_line": 9076 + }, + { + "left_line": 9082, + "right_line": 9077 + }, + { + "left_line": 9083, + "right_line": 9078 + }, + { + "left_line": 9084, + "right_line": 9079 + }, + { + "left_line": 9085, + "right_line": 9080 + }, + { + "left_line": 9086, + "right_line": 9081 + }, + { + "left_line": 9087, + "right_line": 9082 + }, + { + "left_line": 9088, + "right_line": 9083 + }, + { + "left_line": 9089, + "right_line": 9084 + }, + { + "left_line": 9090, + "right_line": 9085 + }, + { + "left_line": 9091, + "right_line": 9086 + }, + { + "left_line": 9092, + "right_line": 9087 + }, + { + "left_line": 9093, + "right_line": 9088 + }, + { + "left_line": 9094, + "right_line": 9089 + }, + { + "left_line": 9095, + "right_line": 9090 + }, + { + "left_line": 9096, + "right_line": 9091 + }, + { + "left_line": 9097, + "right_line": 9092 + }, + { + "left_line": 9098, + "right_line": 9093 + }, + { + "left_line": 9099, + "right_line": 9094 + }, + { + "left_line": 9100, + "right_line": 9095 + }, + { + "left_line": 9101, + "right_line": 9096 + }, + { + "left_line": 9102, + "right_line": 9097 + }, + { + "left_line": 9103, + "right_line": 9098 + }, + { + "left_line": 9104, + "right_line": 9099 + }, + { + "left_line": 9105, + "right_line": 9100 + }, + { + "left_line": 9106, + "right_line": 9101 + }, + { + "left_line": 9107, + "right_line": 9102 + }, + { + "left_line": 9108, + "right_line": 9103 + }, + { + "left_line": 9109, + "right_line": 9104 + }, + { + "left_line": 9110, + "right_line": 9105 + }, + { + "left_line": 9111, + "right_line": 9106 + }, + { + "left_line": 9112, + "right_line": 9107 + }, + { + "left_line": 9113, + "right_line": 9108 + }, + { + "left_line": 9114, + "right_line": 9109 + }, + { + "left_line": 9115, + "right_line": 9110 + }, + { + "left_line": 9116, + "right_line": 9111 + }, + { + "left_line": 9117, + "right_line": 9112 + }, + { + "left_line": 9118, + "right_line": 9113 + }, + { + "left_line": 9119, + "right_line": 9114 + }, + { + "left_line": 9120, + "right_line": 9115 + }, + { + "left_line": 9121, + "right_line": 9116 + }, + { + "left_line": 9122, + "right_line": 9117 + }, + { + "left_line": 9123, + "right_line": 9118 + }, + { + "left_line": 9124, + "right_line": 9119 + }, + { + "left_line": 9125, + "right_line": 9120 + }, + { + "left_line": 9126, + "right_line": 9121 + }, + { + "left_line": 9127, + "right_line": 9122 + }, + { + "left_line": 9128, + "right_line": 9123 + }, + { + "left_line": 9129, + "right_line": 9124 + }, + { + "left_line": 9130, + "right_line": 9125 + }, + { + "left_line": 9131, + "right_line": 9126 + }, + { + "left_line": 9132, + "right_line": 9127 + }, + { + "left_line": 9133, + "right_line": 9128 + }, + { + "left_line": 9134, + "right_line": 9129 + }, + { + "left_line": 9135, + "right_line": 9130 + }, + { + "left_line": 9136, + "right_line": 9131 + }, + { + "left_line": 9137, + "right_line": 9132 + }, + { + "left_line": 9138, + "right_line": 9133 + }, + { + "left_line": 9139, + "right_line": 9134 + }, + { + "left_line": 9140, + "right_line": 9135 + }, + { + "left_line": 9141, + "right_line": 9136 + }, + { + "left_line": 9142, + "right_line": 9137 + }, + { + "left_line": 9143, + "right_line": 9138 + }, + { + "left_line": 9144, + "right_line": 9139 + }, + { + "left_line": 9145, + "right_line": 9140 + }, + { + "left_line": 9146, + "right_line": 9141 + }, + { + "left_line": 9147, + "right_line": 9142 + }, + { + "left_line": 9148, + "right_line": 9143 + }, + { + "left_line": 9149, + "right_line": 9144 + }, + { + "left_line": 9150, + "right_line": 9145 + }, + { + "left_line": 9151, + "right_line": 9146 + }, + { + "left_line": 9152, + "right_line": 9147 + }, + { + "left_line": 9153, + "right_line": 9148 + }, + { + "left_line": 9154, + "right_line": 9149 + }, + { + "left_line": 9155, + "right_line": 9150 + }, + { + "left_line": 9156, + "right_line": 9151 + }, + { + "left_line": 9157, + "right_line": 9152 + }, + { + "left_line": 9158, + "right_line": 9153 + }, + { + "left_line": 9159, + "right_line": 9154 + }, + { + "left_line": 9160, + "right_line": 9155 + }, + { + "left_line": 9161, + "right_line": 9156 + }, + { + "left_line": 9162, + "right_line": 9157 + }, + { + "left_line": 9163, + "right_line": 9158 + }, + { + "left_line": 9164, + "right_line": 9159 + }, + { + "left_line": 9165, + "right_line": 9160 + }, + { + "left_line": 9166, + "right_line": 9161 + }, + { + "left_line": 9167, + "right_line": 9162 + }, + { + "left_line": 9168, + "right_line": 9163 + }, + { + "left_line": 9169, + "right_line": 9164 + }, + { + "left_line": 9170, + "right_line": 9165 + }, + { + "left_line": 9171, + "right_line": 9166 + }, + { + "left_line": 9172, + "right_line": 9167 + }, + { + "left_line": 9173, + "right_line": 9168 + }, + { + "left_line": 9174, + "right_line": 9169 + }, + { + "left_line": 9175, + "right_line": 9170 + }, + { + "left_line": 9176, + "right_line": 9171 + }, + { + "left_line": 9177, + "right_line": 9172 + }, + { + "left_line": 9178, + "right_line": 9173 + }, + { + "left_line": 9179, + "right_line": 9174 + }, + { + "left_line": 9180, + "right_line": 9175 + }, + { + "left_line": 9181, + "right_line": 9176 + }, + { + "left_line": 9182, + "right_line": 9177 + }, + { + "left_line": 9183, + "right_line": 9178 + }, + { + "left_line": 9184, + "right_line": 9179 + }, + { + "left_line": 9185, + "right_line": 9180 + }, + { + "left_line": 9186, + "right_line": 9181 + }, + { + "left_line": 9187, + "right_line": 9182 + }, + { + "left_line": 9188, + "right_line": 9183 + }, + { + "left_line": 9189, + "right_line": 9184 + }, + { + "left_line": 9190, + "right_line": 9185 + }, + { + "left_line": 9191, + "right_line": 9186 + }, + { + "left_line": 9192, + "right_line": 9187 + }, + { + "left_line": 9193, + "right_line": 9188 + }, + { + "left_line": 9194, + "right_line": 9189 + }, + { + "left_line": 9195, + "right_line": 9190 + }, + { + "left_line": 9196, + "right_line": 9191 + }, + { + "left_line": 9197, + "right_line": 9192 + }, + { + "left_line": 9198, + "right_line": 9193 + }, + { + "left_line": 9199, + "right_line": 9194 + }, + { + "left_line": 9200, + "right_line": 9195 + }, + { + "left_line": 9201, + "right_line": 9196 + }, + { + "left_line": 9202, + "right_line": 9197 + }, + { + "left_line": 9203, + "right_line": 9198 + }, + { + "left_line": 9204, + "right_line": 9199 + }, + { + "left_line": 9205, + "right_line": 9200 + }, + { + "left_line": 9206, + "right_line": 9201 + }, + { + "left_line": 9207, + "right_line": 9202 + }, + { + "left_line": 9208, + "right_line": 9203 + }, + { + "left_line": 9209, + "right_line": 9204 + }, + { + "left_line": 9210, + "right_line": 9205 + }, + { + "left_line": 9211, + "right_line": 9206 + }, + { + "left_line": 9212, + "right_line": 9207 + }, + { + "left_line": 9213, + "right_line": 9208 + }, + { + "left_line": 9214, + "right_line": 9209 + }, + { + "left_line": 9215, + "right_line": 9210 + }, + { + "left_line": 9216, + "right_line": 9211 + }, + { + "left_line": 9217, + "right_line": 9212 + }, + { + "left_line": 9218, + "right_line": 9213 + }, + { + "left_line": 9219, + "right_line": 9214 + }, + { + "left_line": 9220, + "right_line": 9215 + }, + { + "left_line": 9221, + "right_line": 9216 + }, + { + "left_line": 9222, + "right_line": 9217 + }, + { + "left_line": 9223, + "right_line": 9218 + }, + { + "left_line": 9224, + "right_line": 9219 + }, + { + "left_line": 9225, + "right_line": 9220 + }, + { + "left_line": 9226, + "right_line": 9221 + }, + { + "left_line": 9227, + "right_line": 9222 + }, + { + "left_line": 9228, + "right_line": 9223 + }, + { + "left_line": 9229, + "right_line": 9224 + }, + { + "left_line": 9230, + "right_line": 9225 + }, + { + "left_line": 9231, + "right_line": 9226 + }, + { + "left_line": 9232, + "right_line": 9227 + }, + { + "left_line": 9233, + "right_line": 9228 + }, + { + "left_line": 9234, + "right_line": 9229 + }, + { + "left_line": 9235, + "right_line": 9230 + }, + { + "left_line": 9236, + "right_line": 9231 + }, + { + "left_line": 9237, + "right_line": 9232 + }, + { + "left_line": 9238, + "right_line": 9233 + }, + { + "left_line": 9239, + "right_line": 9234 + }, + { + "left_line": 9240, + "right_line": 9235 + }, + { + "left_line": 9241, + "right_line": 9236 + }, + { + "left_line": 9242, + "right_line": 9237 + }, + { + "left_line": 9243, + "right_line": 9238 + }, + { + "left_line": 9244, + "right_line": 9239 + }, + { + "left_line": 9245, + "right_line": 9240 + }, + { + "left_line": 9246, + "right_line": 9241 + }, + { + "left_line": 9247, + "right_line": 9242 + }, + { + "left_line": 9248, + "right_line": 9243 + }, + { + "left_line": 9249, + "right_line": 9244 + }, + { + "left_line": 9250, + "right_line": 9245 + }, + { + "left_line": 9251, + "right_line": 9246 + }, + { + "left_line": 9252, + "right_line": 9247 + }, + { + "left_line": 9253, + "right_line": 9248 + }, + { + "left_line": 9254, + "right_line": 9249 + }, + { + "left_line": 9255, + "right_line": 9250 + }, + { + "left_line": 9256, + "right_line": 9251 + }, + { + "left_line": 9257, + "right_line": 9252 + }, + { + "left_line": 9258, + "right_line": 9253 + }, + { + "left_line": 9259, + "right_line": 9254 + }, + { + "left_line": 9260, + "right_line": 9255 + }, + { + "left_line": 9261, + "right_line": 9256 + }, + { + "left_line": 9262, + "right_line": 9257 + }, + { + "left_line": 9263, + "right_line": 9258 + }, + { + "left_line": 9264, + "right_line": 9259 + }, + { + "left_line": 9265, + "right_line": 9260 + }, + { + "left_line": 9266, + "right_line": 9261 + }, + { + "left_line": 9267, + "right_line": 9262 + }, + { + "left_line": 9268, + "right_line": 9263 + }, + { + "left_line": 9269, + "right_line": 9264 + }, + { + "left_line": 9270, + "right_line": 9265 + }, + { + "left_line": 9271, + "right_line": 9266 + }, + { + "left_line": 9272, + "right_line": 9267 + }, + { + "left_line": 9273, + "right_line": 9268 + }, + { + "left_line": 9274, + "right_line": 9269 + }, + { + "left_line": 9275, + "right_line": 9270 + }, + { + "left_line": 9276, + "right_line": 9271 + }, + { + "left_line": 9277, + "right_line": 9272 + }, + { + "left_line": 9278, + "right_line": 9273 + }, + { + "left_line": 9279, + "right_line": 9274 + }, + { + "left_line": 9280, + "right_line": 9275 + }, + { + "left_line": 9281, + "right_line": 9276 + }, + { + "left_line": 9282, + "right_line": 9277 + }, + { + "left_line": 9283, + "right_line": 9278 + }, + { + "left_line": 9284, + "right_line": 9279 + }, + { + "left_line": 9285, + "right_line": 9280 + }, + { + "left_line": 9286, + "right_line": 9281 + }, + { + "left_line": 9287, + "right_line": 9282 + }, + { + "left_line": 9288, + "right_line": 9283 + }, + { + "left_line": 9289, + "right_line": 9284 + }, + { + "left_line": 9290, + "right_line": 9285 + }, + { + "left_line": 9291, + "right_line": 9286 + }, + { + "left_line": 9292, + "right_line": 9287 + }, + { + "left_line": 9293, + "right_line": 9288 + }, + { + "left_line": 9294, + "right_line": 9289 + }, + { + "left_line": 9295, + "right_line": 9290 + }, + { + "left_line": 9296, + "right_line": 9291 + }, + { + "left_line": 9297, + "right_line": 9292 + }, + { + "left_line": 9298, + "right_line": 9293 + }, + { + "left_line": 9299, + "right_line": 9294 + }, + { + "left_line": 9300, + "right_line": 9295 + }, + { + "left_line": 9301, + "right_line": 9296 + }, + { + "left_line": 9302, + "right_line": 9297 + }, + { + "left_line": 9303, + "right_line": 9298 + }, + { + "left_line": 9304, + "right_line": 9299 + }, + { + "left_line": 9305, + "right_line": 9300 + }, + { + "left_line": 9306, + "right_line": 9301 + }, + { + "left_line": 9307, + "right_line": 9302 + }, + { + "left_line": 9308, + "right_line": 9303 + }, + { + "left_line": 9309, + "right_line": 9304 + }, + { + "left_line": 9310, + "right_line": 9305 + }, + { + "left_line": 9311, + "right_line": 9306 + }, + { + "left_line": 9312, + "right_line": 9307 + }, + { + "left_line": 9313, + "right_line": 9308 + }, + { + "left_line": 9314, + "right_line": 9309 + }, + { + "left_line": 9315, + "right_line": 9310 + }, + { + "left_line": 9316, + "right_line": 9311 + }, + { + "left_line": 9317, + "right_line": 9312 + }, + { + "left_line": 9318, + "right_line": 9313 + }, + { + "left_line": 9319, + "right_line": 9314 + }, + { + "left_line": 9320, + "right_line": 9315 + }, + { + "left_line": 9321, + "right_line": 9316 + }, + { + "left_line": 9322, + "right_line": 9317 + }, + { + "left_line": 9323, + "right_line": 9318 + }, + { + "left_line": 9324, + "right_line": 9319 + }, + { + "left_line": 9325, + "right_line": 9320 + }, + { + "left_line": 9326, + "right_line": 9321 + }, + { + "left_line": 9327, + "right_line": 9322 + }, + { + "left_line": 9328, + "right_line": 9323 + }, + { + "left_line": 9329, + "right_line": 9324 + }, + { + "left_line": 9330, + "right_line": 9325 + }, + { + "left_line": 9331, + "right_line": 9326 + }, + { + "left_line": 9332, + "right_line": 9327 + }, + { + "left_line": 9333, + "right_line": 9328 + }, + { + "left_line": 9334, + "right_line": 9329 + }, + { + "left_line": 9335, + "right_line": 9330 + }, + { + "left_line": 9336, + "right_line": 9331 + }, + { + "left_line": 9337, + "right_line": 9332 + }, + { + "left_line": 9338, + "right_line": 9333 + }, + { + "left_line": 9339, + "right_line": 9334 + }, + { + "left_line": 9340, + "right_line": 9335 + }, + { + "left_line": 9341, + "right_line": 9336 + }, + { + "left_line": 9342, + "right_line": 9337 + }, + { + "left_line": 9343, + "right_line": 9338 + }, + { + "left_line": 9344, + "right_line": 9339 + }, + { + "left_line": 9345, + "right_line": 9340 + }, + { + "left_line": 9346, + "right_line": 9341 + }, + { + "left_line": 9347, + "right_line": 9342 + }, + { + "left_line": 9348, + "right_line": 9343 + }, + { + "left_line": 9349, + "right_line": 9344 + }, + { + "left_line": 9350, + "right_line": 9345 + }, + { + "left_line": 9351, + "right_line": 9346 + }, + { + "left_line": 9352, + "right_line": 9347 + }, + { + "left_line": 9353, + "right_line": 9348 + }, + { + "left_line": 9354, + "right_line": 9349 + }, + { + "left_line": 9355, + "right_line": 9350 + }, + { + "left_line": 9356, + "right_line": 9351 + }, + { + "left_line": 9357, + "right_line": 9352 + }, + { + "left_line": 9358, + "right_line": 9353 + }, + { + "left_line": 9359, + "right_line": 9354 + }, + { + "left_line": 9360, + "right_line": 9355 + }, + { + "left_line": 9361, + "right_line": 9356 + }, + { + "left_line": 9362, + "right_line": 9357 + }, + { + "left_line": 9363, + "right_line": 9358 + }, + { + "left_line": 9364, + "right_line": 9359 + }, + { + "left_line": 9365, + "right_line": 9360 + }, + { + "left_line": 9366, + "right_line": 9361 + }, + { + "left_line": 9367, + "right_line": 9362 + }, + { + "left_line": 9368, + "right_line": 9363 + }, + { + "left_line": 9369, + "right_line": 9364 + }, + { + "left_line": 9370, + "right_line": 9365 + }, + { + "left_line": 9371, + "right_line": 9366 + }, + { + "left_line": 9372, + "right_line": 9367 + }, + { + "left_line": 9373, + "right_line": 9368 + }, + { + "left_line": 9374, + "right_line": 9369 + }, + { + "left_line": 9375, + "right_line": 9370 + }, + { + "left_line": 9376, + "right_line": 9371 + }, + { + "left_line": 9377, + "right_line": 9372 + }, + { + "left_line": 9378, + "right_line": 9373 + }, + { + "left_line": 9379, + "right_line": 9374 + }, + { + "left_line": 9380, + "right_line": 9375 + }, + { + "left_line": 9381, + "right_line": 9376 + }, + { + "left_line": 9382, + "right_line": 9377 + }, + { + "left_line": 9383, + "right_line": 9378 + }, + { + "left_line": 9384, + "right_line": 9379 + }, + { + "left_line": 9385, + "right_line": 9380 + }, + { + "left_line": 9386, + "right_line": 9381 + }, + { + "left_line": 9387, + "right_line": 9382 + }, + { + "left_line": 9388, + "right_line": 9383 + }, + { + "left_line": 9389, + "right_line": 9384 + }, + { + "left_line": 9390, + "right_line": 9385 + }, + { + "left_line": 9391, + "right_line": 9386 + }, + { + "left_line": 9392, + "right_line": 9387 + }, + { + "left_line": 9393, + "right_line": 9388 + }, + { + "left_line": 9394, + "right_line": 9389 + }, + { + "left_line": 9395, + "right_line": 9390 + }, + { + "left_line": 9396, + "right_line": 9391 + }, + { + "left_line": 9397, + "right_line": 9392 + }, + { + "left_line": 9398, + "right_line": 9393 + }, + { + "left_line": 9399, + "right_line": 9394 + }, + { + "left_line": 9400, + "right_line": 9395 + }, + { + "left_line": 9401, + "right_line": 9396 + }, + { + "left_line": 9402, + "right_line": 9397 + }, + { + "left_line": 9403, + "right_line": 9398 + }, + { + "left_line": 9404, + "right_line": 9399 + }, + { + "left_line": 9405, + "right_line": 9400 + }, + { + "left_line": 9406, + "right_line": 9401 + }, + { + "left_line": 9407, + "right_line": 9402 + }, + { + "left_line": 9408, + "right_line": 9403 + }, + { + "left_line": 9409, + "right_line": 9404 + }, + { + "left_line": 9410, + "right_line": 9405 + }, + { + "left_line": 9411, + "right_line": 9406 + }, + { + "left_line": 9412, + "right_line": 9407 + }, + { + "left_line": 9413, + "right_line": 9408 + }, + { + "left_line": 9414, + "right_line": 9409 + }, + { + "left_line": 9415, + "right_line": 9410 + }, + { + "left_line": 9416, + "right_line": 9411 + }, + { + "left_line": 9417, + "right_line": 9412 + }, + { + "left_line": 9418, + "right_line": 9413 + }, + { + "left_line": 9419, + "right_line": 9414 + }, + { + "left_line": 9420, + "right_line": 9415 + }, + { + "left_line": 9421, + "right_line": 9416 + }, + { + "left_line": 9422, + "right_line": 9417 + }, + { + "left_line": 9423, + "right_line": 9418 + }, + { + "left_line": 9424, + "right_line": 9419 + }, + { + "left_line": 9425, + "right_line": 9420 + }, + { + "left_line": 9426, + "right_line": 9421 + }, + { + "left_line": 9427, + "right_line": 9422 + }, + { + "left_line": 9428, + "right_line": 9423 + }, + { + "left_line": 9429, + "right_line": 9424 + }, + { + "left_line": 9430, + "right_line": 9425 + }, + { + "left_line": 9431, + "right_line": 9426 + }, + { + "left_line": 9432, + "right_line": 9427 + }, + { + "left_line": 9433, + "right_line": 9428 + }, + { + "left_line": 9434, + "right_line": 9429 + }, + { + "left_line": 9435, + "right_line": 9430 + }, + { + "left_line": 9436, + "right_line": 9431 + }, + { + "left_line": 9437, + "right_line": 9432 + }, + { + "left_line": 9438, + "right_line": 9433 + }, + { + "left_line": 9439, + "right_line": 9434 + }, + { + "left_line": 9440, + "right_line": 9435 + }, + { + "left_line": 9441, + "right_line": 9436 + }, + { + "left_line": 9442, + "right_line": 9437 + }, + { + "left_line": 9443, + "right_line": 9438 + }, + { + "left_line": 9444, + "right_line": 9439 + }, + { + "left_line": 9445, + "right_line": 9440 + }, + { + "left_line": 9446, + "right_line": 9441 + }, + { + "left_line": 9447, + "right_line": 9442 + }, + { + "left_line": 9448, + "right_line": 9443 + }, + { + "left_line": 9449, + "right_line": 9444 + }, + { + "left_line": 9450, + "right_line": 9445 + }, + { + "left_line": 9451, + "right_line": 9446 + }, + { + "left_line": 9452, + "right_line": 9447 + }, + { + "left_line": 9453, + "right_line": 9448 + }, + { + "left_line": 9454, + "right_line": 9449 + }, + { + "left_line": 9455, + "right_line": 9450 + }, + { + "left_line": 9456, + "right_line": 9451 + }, + { + "left_line": 9457, + "right_line": 9452 + }, + { + "left_line": 9458, + "right_line": 9453 + }, + { + "left_line": 9459, + "right_line": 9454 + }, + { + "left_line": 9460, + "right_line": 9455 + }, + { + "left_line": 9461, + "right_line": 9456 + }, + { + "left_line": 9462, + "right_line": 9457 + }, + { + "left_line": 9463, + "right_line": 9458 + }, + { + "left_line": 9464, + "right_line": 9459 + }, + { + "left_line": 9465, + "right_line": 9460 + }, + { + "left_line": 9466, + "right_line": 9461 + }, + { + "left_line": 9467, + "right_line": 9462 + }, + { + "left_line": 9468, + "right_line": 9463 + }, + { + "left_line": 9469, + "right_line": 9464 + }, + { + "left_line": 9470, + "right_line": 9465 + }, + { + "left_line": 9471, + "right_line": 9466 + }, + { + "left_line": 9472, + "right_line": 9467 + }, + { + "left_line": 9473, + "right_line": 9468 + }, + { + "left_line": 9474, + "right_line": 9469 + }, + { + "left_line": 9475, + "right_line": 9470 + }, + { + "left_line": 9476, + "right_line": 9471 + }, + { + "left_line": 9477, + "right_line": 9472 + }, + { + "left_line": 9478, + "right_line": 9473 + }, + { + "left_line": 9479, + "right_line": 9474 + }, + { + "left_line": 9480, + "right_line": 9475 + }, + { + "left_line": 9481, + "right_line": 9476 + }, + { + "left_line": 9482, + "right_line": 9477 + }, + { + "left_line": 9483, + "right_line": 9478 + }, + { + "left_line": 9484, + "right_line": 9479 + }, + { + "left_line": 9485, + "right_line": 9480 + }, + { + "left_line": 9486, + "right_line": 9481 + }, + { + "left_line": 9487, + "right_line": 9482 + }, + { + "left_line": 9488, + "right_line": 9483 + }, + { + "left_line": 9489, + "right_line": 9484 + }, + { + "left_line": 9490, + "right_line": 9485 + }, + { + "left_line": 9491, + "right_line": 9486 + }, + { + "left_line": 9492, + "right_line": 9487 + }, + { + "left_line": 9493, + "right_line": 9488 + }, + { + "left_line": 9494, + "right_line": 9489 + }, + { + "left_line": 9495, + "right_line": 9490 + }, + { + "left_line": 9496, + "right_line": 9491 + }, + { + "left_line": 9497, + "right_line": 9492 + }, + { + "left_line": 9498, + "right_line": 9493 + }, + { + "left_line": 9499, + "right_line": 9494 + }, + { + "left_line": 9500, + "right_line": 9495 + }, + { + "left_line": 9501, + "right_line": 9496 + }, + { + "left_line": 9502, + "right_line": 9497 + }, + { + "left_line": 9503, + "right_line": 9498 + }, + { + "left_line": 9504, + "right_line": 9499 + }, + { + "left_line": 9505, + "right_line": 9500 + }, + { + "left_line": 9506, + "right_line": 9501 + }, + { + "left_line": 9507, + "right_line": 9502 + }, + { + "left_line": 9508, + "right_line": 9503 + }, + { + "left_line": 9509, + "right_line": 9504 + }, + { + "left_line": 9510, + "right_line": 9505 + }, + { + "left_line": 9511, + "right_line": 9506 + }, + { + "left_line": 9512, + "right_line": 9507 + }, + { + "left_line": 9513, + "right_line": 9508 + }, + { + "left_line": 9514, + "right_line": 9509 + }, + { + "left_line": 9515, + "right_line": 9510 + }, + { + "left_line": 9516, + "right_line": 9511 + }, + { + "left_line": 9517, + "right_line": 9512 + }, + { + "left_line": 9518, + "right_line": 9513 + }, + { + "left_line": 9519, + "right_line": 9514 + }, + { + "left_line": 9520, + "right_line": 9515 + }, + { + "left_line": 9521, + "right_line": 9516 + }, + { + "left_line": 9522, + "right_line": 9517 + }, + { + "left_line": 9523, + "right_line": 9518 + }, + { + "left_line": 9524, + "right_line": 9519 + }, + { + "left_line": 9525, + "right_line": 9520 + }, + { + "left_line": 9526, + "right_line": 9521 + }, + { + "left_line": 9527, + "right_line": 9522 + }, + { + "left_line": 9528, + "right_line": 9523 + }, + { + "left_line": 9529, + "right_line": 9524 + }, + { + "left_line": 9530, + "right_line": 9525 + }, + { + "left_line": 9531, + "right_line": 9526 + }, + { + "left_line": 9532, + "right_line": 9527 + }, + { + "left_line": 9533, + "right_line": 9528 + }, + { + "left_line": 9534, + "right_line": 9529 + }, + { + "left_line": 9535, + "right_line": 9530 + }, + { + "left_line": 9536, + "right_line": 9531 + }, + { + "left_line": 9537, + "right_line": 9532 + }, + { + "left_line": 9538, + "right_line": 9533 + }, + { + "left_line": 9539, + "right_line": 9534 + }, + { + "left_line": 9540, + "right_line": 9535 + }, + { + "left_line": 9541, + "right_line": 9536 + }, + { + "left_line": 9542, + "right_line": 9537 + }, + { + "left_line": 9543, + "right_line": 9538 + }, + { + "left_line": 9544, + "right_line": 9539 + }, + { + "left_line": 9545, + "right_line": 9540 + }, + { + "left_line": 9546, + "right_line": 9541 + }, + { + "left_line": 9547, + "right_line": 9542 + }, + { + "left_line": 9548, + "right_line": 9543 + }, + { + "left_line": 9549, + "right_line": 9544 + }, + { + "left_line": 9550, + "right_line": 9545 + }, + { + "left_line": 9551, + "right_line": 9546 + }, + { + "left_line": 9552, + "right_line": 9547 + }, + { + "left_line": 9553, + "right_line": 9548 + }, + { + "left_line": 9554, + "right_line": 9549 + }, + { + "left_line": 9555, + "right_line": 9550 + }, + { + "left_line": 9556, + "right_line": 9551 + }, + { + "left_line": 9557, + "right_line": 9552 + }, + { + "left_line": 9558, + "right_line": 9553 + }, + { + "left_line": 9559, + "right_line": 9554 + }, + { + "left_line": 9560, + "right_line": 9555 + }, + { + "left_line": 9561, + "right_line": 9556 + }, + { + "left_line": 9562, + "right_line": 9557 + }, + { + "left_line": 9563, + "right_line": 9558 + }, + { + "left_line": 9564, + "right_line": 9559 + }, + { + "left_line": 9565, + "right_line": 9560 + }, + { + "left_line": 9566, + "right_line": 9561 + }, + { + "left_line": 9567, + "right_line": 9562 + }, + { + "left_line": 9568, + "right_line": 9563 + }, + { + "left_line": 9569, + "right_line": 9564 + }, + { + "left_line": 9570, + "right_line": 9565 + }, + { + "left_line": 9571, + "right_line": 9566 + }, + { + "left_line": 9572, + "right_line": 9567 + }, + { + "left_line": 9573, + "right_line": 9568 + }, + { + "left_line": 9574, + "right_line": 9569 + }, + { + "left_line": 9575, + "right_line": 9570 + }, + { + "left_line": 9576, + "right_line": 9571 + }, + { + "left_line": 9577, + "right_line": 9572 + }, + { + "left_line": 9578, + "right_line": 9573 + }, + { + "left_line": 9579, + "right_line": 9574 + }, + { + "left_line": 9580, + "right_line": 9575 + }, + { + "left_line": 9581, + "right_line": 9576 + }, + { + "left_line": 9582, + "right_line": 9577 + }, + { + "left_line": 9583, + "right_line": 9578 + }, + { + "left_line": 9584, + "right_line": 9579 + }, + { + "left_line": 9585, + "right_line": 9580 + }, + { + "left_line": 9586, + "right_line": 9581 + }, + { + "left_line": 9587, + "right_line": 9582 + }, + { + "left_line": 9588, + "right_line": 9583 + }, + { + "left_line": 9589, + "right_line": 9584 + }, + { + "left_line": 9590, + "right_line": 9585 + }, + { + "left_line": 9591, + "right_line": 9586 + }, + { + "left_line": 9592, + "right_line": 9587 + }, + { + "left_line": 9593, + "right_line": 9588 + }, + { + "left_line": 9594, + "right_line": 9589 + }, + { + "left_line": 9595, + "right_line": 9590 + }, + { + "left_line": 9596, + "right_line": 9591 + }, + { + "left_line": 9597, + "right_line": 9592 + }, + { + "left_line": 9598, + "right_line": 9593 + }, + { + "left_line": 9599, + "right_line": 9594 + }, + { + "left_line": 9600, + "right_line": 9595 + }, + { + "left_line": 9601, + "right_line": 9596 + }, + { + "left_line": 9602, + "right_line": 9597 + }, + { + "left_line": 9603, + "right_line": 9598 + }, + { + "left_line": 9604, + "right_line": 9599 + }, + { + "left_line": 9605, + "right_line": 9600 + }, + { + "left_line": 9606, + "right_line": 9601 + }, + { + "left_line": 9607, + "right_line": 9602 + }, + { + "left_line": 9608, + "right_line": 9603 + }, + { + "left_line": 9609, + "right_line": 9604 + }, + { + "left_line": 9610, + "right_line": 9605 + }, + { + "left_line": 9611, + "right_line": 9606 + }, + { + "left_line": 9612, + "right_line": 9607 + }, + { + "left_line": 9613, + "right_line": 9608 + }, + { + "left_line": 9614, + "right_line": 9609 + }, + { + "left_line": 9615, + "right_line": 9610 + }, + { + "left_line": 9616, + "right_line": 9611 + }, + { + "left_line": 9617, + "right_line": 9612 + }, + { + "left_line": 9618, + "right_line": 9613 + }, + { + "left_line": 9619, + "right_line": 9614 + }, + { + "left_line": 9620, + "right_line": 9615 + }, + { + "left_line": 9621, + "right_line": 9616 + }, + { + "left_line": 9622, + "right_line": 9617 + }, + { + "left_line": 9623, + "right_line": 9618 + }, + { + "left_line": 9624, + "right_line": 9619 + }, + { + "left_line": 9625, + "right_line": 9620 + }, + { + "left_line": 9626, + "right_line": 9621 + }, + { + "left_line": 9627, + "right_line": 9622 + }, + { + "left_line": 9628, + "right_line": 9623 + }, + { + "left_line": 9629, + "right_line": 9624 + }, + { + "left_line": 9630, + "right_line": 9625 + }, + { + "left_line": 9631, + "right_line": 9626 + }, + { + "left_line": 9632, + "right_line": 9627 + }, + { + "left_line": 9633, + "right_line": 9628 + }, + { + "left_line": 9634, + "right_line": 9629 + }, + { + "left_line": 9635, + "right_line": 9630 + }, + { + "left_line": 9636, + "right_line": 9631 + }, + { + "left_line": 9637, + "right_line": 9632 + }, + { + "left_line": 9638, + "right_line": 9633 + }, + { + "left_line": 9639, + "right_line": 9634 + }, + { + "left_line": 9640, + "right_line": 9635 + }, + { + "left_line": 9641, + "right_line": 9636 + }, + { + "left_line": 9642, + "right_line": 9637 + }, + { + "left_line": 9643, + "right_line": 9638 + }, + { + "left_line": 9644, + "right_line": 9639 + }, + { + "left_line": 9645, + "right_line": 9640 + }, + { + "left_line": 9646, + "right_line": 9641 + }, + { + "left_line": 9647, + "right_line": 9642 + }, + { + "left_line": 9648, + "right_line": 9643 + }, + { + "left_line": 9649, + "right_line": 9644 + }, + { + "left_line": 9650, + "right_line": 9645 + }, + { + "left_line": 9651, + "right_line": 9646 + }, + { + "left_line": 9652, + "right_line": 9647 + }, + { + "left_line": 9653, + "right_line": 9648 + }, + { + "left_line": 9654, + "right_line": 9649 + }, + { + "left_line": 9655, + "right_line": 9650 + }, + { + "left_line": 9656, + "right_line": 9651 + }, + { + "left_line": 9657, + "right_line": 9652 + }, + { + "left_line": 9658, + "right_line": 9653 + }, + { + "left_line": 9659, + "right_line": 9654 + }, + { + "left_line": 9660, + "right_line": 9655 + }, + { + "left_line": 9661, + "right_line": 9656 + }, + { + "left_line": 9662, + "right_line": 9657 + }, + { + "left_line": 9663, + "right_line": 9658 + }, + { + "left_line": 9664, + "right_line": 9659 + }, + { + "left_line": 9665, + "right_line": 9660 + }, + { + "left_line": 9666, + "right_line": 9661 + }, + { + "left_line": 9667, + "right_line": 9662 + }, + { + "left_line": 9668, + "right_line": 9663 + }, + { + "left_line": 9669, + "right_line": 9664 + }, + { + "left_line": 9670, + "right_line": 9665 + }, + { + "left_line": 9671, + "right_line": 9666 + }, + { + "left_line": 9672, + "right_line": 9667 + }, + { + "left_line": 9673, + "right_line": 9668 + }, + { + "left_line": 9674, + "right_line": 9669 + }, + { + "left_line": 9675, + "right_line": 9670 + }, + { + "left_line": 9676, + "right_line": 9671 + }, + { + "left_line": 9677, + "right_line": 9672 + }, + { + "left_line": 9678, + "right_line": 9673 + }, + { + "left_line": 9679, + "right_line": 9674 + }, + { + "left_line": 9680, + "right_line": 9675 + }, + { + "left_line": 9681, + "right_line": 9676 + }, + { + "left_line": 9682, + "right_line": 9677 + }, + { + "left_line": 9683, + "right_line": 9678 + }, + { + "left_line": 9684, + "right_line": 9679 + }, + { + "left_line": 9685, + "right_line": 9680 + }, + { + "left_line": 9686, + "right_line": 9681 + }, + { + "left_line": 9687, + "right_line": 9682 + }, + { + "left_line": 9688, + "right_line": 9683 + }, + { + "left_line": 9689, + "right_line": 9684 + }, + { + "left_line": 9690, + "right_line": 9685 + }, + { + "left_line": 9691, + "right_line": 9686 + }, + { + "left_line": 9692, + "right_line": 9687 + }, + { + "left_line": 9693, + "right_line": 9688 + }, + { + "left_line": 9694, + "right_line": 9689 + }, + { + "left_line": 9695, + "right_line": 9690 + }, + { + "left_line": 9696, + "right_line": 9691 + }, + { + "left_line": 9697, + "right_line": 9692 + }, + { + "left_line": 9698, + "right_line": 9693 + }, + { + "left_line": 9699, + "right_line": 9694 + }, + { + "left_line": 9700, + "right_line": 9695 + }, + { + "left_line": 9701, + "right_line": 9696 + }, + { + "left_line": 9702, + "right_line": 9697 + }, + { + "left_line": 9703, + "right_line": 9698 + }, + { + "left_line": 9704, + "right_line": 9699 + }, + { + "left_line": 9705, + "right_line": 9700 + }, + { + "left_line": 9706, + "right_line": 9701 + }, + { + "left_line": 9707, + "right_line": 9702 + }, + { + "left_line": 9708, + "right_line": 9703 + }, + { + "left_line": 9709, + "right_line": 9704 + }, + { + "left_line": 9710, + "right_line": 9705 + }, + { + "left_line": 9711, + "right_line": 9706 + }, + { + "left_line": 9712, + "right_line": 9707 + }, + { + "left_line": 9713, + "right_line": 9708 + }, + { + "left_line": 9714, + "right_line": 9709 + }, + { + "left_line": 9715, + "right_line": 9710 + }, + { + "left_line": 9716, + "right_line": 9711 + }, + { + "left_line": 9717, + "right_line": 9712 + }, + { + "left_line": 9718, + "right_line": 9713 + }, + { + "left_line": 9719, + "right_line": 9714 + }, + { + "left_line": 9720, + "right_line": 9715 + }, + { + "left_line": 9721, + "right_line": 9716 + }, + { + "left_line": 9722, + "right_line": 9717 + }, + { + "left_line": 9723, + "right_line": 9718 + }, + { + "left_line": 9724, + "right_line": 9719 + }, + { + "left_line": 9725, + "right_line": 9720 + }, + { + "left_line": 9726, + "right_line": 9721 + }, + { + "left_line": 9727, + "right_line": 9722 + }, + { + "left_line": 9728, + "right_line": 9723 + }, + { + "left_line": 9729, + "right_line": 9724 + }, + { + "left_line": 9730, + "right_line": 9725 + }, + { + "left_line": 9731, + "right_line": 9726 + }, + { + "left_line": 9732, + "right_line": 9727 + }, + { + "left_line": 9733, + "right_line": 9728 + }, + { + "left_line": 9734, + "right_line": 9729 + }, + { + "left_line": 9735, + "right_line": 9730 + }, + { + "left_line": 9736, + "right_line": 9731 + }, + { + "left_line": 9737, + "right_line": 9732 + }, + { + "left_line": 9738, + "right_line": 9733 + }, + { + "left_line": 9739, + "right_line": 9734 + }, + { + "left_line": 9740, + "right_line": 9735 + }, + { + "left_line": 9741, + "right_line": 9736 + }, + { + "left_line": 9742, + "right_line": 9737 + }, + { + "left_line": 9743, + "right_line": 9738 + }, + { + "left_line": 9744, + "right_line": 9739 + }, + { + "left_line": 9745, + "right_line": 9740 + }, + { + "left_line": 9746, + "right_line": 9741 + }, + { + "left_line": 9747, + "right_line": 9742 + }, + { + "left_line": 9748, + "right_line": 9743 + }, + { + "left_line": 9749, + "right_line": 9744 + }, + { + "left_line": 9750, + "right_line": 9745 + }, + { + "left_line": 9751, + "right_line": 9746 + }, + { + "left_line": 9752, + "right_line": 9747 + }, + { + "left_line": 9753, + "right_line": 9748 + }, + { + "left_line": 9754, + "right_line": 9749 + }, + { + "left_line": 9755, + "right_line": 9750 + }, + { + "left_line": 9756, + "right_line": 9751 + }, + { + "left_line": 9757, + "right_line": 9752 + }, + { + "left_line": 9758, + "right_line": 9753 + }, + { + "left_line": 9759, + "right_line": 9754 + }, + { + "left_line": 9760, + "right_line": 9755 + }, + { + "left_line": 9761, + "right_line": 9756 + }, + { + "left_line": 9762, + "right_line": 9757 + }, + { + "left_line": 9763, + "right_line": 9758 + }, + { + "left_line": 9764, + "right_line": 9759 + }, + { + "left_line": 9765, + "right_line": 9760 + }, + { + "left_line": 9766, + "right_line": 9761 + }, + { + "left_line": 9767, + "right_line": 9762 + }, + { + "left_line": 9768, + "right_line": 9763 + }, + { + "left_line": 9769, + "right_line": 9764 + }, + { + "left_line": 9770, + "right_line": 9765 + }, + { + "left_line": 9771, + "right_line": 9766 + }, + { + "left_line": 9772, + "right_line": 9767 + }, + { + "left_line": 9773, + "right_line": 9768 + }, + { + "left_line": 9774, + "right_line": 9769 + }, + { + "left_line": 9775, + "right_line": 9770 + }, + { + "left_line": 9776, + "right_line": 9771 + }, + { + "left_line": 9777, + "right_line": 9772 + }, + { + "left_line": 9778, + "right_line": 9773 + }, + { + "left_line": 9779, + "right_line": 9774 + }, + { + "left_line": 9780, + "right_line": 9775 + }, + { + "left_line": 9781, + "right_line": 9776 + }, + { + "left_line": 9782, + "right_line": 9777 + }, + { + "left_line": 9783, + "right_line": 9778 + }, + { + "left_line": 9784, + "right_line": 9779 + }, + { + "left_line": 9785, + "right_line": 9780 + }, + { + "left_line": 9786, + "right_line": 9781 + }, + { + "left_line": 9787, + "right_line": 9782 + }, + { + "left_line": 9788, + "right_line": 9783 + }, + { + "left_line": 9789, + "right_line": 9784 + }, + { + "left_line": 9790, + "right_line": 9785 + }, + { + "left_line": 9791, + "right_line": 9786 + }, + { + "left_line": 9792, + "right_line": 9787 + }, + { + "left_line": 9793, + "right_line": 9788 + }, + { + "left_line": 9794, + "right_line": 9789 + }, + { + "left_line": 9795, + "right_line": 9790 + }, + { + "left_line": 9796, + "right_line": 9791 + }, + { + "left_line": 9797, + "right_line": 9792 + }, + { + "left_line": 9798, + "right_line": 9793 + }, + { + "left_line": 9799, + "right_line": 9794 + }, + { + "left_line": 9800, + "right_line": 9795 + }, + { + "left_line": 9801, + "right_line": 9796 + }, + { + "left_line": 9802, + "right_line": 9797 + }, + { + "left_line": 9803, + "right_line": 9798 + }, + { + "left_line": 9804, + "right_line": 9799 + }, + { + "left_line": 9805, + "right_line": 9800 + }, + { + "left_line": 9806, + "right_line": 9801 + }, + { + "left_line": 9807, + "right_line": 9802 + }, + { + "left_line": 9808, + "right_line": 9803 + }, + { + "left_line": 9809, + "right_line": 9804 + }, + { + "left_line": 9810, + "right_line": 9805 + }, + { + "left_line": 9811, + "right_line": 9806 + }, + { + "left_line": 9812, + "right_line": 9807 + }, + { + "left_line": 9813, + "right_line": 9808 + }, + { + "left_line": 9814, + "right_line": 9809 + }, + { + "left_line": 9815, + "right_line": 9810 + }, + { + "left_line": 9816, + "right_line": 9811 + }, + { + "left_line": 9817, + "right_line": 9812 + }, + { + "left_line": 9818, + "right_line": 9813 + }, + { + "left_line": 9819, + "right_line": 9814 + }, + { + "left_line": 9820, + "right_line": 9815 + }, + { + "left_line": 9821, + "right_line": 9816 + }, + { + "left_line": 9822, + "right_line": 9817 + }, + { + "left_line": 9823, + "right_line": 9818 + }, + { + "left_line": 9824, + "right_line": 9819 + }, + { + "left_line": 9825, + "right_line": 9820 + }, + { + "left_line": 9826, + "right_line": 9821 + }, + { + "left_line": 9827, + "right_line": 9822 + }, + { + "left_line": 9828, + "right_line": 9823 + }, + { + "left_line": 9829, + "right_line": 9824 + }, + { + "left_line": 9830, + "right_line": 9825 + }, + { + "left_line": 9831, + "right_line": 9826 + }, + { + "left_line": 9832, + "right_line": 9827 + }, + { + "left_line": 9833, + "right_line": 9828 + }, + { + "left_line": 9834, + "right_line": 9829 + }, + { + "left_line": 9835, + "right_line": 9830 + }, + { + "left_line": 9836, + "right_line": 9831 + }, + { + "left_line": 9837, + "right_line": 9832 + }, + { + "left_line": 9838, + "right_line": 9833 + }, + { + "left_line": 9839, + "right_line": 9834 + }, + { + "left_line": 9840, + "right_line": 9835 + }, + { + "left_line": 9841, + "right_line": 9836 + }, + { + "left_line": 9842, + "right_line": 9837 + }, + { + "left_line": 9843, + "right_line": 9838 + }, + { + "left_line": 9844, + "right_line": 9839 + }, + { + "left_line": 9845, + "right_line": 9840 + }, + { + "left_line": 9846, + "right_line": 9841 + }, + { + "left_line": 9847, + "right_line": 9842 + }, + { + "left_line": 9848, + "right_line": 9843 + }, + { + "left_line": 9849, + "right_line": 9844 + }, + { + "left_line": 9850, + "right_line": 9845 + }, + { + "left_line": 9851, + "right_line": 9846 + }, + { + "left_line": 9852, + "right_line": 9847 + }, + { + "left_line": 9853, + "right_line": 9848 + }, + { + "left_line": 9854, + "right_line": 9849 + }, + { + "left_line": 9855, + "right_line": 9850 + }, + { + "left_line": 9856, + "right_line": 9851 + }, + { + "left_line": 9857, + "right_line": 9852 + }, + { + "left_line": 9858, + "right_line": 9853 + }, + { + "left_line": 9859, + "right_line": 9854 + }, + { + "left_line": 9860, + "right_line": 9855 + }, + { + "left_line": 9861, + "right_line": 9856 + }, + { + "left_line": 9862, + "right_line": 9857 + }, + { + "left_line": 9863, + "right_line": 9858 + }, + { + "left_line": 9864, + "right_line": 9859 + }, + { + "left_line": 9865, + "right_line": 9860 + }, + { + "left_line": 9866, + "right_line": 9861 + }, + { + "left_line": 9867, + "right_line": 9862 + }, + { + "left_line": 9868, + "right_line": 9863 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_catalog_add_schema/metadata.json b/tests/testdata/json_schemastore_catalog_add_schema/metadata.json new file mode 100644 index 0000000..00ddb42 --- /dev/null +++ b/tests/testdata/json_schemastore_catalog_add_schema/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "e775b812562d4deea2899d1dea94595f9b029fca", + "description": "Add schema mapping to catalog", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_catalog_add_schema/new.json b/tests/testdata/json_schemastore_catalog_add_schema/new.json new file mode 100644 index 0000000..37ca7e7 --- /dev/null +++ b/tests/testdata/json_schemastore_catalog_add_schema/new.json @@ -0,0 +1,9863 @@ +{ + "$schema": "https://www.schemastore.org/schema-catalog.json", + "version": 1, + "schemas": [ + { + "name": "revola.json", + "description": "Configuration file for Revola", + "fileMatch": [ + ".revola.json", + ".revola.config.json", + "revola.json", + "revola.config.json" + ], + "url": "https://www.schemastore.org/revola.json" + }, + { + "name": "Hashgraph Online Skill Manifest", + "description": "Manifest for Hashgraph Online Registry Broker skill packages", + "fileMatch": [ + "**/.hol/skill.json", + "**/hol/skill.json", + "hol-skill.json" + ], + "url": "https://raw.githubusercontent.com/hashgraph-online/skill-publish/main/schemas/skill.schema.json" + }, + { + "name": "release-hub.json", + "description": "Configuration file for Release Hub", + "fileMatch": [ + ".release-hub.json", + ".release-hub.config.json", + "release-hub.json", + "release-hub.config.json" + ], + "url": "https://raw.githubusercontent.com/teneplaysofficial/release-hub/main/schema/release-hub.schema.json" + }, + { + "name": "ReleaseKit", + "description": "Configuration for ReleaseKit release automation", + "fileMatch": ["releasekit.config.json"], + "url": "https://goosewobbler.github.io/releasekit/schema.json" + }, + { + "name": "Releasaurus Config", + "description": "Configuration file for Releasaurus", + "fileMatch": ["releasaurus.toml"], + "url": "https://raw.githubusercontent.com/robgonnella/releasaurus/refs/heads/main/schema/schema.json" + }, + { + "name": "Bacon config", + "description": "Bacon configuration file", + "fileMatch": ["bacon.toml", "**/bacon/prefs.toml"], + "url": "https://dystroy.org/bacon/.bacon.schema.json" + }, + { + "name": "Upsun config", + "description": "Upsun configuration file", + "fileMatch": ["**/.upsun/config.yml", "**/.upsun/config.yaml"], + "url": "https://meta.upsun.com/schema/upsun" + }, + { + "name": "Platform.sh application", + "description": "Platform.sh application configuration file", + "fileMatch": [ + ".platform.app.yml", + ".platform.app.yaml", + "**/.platform.app.yml" + ], + "url": "https://raw.githubusercontent.com/platformsh/platformify/refs/heads/main/validator/schema/platformsh.application.json" + }, + { + "name": "Platform.sh routes", + "description": "Platform.sh routes configuration file", + "fileMatch": ["**/.platform/routes.yml", "**/.platform/routes.yaml"], + "url": "https://raw.githubusercontent.com/platformsh/platformify/refs/heads/main/validator/schema/platformsh.routes.json" + }, + { + "name": "Platform.sh services", + "description": "Platform.sh services configuration file", + "fileMatch": ["**/.platform/services.yml", "**/.platform/services.yaml"], + "url": "https://raw.githubusercontent.com/platformsh/platformify/refs/heads/main/validator/schema/platformsh.services.json" + }, + { + "name": "1Password SSH Agent Config", + "description": "Configuration file for the 1Password SSH agent", + "fileMatch": ["**/1password/ssh/agent.toml"], + "url": "https://developer.1password.com/schema/ssh-agent-config.json" + }, + { + "name": "Application Accelerator", + "description": "Application Accelerator for VMware Tanzu", + "fileMatch": ["accelerator.yaml"], + "url": "https://www.schemastore.org/accelerator.json" + }, + { + "name": "amplify.yml", + "description": "AWS Amplify Console build settings file", + "fileMatch": ["amplify.yml", "amplify.yaml"], + "url": "https://www.schemastore.org/amplify.json" + }, + { + "name": "Applicant Profile Protocol", + "description": "Structured JSON format for professional profiles, resumes, and CVs with skills, experience, education, and certifications", + "fileMatch": ["*.app.json"], + "url": "https://app-protocol.org/schema/app-1.0.json" + }, + { + "name": "gRPC API Gateway & OpenAPI Config", + "description": "Config file for gRPC API Gateway & OpenAPI v3.1 generation", + "fileMatch": [ + "grpc_api_gateway.yaml", + "grpc_api_gateway.yml", + "grpc_api_gateway.json", + "*_gateway.yml", + "*_gateway.yaml", + "*_gateway.json", + "*_openapi.yml", + "*_openapi.yaml", + "*_openapi.json" + ], + "url": "https://www.schemastore.org/grpc-api-gateway.json" + }, + { + "name": ".NET Aspire 8.0 Manifest", + "description": "Manifest generated by .NET Aspire AppHosts to support deployment automation", + "fileMatch": ["aspire-manifest.json"], + "url": "https://www.schemastore.org/aspire-8.0.json", + "versions": { + "8.0": "https://www.schemastore.org/aspire-8.0.json" + } + }, + { + "name": "AnyWork Automation Configuration", + "description": "AnyWork Automation Configuration used to configure automation scripts on AnyWork", + "fileMatch": [".awc.yaml", ".awc.yml", ".awc.json", ".awc.jsonc", ".awc"], + "url": "https://www.schemastore.org/anywork-ac-1.1.json", + "versions": { + "1.0": "https://www.schemastore.org/anywork-ac-1.0.json" + } + }, + { + "name": "@factorial/drupal-breakpoints-css", + "description": "@factorial/drupal-breakpoints-css config file", + "fileMatch": ["breakpoints.config.yml"], + "url": "https://www.schemastore.org/factorial-drupal-breakpoints-css-0.2.0.json" + }, + { + "name": ".adonisrc.json", + "description": "AdonisJS configuration file", + "fileMatch": [".adonisrc.json"], + "url": "https://raw.githubusercontent.com/adonisjs/application/master/adonisrc.schema.json" + }, + { + "name": "aerleon.yml", + "description": "Aerleon configuration file", + "fileMatch": ["aerleon.yml"], + "url": "https://raw.githubusercontent.com/aerleon/aerleon/main/schemas/aerleon-config.schema.json" + }, + { + "name": "Aerleon Network & Service Definitions", + "description": "Aerleon network & service definition file", + "fileMatch": ["**/def/**/*.yaml"], + "url": "https://raw.githubusercontent.com/aerleon/aerleon/main/schemas/aerleon-definitions.schema.json" + }, + { + "name": "Aerleon Policy", + "description": "Aerleon policy file", + "fileMatch": ["**/policies/**/*.yaml"], + "url": "https://raw.githubusercontent.com/aerleon/aerleon/main/schemas/aerleon-policies.schema.json" + }, + { + "name": ".agripparc.json", + "description": "the Agrippa config file", + "fileMatch": [".agripparc.json", "agripparc.json"], + "url": "https://www.schemastore.org/agripparc-1.4.json", + "versions": { + "1.2": "https://www.schemastore.org/agripparc-1.2.json", + "1.3": "https://www.schemastore.org/agripparc-1.3.json", + "1.4": "https://www.schemastore.org/agripparc-1.4.json" + } + }, + { + "name": "Air", + "description": "R formatter and language server", + "fileMatch": ["air.toml", ".air.toml"], + "url": "https://github.com/posit-dev/air/releases/latest/download/air.schema.json" + }, + { + "name": ".aiproj.json", + "description": "Settings for project analysis by the Application Inspector", + "fileMatch": [".aiproj.json"], + "url": "https://www.schemastore.org/aiproj-1.9.json", + "versions": { + "1.0": "https://www.schemastore.org/aiproj-1.0.json", + "1.1": "https://www.schemastore.org/aiproj-1.1.json", + "1.2": "https://www.schemastore.org/aiproj-1.2.json", + "1.3": "https://www.schemastore.org/aiproj-1.3.json", + "1.4": "https://www.schemastore.org/aiproj-1.4.json", + "1.5": "https://www.schemastore.org/aiproj-1.5.json", + "1.6": "https://www.schemastore.org/aiproj-1.6.json", + "1.7": "https://www.schemastore.org/aiproj-1.7.json", + "1.8": "https://www.schemastore.org/aiproj-1.8.json", + "1.9": "https://www.schemastore.org/aiproj-1.9.json" + } + }, + { + "name": "ABCInventoryModuleData", + "description": "ABCInventoryModuleData defining the structure of ABCInventoryModuleData including Principal Data, inventory, and transaction data in ABC-Plan's Inventory Management Module", + "fileMatch": ["abc-inventory-module-data-*.json"], + "url": "https://www.schemastore.org/abc-inventory-module-data-5.2.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/abc-inventory-module-data-1.0.0.json", + "2.0.0": "https://www.schemastore.org/abc-inventory-module-data-2.0.0.json", + "3.0.0": "https://www.schemastore.org/abc-inventory-module-data-3.0.0.json", + "4.0.0": "https://www.schemastore.org/abc-inventory-module-data-4.0.0.json", + "5.1.0": "https://www.schemastore.org/abc-inventory-module-data-5.1.0.json", + "5.2.0": "https://www.schemastore.org/abc-inventory-module-data-5.2.0.json" + } + }, + { + "name": "ABCClinicalDemandForecast", + "description": "ABCClinicalDemandForecast defining the structure of clinical trial demand forecasting data in ABC-Plan", + "fileMatch": ["abc-clinical-demand-forecast-*.json"], + "url": "https://www.schemastore.org/abc-clinical-demand-forecast-4.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-1.0.0.json", + "2.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-2.0.0.json", + "3.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-3.0.0.json", + "4.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-4.0.0.json" + } + }, + { + "name": "ABCSupplyPlan", + "description": "ABCSupplyPlan representing all the state for performing inventory optimization and expiry analysis in ABC-Plan MasterPlanner", + "fileMatch": ["abc-supply-plan-*.json"], + "url": "https://www.schemastore.org/abc-supply-plan-13.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/abc-supply-plan-1.0.0.json", + "2.0.0": "https://www.schemastore.org/abc-supply-plan-2.0.0.json", + "3.0.0": "https://www.schemastore.org/abc-supply-plan-3.0.0.json", + "4.0.0": "https://www.schemastore.org/abc-supply-plan-4.0.0.json", + "5.0.0": "https://www.schemastore.org/abc-supply-plan-5.0.0.json", + "6.0.0": "https://www.schemastore.org/abc-supply-plan-6.0.0.json", + "7.0.0": "https://www.schemastore.org/abc-supply-plan-7.0.0.json", + "8.0.0": "https://www.schemastore.org/abc-supply-plan-8.0.0.json", + "9.0.0": "https://www.schemastore.org/abc-supply-plan-9.0.0.json", + "10.0.0": "https://www.schemastore.org/abc-supply-plan-10.0.0.json", + "10.1.0": "https://www.schemastore.org/abc-supply-plan-10.1.0.json", + "11.0.0": "https://www.schemastore.org/abc-supply-plan-11.0.0.json", + "11.1.0": "https://www.schemastore.org/abc-supply-plan-11.1.0.json", + "11.2.0": "https://www.schemastore.org/abc-supply-plan-11.2.0.json", + "11.3.0": "https://www.schemastore.org/abc-supply-plan-11.3.0.json", + "11.4.0": "https://www.schemastore.org/abc-supply-plan-11.4.0.json", + "12.0.0": "https://www.schemastore.org/abc-supply-plan-12.0.0.json", + "13.0.0": "https://www.schemastore.org/abc-supply-plan-13.0.0.json" + } + }, + { + "name": "ACP Attempts", + "description": "AI Context Protocol debug session tracking file", + "fileMatch": ["**/.acp/acp.attempts.json", "acp.attempts.json"], + "url": "https://acp-protocol.dev/schemas/v1/attempts.schema.json" + }, + { + "name": "ACP Cache File", + "description": "AI Context Protocol cache file format for storing indexed codebase metadata", + "fileMatch": [".acp.cache.json"], + "url": "https://acp-protocol.dev/schemas/v1/cache.schema.json" + }, + { + "name": "ACP Configuration File", + "description": "AI Context Protocol configuration file for project-level settings", + "fileMatch": [".acp.config.json"], + "url": "https://acp-protocol.dev/schemas/v1/config.schema.json" + }, + { + "name": "ACP Primer", + "description": "AI Context Protocol primer definition for AI context bootstrapping", + "fileMatch": ["primer.json", "*.primer.json", "primer.defaults.json"], + "url": "https://acp-protocol.dev/schemas/v1/primer.schema.json" + }, + { + "name": "ACP Sync", + "description": "AI Context Protocol tool synchronization configuration", + "fileMatch": ["**/.acp/acp.sync.json", "acp.sync.json"], + "url": "https://acp-protocol.dev/schemas/v1/sync.schema.json" + }, + { + "name": "ACP Variables File", + "description": "AI Context Protocol variables file for reusable context variables", + "fileMatch": [".acp.vars.json"], + "url": "https://acp-protocol.dev/schemas/v1/vars.schema.json" + }, + { + "name": "AIConfig", + "description": "AIConfig that is used to store generative AI prompts, models and model parameters", + "fileMatch": [ + "aiconfig.json", + "aiconfig.jsonc", + "*.aiconfig.json", + "*.aiconfig.jsonc", + "aiconfig.yml", + "aiconfig.yaml", + "*.aiconfig.yml", + "*.aiconfig.yaml" + ], + "url": "https://www.schemastore.org/aiconfig-1.0.json" + }, + { + "name": "Airlock Microgateway", + "description": "Airlock Microgateway configuration", + "fileMatch": [ + "microgateway-config.yaml", + "microgateway-config.yml", + "airlock-microgateway-config.yaml", + "airlock-microgateway-config.yml" + ], + "url": "https://www.schemastore.org/airlock-microgateway-3.2.json", + "versions": { + "3.0": "https://www.schemastore.org/airlock-microgateway-3.0.json", + "3.1": "https://www.schemastore.org/airlock-microgateway-3.1.json", + "3.2": "https://www.schemastore.org/airlock-microgateway-3.2.json" + } + }, + { + "name": "angular.json", + "description": "Angular configuration file", + "fileMatch": ["angular.json"], + "url": "https://raw.githubusercontent.com/angular/angular-cli/master/packages/angular/cli/lib/config/workspace-schema.json" + }, + { + "name": ".angular-cli.json", + "description": "Angular CLI configuration file", + "fileMatch": [".angular-cli.json", "angular-cli.json"], + "url": "https://raw.githubusercontent.com/angular/angular-cli/v10.1.6/packages/angular/cli/lib/config/schema.json" + }, + { + "name": "apple-app-site-association", + "description": "Apple Universal Link, App Site Association", + "fileMatch": ["apple-app-site-association"], + "url": "https://www.schemastore.org/apple-app-site-association.json" + }, + { + "name": "App config Spotify Backstage", + "description": "Spotify's Backstage App configuration for all plugins", + "fileMatch": [ + "app-config.yml", + "app-config.yaml", + "app-config.local.yaml", + "app-config.local.yml", + "app-config.production.yaml", + "app-config.production.yml" + ], + "url": "https://www.schemastore.org/app-config.json" + }, + { + "name": "app-definition.yaml", + "description": "Appsemble app definition", + "fileMatch": ["app-definition.yaml"], + "url": "https://appsemble.app/api.json#/components/schemas/AppDefinition" + }, + { + "name": ".appsemblerc.yaml", + "description": "Appsemble RC file", + "fileMatch": [".appsemblerc.yaml"], + "url": "https://gitlab.com/appsemble/appsemble/-/raw/HEAD/packages/cli/assets/appsemblerc.schema.json" + }, + { + "name": "appsscript.json", + "description": "Google Apps Script manifest file", + "fileMatch": ["appsscript.json"], + "url": "https://www.schemastore.org/appsscript.json" + }, + { + "name": "appsettings.json", + "description": "ASP.NET Core's configuration file", + "fileMatch": ["appsettings.json", "appsettings.*.json"], + "url": "https://www.schemastore.org/appsettings.json" + }, + { + "name": "appveyor.yml", + "description": "AppVeyor CI configuration file", + "fileMatch": ["appveyor.yml"], + "url": "https://www.schemastore.org/appveyor.json" + }, + { + "name": "appsettings.StormPetrel.json", + "description": "Scand.StormPetrel.Generator NuGet package appsettings.StormPetrel.json file", + "fileMatch": ["appsettings.StormPetrel.json"], + "url": "https://raw.githubusercontent.com/Scandltd/storm-petrel/main/generator/assets/appsettings.StormPetrel.Schema.json" + }, + { + "name": "aqua.yaml", + "description": "aqua configuration file", + "fileMatch": [".aqua.yaml", ".aqua.yml", "aqua.yaml", "aqua.yml"], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-yaml.json" + }, + { + "name": "aqua-generate-registry.yaml", + "description": "aqua generate registry configuration file", + "fileMatch": ["aqua-generate-registry.yaml"], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-generate-registry.json" + }, + { + "name": "aqua-policy.yaml", + "description": "aqua policy configuration file", + "fileMatch": [".aqua-policy.yaml", "aqua-policy.yaml"], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/policy.json" + }, + { + "name": "registry.yaml", + "description": "aqua registry configuration file", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/registry.json" + }, + { + "name": "arazzo.json", + "description": "An OpenAPI Arazzo document", + "fileMatch": ["arazzo.json", "arazzo.yml", "arazzo.yaml"], + "url": "https://www.schemastore.org/openapi-arazzo-1.X.json" + }, + { + "name": "arb.json", + "description": "Application Resource Bundle", + "fileMatch": ["arb.json"], + "url": "https://raw.githubusercontent.com/google/app-resource-bundle/main/schema/arb.json" + }, + { + "name": "architect.yml", + "description": "Architect.io Component", + "fileMatch": [ + "architect.yml", + "architect.yaml", + "*.architect.yml", + "*.architect.yaml" + ], + "url": "https://raw.githubusercontent.com/architect-team/architect-cli/main/src/dependency-manager/schema/architect.schema.json" + }, + { + "name": "arc.json", + "description": "A OpenJS Architect", + "fileMatch": ["arc.json", "arc.yml", "arc.yaml"], + "url": "https://raw.githubusercontent.com/architect/parser/v2.3.0/arc-schema.json" + }, + { + "name": "Argo CD", + "description": "Argo CD base resources", + "url": "https://raw.githubusercontent.com/argoproj/argo-schema-generator/main/schema/argo_cd_kustomize_schema.json" + }, + { + "name": "Argo Events", + "description": "Argo Events Event Sources and Sensors", + "url": "https://raw.githubusercontent.com/argoproj/argo-events/master/api/jsonschema/schema.json" + }, + { + "name": "Argo Workflows", + "description": "Argo Workflow configuration file", + "url": "https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json" + }, + { + "name": "artifacthub-repo.yml", + "description": "Artifact Hub repository metadata file", + "fileMatch": ["artifacthub-repo.yml"], + "url": "https://www.schemastore.org/artifacthub-repo.json" + }, + { + "name": "asm-lsp", + "description": "Configuration file for asm-lsp", + "fileMatch": [".asm-lsp.toml", "asm-lsp.toml"], + "url": "https://raw.githubusercontent.com/bergercookie/asm-lsp/master/asm-lsp_config_schema.json" + }, + { + "name": "AssemblyScript", + "description": "AssemblyScript is TypeScript-like language that is compiled to WebAssembly (wasm)", + "fileMatch": ["asconfig.json"], + "url": "https://www.schemastore.org/asconfig-schema.json" + }, + { + "name": "ast-grep sgconfig.yml", + "description": "ast-grep project config", + "fileMatch": ["sgconfig.yml", "sgconfig.yaml"], + "url": "https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/project.json" + }, + { + "name": "ast-grep rules", + "description": "ast-grep rule config", + "fileMatch": [ + "**/.astgrep/rules/**/*.yaml", + "**/.astgrep/rules/**/*.yml", + "**/.ast-grep/rules/**/*.yaml", + "**/.ast-grep/rules/**/*.yml", + "**/ast-grep/rules/**/*.yaml", + "**/ast-grep/rules/**/*.yml", + "**/astgrep/rules/**/*.yaml", + "**/astgrep/rules/**/*.yml" + ], + "url": "https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json" + }, + { + "name": "AsyncAPI", + "description": "AsyncAPI documentation files", + "fileMatch": ["*asyncapi*.json", "*asyncapi*.yml", "*asyncapi*.yaml"], + "url": "https://www.asyncapi.com/schema-store/all.schema-store.json" + }, + { + "name": "AsyncAPI Tool File", + "description": "A validating AsyncAPI tool files", + "fileMatch": [".asyncapi-tool"], + "url": "https://raw.githubusercontent.com/asyncapi/website/master/scripts/tools/tools-schema.json" + }, + { + "name": "Atmos Manifests", + "description": "Atmos Stack Manifests. Documentation: https://atmos.tools", + "fileMatch": [], + "url": "https://atmos.tools/schemas/atmos/atmos-manifest/1.0/atmos-manifest.json" + }, + { + "name": "Aurora Agile Meta-Framework", + "description": "Yaml for Aurora Agile Meta-Framework", + "fileMatch": ["*.aurora.yaml", "*.aurora.yml"], + "url": "https://www.schemastore.org/aurora-1.3.json", + "versions": { + "1.0": "https://www.schemastore.org/aurora-1.0.json", + "1.1": "https://www.schemastore.org/aurora-1.1.json", + "1.2": "https://www.schemastore.org/aurora-1.2.json", + "1.3": "https://www.schemastore.org/aurora-1.3.json" + } + }, + { + "name": "Avro Avsc", + "description": "Avro Avsc file", + "fileMatch": ["*.avsc"], + "url": "https://www.schemastore.org/avro-avsc.json" + }, + { + "name": "Awesome Repositories", + "description": "Configuration for awesome repository catalogs with categories", + "fileMatch": [ + "awesome-repositories.json", + "awesome-repositories.yaml", + "awesome-repositories.yml" + ], + "url": "https://raw.githubusercontent.com/abordage/schemas/main/schemas/awesome-repositories/awesome-repositories.schema.json" + }, + { + "name": "AWS AppConfig Feature Flags-v1", + "description": "AWS CDK AppConfig Feature Flags", + "fileMatch": ["*.appConfig.featureFlags.json"], + "url": "https://www.schemastore.org/aws-cdk-appconfig-featureflags-1.0.0.json" + }, + { + "name": "azure.yaml", + "description": "Azure Developer CLI (azd) configuration file", + "fileMatch": ["azure.yaml", "azure.yml"], + "url": "https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json", + "versions": { + "alpha": "https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/alpha/azure.yaml.json", + "1.0": "https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json" + } + }, + { + "name": "Azure Container App template for defining an immutable revision", + "description": "Azure Container App template for defining an immutable revision", + "fileMatch": ["*.containerapp-template.json"], + "url": "https://www.schemastore.org/azure-containerapp-template.json" + }, + { + "name": "Azure Device Update for IoT Hub import manifest", + "description": "Azure Device Update for IoT Hub import manifest", + "fileMatch": ["*.importmanifest.json"], + "url": "https://www.schemastore.org/azure-deviceupdate-import-manifest-5.0.json", + "versions": { + "4.0": "https://www.schemastore.org/azure-deviceupdate-import-manifest-4.0.json", + "5.0": "https://www.schemastore.org/azure-deviceupdate-import-manifest-5.0.json" + } + }, + { + "name": "Azure Device Update for IoT Hub update manifest", + "description": "Azure Device Update for IoT Hub update manifest", + "fileMatch": ["*.updatemanifest.json"], + "url": "https://www.schemastore.org/azure-deviceupdate-update-manifest-5.json", + "versions": { + "4": "https://www.schemastore.org/azure-deviceupdate-update-manifest-4.json", + "5": "https://www.schemastore.org/azure-deviceupdate-update-manifest-5.json" + } + }, + { + "name": "Azure DevOps extension manifest", + "description": "Azure DevOps extension manifest", + "url": "https://www.schemastore.org/azure-devops-extension-manifest-1.0.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-devops-extension-manifest-1.0.json" + } + }, + { + "name": "Azure IoT EdgeAgent deployment", + "description": "Azure IoT EdgeAgent deployment", + "url": "https://www.schemastore.org/azure-iot-edgeagent-deployment-1.1.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edgeagent-deployment-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edgeagent-deployment-1.1.json" + } + }, + { + "name": "Azure IoT EdgeHub deployment", + "description": "Azure IoT EdgeHub deployment", + "url": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.2.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.1.json", + "1.2": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.2.json" + } + }, + { + "name": "Azure IoT Edge deployment", + "description": "Azure IoT Edge deployment", + "url": "https://www.schemastore.org/azure-iot-edge-deployment-2.0.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edge-deployment-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edge-deployment-2.0.json" + } + }, + { + "name": "Azure IoT Edge deployment template", + "description": "Azure IoT Edge deployment template", + "fileMatch": [ + "deployment.template.json", + "deployment.debug.template.json" + ], + "url": "https://www.schemastore.org/azure-iot-edge-deployment-template-4.0.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edge-deployment-template-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edge-deployment-template-2.0.json", + "1.2": "https://www.schemastore.org/azure-iot-edge-deployment-template-3.0.json", + "1.3": "https://www.schemastore.org/azure-iot-edge-deployment-template-4.0.json" + } + }, + { + "name": "Azure Landing Zones Library metadata", + "description": "Azure Landing Zones Library metadata", + "fileMatch": ["alz_library_metadata.json"], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json" + }, + { + "name": "Azure Landing Zones Library policy default values", + "description": "Azure Landing Zones Library policy default values", + "fileMatch": [ + "alz_policy_default_values.json", + "alz_policy_default_values.yaml", + "alz_policy_default_values.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/default_policy_values.json" + }, + { + "name": "Azure Landing Zones Library architecture definition", + "description": "Azure Landing Zones Library architecture definition", + "fileMatch": [ + "*.alz_architecture_definition.json", + "*.alz_architecture_definition.yaml", + "*.alz_architecture_definition.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/architecture_definition.json" + }, + { + "name": "Azure Landing Zones Library archetype definition", + "description": "Azure Landing Zones Library archetype definition", + "fileMatch": [ + "*.alz_archetype_definition.json", + "*.alz_archetype_definition.yaml", + "*.alz_archetype_definition.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/archetype_definition.json" + }, + { + "name": "Azure Landing Zones Library archetype override", + "description": "Azure Landing Zones Library archetype override", + "fileMatch": [ + "*.alz_archetype_override.json", + "*.alz_archetype_override.yaml", + "*.alz_archetype_override.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/archetype_override.json" + }, + { + "name": "Barba-CV", + "description": "Deterministic CV / resume data format", + "fileMatch": ["barba-cv.json"], + "url": "https://raw.githubusercontent.com/Eurobotics-Association/barba-cv/main/schema/barba-cv.schema.json" + }, + { + "name": "Biome Formatter Config", + "description": "Configuration file for the Biome formatter", + "fileMatch": ["biome.json", "biome.jsonc"], + "url": "https://biomejs.dev/schemas/latest/schema.json" + }, + { + "name": "bottom configuration", + "description": "Configuration file for bottom", + "fileMatch": ["bottom.toml"], + "url": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.10/bottom.json", + "versions": { + "nightly": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/nightly/bottom.json", + "0.12.0": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.12.0/bottom.json", + "0.11": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.11/bottom.json", + "0.10": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.10/bottom.json", + "0.9": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.9/bottom.json" + } + }, + { + "name": "Bpod Finite-State Machine", + "description": "Definition of a Bpod Finite-State Machine", + "fileMatch": [ + "*.bpod-fsm.json", + "*.bpod-fsm.yaml", + "*.bpod-fsm.yml", + "bpod-fsm.json", + "bpod-fsm.yaml", + "bpod-fsm.yml" + ], + "url": "https://raw.githubusercontent.com/int-brain-lab/bpod-core/main/.schema/statemachine.json" + }, + { + "name": "buf.yaml", + "description": "buf.yaml is used to define a module. It's the primary configuration file, and is responsible for the module's name, dependencies, and lint and breaking configuration", + "fileMatch": ["buf.yaml"], + "url": "https://www.schemastore.org/buf.json" + }, + { + "name": "buf.gen.yaml", + "description": "buf.gen.yaml is a configuration file used by the buf generate command to generate integration code for the languages of your choice", + "fileMatch": ["buf.gen.yaml"], + "url": "https://www.schemastore.org/buf.gen.json" + }, + { + "name": "buf.lock", + "description": "buf.lock is a dependency lock file generated by buf via 'buf dep update'. It represents a single, reproducible build of the workspace's external dependencies and should never be hand-edited", + "fileMatch": ["buf.lock"], + "url": "https://www.schemastore.org/buf.lock.json" + }, + { + "name": "buf.plugin.yaml", + "description": "A `buf.plugin.yaml` file captures metadata about the plugin. It includes mandatory and optional fields that are displayed on the individual plugin page and the BSR plugin. Documentation: https://buf.build/plugins", + "fileMatch": ["buf.plugin.yaml"], + "url": "https://www.schemastore.org/buf.plugin.json" + }, + { + "name": "buf.policy.yaml", + "description": "buf.policy.yaml defines a policy containing lint, breaking change detection, and plugin configuration that can be shared across BSR modules", + "fileMatch": ["buf.policy.yaml"], + "url": "https://www.schemastore.org/buf.policy.json" + }, + { + "name": "buf.work.yaml", + "description": "buf.work.yaml is used to define a workspace, which is an advanced local development feature. Workspaces make it possible to consolidate one or more modules into a single buildable unit. They also allow users to run buf operations across multiple modules with a single execution (such as buf lint)", + "fileMatch": ["buf.work.yaml"], + "url": "https://www.schemastore.org/buf.work.json" + }, + { + "name": "cargo-mutants-config.yaml", + "description": "cargo-mutants configuration file", + "fileMatch": ["**/.cargo/mutants.toml"], + "url": "https://www.schemastore.org/cargo-mutants-config.json" + }, + { + "name": "Cinnamon Spice info.json", + "description": "The 'info.json' metadata file used in Cinnamon Spice components", + "fileMatch": [], + "url": "https://www.schemastore.org/cinnamon-spice.info.json" + }, + { + "name": "Cloud.gov Workshop Configuration", + "description": "Configuration for IaC managed resources in Cloud.gov Workshop", + "fileMatch": ["cg-workshop.yml", "**/cg-workshop/*.yml"], + "url": "https://workshop.cloud.gov/workshop/workshop-schemas/-/raw/main/cg-workshop.schema.json" + }, + { + "name": "cmdx.yaml", + "description": "cmdx configuration file", + "fileMatch": [".cmdx.yaml", ".cmdx.yml", "cmdx.yaml", "cmdx.yml"], + "url": "https://raw.githubusercontent.com/suzuki-shunsuke/cmdx/refs/heads/main/json-schema/cmdx.json" + }, + { + "name": "CodeRabbit", + "description": "Supercharge your entire team with AI-driven contextual feedback & smart chat", + "fileMatch": [".coderabbit.yaml"], + "url": "https://coderabbit.ai/integrations/schema.v2.json" + }, + { + "name": "CodeCV", + "description": "CV format specification", + "fileMatch": [ + "cv.json", + "cv.yaml", + "cv.yml", + "cv.toml", + "*.cv.json", + "*.cv.yaml", + "*.cv.yml", + "*.cv.toml" + ], + "url": "https://raw.githubusercontent.com/codecv-co/codecv/master/cv.schema.json", + "versions": { + "0.9.24": "https://raw.githubusercontent.com/codecv-co/codecv/0.9.24/cv.schema.json" + } + }, + { + "name": "CodifyCLI", + "description": "Transform your workflow with Codify, the ultimate configuration as code tool designed to manage local user environments", + "fileMatch": [ + "codify.json", + "codify.yaml", + "codify.json5", + "codify.jsonc", + "*.codify.json", + "*.codify.yaml", + "*.codify.json5", + "*.codify.jsonc" + ], + "url": "https://raw.githubusercontent.com/codifyCLI/codify-schemas/main/src/schemastore/codify-schema.json" + }, + { + "name": "CloudCannon Configuration", + "description": "Configuration file for CloudCannon, the Git-based CMS that brings visual editing to your modern tech stack, freeing developers from content tasks while empowering editors to make changes", + "fileMatch": [ + "cloudcannon.config.yml", + "cloudcannon.config.yaml", + "cloudcannon.config.json", + "*.cloudcannon.config.yml", + "*.cloudcannon.config.yaml", + "*.cloudcannon.config.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-config.schema.json" + }, + { + "name": "CloudCannon Configuration (Structures)", + "description": "Supporting configuration file for CloudCannon containing Structure definitions", + "fileMatch": [ + "cloudcannon.structures.yml", + "cloudcannon.structures.yaml", + "cloudcannon.structures.json", + "*.cloudcannon.structures.yml", + "*.cloudcannon.structures.yaml", + "*.cloudcannon.structures.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-structures.schema.json" + }, + { + "name": "CloudCannon Configuration (Inputs)", + "description": "Supporting configuration file for CloudCannon containing Input definitions", + "fileMatch": [ + "cloudcannon.inputs.yml", + "cloudcannon.inputs.yaml", + "cloudcannon.inputs.json", + "*.cloudcannon.inputs.yml", + "*.cloudcannon.inputs.yaml", + "*.cloudcannon.inputs.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-inputs.schema.json" + }, + { + "name": "CloudCannon Configuration (Structure Value)", + "description": "Supporting configuration file for CloudCannon containing a single Structure Value definition", + "fileMatch": [ + "cloudcannon.structure-value.yml", + "cloudcannon.structure-value.yaml", + "cloudcannon.structure-value.json", + "*.cloudcannon.structure-value.yml", + "*.cloudcannon.structure-value.yaml", + "*.cloudcannon.structure-value.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-structure-value.schema.json" + }, + { + "name": "CloudCannon Configuration (Snippets)", + "description": "Supporting configuration file for CloudCannon containing Snippet definitions", + "fileMatch": [ + "cloudcannon.snippets.yml", + "cloudcannon.snippets.yaml", + "cloudcannon.snippets.json", + "*.cloudcannon.snippets.yml", + "*.cloudcannon.snippets.yaml", + "*.cloudcannon.snippets.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-snippets.schema.json" + }, + { + "name": "CloudCannon Configuration (Snippets Imports)", + "description": "Supporting configuration file for CloudCannon containing Snippets Imports", + "fileMatch": [ + "cloudcannon.snippets-imports.yml", + "cloudcannon.snippets-imports.yaml", + "cloudcannon.snippets-imports.json", + "*.cloudcannon.snippets-imports.yml", + "*.cloudcannon.snippets-imports.yaml", + "*.cloudcannon.snippets-imports.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-snippets-imports.schema.json" + }, + { + "name": "CloudCannon Configuration (Snippets Definitions)", + "description": "Supporting configuration file for CloudCannon containing Snippets Definitions", + "fileMatch": [ + "cloudcannon.snippets-definitions.yml", + "cloudcannon.snippets-definitions.yaml", + "cloudcannon.snippets-definitions.json", + "*.cloudcannon.snippets-definitions.yml", + "*.cloudcannon.snippets-definitions.yaml", + "*.cloudcannon.snippets-definitions.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-snippets-definitions.schema.json" + }, + { + "name": "CloudCannon Configuration (Editables)", + "description": "Supporting configuration file for CloudCannon containing Editables definitions", + "fileMatch": [ + "cloudcannon.editables.yml", + "cloudcannon.editables.yaml", + "cloudcannon.editables.json", + "*.cloudcannon.editables.yml", + "*.cloudcannon.editables.yaml", + "*.cloudcannon.editables.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-editables.schema.json" + }, + { + "name": "CloudCannon Configuration (Collections)", + "description": "Supporting configuration file for CloudCannon containing Collections configuration", + "fileMatch": [ + "cloudcannon.collections.yml", + "cloudcannon.collections.yaml", + "cloudcannon.collections.json", + "*.cloudcannon.collections.yml", + "*.cloudcannon.collections.yaml", + "*.cloudcannon.collections.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-collections.schema.json" + }, + { + "name": "CloudCannon Configuration (Collection Structures)", + "description": "Supporting configuration file for CloudCannon containing Collection Structure definitions", + "fileMatch": [ + "cloudcannon.schemas.yml", + "cloudcannon.schemas.yaml", + "cloudcannon.schemas.json", + "*.cloudcannon.schemas.yml", + "*.cloudcannon.schemas.yaml", + "*.cloudcannon.schemas.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-schemas.schema.json" + }, + { + "name": "Lando (landofile)", + "description": "The configuration file for a Lando app. Documentation: https://github.com/lando-community/lando-spec", + "fileMatch": [".lando.yml", ".lando.*.yml"], + "url": "https://lando-community.github.io/lando-spec/landofile-spec.json" + }, + { + "name": "latexindent configuration", + "description": "Configuration file for latexindent", + "fileMatch": ["latexindent.yaml", ".latexindent.yaml"], + "url": "https://github.com/cmhughes/latexindent.pl/raw/main/documentation/latexindent-yaml-schema.json" + }, + { + "name": "Lobe AI Agent", + "description": "Lobe Agents is an AI agent for LobeChat", + "fileMatch": ["lobe-agent.json"], + "url": "https://chat-agents.lobehub.com/schema/lobeAgentSchema_v1.json" + }, + { + "name": "Loki", + "description": "Like Prometheus, but for logs", + "fileMatch": ["loki.yml", "loki.yaml"], + "url": "https://www.schemastore.org/loki.json" + }, + { + "name": "Azure Pipelines", + "description": "Azure Pipelines YAML pipelines definition", + "fileMatch": ["azure-pipelines.yml", "azure-pipelines.yaml"], + "url": "https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/master/service-schema.json" + }, + { + "name": "FasterCI Configuration", + "description": "FasterCI repository configuration file", + "fileMatch": ["**/.fasterci/config.yaml"], + "url": "https://fasterci.com/config.schema.json" + }, + { + "name": "Fence configuration", + "description": "Configuration file for fence, a lightweight, container-free sandbox for running commands with network and filesystem restrictions", + "fileMatch": ["fence.json"], + "url": "https://raw.githubusercontent.com/Use-Tusk/fence/refs/heads/main/docs/schema/fence.schema.json" + }, + { + "name": "Foxx Manifest", + "description": "ArangoDB Foxx service manifest file", + "fileMatch": ["manifest.json"], + "url": "https://www.schemastore.org/foxx-manifest.json" + }, + { + "name": "flagd flag configuration", + "description": "Flag configuration for the OpenFeature spec compliant flagd provider", + "fileMatch": [ + "flagd.json", + "flagd.yaml", + "flagd.yml", + "*.flagd.json", + "*.flagd.yaml", + "*.flagd.yml" + ], + "url": "https://flagd.dev/schema/v0/flags.json", + "versions": { + "0.1.1": "https://raw.githubusercontent.com/open-feature/flagd-schemas/json/json-schema-v0.1.1/json/flagd-definitions.json", + "0.2.0": "https://raw.githubusercontent.com/open-feature/flagd-schemas/json/json-schema-v0.2.0/json/flags.json" + } + }, + { + "name": "fly.io Configuration", + "description": "fly.io, a cloud provider, configuration", + "fileMatch": ["fly.toml"], + "url": "https://www.schemastore.org/fly.json" + }, + { + "name": "Freifunk.de Community API", + "description": "Freifunk.de Community API. Documentation: https://github.com/freifunk/directory.api.freifunk.net", + "fileMatch": ["*.freifunk-api.json"], + "url": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.2.json", + "versions": { + "development": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/development.json", + "0.1": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.1.json", + "0.2.0": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.2.0.json", + "0.4.9": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.9.json", + "0.4.10": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.10.json", + "0.4.11": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.11.json", + "0.4.12": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.12.json", + "0.4.13": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.13.json", + "0.4.14": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.14.json", + "0.4.15": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.15.json", + "0.4.16": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.16.json", + "0.5.0": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.0.json", + "0.5.1": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.1.json", + "0.5.2": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.2.json" + } + }, + { + "name": "Frogbot Config", + "description": "The Frogbot configuration required to scan Git repositories", + "fileMatch": ["frogbot-config.yml"], + "url": "https://raw.githubusercontent.com/jfrog/frogbot/master/schema/frogbot-schema.json" + }, + { + "name": ".asmdef", + "description": "Unity 3D assembly definition file", + "fileMatch": ["*.asmdef"], + "url": "https://www.schemastore.org/asmdef.json" + }, + { + "name": "babelrc.json", + "description": "Babel configuration file", + "fileMatch": [".babelrc", ".babelrc.json", "babel.config.json"], + "url": "https://www.schemastore.org/babelrc.json" + }, + { + "name": ".backportrc.json", + "description": "Backport configuration file", + "fileMatch": [".backportrc.json"], + "url": "https://www.schemastore.org/backportrc.json" + }, + { + "name": "basedpyright", + "description": "Basedpyright configuration file", + "fileMatch": ["basedpyrightconfig.json"], + "url": "https://raw.githubusercontent.com/DetachHead/basedpyright/refs/heads/main/packages/vscode-pyright/schemas/pyrightconfig.schema.json" + }, + { + "name": "batect.yml", + "description": "Batect configuration file", + "fileMatch": ["batect.yml", "batect-bundle.yml"], + "url": "https://ide-integration.batect.dev/v1/configSchema.json" + }, + { + "name": "bamboo-spec", + "description": "The Bamboo Specs allows you to define Bamboo configuration as code, and have corresponding plans/deployments created or updated automatically in Bamboo", + "fileMatch": ["**/bamboo-specs/*.yaml", "**/bamboo-specs/*.yml"], + "url": "https://www.schemastore.org/bamboo-spec.json" + }, + { + "name": "beef-database-codegen", + "description": "Beef (Business Entity Execution Framework) database code-generation configuration", + "fileMatch": [ + "database.beef.yaml", + "database.beef.yml", + "database.beef.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/database.beef.json" + }, + { + "name": "beef-entity-codegen", + "description": "Beef (Business Entity Execution Framework) entity code-generation configuration", + "fileMatch": [ + "entity.beef.yaml", + "entity.beef.yml", + "entity.beef.json", + "refdata.beef.yaml", + "refdata.beef.yml", + "refdata.beef.json", + "datamodel.beef.yaml", + "datamodel.beef.yml", + "datamodel.beef.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/entity.beef.json" + }, + { + "name": "beef-database-v5-codegen", + "description": "Beef (Business Entity Execution Framework) database code-generation configuration (v5)", + "fileMatch": [ + "database.beef-5.yaml", + "database.beef-5.yml", + "database.beef-5.json", + "*.database.beef-5.yaml", + "*.database.beef-5.yml", + "*.database.beef-5.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/database.beef-5.json" + }, + { + "name": "beef-entity-v5-codegen", + "description": "Beef (Business Entity Execution Framework) entity code-generation configuration (v5)", + "fileMatch": [ + "entity.beef-5.yaml", + "entity.beef-5.yml", + "entity.beef-5.json", + "refdata.beef-5.yaml", + "refdata.beef-5.yml", + "refdata.beef-5.json", + "datamodel.beef-5.yaml", + "datamodel.beef-5.yml", + "datamodel.beef-5.json", + "*.entity.beef-5.yaml", + "*.entity.beef-5.yml", + "*.entity.beef-5.json", + "*.refdata.beef-5.yaml", + "*.refdata.beef-5.yml", + "*.refdata.beef-5.json", + "*.datamodel.beef-5.yaml", + "*.datamodel.beef-5.yml", + "*.datamodel.beef-5.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/entity.beef-5.json" + }, + { + "name": "bigquery-table", + "description": "BigQuery table", + "fileMatch": ["*.bigquery.json"], + "url": "https://www.schemastore.org/bigquery-table.json" + }, + { + "name": "Bigconfig", + "description": "Bigconfig is a yaml-based declarative monitoring as code solution. Data engineers can deploy Bigeye metrics from the command-line for convenient and scalable data quality monitoring", + "fileMatch": ["bigconfig.yml", "bigconfig.yaml"], + "url": "https://www.schemastore.org/bigconfig.json" + }, + { + "name": "bitbucket-pipelines", + "description": "Bitbucket Pipelines CI/CD manifest", + "fileMatch": ["bitbucket-pipelines.yml"], + "url": "https://api.bitbucket.org/schemas/pipelines-configuration" + }, + { + "name": "bitrise", + "description": "The configuration format of the Bitrise CLI. Bitrise is a collection of tools and services to help you with the development and automation of your software projects, with a main focus on mobile apps", + "fileMatch": ["bitrise.yml", "bitrise.yaml", "bitrise.json"], + "url": "https://www.schemastore.org/bitrise.json" + }, + { + "name": "bitrise-step", + "description": "Steps and Workflows are the heart of how Bitrise works. A Bitrise build is simply a series of Steps. Bitrise is a collection of tools and services to help you with the development and automation of your software projects, with a main focus on mobile apps", + "fileMatch": ["step.yml"], + "url": "https://www.schemastore.org/bitrise-step.json" + }, + { + "name": ".bootstraprc", + "description": "Webpack bootstrap-loader configuration file", + "fileMatch": [".bootstraprc"], + "url": "https://www.schemastore.org/bootstraprc.json" + }, + { + "name": "bower.json", + "description": "Bower package description file", + "fileMatch": ["bower.json", ".bower.json"], + "url": "https://www.schemastore.org/bower.json" + }, + { + "name": ".bowerrc", + "description": "Bower configuration file", + "fileMatch": [".bowerrc"], + "url": "https://www.schemastore.org/bowerrc.json" + }, + { + "name": "BOSH CPI Config", + "description": "CPI-specific config for BOSH Director", + "url": "https://www.schemastore.org/bosh-cpi-config.json" + }, + { + "name": "BOSH Deploy Config", + "description": "Deploy config for BOSH CLI", + "url": "https://www.schemastore.org/bosh-deploy-config.json" + }, + { + "name": "Boyka Framework", + "description": "Boyka Framework config file", + "fileMatch": ["boyka-config.json"], + "url": "https://www.schemastore.org/boyka-config.json" + }, + { + "name": "behat.yml", + "description": "Behat configuration file", + "fileMatch": ["behat.yml", "*.behat.yml"], + "url": "https://www.schemastore.org/behat.json" + }, + { + "name": "partial-black.json", + "description": "black, a Python formatter", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-black.json" + }, + { + "name": "partial-fastapi.json", + "description": "FastAPI web framework configuration for pyproject.toml", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-fastapi.json" + }, + { + "name": "partial-scheduled.json", + "description": "Scheduled job configuration for pyproject.toml", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-scheduled.json" + }, + { + "name": "bozr.suite.json", + "description": "Bozr test suite file", + "fileMatch": [".suite.json", ".xsuite.json"], + "url": "https://www.schemastore.org/bozr.json" + }, + { + "name": "browser.i18n.json", + "description": "browser.i18n messages.json translation file", + "fileMatch": ["messages.json"], + "url": "https://www.schemastore.org/browser.i18n.json" + }, + { + "name": "browsh configuration", + "description": "Configuration file for browsh", + "fileMatch": ["**/browsh/config.toml"], + "url": "https://raw.githubusercontent.com/browsh-org/browsh/master/webext/assets/browsh-schema.json" + }, + { + "name": "bucklescript", + "description": "BuckleScript configuration file", + "fileMatch": ["bsconfig.json"], + "url": "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/master/docs/docson/build-schema.json" + }, + { + "name": "build-changelog", + "description": "Changelog files for build-changelog action", + "fileMatch": [ + "**/build-changelog/*.yml", + "**/build-changelog/*.yaml", + "**/build-changelog/*.toml" + ], + "url": "https://raw.githubusercontent.com/jelmore1674/build-changelog/refs/tags/v1/schemas/changlelog.json" + }, + { + "name": "Build Info", + "description": "Build Info is the metadata of a build. It includes all the details about the build broken down into segments that include version history, artifacts, project modules, dependencies, and everything that was required to create the build", + "fileMatch": ["*buildinfo*.json", "*build-info*.json", "*.buildinfo"], + "url": "https://raw.githubusercontent.com/jfrog/build-info-go/main/buildinfo-schema.json" + }, + { + "name": "Bukkit plugin.yml", + "description": "Minecraft Bukkit plugin description files", + "fileMatch": ["plugin.yml"], + "url": "https://www.schemastore.org/bukkit-plugin.json" + }, + { + "name": "Buildkite", + "description": "Buildkite pipeline.yml files", + "fileMatch": [ + "buildkite.yml", + "buildkite.yaml", + "buildkite.json", + "buildkite.*.yml", + "buildkite.*.yaml", + "buildkite.*.json", + "**/.buildkite/pipeline.yml", + "**/.buildkite/pipeline.yaml", + "**/.buildkite/pipeline.json", + "**/.buildkite/pipeline.*.yml", + "**/.buildkite/pipeline.*.yaml", + "**/.buildkite/pipeline.*.json" + ], + "url": "https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json" + }, + { + "name": ".build.yml", + "description": "Sourcehut Build Manifest", + "fileMatch": [".build.yml"], + "url": "https://www.schemastore.org/sourcehut-build-0.65.0.json", + "versions": { + "0.41.2": "https://www.schemastore.org/sourcehut-build-0.41.2.json", + "0.65.0": "https://www.schemastore.org/sourcehut-build-0.65.0.json" + } + }, + { + "name": "bun.lock", + "description": "bun.lock file", + "fileMatch": ["bun.lock"], + "url": "https://www.schemastore.org/bun-lock.json" + }, + { + "name": "bundleconfig.json", + "description": "bundleconfig.json files", + "fileMatch": ["bundleconfig.json"], + "url": "https://www.schemastore.org/bundleconfig.json" + }, + { + "name": "bunfig.toml", + "description": "bunfig.toml file", + "fileMatch": ["bunfig.toml"], + "url": "https://www.schemastore.org/bunfig.json" + }, + { + "name": "BungeeCord plugin.yml", + "description": "BungeeCord plugin description files", + "fileMatch": ["plugin.yml", "bungee.yml"], + "url": "https://www.schemastore.org/bungee-plugin.json" + }, + { + "name": "block.json", + "description": "WordPress block.json files", + "fileMatch": ["block.json"], + "url": "https://schemas.wp.org/trunk/block.json", + "versions": { + "trunk": "https://raw.githubusercontent.com/WordPress/gutenberg/trunk/schemas/json/block.json" + } + }, + { + "name": "Block Protocol Metadata", + "description": "Block Metadata in Block Protocol", + "fileMatch": ["block-metadata.json"], + "url": "https://blockprotocol.org/schemas/block-metadata.json" + }, + { + "name": "BX CI", + "description": "CI configuration for Amdocs Bill Experience projects", + "fileMatch": ["**/bxci.yaml", "**/bxci.yml"], + "url": "https://www.schemastore.org/bxci.schema-3.x.json", + "versions": { + "1.0": "https://www.schemastore.org/bxci.schema-1.0.json", + "1.0.1": "https://www.schemastore.org/bxci.schema-1.0.1.json", + "2.0.0": "https://www.schemastore.org/bxci.schema-2.0.0.json", + "2.x": "https://www.schemastore.org/bxci.schema-2.x.json", + "3.x": "https://www.schemastore.org/bxci.schema-2.x.json" + } + }, + { + "name": "Better Scripts", + "description": "Better scripts configuration file", + "fileMatch": [ + "scripts.json", + "better-scripts.json", + ".better-scriptsrc", + ".better-scriptsrc.json" + ], + "url": "https://raw.githubusercontent.com/iamyoki/better-scripts/main/lib/schema.json" + }, + { + "name": "Bleep", + "description": "A bleeping fast Scala build tool", + "fileMatch": ["bleep.yaml", "bleep.yml"], + "url": "https://raw.githubusercontent.com/oyvindberg/bleep/master/schema.json" + }, + { + "name": "CMake Presets", + "description": "CMake Presets", + "fileMatch": ["CMakePresets.json", "CMakeUserPresets.json"], + "url": "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json" + }, + { + "name": "Cache Warmup config", + "description": "Cache Warmup config", + "fileMatch": [ + "cache-warmup.json", + "cache-warmup.yaml", + "cache-warmup.yml" + ], + "url": "https://raw.githubusercontent.com/eliashaeussler/cache-warmup/main/res/cache-warmup-config.schema.json" + }, + { + "name": "Calqulus pipeline", + "description": "Qualisys Calqulus pipeline", + "fileMatch": ["*.calqulus.yaml", "*.calqulus.yml"], + "url": "https://raw.githubusercontent.com/qualisys/qualisys-schemas/master/calqulus-pipeline.schema.json" + }, + { + "name": "Camel YAML DSL", + "description": "Camel YAML DSL", + "fileMatch": [ + "*.camel.yaml", + "*.camelk.yaml", + "*.camel.yml", + "*.camelk.yml" + ], + "url": "https://raw.githubusercontent.com/apache/camel/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json", + "versions": { + "3.x": "https://raw.githubusercontent.com/apache/camel/camel-3.x/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json", + "4.x": "https://raw.githubusercontent.com/apache/camel/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json" + } + }, + { + "name": "Cannon TOML", + "description": "Deployment configuration for Cannon, a DevOps tool for Ethereum", + "fileMatch": [ + "cannonfile.json", + "*.cannonfile.json", + "cannonfile.yaml", + "*.cannonfile.yaml", + "cannonfile.toml", + "*.cannonfile.toml" + ], + "url": "https://raw.githubusercontent.com/usecannon/cannon/main/packages/lsp/src/schema.json" + }, + { + "name": "Carafe", + "description": "Carafe compatible JavaScript Bundles", + "url": "https://carafe.fm/schema/draft-02/bundle.schema.json", + "versions": { + "draft-02": "https://carafe.fm/schema/draft-02/bundle.schema.json", + "draft-01": "https://carafe.fm/schema/draft-01/bundle.schema.json" + } + }, + { + "name": "Cargo Manifest", + "description": "Manifest for Cargo, the Rust package manager and build tool", + "fileMatch": ["Cargo.toml"], + "url": "https://www.schemastore.org/cargo.json" + }, + { + "name": "Cargo Make", + "description": "cargo-make, a Rust task runner and build tool", + "fileMatch": ["Makefile.toml"], + "url": "https://www.schemastore.org/cargo-make.json" + }, + { + "name": "Catalog Info Backstage", + "description": "Backstage Catalog Info", + "fileMatch": ["catalog-info.yaml", "*.catalog-info.yaml"], + "url": "https://www.schemastore.org/catalog-info.json" + }, + { + "name": "Changie", + "description": "Changie configuration file", + "fileMatch": [".changie.yaml", ".changie.yml"], + "url": "https://changie.dev/schema.json" + }, + { + "name": "Charmcraft", + "description": "Charmcraft project. Documentation: https://documentation.ubuntu.com/charmcraft/stable/", + "fileMatch": ["charmcraft.yaml"], + "url": "https://raw.githubusercontent.com/canonical/charmcraft/main/schema/charmcraft.json" + }, + { + "name": "ChordPro Configuration", + "description": "Configuration files for ChordPro", + "fileMatch": [ + "*.chordpro.json", + "chordpro.json", + "*.chordpro.yaml", + "*.chordpro.yml", + "chordpro.yaml", + "chordpro.yml" + ], + "url": "https://raw.githubusercontent.com/ChordPro/chordpro/master/lib/ChordPro/res/config/config.schema" + }, + { + "name": "Chromia Model", + "description": "Chromia Model Config File", + "fileMatch": ["chromia.yml", "chromia.yaml"], + "url": "https://gitlab.com/chromaway/core-tools/chromia-cli-tools/-/raw/dev/chromia-build-tools/src/main/resources/chromia-model-schema.json" + }, + { + "name": "Chromia Seeder Root Config", + "description": "Chromia Seeder Root Config File", + "fileMatch": ["**/.chromia/seeder/**/seeder.yml"], + "url": "https://gitlab.com/chromaway/core-tools/rell-toolbox/-/raw/dev/seeder/src/main/resources/chromia-seeder-config-schema.json" + }, + { + "name": "Chromia Seeder Module Config", + "description": "Chromia Seeder Module Config File", + "fileMatch": ["**/.chromia/seeder/**/modules/**/*.yml"], + "url": "https://gitlab.com/chromaway/core-tools/rell-toolbox/-/raw/dev/seeder/src/main/resources/chromia-seeder-module-schema.json" + }, + { + "name": "cibuildwheel", + "description": "cibuildwheel, a Python redistributable wheel builder", + "fileMatch": ["cibuildwheel.toml", ".cibuildwheel.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/cibuildwheel.json" + }, + { + "name": "Citrus test case", + "description": "Citrus test case", + "fileMatch": [ + "*.citrus.yaml", + "*.citrus.test.yaml", + "*.citrus.it.yaml", + "*.citrus-test.yaml", + "*.citrus-it.yaml" + ], + "url": "https://citrusframework.org/schema/json/testcase/citrus-testcase.json" + }, + { + "name": "CityJSON", + "description": "the representation of 3D city models", + "url": "https://raw.githubusercontent.com/cityjson/specs/master/schemas/cityjson.min.schema.json" + }, + { + "name": "CloudEvents specification", + "description": "A specification for describing event data in a common way. Documentation: https://cloudevents.io", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/cloudevents/spec/master/cloudevents/formats/cloudevents.json" + }, + { + "name": "conda-forge", + "description": "Conda-forge configuration file", + "fileMatch": ["conda-forge.yml"], + "url": "https://raw.githubusercontent.com/conda-forge/conda-smithy/main/conda_smithy/data/conda-forge.json" + }, + { + "name": "Convex", + "description": "Configuration for Convex project settings", + "fileMatch": ["convex.json"], + "url": "https://raw.githubusercontent.com/get-convex/convex-backend/refs/heads/main/npm-packages/convex/schemas/convex.schema.json" + }, + { + "name": "Conjure", + "description": "Conjure Human-Readable Format", + "fileMatch": ["**/conjure/**.yml"], + "url": "https://raw.githubusercontent.com/palantir/conjure/master/conjure.schema.json" + }, + { + "name": "CNC Codes", + "description": "G/M codes for Machine Tools or 3D Printers", + "fileMatch": ["*.cncc.json"], + "url": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-07/schema", + "versions": { + "latest": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-07/schema", + "2022-07": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-07/schema", + "2022-06": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-06/schema" + } + }, + { + "name": "Cog config file", + "description": "cog.yaml files", + "fileMatch": ["cog.yaml", "cog.yml"], + "url": "https://raw.githubusercontent.com/replicate/cog/main/pkg/config/data/config_schema_v1.0.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/replicate/cog/main/pkg/config/data/config_schema_v1.0.json" + } + }, + { + "name": "Commandbox Box.json", + "description": "Commandbox used with cli, cfml web servers and modules", + "url": "https://raw.githubusercontent.com/Ortus-Solutions/vscode-commandbox/master/resources/schemas/box.schema.json" + }, + { + "name": "Commandbox Server.json", + "description": "Commandbox used with cfml web servers", + "url": "https://raw.githubusercontent.com/Ortus-Solutions/vscode-commandbox/master/resources/schemas/server.schema.json" + }, + { + "name": "Common Package Specification", + "description": "A cross-tool mechanism for locating software dependencies", + "fileMatch": ["*.cps"], + "url": "https://cps-org.github.io/cps/cps.schema.json" + }, + { + "name": "CumulusCI Config", + "description": "cumulusci.yml file for configuring CumulusCI, a Salesforce automation framework", + "fileMatch": ["cumulusci.yml"], + "url": "https://raw.githubusercontent.com/SFDO-Tooling/CumulusCI/main/cumulusci/schema/cumulusci.jsonschema.json" + }, + { + "name": "Clawject config", + "description": "Clawject configuration file", + "fileMatch": [".clawjectrc", ".clawjectrc.json"], + "url": "https://raw.githubusercontent.com/clawject/clawject/main/packages/core/src/config/schema.json" + }, + { + "name": "Claude Code Keybindings", + "description": "Keyboard shortcut configuration for Claude Code", + "fileMatch": ["**/.claude/keybindings.json"], + "url": "https://www.schemastore.org/claude-code-keybindings.json" + }, + { + "name": "Claude Code Plugin Manifest", + "description": "Manifest (.claude-plugin/plugin.json) for a Claude Code plugin", + "fileMatch": ["**/.claude-plugin/plugin.json"], + "url": "https://www.schemastore.org/claude-code-plugin-manifest.json" + }, + { + "name": "Claude Code Plugin Marketplace", + "description": "Marketplace manifest (.claude-plugin/marketplace.json) listing Claude Code plugins", + "fileMatch": ["**/.claude-plugin/marketplace.json"], + "url": "https://www.schemastore.org/claude-code-marketplace.json" + }, + { + "name": "Claude Code Settings", + "description": "Configuration file for Claude Code", + "fileMatch": ["**/.claude/settings.json"], + "url": "https://www.schemastore.org/claude-code-settings.json" + }, + { + "name": "cmakefmt", + "description": "Configuration file for cmakefmt, a fast native CMake formatter", + "fileMatch": [".cmakefmt.yaml", ".cmakefmt.yml", ".cmakefmt.toml"], + "url": "https://cmakefmt.dev/schemas/latest/schema.json" + }, + { + "name": "CVE Record Format", + "description": "CVE record format to describe security vulnerabilities", + "fileMatch": ["CVE-*.json"], + "url": "https://raw.githubusercontent.com/CVEProject/cve-schema/master/schema/docs/CVE_Record_Format_bundled.json" + }, + { + "name": "Cycle Stack File", + "description": "A Cycle.io stack file for environments as code", + "fileMatch": ["cycle.json", "cycle.yml", "cycle.yaml"], + "url": "https://raw.githubusercontent.com/cycleplatform/api-spec/main/stackspec/stackspec.json" + }, + { + "name": "CycloneDX", + "description": "CycloneDX Bill of Materials (BOM) file", + "fileMatch": ["bom.json", "*.cdx.json"], + "url": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.6.schema.json", + "versions": { + "1.2": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.2.schema.json", + "1.2-strict": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.2-strict.schema.json", + "1.3": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.3.schema.json", + "1.3-strict": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.3-strict.schema.json", + "1.4": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.4.schema.json", + "1.5": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.5.schema.json", + "1.6": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.6.schema.json" + } + }, + { + "name": "DataYoga Connections", + "description": "Collection of defined source and target connections used within DataYoga jobs", + "fileMatch": ["connections.dy.yaml"], + "url": "https://raw.githubusercontent.com/datayoga-io/datayoga/main/schemas/connections.schema.json" + }, + { + "name": "DataYoga Job", + "description": "Declarative definition of sequential pipeline steps within a DataYoga job", + "fileMatch": ["**/jobs/**/*.dy.yaml"], + "url": "https://raw.githubusercontent.com/datayoga-io/datayoga/main/schemas/job.schema.json" + }, + { + "name": "dbt-bouncer", + "description": "dbt-bouncer configuration file for enforcing conventions in dbt projects", + "fileMatch": ["dbt-bouncer.yml", "dbt-bouncer.yaml"], + "url": "https://raw.githubusercontent.com/godatadriven/dbt-bouncer/main/schema.json" + }, + { + "name": "dbt Dependencies", + "description": "dbt's dependencies.yml file for external packages and cross-project refs", + "fileMatch": ["**/*dbt*/dependencies.yaml", "**/*dbt*/dependencies.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dependencies-latest.json" + }, + { + "name": "dbt Project", + "description": "dbt's project configuration file", + "fileMatch": ["dbt_project.yaml", "dbt_project.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dbt_project-latest.json" + }, + { + "name": "dbt Packages", + "description": "dbt's packages.yml file for external packages", + "fileMatch": ["**/*dbt*/packages.yaml", "**/*dbt*/packages.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/packages-latest.json" + }, + { + "name": "dbt Selectors", + "description": "dbt's selectors.yml file for configuring YAML selectors", + "fileMatch": ["**/*dbt*/selectors.yaml", "**/*dbt*/selectors.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/selectors-latest.json" + }, + { + "name": "dbt YAML files", + "description": "dbt YAML files configurations", + "fileMatch": [ + "**/*dbt*/macros/**/*.yaml", + "**/*dbt*/macros/**/*.yml", + "**/*dbt*/models/**/*.yaml", + "**/*dbt*/models/**/*.yml", + "**/*dbt*/seeds/**/*.yaml", + "**/*dbt*/seeds/**/*.yml", + "**/*dbt*/snapshots/**/*.yaml", + "**/*dbt*/snapshots/**/*.yml" + ], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dbt_yml_files-latest.json" + }, + { + "name": "Debian Upstream Metadata file", + "description": "Debian packaging file for describing metadata about the upstream project", + "fileMatch": ["**/debian/upstream/metadata"], + "url": "https://salsa.debian.org/debian/debian-json-schemas/-/raw/main/schemas/debian-upstream-metadata/debian-upstream-metadata-latest.json" + }, + { + "name": "Deck config", + "description": "Deck is a tool for creating presentation using Markdown and Google Slides", + "fileMatch": [ + "**/.config/deck/config.yml", + "**/.config/deck/config.yaml", + "**/.config/deck/config-*.yml", + "**/.config/deck/config-*.yaml" + ], + "url": "https://raw.githubusercontent.com/k1LoW/deck/refs/heads/main/schema.yml" + }, + { + "name": "DeepMatch deeplinks spec", + "description": "DeepMatch deeplinks YAML configuration file", + "fileMatch": [ + "**/.deeplinks.yml", + "**/*.deeplinks.yml", + "**/.deeplinks.yaml", + "**/*.deeplinks.yaml" + ], + "url": "https://raw.githubusercontent.com/aouledissa/deep-match/main/schemas/deeplinks.schema.json" + }, + { + "name": "Dein Config", + "description": "Dein.vim, a Vim/Neovim plugin manager", + "fileMatch": ["dein.toml"], + "url": "https://www.schemastore.org/dein.json" + }, + { + "name": "Dependency cruiser", + "description": "Configuration file for Dependency cruiser", + "fileMatch": ["dependency-cruiser.config.json"], + "url": "https://raw.githubusercontent.com/sverweij/dependency-cruiser/main/src/schema/configuration.schema.json" + }, + { + "name": "DeployStack Configuration", + "description": "Configuration for DeployStack applications, supporting app customization and deployment settings", + "fileMatch": [ + "**/.deploystack/config.yml", + "**/.deploystack/config.yaml" + ], + "url": "https://cdnx.deploystack.io/schema/config.yml.json" + }, + { + "name": "Deta Spacefile", + "description": "Configuration file for Space Apps", + "fileMatch": ["Spacefile"], + "url": "https://deta.space/assets/spacefile.schema.json" + }, + { + "name": "Devbox Config", + "description": "Configuration for a Devbox shell environment", + "fileMatch": ["devbox.json"], + "url": "https://raw.githubusercontent.com/jetify-com/devbox/main/.schema/devbox.schema.json" + }, + { + "name": "Devbox Plugin", + "description": "Configuration for a Devbox plugin specification", + "fileMatch": ["devbox-plugin.json"], + "url": "https://raw.githubusercontent.com/jetify-com/devbox/main/.schema/devbox-plugin.schema.json" + }, + { + "name": "Drupal Breakpoints", + "description": "Drupal configuration for breakpoints", + "fileMatch": ["*.breakpoints.yml"], + "url": "https://www.schemastore.org/drupal-breakpoints.json" + }, + { + "name": "Drupal Info", + "description": "Drupal configuration for info", + "fileMatch": ["*.info.yml"], + "url": "https://www.schemastore.org/drupal-info.json" + }, + { + "name": "Drupal Layouts", + "description": "Drupal configuration for layouts", + "fileMatch": ["*.layouts.yml"], + "url": "https://www.schemastore.org/drupal-layouts.json" + }, + { + "name": "Drupal Libraries", + "description": "Drupal configuration for libraries", + "fileMatch": ["*.libraries.yml"], + "url": "https://www.schemastore.org/drupal-libraries.json" + }, + { + "name": "Drupal Links Action", + "description": "Drupal configuration for action links", + "fileMatch": ["*.links.action.yml"], + "url": "https://www.schemastore.org/drupal-links-action.json" + }, + { + "name": "Drupal Links Contextual", + "description": "Drupal configuration for contextual links", + "fileMatch": ["*.links.contextual.yml"], + "url": "https://www.schemastore.org/drupal-links-contextual.json" + }, + { + "name": "Drupal Links Menu", + "description": "Drupal configuration for menu links", + "fileMatch": ["*.links.menu.yml"], + "url": "https://www.schemastore.org/drupal-links-menu.json" + }, + { + "name": "Drupal Links Task", + "description": "Drupal configuration for task links", + "fileMatch": ["*.links.task.yml"], + "url": "https://www.schemastore.org/drupal-links-task.json" + }, + { + "name": "Drupal Migration", + "description": "Drupal configuration for migration", + "fileMatch": ["*.migration.*.yml", "**/migrations/*.yml"], + "url": "https://www.schemastore.org/drupal-migration.json" + }, + { + "name": "Drupal Permissions", + "description": "Drupal configuration for permissions", + "fileMatch": ["*.permissions.yml"], + "url": "https://www.schemastore.org/drupal-permissions.json" + }, + { + "name": "Drupal Recipe", + "description": "Drupal configuration for recipe", + "fileMatch": ["drupal-recipe.yml", "drupal-recipe.yaml"], + "url": "https://www.schemastore.org/drupal-recipe.json" + }, + { + "name": "Drupal Routing", + "description": "Drupal configuration for routing", + "fileMatch": ["*.routing.yml"], + "url": "https://www.schemastore.org/drupal-routing.json" + }, + { + "name": "Drupal Config", + "description": "Drupal configuration for config", + "fileMatch": ["**/config/schema/*.schema.yml"], + "url": "https://www.schemastore.org/drupal-config.json" + }, + { + "name": "Drupal Services", + "description": "Drupal configuration for services", + "fileMatch": ["*.services.yml"], + "url": "https://www.schemastore.org/drupal-services.json" + }, + { + "name": "Helm Chart.yaml", + "description": "The Chart.yaml file is required for a chart", + "fileMatch": ["Chart.yaml"], + "url": "https://www.schemastore.org/chart.json" + }, + { + "name": "Helm Chart.lock", + "description": "The Chart.lock file locks dependencies from Chart.yaml", + "fileMatch": ["Chart.lock"], + "url": "https://www.schemastore.org/chart-lock.json" + }, + { + "name": "Helm Unittest Test Suite", + "description": "A Helm Unittest Test Suite file", + "fileMatch": ["**/charts/*/tests/*.yaml"], + "url": "https://raw.githubusercontent.com/helm-unittest/helm-unittest/refs/heads/main/schema/helm-testsuite.json" + }, + { + "name": "CircleCI config.yml", + "description": "CircleCI config files", + "fileMatch": ["**/.circleci/config.yml"], + "url": "https://www.schemastore.org/circleciconfig.json" + }, + { + "name": "Code Climate", + "description": "Configuration file as an alternative for configuring your repository in the settings page", + "fileMatch": [".codeclimate.yml", ".codeclimate.json"], + "url": "https://www.schemastore.org/codeclimate.json" + }, + { + "name": ".cirrus.yml", + "description": "Cirrus CI configuration files", + "fileMatch": [".cirrus.yml"], + "url": "https://raw.githubusercontent.com/cirruslabs/cirrus-cli/main/pkg/parser/testdata/cirrus.json" + }, + { + "name": ".clasp.json", + "description": "Google Apps Script CLI project file", + "fileMatch": [".clasp.json"], + "url": "https://www.schemastore.org/clasp.json" + }, + { + "name": "clangd", + "description": "Clang language server daemon", + "fileMatch": [ + ".clangd", + ".clangd.yml", + ".clangd.yaml", + "**/clangd/config.yaml" + ], + "url": "https://www.schemastore.org/clangd.json" + }, + { + "name": "clang-tidy", + "description": "clang-tidy linter from LLVM", + "fileMatch": [".clang-tidy", "clang-tidy.yml", "clang-tidy.yaml"], + "url": "https://www.schemastore.org/clang-tidy.json" + }, + { + "name": "clib", + "description": "C package manager-ish", + "fileMatch": ["clib.json"], + "url": "https://www.schemastore.org/clib.json" + }, + { + "name": "cloudify", + "description": "Cloudify Blueprint", + "fileMatch": ["*.cfy.yaml"], + "url": "https://www.schemastore.org/cloudify.json" + }, + { + "name": "cloud-init: cloud-config userdata", + "description": "#cloud-config userdata YAML", + "fileMatch": [ + "cloudconfig.yaml", + "cloud-config.yaml", + "*.cloudconfig.yaml", + "*.cloud-config.yaml" + ], + "url": "https://raw.githubusercontent.com/canonical/cloud-init/main/cloudinit/config/schemas/versions.schema.cloud-config.json" + }, + { + "name": "Codex", + "description": "OpenAI Codex configuration file", + "fileMatch": ["**/.codex/config.toml"], + "url": "https://developers.openai.com/codex/config-schema.json" + }, + { + "name": "Codex Hooks", + "description": "OpenAI Codex hooks configuration file", + "fileMatch": ["**/.codex/hooks.json"], + "url": "https://www.schemastore.org/codex-hooks.json" + }, + { + "name": "codemagic", + "description": "Codemagic CI/CD file configuration", + "fileMatch": ["codemagic.yaml", "codemagic.yml"], + "url": "https://codemagic.io/codemagic-schema.json" + }, + { + "name": "Codux", + "description": "Codux configuration file", + "fileMatch": ["codux.config.json"], + "url": "https://wixplosives.github.io/codux-config-schema/codux.config.schema.json" + }, + { + "name": "devcontainer.json", + "description": "dev container configuration files", + "fileMatch": ["devcontainer.json", ".devcontainer.json"], + "url": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json" + }, + { + "name": "Codecov configuration files", + "description": "codecov.yml files", + "fileMatch": [ + "**/.github/.codecov.yml", + "**/.github/codecov.yml", + "**/dev/.codecov.yml", + "**/dev/codecov.yml", + ".codecov.yml", + "codecov.yml" + ], + "url": "https://www.schemastore.org/codecov.json" + }, + { + "name": "CodeShip Pro services configuration files", + "description": "codeship-services.yml files", + "fileMatch": ["codeship-services.yml"], + "url": "https://www.schemastore.org/codeship-services.json" + }, + { + "name": "CodeShip Pro steps configuration files", + "description": "codeship-steps.yml files", + "fileMatch": ["codeship-steps.yml"], + "url": "https://www.schemastore.org/codeship-steps.json" + }, + { + "name": "vcpkg manifest file", + "description": "vcpkg manifest file", + "fileMatch": ["vcpkg.json"], + "url": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json" + }, + { + "name": "vcpkg configuration file", + "description": "vcpkg configuration file", + "fileMatch": ["vcpkg-configuration.json"], + "url": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json" + }, + { + "name": "Vercel", + "description": "Vercel configuration file", + "fileMatch": ["vercel.json"], + "url": "https://openapi.vercel.sh/vercel.json" + }, + { + "name": "VSCode Code Snippets", + "description": "code snippet files in visual studio code extensions", + "fileMatch": ["*.code-snippets"], + "url": "https://raw.githubusercontent.com/Yash-Singh1/vscode-snippets-json-schema/main/schema.json" + }, + { + "name": "compilerconfig.json", + "description": "compilerconfig.json files", + "fileMatch": ["compilerconfig.json"], + "url": "https://www.schemastore.org/compilerconfig.json" + }, + { + "name": "compile_commands.json", + "description": "LLVM compilation database", + "fileMatch": ["compile_commands.json"], + "url": "https://www.schemastore.org/compile-commands.json" + }, + { + "name": "commands.json", + "description": "Config file for Command Task Runner", + "fileMatch": ["commands.json"], + "url": "https://www.schemastore.org/commands.json" + }, + { + "name": "Common Catalog Data", + "description": "Universal all catalog data focused on transformations and relationships", + "fileMatch": [ + "*.cat.json", + "*.catalog.json", + "*.cat.yml", + "*.catalog.yml" + ], + "url": "https://raw.githubusercontent.com/howlowck/common-catalog-schema/main/schema-versions.json" + }, + { + "name": "cosmos.config.json", + "description": "React Cosmos configuration file", + "fileMatch": ["cosmos.config.json"], + "url": "https://www.schemastore.org/cosmos-config.json" + }, + { + "name": "Chrome Extension", + "description": "Google Chrome extension manifest file", + "url": "https://www.schemastore.org/chrome-manifest.json" + }, + { + "name": "chrome-extension-locales-messages.json", + "description": "Google Chrome extension localization file", + "fileMatch": ["**/_locales/*/messages.json"], + "url": "https://www.schemastore.org/chrome-extension-locales-messages.json" + }, + { + "name": "chutzpah.json", + "description": "Chutzpah configuration file", + "fileMatch": ["chutzpah.json"], + "url": "https://www.schemastore.org/chutzpah.json" + }, + { + "name": "contentmanifest.json", + "description": "Visual Studio manifest injection file", + "fileMatch": ["contentmanifest.json"], + "url": "https://www.schemastore.org/vsix-manifestinjection.json" + }, + { + "name": "cloud-sdk-pipeline-configuration", + "description": "SAP Cloud SDK Pipeline configuration", + "fileMatch": ["pipeline_config.yml"], + "url": "https://www.schemastore.org/cloud-sdk-pipeline-config-schema.json" + }, + { + "name": "cloudbuild.json", + "description": "Google Cloud Build configuration file", + "fileMatch": [ + "cloudbuild.json", + "cloudbuild.yaml", + "cloudbuild.yml", + "*.cloudbuild.json", + "*.cloudbuild.yaml", + "*.cloudbuild.yml" + ], + "url": "https://www.schemastore.org/cloudbuild.json" + }, + { + "name": "Google Cloud Workflows", + "description": "Google Cloud Workflows configuration file", + "fileMatch": [ + "workflows.json", + "workflows.yaml", + "workflows.yml", + "*.workflows.json", + "*.workflows.yaml", + "*.workflows.yml" + ], + "url": "https://www.schemastore.org/workflows.json" + }, + { + "name": "AWS CDK cdk.json", + "description": "AWS CDK context files", + "fileMatch": ["cdk.json"], + "url": "https://www.schemastore.org/cdk.json" + }, + { + "name": "AWS CloudFormation", + "description": "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment", + "fileMatch": [ + "*.cf.json", + "*.cf.yml", + "*.cf.yaml", + "cloudformation.json", + "cloudformation.yml", + "cloudformation.yaml" + ], + "url": "https://raw.githubusercontent.com/awslabs/goformation/master/schema/cloudformation.schema.json" + }, + { + "name": "AWS CloudFormation Serverless Application Model (SAM)", + "description": "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application", + "fileMatch": [ + "template.yaml", + "serverless.template", + "*.sam.json", + "*.sam.yml", + "*.sam.yaml", + "sam.json", + "sam.yml", + "sam.yaml" + ], + "url": "https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json" + }, + { + "name": "AWS SAM CLI Samconfig", + "description": "AWS SAM CLI samconfig configuration file", + "fileMatch": ["samconfig.toml", "samconfig.yaml", "samconfig.yml"], + "url": "https://raw.githubusercontent.com/aws/aws-sam-cli/master/schema/samcli.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Accounts Config", + "description": "Used to manage all of the AWS accounts within the AWS Organization", + "fileMatch": ["accounts-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/accounts-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Customizations Config", + "description": "Used to manage configuration of custom applications, third-party firewall appliances, and CloudFormation stacks", + "fileMatch": ["customizations-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/customizations-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Global Config", + "description": "Used to manage all of the global properties that can be inherited across the AWS Organization", + "fileMatch": ["global-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/global-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - IAM Config", + "description": "Used to manage all of the IAM resources across the AWS Organization", + "fileMatch": ["iam-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/iam-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Network Config", + "description": "Used to manage and implement network resources to establish a WAN/LAN architecture to support cloud operations and application workloads in AWS", + "fileMatch": ["network-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/network-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Organization Config", + "description": "Used to manage all of the organization units in the AWS Organization", + "fileMatch": ["organization-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/organization-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Replacements Config", + "description": "Used to manage all of the replacement values across the configuration files", + "fileMatch": ["replacements-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/replacements-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Security Config", + "description": "Used to manage configuration of AWS security services", + "fileMatch": ["security-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/security-config.json" + }, + { + "name": "Changesets", + "description": "A way to manage your versioning and changelogs with a focus on monorepos", + "fileMatch": ["**/.changeset/config.json"], + "url": "https://unpkg.com/@changesets/config/schema.json" + }, + { + "name": "chisel-slices.json", + "description": "Canonical Chisel slices definition file", + "fileMatch": ["**/slices/*.yaml"], + "url": "https://www.schemastore.org/chisel-slices.json" + }, + { + "name": "Citation File Format", + "description": "A YAML file with citation metadata for software or datasets", + "fileMatch": ["CITATION.cff"], + "url": "https://raw.githubusercontent.com/citation-file-format/citation-file-format/1.2.0/schema.json", + "versions": { + "1.2.0": "https://raw.githubusercontent.com/citation-file-format/citation-file-format/1.2.0/schema.json" + } + }, + { + "name": "coffeelint.json", + "description": "CoffeeLint configuration file", + "fileMatch": ["coffeelint.json"], + "url": "https://www.schemastore.org/coffeelint.json" + }, + { + "name": "committed.toml", + "description": "committed configuration file", + "fileMatch": ["committed.toml"], + "url": "https://raw.githubusercontent.com/crate-ci/committed/master/config.schema.json" + }, + { + "name": "composer.json", + "description": "PHP Composer configuration file", + "fileMatch": ["composer.json"], + "url": "https://getcomposer.org/schema.json" + }, + { + "name": "component.json", + "description": "Web component file", + "fileMatch": ["component.json"], + "url": "https://www.schemastore.org/component.json" + }, + { + "name": "component-detection-manifest.json", + "description": "Component Detection manifest", + "fileMatch": ["cdmanifest.json", "cgmanifest.json"], + "url": "https://www.schemastore.org/component-detection-manifest.json" + }, + { + "name": "contribute.json", + "description": "A open-source project contribution data by Mozilla", + "fileMatch": ["contribute.json"], + "url": "https://raw.githubusercontent.com/mozilla/contribute.json/master/schema.json" + }, + { + "name": "crowdin.yml", + "description": "Crowdin, a crowd-translation platform. Documentation: https://support.crowdin.com/configuration-file/", + "fileMatch": ["**/crowdin.yml"], + "url": "https://www.schemastore.org/crowdin.json" + }, + { + "name": "Crowdsec collection config", + "description": "A YAML Crowdsec collection configuration files", + "fileMatch": ["**/collections/*/*.yaml"], + "url": "https://raw.githubusercontent.com/crowdsecurity/crowdsec-yaml-schemas/main/collection_schema.yaml" + }, + { + "name": "Crowdsec parser config", + "description": "A YAML Crowdsec parser configuration files", + "fileMatch": [ + "**/parsers/s00-raw/*/*.yaml", + "**/parsers/s01-parse/*/*.yaml", + "**/parsers/s02-enrich/*/*.yaml", + "**/postoverflows/s00-enrich/*/*.yaml", + "**/postoverflows/s01-whitelist/*/*.yaml" + ], + "url": "https://raw.githubusercontent.com/crowdsecurity/crowdsec-yaml-schemas/main/parser_schema.yaml" + }, + { + "name": "Crowdsec scenario config", + "description": "A YAML Crowdsec scenario configuration files", + "fileMatch": ["**/scenarios/*/*.yaml"], + "url": "https://raw.githubusercontent.com/crowdsecurity/crowdsec-yaml-schemas/main/scenario_schema.yaml" + }, + { + "name": "cypress.json", + "description": "Cypress.io test runner configuration file", + "fileMatch": ["cypress.json"], + "url": "https://on.cypress.io/cypress.schema.json" + }, + { + "name": ".creatomic", + "description": "A config for Atomic Design 4 React generator", + "fileMatch": [".creatomic"], + "url": "https://www.schemastore.org/creatomic.json" + }, + { + "name": "CSpell (cspell.json)", + "description": "CSpell configuration file", + "fileMatch": [ + ".cspell.json", + "cspell.json", + ".cSpell.json", + "cSpell.json", + "cspell.config.json", + "cspell.config.yaml", + "cspell.config.yml", + "cspell.yaml", + "cspell.yml" + ], + "url": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/packages/cspell-types/cspell.schema.json" + }, + { + "name": "CSS Comb (.csscomb.json)", + "description": "CSS Comb's configuration file", + "fileMatch": [".csscomb.json"], + "url": "https://www.schemastore.org/csscomb.json" + }, + { + "name": "CSS Lint (.csslintrc)", + "description": "CSS Lint's configuration file", + "fileMatch": [".csslintrc"], + "url": "https://www.schemastore.org/csslintrc.json" + }, + { + "name": "Dart Build Config (dart-build.json)", + "description": "Configuration for Dart's build system", + "url": "https://www.schemastore.org/dart-build.json" + }, + { + "name": "Dart Test Config (dart-test.json)", + "description": "Configuration for Dart's test package", + "fileMatch": ["dart_test.yaml"], + "url": "https://www.schemastore.org/dart-test.json" + }, + { + "name": "DashLord Configuration", + "description": "Configuration for DashLord", + "fileMatch": ["dashlord.yaml", "dashlord.yml"], + "url": "https://raw.githubusercontent.com/socialgouv/dashlord/main/schema.json" + }, + { + "name": "Data Contract Specification", + "description": "Data Contract Specification file", + "fileMatch": [ + "datacontract.yaml", + "datacontract.yml", + "*-datacontract.yaml", + "*-datacontract.yml", + "*.datacontract.yaml", + "*.datacontract.yml", + "datacontract-*.yaml", + "datacontract-*.yml", + "**/datacontract/*.yml", + "**/datacontract/*.yaml", + "**/datacontracts/*.yml", + "**/datacontracts/*.yaml" + ], + "url": "https://raw.githubusercontent.com/datacontract/datacontract-specification/main/datacontract.schema.json" + }, + { + "name": "Data Product Specification", + "description": "Data Product Specification file", + "fileMatch": [ + "dataproduct.yaml", + "dataproduct.yml", + "*-dataproduct.yaml", + "*-dataproduct.yml", + "*.dataproduct.yaml", + "*.dataproduct.yml", + "dataproduct-*.yaml", + "dataproduct-*.yml", + "**/dataproduct/*.yml", + "**/dataproduct/*.yaml", + "**/dataproducts/*.yml", + "**/dataproducts/*.yaml" + ], + "url": "https://raw.githubusercontent.com/datamesh-architecture/dataproduct-specification/main/dataproduct.schema.json" + }, + { + "name": "datalogic-scan2deploy-android", + "description": "Datalogic Scan2Deploy Android file", + "fileMatch": [".dla.json"], + "url": "https://www.schemastore.org/datalogic-scan2deploy-android.json" + }, + { + "name": "datalogic-scan2deploy-ce", + "description": "Datalogic Scan2Deploy CE file", + "fileMatch": [".dlc.json"], + "url": "https://www.schemastore.org/datalogic-scan2deploy-ce.json" + }, + { + "name": "ddev-global", + "description": "DDEV global configuration file", + "fileMatch": ["**/.ddev/global_config.yaml"], + "url": "https://raw.githubusercontent.com/ddev/ddev/master/pkg/globalconfig/schema.json" + }, + { + "name": "ddev-project", + "description": "DDEV project configuration file", + "fileMatch": ["**/.ddev/config*.yaml"], + "url": "https://raw.githubusercontent.com/ddev/ddev/master/pkg/ddevapp/schema.json" + }, + { + "name": "debugsettings.json", + "description": "A the ASP.NET DebugSettings.json files", + "fileMatch": ["debugsettings.json"], + "url": "https://www.schemastore.org/debugsettings.json" + }, + { + "name": "Deno Config (deno.json)", + "description": "A JSON representation of a Deno configuration file", + "fileMatch": ["deno.json", "deno.jsonc"], + "url": "https://raw.githubusercontent.com/denoland/deno/main/cli/schemas/config-file.v1.json" + }, + { + "name": "dependabot.json", + "description": "Dependabot config.yml files", + "fileMatch": ["**/.dependabot/config.yml"], + "url": "https://www.schemastore.org/dependabot.json" + }, + { + "name": "dependabot-v2.json", + "description": "GitHub Actions' dependabot.yml files", + "fileMatch": ["**/.github/dependabot.yml", "**/.github/dependabot.yaml"], + "url": "https://www.schemastore.org/dependabot-2.0.json" + }, + { + "name": "Deployer Recipe", + "description": "A Deployer yaml recipes", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/deployphp/deployer/master/src/schema.json" + }, + { + "name": "Detekt Config (detekt.yml)", + "description": "Detekt Configuration File", + "fileMatch": ["detekt.yml", "detekt.yaml"], + "url": "https://www.schemastore.org/detekt-1.22.0.json", + "versions": { + "1.14.1": "https://www.schemastore.org/detekt-1.14.1.json", + "1.22.0": "https://www.schemastore.org/detekt-1.22.0.json" + } + }, + { + "name": "Discord Webhook", + "description": "Execute Discord Webhook", + "url": "https://raw.githubusercontent.com/AxoCode/json-schema/master/discord/webhook.json" + }, + { + "name": "dockerd.json", + "description": "Docker daemon configuration", + "fileMatch": ["dockerd.json", "docker.json"], + "url": "https://www.schemastore.org/dockerd.json" + }, + { + "name": "Docker Desktop extension metadata", + "description": "Docker Desktop extension metadata configuration file. Documentation: https://docs.docker.com/extensions/extensions-sdk/architecture/metadata/", + "fileMatch": [], + "url": "https://www.schemastore.org/docker-extension-metadata.json" + }, + { + "name": "docker bake", + "description": "Docker Bake configuration file. Documentation: https://docs.docker.com/build/bake/reference", + "fileMatch": ["docker-bake.json", "docker-bake.override.json"], + "url": "https://www.schemastore.org/docker-bake.json" + }, + { + "name": "docker sequencer", + "description": "docker-seq. Documentation: https://gitlab.com/sbenv/veroxis/docker-seq", + "fileMatch": [ + "docker-seq.yaml", + "docker-seq.json", + "docker-seq.yml", + "*.docker-seq.yaml", + "*.docker-seq.json", + "*.docker-seq.yml" + ], + "url": "https://gitlab.com/sbenv/veroxis/docker-seq/-/raw/HEAD/docker-seq.schema.json" + }, + { + "name": "DocFx Config (docfx.json)", + "description": "A DocFx configuration files", + "fileMatch": ["docfx.json"], + "url": "https://www.schemastore.org/docfx.json" + }, + { + "name": "Docs MCP Manifest", + "description": "Configuration file for Docs MCP", + "fileMatch": [".docs-mcp.json"], + "url": "https://raw.githubusercontent.com/speakeasy-api/docs-mcp/refs/heads/main/schemas/docs-mcp.schema.json" + }, + { + "name": "Dofigen", + "description": "Dofigen configuration file. Documentation: https://github.com/lenra-io/dofigen", + "fileMatch": [ + "dofigen.yaml", + "dofigen.json", + "dofigen.yml", + "*.dofigen.yaml", + "*.dofigen.json", + "*.dofigen.yml" + ], + "url": "https://www.schemastore.org/dofigen.json" + }, + { + "name": "Dolittle Artifacts", + "description": "A Dolittle bounded context's artifacts", + "fileMatch": ["**/.dolittle/artifacts.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.SDK/v5.0.0/Schemas/Artifacts.Configuration/artifacts.json" + }, + { + "name": "Dolittle Bounded Context Configuration", + "description": "A Dolittle application's bounded context configuration", + "fileMatch": ["bounded-context.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Applications.Configuration/bounded-context.json" + }, + { + "name": "Dolittle Event Horizons Configuration", + "description": "A Dolittle bounded context's event horizon configurations", + "fileMatch": ["**/.dolittle/event-horizons.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Events/event-horizons.json" + }, + { + "name": "Dolittle Resources Configuration", + "description": "A Dolittle bounded context's resource configurations", + "fileMatch": ["**/.dolittle/resources.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.Fundamentals/v5.1.0/Schemas/ResourceTypes.Configuration/resources.json" + }, + { + "name": "Dolittle Server Configuration", + "description": "A Dolittle bounded context's event horizon's interaction server configuration", + "fileMatch": ["**/.dolittle/server.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Server/server.json" + }, + { + "name": "Dolittle Tenants Configuration", + "description": "A Dolittle bounded context's tenant configuration", + "fileMatch": ["**/.dolittle/tenants.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Tenancy/tenants.json" + }, + { + "name": "Dolittle Tenant Map Configuration", + "description": "A Dolittle bounded context's tenant mapping configurations", + "fileMatch": ["**/.dolittle/tenant-map.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.Fundamentals/master/Schemas/Tenancy.Configuration/tenant-map.json" + }, + { + "name": "Dolittle Topology", + "description": "A Dolittle bounded context's topology", + "fileMatch": ["**/.dolittle/topology.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.SDK/master/Schemas/Applications.Configuration/topology.json" + }, + { + "name": "dotnet Release Index manifest", + "description": ".NET product collection manifests", + "fileMatch": ["dotnet-release-index.json"], + "url": "https://www.schemastore.org/dotnet-releases-index.json" + }, + { + "name": "dotnet-tools.json", + "description": ".NET tools manifest file", + "fileMatch": ["dotnet-tools.json"], + "url": "https://www.schemastore.org/dotnet-tools.json" + }, + { + "name": "dotnetcli.host.json", + "description": ".NET CLI template host files", + "fileMatch": ["dotnetcli.host.json"], + "url": "https://www.schemastore.org/dotnetcli.host.json" + }, + { + "name": "dprint.json", + "description": "dprint configuration file", + "fileMatch": [ + "dprint.json", + "dprint.jsonc", + ".dprint.json", + ".dprint.jsonc" + ], + "url": "https://dprint.dev/schemas/v0.json" + }, + { + "name": "drone.json", + "description": "Drone CI configuration file", + "fileMatch": [".drone.yml"], + "url": "https://www.schemastore.org/drone.json" + }, + { + "name": "Drush site aliases", + "description": "Drush 9 site aliases file", + "fileMatch": ["**/sites/*.site.yml"], + "url": "https://www.schemastore.org/drush.site.yml.json" + }, + { + "name": "dss-2.0.0.json", + "description": "Digital Signature Service Core Protocols, Elements, and Bindings Version 2.0", + "url": "https://www.schemastore.org/dss-2.0.0.json" + }, + { + "name": "dstack configuration", + "description": "YAML dstack configurations", + "fileMatch": ["*.dstack.yml", "*.dstack.yaml"], + "url": "https://dstack-runner-downloads.s3.eu-west-1.amazonaws.com/latest/schemas/configuration.json" + }, + { + "name": "dvc.yaml", + "description": "dvc.yaml file", + "fileMatch": ["dvc.yaml"], + "url": "https://raw.githubusercontent.com/iterative/dvcyaml-schema/master/schema.json" + }, + { + "name": "Devfile", + "description": "Devfiles", + "fileMatch": ["devfile.yaml", ".devfile.yaml"], + "url": "https://raw.githubusercontent.com/devfile/api/v2.2.0/schemas/latest/devfile.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/eclipse-che/che-server/master/wsmaster/che-core-api-workspace/src/main/resources/schema/1.0.0/devfile.json", + "2.0.0": "https://raw.githubusercontent.com/devfile/api/v2.0.0/schemas/latest/devfile.json", + "2.1.0": "https://raw.githubusercontent.com/devfile/api/v2.1.0/schemas/latest/devfile.json", + "2.2.0": "https://raw.githubusercontent.com/devfile/api/v2.2.0/schemas/latest/devfile.json" + } + }, + { + "name": "DWP Exchange - gateway", + "description": "exchange publishing tools gateway definitions", + "fileMatch": [ + "**/exchange-config/gateway/prod/*.yaml", + "**/exchange-config/gateway/prod/*.yml", + "**/exchange-config/gateway/non-prod/*.yaml", + "**/exchange-config/gateway/non-prod/*.yml" + ], + "url": "https://raw.githubusercontent.com/dwp/schemas/main/exchange/publishing-tools/gateway-config-schema.json" + }, + { + "name": "DWP Exchange - meta", + "description": "exchange publishing tools meta definition", + "fileMatch": [ + "**/exchange-config/meta.yaml", + "**/exchange-config/meta.yml" + ], + "url": "https://raw.githubusercontent.com/dwp/schemas/main/exchange/publishing-tools/meta-schema.json" + }, + { + "name": "DWP Exchange - catalogue entry", + "description": "exchange publishing tools catalogue entry definition", + "fileMatch": [ + "**/exchange-config/portal/catalogue-entry.yaml", + "**/exchange-config/portal/catalogue-entry.yml" + ], + "url": "https://raw.githubusercontent.com/dwp/schemas/main/exchange/publishing-tools/catalogue-entry-schema.json" + }, + { + "name": "ecosystem.json", + "description": "PM2 ecosystem config file", + "fileMatch": [ + "ecosystem.json", + "ecosystem.yml", + "ecosystem.yaml", + "ecosystem.config.json", + "ecosystem.config.yml", + "ecosystem.config.yaml" + ], + "url": "https://www.schemastore.org/pm2-ecosystem.json" + }, + { + "name": "ECA - Editor Code Assistant", + "description": "ECA AI coding agent configuration file", + "fileMatch": ["**/eca/config.json", "**/.eca/config.json"], + "url": "https://eca.dev/config.json" + }, + { + "name": "eksctl", + "description": "eksctl cluster configuration file", + "url": "https://raw.githubusercontent.com/weaveworks/eksctl/main/pkg/apis/eksctl.io/v1alpha5/assets/schema.json" + }, + { + "name": "Elgato Stream Deck", + "description": "Elgato Stream Deck plugin manifest file", + "fileMatch": [ + "elgato-stream-deck-plugin.yml", + "elgato-stream-deck-plugin.yaml" + ], + "url": "https://www.schemastore.org/elgato-stream-deck-plugin.json" + }, + { + "name": "Enterprise Contract Policy Spec", + "description": "Policy file for use with Enterprise Contract", + "url": "https://enterprisecontract.dev/enterprise-contract-controller/schema/policy_spec.json" + }, + { + "name": "Envilder Map File", + "description": "Envilder secret mapping file that maps environment variable names to cloud secret paths", + "fileMatch": ["envilder.json", "envilder.*.json"], + "url": "https://envilder.com/schema/map-file.v1.json" + }, + { + "name": ".esmrc.json", + "description": "Configuration files for the esm module/package in Node.js", + "fileMatch": [".esmrc", ".esmrc.json"], + "url": "https://www.schemastore.org/esmrc.json" + }, + { + "name": "Esquio", + "description": "Esquio configuration files", + "url": "https://www.schemastore.org/esquio.json" + }, + { + "name": "estampo.toml", + "description": "Configuration for estampo, the build system for reproducible 3D prints", + "fileMatch": ["estampo.toml", "estampo.*.toml"], + "url": "https://raw.githubusercontent.com/estampo/estampo/main/docs/estampo.schema.json" + }, + { + "name": "epr-manifest.json", + "description": "Entry Point Regulation manifest file", + "fileMatch": ["epr-manifest.json"], + "url": "https://www.schemastore.org/epr-manifest.json" + }, + { + "name": "electron-builder configuration file", + "description": "electron-build configuration file", + "fileMatch": ["electron-builder.json"], + "url": "https://www.schemastore.org/electron-builder.json" + }, + { + "name": "evcc.yaml", + "description": "evcc configuration file", + "fileMatch": ["evcc*.yaml"], + "url": "https://raw.githubusercontent.com/andig/evcc/master/schema.json" + }, + { + "name": "EveryVoice TTS Toolkit Aligner Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Aligner Configuration", + "fileMatch": ["everyvoice-aligner.yaml", "everyvoice-aligner.json"], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Data Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Data Configuration", + "fileMatch": [ + "everyvoice-shared-data.yaml", + "everyvoice-shared-data.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Text Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Text Configuration", + "fileMatch": [ + "everyvoice-shared-text.yaml", + "everyvoice-shared-text.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Vocoder Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Vocoder Configuration", + "fileMatch": [ + "everyvoice-spec-to-wav.yaml", + "everyvoice-spec-to-wav.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Feature Prediction Configuration", + "description": "EveryVoice Text-to-Speech Toolkit", + "fileMatch": [ + "everyvoice-text-to-spec.yaml", + "everyvoice-text-to-spec.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit E2E Configuration", + "description": "EveryVoice Text-to-Speech Toolkit E2E Configuration", + "fileMatch": [ + "everyvoice-text-to-wav.yaml", + "everyvoice-text-to-wav.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.3.json" + } + }, + { + "name": "Expo SDK", + "description": "Expo SDK app manifest", + "fileMatch": [], + "url": "https://www.schemastore.org/expo-53.0.0.json", + "versions": { + "37.0.0": "https://www.schemastore.org/expo-37.0.0.json", + "38.0.0": "https://www.schemastore.org/expo-38.0.0.json", + "39.0.0": "https://www.schemastore.org/expo-39.0.0.json", + "40.0.0": "https://www.schemastore.org/expo-40.0.0.json", + "41.0.0": "https://www.schemastore.org/expo-41.0.0.json", + "42.0.0": "https://www.schemastore.org/expo-42.0.0.json", + "46.0.0": "https://www.schemastore.org/expo-46.0.0.json", + "50.0.0": "https://www.schemastore.org/expo-50.0.0.json", + "52.0.0": "https://www.schemastore.org/expo-52.0.0.json", + "53.0.0": "https://www.schemastore.org/expo-53.0.0.json" + } + }, + { + "name": "EAS config", + "description": "The EAS config (eas.json) validation and documentation", + "fileMatch": ["eas.json"], + "url": "https://raw.githubusercontent.com/expo/eas-cli/main/packages/eas-json/schema/eas.schema.json" + }, + { + "name": "Expoot app config", + "description": "The config for creating a React Native Desktop app with best-effort Expo support, used by the expoot CLI", + "fileMatch": ["expoot-app.json"], + "url": "https://raw.githubusercontent.com/shirakaba/expoot/main/packages/expoot/schemas/expoot-app.schema.json" + }, + { + "name": "EasyVCR .NET", + "description": "EasyVCR .NET recording file", + "fileMatch": ["*.easyvcr", "**/cassettes/*.json"], + "url": "https://www.schemastore.org/easyvcr-net.json" + }, + { + "name": "ezd task runner", + "description": "ezd task runner. Documentation: https://gitlab.com/sbenv/veroxis/ezd-rs", + "fileMatch": ["ezd.yaml", "ezd.json", "ezd.yml"], + "url": "https://gitlab.com/sbenv/veroxis/ezd-rs/-/raw/HEAD/ezd.schema.json" + }, + { + "name": ".eslintrc", + "description": "ESLint configuration files", + "fileMatch": [ + ".eslintrc", + ".eslintrc.json", + ".eslintrc.yml", + ".eslintrc.yaml" + ], + "url": "https://www.schemastore.org/eslintrc.json" + }, + { + "name": "fabric.mod.json", + "description": "Metadata file used by the Fabric mod loader", + "fileMatch": ["fabric.mod.json"], + "url": "https://www.schemastore.org/fabric.mod.json" + }, + { + "name": "F-Droid Data metadata", + "description": "F-Droid Data app metadata files", + "fileMatch": ["**/metadata/*.yml"], + "url": "https://gitlab.com/fdroid/fdroiddata/-/raw/master/schemas/metadata.json" + }, + { + "name": ".ffizer.yaml", + "description": "ffizer template configuration files", + "fileMatch": [".ffizer.yaml"], + "url": "https://ffizer.github.io/ffizer/ffizer.schema.json" + }, + { + "name": "Firebase", + "description": "firebase", + "fileMatch": ["firebase.json"], + "url": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json" + }, + { + "name": "Google Chrome Related Website Sets", + "description": "Google Chrome Related Website Sets (formerly First Party Sets)", + "fileMatch": ["**/.well-known/first-party-set.json"], + "url": "https://raw.githubusercontent.com/GoogleChrome/related-website-sets/main/SCHEMA.json" + }, + { + "name": "FiQuS", + "description": "FiQuS input file", + "fileMatch": [ + "*_fiqus.json", + "*_fiqus.json5", + "*_fiqus.yaml", + "*_fiqus.yml", + "*_FiQuS.json", + "*_FiQuS.json5", + "*_FiQuS.yaml", + "*_FiQuS.yml" + ], + "url": "https://gitlab.cern.ch/steam/fiqus/-/raw/master/docs/schema.json" + }, + { + "name": "Flatpak Builder Manifest", + "description": "flatpak-builder manifest files", + "fileMatch": [ + "**/*.flatpak.json", + "**/*.flatpak.yaml", + "**/*.flatpak.yml" + ], + "url": "https://www.schemastore.org/flatpak-manifest.json" + }, + { + "name": "FlexGet Config", + "description": "FlexGet config file", + "fileMatch": ["**/.flexget/config.yml", "**/flexget/config.yml"], + "url": "https://github.com/Flexget/Flexget/releases/latest/download/flexget-config.schema.json" + }, + { + "name": "first-timers-bot", + "description": "A bot that helps onboarding new open-source contributors", + "fileMatch": ["**/.github/first-timers.yml"], + "url": "https://www.schemastore.org/first-timers.json" + }, + { + "name": "Foundry VTT - Base package Manifest", + "description": "Base Module/system/World manifest to inherit from", + "fileMatch": [], + "url": "https://www.schemastore.org/foundryvtt-base-package-manifest.json" + }, + { + "name": "Foundry VTT - Module Manifest", + "description": "Foundry VTT module.json files", + "fileMatch": ["**/modules/*/module.json"], + "url": "https://www.schemastore.org/foundryvtt-module-manifest.json" + }, + { + "name": "Foundry VTT - System Manifest", + "description": "Foundry VTT system.json files", + "fileMatch": ["**/systems/*/system.json"], + "url": "https://www.schemastore.org/foundryvtt-system-manifest.json" + }, + { + "name": "Foundry VTT - World Manifest", + "description": "Foundry VTT world.json files", + "fileMatch": ["**/worlds/*/world.json"], + "url": "https://www.schemastore.org/foundryvtt-world-manifest.json" + }, + { + "name": "Foundry VTT - System Data Template", + "description": "Foundry VTT template.json files", + "fileMatch": ["**/systems/*/template.json"], + "url": "https://www.schemastore.org/foundryvtt-template.json" + }, + { + "name": "Fossa configuration file", + "description": "FOSSA CLI's .fossa.yml configuration file", + "fileMatch": [".fossa.yml"], + "url": "https://raw.githubusercontent.com/fossas/fossa-cli/master/docs/references/files/fossa-yml.v3.schema.json" + }, + { + "name": "Fossa's fossa-deps file", + "description": "FOSSA CLI's fossa-deps file", + "fileMatch": ["fossa-deps.yml", "fossa-deps.yaml", "fossa-deps.json"], + "url": "https://raw.githubusercontent.com/fossas/fossa-cli/master/docs/references/files/fossa-deps.schema.json" + }, + { + "name": "Karakum configuration file", + "description": "configuring Karakum, a converter of TypeScript declaration files to Kotlin declarations", + "fileMatch": ["karakum.config.json"], + "url": "https://raw.githubusercontent.com/karakum-team/karakum/master/karakum-schema/karakum-schema.json" + }, + { + "name": "Knative Functions - func.yaml", + "description": "Knative Functions func.yaml files", + "fileMatch": ["func.yaml"], + "url": "https://raw.githubusercontent.com/knative/func/latest-release/schema/func_yaml-schema.json", + "versions": { + "1.7": "https://raw.githubusercontent.com/knative/func/release-1.7/schema/func_yaml-schema.json", + "1.8": "https://raw.githubusercontent.com/knative/func/release-1.8/schema/func_yaml-schema.json" + } + }, + { + "name": "Knip", + "description": "Knip configuration files", + "fileMatch": ["knip.json", ".knip.json", "knip.jsonc", ".knip.jsonc"], + "url": "https://unpkg.com/knip@5/schema.json" + }, + { + "name": "KSail", + "description": "Configuration for KSail", + "fileMatch": [ + "ksail-*.yaml", + "ksail-*.yml", + "ksail_*.yaml", + "ksail_*.yml", + "ksail.*.yaml", + "ksail.*.yml", + "*-ksail.yaml", + "*-ksail.yml", + "*_ksail.yaml", + "*_ksail.yml", + "*.ksail.yaml", + "*.ksail.yml", + "ksail.yaml", + "ksail.yml" + ], + "url": "https://raw.githubusercontent.com/devantler-tech/ksail/refs/heads/main/schemas/ksail-config.schema.json" + }, + { + "name": "function.json", + "description": "Azure Functions function.json files", + "fileMatch": ["function.json"], + "url": "https://www.schemastore.org/function.json" + }, + { + "name": "G2P Mapping Configuration", + "description": "defining mappings for Python-based grapheme-to-phoneme engine 'g2p'", + "fileMatch": ["config-g2p.yaml", "config-g2p.json"], + "url": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.3.json", + "versions": { + "2.0": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.0.json", + "2.1": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.1.json", + "2.2": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.2.json", + "2.3": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.3.json" + } + }, + { + "name": "Gaspar", + "description": "Configuration for Gaspar", + "fileMatch": ["gaspar.config.json"], + "url": "https://www.schemastore.org/gaspar-3.0.json", + "versions": { + "1.0": "https://www.schemastore.org/gaspar-1.0.json", + "3.0": "https://www.schemastore.org/gaspar-3.0.json" + } + }, + { + "name": "GatewayCore API Gateway", + "description": "Cloudtoid GatewayCore API Gateway and Reverse Proxy", + "fileMatch": [ + "gwcore.json", + "gwcore.yml", + "gwcore.yaml", + "gatewaycore.json", + "gatewaycore.yml", + "gatewaycore.yaml", + "*.gwcore.json", + "*.gwcore.yml", + "*.gwcore.yaml", + "*.gatewaycore.json", + "*.gatewaycore.yml", + "*.gatewaycore.yaml" + ], + "url": "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json", + "versions": { + "latest": "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json", + "2021-07": "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json" + } + }, + { + "name": "GCP Blueprint Metadata", + "description": "Blueprint Solutions for Google Cloud", + "fileMatch": ["metadata.yaml", "metadata.display.yaml"], + "url": "https://www.schemastore.org/gcp-blueprint-metadata.json" + }, + { + "name": "Gemini CLI settings", + "description": "Configuration for Gemini CLI settings files", + "fileMatch": [ + "**/.gemini/settings.json", + "**/gemini-cli/settings.json", + "**/GeminiCli/settings.json" + ], + "url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/refs/heads/main/schemas/settings.schema.json" + }, + { + "name": "Global Privacy Control", + "description": "Configuration for GPC, so a site can convey its support for the Global Privacy Control", + "fileMatch": ["**/.well-known/gpc.json"], + "url": "https://www.schemastore.org/gpc.json" + }, + { + "name": "GitVersion", + "description": "Configuration file for GitVersion", + "fileMatch": [ + "GitVersion.yml", + "GitVersion.yaml", + ".gitversion.yml", + ".gitversion.yaml" + ], + "url": "https://gitversion.net/schemas/6.7/GitVersion.configuration.json", + "versions": { + "5.12": "https://gitversion.net/schemas/5.12/GitVersion.configuration.json", + "6.0": "https://gitversion.net/schemas/6.0/GitVersion.configuration.json", + "6.1": "https://gitversion.net/schemas/6.1/GitVersion.configuration.json", + "6.2": "https://gitversion.net/schemas/6.2/GitVersion.configuration.json", + "6.3": "https://gitversion.net/schemas/6.3/GitVersion.configuration.json", + "6.4": "https://gitversion.net/schemas/6.4/GitVersion.configuration.json", + "6.5": "https://gitversion.net/schemas/6.5/GitVersion.configuration.json", + "6.6": "https://gitversion.net/schemas/6.6/GitVersion.configuration.json", + "6.7": "https://gitversion.net/schemas/6.7/GitVersion.configuration.json" + } + }, + { + "name": "Gitea Issue Template configuration", + "description": "YAML configuring Gitea Issue Templates", + "fileMatch": [ + "**/.gitea/ISSUE_TEMPLATE/config.yml", + "**/.gitea/ISSUE_TEMPLATE/config.yaml", + "**/.forgejo/ISSUE_TEMPLATE/config.yml", + "**/.forgejo/ISSUE_TEMPLATE/config.yaml" + ], + "url": "https://www.schemastore.org/gitea-issue-config.json" + }, + { + "name": "Gitea Issue Template forms", + "description": "YAML Gitea issue forms", + "fileMatch": [ + "**/.gitea/ISSUE_TEMPLATE/**.yml", + "**/.gitea/ISSUE_TEMPLATE/**.yaml", + "**/.forgejo/ISSUE_TEMPLATE/**.yml", + "**/.forgejo/ISSUE_TEMPLATE/**.yaml" + ], + "url": "https://www.schemastore.org/gitea-issue-forms.json" + }, + { + "name": "GitHub Action", + "description": "YAML GitHub Actions", + "fileMatch": ["action.yml", "action.yaml"], + "url": "https://www.schemastore.org/github-action.json" + }, + { + "name": "GitHub Discussion", + "description": "YAML GitHub Discussions", + "fileMatch": [ + "**/.github/DISCUSSION_TEMPLATE/*.yml", + "**/.github/DISCUSSION_TEMPLATE/*.yaml" + ], + "url": "https://www.schemastore.org/github-discussion.json" + }, + { + "name": "GitHub Funding", + "description": "YAML GitHub Funding", + "fileMatch": [ + "**/.github/FUNDING.yml", + "**/.github/FUNDING.yaml", + "**/.github/funding.yml", + "**/.github/funding.yaml" + ], + "url": "https://www.schemastore.org/github-funding.json" + }, + { + "name": "GitHub Issue Template configuration", + "description": "YAML configuring GitHub Issue Templates", + "fileMatch": [ + "**/.github/ISSUE_TEMPLATE/config.yml", + "**/.github/ISSUE_TEMPLATE/config.yaml" + ], + "url": "https://www.schemastore.org/github-issue-config.json" + }, + { + "name": "GitHub Issue Template forms", + "description": "YAML GitHub issue forms", + "fileMatch": [ + "**/.github/ISSUE_TEMPLATE/!(config).yml", + "**/.github/ISSUE_TEMPLATE/!(config).yaml" + ], + "url": "https://www.schemastore.org/github-issue-forms.json" + }, + { + "name": "GitHub Pages Jekyll", + "description": "YAML Jekyll configuration for sites built by GitHub Pages", + "url": "https://www.schemastore.org/github-pages-jekyll.json" + }, + { + "name": "GitHub Workflow", + "description": "YAML GitHub Workflow", + "fileMatch": [ + "**/.github/workflows/*.yml", + "**/.github/workflows/*.yaml", + "**/.gitea/workflows/*.yml", + "**/.gitea/workflows/*.yaml", + "**/.forgejo/workflows/*.yml", + "**/.forgejo/workflows/*.yaml" + ], + "url": "https://www.schemastore.org/github-workflow.json" + }, + { + "name": "GitHub Workflow Template Properties", + "description": "properties json file for a GitHub Workflow template", + "fileMatch": ["**/.github/workflow-templates/**.properties.json"], + "url": "https://www.schemastore.org/github-workflow-template-properties.json" + }, + { + "name": "GitHub automatically generated release notes configuration", + "description": "YAML GitHub automatically generated release notes config", + "fileMatch": ["**/.github/release.yml"], + "url": "https://www.schemastore.org/github-release-config.json" + }, + { + "name": "gitlab-ci", + "description": "GitLab CI Configuration file", + "fileMatch": [ + "**/.gitlab-ci.yml", + "**/.gitlab-ci.yaml", + "**/*.gitlab-ci.yml", + "**/*.gitlab-ci.yaml" + ], + "url": "https://gitlab.com/gitlab-org/gitlab-foss/-/raw/master/app/assets/javascripts/editor/schema/ci.json" + }, + { + "name": "Gitpod Automations", + "description": "Configuration for Gitpod Automations", + "fileMatch": [ + "**/.gitpod/automations.json", + "**/.gitpod/automations.yaml", + "**/.gitpod/automations.yml", + "**/.gitpod/automation.yaml" + ], + "url": "https://app.gitpod.io/jsonschema/v1/automations_file.jsonschema.json" + }, + { + "name": "Gitpod Configuration", + "description": "configuring Gitpod.io", + "fileMatch": [".gitpod.yml"], + "url": "https://gitpod.io/schemas/gitpod-schema.json" + }, + { + "name": "Ansible Execution Environment", + "description": "Ansible execution-environment.yml file", + "fileMatch": ["**/execution-environment.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/execution-environment.json" + }, + { + "name": "Ansible Meta", + "description": "Ansible meta/main.yml file", + "fileMatch": ["**/meta/main.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/meta.json" + }, + { + "name": "Ansible Meta Runtime", + "description": "Ansible meta/runtime.yml file", + "fileMatch": ["**/meta/runtime.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/meta-runtime.json" + }, + { + "name": "Ansible Argument Specs", + "description": "Ansible meta/argument_specs.yml file", + "fileMatch": ["**/meta/argument_specs.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/role-arg-spec.json" + }, + { + "name": "Ansible Requirements", + "description": "Ansible requirements file", + "fileMatch": ["requirements.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/requirements.json" + }, + { + "name": "Ansible Vars File", + "description": "Ansible variables File", + "fileMatch": [ + "**/vars/*.yml", + "**/vars/*.yaml", + "**/host_vars/*.yml", + "**/host_vars/*.yaml", + "**/group_vars/*.yml", + "**/group_vars/*.yaml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/vars.json" + }, + { + "name": "Ansible Tasks File", + "description": "Ansible tasks file", + "fileMatch": [ + "**/tasks/*.yml", + "**/tasks/*.yaml", + "**/handlers/*.yml", + "**/handlers/*.yaml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/tasks" + }, + { + "name": "Ansible Playbook", + "description": "Ansible playbook files", + "fileMatch": [ + "playbook.yml", + "playbook.yaml", + "site.yml", + "site.yaml", + "**/playbooks/*.yml", + "**/playbooks/*.yaml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/playbook" + }, + { + "name": "Ansible Rulebook", + "description": "Ansible rulebook files", + "fileMatch": ["**/rulebooks/*.yml", "**/rulebooks/*.yaml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-rulebook/main/ansible_rulebook/schema/ruleset_schema.json" + }, + { + "name": "Ansible Inventory", + "description": "Ansible inventory files", + "fileMatch": ["inventory.yml", "inventory.yaml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/inventory.json" + }, + { + "name": "Ansible Collection Galaxy", + "description": "Ansible Collection Galaxy metadata", + "fileMatch": ["galaxy.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/galaxy.json" + }, + { + "name": "Ansible-lint Configuration", + "description": "Ansible-lint Configuration", + "fileMatch": [".ansible-lint", "**/.config/ansible-lint.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible-lint-config.json" + }, + { + "name": "Ansible Navigator Configuration", + "description": "Ansible Navigator Configuration", + "fileMatch": [ + ".ansible-navigator.json", + ".ansible-navigator.yaml", + ".ansible-navigator.yml", + "ansible-navigator.json", + "ansible-navigator.yaml", + "ansible-navigator.yml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-navigator/main/src/ansible_navigator/data/ansible-navigator.json" + }, + { + "name": "global.json", + "description": "ASP.NET global configuration file", + "fileMatch": ["global.json"], + "url": "https://www.schemastore.org/global.json" + }, + { + "name": "Golangci-lint Configuration", + "description": "golangci-lint configuration file", + "fileMatch": [ + ".golangci.yml", + ".golangci.yaml", + ".golangci.toml", + ".golangci.json" + ], + "url": "https://golangci-lint.run/jsonschema/golangci.jsonschema.json", + "versions": { + "1": "https://golangci-lint.run/jsonschema/golangci.v1.jsonschema.json", + "2": "https://golangci-lint.run/jsonschema/golangci.v2.jsonschema.json" + } + }, + { + "name": "Golangci-lint Custom Plugins Configuration", + "description": "golangci-lint custom plugins configuration file", + "fileMatch": [".custom-gcl.yml", ".custom-gcl.yaml"], + "url": "https://golangci-lint.run/jsonschema/custom-gcl.jsonschema.json" + }, + { + "name": "go-feature-flag Flag Configuration", + "description": "go-feature-flag flag configuration file", + "fileMatch": ["*.goff.yml", "*.goff.yaml", "*.goff.json", "*.goff.toml"], + "url": "https://raw.githubusercontent.com/thomaspoignant/go-feature-flag/main/.schema/flag-schema.json" + }, + { + "name": "Goreleaser", + "description": "Goreleaser configuration file", + "fileMatch": [ + ".goreleaser.yml", + ".goreleaser.yaml", + "goreleaser.yml", + "goreleaser.yaml" + ], + "url": "https://goreleaser.com/static/schema.json" + }, + { + "name": "Goreleaser Pro", + "description": "Goreleaser Pro configuration file", + "url": "https://goreleaser.com/static/schema-pro.json" + }, + { + "name": "Goss", + "description": "Goss - Quick and Easy server validation", + "fileMatch": ["goss.yaml", "goss.yml", "goss.json"], + "url": "https://github.com/goss-org/goss/raw/master/docs/schema.yaml" + }, + { + "name": "Grafana 5.x Dashboard", + "description": "Grafana 5.x Dashboards", + "url": "https://www.schemastore.org/grafana-dashboard-5.x.json" + }, + { + "name": "tree-sitter grammar.json", + "description": "tree-sitter grammar.json", + "fileMatch": ["grammar.json"], + "url": "https://raw.githubusercontent.com/tree-sitter/tree-sitter/master/docs/assets/schemas/config.schema.json" + }, + { + "name": "Treefmt", + "description": "Treefmt configuration file", + "fileMatch": ["treefmt.toml"], + "url": "https://www.schemastore.org/treefmt.json" + }, + { + "name": "GraphQL Mesh", + "description": "GraphQL Mesh config file", + "fileMatch": [ + ".meshrc.yml", + ".meshrc.yaml", + ".meshrc.json", + ".graphql-mesh.yaml", + ".graphql-mesh.yml" + ], + "url": "https://unpkg.com/@graphql-mesh/types/esm/config-schema.json" + }, + { + "name": "GraphQL Config", + "description": "GraphQL Config config file", + "fileMatch": [ + "graphql.config.json", + "graphql.config.yaml", + "graphql.config.yml", + ".graphqlrc", + ".graphqlrc.json", + ".graphqlrc.yaml", + ".graphqlrc.yml" + ], + "url": "https://unpkg.com/graphql-config/config-schema.json" + }, + { + "name": "GraphQL Code Generator", + "description": "GraphQL Code Generator config file", + "fileMatch": [ + "codegen.yml", + "codegen.yaml", + "codegen.json", + ".codegen.yml", + ".codegen.yaml", + ".codegen.json" + ], + "url": "https://www.graphql-code-generator.com/config.schema.json" + }, + { + "name": "GroovyLint configuration", + "description": "Rules to apply with npm-groovy-lint tool", + "fileMatch": [ + ".groovylintrc.json", + ".groovylintrc.js", + ".groovylintrc.cjs", + ".groovylintrc.yml", + ".groovylintrc.yaml", + ".groovylintrc" + ], + "url": "https://raw.githubusercontent.com/nvuillam/npm-groovy-lint/refs/heads/main/docs/groovy-lint.jsonschema.json" + }, + { + "name": "Grunt copy task", + "description": "Grunt copy task configuration file", + "fileMatch": ["copy.json"], + "url": "https://www.schemastore.org/grunt-copy-task.json" + }, + { + "name": "Grunt clean task", + "description": "Grunt clean task configuration file", + "fileMatch": ["clean.json"], + "url": "https://www.schemastore.org/grunt-clean-task.json" + }, + { + "name": "Grunt cssmin task", + "description": "Grunt cssmin task configuration file", + "fileMatch": ["cssmin.json"], + "url": "https://www.schemastore.org/grunt-cssmin-task.json" + }, + { + "name": "Grunt JSHint task", + "description": "Grunt JSHint task configuration file", + "fileMatch": ["jshint.json"], + "url": "https://www.schemastore.org/grunt-jshint-task.json" + }, + { + "name": "Grunt Watch task", + "description": "Grunt Watch task configuration file", + "fileMatch": ["watch.json"], + "url": "https://www.schemastore.org/grunt-watch-task.json" + }, + { + "name": "Grunt base task", + "description": "standard Grunt tasks", + "fileMatch": ["**/grunt/*.json", "*-tasks.json"], + "url": "https://www.schemastore.org/grunt-task.json" + }, + { + "name": "HashiCorp Vault", + "description": "HashiCorp's Vault configuration file", + "fileMatch": ["vault.json", "vault.config.json"], + "url": "https://www.schemastore.org/vault.json" + }, + { + "name": "haxelib.json", + "description": "Haxelib manifest", + "fileMatch": ["haxelib.json"], + "url": "https://raw.githubusercontent.com/HaxeFoundation/haxelib/master/schema.json" + }, + { + "name": "Hayson", + "description": "Project Haystack data", + "fileMatch": ["*.hayson.json", "*.hayson.yaml", "*.hayson.yml"], + "url": "https://raw.githubusercontent.com/j2inn/hayson/master/hayson-json-schema.json" + }, + { + "name": "Haystack Pipeline", + "description": "Haystack Pipeline YAML file describing the nodes of the pipelines. Documentation: https://haystack.deepset.ai/components/pipelines#yaml-file-definitions", + "fileMatch": ["*.haystack-pipeline.yml"], + "url": "https://raw.githubusercontent.com/deepset-ai/haystack-json-schema/main/json-schema/haystack-pipeline.schema.json" + }, + { + "name": "Hazelcast 5 Configuration", + "description": "YAML configuring Hazelcast 5 Platform (member and client)", + "fileMatch": [ + "hazelcast*.yaml", + "hazelcast*.json", + "hz-*.yaml", + "hz-*.json" + ], + "url": "https://hazelcast.com/schema/config/hazelcast-config-5.7.json" + }, + { + "name": "Home Assistant Integration Manifest", + "description": "Home Assistant integration manifest file. Documentation: https://developers.home-assistant.io/docs/creating_integration_manifest/", + "fileMatch": [ + "**/homeassistant/components/*/manifest.json", + "**/custom_components/*/manifest.json" + ], + "url": "https://raw.githubusercontent.com/home-assistant/core/refs/heads/dev/script/json_schemas/manifest_schema.json" + }, + { + "name": "Homer dashboard configuration", + "description": "Home dashboard configuration file. Documentation: https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/bastienwirtz/homer/main/.schema/config-schema.json" + }, + { + "name": "host.json", + "description": "Azure Functions host.json files", + "fileMatch": ["host.json"], + "url": "https://www.schemastore.org/host.json" + }, + { + "name": "host-meta.json", + "description": "host-meta JDR files", + "fileMatch": ["host-meta.json"], + "url": "https://www.schemastore.org/host-meta.json" + }, + { + "name": ".htmlhintrc", + "description": "HTML Hint configuration file", + "fileMatch": [".htmlhintrc"], + "url": "https://www.schemastore.org/htmlhint.json" + }, + { + "name": ".htmlvalidate", + "description": "HTML-validate is an offline HTML5 validator", + "fileMatch": [".htmlvalidate.json"], + "url": "https://html-validate.org/schemas/config.json" + }, + { + "name": "Ory Hydra configuration", + "description": "Ory Hydra configuration file", + "fileMatch": ["hydra.json", "hydra.yml", "hydra.yaml", "hydra.toml"], + "url": "https://raw.githubusercontent.com/ory/hydra/master/.schema/version.schema.json" + }, + { + "name": "Hyperfoil benchmark configuration", + "description": "Benchmark definition format for the Hyperfoil HTTP benchmark framework", + "fileMatch": ["*.hf.yaml"], + "url": "https://hyperfoil.io/schema.json" + }, + { + "name": "Hulak Configuration", + "description": "Hulak API client configuration file", + "fileMatch": ["**/*.hk.yaml", "**/*.hk.yml", "**/*.hk.json"], + "url": "https://raw.githubusercontent.com/xaaha/hulak/refs/heads/main/assets/schema.json" + }, + { + "name": "IBM Zapp document", + "description": "IBM Z APPlication configuration file for IBM zDevOps development tools such as Z Open Editor", + "fileMatch": ["zapp.yaml", "zapp.yml", "zapp.json"], + "url": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.8.0.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.0.0.json", + "1.1.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.1.0.json", + "1.2.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.2.0.json", + "1.2.1": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.2.1.json", + "1.3.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.3.0.json", + "1.4.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.4.0.json", + "1.5.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.5.0.json", + "1.6.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.6.0.json", + "1.7.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.7.0.json", + "1.8.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.8.0.json" + } + }, + { + "name": "IBM zCodeFormatSettings", + "description": "IBM Enterprise languages code formatter settings file for IBM zDevOps development tools such as Z Open Editor", + "fileMatch": ["zcodeformat.yaml", "zcodeformat.json"], + "url": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zcodeformat/zcodeformat-schema-0.0.1.json" + }, + { + "name": "ide.host.json", + "description": "IDE template host file", + "fileMatch": ["ide.host.json"], + "url": "https://www.schemastore.org/ide.host.json" + }, + { + "name": "ifstate.yaml", + "description": "IfState configuration file", + "fileMatch": ["ifstate.yaml", "**/ifstate/config.yml"], + "url": "https://ifstate.net/schema/2/ifstate.conf.schema.json", + "versions": { + "0.6": "https://ifstate.net/schema/0.6/ifstate.conf.schema.json", + "0.7": "https://ifstate.net/schema/0.7/ifstate.conf.schema.json", + "0.8": "https://ifstate.net/schema/0.8/ifstate.conf.schema.json", + "0.9": "https://ifstate.net/schema/0.9/ifstate.conf.schema.json", + "1.0": "https://ifstate.net/schema/1.0/ifstate.conf.schema.json", + "1.1": "https://ifstate.net/schema/1.1/ifstate.conf.schema.json", + "1.2": "https://ifstate.net/schema/1.2/ifstate.conf.schema.json", + "1.3": "https://ifstate.net/schema/1.3/ifstate.conf.schema.json", + "1.4": "https://ifstate.net/schema/1.4/ifstate.conf.schema.json", + "1.5": "https://ifstate.net/schema/1.5/ifstate.conf.schema.json", + "1.6": "https://ifstate.net/schema/1.6/ifstate.conf.schema.json", + "1.7": "https://ifstate.net/schema/1.7/ifstate.conf.schema.json", + "1.8": "https://ifstate.net/schema/1.8/ifstate.conf.schema.json", + "1.9": "https://ifstate.net/schema/1.9/ifstate.conf.schema.json", + "1.10": "https://ifstate.net/schema/1.10/ifstate.conf.schema.json", + "1.11": "https://ifstate.net/schema/1.11/ifstate.conf.schema.json", + "1.12": "https://ifstate.net/schema/1.12/ifstate.conf.schema.json", + "1.13": "https://ifstate.net/schema/1.13/ifstate.conf.schema.json", + "2.0": "https://ifstate.net/schema/2.0/ifstate.conf.schema.json", + "2.1": "https://ifstate.net/schema/2.1/ifstate.conf.schema.json" + } + }, + { + "name": "imageoptimizer.json", + "description": "imageoptimizer.json files", + "fileMatch": ["imageoptimizer.json"], + "url": "https://www.schemastore.org/imageoptimizer.json" + }, + { + "name": ".imgbotconfig", + "description": "Imgbot Configuration Files", + "fileMatch": [".imgbotconfig"], + "url": "https://www.schemastore.org/imgbotconfig.json" + }, + { + "name": "IMG Catapult PSP", + "description": "Imagination Technologies Catapult platform support pack contents", + "fileMatch": ["contents.yaml"], + "url": "https://www.schemastore.org/img-catapult-psp-1.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/img-catapult-psp-1.0.0.json" + } + }, + { + "name": "importmap.json", + "description": "Import Maps files", + "fileMatch": ["importmap.json", "import_map.json", "import-map.json"], + "url": "https://www.schemastore.org/importmap.json" + }, + { + "name": "Infrahub", + "description": "Repository config definition for Infrahub by OpsMill", + "fileMatch": [".infrahub.yml", ".infrahub.yaml"], + "url": "https://schema.infrahub.app/python-sdk/repository-config/latest.json" + }, + { + "name": "instant_python_config", + "description": "Instant Python Configuration", + "fileMatch": ["ipy.yml"], + "url": "https://raw.githubusercontent.com/instant-python/instant-python/main/schemas/ipy-schemas.json" + }, + { + "name": "instant_python_custom_project", + "description": "Instant Python Custom Project Structure", + "fileMatch": ["main_structure.yml"], + "url": "https://raw.githubusercontent.com/instant-python/instant-python/main/schemas/main-structure-schema.json" + }, + { + "name": "ioBroker Configuration", + "description": "The configuration file of an ioBroker installation", + "fileMatch": ["iobroker.json", "iobroker-dist.json"], + "url": "https://raw.githubusercontent.com/ioBroker/ioBroker.js-controller/master/schemas/iobroker.json" + }, + { + "name": "ioBroker JSON UI", + "description": "ioBroker JSON-based admin user interfaces - config, custom and tabs", + "fileMatch": ["jsonConfig.json", "jsonCustom.json", "jsonTab.json"], + "url": "https://raw.githubusercontent.com/ioBroker/json-config/main/schemas/jsonConfig.json" + }, + { + "name": "ioBroker Package manifest", + "description": "ioBroker adapters io-package file", + "fileMatch": ["io-package.json"], + "url": "https://raw.githubusercontent.com/ioBroker/ioBroker.js-controller/master/schemas/io-package.json" + }, + { + "name": "ixpect.conf.yaml", + "description": "IXpect configuration file", + "fileMatch": ["ixpect.conf.yaml"], + "url": "https://ixpect.net/0.1/schema/ixpect.conf.schema.json", + "versions": { + "0.1": "https://ixpect.net/0.1/schema/ixpect.conf.schema.json" + } + }, + { + "name": "Jasmine", + "description": "jasmine JSON config file", + "fileMatch": ["jasmine.json"], + "url": "https://www.schemastore.org/jasmine.json" + }, + { + "name": "Jekyll", + "description": "Jekyll static site generator config file", + "fileMatch": ["_config.yml"], + "url": "https://www.schemastore.org/jekyll.json" + }, + { + "name": "Jenkins X Pipelines", + "description": "Jenkins X Pipeline YAML configuration files", + "fileMatch": ["jenkins-x*.yml"], + "url": "https://jenkins-x.io/schemas/jx-schema.json" + }, + { + "name": "Jenkins X Requirements", + "description": "Jenkins X Requirements YAML configuration file", + "fileMatch": ["jx-requirements.yml"], + "url": "https://jenkins-x.io/schemas/jx-requirements.json" + }, + { + "name": "Jest", + "description": "A JavaScript Testing Framework", + "fileMatch": ["jest.config.json"], + "url": "https://www.schemastore.org/jest.json" + }, + { + "name": "JDownloader2 crawler single-rules", + "description": "A validating a single jdownloader2 rule", + "fileMatch": ["*.jd2cr", "*.jd2cr.json"], + "url": "https://raw.githubusercontent.com/sergxerj/jdownloader2-crawler-rule-json-schema/main/jd2cr.schema.json" + }, + { + "name": "JDownloader2 crawler multi-rules", + "description": "A validating an array of jdownloader2 rules", + "fileMatch": ["*.jd2mcr", "*.jd2mcr.json", "*.linkcrawlerrules.json"], + "url": "https://raw.githubusercontent.com/sergxerj/jdownloader2-crawler-rule-json-schema/main/jd2mcr.schema.json" + }, + { + "name": "JFrog Applications Config", + "description": "Refines JFrog Advanced Security scans behavior", + "fileMatch": ["jfrog-apps-config.yml"], + "url": "https://raw.githubusercontent.com/jfrog/jfrog-apps-config/main/schema.json" + }, + { + "name": "JFrog File Spec", + "description": "JFrog File Spec", + "fileMatch": ["**/filespecs/*.json", "*filespec*.json", "*.filespec"], + "url": "https://raw.githubusercontent.com/jfrog/jfrog-cli/v2/schema/filespec-schema.json" + }, + { + "name": "JMeter DSL cli config", + "description": "jmdsl JMeter DSL command line configuration file", + "fileMatch": ["*.jmdsl.yml", "*.jmdsl.yaml", "*.jmdsl.json"], + "url": "https://github.com/abstracta/jmeter-java-dsl/releases/latest/download/jmdsl-config-schema.json" + }, + { + "name": "Jocker", + "description": "Rust mono-repo binaries runner", + "fileMatch": [ + "jocker.yml", + "jocker.yaml", + "jocker.override.yml", + "jocker.override.yaml" + ], + "url": "https://raw.githubusercontent.com/Wykiki/jocker/main/schema.json" + }, + { + "name": "Jovo Language Models", + "description": "Jovo language Models. Documentation: https://www.jovo.tech/docs/model", + "url": "https://www.schemastore.org/jovo-language-model.json" + }, + { + "name": "JReleaser", + "description": "JReleaser config file", + "fileMatch": ["jreleaser.yml", "jreleaser.json"], + "url": "https://www.schemastore.org/jreleaser-1.24.0.json", + "versions": { + "1.24.0": "https://www.schemastore.org/jreleaser-1.24.0.json", + "1.23.0": "https://www.schemastore.org/jreleaser-1.23.0.json", + "1.22.0": "https://www.schemastore.org/jreleaser-1.22.0.json", + "1.21.0": "https://www.schemastore.org/jreleaser-1.21.0.json", + "1.20.0": "https://www.schemastore.org/jreleaser-1.20.0.json", + "1.19.0": "https://www.schemastore.org/jreleaser-1.19.0.json", + "1.18.0": "https://www.schemastore.org/jreleaser-1.18.0.json", + "1.17.0": "https://www.schemastore.org/jreleaser-1.17.0.json", + "1.16.0": "https://www.schemastore.org/jreleaser-1.16.0.json", + "1.15.0": "https://www.schemastore.org/jreleaser-1.15.0.json", + "1.14.0": "https://www.schemastore.org/jreleaser-1.14.0.json", + "1.13.1": "https://www.schemastore.org/jreleaser-1.13.1.json", + "1.13.0": "https://www.schemastore.org/jreleaser-1.13.0.json", + "1.12.0": "https://www.schemastore.org/jreleaser-1.12.0.json", + "1.11.0": "https://www.schemastore.org/jreleaser-1.11.0.json", + "1.10.0": "https://www.schemastore.org/jreleaser-1.10.0.json", + "1.9.0": "https://www.schemastore.org/jreleaser-1.9.0.json", + "1.8.0": "https://www.schemastore.org/jreleaser-1.8.0.json", + "1.7.0": "https://www.schemastore.org/jreleaser-1.7.0.json", + "1.6.0": "https://www.schemastore.org/jreleaser-1.6.0.json" + } + }, + { + "name": "JSR Package Config (jsr.json)", + "description": "JSR package configuration file", + "fileMatch": ["jsr.json", "jsr.jsonc"], + "url": "https://jsr.io/schema/config-file.v1.json" + }, + { + "name": ".jsbeautifyrc", + "description": "js-beautify configuration file", + "fileMatch": [".jsbeautifyrc"], + "url": "https://www.schemastore.org/jsbeautifyrc.json" + }, + { + "name": ".jsbeautifyrc-nested", + "description": "js-beautify configuration file allowing nested `js`, `css`, and `html` attributes", + "fileMatch": [".jsbeautifyrc"], + "url": "https://www.schemastore.org/jsbeautifyrc-nested.json" + }, + { + "name": ".jscsrc", + "description": "JSCS configuration file", + "fileMatch": [".jscsrc", "jscsrc.json"], + "url": "https://www.schemastore.org/jscsrc.json" + }, + { + "name": ".jshintrc", + "description": "JSHint configuration file", + "fileMatch": [".jshintrc"], + "url": "https://www.schemastore.org/jshintrc.json" + }, + { + "name": ".jsinspectrc", + "description": "JSInspect configuration file", + "fileMatch": [".jsinspectrc"], + "url": "https://www.schemastore.org/jsinspectrc.json" + }, + { + "name": "JSON-API", + "description": "JSON API document", + "url": "https://jsonapi.org/schema" + }, + { + "name": "JSON Document Transform", + "description": "JSON Document Transform", + "url": "https://www.schemastore.org/jdt.json" + }, + { + "name": "JSON Feed", + "description": "the JSON Feed format", + "fileMatch": ["feed.json"], + "url": "https://www.schemastore.org/feed.json", + "versions": { + "1": "https://www.schemastore.org/feed-1.json", + "1.1": "https://www.schemastore.org/feed.json" + } + }, + { + "name": "*.jsonld", + "description": "JSON Linked Data files", + "fileMatch": ["*.jsonld"], + "url": "https://www.schemastore.org/jsonld.json" + }, + { + "name": "JSONPatch", + "description": "JSONPatch files", + "fileMatch": ["*.patch", "*.patch.json", "*.patch.yml", "*.patch.yaml"], + "url": "https://www.schemastore.org/json-patch.json" + }, + { + "name": "jsconfig.json", + "description": "JavaScript project configuration file", + "fileMatch": ["jsconfig.json"], + "url": "https://www.schemastore.org/jsconfig.json" + }, + { + "name": "k3d.yaml", + "description": "k3d configuration file", + "fileMatch": [ + "k3d.yaml", + "k3d.yml", + ".k3d.yml", + ".k3d.yaml", + "*.k3d.yaml", + "*.k3d.yml" + ], + "url": "https://raw.githubusercontent.com/rancher/k3d/main/pkg/config/config.versions.schema.json" + }, + { + "name": "Kas", + "description": "Configuration for the Kas setup tool", + "url": "https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json" + }, + { + "name": "k9s aliases.yaml", + "description": "k9s CLI aliases.yaml file. Documentation: https://k9scli.io/topics/aliases", + "fileMatch": ["**/k9s/aliases.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/aliases.json" + }, + { + "name": "k9s config.yaml", + "description": "k9s CLI config.yaml file. Documentation: https://k9scli.io/topics/config", + "fileMatch": ["**/k9s/config.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/k9s.json" + }, + { + "name": "k9s cluster-config.yaml", + "description": "k9s CLI cluster-config.yaml file. Documentation: https://k9scli.io/topics/config", + "fileMatch": ["**/k9s/clusters/*/*/config.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/context.json" + }, + { + "name": "k9s hotkeys.yaml", + "description": "k9s CLI hotkeys.yaml file. Documentation: https://k9scli.io/topics/hotkeys", + "fileMatch": ["**/k9s/hotkeys.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/hotkeys.json" + }, + { + "name": "k9s plugins.yaml", + "description": "k9s CLI plugins.yaml file. Documentation: https://k9scli.io/topics/plugins", + "fileMatch": ["**/k9s/plugins.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/plugins.json" + }, + { + "name": "k9s skin.yaml", + "description": "k9s CLI skin.yaml file. Documentation: https://k9scli.io/topics/skins", + "fileMatch": ["**/k9s/skins/*.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/skin.json" + }, + { + "name": "k9s views.yaml", + "description": "k9s CLI views.yaml file. Documentation: https://k9scli.io/topics/columns", + "fileMatch": ["**/k9s/views.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/views.json" + }, + { + "name": "KIMMDY config file", + "description": "KIMMDY config file, see: graeter-group.github.io/kimmdy", + "fileMatch": ["kimmdy.yml", "kimmdy.yaml"], + "url": "https://raw.githubusercontent.com/graeter-group/kimmdy/main/src/kimmdy/kimmdy-yaml-schema.json" + }, + { + "name": "Kestra flow file", + "description": "Kestra Flow definition file, see: kestra.io/docs/workflow-components/flow#flow-sample", + "fileMatch": ["**/flows/*.yml"], + "url": "https://www.schemastore.org/kestra-0.19.0.json", + "versions": { + "0.18.0": "https://www.schemastore.org/kestra-0.18.0.json", + "0.18.1": "https://www.schemastore.org/kestra-0.18.1.json", + "0.18.2": "https://www.schemastore.org/kestra-0.18.2.json", + "0.18.3": "https://www.schemastore.org/kestra-0.18.3.json", + "0.19.0": "https://www.schemastore.org/kestra-0.19.0.json" + } + }, + { + "name": "Kometa config file", + "description": "Kometa (formerly Plex Meta Manager or PMM) configuration file for stable versions", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/kometa-team/kometa/master/json-schema/config-schema.json" + }, + { + "name": "Kometa (nightly) config file", + "description": "Kometa (formerly Plex Meta Manager or PMM) configuration file for nightly versions", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/kometa-team/kometa/nightly/json-schema/config-schema.json" + }, + { + "name": "KrakenD", + "description": "KrakenD API Gateway configuration file", + "fileMatch": [ + "krakend.yaml", + "krakend.yml", + "krakend.json", + "krakend.toml" + ], + "url": "https://www.krakend.io/schema/krakend.json" + }, + { + "name": "Datadog Continuous Testing", + "description": "Datadog Continuous Testing Configuration file", + "fileMatch": ["*.synthetics.json"], + "url": "https://raw.githubusercontent.com/DataDog/schema/main/datadog-ci/synthetics/test-config.schema.json" + }, + { + "name": "Datadog Service Definition", + "description": "Datadog Service Definition file", + "fileMatch": [ + "service.datadog.yaml", + "service.datadog.yml", + "service.datadog.json" + ], + "url": "https://raw.githubusercontent.com/DataDog/schema/main/service-catalog/service.schema.json" + }, + { + "name": "Datadog Software Catalog", + "description": "Datadog Software Catalog Definition file", + "fileMatch": [ + "entity.datadog.yaml", + "entity.datadog.yml", + "entity.datadog.json" + ], + "url": "https://raw.githubusercontent.com/DataDog/schema/main/service-catalog/entity.schema.json" + }, + { + "name": "Ory Keto configuration", + "description": "Ory Keto configuration file", + "fileMatch": ["keto.json", "keto.yml", "keto.yaml", "keto.toml"], + "url": "https://raw.githubusercontent.com/ory/keto/master/.schema/version.schema.json" + }, + { + "name": "Knowledge Unit", + "description": "Verified knowledge artifact produced through multi-model deliberation (IETF Internet-Draft: draft-farley-acta-knowledge-units)", + "fileMatch": ["ku-*.json", "knowledge-unit.json", "**/ku/*.json"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/knowledge-unit.json" + }, + { + "name": "kontinuous-values.yaml", + "description": "Kontinuous values.yaml configuration files", + "fileMatch": [ + "**/.kontinuous/values.yaml", + "**/.kontinuous/env/*/values.yaml" + ], + "url": "https://raw.githubusercontent.com/socialgouv/kontinuous/v1/docs/values.schema.json" + }, + { + "name": "kontinuous-config.yaml", + "description": "Kontinuous config.yaml configuration files", + "fileMatch": ["**/.kontinuous/config.yaml"], + "url": "https://raw.githubusercontent.com/socialgouv/kontinuous/v1/docs/config.schema.json" + }, + { + "name": "Kubri Configuration", + "description": "Kubri configuration file", + "fileMatch": [".kubri.yaml", ".kubri.yml", "kubri.yaml", "kubri.yml"], + "url": "https://kubri.dev/schema.json" + }, + { + "name": "kustomization.yaml", + "description": "Kubernetes native configuration management", + "fileMatch": ["kustomization.yaml", "kustomization.yml"], + "url": "https://www.schemastore.org/kustomization.json" + }, + { + "name": "label-commenter-config.yml", + "description": "A the configuration of the Label Commenter GitHub Action", + "fileMatch": ["**/.github/label-commenter-config.yml"], + "url": "https://www.schemastore.org/label-commenter-config.json" + }, + { + "name": "launchsettings.json", + "description": "A the ASP.NET LaunchSettings.json files", + "fileMatch": ["launchsettings.json"], + "url": "https://www.schemastore.org/launchsettings.json" + }, + { + "name": "Lefthook", + "description": "Fast and powerful Git hooks manager", + "fileMatch": [ + ".lefthook.json", + ".lefthook.jsonc", + ".lefthook.toml", + ".lefthook.yaml", + ".lefthook.yml", + ".lefthook-local.json", + ".lefthook-local.jsonc", + ".lefthook-local.toml", + ".lefthook-local.yaml", + ".lefthook-local.yml", + "lefthook.json", + "lefthook.jsonc", + "lefthook.toml", + "lefthook.yaml", + "lefthook.yml", + "lefthook-local.json", + "lefthook-local.jsonc", + "lefthook-local.toml", + "lefthook-local.yaml", + "lefthook-local.yml" + ], + "url": "https://raw.githubusercontent.com/evilmartians/lefthook/master/schema.json" + }, + { + "name": "lego.json", + "description": "Config file for the lego-build CLI tool", + "fileMatch": ["lego.json"], + "url": "https://www.schemastore.org/lego.json", + "versions": { + "1.0": "https://www.schemastore.org/lego.json" + } + }, + { + "name": "lerna.json", + "description": "A lerna.json files", + "fileMatch": ["lerna.json"], + "url": "https://www.schemastore.org/lerna.json" + }, + { + "name": "lgtm.yml", + "description": "A lgtm configuration files", + "fileMatch": ["lgtm.yml", ".lgtm.yml"], + "url": "https://www.schemastore.org/lgtm.json" + }, + { + "name": "liblab.config.json", + "description": "Liblab configuration file", + "fileMatch": ["liblab.config.json", "*.liblab.config.json"], + "url": "https://cdn.jsdelivr.net/npm/liblab@latest/liblab.config.schema.json" + }, + { + "name": "libman.json", + "description": "client-side library config files", + "fileMatch": ["libman.json"], + "url": "https://www.schemastore.org/libman.json" + }, + { + "name": "license-report-config.json", + "description": "license report tool configuration file", + "fileMatch": ["license-report-config.json"], + "url": "https://www.schemastore.org/license-report-config.json" + }, + { + "name": "Liferay client-extension.yaml", + "description": "Liferay Client Extension Definition File", + "fileMatch": ["client-extension.yaml"], + "url": "https://raw.githubusercontent.com/liferay/liferay-portal/master/modules/sdk/gradle-plugins-workspace/src/main/resources/schemas/client-extension.schema.json" + }, + { + "name": "linkinator.config.json", + "description": "Linkinator config file", + "fileMatch": ["linkinator.config.json"], + "url": "https://www.schemastore.org/linkinator-config.json" + }, + { + "name": "LinkML Metamodel", + "description": "LinkML metamodel file", + "fileMatch": [], + "url": "https://w3id.org/linkml/meta.schema.json" + }, + { + "name": "Lively Properties", + "description": "Lively Wallpaper configuration file. Documentation: https://github.com/rocksdanister/lively/wiki/Web-Guide-IV-:-Interaction#lively-properties", + "fileMatch": ["LivelyProperties.json"], + "url": "https://raw.githubusercontent.com/rocksdanister/lively/core-separation/schemas/livelyPropertiesSchema.json" + }, + { + "name": "LOOBin", + "description": "LOOBins macOS binaries. Documentation: https://github.com/infosecB/LOOBins", + "fileMatch": ["**/LOOBins/*.yml"], + "url": "https://www.schemastore.org/loobin-1.0.json" + }, + { + "name": "lotus.yaml", + "description": "The configuration file used for Lotus definitions", + "fileMatch": ["lotus.yaml"], + "url": "https://grnhse-vpc-assets.s3.amazonaws.com/jsonschemas/lotus.yaml.json" + }, + { + "name": "local.settings.json", + "description": "Azure Functions local.settings.json files", + "fileMatch": ["local.settings.json"], + "url": "https://www.schemastore.org/local.settings.json" + }, + { + "name": "localazy.json", + "description": "Localazy CLI configuration file. Documentation: https://localazy.com/docs/cli", + "fileMatch": ["localazy.json"], + "url": "https://raw.githubusercontent.com/localazy/cli-schema/master/localazy.json" + }, + { + "name": "lsdlschema.json", + "description": "Power BI linguistic schema definition", + "fileMatch": ["*.lsdl.yaml", "*.lsdl.json"], + "url": "https://www.schemastore.org/lsdlschema.json" + }, + { + "name": ".luaurc", + "description": "Luau language configuration file", + "fileMatch": [".luaurc"], + "url": "https://www.schemastore.org/luaurc.json" + }, + { + "name": "Mado configuration", + "description": "Mado markdown linter configuration file", + "fileMatch": [".mado.toml", "mado.toml"], + "url": "https://raw.githubusercontent.com/akiomik/mado/refs/heads/main/pkg/json-schema/mado.json" + }, + { + "name": "Maestro Flow", + "description": "Maestro mobile and web UI test flow (YAML)", + "fileMatch": [ + "**/.maestro/**/*.yaml", + "**/.maestro/**/*.yml", + "**/*.flow.yaml", + "**/*.flow.yml" + ], + "url": "https://www.schemastore.org/maestro-flow.json" + }, + { + "name": "MapEHR Mapping", + "description": "Mapping for MapEHR.com", + "fileMatch": [".map.yml", ".map.yaml", ".map.json"], + "url": "https://www.schemastore.org/mapehr.json" + }, + { + "name": "A micro editor config", + "description": "A micro editor config", + "fileMatch": ["**/micro/settings.json"], + "url": "https://www.schemastore.org/micro.json" + }, + { + "name": "MegaLinter configuration", + "description": "Mega-Linter configuration file (for Mega-Linter users)", + "fileMatch": [ + ".mega-linter.yml", + ".megalinter.yml", + "*.mega-linter-config.yml", + "*.megalinter-config.yml" + ], + "url": "https://raw.githubusercontent.com/megalinter/megalinter/main/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json" + }, + { + "name": "MegaLinter Custom Flavor", + "description": "MegaLinter Custom Flavor definition file", + "fileMatch": ["megalinter-custom-flavor.yml"], + "url": "https://raw.githubusercontent.com/megalinter/megalinter/main/megalinter/descriptors/schemas/megalinter-custom-flavor.jsonschema.json" + }, + { + "name": "MegaLinter descriptor", + "description": "MegaLinter descriptor files (for MegaLinter contributors)", + "fileMatch": ["*.megalinter-descriptor.yml"], + "url": "https://raw.githubusercontent.com/megalinter/megalinter/main/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json" + }, + { + "name": "Meltano project definition", + "description": "Meltano project definition files", + "fileMatch": [ + "*meltano.yml", + "meltano-manifest.json", + "meltano-manifest.*.json" + ], + "url": "https://raw.githubusercontent.com/meltano/meltano/main/src/meltano/schemas/meltano.schema.json" + }, + { + "name": "Metadata for a Bazel module", + "description": "Metadata file for a Bazel module", + "fileMatch": ["**/modules/*/metadata.json"], + "url": "https://raw.githubusercontent.com/bazelbuild/bazel-central-registry/main/metadata.schema.json" + }, + { + "name": "Metatype Configuration", + "description": "Metatype configuration file", + "fileMatch": ["metatype.yml", "metatype.yaml"], + "url": "https://raw.githubusercontent.com/metatypedev/metatype/main/tools/schema/metatype.json" + }, + { + "name": "MetricsHub Configuration", + "description": "MetricsHub configuration file", + "fileMatch": ["*metricshub.yaml", "*metricshub.yml"], + "url": "https://www.schemastore.org/metricshub.json" + }, + { + "name": "MetricsHub Connector Configuration", + "description": "MetricsHub connector configuration file", + "fileMatch": [ + "**/metricshub/connectors/**/*.yaml", + "**/metricshub/connectors/**/*.yml", + "**/hardware-connectors/**/*.yaml", + "**/hardware-connectors/**/*.yml", + "**/metricshub-community-connectors/**/*.yaml", + "**/metricshub-community-connectors/**/*.yml" + ], + "url": "https://www.schemastore.org/metricshub-connector.json" + }, + { + "name": "Microsoft Band Web Tile", + "description": "Microsoft Band Web Tile manifest file", + "url": "https://www.schemastore.org/band-manifest.json" + }, + { + "name": "mimetypes.json", + "description": "mime type collections", + "fileMatch": ["mimetypes.json"], + "url": "https://www.schemastore.org/mimetypes.json" + }, + { + "name": "Minecraft Data Pack Advancement", + "description": "Configuration file defining an advancement for a data pack for Minecraft", + "fileMatch": ["**/data/*/advancements/*.json"], + "url": "https://www.schemastore.org/minecraft-advancement.json" + }, + { + "name": "Minecraft Data Pack Biome", + "description": "Configuration file defining a biome for a data pack for Minecraft", + "fileMatch": ["**/data/*/worldgen/biome/*.json"], + "url": "https://www.schemastore.org/minecraft-biome.json" + }, + { + "name": "Minecraft Data Pack Configured Carver", + "description": "Configuration file defining a configured carver for a data pack for Minecraft", + "fileMatch": ["**/data/*/worldgen/configured_carver/*.json"], + "url": "https://www.schemastore.org/minecraft-configured-carver.json" + }, + { + "name": "Minecraft Data Pack Damage Type", + "description": "Configuration file defining a damage type for a data pack for Minecraft", + "fileMatch": ["**/data/*/damage_type/*.json"], + "url": "https://www.schemastore.org/minecraft-damage-type.json" + }, + { + "name": "Minecraft Data Pack Dimension Type", + "description": "Configuration file defining a dimension type for a data pack for Minecraft", + "fileMatch": ["**/data/*/dimension_type/*.json"], + "url": "https://www.schemastore.org/minecraft-dimension-type.json" + }, + { + "name": "Minecraft Data Pack Dimension", + "description": "Configuration file defining a dimension for a data pack for Minecraft", + "fileMatch": ["**/data/*/dimension/*.json"], + "url": "https://www.schemastore.org/minecraft-dimension.json" + }, + { + "name": "Minecraft Data Pack Item Modifier", + "description": "Configuration file defining an item modifier for a data pack for Minecraft", + "fileMatch": ["**/data/*/item_modifiers/*.json"], + "url": "https://www.schemastore.org/minecraft-item-modifier.json" + }, + { + "name": "Minecraft Data Pack Loot Table", + "description": "Configuration file defining a loot table for a data pack for Minecraft", + "fileMatch": ["**/data/*/loot_tables/**/*.json"], + "url": "https://www.schemastore.org/minecraft-loot-table.json" + }, + { + "name": "Minecraft Data Pack Metadata", + "description": "Configuration file defining the metadata of a data pack for Minecraft", + "fileMatch": ["**/pack.mcmeta"], + "url": "https://www.schemastore.org/minecraft-pack-mcmeta.json" + }, + { + "name": "Minecraft Data Pack Predicate", + "description": "Configuration file defining a predicate for a data pack for Minecraft", + "fileMatch": ["**/data/*/predicates/*.json"], + "url": "https://www.schemastore.org/minecraft-predicate.json" + }, + { + "name": "Minecraft Data Pack Recipe", + "description": "Configuration file defining a recipe for a data pack for Minecraft", + "fileMatch": ["**/data/*/recipes/*.json"], + "url": "https://www.schemastore.org/minecraft-recipe.json" + }, + { + "name": "Minecraft Data Pack Tag", + "description": "Configuration file defining a tag for a data pack for Minecraft", + "fileMatch": ["**/data/*/tags/**/*.json"], + "url": "https://www.schemastore.org/minecraft-tag.json" + }, + { + "name": "Minecraft Data Pack Template Pool", + "description": "Configuration file defining a template pool for a data pack for Minecraft", + "fileMatch": ["**/data/*/worldgen/template_pool/*.json"], + "url": "https://www.schemastore.org/minecraft-template-pool.json" + }, + { + "name": "Minecraft Resource Pack Lang", + "description": "Configuration file defining a language for a resource pack for Minecraft", + "fileMatch": ["**/assets/*/lang/*.json"], + "url": "https://www.schemastore.org/minecraft-lang.json" + }, + { + "name": "Minecraft Resource Pack Particle", + "description": "Configuration file defining a particle for a resource pack for Minecraft", + "fileMatch": ["**/assets/*/particles/*.json"], + "url": "https://www.schemastore.org/minecraft-particle.json" + }, + { + "name": "Minecraft Resourcepack Sounds", + "description": "Configuration file defining what sounds play when sound event is triggered for a resourcepack for Minecraft", + "fileMatch": ["**/assets/*/sounds.json"], + "url": "https://raw.githubusercontent.com/AxoCode/json-schema/master/minecraft/sounds.json" + }, + { + "name": "Minecraft Resource Pack Texture Mcmeta", + "description": "Configuration file defining an mcmeta file for a texture for a resource pack for Minecraft", + "fileMatch": ["**/assets/*/textures/**/*.png.mcmeta"], + "url": "https://www.schemastore.org/minecraft-texture-mcmeta.json" + }, + { + "name": "Minecraft Data Pack Trim Material", + "description": "Configuration file defining a trim material for a data pack for Minecraft", + "fileMatch": ["**/data/*/trim_material/*.json"], + "url": "https://www.schemastore.org/minecraft-trim-material.json" + }, + { + "name": "Minecraft Data Pack Trim Pattern", + "description": "Configuration file defining a trim pattern for a data pack for Minecraft", + "fileMatch": ["**/data/*/trim_pattern/*.json"], + "url": "https://www.schemastore.org/minecraft-trim-pattern.json" + }, + { + "name": "mkdocs.yml", + "description": "MkDocs configuration file", + "fileMatch": ["mkdocs.yml"], + "url": "https://www.schemastore.org/mkdocs-1.6.json", + "versions": { + "1.0": "https://www.schemastore.org/mkdocs-1.0.json", + "1.6": "https://www.schemastore.org/mkdocs-1.6.json" + } + }, + { + "name": "ModuleAssembler", + "description": "ModuleAssembler configuration file", + "fileMatch": ["**/.moduleassembler/moduleproject.json"], + "url": "https://raw.githubusercontent.com/ModuleAssembler/ModuleAssembler-Schema/refs/tags/v1.0.0/schema/moduleassembler.schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/ModuleAssembler/ModuleAssembler-Schema/refs/tags/v1.0.0/schema/moduleassembler.schema.json" + } + }, + { + "name": "mrdocs.yml", + "description": "MrDocs configuration file", + "fileMatch": ["mrdocs.yml"], + "url": "https://raw.githubusercontent.com/cppalliance/mrdocs/refs/heads/master/docs/mrdocs.schema.json" + }, + { + "name": "MLOS Config (*.mlos.jsonc, *.mlos.json5, *.mlos.json)", + "description": "Config files for the mlos_bench utility in MLOS. See Also: https://aka.ms/MLOS", + "fileMatch": ["*.mlos.jsonc", "*.mlos.json5", "*.mlos.json"], + "url": "https://raw.githubusercontent.com/microsoft/MLOS/main/mlos_bench/mlos_bench/config/schemas/mlos-bench-config-schema.json" + }, + { + "name": "mockd.yaml", + "description": "mockd multi-protocol API mock server configuration file. See https://mockd.io", + "fileMatch": [ + "mockd.yaml", + "mockd.yml", + "mockd.json", + ".mockd.yaml", + ".mockd.yml", + ".mockd.json", + "mocks.yaml", + "mocks.yml" + ], + "url": "https://raw.githubusercontent.com/getmockd/mockd/main/schema/mockd.schema.json" + }, + { + "name": "MockServer Expectations", + "description": "MockServer expectations configuration for defining request matchers and response actions. See https://www.mock-server.com", + "fileMatch": [ + "mockserverInitialization.json", + "*mockserver*Initialization.json", + "mockserver*.json" + ], + "url": "https://www.mock-server.com/schema/expectations.json" + }, + { + "name": "monospace.yml", + "description": "MonoSpace configuration file", + "fileMatch": ["monospace.yml"], + "url": "https://raw.githubusercontent.com/software-t-rex/monospace/main/apps/monospace/schemas/monospace.schema.json" + }, + { + "name": "Monoweave Configuration", + "description": "Monoweave configuration file (Yarn package publishing)", + "fileMatch": [ + "monoweave.config.json", + "monoweave.config.jsonc", + "monoweave.config.json5", + "monoweave.config.yaml", + "monoweave.config.yml" + ], + "url": "https://raw.githubusercontent.com/monoweave/monoweave/main/packages/types/schema.json" + }, + { + "name": "MS2Rescore Configuration", + "description": "MS2Rescore configuration file", + "fileMatch": [ + "ms2rescore.json", + "ms2rescore.toml", + ".*-ms2rescore.json", + ".*-ms2rescore.toml", + ".*-ms2rescore-config.json", + ".*-ms2rescore-config.toml" + ], + "url": "https://raw.githubusercontent.com/compomics/ms2rescore/main/ms2rescore/package_data/config_schema.json" + }, + { + "name": "Mergify Configuration", + "description": "Mergify configuration file", + "fileMatch": [ + ".mergify.yml", + "**/.github/mergify.yml", + "**/.mergify/config.yml" + ], + "url": "https://raw.githubusercontent.com/Mergifyio/docs/main/public/mergify-configuration-schema.json" + }, + { + "name": ".mocharc", + "description": "MochaJS configuration files", + "fileMatch": [ + ".mocharc.json", + ".mocharc.jsonc", + ".mocharc.yml", + ".mocharc.yaml" + ], + "url": "https://www.schemastore.org/mocharc.json" + }, + { + "name": ".modernizrrc", + "description": "Webpack modernizr-loader configuration file", + "fileMatch": [".modernizrrc"], + "url": "https://www.schemastore.org/modernizrrc.json" + }, + { + "name": "Monade CLI Stack Configuration", + "description": "The configuration file to get a local stack up and running with Monade CLI", + "fileMatch": ["monade.yaml", "monade.yml", ".monade.yaml", ".monade.yml"], + "url": "https://www.schemastore.org/monade-stack-config.json" + }, + { + "name": "mycode.json", + "description": "mycode.js files", + "fileMatch": ["mycode.json"], + "url": "https://www.schemastore.org/mycode.json" + }, + { + "name": "napari plugin manifest", + "description": "a napari plugin manifest", + "fileMatch": ["napari.yml", "napari.yaml", ".napari.yml", ".napari.yaml"], + "url": "https://github.com/napari/npe2/releases/latest/download/schema.json" + }, + { + "name": "Netlify config", + "description": "Netlify YAML config", + "fileMatch": ["**/admin/config*.yml"], + "url": "https://www.schemastore.org/netlify.json" + }, + { + "name": "Network-as-Code Data Model", + "description": "Cisco Network-as-Code Data Model", + "fileMatch": ["*.nac.yml", "*.nac.yaml", "*.aac.yml", "*.aac.yaml"], + "url": "https://raw.githubusercontent.com/netascode/schema/main/schema.json" + }, + { + "name": "Next Gen UI Agent A2A Server Configuration", + "description": "Next Gen UI Agent A2A Server configuration. Documentation: https://redhat-ux.github.io/next-gen-ui-agent/spec/a2a/#agent-configuration", + "fileMatch": ["ngui-a2a_*.yaml", "ngui-a2a_*.yml", "ngui-a2a_*.json"], + "url": "https://raw.githubusercontent.com/RedHat-UX/next-gen-ui-agent/refs/heads/main/spec/a2a/a2a_agent_config.schema.json" + }, + { + "name": "Next Gen UI Agent MCP Server Configuration", + "description": "Next Gen UI Agent MCP Server configuration. Documentation: https://redhat-ux.github.io/next-gen-ui-agent/spec/mcp/#agent-configuration", + "fileMatch": ["ngui-mcp_*.yaml", "ngui-mcp_*.yml", "ngui-mcp_*.json"], + "url": "https://raw.githubusercontent.com/RedHat-UX/next-gen-ui-agent/refs/heads/main/spec/mcp/mcp_agent_config.schema.json" + }, + { + "name": "Next Gen UI Agent Configuration", + "description": "NextGen UI Agent configuration. Documentation: https://redhat-ux.github.io/next-gen-ui-agent/guide/configuration/", + "fileMatch": ["ngui_*.yaml", "ngui_*.yml", "ngui_*.json"], + "url": "https://raw.githubusercontent.com/RedHat-UX/next-gen-ui-agent/refs/heads/main/spec/config/agent_config.schema.json" + }, + { + "name": "cargo-nextest repository configuration", + "description": "Repository configuration for cargo-nextest. Documentation: https://nexte.st/docs/configuration/", + "fileMatch": ["**/.config/nextest.toml"], + "url": "https://nexte.st/schemas/repo-config.json" + }, + { + "name": "cargo-nextest user configuration", + "description": "User configuration for cargo-nextest. Documentation: https://nexte.st/docs/user-config/", + "fileMatch": ["**/nextest/config.toml"], + "url": "https://nexte.st/schemas/user-config.json" + }, + { + "name": "nFPM", + "description": "nFPM configuration file", + "fileMatch": ["nfpm.yaml"], + "url": "https://nfpm.goreleaser.com/static/schema.json" + }, + { + "name": "Nightwatch.js", + "description": "nightwatch.js config", + "fileMatch": ["nightwatch.json"], + "url": "https://www.schemastore.org/nightwatch.json" + }, + { + "name": "ninjs (News in JSON)", + "description": "A ninjs by the IPTC. News and publishing information. Documentation: https://iptc.org/standards/ninjs/", + "url": "https://www.schemastore.org/ninjs-2.0.json", + "versions": { + "2.0": "https://www.schemastore.org/ninjs-2.0.json", + "1.4": "https://www.schemastore.org/ninjs-1.4.json", + "1.3": "https://www.schemastore.org/ninjs-1.3.json", + "1.2": "https://www.schemastore.org/ninjs-1.2.json", + "1.1": "https://www.schemastore.org/ninjs-1.1.json", + "1.0": "https://www.schemastore.org/ninjs-1.0.json" + } + }, + { + "name": "nest-cli", + "description": "A progressive Node.js framework for building efficient and scalable server-side applications \ud83d\ude80", + "fileMatch": [ + ".nestcli.json", + ".nest-cli.json", + "nest-cli.json", + "nest.json" + ], + "url": "https://www.schemastore.org/nest-cli.json" + }, + { + "name": "nlu.json", + "description": "NPM-Link-Up", + "fileMatch": ["nlu.json", ".nlu.json"], + "url": "https://raw.githubusercontent.com/oresoftware/npm-link-up/master/assets/nlu.schema.json" + }, + { + "name": ".nodehawkrc", + "description": ".nodehawkrc configuration files", + "fileMatch": [".nodehawkrc"], + "url": "https://www.schemastore.org/nodehawkrc.json" + }, + { + "name": "nodemon.json", + "description": "nodemon.json configuration files", + "fileMatch": ["nodemon.json"], + "url": "https://www.schemastore.org/nodemon.json" + }, + { + "name": "notebook.mod.json", + "description": "Metadata file for notebook mods", + "fileMatch": ["notebook.mod.json"], + "url": "https://raw.githubusercontent.com/BookkeepersMC/notebook-schemas/master/notebook.mod.json/schemas/main.json" + }, + { + "name": "NOX Framework (Service)", + "description": "NOX service definition", + "fileMatch": ["service.nox.yaml", "service.nox.yml", "service.nox.json"], + "url": "https://noxorg.dev/schemas/NoxConfiguration.json" + }, + { + "name": ".npmpackagejsonlintrc", + "description": "Configuration file for npm-package-json-lint", + "fileMatch": [ + ".npmpackagejsonlintrc", + "npmpackagejsonlintrc.json", + ".npmpackagejsonlintrc.json" + ], + "url": "https://www.schemastore.org/npmpackagejsonlintrc.json" + }, + { + "name": "npm-badges", + "description": "the NPM package badges", + "url": "https://www.schemastore.org/npm-badges.json" + }, + { + "name": "nuclei-template.yaml", + "description": "Nuclei Template YAML files", + "fileMatch": ["**/nuclei-templates/**/*.yaml"], + "url": "https://raw.githubusercontent.com/projectdiscovery/nuclei/master/nuclei-jsonschema.json" + }, + { + "name": "nuget-project.json", + "description": "NuGet project.json files", + "url": "https://www.schemastore.org/nuget-project.json", + "versions": { + "3.3.0": "https://www.schemastore.org/nuget-project-3.3.0.json" + } + }, + { + "name": "NueJS configuration file", + "description": "NueJS site configuration file", + "fileMatch": [], + "url": "https://www.schemastore.org/nuejs-site.json" + }, + { + "name": "nswag.json", + "description": "nswag configuration", + "fileMatch": ["nswag.json"], + "url": "https://www.schemastore.org/nswag.json" + }, + { + "name": "Nullstone config", + "description": "Nullstone config.yml file", + "fileMatch": ["**/.nullstone/*.yml", "**/.nullstone/*.yaml"], + "url": "https://raw.githubusercontent.com/nullstone-io/iac/master/.schema/config.0.1.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/nullstone-io/iac/master/.schema/config.0.1.json" + } + }, + { + "name": "ntangle", + "description": "NTangle CDC code-generation configuration. Documentation: https://github.com/Avanade/ntangle", + "fileMatch": [ + "ntangle.yaml", + "ntangle.yml", + "ntangle.json", + "ntangle.jsn" + ], + "url": "https://raw.githubusercontent.com/Avanade/NTangle/main/schemas/ntangle.json" + }, + { + "name": "Ory Oathkeeper configuration", + "description": "Ory Oathkeeper configuration file", + "fileMatch": [ + "oathkeeper.json", + "oathkeeper.yml", + "oathkeeper.yaml", + "oathkeeper.toml" + ], + "url": "https://raw.githubusercontent.com/ory/oathkeeper/master/.schema/version.schema.json" + }, + { + "name": "ocelot.json", + "description": "the Ocelot Api Gateway", + "fileMatch": ["ocelot.json"], + "url": "https://www.schemastore.org/ocelot.json" + }, + { + "name": "October CMS columns", + "description": "October CMS columns files", + "fileMatch": ["columns.yaml", "*_columns.yaml"], + "url": "https://raw.githubusercontent.com/inetis-ch/october-schemas/master/columns.json" + }, + { + "name": "October CMS fields", + "description": "October CMS fields files", + "fileMatch": ["fields.yaml", "*_fields.yaml"], + "url": "https://raw.githubusercontent.com/inetis-ch/october-schemas/master/fields.json" + }, + { + "name": "ogen", + "description": "ogen code generator configuration, see https://ogen.dev/docs/config", + "fileMatch": ["ogen.yml", "ogen.yaml", ".ogen.yml", ".ogen.yaml"], + "url": "https://www.schemastore.org/ogen.json" + }, + { + "name": "Oh My Posh", + "description": "Oh My Posh configuration file", + "fileMatch": ["*.omp.json", "*.omp.toml", "*.omp.yaml", "*.omp.yml"], + "url": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json" + }, + { + "name": "Okteto", + "description": "The Okteto Manifest", + "fileMatch": ["okteto.yml", "okteto.yaml", "okteto.json"], + "url": "https://raw.githubusercontent.com/okteto/okteto/refs/heads/master/schema.json" + }, + { + "name": "omnisharp.json", + "description": "Omnisharp Configuration file", + "fileMatch": ["omnisharp.json"], + "url": "https://www.schemastore.org/omnisharp.json" + }, + { + "name": "Ona Automations", + "description": "Configuration for Ona Automations", + "fileMatch": [ + "**/.ona/automations.json", + "**/.ona/automations.yaml", + "**/.ona/automations.yml", + "**/.ona/automation.yaml" + ], + "url": "https://app.ona.com/jsonschema/v1/automations_file.jsonschema.json" + }, + { + "name": "openapi.json", + "description": "An OpenAPI documentation file", + "fileMatch": ["openapi.json", "openapi.yml", "openapi.yaml"], + "url": "https://www.schemastore.org/openapi-3.X.json" + }, + { + "name": "overlay.json", + "description": "An OpenAPI Overlay document", + "fileMatch": [ + "overlay.json", + "overlay.yml", + "overlay.yaml", + "*.overlay.json", + "*.overlay.yml", + "*.overlay.yaml" + ], + "url": "https://www.schemastore.org/openapi-overlay-1.X.json" + }, + { + "name": "openrpc.json", + "description": "An OpenRPC document. Documentation: https://open-rpc.org for more information", + "fileMatch": [ + "openrpc.json", + "openrpc.yml", + "openrpc.yaml", + "open-rpc.json", + "open-rpc.yml", + "open-rpc.yaml" + ], + "url": "https://meta.open-rpc.org/" + }, + { + "name": "opencode", + "description": "opencode AI coding agent configuration file", + "fileMatch": [ + "opencode.json", + "opencode.jsonc", + "**/.opencode/opencode.json", + "**/.opencode/opencode.jsonc" + ], + "url": "https://opencode.ai/config.json" + }, + { + "name": "OpenUtau character yaml", + "description": "OpenUtau voicebank configuration file, character.yaml", + "fileMatch": ["character.yaml"], + "url": "https://www.schemastore.org/openutau-character.json" + }, + { + "name": "OpenUtau ustx", + "description": "OpenUtau project file, ustx", + "fileMatch": ["*.ustx"], + "url": "https://www.schemastore.org/openutau-ustx.json" + }, + { + "name": "ops.yaml", + "description": "Ops configuration file (ops.yaml)", + "fileMatch": ["ops.yml", "ops.yaml"], + "url": "https://raw.githubusercontent.com/LeShaunJ/ops-schema/main/ops.schema.json" + }, + { + "name": "ONe's service descriptor", + "description": "ONe's service descriptor", + "fileMatch": ["service-descriptor.yml"], + "url": "https://www.schemastore.org/one-service-descriptor-schema-0.1.json" + }, + { + "name": "ONe's changelog entry", + "description": "ONe's changelog entry", + "fileMatch": ["**/changelogs/*.yml"], + "url": "https://www.schemastore.org/one-changelog-schema-0.1.json" + }, + { + "name": "openfin.json", + "description": "OpenFin application configuration file", + "url": "https://www.schemastore.org/openfin.json" + }, + { + "name": "OpenRewrite Resource", + "description": "OpenRewrite resource descriptors", + "fileMatch": ["**/META-INF/rewrite/*.yml"], + "url": "https://raw.githubusercontent.com/openrewrite/rewrite/main/rewrite-core/openrewrite.json" + }, + { + "name": "OpenTelemetry Declarative Configuration", + "description": "OpenTelemetry declarative configuration for SDKs and instrumentation", + "fileMatch": [ + "opentelemetry*.yaml", + "opentelemetry*.yml", + "otel*.yaml", + "otel*.yml" + ], + "url": "https://raw.githubusercontent.com/open-telemetry/opentelemetry-configuration/refs/tags/v1.0.0/opentelemetry_configuration.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/open-telemetry/opentelemetry-configuration/refs/tags/v1.0.0/opentelemetry_configuration.json" + } + }, + { + "name": "Open Data Contract Standard (ODCS)", + "description": "Open Data Contract Standard contract file, from the Bitol project at The Linux Foundation", + "fileMatch": ["*.odcs.yaml", "*.odcs.yml"], + "url": "https://raw.githubusercontent.com/bitol-io/open-data-contract-standard/main/schema/odcs-json-schema-latest.json", + "versions": { + "v3.0.2": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v3.0.2.json", + "v3.0.1": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v3.0.1.json", + "v3.0.0": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v3.0.0.json", + "v2.2.2": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v2.2.2.json" + } + }, + { + "name": "Open Data Product Standard (ODPS)", + "description": "Open Data Product Standard descriptor file, from the Bitol project at The Linux Foundation", + "fileMatch": ["*.odps.yaml", "*.odps.yml"], + "url": "https://raw.githubusercontent.com/bitol-io/open-data-product-standard/main/schema/odps-json-schema-latest.json", + "versions": { + "v0.9.0": "https://github.com/bitol-io/open-data-product-standard/blob/main/schema/odps-json-schema-v0.9.0.json" + } + }, + { + "name": "OpenSRM", + "description": "Open Service Reliability Manifest - Define service reliability requirements as code", + "fileMatch": [ + "service.reliability.yaml", + "service.reliability.yml", + "*.reliability.yaml", + "*.reliability.yml", + ".opensrm.yaml", + ".opensrm.yml" + ], + "url": "https://www.schemastore.org/opensrm.json" + }, + { + "name": "Outblocks project configuration", + "description": "Outblocks project configuration files", + "fileMatch": ["project.outblocks.yaml", "project.outblocks.yml"], + "url": "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-project.json" + }, + { + "name": "Outblocks App configuration", + "description": "Outblocks App configuration files", + "fileMatch": [ + "app.outblocks.yaml", + "app.outblocks.yml", + "*.app.outblocks.yaml", + "*.app.outblocks.yml", + "outblocks.yaml", + "outblocks.yml" + ], + "url": "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-app.json" + }, + { + "name": "Outblocks database table", + "description": "Outblocks database table files", + "fileMatch": [ + "**/database/**/*.outblocks.yaml", + "**/database/**/*.outblocks.yml" + ], + "url": "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-table.json" + }, + { + "name": "ORT Server repository environment configuration", + "description": "Repository environment configuration to configure infrastructure services, environment variables, and package-manager specific settings", + "fileMatch": [".ort.env.yml", ".ort.env.yaml"], + "url": "https://raw.githubusercontent.com/eclipse-apoapsis/ort-server/refs/heads/main/integrations/schemas/repository-environment-config.json" + }, + { + "name": "Ory Kratos configuration", + "description": "Ory Kratos configuration file", + "fileMatch": ["kratos.json", "kratos.yml", "kratos.yaml", "kratos.toml"], + "url": "https://raw.githubusercontent.com/ory/kratos/master/.schema/version.schema.json" + }, + { + "name": "OSCAL Assessment Plan (AP)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Assessment Plan. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*assessment-plan.json", "oscal*assessment_plan.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-plan_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-plan_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_assessment-plan_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_assessment-plan_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_assessment-plan_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_assessment-plan_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_assessment-plan_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_assessment-plan_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_assessment-plan_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_assessment-plan_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_assessment-plan_schema.json" + } + }, + { + "name": "OSCAL Assessment Results (AR)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Assessment Results. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": [ + "oscal*assessment-results.json", + "oscal*assessment_results.json" + ], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-results_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-results_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_assessment-results_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_assessment-results_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_assessment-results_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_assessment-results_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_assessment-results_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_assessment-results_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_assessment-results_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_assessment-results_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_assessment-results_schema.json" + } + }, + { + "name": "OSCAL Catalog", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Catalog. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*catalog.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_catalog_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_catalog_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_catalog_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_catalog_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_catalog_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_catalog_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_catalog_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_catalog_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_catalog_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_catalog_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_catalog_schema.json" + } + }, + { + "name": "OSCAL Component Definition (CDef)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Component Definition. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*component.json", "oscal*cdef.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_component_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_component_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_component_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_component_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_component_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_component_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_component_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_component_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_component_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_component_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_component_schema.json" + } + }, + { + "name": "OSCAL Plan of Action and Milestones (POA&M)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Plan of Action and Milestones. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*poam.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_poam_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_poam_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_poam_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_poam_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_poam_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_poam_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_poam_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_poam_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_poam_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_poam_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_poam_schema.json" + } + }, + { + "name": "OSCAL Profile", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Profile. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*profile.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_profile_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_profile_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_profile_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_profile_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_profile_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_profile_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_profile_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_profile_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_profile_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_profile_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_profile_schema.json" + } + }, + { + "name": "OSCAL System Security Plan (SSP)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) System Security Plan. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*ssp.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_ssp_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_ssp_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_ssp_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_ssp_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_ssp_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_ssp_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_ssp_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_ssp_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_ssp_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_ssp_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_ssp_schema.json" + } + }, + { + "name": "OSS Review Toolkit configuration", + "description": "ORT's main configuration file", + "fileMatch": ["**/.ort/config/config.yml", "**/.ort/config/config.yaml"], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/ort-configuration-schema.json" + }, + { + "name": "OSS Review Toolkit curation", + "description": "ORT's curation files", + "fileMatch": [ + "**/curations/**/*.yml", + "**/curations/**/*.yaml", + "curations.yml", + "curations.yaml" + ], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/curations-schema.json" + }, + { + "name": "OSS Review Toolkit package configuration", + "description": "ORT's package configuration file", + "fileMatch": [ + "vcs.yml", + "vcs.yaml", + "source-artifact.yml", + "source-artifact.yaml" + ], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/package-configuration-schema.json" + }, + { + "name": "OSS Review Toolkit repository configuration", + "description": "ORT's repository configuration file", + "fileMatch": ["*.ort.yml", "*.ort.yaml"], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/repository-configuration-schema.json" + }, + { + "name": "OSS Review Toolkit resolutions", + "description": "ORT's resolutions file", + "fileMatch": ["resolutions.yml", "resolutions.yaml"], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/resolutions-schema.json" + }, + { + "name": "package.json", + "description": "NPM configuration file", + "fileMatch": ["package.json"], + "url": "https://www.schemastore.org/package.json" + }, + { + "name": "package.yaml", + "description": "PNPM configuration file", + "fileMatch": ["package.yaml"], + "url": "https://www.schemastore.org/package.json" + }, + { + "name": "package.manifest", + "description": "Umbraco package configuration file", + "fileMatch": ["package.manifest"], + "url": "https://www.schemastore.org/package.manifest.json", + "versions": { + "8.0.0": "https://www.schemastore.org/package.manifest-8.0.0.json", + "7.0.0": "https://www.schemastore.org/package.manifest-7.0.0.json" + } + }, + { + "name": "Packer", + "description": "Packer template JSON configuration", + "fileMatch": ["packer.json"], + "url": "https://www.schemastore.org/packer.json" + }, + { + "name": "PactSpec", + "description": "AI agent capability declaration (pactspec.dev)", + "fileMatch": ["*.pactspec.json", "*.pactspec.yaml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/pactspec.json" + }, + { + "name": "Paper paper-plugin.yml", + "description": "Paper Plugins YAML", + "fileMatch": ["paper-plugin.yml"], + "url": "https://www.schemastore.org/paper-plugin.json" + }, + { + "name": "PDM", + "description": "A modern Python package and dependency manager supporting the latest PEP standard (pdm.toml config file)", + "fileMatch": ["pdm.toml"], + "url": "https://www.schemastore.org/pdm.json" + }, + { + "name": "pgap_yaml_input_reader", + "description": "NCBI Prokaryotic Genome Annotation Pipeline (PGAP) input metadata (submol) JSON/YAML configuration file", + "fileMatch": ["submol*.json", "submol*.yml", "submol*.yaml"], + "url": "https://www.schemastore.org/pgap_yaml_input_reader.json" + }, + { + "name": "pattern.json", + "description": "Patternplate pattern manifest file", + "fileMatch": ["pattern.json"], + "url": "https://www.schemastore.org/pattern.json" + }, + { + "name": "pixi.toml", + "description": "Pixi configuration file", + "fileMatch": ["pixi.toml"], + "url": "https://raw.githubusercontent.com/prefix-dev/pixi/main/schema/schema.json" + }, + { + "name": "partial-pixi.json", + "description": "Pixi configuration for pyproject.toml", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-pixi.json" + }, + { + "name": ".pmbot.yml", + "description": "Pmbot configuration file", + "fileMatch": [".pmbot.yml"], + "url": "https://raw.githubusercontent.com/pmbot-io/config/master/pmbot.yml.schema.json" + }, + { + "name": "PocketMine plugin.yml", + "description": "PocketMine plugin manifest file", + "fileMatch": ["plugin.yml"], + "url": "https://www.schemastore.org/pocketmine-plugin.json" + }, + { + "name": "plagiarize.yaml", + "description": "Yaml Plagiarize", + "fileMatch": ["plagiarize.yaml", "plagiarize.json"], + "url": "https://www.schemastore.org/plagiarize.json", + "versions": { + "0.0": "https://www.schemastore.org/plagiarize-0.0.json" + } + }, + { + "name": "plagiarize-me.yaml", + "description": "Yaml Plagiarize MEe", + "fileMatch": ["plagiarize-me.yaml", "plagiarize-me.json"], + "url": "https://www.schemastore.org/plagiarize-me.json", + "versions": { + "0.0": "https://www.schemastore.org/plagiarize-me-0.0.json" + } + }, + { + "name": "Plex Prerolls", + "description": "Plex Prerolls configuration", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/nwithan8/plex-prerolls/main/.schema/config.schema.json" + }, + { + "name": "podbard.yaml", + "description": "Configuration file for Podbard - a podcast site generator", + "fileMatch": ["podbard.yaml"], + "url": "https://raw.githubusercontent.com/Songmu/podbard/main/schema.yaml" + }, + { + "name": "POPxf", + "description": "Polynomial Observable Predictions in High-Energy Physics", + "fileMatch": ["*.popxf", "*.popxf.json"], + "url": "https://www.schemastore.org/popxf-1.0.json" + }, + { + "name": "POPxf Correlations", + "description": "Correlations for Polynomial Observable Predictions in High-Energy Physics", + "fileMatch": ["*.popxf-corr", "*.popxf-corr.json"], + "url": "https://www.schemastore.org/popxf-corr-1.0.json" + }, + { + "name": "portman.json", + "description": "Portman's configuration file", + "fileMatch": ["portman-config.json", "portman.json"], + "url": "https://raw.githubusercontent.com/apideck-libraries/portman/main/src/utils/portman-config-schema.json" + }, + { + "name": ".postcssrc", + "description": "PostCSS configuration file", + "fileMatch": [ + ".postcssrc", + ".postcssrc.json", + ".postcssrc.yaml", + ".postcssrc.yml" + ], + "url": "https://www.schemastore.org/postcssrc.json" + }, + { + "name": "Postman collection", + "description": "Postman collections", + "fileMatch": ["*.postman_collection.json"], + "url": "https://schema.postman.com/collection/json/v2.1.0/draft-07/collection.json", + "versions": { + "1.0.0": "https://schema.postman.com/collection/json/v1.0.0/draft-07/collection.json", + "2.0.0": "https://schema.postman.com/collection/json/v2.0.0/draft-07/collection.json", + "2.1.0": "https://schema.postman.com/collection/json/v2.1.0/draft-07/collection.json" + } + }, + { + "name": ".powerpages-web-template-manifest", + "description": "Custom manifest declaration for Web templates", + "fileMatch": [".powerpages-web-template-manifest"], + "url": "https://www.schemastore.org/powerpages-web-template-manifest.json" + }, + { + "name": ".pre-commit-config.yml", + "description": "pre-commit configuration file", + "fileMatch": [".pre-commit-config.yml", ".pre-commit-config.yaml"], + "url": "https://www.schemastore.org/pre-commit-config.json" + }, + { + "name": ".pre-commit-hooks.yml", + "description": "pre-commit hooks definition file", + "fileMatch": [".pre-commit-hooks.yml", ".pre-commit-hooks.yaml"], + "url": "https://www.schemastore.org/pre-commit-hooks.json" + }, + { + "name": "PRML manifest", + "description": "Pre-Registered ML Manifest — open spec for committing ML evaluation claims to a SHA-256 hash before the run (CC BY 4.0). https://spec.falsify.dev/v0.1", + "fileMatch": [ + "*.prml.yaml", + "*.prml.yml", + "manifest.prml.yaml", + "prml-manifest.yaml", + "prml-manifest.yml" + ], + "url": "https://spec.falsify.dev/schema/prml-v0.1.schema.json", + "versions": { + "v0.1": "https://spec.falsify.dev/schema/prml-v0.1.schema.json", + "v0.2-rfc": "https://spec.falsify.dev/schema/prml-v0.2.schema.json" + } + }, + { + "name": ".phrase.yml", + "description": "Phrase configuration file", + "fileMatch": [".phrase.yml"], + "url": "https://www.schemastore.org/phrase.json" + }, + { + "name": ".phraseapp.yml", + "description": "PhraseApp configuration file", + "fileMatch": [".phraseapp.yml"], + "url": "https://www.schemastore.org/phraseapp.json" + }, + { + "name": "prefect.toml", + "description": "Prefect configuration file", + "fileMatch": ["prefect.toml"], + "url": "https://raw.githubusercontent.com/PrefectHQ/prefect/refs/heads/main/schemas/settings.schema.json" + }, + { + "name": "prefect.yaml", + "description": "Prefect deployment configuration file", + "fileMatch": ["prefect.yaml", "prefect.yml"], + "url": "https://raw.githubusercontent.com/PrefectHQ/prefect/refs/heads/main/schemas/prefect.yaml.schema.json" + }, + { + "name": "prek", + "description": "Configuration file for prek, a tool for managing git hooks", + "fileMatch": ["prek.toml"], + "url": "https://www.schemastore.org/prek.json" + }, + { + "name": "prettierrc.json", + "description": ".prettierrc configuration file", + "fileMatch": [ + ".prettierrc", + ".prettierrc.json", + ".prettierrc.yml", + ".prettierrc.yaml" + ], + "url": "https://www.schemastore.org/prettierrc.json", + "versions": { + "1.8.2": "https://www.schemastore.org/prettierrc-1.8.2.json", + "2.8.8": "https://www.schemastore.org/prettierrc-2.8.8.json", + "3.0.0": "https://www.schemastore.org/prettierrc.json" + } + }, + { + "name": "prisma.yml", + "description": "prisma.yml service definition file", + "fileMatch": ["prisma.yml"], + "url": "https://www.schemastore.org/prisma.json" + }, + { + "name": "ProActions AI-Kit Configuration", + "description": "Eidosmedia ProActions AI-Kit main configuration file", + "fileMatch": ["*.ai-kit.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/ai-kit.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Services", + "description": "Eidosmedia ProActions AI-Kit services configuration files", + "fileMatch": ["*.ai-kit.serv.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-services.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Menus", + "description": "Eidosmedia ProActions AI-Kit menu configuration files", + "fileMatch": ["*.ai-kit.menu.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-floatingMenu.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Templates", + "description": "Eidosmedia ProActions AI-Kit template configuration files", + "fileMatch": ["*.ai-kit.templ.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-templates.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Sections", + "description": "Eidosmedia ProActions AI-Kit section configuration files", + "fileMatch": ["*.ai-kit.sect.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-section.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Steps", + "description": "Eidosmedia ProActions AI-Kit step configuration files", + "fileMatch": ["*.ai-kit.step.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-step.schema.json" + }, + { + "name": "Problem package format", + "description": "Problem package metadata for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["problem.yml", "problem.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/problem_yaml_schema.json" + }, + { + "name": "Problem package generators", + "description": "Generators for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["generators.yml", "generators.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/generators_yaml_schema.json" + }, + { + "name": "Problem package submissions", + "description": "Submissions metadata for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["submissions.yml", "submissions.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/submissions_yaml_schema.json" + }, + { + "name": "Problem package test group metadata", + "description": "Test group metadata for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["test_group.yml", "test_group.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/test_group_yaml_schema.json" + }, + { + "name": "project.json", + "description": "ASP.NET vNext project configuration file", + "fileMatch": ["project.json"], + "url": "https://www.schemastore.org/project.json", + "versions": { + "1.0.0-beta3": "https://www.schemastore.org/project-1.0.0-beta3.json", + "1.0.0-beta4": "https://www.schemastore.org/project-1.0.0-beta4.json", + "1.0.0-beta5": "https://www.schemastore.org/project-1.0.0-beta5.json", + "1.0.0-beta6": "https://www.schemastore.org/project-1.0.0-beta6.json", + "1.0.0-beta8": "https://www.schemastore.org/project-1.0.0-beta8.json", + "1.0.0-rc1": "https://www.schemastore.org/project-1.0.0-rc1.json", + "1.0.0-rc1-update1": "https://www.schemastore.org/project-1.0.0-rc1.json", + "1.0.0-rc2": "https://www.schemastore.org/project-1.0.0-rc2.json" + } + }, + { + "name": "project-1.0.0-beta3.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta3.json" + }, + { + "name": "project-1.0.0-beta4.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta4.json" + }, + { + "name": "project-1.0.0-beta5.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta5.json" + }, + { + "name": "project-1.0.0-beta6.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta6.json" + }, + { + "name": "project-1.0.0-beta8.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta8.json" + }, + { + "name": "project-1.0.0-rc1.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-rc1.json" + }, + { + "name": "project-1.0.0-rc2.json", + "description": ".NET Core project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-rc2.json" + }, + { + "name": "project.owasp.yaml", + "description": "OWASP project", + "fileMatch": ["project.owasp.yaml"], + "url": "https://raw.githubusercontent.com/OWASP/nest-schema/main/project.json" + }, + { + "name": "prometheus.json", + "description": "Prometheus configuration file", + "fileMatch": ["prometheus.yml", "prometheus.yaml"], + "url": "https://www.schemastore.org/prometheus.json" + }, + { + "name": "prometheus.rules.json", + "description": "Prometheus rules file", + "fileMatch": [ + "*.prometheus.rules.yml", + "*.prometheus.rules.yaml", + "*prometheus-rules.yml", + "*prometheus-rules.yaml", + "*prometheus_rules.yml", + "*prometheus_rules.yaml", + "prometheus.rules.yml", + "prometheus.rules.yaml" + ], + "url": "https://www.schemastore.org/prometheus.rules.json" + }, + { + "name": "prometheus.rules.test.json", + "description": "Prometheus rules test file", + "fileMatch": [ + "*.prometheus.tests.yml", + "*.prometheus.tests.yaml", + "*.prometheus.test.yml", + "*.prometheus.test.yaml" + ], + "url": "https://www.schemastore.org/prometheus.rules.test.json" + }, + { + "name": "prometheus-alertmanager.json", + "description": "Prometheus Alertmanager configuration file", + "fileMatch": ["alertmanager.yml", "alertmanager.yaml"], + "url": "https://www.schemastore.org/prometheus-alertmanager.json" + }, + { + "name": "proxies.json", + "description": "Azure Function Proxies proxies.json files", + "fileMatch": ["proxies.json"], + "url": "https://www.schemastore.org/proxies.json" + }, + { + "name": "publiccode.yml", + "description": "publiccode.yml", + "fileMatch": ["publiccode.yml"], + "url": "https://www.schemastore.org/publiccode.json" + }, + { + "name": "pubspec.yaml", + "description": "pubspecs, the format used by Dart's dependency manager", + "fileMatch": ["pubspec.yaml"], + "url": "https://www.schemastore.org/pubspec.json" + }, + { + "name": "Pull Request Labeler", + "description": "A GitHub Action for automatically labelling pull requests", + "fileMatch": ["**/.github/labeler.yml"], + "url": "https://www.schemastore.org/pull-request-labeler.json", + "versions": { + "4": "https://www.schemastore.org/pull-request-labeler.json", + "5": "https://www.schemastore.org/pull-request-labeler-5.json" + } + }, + { + "name": ".putout.json", + "description": "\ud83d\udc0aPutout configuration file", + "fileMatch": [".putout.json"], + "url": "https://www.schemastore.org/putout.json" + }, + { + "name": "pyrseas-0.8.json", + "description": "Pyrseas database versioning for Postgres databases, v0.8", + "fileMatch": ["pyrseas-0.8.json"], + "url": "https://www.schemastore.org/pyrseas-0.8.json" + }, + { + "name": "RadioHound", + "description": "RadioHound data format for spectrum monitoring", + "fileMatch": ["*.rh.json"], + "url": "https://www.schemastore.org/radiohound-v0.json", + "versions": { + "v0": "https://www.schemastore.org/radiohound-v0.json" + } + }, + { + "name": "PyGTA Config", + "description": "Configuration file used by pyglotaran and pyglotaran-extras", + "fileMatch": ["pygta_config.yaml", "pygta_config.yml"], + "url": "https://pyglotaran-extras.readthedocs.io/en/latest/_static/pygta_config.schema.json" + }, + { + "name": "Rancher Fleet", + "description": "Rancher Fleet fleet.yaml configuration file", + "fileMatch": ["fleet.yaml"], + "url": "https://www.schemastore.org/rancher-fleet-0.8.json", + "versions": { + "0.5": "https://www.schemastore.org/rancher-fleet-0.5.json", + "0.8": "https://www.schemastore.org/rancher-fleet-0.8.json" + } + }, + { + "name": "config.yaml", + "description": "Projektor settings", + "fileMatch": ["**/.projektor/config.yaml"], + "url": "https://www.schemastore.org/projektor.json" + }, + { + "name": "Read the Docs", + "description": "Read the Docs configuration file", + "fileMatch": [ + "readthedocs.yml", + "readthedocs.yaml", + ".readthedocs.yml", + ".readthedocs.yaml" + ], + "url": "https://raw.githubusercontent.com/readthedocs/readthedocs.org/master/readthedocs/rtd_tests/fixtures/spec/v2/schema.json" + }, + { + "name": "Pulumi", + "description": "Pulumi project metadata and configuration", + "fileMatch": ["Pulumi.yaml", "pulumi.yaml"], + "url": "https://www.schemastore.org/pulumi.json" + }, + { + "name": "PyProject", + "description": "Python project metadata and configuration", + "fileMatch": ["pyproject.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/pyproject.json" + }, + { + "name": "Pyright", + "description": "Pyright Configuration", + "fileMatch": ["pyrightconfig.json"], + "url": "https://raw.githubusercontent.com/microsoft/pyright/main/packages/vscode-pyright/schemas/pyrightconfig.schema.json" + }, + { + "name": "pytest", + "description": "pytest configuration", + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-pytest.json" + }, + { + "name": "Qgoda", + "description": "Qgoda static site generator configuration file format", + "fileMatch": [ + "_qgoda.yaml", + "_qgoda.yml", + "_qgoda.json", + "_localqgoda.yaml", + "_localqgoda.yml", + "_localqgoda.json" + ], + "url": "https://www.qgoda.net/schemas/qgoda.json" + }, + { + "name": "QType AI DSL", + "description": "A DSL for rapid prototyping of AI applications", + "fileMatch": ["qtype.config.yaml", "*.qtype.yaml"], + "url": "https://raw.githubusercontent.com/bazaarvoice/qtype/refs/heads/main/schema/qtype.schema.json" + }, + { + "name": "Railway", + "description": "Use Railway config as code to define settings for building and deploying your services", + "fileMatch": ["railway.toml", "railway.json"], + "url": "https://railway.com/railway.schema.json" + }, + { + "name": "Railpack", + "description": "Configuration file for Railpack deployment tool", + "fileMatch": ["railpack.json"], + "url": "https://schema.railpack.com" + }, + { + "name": "Rattler-build", + "description": "Rattler-build recipe", + "fileMatch": ["recipe.yaml", "recipe.yml"], + "url": "https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json" + }, + { + "name": "rc3 auth", + "description": "RC auth that can be stored at Collection, Folder, or Request levels", + "fileMatch": ["rc-auth.json"], + "url": "https://www.schemastore.org/rc3-auth-0.0.3.json" + }, + { + "name": "rc3 collection", + "description": "RC collection information", + "fileMatch": ["rc-collection.json"], + "url": "https://www.schemastore.org/rc3-collection-0.0.3.json" + }, + { + "name": "rc3 environment", + "description": "RC environment for both Global and per Collection environments", + "fileMatch": ["**/environments/*.json", "rc-global.json"], + "url": "https://www.schemastore.org/rc3-environment-0.0.3.json" + }, + { + "name": "rc3 folder", + "description": "RC folder information", + "fileMatch": ["rc-folder.json"], + "url": "https://www.schemastore.org/rc3-folder-0.0.3.json" + }, + { + "name": "rc3 request", + "description": "RC request information", + "fileMatch": ["**/*.request"], + "url": "https://www.schemastore.org/rc3-request-0.0.3.json" + }, + { + "name": "rc3 settings", + "description": "RC settings stored in the users RC_HOME directory", + "fileMatch": ["rc-settings.json"], + "url": "https://www.schemastore.org/rc3-settings-0.0.3.json" + }, + { + "name": "Red-DiscordBot Cog", + "description": "Red-DiscordBot Cog metadata file", + "fileMatch": ["info.json"], + "url": "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/red_cog.schema.json" + }, + { + "name": "Red-DiscordBot Cog Repo", + "description": "Red-DiscordBot Cog Repo metadata file", + "fileMatch": ["info.json"], + "url": "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/red_cog_repo.schema.json" + }, + { + "name": "Red-DiscordBot Trivia", + "description": "Red-DiscordBot Trivia List file", + "url": "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/trivia.schema.json" + }, + { + "name": ".rehyperc", + "description": "A rehype configuration file", + "fileMatch": [ + ".rehyperc", + ".rehyperc.json", + ".rehyperc.yaml", + ".rehyperc.yml" + ], + "url": "https://www.schemastore.org/rehyperc.json" + }, + { + "name": "release-please-config.json", + "description": "Release Please manifest configuration file", + "fileMatch": ["release-please-config.json"], + "url": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" + }, + { + "name": "release-please-manifest.json", + "description": "Release Please manifest versions file", + "fileMatch": [".release-please-manifest.json"], + "url": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/manifest.json" + }, + { + "name": "release-plz.toml", + "description": "Release-plz configuration file", + "fileMatch": ["release-plz.toml", ".release-plz.toml"], + "url": "https://raw.githubusercontent.com/MarcoIeni/release-plz/main/.schema/latest.json" + }, + { + "name": ".remarkrc", + "description": "A remark configuration file", + "fileMatch": [ + ".remarkrc", + ".remarkrc.json", + ".remarkrc.yaml", + ".remarkrc.yml" + ], + "url": "https://www.schemastore.org/remarkrc.json" + }, + { + "name": "Replit config", + "description": "replit.com, a cloud IDE and code runner", + "fileMatch": ["replit.toml"], + "url": "https://www.schemastore.org/replit.json" + }, + { + "name": "reposets Configuration", + "description": "Configuration for the reposets CLI tool for syncing GitHub repository settings", + "fileMatch": ["reposets.config.toml", "reposets.config.json"], + "url": "https://raw.githubusercontent.com/spencerbeggs/reposets/main/package/schemas/reposets.config.schema.json" + }, + { + "name": "reposets Credentials", + "description": "Authentication profiles for the reposets CLI tool", + "fileMatch": ["reposets.credentials.toml", "reposets.credentials.json"], + "url": "https://raw.githubusercontent.com/spencerbeggs/reposets/main/package/schemas/reposets.credentials.schema.json" + }, + { + "name": "*.resjson", + "description": "Windows App localization file", + "fileMatch": ["*.resjson"], + "url": "https://www.schemastore.org/resjson.json" + }, + { + "name": "Rubocop", + "description": "A Ruby code style checker (linter) and formatter", + "fileMatch": ["*.rubocop.yml"], + "url": "https://www.rubyschema.org/rubocop.json" + }, + { + "name": "Ruff", + "description": "Ruff, a fast Python linter", + "fileMatch": ["ruff.toml", ".ruff.toml"], + "url": "https://www.schemastore.org/ruff.json" + }, + { + "name": "Rust Project", + "description": "non-Cargo based Rust projects", + "fileMatch": ["rust-project.json"], + "url": "https://www.schemastore.org/rust-project.json" + }, + { + "name": "JSON Resume", + "description": "JSON r\u00e9sum\u00e9 files", + "fileMatch": [ + "**/resume.json", + "**/*.resume.json", + "**/resume.yaml", + "**/*.resume.yaml", + "**/resume.yml", + "**/*.resume.yml" + ], + "url": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json" + } + }, + { + "name": "Renovate", + "description": "Renovate configuration file. Documentation: https://docs.renovatebot.com/configuration-options", + "fileMatch": [ + "renovate.json", + "renovate.json5", + "**/.github/renovate.json", + "**/.github/renovate.json5", + "**/.gitlab/renovate.json", + "**/.gitlab/renovate.json5", + ".renovaterc", + ".renovaterc.json", + ".renovaterc.json5" + ], + "url": "https://docs.renovatebot.com/renovate-schema.json", + "versions": { + "42": "https://www.schemastore.org/renovate-42.json", + "41": "https://www.schemastore.org/renovate-41.json", + "40": "https://www.schemastore.org/renovate-40.json", + "39": "https://www.schemastore.org/renovate-39.json" + } + }, + { + "name": "Renovate global configuration", + "description": "Renovate global self-hosting configuration file options. Documentation: https://docs.renovatebot.com/self-hosted-configuration/", + "fileMatch": [], + "url": "https://docs.renovatebot.com/renovate-global-schema.json", + "versions": { + "42": "https://www.schemastore.org/renovate-global-schema-42.json", + "41": "https://www.schemastore.org/renovate-global-schema-41.json" + } + }, + { + "name": "Renovate inherited configuration", + "description": "Renovate configuration file (with Inherit Config options). Documentation: https://docs.renovatebot.com/configuration-options", + "fileMatch": [], + "url": "https://docs.renovatebot.com/renovate-inherited-schema.json", + "versions": { + "42": "https://www.schemastore.org/renovate-inherited-schema-42.json" + } + }, + { + "name": "RenderCV", + "description": "RenderCV input file", + "fileMatch": [ + "*_CV.yml", + "*_CV.yaml", + "*_CV.json", + "*_CV.json5", + "*_cv.yml", + "*_cv.yaml", + "*_cv.json", + "*_cv.json5" + ], + "url": "https://raw.githubusercontent.com/sinaatalay/rendercv/main/schema.json" + }, + { + "name": "renv.lock", + "description": "Lockfile for recording R project dependencies with renv package", + "fileMatch": ["renv.lock"], + "url": "https://raw.githubusercontent.com/rstudio/renv/refs/heads/main/inst/schema/draft-07.renv.lock.schema.json" + }, + { + "name": "RoadRunner", + "description": "Spiral Roadrunner config file", + "fileMatch": [".rr*.yml", ".rr*.yaml"], + "url": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/3.0.schema.json", + "versions": { + "1.0": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/1.0.schema.json", + "2.0": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/2.0.schema.json", + "3.0": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/3.0.schema.json" + } + }, + { + "name": "Rockcraft", + "description": "Rockcraft project. Documentation: https://documentation.ubuntu.com/rockcraft/stable/", + "fileMatch": ["rockcraft.yaml"], + "url": "https://raw.githubusercontent.com/canonical/rockcraft/main/schema/rockcraft.json" + }, + { + "name": "Roo Coder Custom Modes", + "description": "Roo Coder custom mode configuration files", + "fileMatch": [ + ".roomodes", + "*.roomodes", + "custom_modes.yaml", + "custom_modes.yml" + ], + "url": "https://www.schemastore.org/roomodes.json" + }, + { + "name": "runny", + "description": "runny, a rool for running things", + "fileMatch": [".runny.yaml", ".runny.yml"], + "url": "https://raw.githubusercontent.com/simonwhitaker/runny/main/schema/runny.schema.json" + }, + { + "name": "rumdl", + "description": "Configuration file for rumdl, a fast Markdown linter and formatter", + "fileMatch": [".rumdl.toml", "rumdl.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/rumdl.json" + }, + { + "name": "rustfmt", + "description": "rustfmt, a tool to format Rust code. Documentation: https://rust-lang.github.io/rustfmt", + "fileMatch": ["rustfmt.toml", ".rustfmt.toml"], + "url": "https://www.schemastore.org/rustfmt.json" + }, + { + "name": "ryl", + "description": "ryl, a fast YAML linter written in Rust", + "fileMatch": ["ryl.toml", ".ryl.toml"], + "url": "https://www.schemastore.org/ryl.json" + }, + { + "name": "Rust toolchain", + "description": "A declarative managing the Rust toolchain", + "fileMatch": ["rust-toolchain.toml"], + "url": "https://www.schemastore.org/rust-toolchain.json" + }, + { + "name": "samt", + "description": "SAMT configuration files", + "fileMatch": ["samt.yaml"], + "url": "https://www.schemastore.org/samt.json" + }, + { + "name": "samtrc", + "description": "SAMT linter configuration files", + "fileMatch": [".samtrc.yaml"], + "url": "https://www.schemastore.org/samtrc.json" + }, + { + "name": "Sapphire CLI Config", + "description": "Scheme for Sapphire CLI Config (@sapphire/cli)", + "fileMatch": [".sapphirerc.json", ".sapphirerc.yml"], + "url": "https://raw.githubusercontent.com/sapphiredev/cli/main/templates/schemas/.sapphirerc.scheme.json" + }, + { + "name": "sarif-1.0.0.json", + "description": "Static Analysis Results Interchange Format (SARIF) version 1", + "url": "https://www.schemastore.org/sarif-1.0.0.json" + }, + { + "name": "sarif-2.0.0.json", + "description": "Static Analysis Results Interchange Format (SARIF) version 2", + "url": "https://www.schemastore.org/sarif-2.0.0.json" + }, + { + "name": "sarif-2.1.0-rtm.2", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.2", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.2.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.2", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.2", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.2.json" + }, + { + "name": "sarif-2.1.0-rtm.3", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.3", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.3.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.3", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.3", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.3.json" + }, + { + "name": "sarif-2.1.0-rtm.4", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.4", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.4.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.4", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.4", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.4.json" + }, + { + "name": "sarif-2.1.0-rtm.5", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.5", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.5.json" + }, + { + "name": "sarif-2.1.0-rtm.6", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.6", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.6.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.5", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.5", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.5.json" + }, + { + "name": "sarif-2.1.0", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0", + "url": "https://www.schemastore.org/sarif-2.1.0.json" + }, + { + "name": "sarif-external-property-file-2.1.0", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0.json" + }, + { + "name": "scalingo.json configuration", + "description": "scalingo.json configuration files", + "fileMatch": ["scalingo.json"], + "url": "https://raw.githubusercontent.com/Scalingo/developers-documentation/refs/heads/master/scalingo.schema.json" + }, + { + "name": "Schema Catalog", + "description": "JSON Schema catalog files compatible with SchemaStore.org", + "url": "https://www.schemastore.org/schema-catalog.json" + }, + { + "name": "schema.org - Action", + "description": "Action as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-action.json" + }, + { + "name": "schema.org - ContactPoint", + "description": "ContactPoint as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-contact-point.json" + }, + { + "name": "schema.org - Place", + "description": "Place as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-place.json" + }, + { + "name": "schema.org - Thing", + "description": "Thing as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-thing.json" + }, + { + "name": "Scarb", + "description": "Scarb manifest file (Scarb.toml)", + "fileMatch": ["Scarb.toml"], + "url": "https://www.schemastore.org/scarb.json" + }, + { + "name": "Scoop manifest", + "description": "Scoop bucket app manifest", + "fileMatch": ["**/bucket/**.json"], + "url": "https://raw.githubusercontent.com/lukesampson/scoop/master/schema.json" + }, + { + "name": "SDMX structure message", + "description": "Statistical Data and Metadata eXchange (ISO 17369) structure message", + "url": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/structure-message/tools/schemas/2.0.0/sdmx-json-structure-schema.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json", + "2.0.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/structure-message/tools/schemas/2.0.0/sdmx-json-structure-schema.json" + } + }, + { + "name": "SDMX metadata message", + "description": "Statistical Data and Metadata eXchange (ISO 17369) metadata message", + "url": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/metadata-message/tools/schemas/2.0.0/sdmx-json-metadata-schema.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/metadata-message/tools/schemas/1.0/sdmx-json-metadata-schema.json", + "2.0.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/metadata-message/tools/schemas/2.0.0/sdmx-json-metadata-schema.json" + } + }, + { + "name": "SDMX data message", + "description": "Statistical Data and Metadata eXchange (ISO 17369) data message", + "url": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/2.0.0/sdmx-json-data-schema.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/1.0/sdmx-json-data-schema.json", + "2.0.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/2.0.0/sdmx-json-data-schema.json" + } + }, + { + "name": "Semantic Data Fabric (SDF) file", + "description": "SDF blocks", + "fileMatch": ["*.sdf.yml"], + "url": "https://cdn.sdf.com/schemas/sdf-schema-1.3.json", + "versions": { + "1.0": "https://cdn.sdf.com/schemas/sdf-schema-1.0.json", + "1.1": "https://cdn.sdf.com/schemas/sdf-schema-1.1.json", + "1.2": "https://cdn.sdf.com/schemas/sdf-schema-1.2.json", + "1.3": "https://cdn.sdf.com/schemas/sdf-schema-1.3.json" + } + }, + { + "name": "semantic-release", + "description": "Configuration for semantic-release", + "fileMatch": [ + ".releaserc", + ".releaserc.yaml", + ".releaserc.yml", + ".releaserc.json" + ], + "url": "https://www.schemastore.org/semantic-release.json" + }, + { + "name": "Semgrep Rule", + "description": "Semgrep code scanning patterns and rules", + "fileMatch": [ + "**/.semgrep/**.yaml", + "**/.semgrep/**.yml", + ".semgrep.yaml", + ".semgrep.yml" + ], + "url": "https://www.schemastore.org/semgrep.json", + "versions": { + "v1.72.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.72.0/rule_schema_v1.yaml", + "v1.73.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.73.0/rule_schema_v1.yaml", + "v1.74.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.74.0/rule_schema_v1.yaml", + "v1.75.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.75.0/rule_schema_v1.yaml", + "v1.76.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.76.0/rule_schema_v1.yaml", + "v1.77.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.77.0/rule_schema_v1.yaml", + "v1.78.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.78.0/rule_schema_v1.yaml", + "v1.79.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.79.0/rule_schema_v1.yaml", + "v1.80.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.80.0/rule_schema_v1.yaml", + "v1.81.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.81.0/rule_schema_v1.yaml", + "v1.82.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.82.0/rule_schema_v1.yaml", + "v1.83.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.83.0/rule_schema_v1.yaml", + "v1.84.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.84.0/rule_schema_v1.yaml", + "v1.85.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.85.0/rule_schema_v1.yaml", + "v1.86.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.86.0/rule_schema_v1.yaml", + "v1.87.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.87.0/rule_schema_v1.yaml", + "v1.88.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.88.0/rule_schema_v1.yaml", + "v1.89.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.89.0/rule_schema_v1.yaml", + "v1.90.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.90.0/rule_schema_v1.yaml", + "v1.91.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.91.0/rule_schema_v1.yaml", + "v1.92.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.92.0/rule_schema_v1.yaml", + "v1.93.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.93.0/rule_schema_v1.yaml", + "v1.94.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.94.0/rule_schema_v1.yaml", + "v1.95.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.95.0/rule_schema_v1.yaml", + "v1.96.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.96.0/rule_schema_v1.yaml", + "v1.97.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.97.0/rule_schema_v1.yaml", + "v1.98.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.98.0/rule_schema_v1.yaml", + "v1.99.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.99.0/rule_schema_v1.yaml", + "v1.100.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.100.0/rule_schema_v1.yaml" + } + }, + { + "name": "Serenity Code Generator (Sergen)", + "description": "Serenity code generator (sergen) configuration file", + "fileMatch": ["sergen.json", "sergen.*.json", "*.sergen.json"], + "url": "https://www.schemastore.org/sergen.json" + }, + { + "name": "settings.job", + "description": "Azure Webjob settings file", + "fileMatch": ["settings.job"], + "url": "https://www.schemastore.org/settings.job.json" + }, + { + "name": "Settings.paf", + "description": "Qualisys Project Automation Framework settings file", + "fileMatch": ["settings.paf", "Settings.paf"], + "url": "https://raw.githubusercontent.com/qualisys/qualisys-schemas/master/paf-module.schema.json" + }, + { + "name": "sfdx-hardis configuration", + "description": "Configuration file for sfdx-hardis Salesforce DX plugin", + "fileMatch": [ + ".sfdx-hardis.yml", + ".sfdx-hardis.yaml", + ".sfdx-hardis.*.yml", + ".sfdx-hardis.*.yaml" + ], + "url": "https://raw.githubusercontent.com/hardisgroupcom/sfdx-hardis/main/config/sfdx-hardis.jsonschema.json" + }, + { + "name": "Sigma Detection Rule", + "description": "The Sigma detection rule format. Documentation: https://github.com/SigmaHQ/sigma-specification/blob/main/specification/sigma-rules-specification.md and https://github.com/SigmaHQ/sigma", + "fileMatch": ["**/sigma/**/*.yml"], + "url": "https://raw.githubusercontent.com/SigmaHQ/sigma-specification/main/json-schema/sigma-detection-rule-schema.json" + }, + { + "name": "Sigrid scope configuration file", + "description": "Analysis scope configuration file used by Sigrid (sigrid-says.com)", + "fileMatch": ["sigrid.yaml"], + "url": "https://www.schemastore.org/sigrid-scope-file.schema.json" + }, + { + "name": "SIL Kit Participant Configuration", + "description": "Configuration file for a Vector SIL Kit Participant", + "fileMatch": [ + "silkit.json", + "silkit.yaml", + "*.silkit.json", + "*.silkit.yaml" + ], + "url": "https://www.schemastore.org/sil-kit-participant-configuration.json" + }, + { + "name": "SIL Kit Registry Configuration", + "description": "Configuration file for Vector SIL Kit Registry Service", + "fileMatch": [ + "silkit-registry.yaml", + "silkit-registry.yml", + "silkit-registry.json", + "*.silkit-registry.yaml", + "*.silkit-registry.yml", + "*.silkit-registry.json" + ], + "url": "https://www.schemastore.org/sil-kit-registry-configuration.json" + }, + { + "name": "size-limit configuration", + "description": "Configuration file for size-limit", + "fileMatch": [".size-limit.json"], + "url": "https://www.schemastore.org/size-limit.json" + }, + { + "name": "Slack app manifest", + "description": "A manifest file containing the settings for a Slack app", + "url": "https://www.schemastore.org/slack-app-manifest.json" + }, + { + "name": "skyuxconfig.json", + "description": "SKY UX CLI configuration file", + "fileMatch": ["skyuxconfig.json", "skyuxconfig.*.json"], + "url": "https://raw.githubusercontent.com/blackbaud/skyux-config/4.x.x/skyuxconfig-schema.json" + }, + { + "name": "Snapcraft", + "description": "Snapcraft project. Documentation: https://documentation.ubuntu.com/snapcraft/stable/", + "fileMatch": [".snapcraft.yaml", "snapcraft.yaml"], + "url": "https://raw.githubusercontent.com/canonical/snapcraft/main/schema/snapcraft.json" + }, + { + "name": "snowflake-config", + "description": "Configuration file for Snowflake", + "fileMatch": ["**/.snowflake/config.toml", "**/snowflake/config.toml"], + "url": "https://www.schemastore.org/snowflake-config.json" + }, + { + "name": "snowflake-connections", + "description": "Configuration file for Snowflake connections", + "fileMatch": [ + "**/.snowflake/connections.toml", + "**/snowflake/connections.toml" + ], + "url": "https://www.schemastore.org/snowflake-connections.json" + }, + { + "name": "Solidarity", + "description": "CLI config for enforcing environment settings", + "fileMatch": [".solidarity", ".solidarity.json"], + "url": "https://www.schemastore.org/solidaritySchema.json" + }, + { + "name": "Solution filters", + "description": "File that specifies which MSBuild solution to launch and which projects to load", + "fileMatch": ["*.slnf"], + "url": "https://www.schemastore.org/solution-filter.json" + }, + { + "name": "Source Maps v3", + "description": "Source Map files version 3", + "fileMatch": ["*.map"], + "url": "https://www.schemastore.org/sourcemap-v3.json" + }, + { + "name": "Sourcery", + "description": "Sourcery YAML files", + "fileMatch": [".sourcery.yaml"], + "url": "https://www.schemastore.org/sourcery_yaml_schema.json" + }, + { + "name": "Spack bootstrap.yaml", + "description": "Spack package manager bootstrap.yaml config file", + "fileMatch": ["**/*spack/**/bootstrap.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/bootstrap.json" + }, + { + "name": "Spack cdash.yaml", + "description": "Spack package manager cdash.yaml config file", + "fileMatch": ["**/*spack/**/cdash.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/cdash.json" + }, + { + "name": "Spack ci.yaml", + "description": "Spack package manager ci.yaml config file", + "fileMatch": ["**/*spack/**/ci.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/ci.json" + }, + { + "name": "Spack compilers.yaml", + "description": "Spack package manager compilers.yaml config file", + "fileMatch": ["**/*spack/**/compilers.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/compilers.json" + }, + { + "name": "Spack concretizer.yaml", + "description": "Spack package manager concretizer.yaml config file", + "fileMatch": ["**/*spack/**/concretizer.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/concretizer.json" + }, + { + "name": "Spack config.yaml", + "description": "Spack package manager config.yaml file", + "fileMatch": ["**/*spack/**/config.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/config.json" + }, + { + "name": "Spack definitions.yaml", + "description": "Spack package manager definitions.yaml config", + "fileMatch": ["**/*spack/**/definitions.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/definitions.json" + }, + { + "name": "Spack develop.yaml", + "description": "Spack package manager develop.yaml config file", + "fileMatch": ["**/*spack/**/develop.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/develop.json" + }, + { + "name": "Spack env_vars.yaml", + "description": "Spack package manager env_vars.yaml config file", + "fileMatch": ["**/*spack/**/env_vars.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/env_vars.json" + }, + { + "name": "Spack include.yaml", + "description": "Spack package manager include.yaml config file", + "fileMatch": ["**/*spack/**/include.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/include.json" + }, + { + "name": "Spack mirrors.yaml", + "description": "Spack package manager mirrors.yaml config file", + "fileMatch": ["**/*spack/**/mirrors.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/mirrors.json" + }, + { + "name": "Spack modules.yaml", + "description": "Spack package manager modules.yaml config file", + "fileMatch": ["**/*spack/**/modules.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/modules.json" + }, + { + "name": "Spack packages.yaml", + "description": "Spack package manager packages.yaml config file", + "fileMatch": ["**/*spack/**/packages.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/packages.json" + }, + { + "name": "Spack repos.yaml", + "description": "Spack package manager repos.yaml config file", + "fileMatch": ["**/*spack/**/repos.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/repos.json" + }, + { + "name": "Spack environment", + "description": "Spack package manager environment file", + "fileMatch": ["spack.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/spack.json" + }, + { + "name": "Spack toolchains.yaml", + "description": "Spack package manager toolchains.yaml config file", + "fileMatch": ["**/*spack/**/toolchains.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/toolchains.json" + }, + { + "name": "Spack upstreams.yaml", + "description": "Spack package manager upstreams.yaml config file", + "fileMatch": ["**/*spack/**/upstreams.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/upstreams.json" + }, + { + "name": "Spack view.yaml", + "description": "Spack package manager view.yaml config file", + "fileMatch": ["**/*spack/**/view.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/view.json" + }, + { + "name": "Speakeasy Lint Configuration File", + "description": "Configuration file for Speakeasy's OpenAPI document linting. Find out more at https://www.speakeasy.com/docs/linting", + "fileMatch": ["**/.speakeasy/lint.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/lint.schema.json" + }, + { + "name": "Speakeasy Test Generation Configuration File", + "description": "Configuration file for Speakeasy's test generation", + "fileMatch": ["**/.speakeasy/tests.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/tests.schema.json" + }, + { + "name": "Speakeasy Workflow File", + "description": "Workflow configuration file. Read more at https://www.speakeasy.com/docs/workflow-file-reference", + "fileMatch": ["**/.speakeasy/workflow.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/workflow.schema.json" + }, + { + "name": "Speakeasy Generation Config File", + "description": "Speakeasy generation configuration file. Read more at https://www.speakeasy.com/docs/speakeasy-reference/generation/gen-yaml", + "fileMatch": ["**/.speakeasy/gen.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/gen.config.schema.json" + }, + { + "name": "SpecIF", + "description": "The Specification Integration Facility (SpecIF) integrates partial system models from different methods and tools in a semantic net. Documentation: https://specif.de and https://github.com/GfSE", + "fileMatch": ["*.specif", "*.specif.json"], + "url": "https://www.schemastore.org/specif-1.1.json", + "versions": { + "1.0": "https://www.schemastore.org/specif-1.0.json", + "1.1": "https://www.schemastore.org/specif-1.1.json" + } + }, + { + "name": "Specmatic Configuration", + "description": "Configuration file for Specmatic, a contract-driven testing tool", + "fileMatch": ["specmatic.json", "specmatic.yaml", "specmatic.yml"], + "url": "https://www.schemastore.org/specmatic.json" + }, + { + "name": "Sponge Mixin configuration", + "description": "Configuration file for SpongePowered's Mixin library", + "fileMatch": ["*.mixins.json"], + "url": "https://www.schemastore.org/sponge-mixins.json" + }, + { + "name": ".sprite files", + "description": "image sprite generation files", + "fileMatch": ["*.sprite"], + "url": "https://www.schemastore.org/sprite.json" + }, + { + "name": "SPDX 2.3", + "description": "System Package Data Exchange (SPDX) definition", + "fileMatch": ["*.spdx.json", "*.spdx.yaml", "*.spdx.yml"], + "url": "https://raw.githubusercontent.com/spdx/spdx-spec/refs/tags/v2.3/schemas/spdx-schema.json" + }, + { + "name": "sqlc configuration", + "description": "Configuration file for sqlc v2", + "fileMatch": ["sqlc.yaml", "sqlc.json", "*.sqlc.yaml"], + "url": "https://www.schemastore.org/sqlc-2.0.json" + }, + { + "name": "Azure Static Web Apps configuration file", + "description": "Documentation: https://learn.microsoft.com/en-us/azure/static-web-apps/configuration", + "fileMatch": ["staticwebapp.config.json"], + "url": "https://www.schemastore.org/staticwebapp.config.json" + }, + { + "name": "Azure Static Web Apps CLI configuration file", + "description": "Documentation: https://github.com/Azure/static-web-apps-cli#swa-cliconfigjson-file", + "fileMatch": ["swa-cli.config.json"], + "url": "https://www.schemastore.org/swa-cli.config.json" + }, + { + "name": "StackBlitz", + "description": "WebContainer project configuration", + "fileMatch": [".stackblitzrc", "**/.stackblitz/config.json"], + "url": "https://www.schemastore.org/stackblitzrc.json" + }, + { + "name": "Stale", + "description": "Configuration file for Stale for closing abandoned issues and pull requests. Documentation: https://probot.github.io/apps/stale/", + "fileMatch": ["**/.github/stale.yml"], + "url": "https://www.schemastore.org/stale.json" + }, + { + "name": "Starfish", + "description": "Configuration file for Starfish", + "fileMatch": ["starfish.yml"], + "url": "https://raw.githubusercontent.com/veepee-oss/json-schema/refs/heads/main/starfish/1-latest/starfish-schema.json" + }, + { + "name": "Starship", + "description": "Configuration file for Starship. Documentation: https://starship.rs", + "fileMatch": ["starship.toml"], + "url": "https://starship.rs/config-schema.json" + }, + { + "name": "Statamic Blueprint", + "description": "A Statamic Blueprint", + "fileMatch": [ + "**/resources/blueprints/**/*.yml", + "**/resources/blueprints/**/*.yaml" + ], + "url": "https://raw.githubusercontent.com/Konafets/statamic-blueprint-validation/main/statamic.blueprint.schema.json" + }, + { + "name": "Stella configuration file", + "description": "Configuration file for stella. Documentation: https://github.com/Shravan-1908/stellapy", + "fileMatch": ["stella.yml", "stella.json"], + "url": "https://raw.githubusercontent.com/Shravan-1908/stellapy/master/schema.json" + }, + { + "name": "Streamlit configuration file", + "description": "Streamlit configuration file", + "fileMatch": ["**/.streamlit/config.toml"], + "url": "https://www.schemastore.org/streamlit-config.json" + }, + { + "name": "stripe-app.json", + "description": "Stripe Apps manifest file", + "fileMatch": ["stripe-app.json"], + "url": "https://raw.githubusercontent.com/stripe/stripe-apps/main/schema/stripe-app.schema.json" + }, + { + "name": "stripe-app-local.json", + "description": "Stripe Apps local manifest file", + "fileMatch": ["stripe-app.*.json"], + "url": "https://raw.githubusercontent.com/stripe/stripe-apps/main/schema/stripe-app-local.schema.json" + }, + { + "name": "Stryker Mutator", + "description": "Configuration file for Stryker Mutator, the mutation testing framework for JavaScript and friends. Documentation: https://stryker-mutator.io", + "fileMatch": ["stryker.conf.json", "stryker-*.conf.json"], + "url": "https://raw.githubusercontent.com/stryker-mutator/stryker/master/packages/api/schema/stryker-core.json" + }, + { + "name": "StyleCop Analyzers Configuration", + "description": "Configuration file for StyleCop Analyzers", + "fileMatch": ["stylecop.json"], + "url": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json" + }, + { + "name": "Stylelint (.stylelintrc)", + "description": "Configuration file for stylelint", + "fileMatch": [ + ".stylelintrc", + ".stylelintrc.yml", + ".stylelintrc.yaml", + ".stylelintrc.json" + ], + "url": "https://www.schemastore.org/stylelintrc.json" + }, + { + "name": "SWADL", + "description": "Symphony Workflow Automation Definition Language. Documentation: https://developers.symphony.com/", + "fileMatch": ["*.swadl.yaml", "*.swadl.yml"], + "url": "https://raw.githubusercontent.com/SymphonyPlatformSolutions/symphony-wdk/master/workflow-language/src/main/resources/swadl-schema-1.0.json" + }, + { + "name": "Swagger API 2.0", + "description": "Swagger API 2.0", + "fileMatch": ["swagger.json"], + "url": "https://spec.openapis.org/oas/2.0/schema/2017-08-27" + }, + { + "name": "Synadia Connect Component", + "description": "Synadia Connect component definition", + "fileMatch": [ + "**/.connect/scanners/*.yml", + "**/.connect/sources/*.yml", + "**/.connect/sinks/*.yml" + ], + "url": "https://raw.githubusercontent.com/synadia-io/connect/main/schemas/component.json" + }, + { + "name": "Tach", + "description": "Tach configuration file", + "fileMatch": ["tach.toml"], + "url": "https://raw.githubusercontent.com/gauge-sh/tach/refs/heads/main/public/tach-toml-schema.json" + }, + { + "name": "Tach Domain", + "description": "Tach domain configuration file", + "fileMatch": ["tach.domain.toml"], + "url": "https://raw.githubusercontent.com/gauge-sh/tach/refs/heads/main/public/tach-domain-toml-schema.json" + }, + { + "name": "task.json", + "description": "VSCode Task file", + "fileMatch": ["task.json", "tasks.json"], + "url": "https://www.schemastore.org/task.json" + }, + { + "name": "Talhelper", + "description": "A helper tool to help creating Talos Kubernetes cluster", + "fileMatch": ["talconfig.yaml", "talconfig.yml"], + "url": "https://raw.githubusercontent.com/budimanjojo/talhelper/master/pkg/config/schemas/talconfig.json" + }, + { + "name": "Talisman configuration", + "description": "Configuration for .talismanrc", + "fileMatch": [".talismanrc"], + "url": "https://raw.githubusercontent.com/thoughtworks/talisman/main/examples/schema-store-talismanrc.json" + }, + { + "name": "Taurus", + "description": "Taurus bzt cli framework config", + "fileMatch": ["bzt.yml", "bzt.yaml", "taurus.yml", "taurus.yaml"], + "url": "https://www.schemastore.org/taurus.json" + }, + { + "name": "Tauticord", + "description": "Tauticord configuration (v2)", + "fileMatch": ["tauticord.yml", "tauticord.yaml"], + "url": "https://raw.githubusercontent.com/nwithan8/tauticord/master/.schema/config_v2.schema.json" + }, + { + "name": "template.json", + "description": ".NET template files", + "fileMatch": ["**/.template.config/template.json"], + "url": "https://www.schemastore.org/template.json" + }, + { + "name": "templatsources.json", + "description": "SideWaffle template source", + "fileMatch": ["templatesources.json"], + "url": "https://www.schemastore.org/templatesources.json" + }, + { + "name": "Tier.run pricing.json", + "description": "Tier.run pricing model configuration", + "fileMatch": ["pricing.json"], + "url": "https://raw.githubusercontent.com/tierrun/tier/main/pricing/schema.json" + }, + { + "name": "Tikibase", + "description": "Tikibase configuration file", + "fileMatch": ["tikibase.json"], + "url": "https://raw.githubusercontent.com/kevgo/tikibase/main/doc/tikibase.schema.json" + }, + { + "name": "theme.json", + "description": "WordPress block theme global settings and styles configuration file", + "fileMatch": ["theme.json"], + "url": "https://schemas.wp.org/trunk/theme.json", + "versions": { + "v1": "https://raw.githubusercontent.com/WordPress/gutenberg/b40b61fabf13a6229c616527689d9a7024f81535/schemas/json/theme.json", + "trunk": "https://raw.githubusercontent.com/WordPress/gutenberg/trunk/schemas/json/theme.json" + } + }, + { + "name": "Threagile", + "description": "Threagile Threat Model file", + "fileMatch": ["threagile.yaml", "threat-model.yaml"], + "url": "https://raw.githubusercontent.com/Threagile/threagile/refs/heads/master/support/schema.json" + }, + { + "name": "tizen_workspace.json", + "description": "Tizen project workspace configuration file", + "fileMatch": ["tizen_workspace.yaml"], + "url": "https://www.schemastore.org/tizen_workspace.json" + }, + { + "name": "tldr", + "description": "tldr configuration file", + "fileMatch": [".tldr.json"], + "url": "https://www.schemastore.org/tldr.json" + }, + { + "name": "Tombi", + "description": "Tombi (\u9cf6) is a toolkit for TOML; providing a formatter/linter and language server", + "fileMatch": ["tombi.toml", "**/tombi/config.toml"], + "url": "https://www.schemastore.org/tombi.json" + }, + { + "name": "tox", + "description": "tox configuration for automating Python testing and task management", + "fileMatch": ["tox.toml"], + "url": "https://raw.githubusercontent.com/tox-dev/tox/main/src/tox/tox.schema.json" + }, + { + "name": "TextMate Grammar", + "description": "Language grammar description files for TextMate and compatible editors", + "fileMatch": [ + "*.tmLanguage.json", + "*.tmLanguage.yaml", + "*.tmLanguage.yml", + "*.yaml-tmlanguage" + ], + "url": "https://www.schemastore.org/tmlanguage.json" + }, + { + "name": "TestEnvironment.json", + "description": "Visual Studio's test environment config", + "fileMatch": ["testEnvironments.json"], + "url": "https://www.schemastore.org/testenvironments.json" + }, + { + "name": "Turborepo", + "description": "Turborepo, a tool for managing monorepos", + "fileMatch": ["turbo.json"], + "url": "https://turborepo.org/schema.json" + }, + { + "name": "Travis CI (.travis.yml)", + "description": "Travis CI configuration file", + "fileMatch": [".travis.yml"], + "url": "https://www.schemastore.org/travis.json" + }, + { + "name": "Traefik v2", + "description": "Traefik v2 YAML configuration file", + "fileMatch": ["traefik.yml", "traefik.yaml"], + "url": "https://www.schemastore.org/traefik-v2.json" + }, + { + "name": "Traefik v2 File Provider", + "description": "Traefik v2 Dynamic Configuration File Provider", + "url": "https://www.schemastore.org/traefik-v2-file-provider.json" + }, + { + "name": "Traefik v3", + "description": "Traefik v3 YAML configuration file", + "url": "https://www.schemastore.org/traefik-v3.json" + }, + { + "name": "Traefik v3 File Provider", + "description": "Traefik v3 Dynamic Configuration File Provider", + "url": "https://www.schemastore.org/traefik-v3-file-provider.json" + }, + { + "name": "transcend.yml", + "description": "Configure as Code for Transcend", + "fileMatch": ["transcend.yml", "transcend.yaml"], + "url": "https://raw.githubusercontent.com/transcend-io/tools/refs/heads/main/packages/cli/schema/transcend-yml-schema-latest.json" + }, + { + "name": "trime.yaml", + "description": "trime configuration file", + "fileMatch": ["trime.yaml", "trime.yml", "*.trime.yaml", "*.trime.yml"], + "url": "https://raw.githubusercontent.com/osfans/trime/develop/doc/trime-schema.json" + }, + { + "name": "TrueScript for *.tscript files", + "description": "The Ultimate Script Language for monday.com - \u00a9 2024 MakeITSimple", + "fileMatch": ["*.tscript", "*.tscript.yaml", "*.tscript.yml"], + "url": "https://www.schemastore.org/truescript.json", + "versions": { + "latest": "https://www.schemastore.org/truescript.json" + } + }, + { + "name": "trunk.yaml", + "description": "Configuration trunk, a powerful linter runner. Documentation: https://docs.trunk.io", + "fileMatch": ["trunk.yaml"], + "url": "https://static.trunk.io/pub/trunk-yaml-schema.json" + }, + { + "name": "tsconfig.json", + "description": "TypeScript compiler configuration file", + "fileMatch": ["tsconfig*.json"], + "url": "https://www.schemastore.org/tsconfig.json" + }, + { + "name": "tsd.json", + "description": "DefinitelyTyped description manager (TSD)", + "fileMatch": ["tsd.json"], + "url": "https://www.schemastore.org/tsd.json" + }, + { + "name": "tsdoc.json", + "description": "TSDoc configuration file", + "fileMatch": ["tsdoc.json"], + "url": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json" + }, + { + "name": "tsdrc.json", + "description": "TypeScript Definition manager (tsd) global settings file", + "fileMatch": [".tsdrc"], + "url": "https://www.schemastore.org/tsdrc.json" + }, + { + "name": "ts-force-config.json", + "description": "Generated Typescript classes for Salesforce", + "fileMatch": ["ts-force-config.json"], + "url": "https://www.schemastore.org/ts-force-config.json" + }, + { + "name": "tslint.json", + "description": "TypeScript Lint configuration file", + "fileMatch": ["tslint.json", "tslint.yaml", "tslint.yml"], + "url": "https://www.schemastore.org/tslint.json" + }, + { + "name": "TSON", + "description": "TSON (Tuning-Spectrum Object Notation) data", + "fileMatch": ["*.tson", "*.tson.yaml", "*.tson.yml", "*.tson.json"], + "url": "https://raw.githubusercontent.com/spectral-discord/TSON/main/schema/tson.json" + }, + { + "name": "TSTyche", + "description": "TSTyche configuration file", + "fileMatch": ["tstyche.json", "tstyche.config.json"], + "url": "https://tstyche.org/schemas/config.json" + }, + { + "name": "tsup", + "description": "Configuration options for tsup", + "fileMatch": ["tsup.config.json"], + "url": "https://cdn.jsdelivr.net/npm/tsup/schema.json" + }, + { + "name": "tusk.yml", + "description": "tusk CLI configuration file", + "fileMatch": ["tusk.yml", "tusk.yaml"], + "url": "https://raw.githubusercontent.com/rliebz/tusk/main/tusk.schema.json" + }, + { + "name": "twee-ts", + "description": "twee-ts compiler configuration file", + "fileMatch": ["twee-ts.config.json"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/twee-ts.config.json" + }, + { + "name": "typewiz.json", + "description": "Typewiz configuration file", + "fileMatch": ["typewiz.json"], + "url": "https://www.schemastore.org/typewiz.json" + }, + { + "name": "typo3.json", + "description": "the Typo3 CMS", + "fileMatch": ["**/sites/*/config.yaml", "**/sites/*/config.yml"], + "url": "https://www.schemastore.org/typo3.json" + }, + { + "name": "TYPO3 Vendor Bundler config", + "description": "Configuration for TYPO3 Vendor Bundler, a Composer library to bundle vendor libraries for TYPO3 extensions in classic mode", + "fileMatch": [ + "typo3-vendor-bundler.json", + "typo3-vendor-bundler.yaml", + "typo3-vendor-bundler.yml" + ], + "url": "https://raw.githubusercontent.com/eliashaeussler/typo3-vendor-bundler/refs/heads/main/res/typo3-vendor-bundler.schema.json" + }, + { + "name": "typos.toml", + "description": "typos configuration file", + "fileMatch": ["typos.toml", "_typos.toml", ".typos.toml"], + "url": "https://raw.githubusercontent.com/crate-ci/typos/master/config.schema.json" + }, + { + "name": "typings.json", + "description": "Typings TypeScript definitions manager definition file", + "fileMatch": ["typings.json"], + "url": "https://www.schemastore.org/typings.json" + }, + { + "name": "typingsrc.json", + "description": "Typings TypeScript definitions manager configuration file", + "fileMatch": [".typingsrc"], + "url": "https://www.schemastore.org/typingsrc.json" + }, + { + "name": "Ubuntu Server Autoinstall", + "description": "Settings file for Ubuntu Autoinstall", + "fileMatch": ["user-data", "autoinstall.yaml"], + "url": "https://www.schemastore.org/ubuntu-server-autoinstall.json" + }, + { + "name": "up.json", + "description": "Up configuration file", + "fileMatch": ["up.json"], + "url": "https://www.schemastore.org/up.json" + }, + { + "name": "UI5 Manifest", + "description": "UI5 Manifest (manifest.json)", + "fileMatch": [ + "**/webapp/manifest.json", + "**/src/main/webapp/manifest.json", + "**/src/manifest.json" + ], + "url": "https://raw.githubusercontent.com/UI5/manifest/main/schema.json" + }, + { + "name": "ui5.yaml", + "description": "UI5 CLI Configuration File (ui5.yaml)", + "fileMatch": [ + "ui5.yaml", + "*-ui5.yaml", + "*.ui5.yaml", + "ui5-deploy.yaml", + "ui5-dist.yaml", + "ui5-local.yaml" + ], + "url": "https://ui5.github.io/cli/schema/ui5.yaml.json" + }, + { + "name": "ui5-workspace.yaml", + "description": "UI5 CLI Workspace Configuration File (ui5-workspace.yaml)", + "fileMatch": [ + "ui5-workspace.yaml", + "*-ui5-workspace.yaml", + "*.ui5-workspace.yaml", + "ui5-workspace-deploy.yaml", + "ui5-workspace-dist.yaml", + "ui5-workspace-local.yaml" + ], + "url": "https://ui5.github.io/cli/schema/ui5-workspace.yaml.json" + }, + { + "name": "UTAM Page Object", + "description": "UI Test Automation Model page object. Documentation: https://utam.dev/", + "fileMatch": ["*.utam.json", ".utam.json"], + "url": "https://www.schemastore.org/utam-page-object.json", + "versions": { + "current": "https://www.schemastore.org/utam-page-object.json", + "1.5.0": "https://www.schemastore.org/utam-page-object-1.5.0.json", + "2.0.3": "https://www.schemastore.org/utam-page-object-2.0.3.json", + "2.2.0": "https://www.schemastore.org/utam-page-object-2.2.0.json" + } + }, + { + "name": "UNCORS configuration", + "description": "Configuration file for UNCORS reverse proxy", + "fileMatch": [ + "*.uncors.yml", + "*.uncors.yaml", + ".uncors.yml", + ".uncors.yaml" + ], + "url": "https://raw.githubusercontent.com/evg4b/uncors/main/schema.json" + }, + { + "name": "Universal Schedule Format", + "description": "Universal Schedule Format (USF) configuration file", + "fileMatch": [ + "*.usf", + "*.usf.yml", + "*.usf.yaml", + "*.usf.json", + ".usf.yml", + ".usf.yaml", + ".usf.json", + "usf.yml", + "usf.yaml", + "usf.json" + ], + "url": "https://raw.githubusercontent.com/USF-org/USF/refs/heads/main/usf.schema.json" + }, + { + "name": "uv", + "description": "uv, a fast Python package installer", + "fileMatch": ["uv.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/uv.json" + }, + { + "name": "Vector", + "description": "Configuration file for Vector, an observability data pipeline agent and aggregator", + "fileMatch": ["vector.json", "vector.toml", "vector.yaml"], + "url": "https://www.schemastore.org/vector.json" + }, + { + "name": "vega.json", + "description": "Vega visualization specification file", + "fileMatch": ["*.vg", "*.vg.json"], + "url": "https://www.schemastore.org/vega.json" + }, + { + "name": "vega-lite.json", + "description": "Vega-Lite visualization specification file", + "fileMatch": ["*.vl", "*.vl.json"], + "url": "https://www.schemastore.org/vega-lite.json" + }, + { + "name": "Vela Pipeline Configuration", + "description": "Vela Pipeline Configuration File", + "fileMatch": [".vela.yml", ".vela.yaml"], + "url": "https://github.com/go-vela/server/releases/latest/download/schema.json" + }, + { + "name": "venvironment.yaml", + "description": "Simulation and test environment for Vector CANoe Server Editions", + "fileMatch": [ + "venvironment.yaml", + "*.venvironment.yaml", + "venvironment.yml", + "*.venvironment.yml", + "venvironment.json", + "*.venvironment.json" + ], + "url": "https://www.schemastore.org/venvironment-schema-v4.2.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/venvironment-schema-v1.0.0.json", + "1.1.0": "https://www.schemastore.org/venvironment-schema-v1.1.0.json", + "1.1.1": "https://www.schemastore.org/venvironment-schema-v1.1.1.json", + "2.0.0": "https://www.schemastore.org/venvironment-schema-v2.0.0.json", + "2.1.0": "https://www.schemastore.org/venvironment-schema-v2.1.0.json", + "2.2.0": "https://www.schemastore.org/venvironment-schema-v2.2.0.json", + "3.0.0": "https://www.schemastore.org/venvironment-schema-v3.0.0.json", + "3.1.0": "https://www.schemastore.org/venvironment-schema-v3.1.0.json", + "3.2.0": "https://www.schemastore.org/venvironment-schema-v3.2.0.json", + "4.0.0": "https://www.schemastore.org/venvironment-schema-v4.0.0.json", + "4.1.0": "https://www.schemastore.org/venvironment-schema-v4.1.0.json", + "4.2.0": "https://www.schemastore.org/venvironment-schema-v4.2.0.json" + } + }, + { + "name": "venvplus.yaml", + "description": "venvplus settings of Vector CANoe Server Editions", + "fileMatch": [ + "venvplus.yaml", + "*.venvplus.yaml", + "venvplus.yml", + "*.venvplus.yml", + "venvplus.json", + "*.venvplus.json" + ], + "url": "https://www.schemastore.org/venvplus-schema-v1.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/venvplus-schema-v1.0.0.json" + } + }, + { + "name": "Version Bumper config", + "description": "Configuration for Version Bumper, a Composer plugin to bump project versions during release preparations", + "fileMatch": [ + "version-bumper.json", + "version-bumper.yaml", + "version-bumper.yml" + ], + "url": "https://raw.githubusercontent.com/eliashaeussler/version-bumper/refs/heads/main/res/version-bumper.schema.json" + }, + { + "name": "version.json", + "description": "A project version descriptor file used by Nerdbank.GitVersioning", + "fileMatch": ["version.json"], + "url": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json" + }, + { + "name": ".versionrc.json", + "description": "Conventional Changelog Configuration file", + "fileMatch": [".versionrc", ".versionrc.json"], + "url": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.2.0/schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/1.0.0/schema.json", + "2.0.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.0.0/schema.json", + "2.1.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.1.0/schema.json", + "2.2.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.2.0/schema.json" + } + }, + { + "name": "vhwdebugger-binding.yaml", + "description": "Configuration of the Vector CANoe hardware debugger binding", + "fileMatch": [ + "vhwdebugger-binding.yaml", + "*.vhwdebugger-binding.yaml", + "vhwdebugger-binding.yml", + "*.vhwdebugger-binding.yml" + ], + "url": "https://www.schemastore.org/vhwdebugger-binding-schema.json" + }, + { + "name": "vim-addon-info", + "description": "vim plugin addon-info.json metadata files", + "fileMatch": ["**/*vim*/addon-info.json"], + "url": "https://www.schemastore.org/vim-addon-info.json" + }, + { + "name": "vsls.json", + "description": "Visual Studio Live Share configuration file", + "fileMatch": [".vsls.json"], + "url": "https://www.schemastore.org/vsls.json" + }, + { + "name": "vs-2017.3.host.json", + "description": "Visual Studio template host file", + "fileMatch": ["vs-2017.3.host.json"], + "url": "https://www.schemastore.org/vs-2017.3.host.json" + }, + { + "name": "vs-nesting.json", + "description": "Visual Studio's file nesting feature", + "fileMatch": ["*.filenesting.json", ".filenesting.json"], + "url": "https://www.schemastore.org/vs-nesting.json" + }, + { + "name": ".vsconfig", + "description": "Visual Studio component configuration files", + "fileMatch": ["*.vsconfig"], + "url": "https://www.schemastore.org/vsconfig.json" + }, + { + "name": ".vsext", + "description": "Visual Studio extension pack manifests", + "fileMatch": ["*.vsext"], + "url": "https://www.schemastore.org/vsext.json" + }, + { + "name": "VSIX CLI publishing", + "description": "Visual Studio extension publishing", + "fileMatch": ["vs-publish.json"], + "url": "https://www.schemastore.org/vsix-publish.json" + }, + { + "name": "vss-extension.json", + "description": "Azure DevOps Extensions", + "fileMatch": ["vss-extension.json"], + "url": "https://www.schemastore.org/vss-extension.json" + }, + { + "name": "vtesttree.yaml", + "description": "Vector test execution tree description", + "fileMatch": ["*.vtesttree.yaml", "*.vtesttree.yml", "*.vtesttree.json"], + "url": "https://www.schemastore.org/vtesttree-schema-v2.4.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/vtesttree-schema-v1.0.0.json", + "2.0.0": "https://www.schemastore.org/vtesttree-schema-v2.0.0.json", + "2.1.0": "https://www.schemastore.org/vtesttree-schema-v2.1.0.json", + "2.2.0": "https://www.schemastore.org/vtesttree-schema-v2.2.0.json", + "2.3.0": "https://www.schemastore.org/vtesttree-schema-v2.3.0.json", + "2.4.0": "https://www.schemastore.org/vtesttree-schema-v2.4.0.json" + } + }, + { + "name": "vtestunit.yaml", + "description": "Vector test unit description", + "fileMatch": ["*.vtestunit.yaml", "*.vtestunit.yml", "*.vtestunit.json"], + "url": "https://www.schemastore.org/vtestunit-schema.json" + }, + { + "name": "v8r", + "description": "v8r configuration file", + "fileMatch": [".v8rrc.json", ".v8rrc.yaml", ".v8rrc.yml"], + "url": "https://raw.githubusercontent.com/chris48s/v8r/main/config-schema.json" + }, + { + "name": "WebExtensions", + "description": "WebExtension manifest files", + "fileMatch": ["manifest.json"], + "url": "https://www.schemastore.org/webextension.json" + }, + { + "name": "Web App Manifest", + "description": "Web Application manifest file", + "fileMatch": ["manifest.json", "*.webmanifest"], + "url": "https://www.schemastore.org/web-manifest-combined.json" + }, + { + "name": "webjobs-list.json", + "description": "Azure Webjob list file", + "fileMatch": ["webjobs-list.json"], + "url": "https://www.schemastore.org/webjobs-list.json" + }, + { + "name": "webjobpublishsettings.json", + "description": "Azure Webjobs publish settings file", + "fileMatch": ["webjobpublishsettings.json"], + "url": "https://www.schemastore.org/webjob-publish-settings.json" + }, + { + "name": "Web types", + "description": "JSON standard for web component libraries metadata", + "fileMatch": ["web-types.json", "*.web-types.json"], + "url": "https://www.schemastore.org/web-types.json" + }, + { + "name": "WP-CLI", + "description": "WP-CLI is the official command-line tool for WordPress", + "fileMatch": ["wp-cli.local.yml", "wp-cli.yml", "**/.wp-cli/config.yml"], + "url": "https://raw.githubusercontent.com/wp-cli/wp-cli/refs/heads/main/schemas/wp-cli-config.json" + }, + { + "name": "Wrangler CLI", + "description": "Wrangler is a command-line tool for building with Cloudflare developer products", + "fileMatch": ["wrangler.json", "wrangler.jsonc", "wrangler.toml"], + "url": "https://www.unpkg.com/wrangler/config-schema.json" + }, + { + "name": "XenForo add-on manifest", + "description": "A manifest describing a XenForo add-on", + "fileMatch": [], + "url": "https://docs.xenforo.com/schema/addon.schema.json" + }, + { + "name": "JSON-stat 2.0", + "description": "JSON-stat 2.0", + "url": "https://json-stat.org/format/schema/2.0/" + }, + { + "name": "KSP-AVC", + "description": "The .version file format for KSP-AVC", + "fileMatch": ["*.version"], + "url": "https://raw.githubusercontent.com/linuxgurugamer/KSPAddonVersionChecker/master/KSP-AVC.schema.json" + }, + { + "name": "KSP-CKAN", + "description": "Metadata spec for CKAN meta files", + "fileMatch": ["*.ckan"], + "url": "https://raw.githubusercontent.com/KSP-CKAN/CKAN/master/CKAN.schema" + }, + { + "name": "KSP-NetKAN", + "description": "Metadata spec for NetKAN files", + "fileMatch": ["*.netkan", "*.frozen"], + "url": "https://raw.githubusercontent.com/KSP-CKAN/CKAN/master/NetKAN.schema" + }, + { + "name": "JSON Schema Draft 4", + "description": "Meta-validation JSON Schema Draft 4", + "url": "https://json-schema.org/draft-04/schema" + }, + { + "name": "JSON Schema Draft 7", + "description": "Meta-validation JSON Schema Draft 7", + "fileMatch": ["*.schema.json"], + "url": "https://json-schema.org/draft-07/schema" + }, + { + "name": "JSON Schema Draft 8 (2019-09)", + "description": "Meta-validation JSON Schema Draft 8 (2019-09)", + "url": "https://json-schema.org/draft/2019-09/schema" + }, + { + "name": "JSON Schema Draft 2020-12", + "description": "Meta-validation JSON Schema Draft 2020-12", + "url": "https://json-schema.org/draft/2020-12/schema" + }, + { + "name": "xunit.runner.json", + "description": "Configuration file for unit test projects using xUnit.net", + "fileMatch": ["xunit.runner.json", "*.xunit.runner.json"], + "url": "https://www.schemastore.org/xunit.runner.schema.json", + "versions": { + "v2.2": "https://xunit.net/schema/v2.2/xunit.runner.schema.json", + "v2.3": "https://xunit.net/schema/v2.3/xunit.runner.schema.json", + "v2.4": "https://xunit.net/schema/current/xunit.runner.schema.json" + } + }, + { + "name": "servicehub.service.json", + "description": "Microsoft ServiceHub Service", + "fileMatch": ["*.servicehub.service.json"], + "url": "https://www.schemastore.org/servicehub.service.schema.json" + }, + { + "name": "servicehub.config.json", + "description": "Microsoft ServiceHub Configuration", + "fileMatch": ["servicehub.config.json"], + "url": "https://www.schemastore.org/servicehub.config.schema.json" + }, + { + "name": ".cryproj (generic)", + "description": "A CRYENGINE projects (.cryproj files)", + "fileMatch": ["*.cryproj"], + "url": "https://www.schemastore.org/cryproj.json", + "versions": { + "dev": "https://www.schemastore.org/cryproj.dev.schema.json", + "5.2": "https://www.schemastore.org/cryproj.52.schema.json", + "5.3": "https://www.schemastore.org/cryproj.53.schema.json", + "5.4": "https://www.schemastore.org/cryproj.54.schema.json", + "5.5": "https://www.schemastore.org/cryproj.55.schema.json" + } + }, + { + "name": "typedoc.json", + "description": "A the Typedoc configuration file", + "fileMatch": ["typedoc.json"], + "url": "https://typedoc.org/schema.json" + }, + { + "name": "tmuxinator", + "description": "tmuxinator, a tmux session manager", + "fileMatch": [ + ".tmuxinator.yaml", + ".tmuxinator.yml", + "**/.tmuxinator/*.yaml", + "**/.tmuxinator/*.yml", + "**/tmuxinator/*.yaml", + "**/tmuxinator/*.yml" + ], + "url": "https://www.schemastore.org/tmuxinator.json" + }, + { + "name": "huskyrc", + "description": "Husky can prevent bad `git commit`, `git push` and more \ud83d\udc36 woof!", + "fileMatch": [".huskyrc", ".huskyrc.json"], + "url": "https://www.schemastore.org/huskyrc.json" + }, + { + "name": "lint-staged (.lintstagedrc)", + "description": "lint-staged config", + "fileMatch": [ + ".lintstagedrc", + ".lintstagedrc.json", + ".lintstagedrc.yaml", + ".lintstagedrc.yml" + ], + "url": "https://www.schemastore.org/lintstagedrc.schema.json" + }, + { + "name": ".mdxlintrc", + "description": "An mdxlint configuration file", + "fileMatch": [ + ".mdxlintrc", + ".mdxlintrc.json", + ".mdxlintrc.yaml", + ".mdxlintrc.yml" + ], + "url": "https://www.schemastore.org/mdxlintrc.json" + }, + { + "name": "mirrord config", + "description": "mirrord", + "fileMatch": [ + "*.mirrord.json", + "*.mirrord.toml", + "*.mirrord.yaml", + "*.mirrord.yml" + ], + "url": "https://raw.githubusercontent.com/metalbear-co/mirrord/main/mirrord-schema.json" + }, + { + "name": "mise", + "description": "mise config, a polyglot dev tool manager", + "fileMatch": [ + ".mise.toml", + ".mise.*.toml", + "mise.toml", + "mise.*.toml", + "**/.mise/config.toml", + "**/.mise/config.*.toml", + "**/.mise/conf.d/*.toml", + "**/mise/config.toml", + "**/mise/config.*.toml", + "**/mise/conf.d/*.toml" + ], + "url": "https://mise.jdx.dev/schema/mise.json" + }, + { + "name": "mta.yaml", + "description": "A MTA projects v3.3", + "fileMatch": ["mta.yaml", "mta.yml"], + "url": "https://www.schemastore.org/mta.json" + }, + { + "name": "mtad.yaml", + "description": "A MTA deployment descriptors v3.3", + "fileMatch": ["mtad.yaml", "mtad.yml"], + "url": "https://www.schemastore.org/mtad.json" + }, + { + "name": "Motif config", + "description": "A Motif config file", + "fileMatch": ["motif.json"], + "url": "https://motif.land/api/motif.schema.json" + }, + { + "name": ".mtaext", + "description": "A MTA extension descriptors v3.3", + "fileMatch": ["*.mtaext"], + "url": "https://www.schemastore.org/mtaext.json" + }, + { + "name": "xs-app.json", + "description": "the SAP Application Router v8.2.2", + "fileMatch": ["xs-app.json"], + "url": "https://www.schemastore.org/xs-app.json" + }, + { + "name": "Opctl", + "description": "Opctl describing an op", + "fileMatch": ["**/.opspec/*/*.yml", "**/.opspec/*/*.yaml"], + "url": "https://www.schemastore.org/opspec-io-0.1.7.json" + }, + { + "name": "HEMTT", + "description": "HEMTT Project File", + "fileMatch": ["hemtt.json", "hemtt.toml"], + "url": "https://www.schemastore.org/hemtt-0.6.2.json", + "versions": { + "0.6.2": "https://www.schemastore.org/hemtt-0.6.2.json" + } + }, + { + "name": "Node.js configuration", + "description": "The Node.js configuration file", + "fileMatch": ["node.config.json"], + "url": "https://nodejs.org/docs/latest/node-config-schema.json" + }, + { + "name": "now", + "description": "ZEIT Now project configuration file", + "fileMatch": ["now.json"], + "url": "https://www.schemastore.org/now.json" + }, + { + "name": "taskcat", + "description": "taskcat", + "fileMatch": [".taskcat.yml"], + "url": "https://raw.githubusercontent.com/aws-quickstart/taskcat/master/taskcat/cfg/config_schema.json" + }, + { + "name": "BizTalkServerApplicationSchema", + "description": "BizTalk server application inventory json file", + "fileMatch": ["BizTalkServerInventory.json"], + "url": "https://www.schemastore.org/BizTalkServerApplicationSchema.json" + }, + { + "name": "httpmockrc", + "description": "Http-mocker is a tool for mock local requests or proxy remote requests", + "fileMatch": [".httpmockrc", ".httpmock.json"], + "url": "https://www.schemastore.org/httpmockrc.json" + }, + { + "name": "nitro.json", + "description": "Nitro Modules configuration file. Documentation: https://margelo.nitro.com", + "fileMatch": [], + "url": "https://nitro.margelo.com/nitro.schema.json" + }, + { + "name": "neoload", + "description": "Neotys as-code load test specification. Documentation: https://github.com/Neotys-Labs/neoload-cli", + "fileMatch": [ + ".nl.yaml", + ".nl.yml", + ".nl.json", + ".neoload.yaml", + ".neoload.yml", + ".neoload.json" + ], + "url": "https://raw.githubusercontent.com/Neotys-Labs/neoload-cli/master/resources/as-code.latest.schema.json" + }, + { + "name": "release drafter", + "description": "Release Drafter configuration file", + "fileMatch": ["**/.github/release-drafter.yml"], + "url": "https://raw.githubusercontent.com/release-drafter/release-drafter/master/schema.json" + }, + { + "name": "zuul", + "description": "Zuul CI configuration file", + "fileMatch": ["**/*zuul.d/*.yaml", ".zuul.yaml"], + "url": "https://www.schemastore.org/zuul.json" + }, + { + "name": "Briefcase", + "description": "Microsoft Briefcase configuration file", + "fileMatch": ["briefcase.yaml"], + "url": "https://raw.githubusercontent.com/microsoft/Briefcase/master/mlbriefcase/briefcase-schema.json" + }, + { + "name": "httparchive", + "description": "HTTP Archive", + "fileMatch": ["*.har"], + "url": "https://raw.githubusercontent.com/ahmadnassri/har-schema/master/lib/har.json" + }, + { + "name": "jsdoc", + "description": "JSDoc configuration file", + "fileMatch": ["conf.json", "jsdoc.json"], + "url": "https://www.schemastore.org/jsdoc-1.0.0.json" + }, + { + "name": "Ray", + "description": "Ray autocluster configuration file", + "fileMatch": ["ray-*-cluster.yaml"], + "url": "https://raw.githubusercontent.com/ray-project/ray/master/python/ray/autoscaler/ray-schema.json" + }, + { + "name": "Hadolint", + "description": "A smarter Dockerfile linter that helps you build best practice Docker images", + "fileMatch": [ + ".hadolint.yaml", + "hadolint.yaml", + ".hadolint.yml", + "hadolint.yml" + ], + "url": "https://raw.githubusercontent.com/hadolint/hadolint/master/contrib/hadolint.json" + }, + { + "name": "Hatch", + "description": "Python package build tool", + "fileMatch": ["hatch.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/hatch.json" + }, + { + "name": "helmfile", + "description": "Helmfile is a declarative spec for deploying helm charts", + "fileMatch": ["helmfile.yaml", "**/helmfile.d/**/*.yaml"], + "url": "https://www.schemastore.org/helmfile.json" + }, + { + "name": "helmwave", + "description": "Helmwave is a declarative spec for deploying helm charts", + "fileMatch": ["helmwave.yml"], + "url": "https://github.com/helmwave/helmwave/releases/latest/download/schema.json" + }, + { + "name": "Container Structure Test", + "description": "The Container Structure Tests provide a powerful framework to validate the structure of a container image", + "fileMatch": ["container-structure-test.yaml", "structure-test.yaml"], + "url": "https://www.schemastore.org/container-structure-test.json" + }, + { + "name": "\u017dinoma", + "description": "\u017dinoma incremental build configuration", + "fileMatch": ["zinoma.yml"], + "url": "https://github.com/fbecart/zinoma/releases/latest/download/zinoma-schema.json" + }, + { + "name": "Windows Package Manager Singleton Manifest", + "description": "Windows Package Manager Singleton Manifest file", + "fileMatch": ["**/manifests/?/*/*/*/*.*.yaml"], + "url": "https://www.schemastore.org/winget-pkgs-singleton-1.0.0.json", + "versions": { + "0.1": "https://www.schemastore.org/winget-pkgs-singleton-0.1.json", + "1.0.0": "https://www.schemastore.org/winget-pkgs-singleton-1.0.0.json" + } + }, + { + "name": "Windows Package Manager Installer Manifest", + "description": "Windows Package Manager Installer Manifest file, used for detailing installer specific metadata", + "fileMatch": ["**/manifests/?/*/*/*/*.*.installer.yaml"], + "url": "https://www.schemastore.org/winget-pkgs-installer-1.0.0.json" + }, + { + "name": "Windows Package Manager Locale Manifest", + "description": "Windows Package Manager Locale Manifest file, used for detailing locale specific metadata", + "fileMatch": [ + "**/manifests/?/*/*/*/*.*.locale.en-US.yaml", + "**/manifests/?/*/*/*/*.*.locale.fr-FR.yaml", + "**/manifests/?/*/*/*/*.*.locale.it-IT.yaml", + "**/manifests/?/*/*/*/*.*.locale.ja-JP.yaml", + "**/manifests/?/*/*/*/*.*.locale.ko-KR.yaml", + "**/manifests/?/*/*/*/*.*.locale.pt-BR.yaml", + "**/manifests/?/*/*/*/*.*.locale.ru-RU.yaml", + "**/manifests/?/*/*/*/*.*.locale.zh-CN.yaml", + "**/manifests/?/*/*/*/*.*.locale.zh-TW.yaml" + ], + "url": "https://www.schemastore.org/winget-pkgs-locale-1.0.0.json" + }, + { + "name": "commitlint (.commitlintrc)", + "description": "commitlint configuration files", + "fileMatch": [ + ".commitlintrc", + ".commitlintrc.json", + ".commitlintrc.yaml", + ".commitlintrc.yml" + ], + "url": "https://www.schemastore.org/commitlintrc.json" + }, + { + "name": "Uniswap Token List", + "description": "A list of tokens compatible with the Uniswap Interface", + "fileMatch": ["*.tokenlist.json"], + "url": "https://uniswap.org/tokenlist.schema.json" + }, + { + "name": "yamlfmt", + "description": "Configuration file for yamlfmt", + "fileMatch": [ + ".yamlfmt", + "yamlfmt.yml", + "yamlfmt.yaml", + ".yamlfmt.yaml", + ".yamlfmt.yml" + ], + "url": "https://www.schemastore.org/yamlfmt.json" + }, + { + "name": "yamllint", + "description": "yamllint uses a set of rules to check source files for problems", + "fileMatch": ["**/.yamllint", "**/.yamllint.yaml", "**/.yamllint.yml"], + "url": "https://www.schemastore.org/yamllint.json" + }, + { + "name": "Yippee-Ki-JSON configuration YML", + "description": "Action and rule configuration descriptor for Yippee-Ki-JSON transformations", + "fileMatch": ["**/yippee-*.yml", "**/*.yippee.yml"], + "url": "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/main/schema/yippee-ki-json_config_schema.json", + "versions": { + "latest": "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/main/schema/yippee-ki-json_config_schema.json", + "1.1.2": "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/v1.1.2/schema/yippee-ki-json_config_schema.json" + } + }, + { + "name": "docker-compose.yml", + "description": "The Compose specification establishes a standard for the definition of multi-container platform-agnostic applications", + "fileMatch": [ + "**/docker-compose.yml", + "**/docker-compose.yaml", + "**/docker-compose.*.yml", + "**/docker-compose.*.yaml", + "**/compose.yml", + "**/compose.yaml", + "**/compose.*.yml", + "**/compose.*.yaml" + ], + "url": "https://raw.githubusercontent.com/compose-spec/compose-go/master/schema/compose-spec.json" + }, + { + "name": "devinit", + "description": "Devinit configuration file", + "fileMatch": ["devinit.json", ".devinit.json"], + "url": "https://www.schemastore.org/devinit.schema-6.0.json", + "versions": { + "1.0": "https://www.schemastore.org/devinit.schema-1.0.json", + "2.0": "https://www.schemastore.org/devinit.schema-2.0.json", + "3.0": "https://www.schemastore.org/devinit.schema-3.0.json", + "4.0": "https://www.schemastore.org/devinit.schema-4.0.json", + "5.0": "https://www.schemastore.org/devinit.schema-5.0.json", + "6.0": "https://www.schemastore.org/devinit.schema-6.0.json" + } + }, + { + "name": "djlint", + "description": "djLint configuration file", + "fileMatch": [".djlintrc"], + "url": "https://www.schemastore.org/djlint.json" + }, + { + "name": "tsoa", + "description": "the tsoa configuration file", + "fileMatch": ["**/tsoa.json"], + "url": "https://www.schemastore.org/tsoa.json" + }, + { + "name": "API Builder", + "description": "apibuilder.io", + "fileMatch": ["**/api.json"], + "url": "https://www.schemastore.org/apibuilder.json" + }, + { + "name": "Apollo Router", + "description": "Apollo Router: The runtime for graph-based API orchestration", + "fileMatch": ["apollo-router-*.json"], + "url": "https://www.schemastore.org/apollo-router-2.9.0.json", + "versions": { + "2.8.1": "https://www.schemastore.org/apollo-router-2.8.1.json", + "2.8.2": "https://www.schemastore.org/apollo-router-2.8.2.json", + "2.9.0": "https://www.schemastore.org/apollo-router-2.9.0.json" + } + }, + { + "name": "Gradle Enterprise", + "description": "Gradle Enterprise configuration", + "fileMatch": ["*gradle-enterprise.yml", "*gradle-enterprise.yaml"], + "url": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-15.json", + "versions": { + "1.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-1.json", + "2.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-2.json", + "3.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-3.json", + "4.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-4.json", + "5.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-5.json", + "6.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-6.json", + "7.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-7.json", + "8.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-8.json", + "9.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-9.json", + "10.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-10.json", + "11.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-11.json", + "12.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-12.json", + "13.0": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-13.json", + "14.0": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-14.json", + "15.0": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-15.json" + } + }, + { + "name": "Gradle Build Cache Node", + "description": "Gradle Build Cache Node configuration", + "fileMatch": [ + "*build-cache-node-config.yml", + "*build-cache-node-config.yaml" + ], + "url": "https://docs.gradle.com/downloads/build-cache-node-config-schema/build-cache-node-config-schema-5.json", + "versions": { + "4.0": "https://docs.gradle.com/develocity/build-cache-node/schema/build-cache-node-config-schema-4.json", + "5.0": "https://docs.gradle.com/downloads/build-cache-node-config-schema/build-cache-node-config-schema-5.json" + } + }, + { + "name": "Yarn Config (.yarnrc.yml)", + "description": "Yarnrc configuration files", + "fileMatch": [".yarnrc.yml"], + "url": "https://yarnpkg.com/configuration/yarnrc.json" + }, + { + "name": "Better Code Hub", + "description": "Configuration file for Better Code Hub to override the default configuration", + "fileMatch": [".bettercodehub.yml"], + "url": "https://www.schemastore.org/bettercodehub.json" + }, + { + "name": "Starlake Data Pipeline", + "description": "Starlake Data Pipeline", + "fileMatch": ["*.sl.yml"], + "url": "https://www.schemastore.org/starlake.json" + }, + { + "name": "swcrc", + "description": "swc configuration files", + "fileMatch": [".swcrc"], + "url": "https://swc.rs/schema.json" + }, + { + "name": "OpenWeather Road Risk API", + "description": "OpenWeather Road Risk API responses", + "fileMatch": [], + "url": "https://www.schemastore.org/openweather.roadrisk.json" + }, + { + "name": "OpenWeather Current Weather API", + "description": "OpenWeather Current Weather API responses", + "fileMatch": [], + "url": "https://www.schemastore.org/openweather.current.json" + }, + { + "name": "JSON-e templates", + "description": "JSON-e templates", + "fileMatch": [], + "url": "https://www.schemastore.org/jsone.json" + }, + { + "name": "Taskfile config", + "description": "Taskfile files", + "fileMatch": [ + "Taskfile.yaml", + "Taskfile.dist.yaml", + "Taskfile.yml", + "Taskfile.dist.yml" + ], + "url": "https://taskfile.dev/schema.json" + }, + { + "name": ".taskrc.yaml", + "description": "Taskfile configuration files", + "fileMatch": [".taskrc.yaml", ".taskrc.yml", "taskrc.yaml", "taskrc.yml"], + "url": "https://taskfile.dev/schema-taskrc.json" + }, + { + "name": "Hammerkit", + "description": "hammerkit files", + "fileMatch": [ + ".hammerkit.yaml", + ".hammerkit.yml", + "*.hammerkit.yaml", + "*.hammerkit.yml" + ], + "url": "https://www.schemastore.org/hammerkit.json" + }, + { + "name": "Containerlab", + "description": "Containerlab topology definition files", + "fileMatch": ["*-clab.yaml", "*-clab.yml", "*.clab.yaml", "*.clab.yml"], + "url": "https://raw.githubusercontent.com/srl-labs/containerlab/main/schemas/clab.schema.json" + }, + { + "name": "User Journey Map", + "description": "user journey map definition files", + "fileMatch": ["*.jm.yaml", "*.jm.yml"], + "url": "https://raw.githubusercontent.com/arvinxx/components/master/packages/journey-map/schema/journey-map.schema.json" + }, + { + "name": "Render Blueprints", + "description": "Blueprints are Render\u2019s infrastructure-as-code model for defining, deploying, and managing multiple resources with a single YAML file", + "fileMatch": ["**/*render.yaml"], + "url": "https://render.com/schema/render.yaml.json" + }, + { + "name": "RKE Cluster Configuration YAML", + "description": "the cluster.yml configuration file for RKE", + "fileMatch": ["cluster.yml", "cluster.yaml"], + "url": "https://raw.githubusercontent.com/dcermak/vscode-rke-cluster-config/main/schemas/cluster.yml.json" + }, + { + "name": "RKE Cluster Configuration JSON", + "description": "the cluster.json configuration file for RKE", + "fileMatch": ["cluster.json"], + "url": "https://raw.githubusercontent.com/dcermak/vscode-rke-cluster-config/main/schemas/cluster.json" + }, + { + "name": "Liquibase", + "description": "liquibase JSON/YAML files", + "fileMatch": [ + "**/db/changelog/**/*.yaml", + "**/db/changelog/**/*.yml", + "**/db/changelog/**/*.json" + ], + "url": "https://www.schemastore.org/liquibase-3.2.json", + "versions": { + "1.0": "https://www.schemastore.org/liquibase.json", + "3.2": "https://www.schemastore.org/liquibase-3.2.json" + } + }, + { + "name": "Liquibase Flow File", + "description": "liquibase flow JSON/YAML files", + "fileMatch": ["*.flowfile.yaml", "*.flowfile.yml"], + "url": "https://www.liquibase.org/json/schema/liquibase-flow-file-latest.json" + }, + { + "name": "Pipeline component", + "description": "YAML the Kubeflow Pipelines' component.yaml files which describe a pipeline components. Component consists of input/output definitions and the description of the implementation which can either be a containerized command line program or an interconnected graph of tasks. Documentation: https://cloud-pipelines.github.io/links/component_authoring_documentation", + "fileMatch": [ + "component.yaml", + "kfp_component.yaml", + "kfp_component.json" + ], + "url": "https://raw.githubusercontent.com/Cloud-Pipelines/component_spec_schema/stable/component_spec.json_schema.json" + }, + { + "name": "skaffold.yaml", + "description": "the skaffold.yaml configuration file for Skaffold. Documentation: https://skaffold.dev", + "fileMatch": ["skaffold.yaml", "skaffold.yml"], + "url": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v3.json", + "versions": { + "v1alpha1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha1.json", + "v1alpha2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha2.json", + "v1alpha3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha3.json", + "v1alpha4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha4.json", + "v1alpha5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha5.json", + "v1beta1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta1.json", + "v1beta2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta2.json", + "v1beta3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta3.json", + "v1beta4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta4.json", + "v1beta5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta5.json", + "v1beta6": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta6.json", + "v1beta7": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta7.json", + "v1beta8": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta8.json", + "v1beta9": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta9.json", + "v1beta10": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta10.json", + "v1beta11": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta11.json", + "v1beta12": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta12.json", + "v1beta13": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta13.json", + "v1beta14": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta14.json", + "v1beta15": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta15.json", + "v1beta16": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta16.json", + "v1beta17": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta17.json", + "v1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1.json", + "v2alpha1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha1.json", + "v2alpha2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha2.json", + "v2alpha3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha3.json", + "v2alpha4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha4.json", + "v2beta1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta1.json", + "v2beta2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta2.json", + "v2beta3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta3.json", + "v2beta4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta4.json", + "v2beta5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta5.json", + "v2beta6": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta6.json", + "v2beta7": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta7.json", + "v2beta8": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta8.json", + "v2beta9": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta9.json", + "v2beta10": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta10.json", + "v2beta11": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta11.json", + "v2beta12": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta12.json", + "v2beta13": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta13.json", + "v2beta14": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta14.json", + "v2beta15": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta15.json", + "v2beta16": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta16.json", + "v2beta17": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta17.json", + "v2beta18": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta18.json", + "v2beta19": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta19.json", + "v2beta20": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta20.json", + "v2beta21": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta21.json", + "v2beta22": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta22.json", + "v2beta23": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta23.json", + "v2beta24": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta24.json", + "v2beta25": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta25.json", + "v2beta26": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta26.json", + "v2beta27": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta27.json", + "v2beta28": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta28.json", + "v2beta29": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta29.json", + "v3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v3.json", + "v4beta1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta1.json", + "v4beta2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta2.json", + "v4beta3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta3.json", + "v4beta4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta4.json", + "v4beta5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta5.json", + "v4beta6": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta6.json", + "v4beta7": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta7.json", + "v4beta8": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta8.json", + "v4beta9": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta9.json", + "v4beta10": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta10.json", + "v4beta11": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta11.json", + "v4beta12": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta12.json", + "v4beta13": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta13.json" + } + }, + { + "name": "Markdownlint", + "description": "Markdownlint config file", + "fileMatch": [ + ".markdownlintrc", + ".markdownlint.json", + ".markdownlint.jsonc", + ".markdownlint.yaml", + ".markdownlint.yml" + ], + "url": "https://raw.githubusercontent.com/DavidAnson/markdownlint/main/schema/markdownlint-config-schema.json" + }, + { + "name": "markdown-link-check", + "description": "markdown-link-check", + "fileMatch": [".markdown-link-check.json"], + "url": "https://www.schemastore.org/markdown-link-check.json" + }, + { + "name": "maturin", + "description": "Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages", + "fileMatch": ["maturin.toml"], + "url": "https://www.schemastore.org/maturin.json" + }, + { + "name": "Mason Registry", + "description": "Package definitions for Mason, a package manager for Neovim", + "fileMatch": ["**/packages/*/package.yaml"], + "url": "https://github.com/mason-org/registry-schema/releases/latest/download/package.schema.json" + }, + { + "name": "SauceCTL Configuration", + "description": "SauceCTL configuration files", + "fileMatch": ["**/.sauce/*.yml"], + "url": "https://raw.githubusercontent.com/saucelabs/saucectl/main/api/saucectl.schema.json" + }, + { + "name": "fulibWorkflows", + "description": "fulibWorkflows", + "fileMatch": ["*.es.yaml", "*.es.yml"], + "url": "https://raw.githubusercontent.com/fujaba/fulibWorkflows/main/schemas/fulibWorkflows.schema.json" + }, + { + "name": "Woodpecker pipeline config", + "description": "YAML configuring Woodpecker CI", + "fileMatch": [ + "**/.woodpecker/**.yml", + "**/.woodpecker.yml", + "**/.woodpecker/**.yaml", + "**/.woodpecker.yaml" + ], + "url": "https://raw.githubusercontent.com/woodpecker-ci/woodpecker/main/pipeline/frontend/yaml/linter/schema/schema.json" + }, + { + "name": "Netin Diagnostic System Template", + "description": "Device template", + "fileMatch": ["*.ndst.yml", "*.ndst.yaml", "*.ndst.json"], + "url": "https://s3.eu-central-1.amazonaws.com/files.netin.io/spider-schemas/template.schema.json" + }, + { + "name": "noodl config", + "description": "NOODL application config", + "fileMatch": ["*.noodl.yml"], + "url": "https://noodl.s3.us-west-1.amazonaws.com/noodl.schema.json" + }, + { + "name": "mboats", + "description": "MBOATS Configuration", + "fileMatch": ["*.mboats.yaml", "*.mboats.yml"], + "url": "https://www.schemastore.org/mboats-config-0.2.json", + "versions": { + "0.1": "https://www.schemastore.org/mboats-config-0.1.json", + "0.2": "https://www.schemastore.org/mboats-config-0.2.json" + } + }, + { + "name": "StackHawk Scanner Configuration", + "description": "StackHawk Scanner configuration files", + "fileMatch": [ + "stackhawk.yml", + "stackhawk.yaml", + "stackhawk-*.yml", + "stackhawk-*.yaml" + ], + "url": "https://download.stackhawk.com/hawk/jsonschema/hawkconfig.json" + }, + { + "name": "Serverless Framework Configuration", + "description": "Serverless framework configuration files", + "fileMatch": ["serverless.yml"], + "url": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/reference.json" + }, + { + "name": "Alacritty Configuration", + "description": "Alacritty configuration yaml file", + "fileMatch": [".alacritty.yml", "alacritty.yml", "alacritty.toml"], + "url": "https://raw.githubusercontent.com/distinction-dev/alacritty-schema/main/alacritty/reference.json" + }, + { + "name": "Serverless Workflow", + "description": "serverless workflows", + "fileMatch": ["*.sw.json", "*.sw.yml"], + "url": "https://raw.githubusercontent.com/serverlessworkflow/specification/main/schema/workflow.yaml", + "versions": { + "v0.9": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.9.x/schema/workflow.json", + "v0.8": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.8.x/schema/workflow.json", + "v0.7": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.7.x/schema/workflow.json", + "v0.6": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.6.x/schema/workflow.json", + "v0.5": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.5.x/schema/workflow.json" + } + }, + { + "name": "Shopware 6 Configuration", + "description": "Shopware 6 custom configurations", + "fileMatch": ["shopware.yml", "shopware.yaml"], + "url": "https://raw.githubusercontent.com/shopware/platform/trunk/config-schema.json" + }, + { + "name": "Shopware CLI Extension Store Configuration", + "description": "Shopware CLI Extension Store Configuration", + "fileMatch": [".shopware-extension.yml", ".shopware-extension.yaml"], + "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shopware-extension-schema.json" + }, + { + "name": "Shopware CLI Project Store Configuration", + "description": "Shopware CLI Project Store Configuration", + "fileMatch": [ + ".shopware-project.yml", + ".shopware-project.yaml", + ".shopware-project.local.yml", + ".shopware-project.local.yaml" + ], + "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shopware-project-schema.json" + }, + { + "name": "Qodana", + "description": "A standard qodana.yaml (or qodana.yml) format for Qodana configuration. Documentation: https://jetbrains.com/qodana", + "fileMatch": ["qodana.yaml", "qodana.yml"], + "url": "https://www.schemastore.org/qodana-1.0.json" + }, + { + "name": "Tye", + "description": "Tye configuration files", + "fileMatch": ["tye.yaml", "tye.yml"], + "url": "https://raw.githubusercontent.com/dotnet/tye/main/src/schema/tye-schema.json" + }, + { + "name": "unist", + "description": "unist syntax trees", + "fileMatch": [], + "url": "https://www.schemastore.org/unist.json" + }, + { + "name": "Hugo Theme", + "description": "Hugo theme config file", + "fileMatch": [], + "url": "https://www.schemastore.org/hugo-theme.json" + }, + { + "name": "Hugo", + "description": "Hugo static site generator config file", + "fileMatch": ["hugo.toml", "hugo.json", "hugo.yaml"], + "url": "https://www.schemastore.org/hugo.json" + }, + { + "name": "Cheatsheets", + "description": "Cheatsheets config file", + "fileMatch": [ + "**/cheat/conf.yaml", + "**/cheat/conf.yml", + "**/.cheat/conf.yml" + ], + "url": "https://www.schemastore.org/cheatsheets.json" + }, + { + "name": "deployed-cli", + "description": "the deployed cli config file. Documentation: https://hyhello.github.io/deployed", + "fileMatch": [ + ".deployedrc", + ".deployed.json", + ".deployed.yaml", + ".deployed.yml" + ], + "url": "https://www.schemastore.org/deployed.json" + }, + { + "name": "Xstate Machine", + "description": "JSON that represents a statechart", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/statelyai/xstate/main/packages/core/src/machine.schema.json" + }, + { + "name": "Butane Config", + "description": "Fedora CoreOS Butane config file", + "fileMatch": ["*.bu"], + "url": "https://relativ-it.github.io/Butane-Schemas/Butane-Schema.json" + }, + { + "name": "Updatecli Compose", + "description": "Updatecli Compose file, more information on https://www.updatecli.io/docs/core/compose/", + "fileMatch": ["update-compose.yaml", "updatecli-compose.yaml"], + "url": "https://www.updatecli.io/schema/latest/compose/config.json" + }, + { + "name": "Updatecli Policy Manifest", + "description": "Updatecli Policy Manifest", + "fileMatch": [ + "**/updatecli.d/**/*.yaml", + "**/updatecli.d/**/*.yml", + "**/updatecli.d/**/*.json", + "updatecli.yml", + "updatecli.yaml" + ], + "url": "https://www.updatecli.io/schema/latest/policy/manifest/config.json" + }, + { + "name": "Updatecli Policy Metadata", + "description": "Updatecli Policy Metadata", + "fileMatch": ["**/updatecli/**/Policy.yaml"], + "url": "https://www.updatecli.io/schema/latest/policy/metadata/config.json" + }, + { + "name": "GeoJSON.json latest", + "description": "GeoJSON format for representing geographic data. Newest version from GeoJSON org", + "url": "https://geojson.org/schema/GeoJSON.json" + }, + { + "name": "clang-format (.clang-format)", + "description": "yaml clang-format config", + "fileMatch": [".clang-format"], + "url": "https://www.schemastore.org/clang-format-21.x.json", + "versions": { + "18.x": "https://www.schemastore.org/clang-format-18.x.json", + "21.x": "https://www.schemastore.org/clang-format-21.x.json" + } + }, + { + "name": "Estuary Flow Catalog", + "description": "Flow catalog files. Documentation: https://github.com/estuary/flow", + "fileMatch": ["flow.yaml", "*.flow.yaml", "flow.json", "*.flow.json"], + "url": "https://raw.githubusercontent.com/estuary/flow/master/flow.schema.json" + }, + { + "name": "V2Ray", + "description": "V2Ray jsonv4/jsonv5 configuration format", + "fileMatch": ["**/v2ray/*.json"], + "url": "https://raw.githubusercontent.com/EHfive/v2ray-jsonschema/main/v4-config.schema.json", + "versions": { + "jsonv4": "https://raw.githubusercontent.com/EHfive/v2ray-jsonschema/main/v4-config.schema.json", + "jsonv5-preview": "https://raw.githubusercontent.com/EHfive/v2ray-jsonschema/main/v5-config.schema.json" + } + }, + { + "name": "GherKing", + "description": "GherKing configuration", + "fileMatch": [".gherking.json", ".gherkingrc", "gherking.json"], + "url": "https://raw.githubusercontent.com/gherking/gherking/master/schema/gherking.schema.json" + }, + { + "name": "CICS TS region tagging", + "description": "CICS region tagging in IBM CICS Transaction Server for z/OS", + "fileMatch": ["cicstags.yaml", "cicstags.yml"], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/cicstags.json" + }, + { + "name": "CICS TS resource import", + "description": "resource import in IBM CICS Transaction Server for z/OS", + "fileMatch": ["*.cicsresourceimport.yaml", "*.cicsresourceimport.yml"], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/cicsts-resourceimport.json" + }, + { + "name": "CICS TS resource model", + "description": "resource model in IBM CICS Transaction Server for z/OS", + "fileMatch": [ + "*.cicsresourcemodel.yaml", + "*.cicsresourcemodel.yml", + "*.cicsappconstraints.yaml", + "*.cicsappconstraints.yml" + ], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/cicsts-resourcemodel.json" + }, + { + "name": "CICS TS resource overrides", + "description": "resource overrides in IBM CICS Transaction Server for z/OS", + "fileMatch": [ + "**/resourceoverrides/*.yaml", + "**/resourceoverrides/*.yml", + "*.cicsoverrides.yaml", + "*.cicsoverrides.yml" + ], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/resourceoverrides.json" + }, + { + "name": "Webman package recipe", + "description": "YAML a webman package", + "fileMatch": ["*.webman-pkg.yml"], + "url": "https://raw.githubusercontent.com/candrewlee14/webman/main/schema/pkg_schema.json" + }, + { + "name": "webhint.io", + "description": "A configuration file for hint", + "fileMatch": [".hintrc"], + "url": "https://raw.githubusercontent.com/webhintio/hint/main/packages/hint/src/lib/config/config-schema.json" + }, + { + "name": "AVA Configuration", + "description": "configuring AVA, the Node.js test runner", + "fileMatch": ["ava.config.json"], + "url": "https://www.schemastore.org/ava.json" + }, + { + "name": "Datahub Ingestion Recipe", + "description": "Datahub Ingestion recipe. Documentation: https://datahubproject.io/docs/metadata-ingestion", + "fileMatch": ["*.dhub.yml", "*.dhub.yaml", "*.dhub.json"], + "url": "https://datahubproject.io/schemas/datahub_ingestion_schema.json" + }, + { + "name": "Quali Torque Blueprint Spec 2", + "description": "Torque bluerpint", + "fileMatch": ["**/blueprints/**.yaml"], + "url": "https://raw.githubusercontent.com/QualiTorque/torque-vs-code-extensions/master/client/schemas/blueprint-spec2-schema.json" + }, + { + "name": "jscpd Configuration", + "description": "Copy/paste detector for programming source code", + "fileMatch": [".jscpd.json"], + "url": "https://www.schemastore.org/jscpd.json" + }, + { + "name": "Pterodactyl", + "description": "Pterodactyl, a free game server control panel", + "fileMatch": ["egg-*.json"], + "url": "https://www.schemastore.org/pterodactyl.json" + }, + { + "name": "Hardware Sentry Configuration", + "description": "Hardware Sentry configuration file", + "fileMatch": ["*hws-config*.yaml", "*hws-config*.yml"], + "url": "https://www.schemastore.org/hws-config.json" + }, + { + "name": "devspace.yaml", + "description": "yaml devspace.yaml", + "fileMatch": ["devspace.yaml"], + "url": "https://raw.githubusercontent.com/loft-sh/devspace/main/devspace-schema.json" + }, + { + "name": "macro.json", + "description": "Macro configuration file", + "fileMatch": ["macro.json"], + "url": "https://raw.githubusercontent.com/rebaz94/macro_kit/refs/heads/main/macro_schema.json" + }, + { + "name": "Monika Configuration", + "description": "Monika configuration file", + "fileMatch": ["*monika*.yaml", "*monika*.yml", "monika.json"], + "url": "https://www.schemastore.org/monika-config-schema.json" + }, + { + "name": "Istanbul", + "description": "Istanbul, a JavaScript code coverage tool", + "fileMatch": [".nycrc", ".nycrc.json", ".nycrc.yaml", ".nycrc.yml"], + "url": "https://www.schemastore.org/nycrc.json" + }, + { + "name": "MongoDB Atlas Search Index Definition", + "description": "MongoDB Atlas Search index", + "fileMatch": ["*-index.json"], + "url": "https://www.schemastore.org/mongodb-atlas-search-index-definition.json" + }, + { + "name": "KODE/CI build.yaml", + "description": "yaml kode/ci build", + "fileMatch": ["**/.kode/*.yaml"], + "url": "https://www.schemastore.org/kode-ci-build-1.0.0.json" + }, + { + "name": "Kong DBLess config", + "description": "dbless configuration YAML", + "fileMatch": ["kong.yaml", "kong.yml"], + "url": "https://www.schemastore.org/kong_json_schema.json" + }, + { + "name": "Embrace Config", + "description": "Embrace configuration file", + "fileMatch": ["embrace-config.json"], + "url": "https://www.schemastore.org/embrace-config-schema-1.0.0.json" + }, + { + "name": "petstore-v1.0", + "description": "petstore yaml validation", + "fileMatch": ["petstore-v1.0.json"], + "url": "https://www.schemastore.org/petstore-v1.0.json", + "versions": { + "1.0": "https://www.schemastore.org/petstore-v1.0.json", + "0.2": "https://www.schemastore.org/mboats-config-0.2.json" + } + }, + { + "name": "JFrog Pipelines YML DSL", + "description": "JFrog Pipelines YML based DSL definition", + "fileMatch": [ + "**/.jfrog-pipelines/**/*.yml", + "**/.jfrog-pipelines/**/*.yaml" + ], + "url": "https://www.schemastore.org/jfrog-pipelines.json" + }, + { + "name": "Safebox Config", + "description": "Documentation: https://github.com/monebag/safebox", + "fileMatch": ["*safebox*.yaml", "*safebox*.yml"], + "url": "https://www.schemastore.org/safebox-schema-v1.0.0.json" + }, + { + "name": "Sublime Syntax", + "description": "Sublime Text/Merge syntax highlighting definition", + "fileMatch": ["*.sublime-syntax"], + "url": "https://www.schemastore.org/sublime-syntax.json" + }, + { + "name": "Keycloak REST API", + "description": "REST API Keycloak Admin", + "url": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-19.0.0.json", + "versions": { + "16.0": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-16.0.json", + "17.0.1": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-17.0.1.json", + "18.0.0": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-18.0.0.json", + "19.0.0": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-19.0.0.json" + } + }, + { + "name": "ize.toml", + "description": "ize Infra Tool", + "fileMatch": ["ize.toml"], + "url": "https://raw.githubusercontent.com/hazelops/ize/1.1.5/internal/schema/ize-spec.json", + "versions": { + "1.1.5": "https://raw.githubusercontent.com/hazelops/ize/1.1.5/internal/schema/ize-spec.json", + "1.1.4": "https://raw.githubusercontent.com/hazelops/ize/1.1.4/internal/schema/ize-spec.json" + } + }, + { + "name": "Uplift", + "description": "Uplift configuration file", + "fileMatch": [".uplift.yml", ".uplift.yaml", "uplift.yml", "uplift.yaml"], + "url": "https://upliftci.dev/static/schema.json" + }, + { + "name": "QueryFirst config file", + "description": "Config options for QueryFirst, SQL wrapper generator", + "fileMatch": ["qfconfig.json"], + "url": "https://www.schemastore.org/qfconfig.json", + "versions": { + "1.0": "https://www.schemastore.org/qfconfig.json" + } + }, + { + "name": "UET BuildConfig.json", + "description": "UET is an unofficial tool for Unreal Engine. The BuildConfig.json file allows you to specify how UET should build an Unreal Engine plugin, project or the engine itself", + "fileMatch": ["BuildConfig.json"], + "url": "https://raw.githubusercontent.com/RedpointGames/uet-schema/main/root.json" + }, + { + "name": "Unreal Engine Uplugin", + "description": "Unreal Engine plugin configuration file", + "fileMatch": [".uplugin"], + "url": "https://www.schemastore.org/uplugin.json" + }, + { + "name": "Unreal Engine Uproject", + "description": "Unreal Engine project configuration file", + "fileMatch": [".uproject"], + "url": "https://www.schemastore.org/uproject.json" + }, + { + "name": "Pantsbuild", + "description": "Pantsbuild configuration file", + "fileMatch": ["pants*.toml"], + "url": "https://www.schemastore.org/pantsbuild-2.31.0.json", + "versions": { + "2.14.0": "https://www.schemastore.org/pantsbuild-2.14.0.json", + "2.15.0": "https://www.schemastore.org/pantsbuild-2.15.0.json", + "2.16.0": "https://www.schemastore.org/pantsbuild-2.16.0.json", + "2.17.0": "https://www.schemastore.org/pantsbuild-2.17.0.json", + "2.18.0": "https://www.schemastore.org/pantsbuild-2.18.0.json", + "2.19.0": "https://www.schemastore.org/pantsbuild-2.19.0.json", + "2.20.0": "https://www.schemastore.org/pantsbuild-2.20.0.json", + "2.21.0": "https://www.schemastore.org/pantsbuild-2.21.0.json", + "2.24.0": "https://www.schemastore.org/pantsbuild-2.24.0.json", + "2.26.0": "https://www.schemastore.org/pantsbuild-2.26.0.json", + "2.30.0": "https://www.schemastore.org/pantsbuild-2.30.0.json", + "2.31.0": "https://www.schemastore.org/pantsbuild-2.30.0.json" + } + }, + { + "name": "All Contributors configuration file", + "description": "The configuration file used by the All Contributors CLI and GitHub bot", + "fileMatch": [".all-contributorsrc"], + "url": "https://www.schemastore.org/all-contributors.json" + }, + { + "name": "ES6 Import Sorter (.es6importsorterrc.json)", + "description": "The configuration file used for ES6 Import Sorter, a VSCode extension", + "fileMatch": [".es6importsorterrc.json"], + "url": "https://www.schemastore.org/es6importsorterrc.json" + }, + { + "name": "completely.yml", + "description": "Completely completion", + "fileMatch": ["completely.yml", "completely.yaml"], + "url": "https://github.com/DannyBen/completely/blob/master/schemas/completely.json" + }, + { + "name": "Madness (madness.yml)", + "description": "Madness settings", + "fileMatch": ["madness.yml", "madness.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/madness/master/schemas/madness.json" + }, + { + "name": "Bashly (bashly.yml)", + "description": "Bashly CLI", + "fileMatch": ["bashly.yml", "bashly.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/bashly/master/schemas/bashly.json" + }, + { + "name": "Bashly Settings (bashly-settings.yml)", + "description": "Bashly settings", + "fileMatch": ["bashly-settings.yml", "bashly-settings.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/bashly/master/schemas/settings.json" + }, + { + "name": "bashly-strings.yml", + "description": "Bashly strings", + "fileMatch": ["bashly-strings.yml", "bashly-strings.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/bashly/master/schemas/strings.json" + }, + { + "name": "bpkg", + "description": "A lightweight Bash package manager", + "fileMatch": ["bpkg.json"], + "url": "https://www.schemastore.org/bpkg.json" + }, + { + "name": "micro-settings.json", + "description": "Micro settings", + "fileMatch": ["**/.config/micro/settings.json"], + "url": "https://raw.githubusercontent.com/zyedidia/micro/master/data/micro.json" + }, + { + "name": "quilt.mod.json", + "description": "Metadata file used by the QuiltMC mod loader", + "fileMatch": ["quilt.mod.json"], + "url": "https://raw.githubusercontent.com/QuiltMC/quilt-json-schemas/main/quilt.mod.json/schemas/main.json" + }, + { + "name": "AutoAPICase", + "description": "auto api case", + "fileMatch": ["**/test_data/**/*.yml"], + "url": "https://www.schemastore.org/case_schema.json" + }, + { + "name": "secrethub.yml", + "description": "secrethub", + "fileMatch": ["secrethub.yml", "secrethub.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/secret_hub/master/schemas/secrethub.json" + }, + { + "name": "Dynamic Bash Aliases (.aliases)", + "description": "Dynamic Bash aliases", + "fileMatch": [".aliases"], + "url": "https://www.schemastore.org/aliases.json" + }, + { + "name": "Micro Editor Syntax", + "description": "Micro Editor syntaxes", + "fileMatch": ["**/micro/runtime/syntax/*.yaml"], + "url": "https://www.schemastore.org/micro-syntax.json" + }, + { + "name": "lazygit", + "description": "lazygit settings", + "fileMatch": ["**/lazygit/config.yml", "lazygit.yml", ".lazygit.yml"], + "url": "https://raw.githubusercontent.com/jesseduffield/lazygit/master/schema/config.json" + }, + { + "name": "lazydocker", + "description": "lazydocker settings", + "fileMatch": ["**/lazydocker/config.yml"], + "url": "https://www.schemastore.org/lazydocker.json" + }, + { + "name": "custom-elements.json", + "description": "A file format for describing custom elements", + "fileMatch": ["custom-elements.json"], + "url": "https://raw.githubusercontent.com/webcomponents/custom-elements-manifest/main/schema.json" + }, + { + "name": "warp-keysets.json", + "description": "Warp keyboard shortcut presets", + "fileMatch": ["**/.warp/keybindings.yaml"], + "url": "https://www.schemastore.org/warp-keysets.json" + }, + { + "name": "warp-themes.json", + "description": "Warp themes", + "fileMatch": ["**/.warp/themes/*.yaml"], + "url": "https://www.schemastore.org/warp-themes.json" + }, + { + "name": "warp-workflows.json", + "description": "Warp workflows", + "fileMatch": ["**/.warp/workflows/*.yaml"], + "url": "https://www.schemastore.org/warp-workflows.json" + }, + { + "name": "Goblet", + "description": "Goblet serverless framework config", + "fileMatch": ["**/.goblet/config.json"], + "url": "https://raw.githubusercontent.com/goblet/goblet/main/goblet.schema.json" + }, + { + "name": "Declarative Automation Bundles", + "description": "Declarative Automation Bundles config", + "fileMatch": ["databricks.yml", "databricks.yaml"], + "url": "https://github.com/databricks/cli/releases/latest/download/jsonschema.json" + }, + { + "name": "JSON Schema Draft 4 (unofficial with '$ref' and 'format')", + "description": "Meta-validation JSON Schema Draft 7 (unofficial with '$ref' and 'format')", + "url": "https://www.schemastore.org/schema-draft-v4.json" + }, + { + "name": "JSON Schema Draft 7 (unofficial strict)", + "description": "Meta-validation JSON Schema Draft 7 (unofficial strict)", + "url": "https://www.schemastore.org/metaschema-draft-07-unofficial-strict.json" + }, + { + "name": "Visivo", + "description": "Visivo IO Project Files", + "fileMatch": [ + "visivo.yml", + "visivo.yaml", + "visivo_project.yml", + "visivo_project.yaml", + "*.visivo.yml", + "*.visivo.yaml" + ], + "url": "https://docs.visivo.io/assets/visivo_schema.json" + }, + { + "name": "Endurica", + "description": "Endurica Input File", + "fileMatch": ["*.ki.json"], + "url": "https://enduricastorage.blob.core.windows.net/public/endurica-cl-schema.json" + }, + { + "name": "TunnelHub", + "description": "TunnelHub Automation Configuration File", + "fileMatch": ["tunnelhub.yml", "tunnelhub.yaml"], + "url": "https://www.schemastore.org/tunnelhub.json" + }, + { + "name": "ty", + "description": "ty, a fast Python type checker", + "fileMatch": ["ty.toml"], + "url": "https://www.schemastore.org/ty.json" + }, + { + "name": "Problem object RFC9457", + "description": "Problem object per RFC 9457", + "fileMatch": [], + "url": "https://www.schemastore.org/problem-object-rfc9457.json" + }, + { + "name": "apko", + "description": "apko (apk-based OCI image builder) config", + "fileMatch": [ + "apko.json", + "*.apko.json", + "apko.yaml", + "*.apko.yaml", + "apko.yml", + "*.apko.yml" + ], + "url": "https://raw.githubusercontent.com/chainguard-dev/apko/main/pkg/build/types/schema.json" + }, + { + "name": "Melange", + "description": "Melange pipeline config", + "fileMatch": [ + "melange.json", + "*.melange.json", + "melange.yaml", + "*.melange.yaml", + "melange.yml", + "*.melange.yml" + ], + "url": "https://raw.githubusercontent.com/chainguard-dev/melange/main/pkg/config/schema.json" + }, + { + "name": "Minecraft Custom Main Menu Mod", + "description": "Minecraft 1.12 Forge mod 'Custom Main Menu' config", + "fileMatch": ["mainmenu.yml", "mainmenu.yaml", "mainmenu.json"], + "url": "https://www.schemastore.org/minecraft-custom-main-menu-mod.json" + }, + { + "name": "rivet.yaml (legacy)", + "description": "Legacy Rivet game configuration file", + "fileMatch": ["rivet.yaml", "rivet.*.yaml", "rivet.toml", "rivet.*.toml"], + "url": "https://rivet.gg/rivet.schema.json" + }, + { + "name": "rivet.json", + "description": "Rivet configuration file", + "fileMatch": [ + "rivet.json", + "rivet.*.json", + "rivet.jsonc", + "rivet.*.jsonc" + ], + "url": "https://raw.githubusercontent.com/rivet-gg/rivet/refs/heads/main/site/src/content/docs/toolchain-spec.json" + }, + { + "name": "nixd configuration", + "description": "Configuration file for nixd", + "fileMatch": [".nixd.json"], + "url": "https://raw.githubusercontent.com/nix-community/nixd/main/nixd/docs/nixd-schema.json" + }, + { + "name": "Rudder techniques", + "description": "Rudder techniques", + "fileMatch": ["technique.yml", "technique.ids.yml"], + "url": "https://www.schemastore.org/rudder-techniques.json" + }, + { + "name": "SkyPilot Task JSON", + "description": "SkyPilot Task JSON to specify a task (resource requirements, setup commands, run commands, file mounts, storage mounts, and so on)", + "fileMatch": ["skypilot-task.yml", "skypilot-task.yaml"], + "url": "https://www.schemastore.org/skypilot-task.json" + }, + { + "name": "Adobe UXP Manifest", + "description": "Plug-in manifest for Adobe's Unified Extensibility Platform", + "fileMatch": [], + "url": "https://www.schemastore.org/uxp-manifest-5.json", + "versions": { + "5": "https://www.schemastore.org/uxp-manifest-5.json" + } + }, + { + "name": "Subsquid squid manifest", + "description": "Squid manifest for Subsquid Cloud deployments", + "fileMatch": ["squid.yaml", "*.squid.yaml", "squid.yml", "*.squid.yml"], + "url": "https://cdn.subsquid.io/schemas/squid_manifest.json" + }, + { + "name": "GitLab Agent for Kubernetes configuration", + "description": "GitLab Agent for Kubernetes configuration file", + "fileMatch": ["**/.gitlab/agents/*/config.yaml"], + "url": "https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/raw/master/pkg/agentcfg/agentcfg_schemas/gitlab.agent.agentcfg.ConfigurationFile.jsonschema.bundle.json" + }, + { + "name": "IVMS101 by CODE Protocol", + "description": "IVMS101 format from interVASP by CODE Protocol", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/codevasp-lab/IVMS101/main/json-schema.json" + }, + { + "name": "GlazeWM settings", + "description": "GlazeWM settings", + "fileMatch": ["**/.glaze-wm/config.yaml"], + "url": "https://www.schemastore.org/glazewm.json" + }, + { + "name": "CGS Card Game Specification (cgs.json)", + "description": "Card Game Simulator (CGS) Card Game Specification", + "fileMatch": ["cgs.json"], + "url": "https://www.cardgamesimulator.com/schema/cgs.json" + }, + { + "name": "Custom Machinery Machine", + "description": "Custom machinery machine specification (Minecraft mod)", + "fileMatch": ["**/data/*/machines/*.json", "**/data/*/machine/*.json"], + "url": "https://alec016.github.io/Custom-Machinery/Json%20Schema/src/main/resources/schemas/custom_machinery_machine.json" + }, + { + "name": "Custom Machinery Recipe", + "description": "Custom machinery recipes specification (Minecraft mod)", + "fileMatch": ["**/data/*/recipes/**/*.json"], + "url": "https://alec016.github.io/Custom-Machinery/Json%20Schema/src/main/resources/schemas/custom_machinery_recipe.json" + }, + { + "name": "Nuitka.yaml", + "description": "Nuitka Package Configuration", + "fileMatch": [ + "*.nuitka-package.config.yml", + "*.nuitka-package.config.yaml" + ], + "url": "https://raw.githubusercontent.com/Nuitka/Nuitka/develop/misc/nuitka-package-config-schema.json" + }, + { + "name": "bioimageio resource description", + "description": "Bioimage.io resource descriptions may be produced or consumed by bioimage.io-compatible software", + "fileMatch": ["bioimageio.yaml", "*.bioimageio.yaml"], + "url": "https://bioimage-io.github.io/spec-bioimage-io/bioimageio_schema_latest.json" + }, + { + "name": "Flow.json Configurations", + "description": "Project configuration for Cadence projects on Flow Blockchain", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/onflow/flow-cli/master/flowkit/schema.json" + }, + { + "name": "CWL", + "description": "The Common Workflow Language Configuration", + "fileMatch": ["*.cwl"], + "url": "https://raw.githubusercontent.com/common-workflow-lab/cwl-ts-auto/main/json_schemas/cwl_schema.json" + }, + { + "name": "shard.yml", + "description": "Shards configuration file", + "fileMatch": ["shard.yml"], + "url": "https://raw.githubusercontent.com/crystal-lang/shards/master/docs/shard.yml.schema.json" + }, + { + "name": "Erda Pipeline", + "description": "Erda Pipeline Configuration File", + "fileMatch": [ + "pipeline.yaml", + "pipeline.yml", + "**/.erda/pipelines/*.yaml", + "**/.erda/pipelines/*.yml", + "**/.dice/pipelines/*.yaml", + "**/.dice/pipelines/*.yml" + ], + "url": "https://raw.githubusercontent.com/erda-project/erda/master/.erda/schemas/pipeline.yaml.json" + }, + { + "name": "Erda Runtime", + "description": "Erda Runtime Configuration File", + "fileMatch": ["dice.yaml", "erda.yml"], + "url": "https://raw.githubusercontent.com/erda-project/erda/master/.erda/schemas/dice.yaml.json" + }, + { + "name": "KSY", + "description": "Kaitai Struct format description file", + "fileMatch": ["*.ksy"], + "url": "https://raw.githubusercontent.com/kaitai-io/ksy_schema/master/ksy_schema.json" + }, + { + "name": "KYA Manifest", + "description": "Know Your Agent (KYA) Manifest for autonomous AI agents (identity, governance, and operational constraints)", + "fileMatch": [ + "kya-manifest.json", + "kya.json", + "*.kya.json", + "kya-manifest.schema.json" + ], + "url": "https://www.schemastore.org/kya.json", + "versions": { + "development": "https://raw.githubusercontent.com/open-kya/kya-standard/main/schema/kya-manifest.schema.json", + "1.0": "https://raw.githubusercontent.com/open-kya/kya-standard/v1.0/schema/kya-manifest.schema.json" + } + }, + { + "name": "Cloud Foundry Application Manifest", + "description": "A manifest describes a Cloud Foundry application and can be used to deploy it to a Foundation", + "fileMatch": [], + "url": "https://www.schemastore.org/cloudfoundry-application-manifest.json" + }, + { + "name": ".omletrc", + "description": "Configuration file for @omlet/cli", + "fileMatch": [ + ".omletrc", + ".omletrc.json", + ".omletrc.yaml", + ".omletrc.yml", + "omletrc", + "omletrc.json", + "omletrc.yaml", + "omletrc.yml" + ], + "url": "https://www.schemastore.org/omletrc.json" + }, + { + "name": "vcluster", + "description": "vCluster configuration", + "fileMatch": [ + "vCluster.yml", + "vCluster.yaml", + "vcluster.yaml", + "vcluster.yml" + ], + "url": "https://raw.githubusercontent.com/loft-sh/vcluster/main/chart/values.schema.json" + }, + { + "name": "well-known-fursona", + "description": ".well-known/(fursona/fursona.json) files", + "fileMatch": [ + "fursona", + "fursona.json", + "**/.well-known/fursona", + "**/.well-known/fursona.json" + ], + "url": "https://raw.githubusercontent.com/pyrox0/fursona-schema/main/schema-07.json" + }, + { + "name": "changelogging", + "description": "changelogging configuration file", + "fileMatch": ["**/changelogging.toml"], + "url": "https://raw.githubusercontent.com/nekitdev/changelogging/main/changelogging.schema.json" + }, + { + "name": "Configu .cfgu files", + "description": "A human-readable format for declaring configurations and their characteristics", + "fileMatch": ["*.cfgu.json", "*.cfgu.yaml", "*.cfgu.yml"], + "url": "https://raw.githubusercontent.com/configu/configu/main/packages/schema/.cfgu.json" + }, + { + "name": "Configu .configu file", + "description": "An optional configuration file used by the various Configu interfaces to customize its behavior", + "fileMatch": [".configu"], + "url": "https://raw.githubusercontent.com/configu/configu/main/packages/schema/.configu.json" + }, + { + "name": "Qt Creator workspace file", + "description": "Qt Creator project json file", + "fileMatch": ["**/.qtcreator/project.json"], + "url": "https://download.qt.io/official_releases/qtcreator/latest/installer_source/jsonschemas/project.json" + }, + { + "name": "mprocs Configuration file", + "description": "mprocs (https://github.com/pvolok/mprocs) Configuration file using JSON/YAML", + "fileMatch": ["mprocs.json", "mprocs.yaml", "mprocs.yml"], + "url": "https://www.schemastore.org/mprocs-0.6.4.json" + }, + { + "name": "Language configuration", + "description": "Configuration file for language features in VS Code and Visual Studio", + "fileMatch": [ + "language-configuration.json", + "language-configuration.yaml", + "language-configuration.yml" + ], + "url": "https://www.schemastore.org/language-configuration.json" + }, + { + "name": "LangGraph Platform configuration", + "description": "LangGraph Platform configuration file", + "fileMatch": [ + "langgraph.json", + "langgraph.*.json", + ".langgraph.json", + ".langgraph.*.json" + ], + "url": "https://raw.githubusercontent.com/langchain-ai/langgraph/main/libs/cli/schemas/version.schema.json" + }, + { + "name": "Any", + "description": "Valid for any JSON file", + "fileMatch": [], + "url": "https://www.schemastore.org/any.json" + }, + { + "name": "zerops.yml", + "description": "Zerops build, deploy and run configuration YAML file", + "fileMatch": ["zerops.yml", "zerops.yaml"], + "url": "https://api.app-prg1.zerops.io/api/rest/public/settings/zerops-yml-json-schema.json" + }, + { + "name": "Zerops import file", + "description": "Zerops infrastructure-as-code import YAML file", + "fileMatch": [ + "zerops-import.yml", + "zerops-import.yaml", + "zerops-*-import.yml", + "zerops-*-import.yaml" + ], + "url": "https://api.app-prg1.zerops.io/api/rest/public/settings/import-project-yml-json-schema.json" + }, + { + "name": "Microsoft RulesEngine workflow rules", + "description": "Microsoft RulesEngine workflow rules definition https://github.com/microsoft/RulesEngine", + "fileMatch": ["*.workflow-rules.json", "**/workflow-rules/*.json"], + "url": "https://raw.githubusercontent.com/microsoft/RulesEngine/main/schema/workflow-schema.json" + }, + { + "name": "Microsoft RulesEngine workflow rules list", + "description": "Microsoft RulesEngine workflow list definition https://github.com/microsoft/RulesEngine", + "fileMatch": ["*.workflow-rules-list.json"], + "url": "https://raw.githubusercontent.com/microsoft/RulesEngine/main/schema/workflow-list-schema.json" + }, + { + "name": "spicepod.yaml", + "description": "Spice.ai OSS Spicepod Manifest file", + "fileMatch": ["spicepod.yml", "spicepod.yaml"], + "url": "https://raw.githubusercontent.com/spiceai/spiceai/trunk/.schema/spicepod.schema.json" + }, + { + "name": "Concord", + "description": "Concord - https://github.com/walmartlabs/concord, workflow orchestrator", + "fileMatch": [ + "*.concord.yaml", + "*.concord.yml", + ".concord.yml", + ".concord.yaml", + "concord.yml", + "concord.yaml", + "**/*.concord.yaml", + "**/*.concord.yml" + ], + "url": "https://repo1.maven.org/maven2/com/walmartlabs/concord/runtime/v2/concord-runtime-model-v2/2.14.0/concord-runtime-model-v2-2.14.0-schema.json" + }, + { + "name": "CRS WAF test file", + "description": "Definition of a test for verifying WAF behavior", + "fileMatch": ["*.waft", ".waft.yaml", ".waft.yml"], + "url": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.2.0/waf-tests-schema-v2.2.0.json", + "versions": { + "2.0.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.0.0/waf-tests-schema-v2.0.0.json", + "2.1.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.1.0/waf-tests-schema-v2.1.0.json", + "2.2.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.2.0/waf-tests-schema-v2.2.0.json" + } + }, + { + "name": "CRS WAF test platform overrides file", + "description": "Definition of platform specific overrides for WAF tests", + "fileMatch": ["*.wafto", ".wafto.yaml", ".wafto.yml"], + "url": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.2.0/waf-platform-overrides-schema-v2.2.0.json", + "versions": { + "2.0.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.0.0/waf-platform-overrides-schema-v2.0.0.json", + "2.1.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.1.0/waf-platform-overrides-schema-v2.1.0.json", + "2.2.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.2.0/waf-platform-overrides-schema-v2.2.0.json" + } + }, + { + "name": "DipDup", + "description": "DipDup project configuration file", + "fileMatch": [ + "**/dipdup.yaml", + "**/dipdup.yml", + "**/dipdup.*.yaml", + "**/dipdup.*.yml" + ], + "url": "https://raw.githubusercontent.com/dipdup-io/dipdup/next/schemas/dipdup-3.0.json", + "versions": { + "3.0": "https://raw.githubusercontent.com/dipdup-io/dipdup/next/schemas/dipdup-3.0.json", + "2.0": "https://raw.githubusercontent.com/dipdup-io/dipdup/next/schemas/dipdup-2.0.json" + } + }, + { + "name": "Tycho", + "description": "Tycho.yaml file", + "fileMatch": ["**/tycho.yml", "**/tycho.yaml"], + "url": "https://deployments.allegrogroup.com/tycho/schema" + }, + { + "name": "Elm", + "description": "elm.json file", + "fileMatch": ["elm.json"], + "url": "https://www.schemastore.org/elm.json" + }, + { + "name": "Cloud Run Spec v1", + "description": "Specification for Cloud Run Admin API v1", + "fileMatch": ["cloud-run-v1.yml", "cloud-run-v1.yaml"], + "url": "https://www.schemastore.org/cloud-run-v1.json" + }, + { + "name": "YouTrack App", + "description": "JetBrains YouTrack App manifest file", + "fileMatch": [], + "url": "https://www.schemastore.org/youtrack-app.json" + }, + { + "name": "Settings for a Cinnamon spice", + "description": "Settings for a Cinnamon spice", + "fileMatch": ["**/*@*/**/settings-schema.json"], + "url": "https://www.schemastore.org/cinnamon-spice-settings.json" + }, + { + "name": "Metadata for a Cinnamon spice", + "description": "Metadata for a Cinnamon spice", + "fileMatch": ["**/*@*/**/metadata.json"], + "url": "https://www.schemastore.org/cinnamon-spice-metadata.json" + }, + { + "name": "Yandex Workflow Language", + "description": "YaWL specification file", + "fileMatch": ["*.yawl.yaml", "*.yawl.yml"], + "url": "https://raw.githubusercontent.com/yandex-cloud/json-schema-store/master/serverless/workflows/yawl.json" + }, + { + "name": "Application list for a WinUtil", + "description": "Application list for a WinUtil", + "fileMatch": ["**/*winutil*/config/applications.json"], + "url": "https://www.schemastore.org/winutil-applications.json" + }, + { + "name": "Preset list for a \"ChrisTitusTech/winutil\"", + "description": "Preset list for a WinUtil", + "fileMatch": ["**/*winutil*/config/preset.json"], + "url": "https://www.schemastore.org/winutil-presets.json" + }, + { + "name": "GitHub Actions typing", + "description": "Describe types of inputs and outputs for GitHub Actions' actions", + "fileMatch": ["action-types.yml", "action-types.yaml"], + "url": "https://raw.githubusercontent.com/typesafegithub/github-actions-typing/refs/heads/schema-latest/github-actions-typing.schema.json" + }, + { + "name": "Tab list for a LinUtil", + "description": "Tab list for a LinUtil", + "fileMatch": ["**/*linutil*/**/tabs.toml"], + "url": "https://www.schemastore.org/linutil-tabs.json" + }, + { + "name": "Tab data for a LinUtil", + "description": "Tab data for a LinUtil", + "fileMatch": ["**/*linutil*/**/tab_data.toml"], + "url": "https://www.schemastore.org/linutil-tab-data.json" + }, + { + "name": "ArchitectFX", + "description": "Grammar for ArchitectFX's trees", + "fileMatch": ["*.jdsl"], + "url": "https://www.schemastore.org/architectfx.json" + }, + { + "name": "Eidolon Resource", + "description": "Resource definitions for Eidolon", + "fileMatch": [ + "*.eidolon.yaml", + "*.eidolon.yml", + "**/eidolon_resources/**/*.yaml", + "**/eidolon_resources/**/*.yml" + ], + "url": "https://www.eidolonai.com/json_schema/v1/resources/overview.json" + }, + { + "name": "Waku Config", + "description": "Configuration file for the Waku CLI", + "fileMatch": [ + "**/waku.yml", + "**/waku.yaml", + "**/waku.json", + "**/.waku.yml", + "**/.waku.yaml", + "**/.waku.json" + ], + "url": "https://waku.ngjx.org/static/schema.json" + }, + { + "name": "ccmod.json", + "description": "Mod manifset file for the CCLoader mod loader for the game CrossCode", + "fileMatch": ["ccmod.json"], + "url": "https://raw.githubusercontent.com/CCDirectLink/CCModDB/refs/heads/master/ccmod-json-schema.json" + }, + { + "name": "moon.yml", + "description": "Moonrepo project configuration file", + "fileMatch": ["moon.yml"], + "url": "https://raw.githubusercontent.com/moonrepo/moon/master/website/static/schemas/project.json" + }, + { + "name": "WireMock stub mapping", + "description": "WireMock single or multiple stub mapping JSON. See https://wiremock.org/docs/stubbing/", + "fileMatch": [ + "wiremock-stub-mapping.yml", + "wiremock-stub-mapping.yaml", + "stubs.json", + "stub-mappings.json", + "stubs.yaml", + "stub-mappings.yaml" + ], + "url": "https://raw.githubusercontent.com/wiremock/wiremock/refs/heads/master/schemas/wiremock-stub-mapping-or-mappings.json" + }, + { + "name": "WireMock message stub mapping", + "description": "WireMock single or multiple async message stub mapping JSON. See https://wiremock.org/docs/messaging/stubbing/", + "fileMatch": [ + "wiremock-message-stub-mapping.yml", + "wiremock-message-stub-mapping.yaml", + "message-stubs.json", + "message-stub-mappings.json", + "message-stubs.yaml", + "message-stub-mappings.yaml" + ], + "url": "https://raw.githubusercontent.com/wiremock/wiremock/refs/heads/master/schemas/wiremock-message-stub-mapping-or-mappings.json" + }, + { + "name": "WireMock CLI local service configuration", + "description": "WireMock CLI and Runner local service config file format", + "fileMatch": ["wiremock.yaml"], + "url": "https://static.wiremock.io/schemas/wiremock.yaml-schema.json" + }, + { + "name": "WireMock CLI import configuration", + "description": "WireMock CLI import and record config file format", + "fileMatch": ["wiremock-import-config.yaml"], + "url": "https://static.wiremock.io/schemas/wiremock-import-config.yaml-schema.json" + }, + { + "name": "Bitmovin Encoding Template", + "description": "An encoding workflow from a single configuration template", + "fileMatch": ["*.bitmovin.json", "*.bitmovin.yml", "*.bitmovin.yaml"], + "url": "https://raw.githubusercontent.com/bitmovin/bitmovin-api-sdk-examples/main/bitmovin-encoding-template.json" + }, + { + "name": "dtool dataset metadata", + "description": "Metadata attached to a dtool dataset", + "fileMatch": [ + "dtool-dataset.yml", + "dtool-dataset.yaml", + "dtool-dataset.json" + ], + "url": "https://www.schemastore.org/dtool-dataset-metadata-1.0.json", + "versions": { + "v1.0": "https://www.schemastore.org/dtool-dataset-metadata-1.0.json" + } + }, + { + "name": "pnpm Workspace (pnpm-workspace.yaml)", + "description": "Workspace file for pnpm", + "fileMatch": ["pnpm-workspace.yaml"], + "url": "https://www.schemastore.org/pnpm-workspace.json" + }, + { + "name": "Chamaleon template", + "description": "Chamaleon template", + "fileMatch": ["template.chamaleon.json"], + "url": "https://raw.githubusercontent.com/gerardorodriguezdev/chamaleon/refs/heads/master/schemas/template-schema.json" + }, + { + "name": "Chamaleon environment", + "description": "Chamaleon environment", + "fileMatch": ["*.environment.chamaleon.json"], + "url": "https://raw.githubusercontent.com/gerardorodriguezdev/chamaleon/refs/heads/master/schemas/environment-schema.json" + }, + { + "name": "Chamaleon properties", + "description": "Chamaleon properties", + "fileMatch": ["properties.chamaleon.json"], + "url": "https://raw.githubusercontent.com/gerardorodriguezdev/chamaleon/refs/heads/master/schemas/properties-schema.json" + }, + { + "name": "ctfd-setup configuration file", + "description": "CTFer.io ctfd-setup utility configuration file", + "fileMatch": [".ctfd.yaml"], + "url": "https://www.schemastore.org/ctfd.json" + }, + { + "name": "AMX Muse Program Descriptor", + "description": "A MUSE program descriptor file", + "fileMatch": [], + "url": "https://www.schemastore.org/amx-muse.json" + }, + { + "name": "DonateCaseBetterCasino menu", + "description": "Configuration file for dcbc addon menus", + "fileMatch": ["*dcbc.yml", "*dcbc.yaml"], + "url": "https://raw.githubusercontent.com/Jodexx/DCBetterCasinoMenuSchema/refs/heads/main/schema.json" + }, + { + "name": "gematik health care patient list", + "description": "A list of health care patients in german telemedicine", + "fileMatch": [ + "**/testdata/patient/patients.yml", + "**/testdata/patient/patients.yaml" + ], + "url": "https://www.schemastore.org/gematik-test-patients.json" + }, + { + "name": "gematik health care provider list", + "description": "A list of health care providers in german telemedicine", + "fileMatch": ["**/testdata/hcp/hcp.yml", "**/testdata/hcp/hcp.yaml"], + "url": "https://www.schemastore.org/gematik-test-hcps.json" + }, + { + "name": "gematik health care provider institution list", + "description": "A list of health care provider institutions in german telemedicine", + "fileMatch": [ + "**/testdata/institution/hcpi.yml", + "**/testdata/institution/hcpi.yaml" + ], + "url": "https://www.schemastore.org/gematik-test-hcpis.json" + }, + { + "name": "gematik health care insurance list", + "description": "A list of health care insurances in german telemedicine", + "fileMatch": [ + "**/testdata/insurance/insurance.yml", + "**/testdata/insurance/insurance.yaml" + ], + "url": "https://www.schemastore.org/gematik-test-hcpis.json" + }, + { + "name": "gematik tiger test environment configuration", + "description": "A configuration file for the test environment of the gematik Tiger test platform", + "fileMatch": ["**/tiger.yml", "**/tiger.yaml"], + "url": "https://www.schemastore.org/gematik-tiger.json" + }, + { + "name": "Tugboat QA config.yml", + "description": "Configuration file for Tugboat QA", + "fileMatch": ["**/.tugboat/config.yml"], + "url": "https://raw.githubusercontent.com/TugboatQA/docs/refs/heads/main/static/config-schema.json" + }, + { + "name": "C4InterFlow", + "description": "C4InterFlow Architecture as Code file", + "fileMatch": ["**/*.c4interflow.yaml", "**/*.c4interflow.json"], + "url": "https://raw.githubusercontent.com/SlavaVedernikov/C4InterFlow/refs/heads/master/C4InterFlow/schema.json" + }, + { + "name": "Wake", + "description": "Wake - development, testing, and static analysis framework for Solidity", + "fileMatch": ["**/*wake.toml", "**/*.wake.toml"], + "url": "https://raw.githubusercontent.com/Ackee-Blockchain/wake/refs/heads/main/docs/wake-schema.json" + }, + { + "name": "Trident", + "description": "Trident - Rust-based fuzzing framework for Solana programs to help ship secure code", + "fileMatch": ["**/*Trident.toml", "**/*.Trident.toml"], + "url": "https://raw.githubusercontent.com/Ackee-Blockchain/trident/refs/heads/master/trident-spec.json" + }, + { + "name": "Unified Tenant Configuration Management (UTCM) Monitor", + "description": "Configuration file for the Unified Tenant Configuration Management (UTCM) Monitor", + "fileMatch": ["*.utcm-monitor.json"], + "url": "https://www.schemastore.org/utcm-monitor.json" + }, + { + "name": "UpCloud CLI (upctl) configuration", + "description": "Configuration file for the UpCloud CLI (upctl)", + "fileMatch": ["**/upctl.yaml"], + "url": "https://raw.githubusercontent.com/UpCloudLtd/upcloud-cli/refs/heads/main/docs/upctl.schema.json" + }, + { + "name": "Restate", + "description": "Restate Server configuration file", + "fileMatch": ["**/restate.toml", "**/restate-server.toml"], + "url": "https://docs.restate.dev/schemas/restate-server-configuration-schema.json" + }, + { + "name": "Telefonistka", + "description": "Telefonistka - Safe and Controlled GitOps Promotion Across Environments/Failure-Domains", + "fileMatch": ["**/telefonistka.yaml"], + "url": "https://raw.githubusercontent.com/commercetools/telefonistka/refs/heads/main/schema/telefonistka.json" + }, + { + "name": "version", + "description": "Project version information", + "fileMatch": [".version.json"], + "url": "https://raw.githubusercontent.com/ljonesfl/bump/refs/heads/master/version-schema.json" + }, + { + "name": "Viash Component Config", + "description": "Viash component config file", + "fileMatch": ["*.vsh.yaml", "*.vsh.yml"], + "url": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/latest/config.schema.json", + "versions": { + "0.7.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.7.5/config.schema.json", + "0.8.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.0/config.schema.json", + "0.8.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.1/config.schema.json", + "0.8.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.2/config.schema.json", + "0.8.3": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.3/config.schema.json", + "0.8.4": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.4/config.schema.json", + "0.8.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.5/config.schema.json", + "0.8.6": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.6/config.schema.json", + "0.9.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.0/config.schema.json", + "0.9.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.1/config.schema.json", + "0.9.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.2/config.schema.json" + } + }, + { + "name": "Viash Package Config", + "description": "Viash package config file", + "fileMatch": ["_viash.yaml", "_viash.yml"], + "url": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/latest/package.schema.json", + "versions": { + "0.7.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.7.5/package.schema.json", + "0.8.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.0/package.schema.json", + "0.8.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.1/package.schema.json", + "0.8.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.2/package.schema.json", + "0.8.3": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.3/package.schema.json", + "0.8.4": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.4/package.schema.json", + "0.8.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.5/package.schema.json", + "0.8.6": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.6/package.schema.json", + "0.9.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.0/package.schema.json", + "0.9.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.1/package.schema.json", + "0.9.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.2/package.schema.json" + } + }, + { + "name": "MultiQC", + "description": "MultiQC configuration file", + "fileMatch": [ + "multiqc_config.yaml", + "multiqc_config.yml", + ".multiqc_config.yaml", + ".multiqc_config.yml" + ], + "url": "https://raw.githubusercontent.com/MultiQC/MultiQC/refs/heads/main/multiqc/utils/config_schema.json" + }, + { + "name": "Tyk Gateway - Open Source v5.7+", + "description": "Tyk Gateway Open Source Configuration File", + "fileMatch": ["tyk.conf"], + "url": "https://raw.githubusercontent.com/TykTechnologies/tyk-schemas/refs/heads/main/JSON/draft-07/schema_tyk.oss.conf" + }, + { + "name": "Python script metadata", + "description": "Metadata of a Python script, as defined by PEP 723", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/pep-723.json" + }, + { + "name": "vtcfg", + "description": "Vector VT System Configuration", + "fileMatch": ["*.vtcfg"], + "url": "https://www.schemastore.org/vtcfg-v19.0.0.json", + "versions": { + "19.0.0": "https://www.schemastore.org/vtcfg-v19.0.0.json" + } + }, + { + "name": "sake", + "description": "Configuration for Sake, Swift-based utility for managing project commands", + "fileMatch": [".sake.yml"], + "url": "https://www.schemastore.org/sake.json" + }, + { + "name": "Open Know-How", + "description": "Open Source Hardware project metadata", + "fileMatch": [ + "okh.json", + "okh.toml", + "okh.yaml", + "okh.yml", + "*.okh.json", + "*.okh.toml", + "*.okh.yaml", + "*.okh.yml" + ], + "url": "https://www.schemastore.org/okh.json" + }, + { + "name": "Contextive Glossary", + "description": "A Contextive Domain Language Glossary", + "fileMatch": [ + "**/.contextive/definitions.yml", + "*.glossary.yml", + "*.glossary.yaml" + ], + "url": "https://www.schemastore.org/contextive-glossary.json" + }, + { + "name": "Google Digital Assetlinks", + "description": "JSON-encoded statement list in a well-known location on a principal", + "fileMatch": ["assetlinks.json"], + "url": "https://www.schemastore.org/assetlinks.json" + }, + { + "name": "Pylock", + "description": "PEP 751 lock file", + "fileMatch": ["pylock.toml", "pylock.*.toml"], + "url": "https://www.schemastore.org/pylock.json" + }, + { + "name": "Stylua Config", + "description": "Stylua configuration", + "fileMatch": [".stylua.toml", "stylua.toml"], + "url": "https://www.schemastore.org/stylua.json" + }, + { + "name": "Taplo", + "description": "Taplo configuration file", + "fileMatch": [".taplo.toml", "taplo.toml"], + "url": "https://www.schemastore.org/taplo.json" + }, + { + "name": "Aider", + "description": "Aider configuration file", + "fileMatch": [".aider.conf.yml"], + "url": "https://www.schemastore.org/aider-0.82.json" + }, + { + "name": "CDK Environment Manager, environment definition", + "description": "ti&m CDK Environment Manager environment definition file", + "fileMatch": [ + "**/environment-definition.json", + "**/environment-definition.yaml", + "**/environment-definition.yml" + ], + "url": "https://www.schemastore.org/ti8m-cdk-environment-definition.json" + }, + { + "name": "CDK Environment Manager, concrete environments definition", + "description": "ti&m CDK Environment Manager concrete environments definition file", + "fileMatch": [ + "**/concrete-environments.json", + "**/concrete-environments.yaml", + "**/concrete-environments.yml" + ], + "url": "https://www.schemastore.org/ti8m-cdk-concrete-environments.json" + }, + { + "name": "CDK Environment Manager, concrete environment configuration", + "description": "ti&m CDK Environment Manager concrete environment configuration file", + "fileMatch": [ + "**/environment_config/*.json", + "**/environment_config/*.yaml", + "**/environment_config/*.yml" + ], + "url": "https://www.schemastore.org/ti8m-cdk-concrete-environment-config.json" + }, + { + "name": "tm_devices configuration file", + "description": "Definition of the configuration file of the tm_devices Python package. Documentation: https://tm-devices.readthedocs.io/stable/configuration/", + "fileMatch": ["tm_devices.yml", "tm_devices.yaml", "tm_devices.toml"], + "url": "https://raw.githubusercontent.com/tektronix/tm_devices/main/src/tm_devices/tm_devices_config_schema.json" + }, + { + "name": "OpenStatus", + "description": "OpenStatus configuration file", + "fileMatch": [ + "openstatus.json", + "openstatus.yml", + "openstatus.yaml", + "openstatus.toml" + ], + "url": "https://github.com/openstatusHQ/json-schema/releases/download/v1.0.0/schema.json" + }, + { + "name": "Power Pages Configuration", + "description": "Power Pages configuration file for Bring Your Own Code (BYOC) sites", + "fileMatch": ["powerpages.config.json"], + "url": "https://www.schemastore.org/powerpages.config.json" + }, + { + "name": "Hecate Input Schema", + "description": "Input schema for Hecate, for generating PDE simulation code", + "fileMatch": [ + "*.hecate.yml", + "*.hecate.yaml", + "*.hecate", + "*.hecate.json" + ], + "url": "https://raw.githubusercontent.com/ShaitanLyss/these/main/hecate/hecate-json-schema.json" + }, + { + "name": "Revel Digital Gadget Definition File", + "description": "Revel Digital gadget definition file. See https://developer.reveldigital.com/gadgets for more information", + "fileMatch": ["gadget.yml", "gadget.yaml"], + "url": "https://www.schemastore.org/gadget-yaml.json" + }, + { + "name": "Jujutsu (jj) VCS config", + "description": "Jujutsu (jj) configuration file", + "fileMatch": ["**/.jj/repo/config.toml", "**/jj/config.toml"], + "url": "https://jj-vcs.github.io/jj/latest/config-schema.json" + }, + { + "name": "AWS Copilot Manifest", + "description": "Manifest YAML files for AWS Copilot services, environments, and pipelines. Documentation: https://aws.github.io/copilot-cli/docs/manifest/overview/", + "fileMatch": ["**/copilot/**/manifest.yml"], + "url": "https://sootyowl.github.io/aws-copilot-schemas/copilot-schema.json" + }, + { + "name": "Terrateam config", + "description": "Terrateam configuration file", + "fileMatch": ["**/.terrateam/config.yaml", "**/.terrateam/config.yml"], + "url": "https://raw.githubusercontent.com/terrateamio/terrateam/refs/heads/main/api_schemas/terrat/config-schema.json" + }, + { + "name": "Lake configuration file", + "description": "`lakefile.toml`, the .toml configuration file for Lake, the package manager of the Lean programming language and theorem prover", + "fileMatch": ["lakefile.toml"], + "url": "https://raw.githubusercontent.com/leanprover/lean4/refs/heads/master/src/lake/schemas/lakefile-toml-schema.json" + }, + { + "name": "Zarf Package Configuration", + "description": "Zarf Packages contain a comprehensive description of system software and all of it's components for declaratively deploying in a disconnected environment", + "fileMatch": ["**/zarf.yaml", "**/zarf.yml"], + "url": "https://www.schemastore.org/zarf.json" + }, + { + "name": "Robust Station Image", + "description": "Space Station 14 RSI validation", + "fileMatch": ["**/*.rsi/meta.json"], + "url": "https://raw.githubusercontent.com/space-wizards/RobustToolbox/refs/heads/master/Schemas/rsi.json" + }, + { + "name": "EUDR IOP Standard Exchange Format (EUDR-X)", + "description": "structured exchange of data related to the EU Deforestation Regulation (EUDR)", + "fileMatch": ["*eudr-x.json"], + "url": "https://raw.githubusercontent.com/initiative-online-print/eudr-iop-standard-exchange-format/refs/heads/main/json/schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/initiative-online-print/eudr-iop-standard-exchange-format/refs/tags/v1.0.0/json/schema.json", + "2.0.0": "https://raw.githubusercontent.com/initiative-online-print/eudr-iop-standard-exchange-format/refs/tags/v2.0.0/json/schema.json" + } + }, + { + "name": "Azure IoT Operations connector metadata", + "description": "For writing connector metadata documents to be used in Azure IoT Operations scenarios", + "url": "https://www.schemastore.org/aio-connector-metadata-7.0-preview.json", + "versions": { + "5.0-preview": "https://www.schemastore.org/aio-connector-metadata-5.0-preview.json", + "6.0-preview": "https://www.schemastore.org/aio-connector-metadata-6.0-preview.json", + "7.0-preview": "https://www.schemastore.org/aio-connector-metadata-7.0-preview.json", + "8.0-preview": "https://www.schemastore.org/aio-connector-metadata-8.0-preview.json", + "9.0-preview": "https://www.schemastore.org/aio-connector-metadata-9.0-preview.json", + "10.0-preview": "https://www.schemastore.org/aio-connector-metadata-10.0-preview.json" + } + }, + { + "name": "Evolving Resolutive Process notation", + "description": "For describing contradiction-based processes with storing changes and authors", + "fileMatch": ["*.erpn.yml", "*.erpn.yaml", "*.erpn.toml", "*.erpn.json"], + "url": "https://www.schemastore.org/evolving-resolutive-process-notation-1.0.json", + "versions": { + "1.0": "https://www.schemastore.org/evolving-resolutive-process-notation-1.0.json" + } + }, + { + "name": "Deployah Configuration", + "description": "CLI tool that makes Kubernetes deployments effortless\u2014no Helm or K8s expertise required", + "fileMatch": [ + "deployah.yaml", + "deployah.yml", + ".deployah.yaml", + ".deployah.yml" + ], + "url": "https://deployah.dev/schemas/v1-alpha.1/manifest.json", + "versions": { + "v1-alpha.1": "https://deployah.dev/schemas/v1-alpha.1/manifest.json" + } + }, + { + "name": "Azure IoT Operations Wasm Graph Config", + "description": "", + "url": "https://www.schemastore.org/aio-wasm-graph-config-1.1.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/aio-wasm-graph-config-1.0.0.json", + "1.1.0": "https://www.schemastore.org/aio-wasm-graph-config-1.1.0.json" + } + }, + { + "name": "Airbyte Declarative Connectors Specification (manifest.yaml)", + "description": "Airbyte Specification for custom connectors", + "fileMatch": [ + "source-*-manifest.yaml", + "destination-*-manifest.yaml", + "**/source-*/manifest.yaml", + "**/destination-*/manifest.yaml" + ], + "url": "https://raw.githubusercontent.com/airbytehq/airbyte-python-cdk/49c5a482de7bdfbaa3a68373a940b90c0690a56f/airbyte_cdk/sources/declarative/generated/declarative_component_schema.json" + }, + { + "name": "Airbyte Connector Metadata Specification (metadata.yaml)", + "description": "Airbyte Specification for custom connectors", + "fileMatch": [ + "**/source-*/metadata.yaml", + "**/destination-*/metadata.yaml" + ], + "url": "https://raw.githubusercontent.com/airbytehq/airbyte/refs/heads/master/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/generated/ConnectorMetadataDefinitionV0.json" + }, + { + "name": "git-town.toml", + "description": "Git Town configuration file", + "fileMatch": ["git-town.toml"], + "url": "https://raw.githubusercontent.com/git-town/git-town/refs/heads/main/docs/git-town.schema.json" + }, + { + "name": "Jarl", + "description": "Configuration for R linter", + "fileMatch": ["jarl.toml"], + "url": "https://github.com/etiennebacher/jarl/releases/latest/download/jarl.schema.json" + }, + { + "name": "Zola Configuration", + "description": "A fast static site generator in a single binary with everything built-in", + "fileMatch": ["zola.toml"], + "url": "https://cscnk52.github.io/json-schemas/zola.schema.json" + }, + { + "name": "Tekton Task", + "description": "Defines a sequence of steps (containers) to be executed. It is the smallest configurable unit of execution in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Task.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Task.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_Task.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_Task.json" + } + }, + { + "name": "Tekton TaskRun", + "description": "Instantiates and executes a Task with specific inputs, outputs, and parameters in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_TaskRun.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_TaskRun.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_TaskRun.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_TaskRun.json" + } + }, + { + "name": "Tekton Pipeline", + "description": "Defines a graph of Tasks that execute sequentially or in parallel to define a CI/CD workflow in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Pipeline.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Pipeline.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_Pipeline.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_Pipeline.json" + } + }, + { + "name": "Tekton PipelineRun", + "description": "Instantiates and executes a Pipeline with specific inputs, outputs, and parameters in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_PipelineRun.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_PipelineRun.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_PipelineRun.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_PipelineRun.json" + } + }, + { + "name": "zizmor", + "description": "Configuration file for zizmor, a static analysis tool for GitHub Actions", + "fileMatch": [ + "**/zizmor.yml", + "**/zizmor.yaml", + "**/.github/zizmor.yml", + "**/.github/zizmor.yaml" + ], + "url": "https://raw.githubusercontent.com/woodruffw/zizmor/main/support/zizmor.schema.json" + }, + { + "name": "Changepacks", + "description": "Changepacks are a way to package changes to a project", + "fileMatch": ["**/.changepacks/config.json"], + "url": "https://www.schemastore.org/changepacks.json" + }, + { + "name": "Devup", + "description": "JSX Zero-Runtime UI Styling Library", + "fileMatch": ["devup.json"], + "url": "https://www.schemastore.org/devup.json" + }, + { + "name": "Vespertide", + "description": "Vespertide configuration", + "fileMatch": ["**/vespertide.json"], + "url": "https://www.schemastore.org/vespertide.json" + }, + { + "name": "Vespertide Migration", + "description": "Vespertide migration file", + "fileMatch": [ + "**/migrations/**/*.vespertide.json", + "**/migrations/**/*.vespertide.yaml", + "**/migrations/**/*.vespertide.yml" + ], + "url": "https://www.schemastore.org/vespertide-migration.json" + }, + { + "name": "Vespertide Model", + "description": "Vespertide model file", + "fileMatch": [ + "**/models/**/*.vespertide.json", + "**/models/**/*.vespertide.yaml", + "**/models/**/*.vespertide.yml" + ], + "url": "https://www.schemastore.org/vespertide-model.json" + }, + { + "name": "openHAB", + "description": "Configuration files for openHAB", + "fileMatch": ["**/conf/yaml/**/*.yml", "**/conf/yaml/**/*.yaml"], + "url": "https://www.schemastore.org/openhab-5.1.json", + "versions": { + "5.1": "https://www.schemastore.org/openhab-5.1.json" + } + }, + { + "name": "unqueryvet", + "description": "Configuration for unqueryvet - a Go linter for SQL queries", + "fileMatch": [".unqueryvet.yaml", ".unqueryvet.yml"], + "url": "https://raw.githubusercontent.com/MirrexOne/unqueryvet/main/schema.json" + }, + { + "name": "Bento", + "description": "Bento stream configuration file", + "fileMatch": ["bento.json", "bento.yml", "bento.yaml"], + "url": "https://raw.githubusercontent.com/warpstreamlabs/bento/refs/heads/main/resources/schemastore/bento.json" + }, + { + "name": "BMML", + "description": "Business Model Markup Language - a YAML format for describing business models based on Alexander Osterwalder's Business Model Canvas", + "fileMatch": ["*.bmml", "*.bmml.yaml", "*.bmml.yml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/bmml.json" + }, + { + "name": "pgxgen", + "description": "pgxgen configuration file", + "fileMatch": ["pgxgen.yml", "pgxgen.yaml"], + "url": "https://raw.githubusercontent.com/tkcrm/pgxgen/refs/heads/master/schemas/pgxgen-schema.json" + }, + { + "name": "Espanso match.yml", + "description": "define WHAT Espanso does", + "url": "https://raw.githubusercontent.com/espanso/espanso/refs/heads/dev/schemas/match.schema.json" + }, + { + "name": "Espanso config.yml", + "description": "define HOW Espanso acts", + "url": "https://raw.githubusercontent.com/espanso/espanso/refs/heads/dev/schemas/config.schema.json" + }, + { + "name": "pitcms", + "description": "Configuration file for pitcms - a Git-based headless CMS", + "fileMatch": ["pitcms.json", "pitcms.jsonc"], + "url": "https://pitcms.net/schema/pitcms.schema.json" + }, + { + "name": "Bluebricks blueprint config", + "description": "Bluebricks config for blueprints", + "fileMatch": ["bricks.json", "bricks.yaml"], + "url": "https://api.bluebricks.co/docs/schemas/latest/bricks.schema.json" + }, + { + "name": "Mail Servers Configuration", + "description": "Configuration for mail servers across different domains", + "fileMatch": [ + "mail-servers-config.json", + "mail-servers-config.jsonc", + "mail-servers-config.json5", + "*.mail-servers-config.json", + "*.mail-servers-config.jsonc", + "*.mail-servers-config.json5", + "**/mail-servers-config.json", + "**/mail-servers-config.jsonc", + "**/mail-servers-config.json5" + ], + "url": "https://www.schemastore.org/mail-servers-config.json" + }, + { + "name": "oxfmt", + "description": "Configuration file for Oxfmt, a high-performance formatter for the JavaScript ecosystem", + "fileMatch": ["**/.oxfmtrc.json"], + "url": "https://raw.githubusercontent.com/oxc-project/oxc/refs/heads/main/npm/oxfmt/configuration_schema.json" + }, + { + "name": "oxlint", + "description": "Configuration file for Oxlint, a high-performance linter for JavaScript and TypeScript built on the Oxc compiler stack", + "fileMatch": ["**/.oxlintrc.json"], + "url": "https://raw.githubusercontent.com/oxc-project/oxc/refs/heads/main/npm/oxlint/configuration_schema.json" + }, + { + "name": "text2confl config", + "description": "Configuration file for Text2Confl - tool to publish Markdown and Asciidoctor files to Confluence", + "fileMatch": [ + "**/.text2confl.yaml", + "**/.text2confl.yml", + "**/text2confl.yaml", + "**/text2confl.yml" + ], + "url": "https://raw.githubusercontent.com/zeldigas/text2confl/refs/heads/master/docs/config.schema.json" + }, + { + "name": "Cursor Agent Environment", + "description": "Cursor cloud agent environment configuration", + "fileMatch": ["**/.cursor/environment.json"], + "url": "https://cursor.com/schemas/environment.schema.json" + }, + { + "name": "nexus-rpc-gen", + "description": "nexus-rpc-gen configuration for generating Nexus RPC service stubs", + "fileMatch": ["*.nexusrpc.yaml", "*.nexusrpc.yml"], + "url": "https://raw.githubusercontent.com/nexus-rpc/nexus-rpc-gen/main/schemas/nexus-rpc-gen.json" + }, + { + "name": "Agent Permission Policy", + "description": "Cross-agent permission policy for AI coding agents", + "fileMatch": [ + "**/.agents/permissions.json", + "**/.agents/permissions.local.json" + ], + "url": "https://raw.githubusercontent.com/Mearman/agent-permissions/main/agent-permissions.schema.json" + }, + { + "name": "AgentCore CLI", + "description": "Configuration file for Amazon Bedrock AgentCore CLI projects", + "fileMatch": ["**/agentcore/agentcore.json"], + "url": "https://schema.agentcore.aws.dev/v1/agentcore.json", + "versions": { + "1.0": "https://schema.agentcore.aws.dev/v1/agentcore.json" + } + }, + { + "name": "Ethereum ERC721", + "description": "ERC-721 Non-Fungible Token Standard", + "url": "https://www.schemastore.org/ethereum-erc721.json" + }, + { + "name": "Ethereum ERC1155", + "description": "ERC-1155 Multi Token Standard", + "url": "https://www.schemastore.org/ethereum-erc1155.json" + }, + { + "name": "Qwen Code Settings", + "description": "Configuration file for Qwen Code", + "fileMatch": ["**/.qwen/settings.json"], + "url": "https://www.schemastore.org/qwen-code-settings.json" + }, + { + "name": "Raid Profile", + "description": "Definition for one or more Raid Profiles", + "fileMatch": ["*.raid.yaml", "*.raid.yml", "*.raid.json"], + "url": "https://raw.githubusercontent.com/8bitAlex/raid/main/schemas/raid-profile.schema.json" + }, + { + "name": "Raid Repo Configuration", + "description": "Definition for a single repository", + "fileMatch": ["raid.yaml", "raid.yml", "raid.json"], + "url": "https://raw.githubusercontent.com/8bitAlex/raid/main/schemas/raid-repo.schema.json" + }, + { + "name": "OpenDecree", + "description": "OpenDecree definition file (https://opendecree.dev) \u2014 describes typed configuration fields, constraints, and metadata that the OpenDecree configuration management service serves to applications", + "fileMatch": [ + "decree.schema.yaml", + "decree.schema.yml", + "*.decree.schema.yaml", + "*.decree.schema.yml" + ], + "url": "https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json", + "versions": { + "v0.1.0": "https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json" + } + }, + { + "name": "OpenDecree Configuration", + "description": "OpenDecree configuration values file (https://opendecree.dev) \u2014 concrete values for fields declared in a paired main decree yaml", + "fileMatch": [ + "decree.config.yaml", + "decree.config.yml", + "*.decree.config.yaml", + "*.decree.config.yml" + ], + "url": "https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json", + "versions": { + "v0.1.0": "https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json" + } + }, + { + "name": "Envelope Team Definition", + "description": "Open standard for AI agent team definitions — declare agents, roles, tools, access policies, and pipelines in a single versioned document", + "fileMatch": ["*.envelope.json", "team.envelope.json"], + "url": "https://schema.openenvelope.org/team/v1.json" + }, + { + "name": "Acton", + "description": "Configuration file for Acton projects", + "fileMatch": ["Acton.toml"], + "url": "https://raw.githubusercontent.com/ton-blockchain/acton/master/crates/acton-config/schemas/acton.schema.json" + }, + { + "name": "memnex", + "description": "Open specification for portable meeting outputs — transcripts, summaries, action items, and decisions. https://memnex.org", + "fileMatch": ["*.memnex.json", "meeting-output.json"], + "url": "https://memnex.org/schema/v0.2/meeting-output.schema.json", + "versions": { + "0.1": "https://memnex.org/schema/v0.1/meeting-output.schema.json", + "0.2": "https://memnex.org/schema/v0.2/meeting-output.schema.json" + } + } + ] +} diff --git a/tests/testdata/json_schemastore_catalog_add_schema/old.json b/tests/testdata/json_schemastore_catalog_add_schema/old.json new file mode 100644 index 0000000..62a2835 --- /dev/null +++ b/tests/testdata/json_schemastore_catalog_add_schema/old.json @@ -0,0 +1,9868 @@ +{ + "$schema": "https://www.schemastore.org/schema-catalog.json", + "version": 1, + "schemas": [ + { + "name": "revola.json", + "description": "Configuration file for Revola", + "fileMatch": [ + ".revola.json", + ".revola.config.json", + "revola.json", + "revola.config.json" + ], + "url": "https://www.schemastore.org/revola.json" + }, + { + "name": "Hashgraph Online Skill Manifest", + "description": "Manifest for Hashgraph Online Registry Broker skill packages", + "fileMatch": [ + "**/.hol/skill.json", + "**/hol/skill.json", + "hol-skill.json" + ], + "url": "https://raw.githubusercontent.com/hashgraph-online/skill-publish/main/schemas/skill.schema.json" + }, + { + "name": "release-hub.json", + "description": "Configuration file for Release Hub", + "fileMatch": [ + ".release-hub.json", + ".release-hub.config.json", + "release-hub.json", + "release-hub.config.json" + ], + "url": "https://raw.githubusercontent.com/teneplaysofficial/release-hub/main/schema/release-hub.schema.json" + }, + { + "name": "ReleaseKit", + "description": "Configuration for ReleaseKit release automation", + "fileMatch": ["releasekit.config.json"], + "url": "https://goosewobbler.github.io/releasekit/schema.json" + }, + { + "name": "Releasaurus Config", + "description": "Configuration file for Releasaurus", + "fileMatch": ["releasaurus.toml"], + "url": "https://raw.githubusercontent.com/robgonnella/releasaurus/refs/heads/main/schema/schema.json" + }, + { + "name": "Bacon config", + "description": "Bacon configuration file", + "fileMatch": ["bacon.toml", "**/bacon/prefs.toml"], + "url": "https://dystroy.org/bacon/.bacon.schema.json" + }, + { + "name": "Upsun config", + "description": "Upsun configuration file", + "fileMatch": ["**/.upsun/config.yml", "**/.upsun/config.yaml"], + "url": "https://meta.upsun.com/schema/upsun" + }, + { + "name": "Platform.sh application", + "description": "Platform.sh application configuration file", + "fileMatch": [ + ".platform.app.yml", + ".platform.app.yaml", + "**/.platform.app.yml" + ], + "url": "https://raw.githubusercontent.com/platformsh/platformify/refs/heads/main/validator/schema/platformsh.application.json" + }, + { + "name": "Platform.sh routes", + "description": "Platform.sh routes configuration file", + "fileMatch": ["**/.platform/routes.yml", "**/.platform/routes.yaml"], + "url": "https://raw.githubusercontent.com/platformsh/platformify/refs/heads/main/validator/schema/platformsh.routes.json" + }, + { + "name": "Platform.sh services", + "description": "Platform.sh services configuration file", + "fileMatch": ["**/.platform/services.yml", "**/.platform/services.yaml"], + "url": "https://raw.githubusercontent.com/platformsh/platformify/refs/heads/main/validator/schema/platformsh.services.json" + }, + { + "name": "1Password SSH Agent Config", + "description": "Configuration file for the 1Password SSH agent", + "fileMatch": ["**/1password/ssh/agent.toml"], + "url": "https://developer.1password.com/schema/ssh-agent-config.json" + }, + { + "name": "Application Accelerator", + "description": "Application Accelerator for VMware Tanzu", + "fileMatch": ["accelerator.yaml"], + "url": "https://www.schemastore.org/accelerator.json" + }, + { + "name": "amplify.yml", + "description": "AWS Amplify Console build settings file", + "fileMatch": ["amplify.yml", "amplify.yaml"], + "url": "https://www.schemastore.org/amplify.json" + }, + { + "name": "Applicant Profile Protocol", + "description": "Structured JSON format for professional profiles, resumes, and CVs with skills, experience, education, and certifications", + "fileMatch": ["*.app.json"], + "url": "https://app-protocol.org/schema/app-1.0.json" + }, + { + "name": "gRPC API Gateway & OpenAPI Config", + "description": "Config file for gRPC API Gateway & OpenAPI v3.1 generation", + "fileMatch": [ + "grpc_api_gateway.yaml", + "grpc_api_gateway.yml", + "grpc_api_gateway.json", + "*_gateway.yml", + "*_gateway.yaml", + "*_gateway.json", + "*_openapi.yml", + "*_openapi.yaml", + "*_openapi.json" + ], + "url": "https://www.schemastore.org/grpc-api-gateway.json" + }, + { + "name": ".NET Aspire 8.0 Manifest", + "description": "Manifest generated by .NET Aspire AppHosts to support deployment automation", + "fileMatch": ["aspire-manifest.json"], + "url": "https://www.schemastore.org/aspire-8.0.json", + "versions": { + "8.0": "https://www.schemastore.org/aspire-8.0.json" + } + }, + { + "name": "AnyWork Automation Configuration", + "description": "AnyWork Automation Configuration used to configure automation scripts on AnyWork", + "fileMatch": [".awc.yaml", ".awc.yml", ".awc.json", ".awc.jsonc", ".awc"], + "url": "https://www.schemastore.org/anywork-ac-1.1.json", + "versions": { + "1.0": "https://www.schemastore.org/anywork-ac-1.0.json" + } + }, + { + "name": "@factorial/drupal-breakpoints-css", + "description": "@factorial/drupal-breakpoints-css config file", + "fileMatch": ["breakpoints.config.yml"], + "url": "https://www.schemastore.org/factorial-drupal-breakpoints-css-0.2.0.json" + }, + { + "name": ".adonisrc.json", + "description": "AdonisJS configuration file", + "fileMatch": [".adonisrc.json"], + "url": "https://raw.githubusercontent.com/adonisjs/application/master/adonisrc.schema.json" + }, + { + "name": "aerleon.yml", + "description": "Aerleon configuration file", + "fileMatch": ["aerleon.yml"], + "url": "https://raw.githubusercontent.com/aerleon/aerleon/main/schemas/aerleon-config.schema.json" + }, + { + "name": "Aerleon Network & Service Definitions", + "description": "Aerleon network & service definition file", + "fileMatch": ["**/def/**/*.yaml"], + "url": "https://raw.githubusercontent.com/aerleon/aerleon/main/schemas/aerleon-definitions.schema.json" + }, + { + "name": "Aerleon Policy", + "description": "Aerleon policy file", + "fileMatch": ["**/policies/**/*.yaml"], + "url": "https://raw.githubusercontent.com/aerleon/aerleon/main/schemas/aerleon-policies.schema.json" + }, + { + "name": ".agripparc.json", + "description": "the Agrippa config file", + "fileMatch": [".agripparc.json", "agripparc.json"], + "url": "https://www.schemastore.org/agripparc-1.4.json", + "versions": { + "1.2": "https://www.schemastore.org/agripparc-1.2.json", + "1.3": "https://www.schemastore.org/agripparc-1.3.json", + "1.4": "https://www.schemastore.org/agripparc-1.4.json" + } + }, + { + "name": "Air", + "description": "R formatter and language server", + "fileMatch": ["air.toml", ".air.toml"], + "url": "https://github.com/posit-dev/air/releases/latest/download/air.schema.json" + }, + { + "name": ".aiproj.json", + "description": "Settings for project analysis by the Application Inspector", + "fileMatch": [".aiproj.json"], + "url": "https://www.schemastore.org/aiproj-1.9.json", + "versions": { + "1.0": "https://www.schemastore.org/aiproj-1.0.json", + "1.1": "https://www.schemastore.org/aiproj-1.1.json", + "1.2": "https://www.schemastore.org/aiproj-1.2.json", + "1.3": "https://www.schemastore.org/aiproj-1.3.json", + "1.4": "https://www.schemastore.org/aiproj-1.4.json", + "1.5": "https://www.schemastore.org/aiproj-1.5.json", + "1.6": "https://www.schemastore.org/aiproj-1.6.json", + "1.7": "https://www.schemastore.org/aiproj-1.7.json", + "1.8": "https://www.schemastore.org/aiproj-1.8.json", + "1.9": "https://www.schemastore.org/aiproj-1.9.json" + } + }, + { + "name": "ABCInventoryModuleData", + "description": "ABCInventoryModuleData defining the structure of ABCInventoryModuleData including Principal Data, inventory, and transaction data in ABC-Plan's Inventory Management Module", + "fileMatch": ["abc-inventory-module-data-*.json"], + "url": "https://www.schemastore.org/abc-inventory-module-data-5.2.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/abc-inventory-module-data-1.0.0.json", + "2.0.0": "https://www.schemastore.org/abc-inventory-module-data-2.0.0.json", + "3.0.0": "https://www.schemastore.org/abc-inventory-module-data-3.0.0.json", + "4.0.0": "https://www.schemastore.org/abc-inventory-module-data-4.0.0.json", + "5.1.0": "https://www.schemastore.org/abc-inventory-module-data-5.1.0.json", + "5.2.0": "https://www.schemastore.org/abc-inventory-module-data-5.2.0.json" + } + }, + { + "name": "ABCClinicalDemandForecast", + "description": "ABCClinicalDemandForecast defining the structure of clinical trial demand forecasting data in ABC-Plan", + "fileMatch": ["abc-clinical-demand-forecast-*.json"], + "url": "https://www.schemastore.org/abc-clinical-demand-forecast-4.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-1.0.0.json", + "2.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-2.0.0.json", + "3.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-3.0.0.json", + "4.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-4.0.0.json" + } + }, + { + "name": "ABCSupplyPlan", + "description": "ABCSupplyPlan representing all the state for performing inventory optimization and expiry analysis in ABC-Plan MasterPlanner", + "fileMatch": ["abc-supply-plan-*.json"], + "url": "https://www.schemastore.org/abc-supply-plan-13.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/abc-supply-plan-1.0.0.json", + "2.0.0": "https://www.schemastore.org/abc-supply-plan-2.0.0.json", + "3.0.0": "https://www.schemastore.org/abc-supply-plan-3.0.0.json", + "4.0.0": "https://www.schemastore.org/abc-supply-plan-4.0.0.json", + "5.0.0": "https://www.schemastore.org/abc-supply-plan-5.0.0.json", + "6.0.0": "https://www.schemastore.org/abc-supply-plan-6.0.0.json", + "7.0.0": "https://www.schemastore.org/abc-supply-plan-7.0.0.json", + "8.0.0": "https://www.schemastore.org/abc-supply-plan-8.0.0.json", + "9.0.0": "https://www.schemastore.org/abc-supply-plan-9.0.0.json", + "10.0.0": "https://www.schemastore.org/abc-supply-plan-10.0.0.json", + "10.1.0": "https://www.schemastore.org/abc-supply-plan-10.1.0.json", + "11.0.0": "https://www.schemastore.org/abc-supply-plan-11.0.0.json", + "11.1.0": "https://www.schemastore.org/abc-supply-plan-11.1.0.json", + "11.2.0": "https://www.schemastore.org/abc-supply-plan-11.2.0.json", + "11.3.0": "https://www.schemastore.org/abc-supply-plan-11.3.0.json", + "11.4.0": "https://www.schemastore.org/abc-supply-plan-11.4.0.json", + "12.0.0": "https://www.schemastore.org/abc-supply-plan-12.0.0.json", + "13.0.0": "https://www.schemastore.org/abc-supply-plan-13.0.0.json" + } + }, + { + "name": "ACP Attempts", + "description": "AI Context Protocol debug session tracking file", + "fileMatch": ["**/.acp/acp.attempts.json", "acp.attempts.json"], + "url": "https://acp-protocol.dev/schemas/v1/attempts.schema.json" + }, + { + "name": "ACP Cache File", + "description": "AI Context Protocol cache file format for storing indexed codebase metadata", + "fileMatch": [".acp.cache.json"], + "url": "https://acp-protocol.dev/schemas/v1/cache.schema.json" + }, + { + "name": "ACP Configuration File", + "description": "AI Context Protocol configuration file for project-level settings", + "fileMatch": [".acp.config.json"], + "url": "https://acp-protocol.dev/schemas/v1/config.schema.json" + }, + { + "name": "ACP Primer", + "description": "AI Context Protocol primer definition for AI context bootstrapping", + "fileMatch": ["primer.json", "*.primer.json", "primer.defaults.json"], + "url": "https://acp-protocol.dev/schemas/v1/primer.schema.json" + }, + { + "name": "ACP Sync", + "description": "AI Context Protocol tool synchronization configuration", + "fileMatch": ["**/.acp/acp.sync.json", "acp.sync.json"], + "url": "https://acp-protocol.dev/schemas/v1/sync.schema.json" + }, + { + "name": "ACP Variables File", + "description": "AI Context Protocol variables file for reusable context variables", + "fileMatch": [".acp.vars.json"], + "url": "https://acp-protocol.dev/schemas/v1/vars.schema.json" + }, + { + "name": "AIConfig", + "description": "AIConfig that is used to store generative AI prompts, models and model parameters", + "fileMatch": [ + "aiconfig.json", + "aiconfig.jsonc", + "*.aiconfig.json", + "*.aiconfig.jsonc", + "aiconfig.yml", + "aiconfig.yaml", + "*.aiconfig.yml", + "*.aiconfig.yaml" + ], + "url": "https://www.schemastore.org/aiconfig-1.0.json" + }, + { + "name": "Airlock Microgateway", + "description": "Airlock Microgateway configuration", + "fileMatch": [ + "microgateway-config.yaml", + "microgateway-config.yml", + "airlock-microgateway-config.yaml", + "airlock-microgateway-config.yml" + ], + "url": "https://www.schemastore.org/airlock-microgateway-3.2.json", + "versions": { + "3.0": "https://www.schemastore.org/airlock-microgateway-3.0.json", + "3.1": "https://www.schemastore.org/airlock-microgateway-3.1.json", + "3.2": "https://www.schemastore.org/airlock-microgateway-3.2.json" + } + }, + { + "name": "angular.json", + "description": "Angular configuration file", + "fileMatch": ["angular.json"], + "url": "https://raw.githubusercontent.com/angular/angular-cli/master/packages/angular/cli/lib/config/workspace-schema.json" + }, + { + "name": ".angular-cli.json", + "description": "Angular CLI configuration file", + "fileMatch": [".angular-cli.json", "angular-cli.json"], + "url": "https://raw.githubusercontent.com/angular/angular-cli/v10.1.6/packages/angular/cli/lib/config/schema.json" + }, + { + "name": "apple-app-site-association", + "description": "Apple Universal Link, App Site Association", + "fileMatch": ["apple-app-site-association"], + "url": "https://www.schemastore.org/apple-app-site-association.json" + }, + { + "name": "App config Spotify Backstage", + "description": "Spotify's Backstage App configuration for all plugins", + "fileMatch": [ + "app-config.yml", + "app-config.yaml", + "app-config.local.yaml", + "app-config.local.yml", + "app-config.production.yaml", + "app-config.production.yml" + ], + "url": "https://www.schemastore.org/app-config.json" + }, + { + "name": "app-definition.yaml", + "description": "Appsemble app definition", + "fileMatch": ["app-definition.yaml"], + "url": "https://appsemble.app/api.json#/components/schemas/AppDefinition" + }, + { + "name": ".appsemblerc.yaml", + "description": "Appsemble RC file", + "fileMatch": [".appsemblerc.yaml"], + "url": "https://gitlab.com/appsemble/appsemble/-/raw/HEAD/packages/cli/assets/appsemblerc.schema.json" + }, + { + "name": "appsscript.json", + "description": "Google Apps Script manifest file", + "fileMatch": ["appsscript.json"], + "url": "https://www.schemastore.org/appsscript.json" + }, + { + "name": "appsettings.json", + "description": "ASP.NET Core's configuration file", + "fileMatch": ["appsettings.json", "appsettings.*.json"], + "url": "https://www.schemastore.org/appsettings.json" + }, + { + "name": "appveyor.yml", + "description": "AppVeyor CI configuration file", + "fileMatch": ["appveyor.yml"], + "url": "https://www.schemastore.org/appveyor.json" + }, + { + "name": "appsettings.StormPetrel.json", + "description": "Scand.StormPetrel.Generator NuGet package appsettings.StormPetrel.json file", + "fileMatch": ["appsettings.StormPetrel.json"], + "url": "https://raw.githubusercontent.com/Scandltd/storm-petrel/main/generator/assets/appsettings.StormPetrel.Schema.json" + }, + { + "name": "aqua.yaml", + "description": "aqua configuration file", + "fileMatch": [".aqua.yaml", ".aqua.yml", "aqua.yaml", "aqua.yml"], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-yaml.json" + }, + { + "name": "aqua-generate-registry.yaml", + "description": "aqua generate registry configuration file", + "fileMatch": ["aqua-generate-registry.yaml"], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-generate-registry.json" + }, + { + "name": "aqua-policy.yaml", + "description": "aqua policy configuration file", + "fileMatch": [".aqua-policy.yaml", "aqua-policy.yaml"], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/policy.json" + }, + { + "name": "registry.yaml", + "description": "aqua registry configuration file", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/registry.json" + }, + { + "name": "arazzo.json", + "description": "An OpenAPI Arazzo document", + "fileMatch": ["arazzo.json", "arazzo.yml", "arazzo.yaml"], + "url": "https://www.schemastore.org/openapi-arazzo-1.X.json" + }, + { + "name": "arb.json", + "description": "Application Resource Bundle", + "fileMatch": ["arb.json"], + "url": "https://raw.githubusercontent.com/google/app-resource-bundle/main/schema/arb.json" + }, + { + "name": "architect.yml", + "description": "Architect.io Component", + "fileMatch": [ + "architect.yml", + "architect.yaml", + "*.architect.yml", + "*.architect.yaml" + ], + "url": "https://raw.githubusercontent.com/architect-team/architect-cli/main/src/dependency-manager/schema/architect.schema.json" + }, + { + "name": "arc.json", + "description": "A OpenJS Architect", + "fileMatch": ["arc.json", "arc.yml", "arc.yaml"], + "url": "https://raw.githubusercontent.com/architect/parser/v2.3.0/arc-schema.json" + }, + { + "name": "Argo CD", + "description": "Argo CD base resources", + "url": "https://raw.githubusercontent.com/argoproj/argo-schema-generator/main/schema/argo_cd_kustomize_schema.json" + }, + { + "name": "Argo Events", + "description": "Argo Events Event Sources and Sensors", + "url": "https://raw.githubusercontent.com/argoproj/argo-events/master/api/jsonschema/schema.json" + }, + { + "name": "Argo Workflows", + "description": "Argo Workflow configuration file", + "url": "https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json" + }, + { + "name": "artifacthub-repo.yml", + "description": "Artifact Hub repository metadata file", + "fileMatch": ["artifacthub-repo.yml"], + "url": "https://www.schemastore.org/artifacthub-repo.json" + }, + { + "name": "asm-lsp", + "description": "Configuration file for asm-lsp", + "fileMatch": [".asm-lsp.toml", "asm-lsp.toml"], + "url": "https://raw.githubusercontent.com/bergercookie/asm-lsp/master/asm-lsp_config_schema.json" + }, + { + "name": "AssemblyScript", + "description": "AssemblyScript is TypeScript-like language that is compiled to WebAssembly (wasm)", + "fileMatch": ["asconfig.json"], + "url": "https://www.schemastore.org/asconfig-schema.json" + }, + { + "name": "ast-grep sgconfig.yml", + "description": "ast-grep project config", + "fileMatch": ["sgconfig.yml", "sgconfig.yaml"], + "url": "https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/project.json" + }, + { + "name": "ast-grep rules", + "description": "ast-grep rule config", + "fileMatch": [ + "**/.astgrep/rules/**/*.yaml", + "**/.astgrep/rules/**/*.yml", + "**/.ast-grep/rules/**/*.yaml", + "**/.ast-grep/rules/**/*.yml", + "**/ast-grep/rules/**/*.yaml", + "**/ast-grep/rules/**/*.yml", + "**/astgrep/rules/**/*.yaml", + "**/astgrep/rules/**/*.yml" + ], + "url": "https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json" + }, + { + "name": "AsyncAPI", + "description": "AsyncAPI documentation files", + "fileMatch": ["*asyncapi*.json", "*asyncapi*.yml", "*asyncapi*.yaml"], + "url": "https://www.asyncapi.com/schema-store/all.schema-store.json" + }, + { + "name": "AsyncAPI Tool File", + "description": "A validating AsyncAPI tool files", + "fileMatch": [".asyncapi-tool"], + "url": "https://raw.githubusercontent.com/asyncapi/website/master/scripts/tools/tools-schema.json" + }, + { + "name": "Atmos Manifests", + "description": "Atmos Stack Manifests. Documentation: https://atmos.tools", + "fileMatch": [], + "url": "https://atmos.tools/schemas/atmos/atmos-manifest/1.0/atmos-manifest.json" + }, + { + "name": "Aurora Agile Meta-Framework", + "description": "Yaml for Aurora Agile Meta-Framework", + "fileMatch": ["*.aurora.yaml", "*.aurora.yml"], + "url": "https://www.schemastore.org/aurora-1.3.json", + "versions": { + "1.0": "https://www.schemastore.org/aurora-1.0.json", + "1.1": "https://www.schemastore.org/aurora-1.1.json", + "1.2": "https://www.schemastore.org/aurora-1.2.json", + "1.3": "https://www.schemastore.org/aurora-1.3.json" + } + }, + { + "name": "Avro Avsc", + "description": "Avro Avsc file", + "fileMatch": ["*.avsc"], + "url": "https://www.schemastore.org/avro-avsc.json" + }, + { + "name": "Awesome Repositories", + "description": "Configuration for awesome repository catalogs with categories", + "fileMatch": [ + "awesome-repositories.json", + "awesome-repositories.yaml", + "awesome-repositories.yml" + ], + "url": "https://raw.githubusercontent.com/abordage/schemas/main/schemas/awesome-repositories/awesome-repositories.schema.json" + }, + { + "name": "AWS AppConfig Feature Flags-v1", + "description": "AWS CDK AppConfig Feature Flags", + "fileMatch": ["*.appConfig.featureFlags.json"], + "url": "https://www.schemastore.org/aws-cdk-appconfig-featureflags-1.0.0.json" + }, + { + "name": "azure.yaml", + "description": "Azure Developer CLI (azd) configuration file", + "fileMatch": ["azure.yaml", "azure.yml"], + "url": "https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json", + "versions": { + "alpha": "https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/alpha/azure.yaml.json", + "1.0": "https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json" + } + }, + { + "name": "Azure Container App template for defining an immutable revision", + "description": "Azure Container App template for defining an immutable revision", + "fileMatch": ["*.containerapp-template.json"], + "url": "https://www.schemastore.org/azure-containerapp-template.json" + }, + { + "name": "Azure Device Update for IoT Hub import manifest", + "description": "Azure Device Update for IoT Hub import manifest", + "fileMatch": ["*.importmanifest.json"], + "url": "https://www.schemastore.org/azure-deviceupdate-import-manifest-5.0.json", + "versions": { + "4.0": "https://www.schemastore.org/azure-deviceupdate-import-manifest-4.0.json", + "5.0": "https://www.schemastore.org/azure-deviceupdate-import-manifest-5.0.json" + } + }, + { + "name": "Azure Device Update for IoT Hub update manifest", + "description": "Azure Device Update for IoT Hub update manifest", + "fileMatch": ["*.updatemanifest.json"], + "url": "https://www.schemastore.org/azure-deviceupdate-update-manifest-5.json", + "versions": { + "4": "https://www.schemastore.org/azure-deviceupdate-update-manifest-4.json", + "5": "https://www.schemastore.org/azure-deviceupdate-update-manifest-5.json" + } + }, + { + "name": "Azure DevOps extension manifest", + "description": "Azure DevOps extension manifest", + "url": "https://www.schemastore.org/azure-devops-extension-manifest-1.0.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-devops-extension-manifest-1.0.json" + } + }, + { + "name": "Azure IoT EdgeAgent deployment", + "description": "Azure IoT EdgeAgent deployment", + "url": "https://www.schemastore.org/azure-iot-edgeagent-deployment-1.1.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edgeagent-deployment-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edgeagent-deployment-1.1.json" + } + }, + { + "name": "Azure IoT EdgeHub deployment", + "description": "Azure IoT EdgeHub deployment", + "url": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.2.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.1.json", + "1.2": "https://www.schemastore.org/azure-iot-edgehub-deployment-1.2.json" + } + }, + { + "name": "Azure IoT Edge deployment", + "description": "Azure IoT Edge deployment", + "url": "https://www.schemastore.org/azure-iot-edge-deployment-2.0.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edge-deployment-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edge-deployment-2.0.json" + } + }, + { + "name": "Azure IoT Edge deployment template", + "description": "Azure IoT Edge deployment template", + "fileMatch": [ + "deployment.template.json", + "deployment.debug.template.json" + ], + "url": "https://www.schemastore.org/azure-iot-edge-deployment-template-4.0.json", + "versions": { + "1.0": "https://www.schemastore.org/azure-iot-edge-deployment-template-1.0.json", + "1.1": "https://www.schemastore.org/azure-iot-edge-deployment-template-2.0.json", + "1.2": "https://www.schemastore.org/azure-iot-edge-deployment-template-3.0.json", + "1.3": "https://www.schemastore.org/azure-iot-edge-deployment-template-4.0.json" + } + }, + { + "name": "Azure Landing Zones Library metadata", + "description": "Azure Landing Zones Library metadata", + "fileMatch": ["alz_library_metadata.json"], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json" + }, + { + "name": "Azure Landing Zones Library policy default values", + "description": "Azure Landing Zones Library policy default values", + "fileMatch": [ + "alz_policy_default_values.json", + "alz_policy_default_values.yaml", + "alz_policy_default_values.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/default_policy_values.json" + }, + { + "name": "Azure Landing Zones Library architecture definition", + "description": "Azure Landing Zones Library architecture definition", + "fileMatch": [ + "*.alz_architecture_definition.json", + "*.alz_architecture_definition.yaml", + "*.alz_architecture_definition.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/architecture_definition.json" + }, + { + "name": "Azure Landing Zones Library archetype definition", + "description": "Azure Landing Zones Library archetype definition", + "fileMatch": [ + "*.alz_archetype_definition.json", + "*.alz_archetype_definition.yaml", + "*.alz_archetype_definition.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/archetype_definition.json" + }, + { + "name": "Azure Landing Zones Library archetype override", + "description": "Azure Landing Zones Library archetype override", + "fileMatch": [ + "*.alz_archetype_override.json", + "*.alz_archetype_override.yaml", + "*.alz_archetype_override.yml" + ], + "url": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/archetype_override.json" + }, + { + "name": "Barba-CV", + "description": "Deterministic CV / resume data format", + "fileMatch": ["barba-cv.json"], + "url": "https://raw.githubusercontent.com/Eurobotics-Association/barba-cv/main/schema/barba-cv.schema.json" + }, + { + "name": "Biome Formatter Config", + "description": "Configuration file for the Biome formatter", + "fileMatch": ["biome.json", "biome.jsonc"], + "url": "https://biomejs.dev/schemas/latest/schema.json" + }, + { + "name": "bottom configuration", + "description": "Configuration file for bottom", + "fileMatch": ["bottom.toml"], + "url": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.10/bottom.json", + "versions": { + "nightly": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/nightly/bottom.json", + "0.12.0": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.12.0/bottom.json", + "0.11": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.11/bottom.json", + "0.10": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.10/bottom.json", + "0.9": "https://raw.githubusercontent.com/ClementTsang/bottom/main/schema/v0.9/bottom.json" + } + }, + { + "name": "Bpod Finite-State Machine", + "description": "Definition of a Bpod Finite-State Machine", + "fileMatch": [ + "*.bpod-fsm.json", + "*.bpod-fsm.yaml", + "*.bpod-fsm.yml", + "bpod-fsm.json", + "bpod-fsm.yaml", + "bpod-fsm.yml" + ], + "url": "https://raw.githubusercontent.com/int-brain-lab/bpod-core/main/.schema/statemachine.json" + }, + { + "name": "buf.yaml", + "description": "buf.yaml is used to define a module. It's the primary configuration file, and is responsible for the module's name, dependencies, and lint and breaking configuration", + "fileMatch": ["buf.yaml"], + "url": "https://www.schemastore.org/buf.json" + }, + { + "name": "buf.gen.yaml", + "description": "buf.gen.yaml is a configuration file used by the buf generate command to generate integration code for the languages of your choice", + "fileMatch": ["buf.gen.yaml"], + "url": "https://www.schemastore.org/buf.gen.json" + }, + { + "name": "buf.lock", + "description": "buf.lock is a dependency lock file generated by buf via 'buf dep update'. It represents a single, reproducible build of the workspace's external dependencies and should never be hand-edited", + "fileMatch": ["buf.lock"], + "url": "https://www.schemastore.org/buf.lock.json" + }, + { + "name": "buf.plugin.yaml", + "description": "A `buf.plugin.yaml` file captures metadata about the plugin. It includes mandatory and optional fields that are displayed on the individual plugin page and the BSR plugin. Documentation: https://buf.build/plugins", + "fileMatch": ["buf.plugin.yaml"], + "url": "https://www.schemastore.org/buf.plugin.json" + }, + { + "name": "buf.policy.yaml", + "description": "buf.policy.yaml defines a policy containing lint, breaking change detection, and plugin configuration that can be shared across BSR modules", + "fileMatch": ["buf.policy.yaml"], + "url": "https://www.schemastore.org/buf.policy.json" + }, + { + "name": "buf.work.yaml", + "description": "buf.work.yaml is used to define a workspace, which is an advanced local development feature. Workspaces make it possible to consolidate one or more modules into a single buildable unit. They also allow users to run buf operations across multiple modules with a single execution (such as buf lint)", + "fileMatch": ["buf.work.yaml"], + "url": "https://www.schemastore.org/buf.work.json" + }, + { + "name": "cargo-mutants-config.yaml", + "description": "cargo-mutants configuration file", + "fileMatch": ["**/.cargo/mutants.toml"], + "url": "https://www.schemastore.org/cargo-mutants-config.json" + }, + { + "name": "Cinnamon Spice info.json", + "description": "The 'info.json' metadata file used in Cinnamon Spice components", + "fileMatch": [], + "url": "https://www.schemastore.org/cinnamon-spice.info.json" + }, + { + "name": "Cloud.gov Workshop Configuration", + "description": "Configuration for IaC managed resources in Cloud.gov Workshop", + "fileMatch": ["cg-workshop.yml", "**/cg-workshop/*.yml"], + "url": "https://workshop.cloud.gov/workshop/workshop-schemas/-/raw/main/cg-workshop.schema.json" + }, + { + "name": "cmdx.yaml", + "description": "cmdx configuration file", + "fileMatch": [".cmdx.yaml", ".cmdx.yml", "cmdx.yaml", "cmdx.yml"], + "url": "https://raw.githubusercontent.com/suzuki-shunsuke/cmdx/refs/heads/main/json-schema/cmdx.json" + }, + { + "name": "CodeRabbit", + "description": "Supercharge your entire team with AI-driven contextual feedback & smart chat", + "fileMatch": [".coderabbit.yaml"], + "url": "https://coderabbit.ai/integrations/schema.v2.json" + }, + { + "name": "CodeCV", + "description": "CV format specification", + "fileMatch": [ + "cv.json", + "cv.yaml", + "cv.yml", + "cv.toml", + "*.cv.json", + "*.cv.yaml", + "*.cv.yml", + "*.cv.toml" + ], + "url": "https://raw.githubusercontent.com/codecv-co/codecv/master/cv.schema.json", + "versions": { + "0.9.24": "https://raw.githubusercontent.com/codecv-co/codecv/0.9.24/cv.schema.json" + } + }, + { + "name": "CodifyCLI", + "description": "Transform your workflow with Codify, the ultimate configuration as code tool designed to manage local user environments", + "fileMatch": [ + "codify.json", + "codify.yaml", + "codify.json5", + "codify.jsonc", + "*.codify.json", + "*.codify.yaml", + "*.codify.json5", + "*.codify.jsonc" + ], + "url": "https://raw.githubusercontent.com/codifyCLI/codify-schemas/main/src/schemastore/codify-schema.json" + }, + { + "name": "CloudCannon Configuration", + "description": "Configuration file for CloudCannon, the Git-based CMS that brings visual editing to your modern tech stack, freeing developers from content tasks while empowering editors to make changes", + "fileMatch": [ + "cloudcannon.config.yml", + "cloudcannon.config.yaml", + "cloudcannon.config.json", + "*.cloudcannon.config.yml", + "*.cloudcannon.config.yaml", + "*.cloudcannon.config.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-config.schema.json" + }, + { + "name": "CloudCannon Configuration (Structures)", + "description": "Supporting configuration file for CloudCannon containing Structure definitions", + "fileMatch": [ + "cloudcannon.structures.yml", + "cloudcannon.structures.yaml", + "cloudcannon.structures.json", + "*.cloudcannon.structures.yml", + "*.cloudcannon.structures.yaml", + "*.cloudcannon.structures.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-structures.schema.json" + }, + { + "name": "CloudCannon Configuration (Inputs)", + "description": "Supporting configuration file for CloudCannon containing Input definitions", + "fileMatch": [ + "cloudcannon.inputs.yml", + "cloudcannon.inputs.yaml", + "cloudcannon.inputs.json", + "*.cloudcannon.inputs.yml", + "*.cloudcannon.inputs.yaml", + "*.cloudcannon.inputs.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-inputs.schema.json" + }, + { + "name": "CloudCannon Configuration (Structure Value)", + "description": "Supporting configuration file for CloudCannon containing a single Structure Value definition", + "fileMatch": [ + "cloudcannon.structure-value.yml", + "cloudcannon.structure-value.yaml", + "cloudcannon.structure-value.json", + "*.cloudcannon.structure-value.yml", + "*.cloudcannon.structure-value.yaml", + "*.cloudcannon.structure-value.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-structure-value.schema.json" + }, + { + "name": "CloudCannon Configuration (Snippets)", + "description": "Supporting configuration file for CloudCannon containing Snippet definitions", + "fileMatch": [ + "cloudcannon.snippets.yml", + "cloudcannon.snippets.yaml", + "cloudcannon.snippets.json", + "*.cloudcannon.snippets.yml", + "*.cloudcannon.snippets.yaml", + "*.cloudcannon.snippets.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-snippets.schema.json" + }, + { + "name": "CloudCannon Configuration (Snippets Imports)", + "description": "Supporting configuration file for CloudCannon containing Snippets Imports", + "fileMatch": [ + "cloudcannon.snippets-imports.yml", + "cloudcannon.snippets-imports.yaml", + "cloudcannon.snippets-imports.json", + "*.cloudcannon.snippets-imports.yml", + "*.cloudcannon.snippets-imports.yaml", + "*.cloudcannon.snippets-imports.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-snippets-imports.schema.json" + }, + { + "name": "CloudCannon Configuration (Snippets Definitions)", + "description": "Supporting configuration file for CloudCannon containing Snippets Definitions", + "fileMatch": [ + "cloudcannon.snippets-definitions.yml", + "cloudcannon.snippets-definitions.yaml", + "cloudcannon.snippets-definitions.json", + "*.cloudcannon.snippets-definitions.yml", + "*.cloudcannon.snippets-definitions.yaml", + "*.cloudcannon.snippets-definitions.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-snippets-definitions.schema.json" + }, + { + "name": "CloudCannon Configuration (Editables)", + "description": "Supporting configuration file for CloudCannon containing Editables definitions", + "fileMatch": [ + "cloudcannon.editables.yml", + "cloudcannon.editables.yaml", + "cloudcannon.editables.json", + "*.cloudcannon.editables.yml", + "*.cloudcannon.editables.yaml", + "*.cloudcannon.editables.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-editables.schema.json" + }, + { + "name": "CloudCannon Configuration (Collections)", + "description": "Supporting configuration file for CloudCannon containing Collections configuration", + "fileMatch": [ + "cloudcannon.collections.yml", + "cloudcannon.collections.yaml", + "cloudcannon.collections.json", + "*.cloudcannon.collections.yml", + "*.cloudcannon.collections.yaml", + "*.cloudcannon.collections.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-collections.schema.json" + }, + { + "name": "CloudCannon Configuration (Collection Structures)", + "description": "Supporting configuration file for CloudCannon containing Collection Structure definitions", + "fileMatch": [ + "cloudcannon.schemas.yml", + "cloudcannon.schemas.yaml", + "cloudcannon.schemas.json", + "*.cloudcannon.schemas.yml", + "*.cloudcannon.schemas.yaml", + "*.cloudcannon.schemas.json" + ], + "url": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-schemas.schema.json" + }, + { + "name": "Lando (landofile)", + "description": "The configuration file for a Lando app. Documentation: https://github.com/lando-community/lando-spec", + "fileMatch": [".lando.yml", ".lando.*.yml"], + "url": "https://lando-community.github.io/lando-spec/landofile-spec.json" + }, + { + "name": "latexindent configuration", + "description": "Configuration file for latexindent", + "fileMatch": ["latexindent.yaml", ".latexindent.yaml"], + "url": "https://github.com/cmhughes/latexindent.pl/raw/main/documentation/latexindent-yaml-schema.json" + }, + { + "name": "Lobe AI Agent", + "description": "Lobe Agents is an AI agent for LobeChat", + "fileMatch": ["lobe-agent.json"], + "url": "https://chat-agents.lobehub.com/schema/lobeAgentSchema_v1.json" + }, + { + "name": "Loki", + "description": "Like Prometheus, but for logs", + "fileMatch": ["loki.yml", "loki.yaml"], + "url": "https://www.schemastore.org/loki.json" + }, + { + "name": "Azure Pipelines", + "description": "Azure Pipelines YAML pipelines definition", + "fileMatch": ["azure-pipelines.yml", "azure-pipelines.yaml"], + "url": "https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/master/service-schema.json" + }, + { + "name": "FasterCI Configuration", + "description": "FasterCI repository configuration file", + "fileMatch": ["**/.fasterci/config.yaml"], + "url": "https://fasterci.com/config.schema.json" + }, + { + "name": "Fence configuration", + "description": "Configuration file for fence, a lightweight, container-free sandbox for running commands with network and filesystem restrictions", + "fileMatch": ["fence.json"], + "url": "https://raw.githubusercontent.com/Use-Tusk/fence/refs/heads/main/docs/schema/fence.schema.json" + }, + { + "name": "Foxx Manifest", + "description": "ArangoDB Foxx service manifest file", + "fileMatch": ["manifest.json"], + "url": "https://www.schemastore.org/foxx-manifest.json" + }, + { + "name": "flagd flag configuration", + "description": "Flag configuration for the OpenFeature spec compliant flagd provider", + "fileMatch": [ + "flagd.json", + "flagd.yaml", + "flagd.yml", + "*.flagd.json", + "*.flagd.yaml", + "*.flagd.yml" + ], + "url": "https://flagd.dev/schema/v0/flags.json", + "versions": { + "0.1.1": "https://raw.githubusercontent.com/open-feature/flagd-schemas/json/json-schema-v0.1.1/json/flagd-definitions.json", + "0.2.0": "https://raw.githubusercontent.com/open-feature/flagd-schemas/json/json-schema-v0.2.0/json/flags.json" + } + }, + { + "name": "fly.io Configuration", + "description": "fly.io, a cloud provider, configuration", + "fileMatch": ["fly.toml"], + "url": "https://www.schemastore.org/fly.json" + }, + { + "name": "Freifunk.de Community API", + "description": "Freifunk.de Community API. Documentation: https://github.com/freifunk/directory.api.freifunk.net", + "fileMatch": ["*.freifunk-api.json"], + "url": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.2.json", + "versions": { + "development": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/development.json", + "0.1": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.1.json", + "0.2.0": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.2.0.json", + "0.4.9": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.9.json", + "0.4.10": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.10.json", + "0.4.11": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.11.json", + "0.4.12": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.12.json", + "0.4.13": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.13.json", + "0.4.14": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.14.json", + "0.4.15": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.15.json", + "0.4.16": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.4.16.json", + "0.5.0": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.0.json", + "0.5.1": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.1.json", + "0.5.2": "https://raw.githubusercontent.com/freifunk/api.freifunk.net/master/specs/0.5.2.json" + } + }, + { + "name": "Frogbot Config", + "description": "The Frogbot configuration required to scan Git repositories", + "fileMatch": ["frogbot-config.yml"], + "url": "https://raw.githubusercontent.com/jfrog/frogbot/master/schema/frogbot-schema.json" + }, + { + "name": ".asmdef", + "description": "Unity 3D assembly definition file", + "fileMatch": ["*.asmdef"], + "url": "https://www.schemastore.org/asmdef.json" + }, + { + "name": "babelrc.json", + "description": "Babel configuration file", + "fileMatch": [".babelrc", ".babelrc.json", "babel.config.json"], + "url": "https://www.schemastore.org/babelrc.json" + }, + { + "name": ".backportrc.json", + "description": "Backport configuration file", + "fileMatch": [".backportrc.json"], + "url": "https://www.schemastore.org/backportrc.json" + }, + { + "name": "basedpyright", + "description": "Basedpyright configuration file", + "fileMatch": ["basedpyrightconfig.json"], + "url": "https://raw.githubusercontent.com/DetachHead/basedpyright/refs/heads/main/packages/vscode-pyright/schemas/pyrightconfig.schema.json" + }, + { + "name": "batect.yml", + "description": "Batect configuration file", + "fileMatch": ["batect.yml", "batect-bundle.yml"], + "url": "https://ide-integration.batect.dev/v1/configSchema.json" + }, + { + "name": "bamboo-spec", + "description": "The Bamboo Specs allows you to define Bamboo configuration as code, and have corresponding plans/deployments created or updated automatically in Bamboo", + "fileMatch": ["**/bamboo-specs/*.yaml", "**/bamboo-specs/*.yml"], + "url": "https://www.schemastore.org/bamboo-spec.json" + }, + { + "name": "beef-database-codegen", + "description": "Beef (Business Entity Execution Framework) database code-generation configuration", + "fileMatch": [ + "database.beef.yaml", + "database.beef.yml", + "database.beef.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/database.beef.json" + }, + { + "name": "beef-entity-codegen", + "description": "Beef (Business Entity Execution Framework) entity code-generation configuration", + "fileMatch": [ + "entity.beef.yaml", + "entity.beef.yml", + "entity.beef.json", + "refdata.beef.yaml", + "refdata.beef.yml", + "refdata.beef.json", + "datamodel.beef.yaml", + "datamodel.beef.yml", + "datamodel.beef.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/entity.beef.json" + }, + { + "name": "beef-database-v5-codegen", + "description": "Beef (Business Entity Execution Framework) database code-generation configuration (v5)", + "fileMatch": [ + "database.beef-5.yaml", + "database.beef-5.yml", + "database.beef-5.json", + "*.database.beef-5.yaml", + "*.database.beef-5.yml", + "*.database.beef-5.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/database.beef-5.json" + }, + { + "name": "beef-entity-v5-codegen", + "description": "Beef (Business Entity Execution Framework) entity code-generation configuration (v5)", + "fileMatch": [ + "entity.beef-5.yaml", + "entity.beef-5.yml", + "entity.beef-5.json", + "refdata.beef-5.yaml", + "refdata.beef-5.yml", + "refdata.beef-5.json", + "datamodel.beef-5.yaml", + "datamodel.beef-5.yml", + "datamodel.beef-5.json", + "*.entity.beef-5.yaml", + "*.entity.beef-5.yml", + "*.entity.beef-5.json", + "*.refdata.beef-5.yaml", + "*.refdata.beef-5.yml", + "*.refdata.beef-5.json", + "*.datamodel.beef-5.yaml", + "*.datamodel.beef-5.yml", + "*.datamodel.beef-5.json" + ], + "url": "https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/entity.beef-5.json" + }, + { + "name": "bigquery-table", + "description": "BigQuery table", + "fileMatch": ["*.bigquery.json"], + "url": "https://www.schemastore.org/bigquery-table.json" + }, + { + "name": "Bigconfig", + "description": "Bigconfig is a yaml-based declarative monitoring as code solution. Data engineers can deploy Bigeye metrics from the command-line for convenient and scalable data quality monitoring", + "fileMatch": ["bigconfig.yml", "bigconfig.yaml"], + "url": "https://www.schemastore.org/bigconfig.json" + }, + { + "name": "bitbucket-pipelines", + "description": "Bitbucket Pipelines CI/CD manifest", + "fileMatch": ["bitbucket-pipelines.yml"], + "url": "https://api.bitbucket.org/schemas/pipelines-configuration" + }, + { + "name": "bitrise", + "description": "The configuration format of the Bitrise CLI. Bitrise is a collection of tools and services to help you with the development and automation of your software projects, with a main focus on mobile apps", + "fileMatch": ["bitrise.yml", "bitrise.yaml", "bitrise.json"], + "url": "https://www.schemastore.org/bitrise.json" + }, + { + "name": "bitrise-step", + "description": "Steps and Workflows are the heart of how Bitrise works. A Bitrise build is simply a series of Steps. Bitrise is a collection of tools and services to help you with the development and automation of your software projects, with a main focus on mobile apps", + "fileMatch": ["step.yml"], + "url": "https://www.schemastore.org/bitrise-step.json" + }, + { + "name": ".bootstraprc", + "description": "Webpack bootstrap-loader configuration file", + "fileMatch": [".bootstraprc"], + "url": "https://www.schemastore.org/bootstraprc.json" + }, + { + "name": "bower.json", + "description": "Bower package description file", + "fileMatch": ["bower.json", ".bower.json"], + "url": "https://www.schemastore.org/bower.json" + }, + { + "name": ".bowerrc", + "description": "Bower configuration file", + "fileMatch": [".bowerrc"], + "url": "https://www.schemastore.org/bowerrc.json" + }, + { + "name": "BOSH CPI Config", + "description": "CPI-specific config for BOSH Director", + "url": "https://www.schemastore.org/bosh-cpi-config.json" + }, + { + "name": "BOSH Deploy Config", + "description": "Deploy config for BOSH CLI", + "url": "https://www.schemastore.org/bosh-deploy-config.json" + }, + { + "name": "Boyka Framework", + "description": "Boyka Framework config file", + "fileMatch": ["boyka-config.json"], + "url": "https://www.schemastore.org/boyka-config.json" + }, + { + "name": "behat.yml", + "description": "Behat configuration file", + "fileMatch": ["behat.yml", "*.behat.yml"], + "url": "https://www.schemastore.org/behat.json" + }, + { + "name": "partial-black.json", + "description": "black, a Python formatter", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-black.json" + }, + { + "name": "partial-fastapi.json", + "description": "FastAPI web framework configuration for pyproject.toml", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-fastapi.json" + }, + { + "name": "partial-scheduled.json", + "description": "Scheduled job configuration for pyproject.toml", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-scheduled.json" + }, + { + "name": "bozr.suite.json", + "description": "Bozr test suite file", + "fileMatch": [".suite.json", ".xsuite.json"], + "url": "https://www.schemastore.org/bozr.json" + }, + { + "name": "browser.i18n.json", + "description": "browser.i18n messages.json translation file", + "fileMatch": ["messages.json"], + "url": "https://www.schemastore.org/browser.i18n.json" + }, + { + "name": "browsh configuration", + "description": "Configuration file for browsh", + "fileMatch": ["**/browsh/config.toml"], + "url": "https://raw.githubusercontent.com/browsh-org/browsh/master/webext/assets/browsh-schema.json" + }, + { + "name": "bucklescript", + "description": "BuckleScript configuration file", + "fileMatch": ["bsconfig.json"], + "url": "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/master/docs/docson/build-schema.json" + }, + { + "name": "build-changelog", + "description": "Changelog files for build-changelog action", + "fileMatch": [ + "**/build-changelog/*.yml", + "**/build-changelog/*.yaml", + "**/build-changelog/*.toml" + ], + "url": "https://raw.githubusercontent.com/jelmore1674/build-changelog/refs/tags/v1/schemas/changlelog.json" + }, + { + "name": "Build Info", + "description": "Build Info is the metadata of a build. It includes all the details about the build broken down into segments that include version history, artifacts, project modules, dependencies, and everything that was required to create the build", + "fileMatch": ["*buildinfo*.json", "*build-info*.json", "*.buildinfo"], + "url": "https://raw.githubusercontent.com/jfrog/build-info-go/main/buildinfo-schema.json" + }, + { + "name": "Bukkit plugin.yml", + "description": "Minecraft Bukkit plugin description files", + "fileMatch": ["plugin.yml"], + "url": "https://www.schemastore.org/bukkit-plugin.json" + }, + { + "name": "Buildkite", + "description": "Buildkite pipeline.yml files", + "fileMatch": [ + "buildkite.yml", + "buildkite.yaml", + "buildkite.json", + "buildkite.*.yml", + "buildkite.*.yaml", + "buildkite.*.json", + "**/.buildkite/pipeline.yml", + "**/.buildkite/pipeline.yaml", + "**/.buildkite/pipeline.json", + "**/.buildkite/pipeline.*.yml", + "**/.buildkite/pipeline.*.yaml", + "**/.buildkite/pipeline.*.json" + ], + "url": "https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json" + }, + { + "name": ".build.yml", + "description": "Sourcehut Build Manifest", + "fileMatch": [".build.yml"], + "url": "https://www.schemastore.org/sourcehut-build-0.65.0.json", + "versions": { + "0.41.2": "https://www.schemastore.org/sourcehut-build-0.41.2.json", + "0.65.0": "https://www.schemastore.org/sourcehut-build-0.65.0.json" + } + }, + { + "name": "bun.lock", + "description": "bun.lock file", + "fileMatch": ["bun.lock"], + "url": "https://www.schemastore.org/bun-lock.json" + }, + { + "name": "bundleconfig.json", + "description": "bundleconfig.json files", + "fileMatch": ["bundleconfig.json"], + "url": "https://www.schemastore.org/bundleconfig.json" + }, + { + "name": "bunfig.toml", + "description": "bunfig.toml file", + "fileMatch": ["bunfig.toml"], + "url": "https://www.schemastore.org/bunfig.json" + }, + { + "name": "BungeeCord plugin.yml", + "description": "BungeeCord plugin description files", + "fileMatch": ["plugin.yml", "bungee.yml"], + "url": "https://www.schemastore.org/bungee-plugin.json" + }, + { + "name": "block.json", + "description": "WordPress block.json files", + "fileMatch": ["block.json"], + "url": "https://schemas.wp.org/trunk/block.json", + "versions": { + "trunk": "https://raw.githubusercontent.com/WordPress/gutenberg/trunk/schemas/json/block.json" + } + }, + { + "name": "Block Protocol Metadata", + "description": "Block Metadata in Block Protocol", + "fileMatch": ["block-metadata.json"], + "url": "https://blockprotocol.org/schemas/block-metadata.json" + }, + { + "name": "BX CI", + "description": "CI configuration for Amdocs Bill Experience projects", + "fileMatch": ["**/bxci.yaml", "**/bxci.yml"], + "url": "https://www.schemastore.org/bxci.schema-3.x.json", + "versions": { + "1.0": "https://www.schemastore.org/bxci.schema-1.0.json", + "1.0.1": "https://www.schemastore.org/bxci.schema-1.0.1.json", + "2.0.0": "https://www.schemastore.org/bxci.schema-2.0.0.json", + "2.x": "https://www.schemastore.org/bxci.schema-2.x.json", + "3.x": "https://www.schemastore.org/bxci.schema-2.x.json" + } + }, + { + "name": "Better Scripts", + "description": "Better scripts configuration file", + "fileMatch": [ + "scripts.json", + "better-scripts.json", + ".better-scriptsrc", + ".better-scriptsrc.json" + ], + "url": "https://raw.githubusercontent.com/iamyoki/better-scripts/main/lib/schema.json" + }, + { + "name": "Bleep", + "description": "A bleeping fast Scala build tool", + "fileMatch": ["bleep.yaml", "bleep.yml"], + "url": "https://raw.githubusercontent.com/oyvindberg/bleep/master/schema.json" + }, + { + "name": "CMake Presets", + "description": "CMake Presets", + "fileMatch": ["CMakePresets.json", "CMakeUserPresets.json"], + "url": "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json" + }, + { + "name": "Cache Warmup config", + "description": "Cache Warmup config", + "fileMatch": [ + "cache-warmup.json", + "cache-warmup.yaml", + "cache-warmup.yml" + ], + "url": "https://raw.githubusercontent.com/eliashaeussler/cache-warmup/main/res/cache-warmup-config.schema.json" + }, + { + "name": "Calqulus pipeline", + "description": "Qualisys Calqulus pipeline", + "fileMatch": ["*.calqulus.yaml", "*.calqulus.yml"], + "url": "https://raw.githubusercontent.com/qualisys/qualisys-schemas/master/calqulus-pipeline.schema.json" + }, + { + "name": "Camel YAML DSL", + "description": "Camel YAML DSL", + "fileMatch": [ + "*.camel.yaml", + "*.camelk.yaml", + "*.camel.yml", + "*.camelk.yml" + ], + "url": "https://raw.githubusercontent.com/apache/camel/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json", + "versions": { + "3.x": "https://raw.githubusercontent.com/apache/camel/camel-3.x/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json", + "4.x": "https://raw.githubusercontent.com/apache/camel/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json" + } + }, + { + "name": "Cannon TOML", + "description": "Deployment configuration for Cannon, a DevOps tool for Ethereum", + "fileMatch": [ + "cannonfile.json", + "*.cannonfile.json", + "cannonfile.yaml", + "*.cannonfile.yaml", + "cannonfile.toml", + "*.cannonfile.toml" + ], + "url": "https://raw.githubusercontent.com/usecannon/cannon/main/packages/lsp/src/schema.json" + }, + { + "name": "Carafe", + "description": "Carafe compatible JavaScript Bundles", + "url": "https://carafe.fm/schema/draft-02/bundle.schema.json", + "versions": { + "draft-02": "https://carafe.fm/schema/draft-02/bundle.schema.json", + "draft-01": "https://carafe.fm/schema/draft-01/bundle.schema.json" + } + }, + { + "name": "Cargo Manifest", + "description": "Manifest for Cargo, the Rust package manager and build tool", + "fileMatch": ["Cargo.toml"], + "url": "https://www.schemastore.org/cargo.json" + }, + { + "name": "Cargo Make", + "description": "cargo-make, a Rust task runner and build tool", + "fileMatch": ["Makefile.toml"], + "url": "https://www.schemastore.org/cargo-make.json" + }, + { + "name": "Catalog Info Backstage", + "description": "Backstage Catalog Info", + "fileMatch": ["catalog-info.yaml", "*.catalog-info.yaml"], + "url": "https://www.schemastore.org/catalog-info.json" + }, + { + "name": "Changie", + "description": "Changie configuration file", + "fileMatch": [".changie.yaml", ".changie.yml"], + "url": "https://changie.dev/schema.json" + }, + { + "name": "Charmcraft", + "description": "Charmcraft project. Documentation: https://documentation.ubuntu.com/charmcraft/stable/", + "fileMatch": ["charmcraft.yaml"], + "url": "https://raw.githubusercontent.com/canonical/charmcraft/main/schema/charmcraft.json" + }, + { + "name": "ChordPro Configuration", + "description": "Configuration files for ChordPro", + "fileMatch": [ + "*.chordpro.json", + "chordpro.json", + "*.chordpro.yaml", + "*.chordpro.yml", + "chordpro.yaml", + "chordpro.yml" + ], + "url": "https://raw.githubusercontent.com/ChordPro/chordpro/master/lib/ChordPro/res/config/config.schema" + }, + { + "name": "Chromia Model", + "description": "Chromia Model Config File", + "fileMatch": ["chromia.yml", "chromia.yaml"], + "url": "https://gitlab.com/chromaway/core-tools/chromia-cli-tools/-/raw/dev/chromia-build-tools/src/main/resources/chromia-model-schema.json" + }, + { + "name": "Chromia Seeder Root Config", + "description": "Chromia Seeder Root Config File", + "fileMatch": ["**/.chromia/seeder/**/seeder.yml"], + "url": "https://gitlab.com/chromaway/core-tools/rell-toolbox/-/raw/dev/seeder/src/main/resources/chromia-seeder-config-schema.json" + }, + { + "name": "Chromia Seeder Module Config", + "description": "Chromia Seeder Module Config File", + "fileMatch": ["**/.chromia/seeder/**/modules/**/*.yml"], + "url": "https://gitlab.com/chromaway/core-tools/rell-toolbox/-/raw/dev/seeder/src/main/resources/chromia-seeder-module-schema.json" + }, + { + "name": "cibuildwheel", + "description": "cibuildwheel, a Python redistributable wheel builder", + "fileMatch": ["cibuildwheel.toml", ".cibuildwheel.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/cibuildwheel.json" + }, + { + "name": "Citrus test case", + "description": "Citrus test case", + "fileMatch": [ + "*.citrus.yaml", + "*.citrus.test.yaml", + "*.citrus.it.yaml", + "*.citrus-test.yaml", + "*.citrus-it.yaml" + ], + "url": "https://citrusframework.org/schema/json/testcase/citrus-testcase.json" + }, + { + "name": "CityJSON", + "description": "the representation of 3D city models", + "url": "https://raw.githubusercontent.com/cityjson/specs/master/schemas/cityjson.min.schema.json" + }, + { + "name": "CloudEvents specification", + "description": "A specification for describing event data in a common way. Documentation: https://cloudevents.io", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/cloudevents/spec/master/cloudevents/formats/cloudevents.json" + }, + { + "name": "conda-forge", + "description": "Conda-forge configuration file", + "fileMatch": ["conda-forge.yml"], + "url": "https://raw.githubusercontent.com/conda-forge/conda-smithy/main/conda_smithy/data/conda-forge.json" + }, + { + "name": "Convex", + "description": "Configuration for Convex project settings", + "fileMatch": ["convex.json"], + "url": "https://raw.githubusercontent.com/get-convex/convex-backend/refs/heads/main/npm-packages/convex/schemas/convex.schema.json" + }, + { + "name": "Conjure", + "description": "Conjure Human-Readable Format", + "fileMatch": ["**/conjure/**.yml"], + "url": "https://raw.githubusercontent.com/palantir/conjure/master/conjure.schema.json" + }, + { + "name": "CNC Codes", + "description": "G/M codes for Machine Tools or 3D Printers", + "fileMatch": ["*.cncc.json"], + "url": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-07/schema", + "versions": { + "latest": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-07/schema", + "2022-07": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-07/schema", + "2022-06": "https://appliedengdesign.github.io/cnccodes-json-schema/draft/2022-06/schema" + } + }, + { + "name": "Cog config file", + "description": "cog.yaml files", + "fileMatch": ["cog.yaml", "cog.yml"], + "url": "https://raw.githubusercontent.com/replicate/cog/main/pkg/config/data/config_schema_v1.0.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/replicate/cog/main/pkg/config/data/config_schema_v1.0.json" + } + }, + { + "name": "Commandbox Box.json", + "description": "Commandbox used with cli, cfml web servers and modules", + "url": "https://raw.githubusercontent.com/Ortus-Solutions/vscode-commandbox/master/resources/schemas/box.schema.json" + }, + { + "name": "Commandbox Server.json", + "description": "Commandbox used with cfml web servers", + "url": "https://raw.githubusercontent.com/Ortus-Solutions/vscode-commandbox/master/resources/schemas/server.schema.json" + }, + { + "name": "Common Package Specification", + "description": "A cross-tool mechanism for locating software dependencies", + "fileMatch": ["*.cps"], + "url": "https://cps-org.github.io/cps/cps.schema.json" + }, + { + "name": "CumulusCI Config", + "description": "cumulusci.yml file for configuring CumulusCI, a Salesforce automation framework", + "fileMatch": ["cumulusci.yml"], + "url": "https://raw.githubusercontent.com/SFDO-Tooling/CumulusCI/main/cumulusci/schema/cumulusci.jsonschema.json" + }, + { + "name": "Clawject config", + "description": "Clawject configuration file", + "fileMatch": [".clawjectrc", ".clawjectrc.json"], + "url": "https://raw.githubusercontent.com/clawject/clawject/main/packages/core/src/config/schema.json" + }, + { + "name": "Claude Code Keybindings", + "description": "Keyboard shortcut configuration for Claude Code", + "fileMatch": ["**/.claude/keybindings.json"], + "url": "https://www.schemastore.org/claude-code-keybindings.json" + }, + { + "name": "Claude Code Plugin Manifest", + "description": "Manifest (.claude-plugin/plugin.json) for a Claude Code plugin", + "fileMatch": ["**/.claude-plugin/plugin.json"], + "url": "https://www.schemastore.org/claude-code-plugin-manifest.json" + }, + { + "name": "Claude Code Plugin Marketplace", + "description": "Marketplace manifest (.claude-plugin/marketplace.json) listing Claude Code plugins", + "fileMatch": ["**/.claude-plugin/marketplace.json"], + "url": "https://www.schemastore.org/claude-code-marketplace.json" + }, + { + "name": "Claude Code Settings", + "description": "Configuration file for Claude Code", + "fileMatch": ["**/.claude/settings.json"], + "url": "https://www.schemastore.org/claude-code-settings.json" + }, + { + "name": "cmakefmt", + "description": "Configuration file for cmakefmt, a fast native CMake formatter", + "fileMatch": [".cmakefmt.yaml", ".cmakefmt.yml", ".cmakefmt.toml"], + "url": "https://cmakefmt.dev/schemas/latest/schema.json" + }, + { + "name": "CVE Record Format", + "description": "CVE record format to describe security vulnerabilities", + "fileMatch": ["CVE-*.json"], + "url": "https://raw.githubusercontent.com/CVEProject/cve-schema/master/schema/docs/CVE_Record_Format_bundled.json" + }, + { + "name": "Cycle Stack File", + "description": "A Cycle.io stack file for environments as code", + "fileMatch": ["cycle.json", "cycle.yml", "cycle.yaml"], + "url": "https://raw.githubusercontent.com/cycleplatform/api-spec/main/stackspec/stackspec.json" + }, + { + "name": "CycloneDX", + "description": "CycloneDX Bill of Materials (BOM) file", + "fileMatch": ["bom.json", "*.cdx.json"], + "url": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.6.schema.json", + "versions": { + "1.2": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.2.schema.json", + "1.2-strict": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.2-strict.schema.json", + "1.3": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.3.schema.json", + "1.3-strict": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.3-strict.schema.json", + "1.4": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.4.schema.json", + "1.5": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.5.schema.json", + "1.6": "https://raw.githubusercontent.com/CycloneDX/specification/refs/heads/master/schema/bom-1.6.schema.json" + } + }, + { + "name": "DataYoga Connections", + "description": "Collection of defined source and target connections used within DataYoga jobs", + "fileMatch": ["connections.dy.yaml"], + "url": "https://raw.githubusercontent.com/datayoga-io/datayoga/main/schemas/connections.schema.json" + }, + { + "name": "DataYoga Job", + "description": "Declarative definition of sequential pipeline steps within a DataYoga job", + "fileMatch": ["**/jobs/**/*.dy.yaml"], + "url": "https://raw.githubusercontent.com/datayoga-io/datayoga/main/schemas/job.schema.json" + }, + { + "name": "dbt-bouncer", + "description": "dbt-bouncer configuration file for enforcing conventions in dbt projects", + "fileMatch": ["dbt-bouncer.yml", "dbt-bouncer.yaml"], + "url": "https://raw.githubusercontent.com/godatadriven/dbt-bouncer/main/schema.json" + }, + { + "name": "dbt Dependencies", + "description": "dbt's dependencies.yml file for external packages and cross-project refs", + "fileMatch": ["**/*dbt*/dependencies.yaml", "**/*dbt*/dependencies.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dependencies-latest.json" + }, + { + "name": "dbt Project", + "description": "dbt's project configuration file", + "fileMatch": ["dbt_project.yaml", "dbt_project.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dbt_project-latest.json" + }, + { + "name": "dbt Packages", + "description": "dbt's packages.yml file for external packages", + "fileMatch": ["**/*dbt*/packages.yaml", "**/*dbt*/packages.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/packages-latest.json" + }, + { + "name": "dbt Selectors", + "description": "dbt's selectors.yml file for configuring YAML selectors", + "fileMatch": ["**/*dbt*/selectors.yaml", "**/*dbt*/selectors.yml"], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/selectors-latest.json" + }, + { + "name": "dbt YAML files", + "description": "dbt YAML files configurations", + "fileMatch": [ + "**/*dbt*/macros/**/*.yaml", + "**/*dbt*/macros/**/*.yml", + "**/*dbt*/models/**/*.yaml", + "**/*dbt*/models/**/*.yml", + "**/*dbt*/seeds/**/*.yaml", + "**/*dbt*/seeds/**/*.yml", + "**/*dbt*/snapshots/**/*.yaml", + "**/*dbt*/snapshots/**/*.yml" + ], + "url": "https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dbt_yml_files-latest.json" + }, + { + "name": "Debian Upstream Metadata file", + "description": "Debian packaging file for describing metadata about the upstream project", + "fileMatch": ["**/debian/upstream/metadata"], + "url": "https://salsa.debian.org/debian/debian-json-schemas/-/raw/main/schemas/debian-upstream-metadata/debian-upstream-metadata-latest.json" + }, + { + "name": "Deck config", + "description": "Deck is a tool for creating presentation using Markdown and Google Slides", + "fileMatch": [ + "**/.config/deck/config.yml", + "**/.config/deck/config.yaml", + "**/.config/deck/config-*.yml", + "**/.config/deck/config-*.yaml" + ], + "url": "https://raw.githubusercontent.com/k1LoW/deck/refs/heads/main/schema.yml" + }, + { + "name": "DeepMatch deeplinks spec", + "description": "DeepMatch deeplinks YAML configuration file", + "fileMatch": [ + "**/.deeplinks.yml", + "**/*.deeplinks.yml", + "**/.deeplinks.yaml", + "**/*.deeplinks.yaml" + ], + "url": "https://raw.githubusercontent.com/aouledissa/deep-match/main/schemas/deeplinks.schema.json" + }, + { + "name": "Dein Config", + "description": "Dein.vim, a Vim/Neovim plugin manager", + "fileMatch": ["dein.toml"], + "url": "https://www.schemastore.org/dein.json" + }, + { + "name": "Dependency cruiser", + "description": "Configuration file for Dependency cruiser", + "fileMatch": ["dependency-cruiser.config.json"], + "url": "https://raw.githubusercontent.com/sverweij/dependency-cruiser/main/src/schema/configuration.schema.json" + }, + { + "name": "DeployStack Configuration", + "description": "Configuration for DeployStack applications, supporting app customization and deployment settings", + "fileMatch": [ + "**/.deploystack/config.yml", + "**/.deploystack/config.yaml" + ], + "url": "https://cdnx.deploystack.io/schema/config.yml.json" + }, + { + "name": "Deta Spacefile", + "description": "Configuration file for Space Apps", + "fileMatch": ["Spacefile"], + "url": "https://deta.space/assets/spacefile.schema.json" + }, + { + "name": "Devbox Config", + "description": "Configuration for a Devbox shell environment", + "fileMatch": ["devbox.json"], + "url": "https://raw.githubusercontent.com/jetify-com/devbox/main/.schema/devbox.schema.json" + }, + { + "name": "Devbox Plugin", + "description": "Configuration for a Devbox plugin specification", + "fileMatch": ["devbox-plugin.json"], + "url": "https://raw.githubusercontent.com/jetify-com/devbox/main/.schema/devbox-plugin.schema.json" + }, + { + "name": "Drupal Breakpoints", + "description": "Drupal configuration for breakpoints", + "fileMatch": ["*.breakpoints.yml"], + "url": "https://www.schemastore.org/drupal-breakpoints.json" + }, + { + "name": "Drupal Info", + "description": "Drupal configuration for info", + "fileMatch": ["*.info.yml"], + "url": "https://www.schemastore.org/drupal-info.json" + }, + { + "name": "Drupal Layouts", + "description": "Drupal configuration for layouts", + "fileMatch": ["*.layouts.yml"], + "url": "https://www.schemastore.org/drupal-layouts.json" + }, + { + "name": "Drupal Libraries", + "description": "Drupal configuration for libraries", + "fileMatch": ["*.libraries.yml"], + "url": "https://www.schemastore.org/drupal-libraries.json" + }, + { + "name": "Drupal Links Action", + "description": "Drupal configuration for action links", + "fileMatch": ["*.links.action.yml"], + "url": "https://www.schemastore.org/drupal-links-action.json" + }, + { + "name": "Drupal Links Contextual", + "description": "Drupal configuration for contextual links", + "fileMatch": ["*.links.contextual.yml"], + "url": "https://www.schemastore.org/drupal-links-contextual.json" + }, + { + "name": "Drupal Links Menu", + "description": "Drupal configuration for menu links", + "fileMatch": ["*.links.menu.yml"], + "url": "https://www.schemastore.org/drupal-links-menu.json" + }, + { + "name": "Drupal Links Task", + "description": "Drupal configuration for task links", + "fileMatch": ["*.links.task.yml"], + "url": "https://www.schemastore.org/drupal-links-task.json" + }, + { + "name": "Drupal Migration", + "description": "Drupal configuration for migration", + "fileMatch": ["*.migration.*.yml", "**/migrations/*.yml"], + "url": "https://www.schemastore.org/drupal-migration.json" + }, + { + "name": "Drupal Permissions", + "description": "Drupal configuration for permissions", + "fileMatch": ["*.permissions.yml"], + "url": "https://www.schemastore.org/drupal-permissions.json" + }, + { + "name": "Drupal Recipe", + "description": "Drupal configuration for recipe", + "fileMatch": ["drupal-recipe.yml", "drupal-recipe.yaml"], + "url": "https://www.schemastore.org/drupal-recipe.json" + }, + { + "name": "Drupal Routing", + "description": "Drupal configuration for routing", + "fileMatch": ["*.routing.yml"], + "url": "https://www.schemastore.org/drupal-routing.json" + }, + { + "name": "Drupal Config", + "description": "Drupal configuration for config", + "fileMatch": ["**/config/schema/*.schema.yml"], + "url": "https://www.schemastore.org/drupal-config.json" + }, + { + "name": "Drupal Services", + "description": "Drupal configuration for services", + "fileMatch": ["*.services.yml"], + "url": "https://www.schemastore.org/drupal-services.json" + }, + { + "name": "Helm Chart.yaml", + "description": "The Chart.yaml file is required for a chart", + "fileMatch": ["Chart.yaml"], + "url": "https://www.schemastore.org/chart.json" + }, + { + "name": "Helm Chart.lock", + "description": "The Chart.lock file locks dependencies from Chart.yaml", + "fileMatch": ["Chart.lock"], + "url": "https://www.schemastore.org/chart-lock.json" + }, + { + "name": "Helm Unittest Test Suite", + "description": "A Helm Unittest Test Suite file", + "fileMatch": ["**/charts/*/tests/*.yaml"], + "url": "https://raw.githubusercontent.com/helm-unittest/helm-unittest/refs/heads/main/schema/helm-testsuite.json" + }, + { + "name": "CircleCI config.yml", + "description": "CircleCI config files", + "fileMatch": ["**/.circleci/config.yml"], + "url": "https://www.schemastore.org/circleciconfig.json" + }, + { + "name": "Code Climate", + "description": "Configuration file as an alternative for configuring your repository in the settings page", + "fileMatch": [".codeclimate.yml", ".codeclimate.json"], + "url": "https://www.schemastore.org/codeclimate.json" + }, + { + "name": ".cirrus.yml", + "description": "Cirrus CI configuration files", + "fileMatch": [".cirrus.yml"], + "url": "https://raw.githubusercontent.com/cirruslabs/cirrus-cli/main/pkg/parser/testdata/cirrus.json" + }, + { + "name": ".clasp.json", + "description": "Google Apps Script CLI project file", + "fileMatch": [".clasp.json"], + "url": "https://www.schemastore.org/clasp.json" + }, + { + "name": "clangd", + "description": "Clang language server daemon", + "fileMatch": [ + ".clangd", + ".clangd.yml", + ".clangd.yaml", + "**/clangd/config.yaml" + ], + "url": "https://www.schemastore.org/clangd.json" + }, + { + "name": "clang-tidy", + "description": "clang-tidy linter from LLVM", + "fileMatch": [".clang-tidy", "clang-tidy.yml", "clang-tidy.yaml"], + "url": "https://www.schemastore.org/clang-tidy.json" + }, + { + "name": "clib", + "description": "C package manager-ish", + "fileMatch": ["clib.json"], + "url": "https://www.schemastore.org/clib.json" + }, + { + "name": "cloudify", + "description": "Cloudify Blueprint", + "fileMatch": ["*.cfy.yaml"], + "url": "https://www.schemastore.org/cloudify.json" + }, + { + "name": "cloud-init: cloud-config userdata", + "description": "#cloud-config userdata YAML", + "fileMatch": [ + "cloudconfig.yaml", + "cloud-config.yaml", + "*.cloudconfig.yaml", + "*.cloud-config.yaml" + ], + "url": "https://raw.githubusercontent.com/canonical/cloud-init/main/cloudinit/config/schemas/versions.schema.cloud-config.json" + }, + { + "name": "Codex", + "description": "OpenAI Codex configuration file", + "fileMatch": ["**/.codex/config.toml"], + "url": "https://developers.openai.com/codex/config-schema.json" + }, + { + "name": "Codex Hooks", + "description": "OpenAI Codex hooks configuration file", + "fileMatch": ["**/.codex/hooks.json"], + "url": "https://www.schemastore.org/codex-hooks.json" + }, + { + "name": "codemagic", + "description": "Codemagic CI/CD file configuration", + "fileMatch": ["codemagic.yaml", "codemagic.yml"], + "url": "https://codemagic.io/codemagic-schema.json" + }, + { + "name": "Codux", + "description": "Codux configuration file", + "fileMatch": ["codux.config.json"], + "url": "https://wixplosives.github.io/codux-config-schema/codux.config.schema.json" + }, + { + "name": "devcontainer.json", + "description": "dev container configuration files", + "fileMatch": ["devcontainer.json", ".devcontainer.json"], + "url": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json" + }, + { + "name": "Codecov configuration files", + "description": "codecov.yml files", + "fileMatch": [ + "**/.github/.codecov.yml", + "**/.github/codecov.yml", + "**/dev/.codecov.yml", + "**/dev/codecov.yml", + ".codecov.yml", + "codecov.yml" + ], + "url": "https://www.schemastore.org/codecov.json" + }, + { + "name": "CodeShip Pro services configuration files", + "description": "codeship-services.yml files", + "fileMatch": ["codeship-services.yml"], + "url": "https://www.schemastore.org/codeship-services.json" + }, + { + "name": "CodeShip Pro steps configuration files", + "description": "codeship-steps.yml files", + "fileMatch": ["codeship-steps.yml"], + "url": "https://www.schemastore.org/codeship-steps.json" + }, + { + "name": "vcpkg manifest file", + "description": "vcpkg manifest file", + "fileMatch": ["vcpkg.json"], + "url": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json" + }, + { + "name": "vcpkg configuration file", + "description": "vcpkg configuration file", + "fileMatch": ["vcpkg-configuration.json"], + "url": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json" + }, + { + "name": "Vercel", + "description": "Vercel configuration file", + "fileMatch": ["vercel.json"], + "url": "https://openapi.vercel.sh/vercel.json" + }, + { + "name": "VSCode Code Snippets", + "description": "code snippet files in visual studio code extensions", + "fileMatch": ["*.code-snippets"], + "url": "https://raw.githubusercontent.com/Yash-Singh1/vscode-snippets-json-schema/main/schema.json" + }, + { + "name": "compilerconfig.json", + "description": "compilerconfig.json files", + "fileMatch": ["compilerconfig.json"], + "url": "https://www.schemastore.org/compilerconfig.json" + }, + { + "name": "compile_commands.json", + "description": "LLVM compilation database", + "fileMatch": ["compile_commands.json"], + "url": "https://www.schemastore.org/compile-commands.json" + }, + { + "name": "commands.json", + "description": "Config file for Command Task Runner", + "fileMatch": ["commands.json"], + "url": "https://www.schemastore.org/commands.json" + }, + { + "name": "Common Catalog Data", + "description": "Universal all catalog data focused on transformations and relationships", + "fileMatch": [ + "*.cat.json", + "*.catalog.json", + "*.cat.yml", + "*.catalog.yml" + ], + "url": "https://raw.githubusercontent.com/howlowck/common-catalog-schema/main/schema-versions.json" + }, + { + "name": "cosmos.config.json", + "description": "React Cosmos configuration file", + "fileMatch": ["cosmos.config.json"], + "url": "https://www.schemastore.org/cosmos-config.json" + }, + { + "name": "Chrome Extension", + "description": "Google Chrome extension manifest file", + "url": "https://www.schemastore.org/chrome-manifest.json" + }, + { + "name": "chrome-extension-locales-messages.json", + "description": "Google Chrome extension localization file", + "fileMatch": ["**/_locales/*/messages.json"], + "url": "https://www.schemastore.org/chrome-extension-locales-messages.json" + }, + { + "name": "chutzpah.json", + "description": "Chutzpah configuration file", + "fileMatch": ["chutzpah.json"], + "url": "https://www.schemastore.org/chutzpah.json" + }, + { + "name": "contentmanifest.json", + "description": "Visual Studio manifest injection file", + "fileMatch": ["contentmanifest.json"], + "url": "https://www.schemastore.org/vsix-manifestinjection.json" + }, + { + "name": "cloud-sdk-pipeline-configuration", + "description": "SAP Cloud SDK Pipeline configuration", + "fileMatch": ["pipeline_config.yml"], + "url": "https://www.schemastore.org/cloud-sdk-pipeline-config-schema.json" + }, + { + "name": "cloudbuild.json", + "description": "Google Cloud Build configuration file", + "fileMatch": [ + "cloudbuild.json", + "cloudbuild.yaml", + "cloudbuild.yml", + "*.cloudbuild.json", + "*.cloudbuild.yaml", + "*.cloudbuild.yml" + ], + "url": "https://www.schemastore.org/cloudbuild.json" + }, + { + "name": "Google Cloud Workflows", + "description": "Google Cloud Workflows configuration file", + "fileMatch": [ + "workflows.json", + "workflows.yaml", + "workflows.yml", + "*.workflows.json", + "*.workflows.yaml", + "*.workflows.yml" + ], + "url": "https://www.schemastore.org/workflows.json" + }, + { + "name": "AWS CDK cdk.json", + "description": "AWS CDK context files", + "fileMatch": ["cdk.json"], + "url": "https://www.schemastore.org/cdk.json" + }, + { + "name": "AWS CloudFormation", + "description": "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment", + "fileMatch": [ + "*.cf.json", + "*.cf.yml", + "*.cf.yaml", + "cloudformation.json", + "cloudformation.yml", + "cloudformation.yaml" + ], + "url": "https://raw.githubusercontent.com/awslabs/goformation/master/schema/cloudformation.schema.json" + }, + { + "name": "AWS CloudFormation Serverless Application Model (SAM)", + "description": "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application", + "fileMatch": [ + "template.yaml", + "serverless.template", + "*.sam.json", + "*.sam.yml", + "*.sam.yaml", + "sam.json", + "sam.yml", + "sam.yaml" + ], + "url": "https://raw.githubusercontent.com/aws/serverless-application-model/main/samtranslator/schema/schema.json" + }, + { + "name": "AWS SAM CLI Samconfig", + "description": "AWS SAM CLI samconfig configuration file", + "fileMatch": ["samconfig.toml", "samconfig.yaml", "samconfig.yml"], + "url": "https://raw.githubusercontent.com/aws/aws-sam-cli/master/schema/samcli.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Accounts Config", + "description": "Used to manage all of the AWS accounts within the AWS Organization", + "fileMatch": ["accounts-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/accounts-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Customizations Config", + "description": "Used to manage configuration of custom applications, third-party firewall appliances, and CloudFormation stacks", + "fileMatch": ["customizations-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/customizations-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Global Config", + "description": "Used to manage all of the global properties that can be inherited across the AWS Organization", + "fileMatch": ["global-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/global-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - IAM Config", + "description": "Used to manage all of the IAM resources across the AWS Organization", + "fileMatch": ["iam-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/iam-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Network Config", + "description": "Used to manage and implement network resources to establish a WAN/LAN architecture to support cloud operations and application workloads in AWS", + "fileMatch": ["network-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/network-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Organization Config", + "description": "Used to manage all of the organization units in the AWS Organization", + "fileMatch": ["organization-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/organization-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Replacements Config", + "description": "Used to manage all of the replacement values across the configuration files", + "fileMatch": ["replacements-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/replacements-config.json" + }, + { + "name": "Landing Zone Accelerator on AWS - Security Config", + "description": "Used to manage configuration of AWS security services", + "fileMatch": ["security-config.yaml"], + "url": "https://raw.githubusercontent.com/awslabs/landing-zone-accelerator-on-aws/main/source/packages/@aws-accelerator/config/lib/schemas/security-config.json" + }, + { + "name": "Changesets", + "description": "A way to manage your versioning and changelogs with a focus on monorepos", + "fileMatch": ["**/.changeset/config.json"], + "url": "https://unpkg.com/@changesets/config/schema.json" + }, + { + "name": "chisel-slices.json", + "description": "Canonical Chisel slices definition file", + "fileMatch": ["**/slices/*.yaml"], + "url": "https://www.schemastore.org/chisel-slices.json" + }, + { + "name": "Citation File Format", + "description": "A YAML file with citation metadata for software or datasets", + "fileMatch": ["CITATION.cff"], + "url": "https://raw.githubusercontent.com/citation-file-format/citation-file-format/1.2.0/schema.json", + "versions": { + "1.2.0": "https://raw.githubusercontent.com/citation-file-format/citation-file-format/1.2.0/schema.json" + } + }, + { + "name": "coffeelint.json", + "description": "CoffeeLint configuration file", + "fileMatch": ["coffeelint.json"], + "url": "https://www.schemastore.org/coffeelint.json" + }, + { + "name": "committed.toml", + "description": "committed configuration file", + "fileMatch": ["committed.toml"], + "url": "https://raw.githubusercontent.com/crate-ci/committed/master/config.schema.json" + }, + { + "name": "composer.json", + "description": "PHP Composer configuration file", + "fileMatch": ["composer.json"], + "url": "https://getcomposer.org/schema.json" + }, + { + "name": "component.json", + "description": "Web component file", + "fileMatch": ["component.json"], + "url": "https://www.schemastore.org/component.json" + }, + { + "name": "component-detection-manifest.json", + "description": "Component Detection manifest", + "fileMatch": ["cdmanifest.json", "cgmanifest.json"], + "url": "https://www.schemastore.org/component-detection-manifest.json" + }, + { + "name": "contribute.json", + "description": "A open-source project contribution data by Mozilla", + "fileMatch": ["contribute.json"], + "url": "https://raw.githubusercontent.com/mozilla/contribute.json/master/schema.json" + }, + { + "name": "crowdin.yml", + "description": "Crowdin, a crowd-translation platform. Documentation: https://support.crowdin.com/configuration-file/", + "fileMatch": ["**/crowdin.yml"], + "url": "https://www.schemastore.org/crowdin.json" + }, + { + "name": "Crowdsec collection config", + "description": "A YAML Crowdsec collection configuration files", + "fileMatch": ["**/collections/*/*.yaml"], + "url": "https://raw.githubusercontent.com/crowdsecurity/crowdsec-yaml-schemas/main/collection_schema.yaml" + }, + { + "name": "Crowdsec parser config", + "description": "A YAML Crowdsec parser configuration files", + "fileMatch": [ + "**/parsers/s00-raw/*/*.yaml", + "**/parsers/s01-parse/*/*.yaml", + "**/parsers/s02-enrich/*/*.yaml", + "**/postoverflows/s00-enrich/*/*.yaml", + "**/postoverflows/s01-whitelist/*/*.yaml" + ], + "url": "https://raw.githubusercontent.com/crowdsecurity/crowdsec-yaml-schemas/main/parser_schema.yaml" + }, + { + "name": "Crowdsec scenario config", + "description": "A YAML Crowdsec scenario configuration files", + "fileMatch": ["**/scenarios/*/*.yaml"], + "url": "https://raw.githubusercontent.com/crowdsecurity/crowdsec-yaml-schemas/main/scenario_schema.yaml" + }, + { + "name": "cypress.json", + "description": "Cypress.io test runner configuration file", + "fileMatch": ["cypress.json"], + "url": "https://on.cypress.io/cypress.schema.json" + }, + { + "name": ".creatomic", + "description": "A config for Atomic Design 4 React generator", + "fileMatch": [".creatomic"], + "url": "https://www.schemastore.org/creatomic.json" + }, + { + "name": "CSpell (cspell.json)", + "description": "CSpell configuration file", + "fileMatch": [ + ".cspell.json", + "cspell.json", + ".cSpell.json", + "cSpell.json", + "cspell.config.json", + "cspell.config.yaml", + "cspell.config.yml", + "cspell.yaml", + "cspell.yml" + ], + "url": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/packages/cspell-types/cspell.schema.json" + }, + { + "name": "CSS Comb (.csscomb.json)", + "description": "CSS Comb's configuration file", + "fileMatch": [".csscomb.json"], + "url": "https://www.schemastore.org/csscomb.json" + }, + { + "name": "CSS Lint (.csslintrc)", + "description": "CSS Lint's configuration file", + "fileMatch": [".csslintrc"], + "url": "https://www.schemastore.org/csslintrc.json" + }, + { + "name": "Dart Build Config (dart-build.json)", + "description": "Configuration for Dart's build system", + "url": "https://www.schemastore.org/dart-build.json" + }, + { + "name": "Dart Test Config (dart-test.json)", + "description": "Configuration for Dart's test package", + "fileMatch": ["dart_test.yaml"], + "url": "https://www.schemastore.org/dart-test.json" + }, + { + "name": "DashLord Configuration", + "description": "Configuration for DashLord", + "fileMatch": ["dashlord.yaml", "dashlord.yml"], + "url": "https://raw.githubusercontent.com/socialgouv/dashlord/main/schema.json" + }, + { + "name": "Data Contract Specification", + "description": "Data Contract Specification file", + "fileMatch": [ + "datacontract.yaml", + "datacontract.yml", + "*-datacontract.yaml", + "*-datacontract.yml", + "*.datacontract.yaml", + "*.datacontract.yml", + "datacontract-*.yaml", + "datacontract-*.yml", + "**/datacontract/*.yml", + "**/datacontract/*.yaml", + "**/datacontracts/*.yml", + "**/datacontracts/*.yaml" + ], + "url": "https://raw.githubusercontent.com/datacontract/datacontract-specification/main/datacontract.schema.json" + }, + { + "name": "Data Product Specification", + "description": "Data Product Specification file", + "fileMatch": [ + "dataproduct.yaml", + "dataproduct.yml", + "*-dataproduct.yaml", + "*-dataproduct.yml", + "*.dataproduct.yaml", + "*.dataproduct.yml", + "dataproduct-*.yaml", + "dataproduct-*.yml", + "**/dataproduct/*.yml", + "**/dataproduct/*.yaml", + "**/dataproducts/*.yml", + "**/dataproducts/*.yaml" + ], + "url": "https://raw.githubusercontent.com/datamesh-architecture/dataproduct-specification/main/dataproduct.schema.json" + }, + { + "name": "datalogic-scan2deploy-android", + "description": "Datalogic Scan2Deploy Android file", + "fileMatch": [".dla.json"], + "url": "https://www.schemastore.org/datalogic-scan2deploy-android.json" + }, + { + "name": "datalogic-scan2deploy-ce", + "description": "Datalogic Scan2Deploy CE file", + "fileMatch": [".dlc.json"], + "url": "https://www.schemastore.org/datalogic-scan2deploy-ce.json" + }, + { + "name": "ddev-global", + "description": "DDEV global configuration file", + "fileMatch": ["**/.ddev/global_config.yaml"], + "url": "https://raw.githubusercontent.com/ddev/ddev/master/pkg/globalconfig/schema.json" + }, + { + "name": "ddev-project", + "description": "DDEV project configuration file", + "fileMatch": ["**/.ddev/config*.yaml"], + "url": "https://raw.githubusercontent.com/ddev/ddev/master/pkg/ddevapp/schema.json" + }, + { + "name": "debugsettings.json", + "description": "A the ASP.NET DebugSettings.json files", + "fileMatch": ["debugsettings.json"], + "url": "https://www.schemastore.org/debugsettings.json" + }, + { + "name": "Deno Config (deno.json)", + "description": "A JSON representation of a Deno configuration file", + "fileMatch": ["deno.json", "deno.jsonc"], + "url": "https://raw.githubusercontent.com/denoland/deno/main/cli/schemas/config-file.v1.json" + }, + { + "name": "dependabot.json", + "description": "Dependabot config.yml files", + "fileMatch": ["**/.dependabot/config.yml"], + "url": "https://www.schemastore.org/dependabot.json" + }, + { + "name": "dependabot-v2.json", + "description": "GitHub Actions' dependabot.yml files", + "fileMatch": ["**/.github/dependabot.yml", "**/.github/dependabot.yaml"], + "url": "https://www.schemastore.org/dependabot-2.0.json" + }, + { + "name": "Deployer Recipe", + "description": "A Deployer yaml recipes", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/deployphp/deployer/master/src/schema.json" + }, + { + "name": "Detekt Config (detekt.yml)", + "description": "Detekt Configuration File", + "fileMatch": ["detekt.yml", "detekt.yaml"], + "url": "https://www.schemastore.org/detekt-1.22.0.json", + "versions": { + "1.14.1": "https://www.schemastore.org/detekt-1.14.1.json", + "1.22.0": "https://www.schemastore.org/detekt-1.22.0.json" + } + }, + { + "name": "Discord Webhook", + "description": "Execute Discord Webhook", + "url": "https://raw.githubusercontent.com/AxoCode/json-schema/master/discord/webhook.json" + }, + { + "name": "dockerd.json", + "description": "Docker daemon configuration", + "fileMatch": ["dockerd.json", "docker.json"], + "url": "https://www.schemastore.org/dockerd.json" + }, + { + "name": "Docker Desktop extension metadata", + "description": "Docker Desktop extension metadata configuration file. Documentation: https://docs.docker.com/extensions/extensions-sdk/architecture/metadata/", + "fileMatch": [], + "url": "https://www.schemastore.org/docker-extension-metadata.json" + }, + { + "name": "docker bake", + "description": "Docker Bake configuration file. Documentation: https://docs.docker.com/build/bake/reference", + "fileMatch": ["docker-bake.json", "docker-bake.override.json"], + "url": "https://www.schemastore.org/docker-bake.json" + }, + { + "name": "docker sequencer", + "description": "docker-seq. Documentation: https://gitlab.com/sbenv/veroxis/docker-seq", + "fileMatch": [ + "docker-seq.yaml", + "docker-seq.json", + "docker-seq.yml", + "*.docker-seq.yaml", + "*.docker-seq.json", + "*.docker-seq.yml" + ], + "url": "https://gitlab.com/sbenv/veroxis/docker-seq/-/raw/HEAD/docker-seq.schema.json" + }, + { + "name": "DocFx Config (docfx.json)", + "description": "A DocFx configuration files", + "fileMatch": ["docfx.json"], + "url": "https://www.schemastore.org/docfx.json" + }, + { + "name": "Docs MCP Manifest", + "description": "Configuration file for Docs MCP", + "fileMatch": [".docs-mcp.json"], + "url": "https://raw.githubusercontent.com/speakeasy-api/docs-mcp/refs/heads/main/schemas/docs-mcp.schema.json" + }, + { + "name": "Dofigen", + "description": "Dofigen configuration file. Documentation: https://github.com/lenra-io/dofigen", + "fileMatch": [ + "dofigen.yaml", + "dofigen.json", + "dofigen.yml", + "*.dofigen.yaml", + "*.dofigen.json", + "*.dofigen.yml" + ], + "url": "https://www.schemastore.org/dofigen.json" + }, + { + "name": "Dolittle Artifacts", + "description": "A Dolittle bounded context's artifacts", + "fileMatch": ["**/.dolittle/artifacts.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.SDK/v5.0.0/Schemas/Artifacts.Configuration/artifacts.json" + }, + { + "name": "Dolittle Bounded Context Configuration", + "description": "A Dolittle application's bounded context configuration", + "fileMatch": ["bounded-context.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Applications.Configuration/bounded-context.json" + }, + { + "name": "Dolittle Event Horizons Configuration", + "description": "A Dolittle bounded context's event horizon configurations", + "fileMatch": ["**/.dolittle/event-horizons.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Events/event-horizons.json" + }, + { + "name": "Dolittle Resources Configuration", + "description": "A Dolittle bounded context's resource configurations", + "fileMatch": ["**/.dolittle/resources.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.Fundamentals/v5.1.0/Schemas/ResourceTypes.Configuration/resources.json" + }, + { + "name": "Dolittle Server Configuration", + "description": "A Dolittle bounded context's event horizon's interaction server configuration", + "fileMatch": ["**/.dolittle/server.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Server/server.json" + }, + { + "name": "Dolittle Tenants Configuration", + "description": "A Dolittle bounded context's tenant configuration", + "fileMatch": ["**/.dolittle/tenants.json"], + "url": "https://raw.githubusercontent.com/dolittle/Runtime/master/Schemas/Tenancy/tenants.json" + }, + { + "name": "Dolittle Tenant Map Configuration", + "description": "A Dolittle bounded context's tenant mapping configurations", + "fileMatch": ["**/.dolittle/tenant-map.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.Fundamentals/master/Schemas/Tenancy.Configuration/tenant-map.json" + }, + { + "name": "Dolittle Topology", + "description": "A Dolittle bounded context's topology", + "fileMatch": ["**/.dolittle/topology.json"], + "url": "https://raw.githubusercontent.com/dolittle/DotNET.SDK/master/Schemas/Applications.Configuration/topology.json" + }, + { + "name": "dotnet Release Index manifest", + "description": ".NET product collection manifests", + "fileMatch": ["dotnet-release-index.json"], + "url": "https://www.schemastore.org/dotnet-releases-index.json" + }, + { + "name": "dotnet-tools.json", + "description": ".NET tools manifest file", + "fileMatch": ["dotnet-tools.json"], + "url": "https://www.schemastore.org/dotnet-tools.json" + }, + { + "name": "dotnetcli.host.json", + "description": ".NET CLI template host files", + "fileMatch": ["dotnetcli.host.json"], + "url": "https://www.schemastore.org/dotnetcli.host.json" + }, + { + "name": "dprint.json", + "description": "dprint configuration file", + "fileMatch": [ + "dprint.json", + "dprint.jsonc", + ".dprint.json", + ".dprint.jsonc" + ], + "url": "https://dprint.dev/schemas/v0.json" + }, + { + "name": "drone.json", + "description": "Drone CI configuration file", + "fileMatch": [".drone.yml"], + "url": "https://www.schemastore.org/drone.json" + }, + { + "name": "Drush site aliases", + "description": "Drush 9 site aliases file", + "fileMatch": ["**/sites/*.site.yml"], + "url": "https://www.schemastore.org/drush.site.yml.json" + }, + { + "name": "dss-2.0.0.json", + "description": "Digital Signature Service Core Protocols, Elements, and Bindings Version 2.0", + "url": "https://www.schemastore.org/dss-2.0.0.json" + }, + { + "name": "dstack configuration", + "description": "YAML dstack configurations", + "fileMatch": ["*.dstack.yml", "*.dstack.yaml"], + "url": "https://dstack-runner-downloads.s3.eu-west-1.amazonaws.com/latest/schemas/configuration.json" + }, + { + "name": "dvc.yaml", + "description": "dvc.yaml file", + "fileMatch": ["dvc.yaml"], + "url": "https://raw.githubusercontent.com/iterative/dvcyaml-schema/master/schema.json" + }, + { + "name": "Devfile", + "description": "Devfiles", + "fileMatch": ["devfile.yaml", ".devfile.yaml"], + "url": "https://raw.githubusercontent.com/devfile/api/v2.2.0/schemas/latest/devfile.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/eclipse-che/che-server/master/wsmaster/che-core-api-workspace/src/main/resources/schema/1.0.0/devfile.json", + "2.0.0": "https://raw.githubusercontent.com/devfile/api/v2.0.0/schemas/latest/devfile.json", + "2.1.0": "https://raw.githubusercontent.com/devfile/api/v2.1.0/schemas/latest/devfile.json", + "2.2.0": "https://raw.githubusercontent.com/devfile/api/v2.2.0/schemas/latest/devfile.json" + } + }, + { + "name": "DWP Exchange - gateway", + "description": "exchange publishing tools gateway definitions", + "fileMatch": [ + "**/exchange-config/gateway/prod/*.yaml", + "**/exchange-config/gateway/prod/*.yml", + "**/exchange-config/gateway/non-prod/*.yaml", + "**/exchange-config/gateway/non-prod/*.yml" + ], + "url": "https://raw.githubusercontent.com/dwp/schemas/main/exchange/publishing-tools/gateway-config-schema.json" + }, + { + "name": "DWP Exchange - meta", + "description": "exchange publishing tools meta definition", + "fileMatch": [ + "**/exchange-config/meta.yaml", + "**/exchange-config/meta.yml" + ], + "url": "https://raw.githubusercontent.com/dwp/schemas/main/exchange/publishing-tools/meta-schema.json" + }, + { + "name": "DWP Exchange - catalogue entry", + "description": "exchange publishing tools catalogue entry definition", + "fileMatch": [ + "**/exchange-config/portal/catalogue-entry.yaml", + "**/exchange-config/portal/catalogue-entry.yml" + ], + "url": "https://raw.githubusercontent.com/dwp/schemas/main/exchange/publishing-tools/catalogue-entry-schema.json" + }, + { + "name": "ecosystem.json", + "description": "PM2 ecosystem config file", + "fileMatch": [ + "ecosystem.json", + "ecosystem.yml", + "ecosystem.yaml", + "ecosystem.config.json", + "ecosystem.config.yml", + "ecosystem.config.yaml" + ], + "url": "https://www.schemastore.org/pm2-ecosystem.json" + }, + { + "name": "ECA - Editor Code Assistant", + "description": "ECA AI coding agent configuration file", + "fileMatch": ["**/eca/config.json", "**/.eca/config.json"], + "url": "https://eca.dev/config.json" + }, + { + "name": "eksctl", + "description": "eksctl cluster configuration file", + "url": "https://raw.githubusercontent.com/weaveworks/eksctl/main/pkg/apis/eksctl.io/v1alpha5/assets/schema.json" + }, + { + "name": "Elgato Stream Deck", + "description": "Elgato Stream Deck plugin manifest file", + "fileMatch": [ + "elgato-stream-deck-plugin.yml", + "elgato-stream-deck-plugin.yaml" + ], + "url": "https://www.schemastore.org/elgato-stream-deck-plugin.json" + }, + { + "name": "Enterprise Contract Policy Spec", + "description": "Policy file for use with Enterprise Contract", + "url": "https://enterprisecontract.dev/enterprise-contract-controller/schema/policy_spec.json" + }, + { + "name": "Envilder Map File", + "description": "Envilder secret mapping file that maps environment variable names to cloud secret paths", + "fileMatch": ["envilder.json", "envilder.*.json"], + "url": "https://envilder.com/schema/map-file.v1.json" + }, + { + "name": ".esmrc.json", + "description": "Configuration files for the esm module/package in Node.js", + "fileMatch": [".esmrc", ".esmrc.json"], + "url": "https://www.schemastore.org/esmrc.json" + }, + { + "name": "Esquio", + "description": "Esquio configuration files", + "url": "https://www.schemastore.org/esquio.json" + }, + { + "name": "estampo.toml", + "description": "Configuration for estampo, the build system for reproducible 3D prints", + "fileMatch": ["estampo.toml", "estampo.*.toml"], + "url": "https://raw.githubusercontent.com/estampo/estampo/main/docs/estampo.schema.json" + }, + { + "name": "epr-manifest.json", + "description": "Entry Point Regulation manifest file", + "fileMatch": ["epr-manifest.json"], + "url": "https://www.schemastore.org/epr-manifest.json" + }, + { + "name": "electron-builder configuration file", + "description": "electron-build configuration file", + "fileMatch": ["electron-builder.json"], + "url": "https://www.schemastore.org/electron-builder.json" + }, + { + "name": "evcc.yaml", + "description": "evcc configuration file", + "fileMatch": ["evcc*.yaml"], + "url": "https://raw.githubusercontent.com/andig/evcc/master/schema.json" + }, + { + "name": "EveryVoice TTS Toolkit Aligner Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Aligner Configuration", + "fileMatch": ["everyvoice-aligner.yaml", "everyvoice-aligner.json"], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-aligner-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Data Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Data Configuration", + "fileMatch": [ + "everyvoice-shared-data.yaml", + "everyvoice-shared-data.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-data-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Text Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Text Configuration", + "fileMatch": [ + "everyvoice-shared-text.yaml", + "everyvoice-shared-text.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Vocoder Configuration", + "description": "EveryVoice Text-to-Speech Toolkit Vocoder Configuration", + "fileMatch": [ + "everyvoice-spec-to-wav.yaml", + "everyvoice-spec-to-wav.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-spec-to-wav-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit Feature Prediction Configuration", + "description": "EveryVoice Text-to-Speech Toolkit", + "fileMatch": [ + "everyvoice-text-to-spec.yaml", + "everyvoice-text-to-spec.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-spec-0.3.json" + } + }, + { + "name": "EveryVoice TTS Toolkit E2E Configuration", + "description": "EveryVoice Text-to-Speech Toolkit E2E Configuration", + "fileMatch": [ + "everyvoice-text-to-wav.yaml", + "everyvoice-text-to-wav.json" + ], + "url": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.3.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.1.json", + "0.2": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.2.json", + "0.3": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-text-to-wav-0.3.json" + } + }, + { + "name": "Expo SDK", + "description": "Expo SDK app manifest", + "fileMatch": [], + "url": "https://www.schemastore.org/expo-53.0.0.json", + "versions": { + "37.0.0": "https://www.schemastore.org/expo-37.0.0.json", + "38.0.0": "https://www.schemastore.org/expo-38.0.0.json", + "39.0.0": "https://www.schemastore.org/expo-39.0.0.json", + "40.0.0": "https://www.schemastore.org/expo-40.0.0.json", + "41.0.0": "https://www.schemastore.org/expo-41.0.0.json", + "42.0.0": "https://www.schemastore.org/expo-42.0.0.json", + "46.0.0": "https://www.schemastore.org/expo-46.0.0.json", + "50.0.0": "https://www.schemastore.org/expo-50.0.0.json", + "52.0.0": "https://www.schemastore.org/expo-52.0.0.json", + "53.0.0": "https://www.schemastore.org/expo-53.0.0.json" + } + }, + { + "name": "EAS config", + "description": "The EAS config (eas.json) validation and documentation", + "fileMatch": ["eas.json"], + "url": "https://raw.githubusercontent.com/expo/eas-cli/main/packages/eas-json/schema/eas.schema.json" + }, + { + "name": "Expoot app config", + "description": "The config for creating a React Native Desktop app with best-effort Expo support, used by the expoot CLI", + "fileMatch": ["expoot-app.json"], + "url": "https://raw.githubusercontent.com/shirakaba/expoot/main/packages/expoot/schemas/expoot-app.schema.json" + }, + { + "name": "EasyVCR .NET", + "description": "EasyVCR .NET recording file", + "fileMatch": ["*.easyvcr", "**/cassettes/*.json"], + "url": "https://www.schemastore.org/easyvcr-net.json" + }, + { + "name": "ezd task runner", + "description": "ezd task runner. Documentation: https://gitlab.com/sbenv/veroxis/ezd-rs", + "fileMatch": ["ezd.yaml", "ezd.json", "ezd.yml"], + "url": "https://gitlab.com/sbenv/veroxis/ezd-rs/-/raw/HEAD/ezd.schema.json" + }, + { + "name": ".eslintrc", + "description": "ESLint configuration files", + "fileMatch": [ + ".eslintrc", + ".eslintrc.json", + ".eslintrc.yml", + ".eslintrc.yaml" + ], + "url": "https://www.schemastore.org/eslintrc.json" + }, + { + "name": "fabric.mod.json", + "description": "Metadata file used by the Fabric mod loader", + "fileMatch": ["fabric.mod.json"], + "url": "https://www.schemastore.org/fabric.mod.json" + }, + { + "name": "F-Droid Data metadata", + "description": "F-Droid Data app metadata files", + "fileMatch": ["**/metadata/*.yml"], + "url": "https://gitlab.com/fdroid/fdroiddata/-/raw/master/schemas/metadata.json" + }, + { + "name": ".ffizer.yaml", + "description": "ffizer template configuration files", + "fileMatch": [".ffizer.yaml"], + "url": "https://ffizer.github.io/ffizer/ffizer.schema.json" + }, + { + "name": "Firebase", + "description": "firebase", + "fileMatch": ["firebase.json"], + "url": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json" + }, + { + "name": "Google Chrome Related Website Sets", + "description": "Google Chrome Related Website Sets (formerly First Party Sets)", + "fileMatch": ["**/.well-known/first-party-set.json"], + "url": "https://raw.githubusercontent.com/GoogleChrome/related-website-sets/main/SCHEMA.json" + }, + { + "name": "FiQuS", + "description": "FiQuS input file", + "fileMatch": [ + "*_fiqus.json", + "*_fiqus.json5", + "*_fiqus.yaml", + "*_fiqus.yml", + "*_FiQuS.json", + "*_FiQuS.json5", + "*_FiQuS.yaml", + "*_FiQuS.yml" + ], + "url": "https://gitlab.cern.ch/steam/fiqus/-/raw/master/docs/schema.json" + }, + { + "name": "Flatpak Builder Manifest", + "description": "flatpak-builder manifest files", + "fileMatch": [ + "**/*.flatpak.json", + "**/*.flatpak.yaml", + "**/*.flatpak.yml" + ], + "url": "https://www.schemastore.org/flatpak-manifest.json" + }, + { + "name": "FlexGet Config", + "description": "FlexGet config file", + "fileMatch": ["**/.flexget/config.yml", "**/flexget/config.yml"], + "url": "https://github.com/Flexget/Flexget/releases/latest/download/flexget-config.schema.json" + }, + { + "name": "first-timers-bot", + "description": "A bot that helps onboarding new open-source contributors", + "fileMatch": ["**/.github/first-timers.yml"], + "url": "https://www.schemastore.org/first-timers.json" + }, + { + "name": "Foundry VTT - Base package Manifest", + "description": "Base Module/system/World manifest to inherit from", + "fileMatch": [], + "url": "https://www.schemastore.org/foundryvtt-base-package-manifest.json" + }, + { + "name": "Foundry VTT - Module Manifest", + "description": "Foundry VTT module.json files", + "fileMatch": ["**/modules/*/module.json"], + "url": "https://www.schemastore.org/foundryvtt-module-manifest.json" + }, + { + "name": "Foundry VTT - System Manifest", + "description": "Foundry VTT system.json files", + "fileMatch": ["**/systems/*/system.json"], + "url": "https://www.schemastore.org/foundryvtt-system-manifest.json" + }, + { + "name": "Foundry VTT - World Manifest", + "description": "Foundry VTT world.json files", + "fileMatch": ["**/worlds/*/world.json"], + "url": "https://www.schemastore.org/foundryvtt-world-manifest.json" + }, + { + "name": "Foundry VTT - System Data Template", + "description": "Foundry VTT template.json files", + "fileMatch": ["**/systems/*/template.json"], + "url": "https://www.schemastore.org/foundryvtt-template.json" + }, + { + "name": "Fossa configuration file", + "description": "FOSSA CLI's .fossa.yml configuration file", + "fileMatch": [".fossa.yml"], + "url": "https://raw.githubusercontent.com/fossas/fossa-cli/master/docs/references/files/fossa-yml.v3.schema.json" + }, + { + "name": "Fossa's fossa-deps file", + "description": "FOSSA CLI's fossa-deps file", + "fileMatch": ["fossa-deps.yml", "fossa-deps.yaml", "fossa-deps.json"], + "url": "https://raw.githubusercontent.com/fossas/fossa-cli/master/docs/references/files/fossa-deps.schema.json" + }, + { + "name": "Karakum configuration file", + "description": "configuring Karakum, a converter of TypeScript declaration files to Kotlin declarations", + "fileMatch": ["karakum.config.json"], + "url": "https://raw.githubusercontent.com/karakum-team/karakum/master/karakum-schema/karakum-schema.json" + }, + { + "name": "Knative Functions - func.yaml", + "description": "Knative Functions func.yaml files", + "fileMatch": ["func.yaml"], + "url": "https://raw.githubusercontent.com/knative/func/latest-release/schema/func_yaml-schema.json", + "versions": { + "1.7": "https://raw.githubusercontent.com/knative/func/release-1.7/schema/func_yaml-schema.json", + "1.8": "https://raw.githubusercontent.com/knative/func/release-1.8/schema/func_yaml-schema.json" + } + }, + { + "name": "Knip", + "description": "Knip configuration files", + "fileMatch": ["knip.json", ".knip.json", "knip.jsonc", ".knip.jsonc"], + "url": "https://unpkg.com/knip@5/schema.json" + }, + { + "name": "KSail", + "description": "Configuration for KSail", + "fileMatch": [ + "ksail-*.yaml", + "ksail-*.yml", + "ksail_*.yaml", + "ksail_*.yml", + "ksail.*.yaml", + "ksail.*.yml", + "*-ksail.yaml", + "*-ksail.yml", + "*_ksail.yaml", + "*_ksail.yml", + "*.ksail.yaml", + "*.ksail.yml", + "ksail.yaml", + "ksail.yml" + ], + "url": "https://raw.githubusercontent.com/devantler-tech/ksail/refs/heads/main/schemas/ksail-config.schema.json" + }, + { + "name": "function.json", + "description": "Azure Functions function.json files", + "fileMatch": ["function.json"], + "url": "https://www.schemastore.org/function.json" + }, + { + "name": "G2P Mapping Configuration", + "description": "defining mappings for Python-based grapheme-to-phoneme engine 'g2p'", + "fileMatch": ["config-g2p.yaml", "config-g2p.json"], + "url": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.3.json", + "versions": { + "2.0": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.0.json", + "2.1": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.1.json", + "2.2": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.2.json", + "2.3": "https://raw.githubusercontent.com/roedoejet/g2p/main/g2p/mappings/.schema/g2p-config-schema-2.3.json" + } + }, + { + "name": "Gaspar", + "description": "Configuration for Gaspar", + "fileMatch": ["gaspar.config.json"], + "url": "https://www.schemastore.org/gaspar-3.0.json", + "versions": { + "1.0": "https://www.schemastore.org/gaspar-1.0.json", + "3.0": "https://www.schemastore.org/gaspar-3.0.json" + } + }, + { + "name": "GatewayCore API Gateway", + "description": "Cloudtoid GatewayCore API Gateway and Reverse Proxy", + "fileMatch": [ + "gwcore.json", + "gwcore.yml", + "gwcore.yaml", + "gatewaycore.json", + "gatewaycore.yml", + "gatewaycore.yaml", + "*.gwcore.json", + "*.gwcore.yml", + "*.gwcore.yaml", + "*.gatewaycore.json", + "*.gatewaycore.yml", + "*.gatewaycore.yaml" + ], + "url": "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json", + "versions": { + "latest": "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json", + "2021-07": "https://raw.githubusercontent.com/cloudtoid/gateway-core/master/src/Cloudtoid.GatewayCore/Options/Schema/2021-07.json" + } + }, + { + "name": "GCP Blueprint Metadata", + "description": "Blueprint Solutions for Google Cloud", + "fileMatch": ["metadata.yaml", "metadata.display.yaml"], + "url": "https://www.schemastore.org/gcp-blueprint-metadata.json" + }, + { + "name": "Gemini CLI settings", + "description": "Configuration for Gemini CLI settings files", + "fileMatch": [ + "**/.gemini/settings.json", + "**/gemini-cli/settings.json", + "**/GeminiCli/settings.json" + ], + "url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/refs/heads/main/schemas/settings.schema.json" + }, + { + "name": "Global Privacy Control", + "description": "Configuration for GPC, so a site can convey its support for the Global Privacy Control", + "fileMatch": ["**/.well-known/gpc.json"], + "url": "https://www.schemastore.org/gpc.json" + }, + { + "name": "GitVersion", + "description": "Configuration file for GitVersion", + "fileMatch": [ + "GitVersion.yml", + "GitVersion.yaml", + ".gitversion.yml", + ".gitversion.yaml" + ], + "url": "https://gitversion.net/schemas/6.7/GitVersion.configuration.json", + "versions": { + "5.12": "https://gitversion.net/schemas/5.12/GitVersion.configuration.json", + "6.0": "https://gitversion.net/schemas/6.0/GitVersion.configuration.json", + "6.1": "https://gitversion.net/schemas/6.1/GitVersion.configuration.json", + "6.2": "https://gitversion.net/schemas/6.2/GitVersion.configuration.json", + "6.3": "https://gitversion.net/schemas/6.3/GitVersion.configuration.json", + "6.4": "https://gitversion.net/schemas/6.4/GitVersion.configuration.json", + "6.5": "https://gitversion.net/schemas/6.5/GitVersion.configuration.json", + "6.6": "https://gitversion.net/schemas/6.6/GitVersion.configuration.json", + "6.7": "https://gitversion.net/schemas/6.7/GitVersion.configuration.json" + } + }, + { + "name": "Gitea Issue Template configuration", + "description": "YAML configuring Gitea Issue Templates", + "fileMatch": [ + "**/.gitea/ISSUE_TEMPLATE/config.yml", + "**/.gitea/ISSUE_TEMPLATE/config.yaml", + "**/.forgejo/ISSUE_TEMPLATE/config.yml", + "**/.forgejo/ISSUE_TEMPLATE/config.yaml" + ], + "url": "https://www.schemastore.org/gitea-issue-config.json" + }, + { + "name": "Gitea Issue Template forms", + "description": "YAML Gitea issue forms", + "fileMatch": [ + "**/.gitea/ISSUE_TEMPLATE/**.yml", + "**/.gitea/ISSUE_TEMPLATE/**.yaml", + "**/.forgejo/ISSUE_TEMPLATE/**.yml", + "**/.forgejo/ISSUE_TEMPLATE/**.yaml" + ], + "url": "https://www.schemastore.org/gitea-issue-forms.json" + }, + { + "name": "GitHub Action", + "description": "YAML GitHub Actions", + "fileMatch": ["action.yml", "action.yaml"], + "url": "https://www.schemastore.org/github-action.json" + }, + { + "name": "GitHub Discussion", + "description": "YAML GitHub Discussions", + "fileMatch": [ + "**/.github/DISCUSSION_TEMPLATE/*.yml", + "**/.github/DISCUSSION_TEMPLATE/*.yaml" + ], + "url": "https://www.schemastore.org/github-discussion.json" + }, + { + "name": "GitHub Funding", + "description": "YAML GitHub Funding", + "fileMatch": [ + "**/.github/FUNDING.yml", + "**/.github/FUNDING.yaml", + "**/.github/funding.yml", + "**/.github/funding.yaml" + ], + "url": "https://www.schemastore.org/github-funding.json" + }, + { + "name": "GitHub Issue Template configuration", + "description": "YAML configuring GitHub Issue Templates", + "fileMatch": [ + "**/.github/ISSUE_TEMPLATE/config.yml", + "**/.github/ISSUE_TEMPLATE/config.yaml" + ], + "url": "https://www.schemastore.org/github-issue-config.json" + }, + { + "name": "GitHub Issue Template forms", + "description": "YAML GitHub issue forms", + "fileMatch": [ + "**/.github/ISSUE_TEMPLATE/!(config).yml", + "**/.github/ISSUE_TEMPLATE/!(config).yaml" + ], + "url": "https://www.schemastore.org/github-issue-forms.json" + }, + { + "name": "GitHub Pages Jekyll", + "description": "YAML Jekyll configuration for sites built by GitHub Pages", + "url": "https://www.schemastore.org/github-pages-jekyll.json" + }, + { + "name": "GitHub Workflow", + "description": "YAML GitHub Workflow", + "fileMatch": [ + "**/.github/workflows/*.yml", + "**/.github/workflows/*.yaml", + "**/.gitea/workflows/*.yml", + "**/.gitea/workflows/*.yaml", + "**/.forgejo/workflows/*.yml", + "**/.forgejo/workflows/*.yaml" + ], + "url": "https://www.schemastore.org/github-workflow.json" + }, + { + "name": "GitHub Workflow Template Properties", + "description": "properties json file for a GitHub Workflow template", + "fileMatch": ["**/.github/workflow-templates/**.properties.json"], + "url": "https://www.schemastore.org/github-workflow-template-properties.json" + }, + { + "name": "GitHub automatically generated release notes configuration", + "description": "YAML GitHub automatically generated release notes config", + "fileMatch": ["**/.github/release.yml"], + "url": "https://www.schemastore.org/github-release-config.json" + }, + { + "name": "gitlab-ci", + "description": "GitLab CI Configuration file", + "fileMatch": [ + "**/.gitlab-ci.yml", + "**/.gitlab-ci.yaml", + "**/*.gitlab-ci.yml", + "**/*.gitlab-ci.yaml" + ], + "url": "https://gitlab.com/gitlab-org/gitlab-foss/-/raw/master/app/assets/javascripts/editor/schema/ci.json" + }, + { + "name": "Gitpod Automations", + "description": "Configuration for Gitpod Automations", + "fileMatch": [ + "**/.gitpod/automations.json", + "**/.gitpod/automations.yaml", + "**/.gitpod/automations.yml", + "**/.gitpod/automation.yaml" + ], + "url": "https://app.gitpod.io/jsonschema/v1/automations_file.jsonschema.json" + }, + { + "name": "Gitpod Configuration", + "description": "configuring Gitpod.io", + "fileMatch": [".gitpod.yml"], + "url": "https://gitpod.io/schemas/gitpod-schema.json" + }, + { + "name": "Ansible Execution Environment", + "description": "Ansible execution-environment.yml file", + "fileMatch": ["**/execution-environment.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/execution-environment.json" + }, + { + "name": "Ansible Meta", + "description": "Ansible meta/main.yml file", + "fileMatch": ["**/meta/main.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/meta.json" + }, + { + "name": "Ansible Meta Runtime", + "description": "Ansible meta/runtime.yml file", + "fileMatch": ["**/meta/runtime.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/meta-runtime.json" + }, + { + "name": "Ansible Argument Specs", + "description": "Ansible meta/argument_specs.yml file", + "fileMatch": ["**/meta/argument_specs.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/role-arg-spec.json" + }, + { + "name": "Ansible Requirements", + "description": "Ansible requirements file", + "fileMatch": ["requirements.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/requirements.json" + }, + { + "name": "Ansible Vars File", + "description": "Ansible variables File", + "fileMatch": [ + "**/vars/*.yml", + "**/vars/*.yaml", + "**/host_vars/*.yml", + "**/host_vars/*.yaml", + "**/group_vars/*.yml", + "**/group_vars/*.yaml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/vars.json" + }, + { + "name": "Ansible Tasks File", + "description": "Ansible tasks file", + "fileMatch": [ + "**/tasks/*.yml", + "**/tasks/*.yaml", + "**/handlers/*.yml", + "**/handlers/*.yaml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/tasks" + }, + { + "name": "Ansible Playbook", + "description": "Ansible playbook files", + "fileMatch": [ + "playbook.yml", + "playbook.yaml", + "site.yml", + "site.yaml", + "**/playbooks/*.yml", + "**/playbooks/*.yaml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/playbook" + }, + { + "name": "Ansible Rulebook", + "description": "Ansible rulebook files", + "fileMatch": ["**/rulebooks/*.yml", "**/rulebooks/*.yaml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-rulebook/main/ansible_rulebook/schema/ruleset_schema.json" + }, + { + "name": "Ansible Inventory", + "description": "Ansible inventory files", + "fileMatch": ["inventory.yml", "inventory.yaml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/inventory.json" + }, + { + "name": "Ansible Collection Galaxy", + "description": "Ansible Collection Galaxy metadata", + "fileMatch": ["galaxy.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/galaxy.json" + }, + { + "name": "Ansible-lint Configuration", + "description": "Ansible-lint Configuration", + "fileMatch": [".ansible-lint", "**/.config/ansible-lint.yml"], + "url": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible-lint-config.json" + }, + { + "name": "Ansible Navigator Configuration", + "description": "Ansible Navigator Configuration", + "fileMatch": [ + ".ansible-navigator.json", + ".ansible-navigator.yaml", + ".ansible-navigator.yml", + "ansible-navigator.json", + "ansible-navigator.yaml", + "ansible-navigator.yml" + ], + "url": "https://raw.githubusercontent.com/ansible/ansible-navigator/main/src/ansible_navigator/data/ansible-navigator.json" + }, + { + "name": "global.json", + "description": "ASP.NET global configuration file", + "fileMatch": ["global.json"], + "url": "https://www.schemastore.org/global.json" + }, + { + "name": "Golangci-lint Configuration", + "description": "golangci-lint configuration file", + "fileMatch": [ + ".golangci.yml", + ".golangci.yaml", + ".golangci.toml", + ".golangci.json" + ], + "url": "https://golangci-lint.run/jsonschema/golangci.jsonschema.json", + "versions": { + "1": "https://golangci-lint.run/jsonschema/golangci.v1.jsonschema.json", + "2": "https://golangci-lint.run/jsonschema/golangci.v2.jsonschema.json" + } + }, + { + "name": "Golangci-lint Custom Plugins Configuration", + "description": "golangci-lint custom plugins configuration file", + "fileMatch": [".custom-gcl.yml", ".custom-gcl.yaml"], + "url": "https://golangci-lint.run/jsonschema/custom-gcl.jsonschema.json" + }, + { + "name": "go-feature-flag Flag Configuration", + "description": "go-feature-flag flag configuration file", + "fileMatch": ["*.goff.yml", "*.goff.yaml", "*.goff.json", "*.goff.toml"], + "url": "https://raw.githubusercontent.com/thomaspoignant/go-feature-flag/main/.schema/flag-schema.json" + }, + { + "name": "Goreleaser", + "description": "Goreleaser configuration file", + "fileMatch": [ + ".goreleaser.yml", + ".goreleaser.yaml", + "goreleaser.yml", + "goreleaser.yaml" + ], + "url": "https://goreleaser.com/static/schema.json" + }, + { + "name": "Goreleaser Pro", + "description": "Goreleaser Pro configuration file", + "url": "https://goreleaser.com/static/schema-pro.json" + }, + { + "name": "Goss", + "description": "Goss - Quick and Easy server validation", + "fileMatch": ["goss.yaml", "goss.yml", "goss.json"], + "url": "https://github.com/goss-org/goss/raw/master/docs/schema.yaml" + }, + { + "name": "Grafana 5.x Dashboard", + "description": "Grafana 5.x Dashboards", + "url": "https://www.schemastore.org/grafana-dashboard-5.x.json" + }, + { + "name": "tree-sitter grammar.json", + "description": "tree-sitter grammar.json", + "fileMatch": ["grammar.json"], + "url": "https://raw.githubusercontent.com/tree-sitter/tree-sitter/master/docs/assets/schemas/config.schema.json" + }, + { + "name": "Treefmt", + "description": "Treefmt configuration file", + "fileMatch": ["treefmt.toml"], + "url": "https://www.schemastore.org/treefmt.json" + }, + { + "name": "GraphQL Mesh", + "description": "GraphQL Mesh config file", + "fileMatch": [ + ".meshrc.yml", + ".meshrc.yaml", + ".meshrc.json", + ".graphql-mesh.yaml", + ".graphql-mesh.yml" + ], + "url": "https://unpkg.com/@graphql-mesh/types/esm/config-schema.json" + }, + { + "name": "GraphQL Config", + "description": "GraphQL Config config file", + "fileMatch": [ + "graphql.config.json", + "graphql.config.yaml", + "graphql.config.yml", + ".graphqlrc", + ".graphqlrc.json", + ".graphqlrc.yaml", + ".graphqlrc.yml" + ], + "url": "https://unpkg.com/graphql-config/config-schema.json" + }, + { + "name": "GraphQL Code Generator", + "description": "GraphQL Code Generator config file", + "fileMatch": [ + "codegen.yml", + "codegen.yaml", + "codegen.json", + ".codegen.yml", + ".codegen.yaml", + ".codegen.json" + ], + "url": "https://www.graphql-code-generator.com/config.schema.json" + }, + { + "name": "GroovyLint configuration", + "description": "Rules to apply with npm-groovy-lint tool", + "fileMatch": [ + ".groovylintrc.json", + ".groovylintrc.js", + ".groovylintrc.cjs", + ".groovylintrc.yml", + ".groovylintrc.yaml", + ".groovylintrc" + ], + "url": "https://raw.githubusercontent.com/nvuillam/npm-groovy-lint/refs/heads/main/docs/groovy-lint.jsonschema.json" + }, + { + "name": "Grunt copy task", + "description": "Grunt copy task configuration file", + "fileMatch": ["copy.json"], + "url": "https://www.schemastore.org/grunt-copy-task.json" + }, + { + "name": "Grunt clean task", + "description": "Grunt clean task configuration file", + "fileMatch": ["clean.json"], + "url": "https://www.schemastore.org/grunt-clean-task.json" + }, + { + "name": "Grunt cssmin task", + "description": "Grunt cssmin task configuration file", + "fileMatch": ["cssmin.json"], + "url": "https://www.schemastore.org/grunt-cssmin-task.json" + }, + { + "name": "Grunt JSHint task", + "description": "Grunt JSHint task configuration file", + "fileMatch": ["jshint.json"], + "url": "https://www.schemastore.org/grunt-jshint-task.json" + }, + { + "name": "Grunt Watch task", + "description": "Grunt Watch task configuration file", + "fileMatch": ["watch.json"], + "url": "https://www.schemastore.org/grunt-watch-task.json" + }, + { + "name": "Grunt base task", + "description": "standard Grunt tasks", + "fileMatch": ["**/grunt/*.json", "*-tasks.json"], + "url": "https://www.schemastore.org/grunt-task.json" + }, + { + "name": "HashiCorp Vault", + "description": "HashiCorp's Vault configuration file", + "fileMatch": ["vault.json", "vault.config.json"], + "url": "https://www.schemastore.org/vault.json" + }, + { + "name": "haxelib.json", + "description": "Haxelib manifest", + "fileMatch": ["haxelib.json"], + "url": "https://raw.githubusercontent.com/HaxeFoundation/haxelib/master/schema.json" + }, + { + "name": "Hayson", + "description": "Project Haystack data", + "fileMatch": ["*.hayson.json", "*.hayson.yaml", "*.hayson.yml"], + "url": "https://raw.githubusercontent.com/j2inn/hayson/master/hayson-json-schema.json" + }, + { + "name": "Haystack Pipeline", + "description": "Haystack Pipeline YAML file describing the nodes of the pipelines. Documentation: https://haystack.deepset.ai/components/pipelines#yaml-file-definitions", + "fileMatch": ["*.haystack-pipeline.yml"], + "url": "https://raw.githubusercontent.com/deepset-ai/haystack-json-schema/main/json-schema/haystack-pipeline.schema.json" + }, + { + "name": "Hazelcast 5 Configuration", + "description": "YAML configuring Hazelcast 5 Platform (member and client)", + "fileMatch": [ + "hazelcast*.yaml", + "hazelcast*.json", + "hz-*.yaml", + "hz-*.json" + ], + "url": "https://hazelcast.com/schema/config/hazelcast-config-5.7.json" + }, + { + "name": "Home Assistant Integration Manifest", + "description": "Home Assistant integration manifest file. Documentation: https://developers.home-assistant.io/docs/creating_integration_manifest/", + "fileMatch": [ + "**/homeassistant/components/*/manifest.json", + "**/custom_components/*/manifest.json" + ], + "url": "https://raw.githubusercontent.com/home-assistant/core/refs/heads/dev/script/json_schemas/manifest_schema.json" + }, + { + "name": "Homer dashboard configuration", + "description": "Home dashboard configuration file. Documentation: https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/bastienwirtz/homer/main/.schema/config-schema.json" + }, + { + "name": "host.json", + "description": "Azure Functions host.json files", + "fileMatch": ["host.json"], + "url": "https://www.schemastore.org/host.json" + }, + { + "name": "host-meta.json", + "description": "host-meta JDR files", + "fileMatch": ["host-meta.json"], + "url": "https://www.schemastore.org/host-meta.json" + }, + { + "name": ".htmlhintrc", + "description": "HTML Hint configuration file", + "fileMatch": [".htmlhintrc"], + "url": "https://www.schemastore.org/htmlhint.json" + }, + { + "name": ".htmlvalidate", + "description": "HTML-validate is an offline HTML5 validator", + "fileMatch": [".htmlvalidate.json"], + "url": "https://html-validate.org/schemas/config.json" + }, + { + "name": "Ory Hydra configuration", + "description": "Ory Hydra configuration file", + "fileMatch": ["hydra.json", "hydra.yml", "hydra.yaml", "hydra.toml"], + "url": "https://raw.githubusercontent.com/ory/hydra/master/.schema/version.schema.json" + }, + { + "name": "Hyperfoil benchmark configuration", + "description": "Benchmark definition format for the Hyperfoil HTTP benchmark framework", + "fileMatch": ["*.hf.yaml"], + "url": "https://hyperfoil.io/schema.json" + }, + { + "name": "Hulak Configuration", + "description": "Hulak API client configuration file", + "fileMatch": ["**/*.hk.yaml", "**/*.hk.yml", "**/*.hk.json"], + "url": "https://raw.githubusercontent.com/xaaha/hulak/refs/heads/main/assets/schema.json" + }, + { + "name": "IBM Zapp document", + "description": "IBM Z APPlication configuration file for IBM zDevOps development tools such as Z Open Editor", + "fileMatch": ["zapp.yaml", "zapp.yml", "zapp.json"], + "url": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.8.0.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.0.0.json", + "1.1.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.1.0.json", + "1.2.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.2.0.json", + "1.2.1": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.2.1.json", + "1.3.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.3.0.json", + "1.4.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.4.0.json", + "1.5.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.5.0.json", + "1.6.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.6.0.json", + "1.7.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.7.0.json", + "1.8.0": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zapp/zapp-schema-1.8.0.json" + } + }, + { + "name": "IBM zCodeFormatSettings", + "description": "IBM Enterprise languages code formatter settings file for IBM zDevOps development tools such as Z Open Editor", + "fileMatch": ["zcodeformat.yaml", "zcodeformat.json"], + "url": "https://raw.githubusercontent.com/IBM/zopeneditor-about/main/zcodeformat/zcodeformat-schema-0.0.1.json" + }, + { + "name": "ide.host.json", + "description": "IDE template host file", + "fileMatch": ["ide.host.json"], + "url": "https://www.schemastore.org/ide.host.json" + }, + { + "name": "ifstate.yaml", + "description": "IfState configuration file", + "fileMatch": ["ifstate.yaml", "**/ifstate/config.yml"], + "url": "https://ifstate.net/schema/2/ifstate.conf.schema.json", + "versions": { + "0.6": "https://ifstate.net/schema/0.6/ifstate.conf.schema.json", + "0.7": "https://ifstate.net/schema/0.7/ifstate.conf.schema.json", + "0.8": "https://ifstate.net/schema/0.8/ifstate.conf.schema.json", + "0.9": "https://ifstate.net/schema/0.9/ifstate.conf.schema.json", + "1.0": "https://ifstate.net/schema/1.0/ifstate.conf.schema.json", + "1.1": "https://ifstate.net/schema/1.1/ifstate.conf.schema.json", + "1.2": "https://ifstate.net/schema/1.2/ifstate.conf.schema.json", + "1.3": "https://ifstate.net/schema/1.3/ifstate.conf.schema.json", + "1.4": "https://ifstate.net/schema/1.4/ifstate.conf.schema.json", + "1.5": "https://ifstate.net/schema/1.5/ifstate.conf.schema.json", + "1.6": "https://ifstate.net/schema/1.6/ifstate.conf.schema.json", + "1.7": "https://ifstate.net/schema/1.7/ifstate.conf.schema.json", + "1.8": "https://ifstate.net/schema/1.8/ifstate.conf.schema.json", + "1.9": "https://ifstate.net/schema/1.9/ifstate.conf.schema.json", + "1.10": "https://ifstate.net/schema/1.10/ifstate.conf.schema.json", + "1.11": "https://ifstate.net/schema/1.11/ifstate.conf.schema.json", + "1.12": "https://ifstate.net/schema/1.12/ifstate.conf.schema.json", + "1.13": "https://ifstate.net/schema/1.13/ifstate.conf.schema.json", + "2.0": "https://ifstate.net/schema/2.0/ifstate.conf.schema.json", + "2.1": "https://ifstate.net/schema/2.1/ifstate.conf.schema.json" + } + }, + { + "name": "imageoptimizer.json", + "description": "imageoptimizer.json files", + "fileMatch": ["imageoptimizer.json"], + "url": "https://www.schemastore.org/imageoptimizer.json" + }, + { + "name": ".imgbotconfig", + "description": "Imgbot Configuration Files", + "fileMatch": [".imgbotconfig"], + "url": "https://www.schemastore.org/imgbotconfig.json" + }, + { + "name": "IMG Catapult PSP", + "description": "Imagination Technologies Catapult platform support pack contents", + "fileMatch": ["contents.yaml"], + "url": "https://www.schemastore.org/img-catapult-psp-1.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/img-catapult-psp-1.0.0.json" + } + }, + { + "name": "importmap.json", + "description": "Import Maps files", + "fileMatch": ["importmap.json", "import_map.json", "import-map.json"], + "url": "https://www.schemastore.org/importmap.json" + }, + { + "name": "Infrahub", + "description": "Repository config definition for Infrahub by OpsMill", + "fileMatch": [".infrahub.yml", ".infrahub.yaml"], + "url": "https://schema.infrahub.app/python-sdk/repository-config/latest.json" + }, + { + "name": "instant_python_config", + "description": "Instant Python Configuration", + "fileMatch": ["ipy.yml"], + "url": "https://raw.githubusercontent.com/instant-python/instant-python/main/schemas/ipy-schemas.json" + }, + { + "name": "instant_python_custom_project", + "description": "Instant Python Custom Project Structure", + "fileMatch": ["main_structure.yml"], + "url": "https://raw.githubusercontent.com/instant-python/instant-python/main/schemas/main-structure-schema.json" + }, + { + "name": "ioBroker Configuration", + "description": "The configuration file of an ioBroker installation", + "fileMatch": ["iobroker.json", "iobroker-dist.json"], + "url": "https://raw.githubusercontent.com/ioBroker/ioBroker.js-controller/master/schemas/iobroker.json" + }, + { + "name": "ioBroker JSON UI", + "description": "ioBroker JSON-based admin user interfaces - config, custom and tabs", + "fileMatch": ["jsonConfig.json", "jsonCustom.json", "jsonTab.json"], + "url": "https://raw.githubusercontent.com/ioBroker/json-config/main/schemas/jsonConfig.json" + }, + { + "name": "ioBroker Package manifest", + "description": "ioBroker adapters io-package file", + "fileMatch": ["io-package.json"], + "url": "https://raw.githubusercontent.com/ioBroker/ioBroker.js-controller/master/schemas/io-package.json" + }, + { + "name": "ixpect.conf.yaml", + "description": "IXpect configuration file", + "fileMatch": ["ixpect.conf.yaml"], + "url": "https://ixpect.net/0.1/schema/ixpect.conf.schema.json", + "versions": { + "0.1": "https://ixpect.net/0.1/schema/ixpect.conf.schema.json" + } + }, + { + "name": "Jasmine", + "description": "jasmine JSON config file", + "fileMatch": ["jasmine.json"], + "url": "https://www.schemastore.org/jasmine.json" + }, + { + "name": "Jekyll", + "description": "Jekyll static site generator config file", + "fileMatch": ["_config.yml"], + "url": "https://www.schemastore.org/jekyll.json" + }, + { + "name": "Jenkins X Pipelines", + "description": "Jenkins X Pipeline YAML configuration files", + "fileMatch": ["jenkins-x*.yml"], + "url": "https://jenkins-x.io/schemas/jx-schema.json" + }, + { + "name": "Jenkins X Requirements", + "description": "Jenkins X Requirements YAML configuration file", + "fileMatch": ["jx-requirements.yml"], + "url": "https://jenkins-x.io/schemas/jx-requirements.json" + }, + { + "name": "Jest", + "description": "A JavaScript Testing Framework", + "fileMatch": ["jest.config.json"], + "url": "https://www.schemastore.org/jest.json" + }, + { + "name": "JDownloader2 crawler single-rules", + "description": "A validating a single jdownloader2 rule", + "fileMatch": ["*.jd2cr", "*.jd2cr.json"], + "url": "https://raw.githubusercontent.com/sergxerj/jdownloader2-crawler-rule-json-schema/main/jd2cr.schema.json" + }, + { + "name": "JDownloader2 crawler multi-rules", + "description": "A validating an array of jdownloader2 rules", + "fileMatch": ["*.jd2mcr", "*.jd2mcr.json", "*.linkcrawlerrules.json"], + "url": "https://raw.githubusercontent.com/sergxerj/jdownloader2-crawler-rule-json-schema/main/jd2mcr.schema.json" + }, + { + "name": "JFrog Applications Config", + "description": "Refines JFrog Advanced Security scans behavior", + "fileMatch": ["jfrog-apps-config.yml"], + "url": "https://raw.githubusercontent.com/jfrog/jfrog-apps-config/main/schema.json" + }, + { + "name": "JFrog File Spec", + "description": "JFrog File Spec", + "fileMatch": ["**/filespecs/*.json", "*filespec*.json", "*.filespec"], + "url": "https://raw.githubusercontent.com/jfrog/jfrog-cli/v2/schema/filespec-schema.json" + }, + { + "name": "JMeter DSL cli config", + "description": "jmdsl JMeter DSL command line configuration file", + "fileMatch": ["*.jmdsl.yml", "*.jmdsl.yaml", "*.jmdsl.json"], + "url": "https://github.com/abstracta/jmeter-java-dsl/releases/latest/download/jmdsl-config-schema.json" + }, + { + "name": "Jocker", + "description": "Rust mono-repo binaries runner", + "fileMatch": [ + "jocker.yml", + "jocker.yaml", + "jocker.override.yml", + "jocker.override.yaml" + ], + "url": "https://raw.githubusercontent.com/Wykiki/jocker/main/schema.json" + }, + { + "name": "Jovo Language Models", + "description": "Jovo language Models. Documentation: https://www.jovo.tech/docs/model", + "url": "https://www.schemastore.org/jovo-language-model.json" + }, + { + "name": "JReleaser", + "description": "JReleaser config file", + "fileMatch": ["jreleaser.yml", "jreleaser.json"], + "url": "https://www.schemastore.org/jreleaser-1.24.0.json", + "versions": { + "1.24.0": "https://www.schemastore.org/jreleaser-1.24.0.json", + "1.23.0": "https://www.schemastore.org/jreleaser-1.23.0.json", + "1.22.0": "https://www.schemastore.org/jreleaser-1.22.0.json", + "1.21.0": "https://www.schemastore.org/jreleaser-1.21.0.json", + "1.20.0": "https://www.schemastore.org/jreleaser-1.20.0.json", + "1.19.0": "https://www.schemastore.org/jreleaser-1.19.0.json", + "1.18.0": "https://www.schemastore.org/jreleaser-1.18.0.json", + "1.17.0": "https://www.schemastore.org/jreleaser-1.17.0.json", + "1.16.0": "https://www.schemastore.org/jreleaser-1.16.0.json", + "1.15.0": "https://www.schemastore.org/jreleaser-1.15.0.json", + "1.14.0": "https://www.schemastore.org/jreleaser-1.14.0.json", + "1.13.1": "https://www.schemastore.org/jreleaser-1.13.1.json", + "1.13.0": "https://www.schemastore.org/jreleaser-1.13.0.json", + "1.12.0": "https://www.schemastore.org/jreleaser-1.12.0.json", + "1.11.0": "https://www.schemastore.org/jreleaser-1.11.0.json", + "1.10.0": "https://www.schemastore.org/jreleaser-1.10.0.json", + "1.9.0": "https://www.schemastore.org/jreleaser-1.9.0.json", + "1.8.0": "https://www.schemastore.org/jreleaser-1.8.0.json", + "1.7.0": "https://www.schemastore.org/jreleaser-1.7.0.json", + "1.6.0": "https://www.schemastore.org/jreleaser-1.6.0.json" + } + }, + { + "name": "JSR Package Config (jsr.json)", + "description": "JSR package configuration file", + "fileMatch": ["jsr.json", "jsr.jsonc"], + "url": "https://jsr.io/schema/config-file.v1.json" + }, + { + "name": ".jsbeautifyrc", + "description": "js-beautify configuration file", + "fileMatch": [".jsbeautifyrc"], + "url": "https://www.schemastore.org/jsbeautifyrc.json" + }, + { + "name": ".jsbeautifyrc-nested", + "description": "js-beautify configuration file allowing nested `js`, `css`, and `html` attributes", + "fileMatch": [".jsbeautifyrc"], + "url": "https://www.schemastore.org/jsbeautifyrc-nested.json" + }, + { + "name": ".jscsrc", + "description": "JSCS configuration file", + "fileMatch": [".jscsrc", "jscsrc.json"], + "url": "https://www.schemastore.org/jscsrc.json" + }, + { + "name": ".jshintrc", + "description": "JSHint configuration file", + "fileMatch": [".jshintrc"], + "url": "https://www.schemastore.org/jshintrc.json" + }, + { + "name": ".jsinspectrc", + "description": "JSInspect configuration file", + "fileMatch": [".jsinspectrc"], + "url": "https://www.schemastore.org/jsinspectrc.json" + }, + { + "name": "JSON-API", + "description": "JSON API document", + "url": "https://jsonapi.org/schema" + }, + { + "name": "JSON Document Transform", + "description": "JSON Document Transform", + "url": "https://www.schemastore.org/jdt.json" + }, + { + "name": "JSON Feed", + "description": "the JSON Feed format", + "fileMatch": ["feed.json"], + "url": "https://www.schemastore.org/feed.json", + "versions": { + "1": "https://www.schemastore.org/feed-1.json", + "1.1": "https://www.schemastore.org/feed.json" + } + }, + { + "name": "*.jsonld", + "description": "JSON Linked Data files", + "fileMatch": ["*.jsonld"], + "url": "https://www.schemastore.org/jsonld.json" + }, + { + "name": "JSONPatch", + "description": "JSONPatch files", + "fileMatch": ["*.patch", "*.patch.json", "*.patch.yml", "*.patch.yaml"], + "url": "https://www.schemastore.org/json-patch.json" + }, + { + "name": "jsconfig.json", + "description": "JavaScript project configuration file", + "fileMatch": ["jsconfig.json"], + "url": "https://www.schemastore.org/jsconfig.json" + }, + { + "name": "k3d.yaml", + "description": "k3d configuration file", + "fileMatch": [ + "k3d.yaml", + "k3d.yml", + ".k3d.yml", + ".k3d.yaml", + "*.k3d.yaml", + "*.k3d.yml" + ], + "url": "https://raw.githubusercontent.com/rancher/k3d/main/pkg/config/config.versions.schema.json" + }, + { + "name": "Kas", + "description": "Configuration for the Kas setup tool", + "url": "https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json" + }, + { + "name": "k9s aliases.yaml", + "description": "k9s CLI aliases.yaml file. Documentation: https://k9scli.io/topics/aliases", + "fileMatch": ["**/k9s/aliases.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/aliases.json" + }, + { + "name": "k9s config.yaml", + "description": "k9s CLI config.yaml file. Documentation: https://k9scli.io/topics/config", + "fileMatch": ["**/k9s/config.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/k9s.json" + }, + { + "name": "k9s cluster-config.yaml", + "description": "k9s CLI cluster-config.yaml file. Documentation: https://k9scli.io/topics/config", + "fileMatch": ["**/k9s/clusters/*/*/config.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/context.json" + }, + { + "name": "k9s hotkeys.yaml", + "description": "k9s CLI hotkeys.yaml file. Documentation: https://k9scli.io/topics/hotkeys", + "fileMatch": ["**/k9s/hotkeys.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/hotkeys.json" + }, + { + "name": "k9s plugins.yaml", + "description": "k9s CLI plugins.yaml file. Documentation: https://k9scli.io/topics/plugins", + "fileMatch": ["**/k9s/plugins.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/plugins.json" + }, + { + "name": "k9s skin.yaml", + "description": "k9s CLI skin.yaml file. Documentation: https://k9scli.io/topics/skins", + "fileMatch": ["**/k9s/skins/*.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/skin.json" + }, + { + "name": "k9s views.yaml", + "description": "k9s CLI views.yaml file. Documentation: https://k9scli.io/topics/columns", + "fileMatch": ["**/k9s/views.yaml"], + "url": "https://raw.githubusercontent.com/derailed/k9s/master/internal/config/json/schemas/views.json" + }, + { + "name": "KIMMDY config file", + "description": "KIMMDY config file, see: graeter-group.github.io/kimmdy", + "fileMatch": ["kimmdy.yml", "kimmdy.yaml"], + "url": "https://raw.githubusercontent.com/graeter-group/kimmdy/main/src/kimmdy/kimmdy-yaml-schema.json" + }, + { + "name": "Kestra flow file", + "description": "Kestra Flow definition file, see: kestra.io/docs/workflow-components/flow#flow-sample", + "fileMatch": ["**/flows/*.yml"], + "url": "https://www.schemastore.org/kestra-0.19.0.json", + "versions": { + "0.18.0": "https://www.schemastore.org/kestra-0.18.0.json", + "0.18.1": "https://www.schemastore.org/kestra-0.18.1.json", + "0.18.2": "https://www.schemastore.org/kestra-0.18.2.json", + "0.18.3": "https://www.schemastore.org/kestra-0.18.3.json", + "0.19.0": "https://www.schemastore.org/kestra-0.19.0.json" + } + }, + { + "name": "Kometa config file", + "description": "Kometa (formerly Plex Meta Manager or PMM) configuration file for stable versions", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/kometa-team/kometa/master/json-schema/config-schema.json" + }, + { + "name": "Kometa (nightly) config file", + "description": "Kometa (formerly Plex Meta Manager or PMM) configuration file for nightly versions", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/kometa-team/kometa/nightly/json-schema/config-schema.json" + }, + { + "name": "KrakenD", + "description": "KrakenD API Gateway configuration file", + "fileMatch": [ + "krakend.yaml", + "krakend.yml", + "krakend.json", + "krakend.toml" + ], + "url": "https://www.krakend.io/schema/krakend.json" + }, + { + "name": "Datadog Continuous Testing", + "description": "Datadog Continuous Testing Configuration file", + "fileMatch": ["*.synthetics.json"], + "url": "https://raw.githubusercontent.com/DataDog/schema/main/datadog-ci/synthetics/test-config.schema.json" + }, + { + "name": "Datadog Service Definition", + "description": "Datadog Service Definition file", + "fileMatch": [ + "service.datadog.yaml", + "service.datadog.yml", + "service.datadog.json" + ], + "url": "https://raw.githubusercontent.com/DataDog/schema/main/service-catalog/service.schema.json" + }, + { + "name": "Datadog Software Catalog", + "description": "Datadog Software Catalog Definition file", + "fileMatch": [ + "entity.datadog.yaml", + "entity.datadog.yml", + "entity.datadog.json" + ], + "url": "https://raw.githubusercontent.com/DataDog/schema/main/service-catalog/entity.schema.json" + }, + { + "name": "Ory Keto configuration", + "description": "Ory Keto configuration file", + "fileMatch": ["keto.json", "keto.yml", "keto.yaml", "keto.toml"], + "url": "https://raw.githubusercontent.com/ory/keto/master/.schema/version.schema.json" + }, + { + "name": "Knowledge Unit", + "description": "Verified knowledge artifact produced through multi-model deliberation (IETF Internet-Draft: draft-farley-acta-knowledge-units)", + "fileMatch": ["ku-*.json", "knowledge-unit.json", "**/ku/*.json"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/knowledge-unit.json" + }, + { + "name": "kontinuous-values.yaml", + "description": "Kontinuous values.yaml configuration files", + "fileMatch": [ + "**/.kontinuous/values.yaml", + "**/.kontinuous/env/*/values.yaml" + ], + "url": "https://raw.githubusercontent.com/socialgouv/kontinuous/v1/docs/values.schema.json" + }, + { + "name": "kontinuous-config.yaml", + "description": "Kontinuous config.yaml configuration files", + "fileMatch": ["**/.kontinuous/config.yaml"], + "url": "https://raw.githubusercontent.com/socialgouv/kontinuous/v1/docs/config.schema.json" + }, + { + "name": "Kubri Configuration", + "description": "Kubri configuration file", + "fileMatch": [".kubri.yaml", ".kubri.yml", "kubri.yaml", "kubri.yml"], + "url": "https://kubri.dev/schema.json" + }, + { + "name": "kustomization.yaml", + "description": "Kubernetes native configuration management", + "fileMatch": ["kustomization.yaml", "kustomization.yml"], + "url": "https://www.schemastore.org/kustomization.json" + }, + { + "name": "label-commenter-config.yml", + "description": "A the configuration of the Label Commenter GitHub Action", + "fileMatch": ["**/.github/label-commenter-config.yml"], + "url": "https://www.schemastore.org/label-commenter-config.json" + }, + { + "name": "launchsettings.json", + "description": "A the ASP.NET LaunchSettings.json files", + "fileMatch": ["launchsettings.json"], + "url": "https://www.schemastore.org/launchsettings.json" + }, + { + "name": "Lefthook", + "description": "Fast and powerful Git hooks manager", + "fileMatch": [ + ".lefthook.json", + ".lefthook.jsonc", + ".lefthook.toml", + ".lefthook.yaml", + ".lefthook.yml", + ".lefthook-local.json", + ".lefthook-local.jsonc", + ".lefthook-local.toml", + ".lefthook-local.yaml", + ".lefthook-local.yml", + "lefthook.json", + "lefthook.jsonc", + "lefthook.toml", + "lefthook.yaml", + "lefthook.yml", + "lefthook-local.json", + "lefthook-local.jsonc", + "lefthook-local.toml", + "lefthook-local.yaml", + "lefthook-local.yml" + ], + "url": "https://raw.githubusercontent.com/evilmartians/lefthook/master/schema.json" + }, + { + "name": "lego.json", + "description": "Config file for the lego-build CLI tool", + "fileMatch": ["lego.json"], + "url": "https://www.schemastore.org/lego.json", + "versions": { + "1.0": "https://www.schemastore.org/lego.json" + } + }, + { + "name": "lerna.json", + "description": "A lerna.json files", + "fileMatch": ["lerna.json"], + "url": "https://www.schemastore.org/lerna.json" + }, + { + "name": "lgtm.yml", + "description": "A lgtm configuration files", + "fileMatch": ["lgtm.yml", ".lgtm.yml"], + "url": "https://www.schemastore.org/lgtm.json" + }, + { + "name": "liblab.config.json", + "description": "Liblab configuration file", + "fileMatch": ["liblab.config.json", "*.liblab.config.json"], + "url": "https://cdn.jsdelivr.net/npm/liblab@latest/liblab.config.schema.json" + }, + { + "name": "libman.json", + "description": "client-side library config files", + "fileMatch": ["libman.json"], + "url": "https://www.schemastore.org/libman.json" + }, + { + "name": "license-report-config.json", + "description": "license report tool configuration file", + "fileMatch": ["license-report-config.json"], + "url": "https://www.schemastore.org/license-report-config.json" + }, + { + "name": "Liferay client-extension.yaml", + "description": "Liferay Client Extension Definition File", + "fileMatch": ["client-extension.yaml"], + "url": "https://raw.githubusercontent.com/liferay/liferay-portal/master/modules/sdk/gradle-plugins-workspace/src/main/resources/schemas/client-extension.schema.json" + }, + { + "name": "linkinator.config.json", + "description": "Linkinator config file", + "fileMatch": ["linkinator.config.json"], + "url": "https://www.schemastore.org/linkinator-config.json" + }, + { + "name": "LinkML Metamodel", + "description": "LinkML metamodel file", + "fileMatch": [], + "url": "https://w3id.org/linkml/meta.schema.json" + }, + { + "name": "Lively Properties", + "description": "Lively Wallpaper configuration file. Documentation: https://github.com/rocksdanister/lively/wiki/Web-Guide-IV-:-Interaction#lively-properties", + "fileMatch": ["LivelyProperties.json"], + "url": "https://raw.githubusercontent.com/rocksdanister/lively/core-separation/schemas/livelyPropertiesSchema.json" + }, + { + "name": "LOOBin", + "description": "LOOBins macOS binaries. Documentation: https://github.com/infosecB/LOOBins", + "fileMatch": ["**/LOOBins/*.yml"], + "url": "https://www.schemastore.org/loobin-1.0.json" + }, + { + "name": "lotus.yaml", + "description": "The configuration file used for Lotus definitions", + "fileMatch": ["lotus.yaml"], + "url": "https://grnhse-vpc-assets.s3.amazonaws.com/jsonschemas/lotus.yaml.json" + }, + { + "name": "local.settings.json", + "description": "Azure Functions local.settings.json files", + "fileMatch": ["local.settings.json"], + "url": "https://www.schemastore.org/local.settings.json" + }, + { + "name": "localazy.json", + "description": "Localazy CLI configuration file. Documentation: https://localazy.com/docs/cli", + "fileMatch": ["localazy.json"], + "url": "https://raw.githubusercontent.com/localazy/cli-schema/master/localazy.json" + }, + { + "name": "lsdlschema.json", + "description": "Power BI linguistic schema definition", + "fileMatch": ["*.lsdl.yaml", "*.lsdl.json"], + "url": "https://www.schemastore.org/lsdlschema.json" + }, + { + "name": ".luaurc", + "description": "Luau language configuration file", + "fileMatch": [".luaurc"], + "url": "https://www.schemastore.org/luaurc.json" + }, + { + "name": "Mado configuration", + "description": "Mado markdown linter configuration file", + "fileMatch": [".mado.toml", "mado.toml"], + "url": "https://raw.githubusercontent.com/akiomik/mado/refs/heads/main/pkg/json-schema/mado.json" + }, + { + "name": "Maestro Flow", + "description": "Maestro mobile and web UI test flow (YAML)", + "fileMatch": [ + "**/.maestro/**/*.yaml", + "**/.maestro/**/*.yml", + "**/*.flow.yaml", + "**/*.flow.yml" + ], + "url": "https://www.schemastore.org/maestro-flow.json" + }, + { + "name": "MapEHR Mapping", + "description": "Mapping for MapEHR.com", + "fileMatch": [".map.yml", ".map.yaml", ".map.json"], + "url": "https://www.schemastore.org/mapehr.json" + }, + { + "name": "A micro editor config", + "description": "A micro editor config", + "fileMatch": ["**/micro/settings.json"], + "url": "https://www.schemastore.org/micro.json" + }, + { + "name": "MegaLinter configuration", + "description": "Mega-Linter configuration file (for Mega-Linter users)", + "fileMatch": [ + ".mega-linter.yml", + ".megalinter.yml", + "*.mega-linter-config.yml", + "*.megalinter-config.yml" + ], + "url": "https://raw.githubusercontent.com/megalinter/megalinter/main/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json" + }, + { + "name": "MegaLinter Custom Flavor", + "description": "MegaLinter Custom Flavor definition file", + "fileMatch": ["megalinter-custom-flavor.yml"], + "url": "https://raw.githubusercontent.com/megalinter/megalinter/main/megalinter/descriptors/schemas/megalinter-custom-flavor.jsonschema.json" + }, + { + "name": "MegaLinter descriptor", + "description": "MegaLinter descriptor files (for MegaLinter contributors)", + "fileMatch": ["*.megalinter-descriptor.yml"], + "url": "https://raw.githubusercontent.com/megalinter/megalinter/main/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json" + }, + { + "name": "Meltano project definition", + "description": "Meltano project definition files", + "fileMatch": [ + "*meltano.yml", + "meltano-manifest.json", + "meltano-manifest.*.json" + ], + "url": "https://raw.githubusercontent.com/meltano/meltano/main/src/meltano/schemas/meltano.schema.json" + }, + { + "name": "Metadata for a Bazel module", + "description": "Metadata file for a Bazel module", + "fileMatch": ["**/modules/*/metadata.json"], + "url": "https://raw.githubusercontent.com/bazelbuild/bazel-central-registry/main/metadata.schema.json" + }, + { + "name": "Metatype Configuration", + "description": "Metatype configuration file", + "fileMatch": ["metatype.yml", "metatype.yaml"], + "url": "https://raw.githubusercontent.com/metatypedev/metatype/main/tools/schema/metatype.json" + }, + { + "name": "MetricsHub Configuration", + "description": "MetricsHub configuration file", + "fileMatch": ["*metricshub.yaml", "*metricshub.yml"], + "url": "https://www.schemastore.org/metricshub.json" + }, + { + "name": "MetricsHub Connector Configuration", + "description": "MetricsHub connector configuration file", + "fileMatch": [ + "**/metricshub/connectors/**/*.yaml", + "**/metricshub/connectors/**/*.yml", + "**/hardware-connectors/**/*.yaml", + "**/hardware-connectors/**/*.yml", + "**/metricshub-community-connectors/**/*.yaml", + "**/metricshub-community-connectors/**/*.yml" + ], + "url": "https://www.schemastore.org/metricshub-connector.json" + }, + { + "name": "Microsoft Band Web Tile", + "description": "Microsoft Band Web Tile manifest file", + "url": "https://www.schemastore.org/band-manifest.json" + }, + { + "name": "mimetypes.json", + "description": "mime type collections", + "fileMatch": ["mimetypes.json"], + "url": "https://www.schemastore.org/mimetypes.json" + }, + { + "name": "Minecraft Data Pack Advancement", + "description": "Configuration file defining an advancement for a data pack for Minecraft", + "fileMatch": ["**/data/*/advancements/*.json"], + "url": "https://www.schemastore.org/minecraft-advancement.json" + }, + { + "name": "Minecraft Data Pack Biome", + "description": "Configuration file defining a biome for a data pack for Minecraft", + "fileMatch": ["**/data/*/worldgen/biome/*.json"], + "url": "https://www.schemastore.org/minecraft-biome.json" + }, + { + "name": "Minecraft Data Pack Configured Carver", + "description": "Configuration file defining a configured carver for a data pack for Minecraft", + "fileMatch": ["**/data/*/worldgen/configured_carver/*.json"], + "url": "https://www.schemastore.org/minecraft-configured-carver.json" + }, + { + "name": "Minecraft Data Pack Damage Type", + "description": "Configuration file defining a damage type for a data pack for Minecraft", + "fileMatch": ["**/data/*/damage_type/*.json"], + "url": "https://www.schemastore.org/minecraft-damage-type.json" + }, + { + "name": "Minecraft Data Pack Dimension Type", + "description": "Configuration file defining a dimension type for a data pack for Minecraft", + "fileMatch": ["**/data/*/dimension_type/*.json"], + "url": "https://www.schemastore.org/minecraft-dimension-type.json" + }, + { + "name": "Minecraft Data Pack Dimension", + "description": "Configuration file defining a dimension for a data pack for Minecraft", + "fileMatch": ["**/data/*/dimension/*.json"], + "url": "https://www.schemastore.org/minecraft-dimension.json" + }, + { + "name": "Minecraft Data Pack Item Modifier", + "description": "Configuration file defining an item modifier for a data pack for Minecraft", + "fileMatch": ["**/data/*/item_modifiers/*.json"], + "url": "https://www.schemastore.org/minecraft-item-modifier.json" + }, + { + "name": "Minecraft Data Pack Loot Table", + "description": "Configuration file defining a loot table for a data pack for Minecraft", + "fileMatch": ["**/data/*/loot_tables/**/*.json"], + "url": "https://www.schemastore.org/minecraft-loot-table.json" + }, + { + "name": "Minecraft Data Pack Metadata", + "description": "Configuration file defining the metadata of a data pack for Minecraft", + "fileMatch": ["**/pack.mcmeta"], + "url": "https://www.schemastore.org/minecraft-pack-mcmeta.json" + }, + { + "name": "Minecraft Data Pack Predicate", + "description": "Configuration file defining a predicate for a data pack for Minecraft", + "fileMatch": ["**/data/*/predicates/*.json"], + "url": "https://www.schemastore.org/minecraft-predicate.json" + }, + { + "name": "Minecraft Data Pack Recipe", + "description": "Configuration file defining a recipe for a data pack for Minecraft", + "fileMatch": ["**/data/*/recipes/*.json"], + "url": "https://www.schemastore.org/minecraft-recipe.json" + }, + { + "name": "Minecraft Data Pack Tag", + "description": "Configuration file defining a tag for a data pack for Minecraft", + "fileMatch": ["**/data/*/tags/**/*.json"], + "url": "https://www.schemastore.org/minecraft-tag.json" + }, + { + "name": "Minecraft Data Pack Template Pool", + "description": "Configuration file defining a template pool for a data pack for Minecraft", + "fileMatch": ["**/data/*/worldgen/template_pool/*.json"], + "url": "https://www.schemastore.org/minecraft-template-pool.json" + }, + { + "name": "Minecraft Resource Pack Lang", + "description": "Configuration file defining a language for a resource pack for Minecraft", + "fileMatch": ["**/assets/*/lang/*.json"], + "url": "https://www.schemastore.org/minecraft-lang.json" + }, + { + "name": "Minecraft Resource Pack Particle", + "description": "Configuration file defining a particle for a resource pack for Minecraft", + "fileMatch": ["**/assets/*/particles/*.json"], + "url": "https://www.schemastore.org/minecraft-particle.json" + }, + { + "name": "Minecraft Resourcepack Sounds", + "description": "Configuration file defining what sounds play when sound event is triggered for a resourcepack for Minecraft", + "fileMatch": ["**/assets/*/sounds.json"], + "url": "https://raw.githubusercontent.com/AxoCode/json-schema/master/minecraft/sounds.json" + }, + { + "name": "Minecraft Resource Pack Texture Mcmeta", + "description": "Configuration file defining an mcmeta file for a texture for a resource pack for Minecraft", + "fileMatch": ["**/assets/*/textures/**/*.png.mcmeta"], + "url": "https://www.schemastore.org/minecraft-texture-mcmeta.json" + }, + { + "name": "Minecraft Data Pack Trim Material", + "description": "Configuration file defining a trim material for a data pack for Minecraft", + "fileMatch": ["**/data/*/trim_material/*.json"], + "url": "https://www.schemastore.org/minecraft-trim-material.json" + }, + { + "name": "Minecraft Data Pack Trim Pattern", + "description": "Configuration file defining a trim pattern for a data pack for Minecraft", + "fileMatch": ["**/data/*/trim_pattern/*.json"], + "url": "https://www.schemastore.org/minecraft-trim-pattern.json" + }, + { + "name": "mkdocs.yml", + "description": "MkDocs configuration file", + "fileMatch": ["mkdocs.yml"], + "url": "https://www.schemastore.org/mkdocs-1.6.json", + "versions": { + "1.0": "https://www.schemastore.org/mkdocs-1.0.json", + "1.6": "https://www.schemastore.org/mkdocs-1.6.json" + } + }, + { + "name": "ModuleAssembler", + "description": "ModuleAssembler configuration file", + "fileMatch": ["**/.moduleassembler/moduleproject.json"], + "url": "https://raw.githubusercontent.com/ModuleAssembler/ModuleAssembler-Schema/refs/tags/v1.0.0/schema/moduleassembler.schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/ModuleAssembler/ModuleAssembler-Schema/refs/tags/v1.0.0/schema/moduleassembler.schema.json" + } + }, + { + "name": "mrdocs.yml", + "description": "MrDocs configuration file", + "fileMatch": ["mrdocs.yml"], + "url": "https://raw.githubusercontent.com/cppalliance/mrdocs/refs/heads/master/docs/mrdocs.schema.json" + }, + { + "name": "MLOS Config (*.mlos.jsonc, *.mlos.json5, *.mlos.json)", + "description": "Config files for the mlos_bench utility in MLOS. See Also: https://aka.ms/MLOS", + "fileMatch": ["*.mlos.jsonc", "*.mlos.json5", "*.mlos.json"], + "url": "https://raw.githubusercontent.com/microsoft/MLOS/main/mlos_bench/mlos_bench/config/schemas/mlos-bench-config-schema.json" + }, + { + "name": "mockd.yaml", + "description": "mockd multi-protocol API mock server configuration file. See https://mockd.io", + "fileMatch": [ + "mockd.yaml", + "mockd.yml", + "mockd.json", + ".mockd.yaml", + ".mockd.yml", + ".mockd.json", + "mocks.yaml", + "mocks.yml" + ], + "url": "https://raw.githubusercontent.com/getmockd/mockd/main/schema/mockd.schema.json" + }, + { + "name": "MockServer Expectations", + "description": "MockServer expectations configuration for defining request matchers and response actions. See https://www.mock-server.com", + "fileMatch": [ + "mockserverInitialization.json", + "*mockserver*Initialization.json", + "mockserver*.json" + ], + "url": "https://www.mock-server.com/schema/expectations.json" + }, + { + "name": "monospace.yml", + "description": "MonoSpace configuration file", + "fileMatch": ["monospace.yml"], + "url": "https://raw.githubusercontent.com/software-t-rex/monospace/main/apps/monospace/schemas/monospace.schema.json" + }, + { + "name": "Monoweave Configuration", + "description": "Monoweave configuration file (Yarn package publishing)", + "fileMatch": [ + "monoweave.config.json", + "monoweave.config.jsonc", + "monoweave.config.json5", + "monoweave.config.yaml", + "monoweave.config.yml" + ], + "url": "https://raw.githubusercontent.com/monoweave/monoweave/main/packages/types/schema.json" + }, + { + "name": "MS2Rescore Configuration", + "description": "MS2Rescore configuration file", + "fileMatch": [ + "ms2rescore.json", + "ms2rescore.toml", + ".*-ms2rescore.json", + ".*-ms2rescore.toml", + ".*-ms2rescore-config.json", + ".*-ms2rescore-config.toml" + ], + "url": "https://raw.githubusercontent.com/compomics/ms2rescore/main/ms2rescore/package_data/config_schema.json" + }, + { + "name": "Mergify Configuration", + "description": "Mergify configuration file", + "fileMatch": [ + ".mergify.yml", + "**/.github/mergify.yml", + "**/.mergify/config.yml" + ], + "url": "https://raw.githubusercontent.com/Mergifyio/docs/main/public/mergify-configuration-schema.json" + }, + { + "name": ".mocharc", + "description": "MochaJS configuration files", + "fileMatch": [ + ".mocharc.json", + ".mocharc.jsonc", + ".mocharc.yml", + ".mocharc.yaml" + ], + "url": "https://www.schemastore.org/mocharc.json" + }, + { + "name": ".modernizrrc", + "description": "Webpack modernizr-loader configuration file", + "fileMatch": [".modernizrrc"], + "url": "https://www.schemastore.org/modernizrrc.json" + }, + { + "name": "Monade CLI Stack Configuration", + "description": "The configuration file to get a local stack up and running with Monade CLI", + "fileMatch": ["monade.yaml", "monade.yml", ".monade.yaml", ".monade.yml"], + "url": "https://www.schemastore.org/monade-stack-config.json" + }, + { + "name": "mycode.json", + "description": "mycode.js files", + "fileMatch": ["mycode.json"], + "url": "https://www.schemastore.org/mycode.json" + }, + { + "name": "napari plugin manifest", + "description": "a napari plugin manifest", + "fileMatch": ["napari.yml", "napari.yaml", ".napari.yml", ".napari.yaml"], + "url": "https://github.com/napari/npe2/releases/latest/download/schema.json" + }, + { + "name": "Netlify config", + "description": "Netlify YAML config", + "fileMatch": ["**/admin/config*.yml"], + "url": "https://www.schemastore.org/netlify.json" + }, + { + "name": "Network-as-Code Data Model", + "description": "Cisco Network-as-Code Data Model", + "fileMatch": ["*.nac.yml", "*.nac.yaml", "*.aac.yml", "*.aac.yaml"], + "url": "https://raw.githubusercontent.com/netascode/schema/main/schema.json" + }, + { + "name": "Next Gen UI Agent A2A Server Configuration", + "description": "Next Gen UI Agent A2A Server configuration. Documentation: https://redhat-ux.github.io/next-gen-ui-agent/spec/a2a/#agent-configuration", + "fileMatch": ["ngui-a2a_*.yaml", "ngui-a2a_*.yml", "ngui-a2a_*.json"], + "url": "https://raw.githubusercontent.com/RedHat-UX/next-gen-ui-agent/refs/heads/main/spec/a2a/a2a_agent_config.schema.json" + }, + { + "name": "Next Gen UI Agent MCP Server Configuration", + "description": "Next Gen UI Agent MCP Server configuration. Documentation: https://redhat-ux.github.io/next-gen-ui-agent/spec/mcp/#agent-configuration", + "fileMatch": ["ngui-mcp_*.yaml", "ngui-mcp_*.yml", "ngui-mcp_*.json"], + "url": "https://raw.githubusercontent.com/RedHat-UX/next-gen-ui-agent/refs/heads/main/spec/mcp/mcp_agent_config.schema.json" + }, + { + "name": "Next Gen UI Agent Configuration", + "description": "NextGen UI Agent configuration. Documentation: https://redhat-ux.github.io/next-gen-ui-agent/guide/configuration/", + "fileMatch": ["ngui_*.yaml", "ngui_*.yml", "ngui_*.json"], + "url": "https://raw.githubusercontent.com/RedHat-UX/next-gen-ui-agent/refs/heads/main/spec/config/agent_config.schema.json" + }, + { + "name": "cargo-nextest repository configuration", + "description": "Repository configuration for cargo-nextest. Documentation: https://nexte.st/docs/configuration/", + "fileMatch": ["**/.config/nextest.toml"], + "url": "https://nexte.st/schemas/repo-config.json" + }, + { + "name": "cargo-nextest user configuration", + "description": "User configuration for cargo-nextest. Documentation: https://nexte.st/docs/user-config/", + "fileMatch": ["**/nextest/config.toml"], + "url": "https://nexte.st/schemas/user-config.json" + }, + { + "name": "nFPM", + "description": "nFPM configuration file", + "fileMatch": ["nfpm.yaml"], + "url": "https://nfpm.goreleaser.com/static/schema.json" + }, + { + "name": "Nightwatch.js", + "description": "nightwatch.js config", + "fileMatch": ["nightwatch.json"], + "url": "https://www.schemastore.org/nightwatch.json" + }, + { + "name": "ninjs (News in JSON)", + "description": "A ninjs by the IPTC. News and publishing information. Documentation: https://iptc.org/standards/ninjs/", + "url": "https://www.schemastore.org/ninjs-2.0.json", + "versions": { + "2.0": "https://www.schemastore.org/ninjs-2.0.json", + "1.4": "https://www.schemastore.org/ninjs-1.4.json", + "1.3": "https://www.schemastore.org/ninjs-1.3.json", + "1.2": "https://www.schemastore.org/ninjs-1.2.json", + "1.1": "https://www.schemastore.org/ninjs-1.1.json", + "1.0": "https://www.schemastore.org/ninjs-1.0.json" + } + }, + { + "name": "nest-cli", + "description": "A progressive Node.js framework for building efficient and scalable server-side applications \ud83d\ude80", + "fileMatch": [ + ".nestcli.json", + ".nest-cli.json", + "nest-cli.json", + "nest.json" + ], + "url": "https://www.schemastore.org/nest-cli.json" + }, + { + "name": "nlu.json", + "description": "NPM-Link-Up", + "fileMatch": ["nlu.json", ".nlu.json"], + "url": "https://raw.githubusercontent.com/oresoftware/npm-link-up/master/assets/nlu.schema.json" + }, + { + "name": ".nodehawkrc", + "description": ".nodehawkrc configuration files", + "fileMatch": [".nodehawkrc"], + "url": "https://www.schemastore.org/nodehawkrc.json" + }, + { + "name": "nodemon.json", + "description": "nodemon.json configuration files", + "fileMatch": ["nodemon.json"], + "url": "https://www.schemastore.org/nodemon.json" + }, + { + "name": "notebook.mod.json", + "description": "Metadata file for notebook mods", + "fileMatch": ["notebook.mod.json"], + "url": "https://raw.githubusercontent.com/BookkeepersMC/notebook-schemas/master/notebook.mod.json/schemas/main.json" + }, + { + "name": "NOX Framework (Service)", + "description": "NOX service definition", + "fileMatch": ["service.nox.yaml", "service.nox.yml", "service.nox.json"], + "url": "https://noxorg.dev/schemas/NoxConfiguration.json" + }, + { + "name": ".npmpackagejsonlintrc", + "description": "Configuration file for npm-package-json-lint", + "fileMatch": [ + ".npmpackagejsonlintrc", + "npmpackagejsonlintrc.json", + ".npmpackagejsonlintrc.json" + ], + "url": "https://www.schemastore.org/npmpackagejsonlintrc.json" + }, + { + "name": "npm-badges", + "description": "the NPM package badges", + "url": "https://www.schemastore.org/npm-badges.json" + }, + { + "name": "nuclei-template.yaml", + "description": "Nuclei Template YAML files", + "fileMatch": ["**/nuclei-templates/**/*.yaml"], + "url": "https://raw.githubusercontent.com/projectdiscovery/nuclei/master/nuclei-jsonschema.json" + }, + { + "name": "nuget-project.json", + "description": "NuGet project.json files", + "url": "https://www.schemastore.org/nuget-project.json", + "versions": { + "3.3.0": "https://www.schemastore.org/nuget-project-3.3.0.json" + } + }, + { + "name": "NueJS configuration file", + "description": "NueJS site configuration file", + "fileMatch": [], + "url": "https://www.schemastore.org/nuejs-site.json" + }, + { + "name": "nswag.json", + "description": "nswag configuration", + "fileMatch": ["nswag.json"], + "url": "https://www.schemastore.org/nswag.json" + }, + { + "name": "Nullstone config", + "description": "Nullstone config.yml file", + "fileMatch": ["**/.nullstone/*.yml", "**/.nullstone/*.yaml"], + "url": "https://raw.githubusercontent.com/nullstone-io/iac/master/.schema/config.0.1.json", + "versions": { + "0.1": "https://raw.githubusercontent.com/nullstone-io/iac/master/.schema/config.0.1.json" + } + }, + { + "name": "ntangle", + "description": "NTangle CDC code-generation configuration. Documentation: https://github.com/Avanade/ntangle", + "fileMatch": [ + "ntangle.yaml", + "ntangle.yml", + "ntangle.json", + "ntangle.jsn" + ], + "url": "https://raw.githubusercontent.com/Avanade/NTangle/main/schemas/ntangle.json" + }, + { + "name": "Ory Oathkeeper configuration", + "description": "Ory Oathkeeper configuration file", + "fileMatch": [ + "oathkeeper.json", + "oathkeeper.yml", + "oathkeeper.yaml", + "oathkeeper.toml" + ], + "url": "https://raw.githubusercontent.com/ory/oathkeeper/master/.schema/version.schema.json" + }, + { + "name": "ocelot.json", + "description": "the Ocelot Api Gateway", + "fileMatch": ["ocelot.json"], + "url": "https://www.schemastore.org/ocelot.json" + }, + { + "name": "October CMS columns", + "description": "October CMS columns files", + "fileMatch": ["columns.yaml", "*_columns.yaml"], + "url": "https://raw.githubusercontent.com/inetis-ch/october-schemas/master/columns.json" + }, + { + "name": "October CMS fields", + "description": "October CMS fields files", + "fileMatch": ["fields.yaml", "*_fields.yaml"], + "url": "https://raw.githubusercontent.com/inetis-ch/october-schemas/master/fields.json" + }, + { + "name": "ogen", + "description": "ogen code generator configuration, see https://ogen.dev/docs/config", + "fileMatch": ["ogen.yml", "ogen.yaml", ".ogen.yml", ".ogen.yaml"], + "url": "https://www.schemastore.org/ogen.json" + }, + { + "name": "Oh My Posh", + "description": "Oh My Posh configuration file", + "fileMatch": ["*.omp.json", "*.omp.toml", "*.omp.yaml", "*.omp.yml"], + "url": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json" + }, + { + "name": "Okteto", + "description": "The Okteto Manifest", + "fileMatch": ["okteto.yml", "okteto.yaml", "okteto.json"], + "url": "https://raw.githubusercontent.com/okteto/okteto/refs/heads/master/schema.json" + }, + { + "name": "omnisharp.json", + "description": "Omnisharp Configuration file", + "fileMatch": ["omnisharp.json"], + "url": "https://www.schemastore.org/omnisharp.json" + }, + { + "name": "Ona Automations", + "description": "Configuration for Ona Automations", + "fileMatch": [ + "**/.ona/automations.json", + "**/.ona/automations.yaml", + "**/.ona/automations.yml", + "**/.ona/automation.yaml" + ], + "url": "https://app.ona.com/jsonschema/v1/automations_file.jsonschema.json" + }, + { + "name": "openapi.json", + "description": "An OpenAPI documentation file", + "fileMatch": ["openapi.json", "openapi.yml", "openapi.yaml"], + "url": "https://www.schemastore.org/openapi-3.X.json" + }, + { + "name": "overlay.json", + "description": "An OpenAPI Overlay document", + "fileMatch": [ + "overlay.json", + "overlay.yml", + "overlay.yaml", + "*.overlay.json", + "*.overlay.yml", + "*.overlay.yaml" + ], + "url": "https://www.schemastore.org/openapi-overlay-1.X.json" + }, + { + "name": "openrpc.json", + "description": "An OpenRPC document. Documentation: https://open-rpc.org for more information", + "fileMatch": [ + "openrpc.json", + "openrpc.yml", + "openrpc.yaml", + "open-rpc.json", + "open-rpc.yml", + "open-rpc.yaml" + ], + "url": "https://meta.open-rpc.org/" + }, + { + "name": "opencode", + "description": "opencode AI coding agent configuration file", + "fileMatch": [ + "opencode.json", + "opencode.jsonc", + "**/.opencode/opencode.json", + "**/.opencode/opencode.jsonc" + ], + "url": "https://opencode.ai/config.json" + }, + { + "name": "OpenUtau character yaml", + "description": "OpenUtau voicebank configuration file, character.yaml", + "fileMatch": ["character.yaml"], + "url": "https://www.schemastore.org/openutau-character.json" + }, + { + "name": "OpenUtau ustx", + "description": "OpenUtau project file, ustx", + "fileMatch": ["*.ustx"], + "url": "https://www.schemastore.org/openutau-ustx.json" + }, + { + "name": "ops.yaml", + "description": "Ops configuration file (ops.yaml)", + "fileMatch": ["ops.yml", "ops.yaml"], + "url": "https://raw.githubusercontent.com/LeShaunJ/ops-schema/main/ops.schema.json" + }, + { + "name": "ONe's service descriptor", + "description": "ONe's service descriptor", + "fileMatch": ["service-descriptor.yml"], + "url": "https://www.schemastore.org/one-service-descriptor-schema-0.1.json" + }, + { + "name": "ONe's changelog entry", + "description": "ONe's changelog entry", + "fileMatch": ["**/changelogs/*.yml"], + "url": "https://www.schemastore.org/one-changelog-schema-0.1.json" + }, + { + "name": "openfin.json", + "description": "OpenFin application configuration file", + "url": "https://www.schemastore.org/openfin.json" + }, + { + "name": "OpenRewrite Resource", + "description": "OpenRewrite resource descriptors", + "fileMatch": ["**/META-INF/rewrite/*.yml"], + "url": "https://raw.githubusercontent.com/openrewrite/rewrite/main/rewrite-core/openrewrite.json" + }, + { + "name": "OpenTelemetry Declarative Configuration", + "description": "OpenTelemetry declarative configuration for SDKs and instrumentation", + "fileMatch": [ + "opentelemetry*.yaml", + "opentelemetry*.yml", + "otel*.yaml", + "otel*.yml" + ], + "url": "https://raw.githubusercontent.com/open-telemetry/opentelemetry-configuration/refs/tags/v1.0.0/opentelemetry_configuration.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/open-telemetry/opentelemetry-configuration/refs/tags/v1.0.0/opentelemetry_configuration.json" + } + }, + { + "name": "Open Data Contract Standard (ODCS)", + "description": "Open Data Contract Standard contract file, from the Bitol project at The Linux Foundation", + "fileMatch": ["*.odcs.yaml", "*.odcs.yml"], + "url": "https://raw.githubusercontent.com/bitol-io/open-data-contract-standard/main/schema/odcs-json-schema-latest.json", + "versions": { + "v3.0.2": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v3.0.2.json", + "v3.0.1": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v3.0.1.json", + "v3.0.0": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v3.0.0.json", + "v2.2.2": "https://github.com/bitol-io/open-data-contract-standard/blob/main/schema/odcs-json-schema-v2.2.2.json" + } + }, + { + "name": "Open Data Product Standard (ODPS)", + "description": "Open Data Product Standard descriptor file, from the Bitol project at The Linux Foundation", + "fileMatch": ["*.odps.yaml", "*.odps.yml"], + "url": "https://raw.githubusercontent.com/bitol-io/open-data-product-standard/main/schema/odps-json-schema-latest.json", + "versions": { + "v0.9.0": "https://github.com/bitol-io/open-data-product-standard/blob/main/schema/odps-json-schema-v0.9.0.json" + } + }, + { + "name": "OpenSRM", + "description": "Open Service Reliability Manifest - Define service reliability requirements as code", + "fileMatch": [ + "service.reliability.yaml", + "service.reliability.yml", + "*.reliability.yaml", + "*.reliability.yml", + ".opensrm.yaml", + ".opensrm.yml" + ], + "url": "https://www.schemastore.org/opensrm.json" + }, + { + "name": "Outblocks project configuration", + "description": "Outblocks project configuration files", + "fileMatch": ["project.outblocks.yaml", "project.outblocks.yml"], + "url": "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-project.json" + }, + { + "name": "Outblocks App configuration", + "description": "Outblocks App configuration files", + "fileMatch": [ + "app.outblocks.yaml", + "app.outblocks.yml", + "*.app.outblocks.yaml", + "*.app.outblocks.yml", + "outblocks.yaml", + "outblocks.yml" + ], + "url": "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-app.json" + }, + { + "name": "Outblocks database table", + "description": "Outblocks database table files", + "fileMatch": [ + "**/database/**/*.outblocks.yaml", + "**/database/**/*.outblocks.yml" + ], + "url": "https://raw.githubusercontent.com/outblocks/outblocks-cli/master/schema/schema-table.json" + }, + { + "name": "ORT Server repository environment configuration", + "description": "Repository environment configuration to configure infrastructure services, environment variables, and package-manager specific settings", + "fileMatch": [".ort.env.yml", ".ort.env.yaml"], + "url": "https://raw.githubusercontent.com/eclipse-apoapsis/ort-server/refs/heads/main/integrations/schemas/repository-environment-config.json" + }, + { + "name": "Ory Kratos configuration", + "description": "Ory Kratos configuration file", + "fileMatch": ["kratos.json", "kratos.yml", "kratos.yaml", "kratos.toml"], + "url": "https://raw.githubusercontent.com/ory/kratos/master/.schema/version.schema.json" + }, + { + "name": "OSCAL Assessment Plan (AP)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Assessment Plan. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*assessment-plan.json", "oscal*assessment_plan.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-plan_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-plan_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_assessment-plan_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_assessment-plan_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_assessment-plan_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_assessment-plan_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_assessment-plan_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_assessment-plan_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_assessment-plan_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_assessment-plan_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_assessment-plan_schema.json" + } + }, + { + "name": "OSCAL Assessment Results (AR)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Assessment Results. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": [ + "oscal*assessment-results.json", + "oscal*assessment_results.json" + ], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-results_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_assessment-results_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_assessment-results_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_assessment-results_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_assessment-results_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_assessment-results_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_assessment-results_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_assessment-results_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_assessment-results_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_assessment-results_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_assessment-results_schema.json" + } + }, + { + "name": "OSCAL Catalog", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Catalog. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*catalog.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_catalog_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_catalog_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_catalog_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_catalog_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_catalog_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_catalog_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_catalog_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_catalog_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_catalog_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_catalog_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_catalog_schema.json" + } + }, + { + "name": "OSCAL Component Definition (CDef)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Component Definition. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*component.json", "oscal*cdef.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_component_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_component_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_component_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_component_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_component_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_component_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_component_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_component_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_component_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_component_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_component_schema.json" + } + }, + { + "name": "OSCAL Plan of Action and Milestones (POA&M)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Plan of Action and Milestones. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*poam.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_poam_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_poam_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_poam_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_poam_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_poam_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_poam_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_poam_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_poam_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_poam_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_poam_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_poam_schema.json" + } + }, + { + "name": "OSCAL Profile", + "description": "NIST Open Security Controls Assessment Language (OSCAL) Profile. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*profile.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_profile_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_profile_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_profile_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_profile_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_profile_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_profile_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_profile_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_profile_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_profile_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_profile_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_profile_schema.json" + } + }, + { + "name": "OSCAL System Security Plan (SSP)", + "description": "NIST Open Security Controls Assessment Language (OSCAL) System Security Plan. (https://pages.nist.gov/OSCAL-Reference)", + "fileMatch": ["oscal*ssp.json"], + "url": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_ssp_schema.json", + "versions": { + "1.1.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_ssp_schema.json", + "1.1.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.1/oscal_ssp_schema.json", + "1.1.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.1.0/oscal_ssp_schema.json", + "1.0.6": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.6/oscal_ssp_schema.json", + "1.0.5": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.5/oscal_ssp_schema.json", + "1.0.4": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.4/oscal_ssp_schema.json", + "1.0.3": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.3/oscal_ssp_schema.json", + "1.0.2": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.2/oscal_ssp_schema.json", + "1.0.1": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.1/oscal_ssp_schema.json", + "1.0.0": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_ssp_schema.json" + } + }, + { + "name": "OSS Review Toolkit configuration", + "description": "ORT's main configuration file", + "fileMatch": ["**/.ort/config/config.yml", "**/.ort/config/config.yaml"], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/ort-configuration-schema.json" + }, + { + "name": "OSS Review Toolkit curation", + "description": "ORT's curation files", + "fileMatch": [ + "**/curations/**/*.yml", + "**/curations/**/*.yaml", + "curations.yml", + "curations.yaml" + ], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/curations-schema.json" + }, + { + "name": "OSS Review Toolkit package configuration", + "description": "ORT's package configuration file", + "fileMatch": [ + "vcs.yml", + "vcs.yaml", + "source-artifact.yml", + "source-artifact.yaml" + ], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/package-configuration-schema.json" + }, + { + "name": "OSS Review Toolkit repository configuration", + "description": "ORT's repository configuration file", + "fileMatch": ["*.ort.yml", "*.ort.yaml"], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/repository-configuration-schema.json" + }, + { + "name": "OSS Review Toolkit resolutions", + "description": "ORT's resolutions file", + "fileMatch": ["resolutions.yml", "resolutions.yaml"], + "url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/resolutions-schema.json" + }, + { + "name": "package.json", + "description": "NPM configuration file", + "fileMatch": ["package.json"], + "url": "https://www.schemastore.org/package.json" + }, + { + "name": "package.yaml", + "description": "PNPM configuration file", + "fileMatch": ["package.yaml"], + "url": "https://www.schemastore.org/package.json" + }, + { + "name": "package.manifest", + "description": "Umbraco package configuration file", + "fileMatch": ["package.manifest"], + "url": "https://www.schemastore.org/package.manifest.json", + "versions": { + "8.0.0": "https://www.schemastore.org/package.manifest-8.0.0.json", + "7.0.0": "https://www.schemastore.org/package.manifest-7.0.0.json" + } + }, + { + "name": "Packer", + "description": "Packer template JSON configuration", + "fileMatch": ["packer.json"], + "url": "https://www.schemastore.org/packer.json" + }, + { + "name": "PactSpec", + "description": "AI agent capability declaration (pactspec.dev)", + "fileMatch": ["*.pactspec.json", "*.pactspec.yaml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/pactspec.json" + }, + { + "name": "Paper paper-plugin.yml", + "description": "Paper Plugins YAML", + "fileMatch": ["paper-plugin.yml"], + "url": "https://www.schemastore.org/paper-plugin.json" + }, + { + "name": "PDM", + "description": "A modern Python package and dependency manager supporting the latest PEP standard (pdm.toml config file)", + "fileMatch": ["pdm.toml"], + "url": "https://www.schemastore.org/pdm.json" + }, + { + "name": "pgap_yaml_input_reader", + "description": "NCBI Prokaryotic Genome Annotation Pipeline (PGAP) input metadata (submol) JSON/YAML configuration file", + "fileMatch": ["submol*.json", "submol*.yml", "submol*.yaml"], + "url": "https://www.schemastore.org/pgap_yaml_input_reader.json" + }, + { + "name": "pattern.json", + "description": "Patternplate pattern manifest file", + "fileMatch": ["pattern.json"], + "url": "https://www.schemastore.org/pattern.json" + }, + { + "name": "pixi.toml", + "description": "Pixi configuration file", + "fileMatch": ["pixi.toml"], + "url": "https://raw.githubusercontent.com/prefix-dev/pixi/main/schema/schema.json" + }, + { + "name": "partial-pixi.json", + "description": "Pixi configuration for pyproject.toml", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-pixi.json" + }, + { + "name": ".pmbot.yml", + "description": "Pmbot configuration file", + "fileMatch": [".pmbot.yml"], + "url": "https://raw.githubusercontent.com/pmbot-io/config/master/pmbot.yml.schema.json" + }, + { + "name": "PocketMine plugin.yml", + "description": "PocketMine plugin manifest file", + "fileMatch": ["plugin.yml"], + "url": "https://www.schemastore.org/pocketmine-plugin.json" + }, + { + "name": "plagiarize.yaml", + "description": "Yaml Plagiarize", + "fileMatch": ["plagiarize.yaml", "plagiarize.json"], + "url": "https://www.schemastore.org/plagiarize.json", + "versions": { + "0.0": "https://www.schemastore.org/plagiarize-0.0.json" + } + }, + { + "name": "plagiarize-me.yaml", + "description": "Yaml Plagiarize MEe", + "fileMatch": ["plagiarize-me.yaml", "plagiarize-me.json"], + "url": "https://www.schemastore.org/plagiarize-me.json", + "versions": { + "0.0": "https://www.schemastore.org/plagiarize-me-0.0.json" + } + }, + { + "name": "Plex Prerolls", + "description": "Plex Prerolls configuration", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/nwithan8/plex-prerolls/main/.schema/config.schema.json" + }, + { + "name": "podbard.yaml", + "description": "Configuration file for Podbard - a podcast site generator", + "fileMatch": ["podbard.yaml"], + "url": "https://raw.githubusercontent.com/Songmu/podbard/main/schema.yaml" + }, + { + "name": "POPxf", + "description": "Polynomial Observable Predictions in High-Energy Physics", + "fileMatch": ["*.popxf", "*.popxf.json"], + "url": "https://www.schemastore.org/popxf-1.0.json" + }, + { + "name": "POPxf Correlations", + "description": "Correlations for Polynomial Observable Predictions in High-Energy Physics", + "fileMatch": ["*.popxf-corr", "*.popxf-corr.json"], + "url": "https://www.schemastore.org/popxf-corr-1.0.json" + }, + { + "name": "portman.json", + "description": "Portman's configuration file", + "fileMatch": ["portman-config.json", "portman.json"], + "url": "https://raw.githubusercontent.com/apideck-libraries/portman/main/src/utils/portman-config-schema.json" + }, + { + "name": ".postcssrc", + "description": "PostCSS configuration file", + "fileMatch": [ + ".postcssrc", + ".postcssrc.json", + ".postcssrc.yaml", + ".postcssrc.yml" + ], + "url": "https://www.schemastore.org/postcssrc.json" + }, + { + "name": "Postman collection", + "description": "Postman collections", + "fileMatch": ["*.postman_collection.json"], + "url": "https://schema.postman.com/collection/json/v2.1.0/draft-07/collection.json", + "versions": { + "1.0.0": "https://schema.postman.com/collection/json/v1.0.0/draft-07/collection.json", + "2.0.0": "https://schema.postman.com/collection/json/v2.0.0/draft-07/collection.json", + "2.1.0": "https://schema.postman.com/collection/json/v2.1.0/draft-07/collection.json" + } + }, + { + "name": ".powerpages-web-template-manifest", + "description": "Custom manifest declaration for Web templates", + "fileMatch": [".powerpages-web-template-manifest"], + "url": "https://www.schemastore.org/powerpages-web-template-manifest.json" + }, + { + "name": ".pre-commit-config.yml", + "description": "pre-commit configuration file", + "fileMatch": [".pre-commit-config.yml", ".pre-commit-config.yaml"], + "url": "https://www.schemastore.org/pre-commit-config.json" + }, + { + "name": ".pre-commit-hooks.yml", + "description": "pre-commit hooks definition file", + "fileMatch": [".pre-commit-hooks.yml", ".pre-commit-hooks.yaml"], + "url": "https://www.schemastore.org/pre-commit-hooks.json" + }, + { + "name": "PRML manifest", + "description": "Pre-Registered ML Manifest — open spec for committing ML evaluation claims to a SHA-256 hash before the run (CC BY 4.0). https://spec.falsify.dev/v0.1", + "fileMatch": [ + "*.prml.yaml", + "*.prml.yml", + "manifest.prml.yaml", + "prml-manifest.yaml", + "prml-manifest.yml" + ], + "url": "https://spec.falsify.dev/schema/prml-v0.1.schema.json", + "versions": { + "v0.1": "https://spec.falsify.dev/schema/prml-v0.1.schema.json", + "v0.2-rfc": "https://spec.falsify.dev/schema/prml-v0.2.schema.json" + } + }, + { + "name": ".phrase.yml", + "description": "Phrase configuration file", + "fileMatch": [".phrase.yml"], + "url": "https://www.schemastore.org/phrase.json" + }, + { + "name": ".phraseapp.yml", + "description": "PhraseApp configuration file", + "fileMatch": [".phraseapp.yml"], + "url": "https://www.schemastore.org/phraseapp.json" + }, + { + "name": "prefect.toml", + "description": "Prefect configuration file", + "fileMatch": ["prefect.toml"], + "url": "https://raw.githubusercontent.com/PrefectHQ/prefect/refs/heads/main/schemas/settings.schema.json" + }, + { + "name": "prefect.yaml", + "description": "Prefect deployment configuration file", + "fileMatch": ["prefect.yaml", "prefect.yml"], + "url": "https://raw.githubusercontent.com/PrefectHQ/prefect/refs/heads/main/schemas/prefect.yaml.schema.json" + }, + { + "name": "prek", + "description": "Configuration file for prek, a tool for managing git hooks", + "fileMatch": ["prek.toml"], + "url": "https://www.schemastore.org/prek.json" + }, + { + "name": "prettierrc.json", + "description": ".prettierrc configuration file", + "fileMatch": [ + ".prettierrc", + ".prettierrc.json", + ".prettierrc.yml", + ".prettierrc.yaml" + ], + "url": "https://www.schemastore.org/prettierrc.json", + "versions": { + "1.8.2": "https://www.schemastore.org/prettierrc-1.8.2.json", + "2.8.8": "https://www.schemastore.org/prettierrc-2.8.8.json", + "3.0.0": "https://www.schemastore.org/prettierrc.json" + } + }, + { + "name": "prisma.yml", + "description": "prisma.yml service definition file", + "fileMatch": ["prisma.yml"], + "url": "https://www.schemastore.org/prisma.json" + }, + { + "name": "ProActions AI-Kit Configuration", + "description": "Eidosmedia ProActions AI-Kit main configuration file", + "fileMatch": ["*.ai-kit.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/ai-kit.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Services", + "description": "Eidosmedia ProActions AI-Kit services configuration files", + "fileMatch": ["*.ai-kit.serv.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-services.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Menus", + "description": "Eidosmedia ProActions AI-Kit menu configuration files", + "fileMatch": ["*.ai-kit.menu.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-floatingMenu.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Templates", + "description": "Eidosmedia ProActions AI-Kit template configuration files", + "fileMatch": ["*.ai-kit.templ.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-templates.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Sections", + "description": "Eidosmedia ProActions AI-Kit section configuration files", + "fileMatch": ["*.ai-kit.sect.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-section.schema.json" + }, + { + "name": "ProActions AI-Kit Configuration for Steps", + "description": "Eidosmedia ProActions AI-Kit step configuration files", + "fileMatch": ["*.ai-kit.step.yaml"], + "url": "https://raw.githubusercontent.com/em-al-wi/proactions-schema/main/schema/partial-step.schema.json" + }, + { + "name": "Problem package format", + "description": "Problem package metadata for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["problem.yml", "problem.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/problem_yaml_schema.json" + }, + { + "name": "Problem package generators", + "description": "Generators for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["generators.yml", "generators.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/generators_yaml_schema.json" + }, + { + "name": "Problem package submissions", + "description": "Submissions metadata for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["submissions.yml", "submissions.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/submissions_yaml_schema.json" + }, + { + "name": "Problem package test group metadata", + "description": "Test group metadata for programming tasks in the Kattis/CLICS problem package format", + "fileMatch": ["test_group.yml", "test_group.yaml"], + "url": "https://raw.githubusercontent.com/RagnarGrootKoerkamp/BAPCtools/refs/heads/main/bapctools/resources/support/schemas/test_group_yaml_schema.json" + }, + { + "name": "project.json", + "description": "ASP.NET vNext project configuration file", + "fileMatch": ["project.json"], + "url": "https://www.schemastore.org/project.json", + "versions": { + "1.0.0-beta3": "https://www.schemastore.org/project-1.0.0-beta3.json", + "1.0.0-beta4": "https://www.schemastore.org/project-1.0.0-beta4.json", + "1.0.0-beta5": "https://www.schemastore.org/project-1.0.0-beta5.json", + "1.0.0-beta6": "https://www.schemastore.org/project-1.0.0-beta6.json", + "1.0.0-beta8": "https://www.schemastore.org/project-1.0.0-beta8.json", + "1.0.0-rc1": "https://www.schemastore.org/project-1.0.0-rc1.json", + "1.0.0-rc1-update1": "https://www.schemastore.org/project-1.0.0-rc1.json", + "1.0.0-rc2": "https://www.schemastore.org/project-1.0.0-rc2.json" + } + }, + { + "name": "project-1.0.0-beta3.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta3.json" + }, + { + "name": "project-1.0.0-beta4.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta4.json" + }, + { + "name": "project-1.0.0-beta5.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta5.json" + }, + { + "name": "project-1.0.0-beta6.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta6.json" + }, + { + "name": "project-1.0.0-beta8.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-beta8.json" + }, + { + "name": "project-1.0.0-rc1.json", + "description": "ASP.NET vNext project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-rc1.json" + }, + { + "name": "project-1.0.0-rc2.json", + "description": ".NET Core project configuration file", + "url": "https://www.schemastore.org/project-1.0.0-rc2.json" + }, + { + "name": "project.owasp.yaml", + "description": "OWASP project", + "fileMatch": ["project.owasp.yaml"], + "url": "https://raw.githubusercontent.com/OWASP/nest-schema/main/project.json" + }, + { + "name": "prometheus.json", + "description": "Prometheus configuration file", + "fileMatch": ["prometheus.yml", "prometheus.yaml"], + "url": "https://www.schemastore.org/prometheus.json" + }, + { + "name": "prometheus.rules.json", + "description": "Prometheus rules file", + "fileMatch": [ + "*.prometheus.rules.yml", + "*.prometheus.rules.yaml", + "*prometheus-rules.yml", + "*prometheus-rules.yaml", + "*prometheus_rules.yml", + "*prometheus_rules.yaml", + "prometheus.rules.yml", + "prometheus.rules.yaml" + ], + "url": "https://www.schemastore.org/prometheus.rules.json" + }, + { + "name": "prometheus.rules.test.json", + "description": "Prometheus rules test file", + "fileMatch": [ + "*.prometheus.tests.yml", + "*.prometheus.tests.yaml", + "*.prometheus.test.yml", + "*.prometheus.test.yaml" + ], + "url": "https://www.schemastore.org/prometheus.rules.test.json" + }, + { + "name": "prometheus-alertmanager.json", + "description": "Prometheus Alertmanager configuration file", + "fileMatch": ["alertmanager.yml", "alertmanager.yaml"], + "url": "https://www.schemastore.org/prometheus-alertmanager.json" + }, + { + "name": "proxies.json", + "description": "Azure Function Proxies proxies.json files", + "fileMatch": ["proxies.json"], + "url": "https://www.schemastore.org/proxies.json" + }, + { + "name": "publiccode.yml", + "description": "publiccode.yml", + "fileMatch": ["publiccode.yml"], + "url": "https://www.schemastore.org/publiccode.json" + }, + { + "name": "pubspec.yaml", + "description": "pubspecs, the format used by Dart's dependency manager", + "fileMatch": ["pubspec.yaml"], + "url": "https://www.schemastore.org/pubspec.json" + }, + { + "name": "Pull Request Labeler", + "description": "A GitHub Action for automatically labelling pull requests", + "fileMatch": ["**/.github/labeler.yml"], + "url": "https://www.schemastore.org/pull-request-labeler.json", + "versions": { + "4": "https://www.schemastore.org/pull-request-labeler.json", + "5": "https://www.schemastore.org/pull-request-labeler-5.json" + } + }, + { + "name": ".putout.json", + "description": "\ud83d\udc0aPutout configuration file", + "fileMatch": [".putout.json"], + "url": "https://www.schemastore.org/putout.json" + }, + { + "name": "pyrseas-0.8.json", + "description": "Pyrseas database versioning for Postgres databases, v0.8", + "fileMatch": ["pyrseas-0.8.json"], + "url": "https://www.schemastore.org/pyrseas-0.8.json" + }, + { + "name": "RadioHound", + "description": "RadioHound data format for spectrum monitoring", + "fileMatch": ["*.rh.json"], + "url": "https://www.schemastore.org/radiohound-v0.json", + "versions": { + "v0": "https://www.schemastore.org/radiohound-v0.json" + } + }, + { + "name": "PyGTA Config", + "description": "Configuration file used by pyglotaran and pyglotaran-extras", + "fileMatch": ["pygta_config.yaml", "pygta_config.yml"], + "url": "https://pyglotaran-extras.readthedocs.io/en/latest/_static/pygta_config.schema.json" + }, + { + "name": "Rancher Fleet", + "description": "Rancher Fleet fleet.yaml configuration file", + "fileMatch": ["fleet.yaml"], + "url": "https://www.schemastore.org/rancher-fleet-0.8.json", + "versions": { + "0.5": "https://www.schemastore.org/rancher-fleet-0.5.json", + "0.8": "https://www.schemastore.org/rancher-fleet-0.8.json" + } + }, + { + "name": "config.yaml", + "description": "Projektor settings", + "fileMatch": ["**/.projektor/config.yaml"], + "url": "https://www.schemastore.org/projektor.json" + }, + { + "name": "Read the Docs", + "description": "Read the Docs configuration file", + "fileMatch": [ + "readthedocs.yml", + "readthedocs.yaml", + ".readthedocs.yml", + ".readthedocs.yaml" + ], + "url": "https://raw.githubusercontent.com/readthedocs/readthedocs.org/master/readthedocs/rtd_tests/fixtures/spec/v2/schema.json" + }, + { + "name": "Pulumi", + "description": "Pulumi project metadata and configuration", + "fileMatch": ["Pulumi.yaml", "pulumi.yaml"], + "url": "https://www.schemastore.org/pulumi.json" + }, + { + "name": "PyProject", + "description": "Python project metadata and configuration", + "fileMatch": ["pyproject.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/pyproject.json" + }, + { + "name": "Pyright", + "description": "Pyright Configuration", + "fileMatch": ["pyrightconfig.json"], + "url": "https://raw.githubusercontent.com/microsoft/pyright/main/packages/vscode-pyright/schemas/pyrightconfig.schema.json" + }, + { + "name": "pytest", + "description": "pytest configuration", + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/partial-pytest.json" + }, + { + "name": "Qgoda", + "description": "Qgoda static site generator configuration file format", + "fileMatch": [ + "_qgoda.yaml", + "_qgoda.yml", + "_qgoda.json", + "_localqgoda.yaml", + "_localqgoda.yml", + "_localqgoda.json" + ], + "url": "https://www.qgoda.net/schemas/qgoda.json" + }, + { + "name": "QType AI DSL", + "description": "A DSL for rapid prototyping of AI applications", + "fileMatch": ["qtype.config.yaml", "*.qtype.yaml"], + "url": "https://raw.githubusercontent.com/bazaarvoice/qtype/refs/heads/main/schema/qtype.schema.json" + }, + { + "name": "Railway", + "description": "Use Railway config as code to define settings for building and deploying your services", + "fileMatch": ["railway.toml", "railway.json"], + "url": "https://railway.com/railway.schema.json" + }, + { + "name": "Railpack", + "description": "Configuration file for Railpack deployment tool", + "fileMatch": ["railpack.json"], + "url": "https://schema.railpack.com" + }, + { + "name": "Rattler-build", + "description": "Rattler-build recipe", + "fileMatch": ["recipe.yaml", "recipe.yml"], + "url": "https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json" + }, + { + "name": "rc3 auth", + "description": "RC auth that can be stored at Collection, Folder, or Request levels", + "fileMatch": ["rc-auth.json"], + "url": "https://www.schemastore.org/rc3-auth-0.0.3.json" + }, + { + "name": "rc3 collection", + "description": "RC collection information", + "fileMatch": ["rc-collection.json"], + "url": "https://www.schemastore.org/rc3-collection-0.0.3.json" + }, + { + "name": "rc3 environment", + "description": "RC environment for both Global and per Collection environments", + "fileMatch": ["**/environments/*.json", "rc-global.json"], + "url": "https://www.schemastore.org/rc3-environment-0.0.3.json" + }, + { + "name": "rc3 folder", + "description": "RC folder information", + "fileMatch": ["rc-folder.json"], + "url": "https://www.schemastore.org/rc3-folder-0.0.3.json" + }, + { + "name": "rc3 request", + "description": "RC request information", + "fileMatch": ["**/*.request"], + "url": "https://www.schemastore.org/rc3-request-0.0.3.json" + }, + { + "name": "rc3 settings", + "description": "RC settings stored in the users RC_HOME directory", + "fileMatch": ["rc-settings.json"], + "url": "https://www.schemastore.org/rc3-settings-0.0.3.json" + }, + { + "name": "Red-DiscordBot Cog", + "description": "Red-DiscordBot Cog metadata file", + "fileMatch": ["info.json"], + "url": "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/red_cog.schema.json" + }, + { + "name": "Red-DiscordBot Cog Repo", + "description": "Red-DiscordBot Cog Repo metadata file", + "fileMatch": ["info.json"], + "url": "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/red_cog_repo.schema.json" + }, + { + "name": "Red-DiscordBot Trivia", + "description": "Red-DiscordBot Trivia List file", + "url": "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/trivia.schema.json" + }, + { + "name": ".rehyperc", + "description": "A rehype configuration file", + "fileMatch": [ + ".rehyperc", + ".rehyperc.json", + ".rehyperc.yaml", + ".rehyperc.yml" + ], + "url": "https://www.schemastore.org/rehyperc.json" + }, + { + "name": "release-please-config.json", + "description": "Release Please manifest configuration file", + "fileMatch": ["release-please-config.json"], + "url": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" + }, + { + "name": "release-please-manifest.json", + "description": "Release Please manifest versions file", + "fileMatch": [".release-please-manifest.json"], + "url": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/manifest.json" + }, + { + "name": "release-plz.toml", + "description": "Release-plz configuration file", + "fileMatch": ["release-plz.toml", ".release-plz.toml"], + "url": "https://raw.githubusercontent.com/MarcoIeni/release-plz/main/.schema/latest.json" + }, + { + "name": ".remarkrc", + "description": "A remark configuration file", + "fileMatch": [ + ".remarkrc", + ".remarkrc.json", + ".remarkrc.yaml", + ".remarkrc.yml" + ], + "url": "https://www.schemastore.org/remarkrc.json" + }, + { + "name": "Replit config", + "description": "replit.com, a cloud IDE and code runner", + "fileMatch": ["replit.toml"], + "url": "https://www.schemastore.org/replit.json" + }, + { + "name": "reposets Configuration", + "description": "Configuration for the reposets CLI tool for syncing GitHub repository settings", + "fileMatch": ["reposets.config.toml", "reposets.config.json"], + "url": "https://raw.githubusercontent.com/spencerbeggs/reposets/main/package/schemas/reposets.config.schema.json" + }, + { + "name": "reposets Credentials", + "description": "Authentication profiles for the reposets CLI tool", + "fileMatch": ["reposets.credentials.toml", "reposets.credentials.json"], + "url": "https://raw.githubusercontent.com/spencerbeggs/reposets/main/package/schemas/reposets.credentials.schema.json" + }, + { + "name": "*.resjson", + "description": "Windows App localization file", + "fileMatch": ["*.resjson"], + "url": "https://www.schemastore.org/resjson.json" + }, + { + "name": "Rubocop", + "description": "A Ruby code style checker (linter) and formatter", + "fileMatch": ["*.rubocop.yml"], + "url": "https://www.rubyschema.org/rubocop.json" + }, + { + "name": "Ruff", + "description": "Ruff, a fast Python linter", + "fileMatch": ["ruff.toml", ".ruff.toml"], + "url": "https://www.schemastore.org/ruff.json" + }, + { + "name": "Rust Project", + "description": "non-Cargo based Rust projects", + "fileMatch": ["rust-project.json"], + "url": "https://www.schemastore.org/rust-project.json" + }, + { + "name": "JSON Resume", + "description": "JSON r\u00e9sum\u00e9 files", + "fileMatch": [ + "**/resume.json", + "**/*.resume.json", + "**/resume.yaml", + "**/*.resume.yaml", + "**/resume.yml", + "**/*.resume.yml" + ], + "url": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json" + } + }, + { + "name": "Renovate", + "description": "Renovate configuration file. Documentation: https://docs.renovatebot.com/configuration-options", + "fileMatch": [ + "renovate.json", + "renovate.json5", + "**/.github/renovate.json", + "**/.github/renovate.json5", + "**/.gitlab/renovate.json", + "**/.gitlab/renovate.json5", + ".renovaterc", + ".renovaterc.json", + ".renovaterc.json5" + ], + "url": "https://docs.renovatebot.com/renovate-schema.json", + "versions": { + "42": "https://www.schemastore.org/renovate-42.json", + "41": "https://www.schemastore.org/renovate-41.json", + "40": "https://www.schemastore.org/renovate-40.json", + "39": "https://www.schemastore.org/renovate-39.json" + } + }, + { + "name": "Renovate global configuration", + "description": "Renovate global self-hosting configuration file options. Documentation: https://docs.renovatebot.com/self-hosted-configuration/", + "fileMatch": [], + "url": "https://docs.renovatebot.com/renovate-global-schema.json", + "versions": { + "42": "https://www.schemastore.org/renovate-global-schema-42.json", + "41": "https://www.schemastore.org/renovate-global-schema-41.json" + } + }, + { + "name": "Renovate inherited configuration", + "description": "Renovate configuration file (with Inherit Config options). Documentation: https://docs.renovatebot.com/configuration-options", + "fileMatch": [], + "url": "https://docs.renovatebot.com/renovate-inherited-schema.json", + "versions": { + "42": "https://www.schemastore.org/renovate-inherited-schema-42.json" + } + }, + { + "name": "RenderCV", + "description": "RenderCV input file", + "fileMatch": [ + "*_CV.yml", + "*_CV.yaml", + "*_CV.json", + "*_CV.json5", + "*_cv.yml", + "*_cv.yaml", + "*_cv.json", + "*_cv.json5" + ], + "url": "https://raw.githubusercontent.com/sinaatalay/rendercv/main/schema.json" + }, + { + "name": "renv.lock", + "description": "Lockfile for recording R project dependencies with renv package", + "fileMatch": ["renv.lock"], + "url": "https://raw.githubusercontent.com/rstudio/renv/refs/heads/main/inst/schema/draft-07.renv.lock.schema.json" + }, + { + "name": "RoadRunner", + "description": "Spiral Roadrunner config file", + "fileMatch": [".rr*.yml", ".rr*.yaml"], + "url": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/3.0.schema.json", + "versions": { + "1.0": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/1.0.schema.json", + "2.0": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/2.0.schema.json", + "3.0": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/3.0.schema.json" + } + }, + { + "name": "Rockcraft", + "description": "Rockcraft project. Documentation: https://documentation.ubuntu.com/rockcraft/stable/", + "fileMatch": ["rockcraft.yaml"], + "url": "https://raw.githubusercontent.com/canonical/rockcraft/main/schema/rockcraft.json" + }, + { + "name": "Roo Coder Custom Modes", + "description": "Roo Coder custom mode configuration files", + "fileMatch": [ + ".roomodes", + "*.roomodes", + "custom_modes.yaml", + "custom_modes.yml" + ], + "url": "https://www.schemastore.org/roomodes.json" + }, + { + "name": "runny", + "description": "runny, a rool for running things", + "fileMatch": [".runny.yaml", ".runny.yml"], + "url": "https://raw.githubusercontent.com/simonwhitaker/runny/main/schema/runny.schema.json" + }, + { + "name": "rumdl", + "description": "Configuration file for rumdl, a fast Markdown linter and formatter", + "fileMatch": [".rumdl.toml", "rumdl.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/rumdl.json" + }, + { + "name": "rustfmt", + "description": "rustfmt, a tool to format Rust code. Documentation: https://rust-lang.github.io/rustfmt", + "fileMatch": ["rustfmt.toml", ".rustfmt.toml"], + "url": "https://www.schemastore.org/rustfmt.json" + }, + { + "name": "ryl", + "description": "ryl, a fast YAML linter written in Rust", + "fileMatch": ["ryl.toml", ".ryl.toml"], + "url": "https://www.schemastore.org/ryl.json" + }, + { + "name": "Rust toolchain", + "description": "A declarative managing the Rust toolchain", + "fileMatch": ["rust-toolchain.toml"], + "url": "https://www.schemastore.org/rust-toolchain.json" + }, + { + "name": "samt", + "description": "SAMT configuration files", + "fileMatch": ["samt.yaml"], + "url": "https://www.schemastore.org/samt.json" + }, + { + "name": "samtrc", + "description": "SAMT linter configuration files", + "fileMatch": [".samtrc.yaml"], + "url": "https://www.schemastore.org/samtrc.json" + }, + { + "name": "Sapphire CLI Config", + "description": "Scheme for Sapphire CLI Config (@sapphire/cli)", + "fileMatch": [".sapphirerc.json", ".sapphirerc.yml"], + "url": "https://raw.githubusercontent.com/sapphiredev/cli/main/templates/schemas/.sapphirerc.scheme.json" + }, + { + "name": "sarif-1.0.0.json", + "description": "Static Analysis Results Interchange Format (SARIF) version 1", + "url": "https://www.schemastore.org/sarif-1.0.0.json" + }, + { + "name": "sarif-2.0.0.json", + "description": "Static Analysis Results Interchange Format (SARIF) version 2", + "url": "https://www.schemastore.org/sarif-2.0.0.json" + }, + { + "name": "sarif-2.1.0-rtm.2", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.2", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.2.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.2", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.2", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.2.json" + }, + { + "name": "sarif-2.1.0-rtm.3", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.3", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.3.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.3", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.3", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.3.json" + }, + { + "name": "sarif-2.1.0-rtm.4", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.4", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.4.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.4", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.4", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.4.json" + }, + { + "name": "sarif-2.1.0-rtm.5", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.5", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.5.json" + }, + { + "name": "sarif-2.1.0-rtm.6", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0-rtm.6", + "url": "https://www.schemastore.org/sarif-2.1.0-rtm.6.json" + }, + { + "name": "sarif-external-property-file-2.1.0-rtm.5", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0-rtm.5", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0-rtm.5.json" + }, + { + "name": "sarif-2.1.0", + "description": "Static Analysis Results Format (SARIF), Version 2.1.0", + "url": "https://www.schemastore.org/sarif-2.1.0.json" + }, + { + "name": "sarif-external-property-file-2.1.0", + "description": "Static Analysis Results Format (SARIF) External Property File Format, Version 2.1.0", + "url": "https://www.schemastore.org/sarif-external-property-file-2.1.0.json" + }, + { + "name": "scalingo.json configuration", + "description": "scalingo.json configuration files", + "fileMatch": ["scalingo.json"], + "url": "https://raw.githubusercontent.com/Scalingo/developers-documentation/refs/heads/master/scalingo.schema.json" + }, + { + "name": "Schema Catalog", + "description": "JSON Schema catalog files compatible with SchemaStore.org", + "url": "https://www.schemastore.org/schema-catalog.json" + }, + { + "name": "schema.org - Action", + "description": "Action as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-action.json" + }, + { + "name": "schema.org - ContactPoint", + "description": "ContactPoint as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-contact-point.json" + }, + { + "name": "schema.org - Place", + "description": "Place as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-place.json" + }, + { + "name": "schema.org - Thing", + "description": "Thing as defined by schema.org", + "url": "https://www.schemastore.org/schema-org-thing.json" + }, + { + "name": "Scarb", + "description": "Scarb manifest file (Scarb.toml)", + "fileMatch": ["Scarb.toml"], + "url": "https://www.schemastore.org/scarb.json" + }, + { + "name": "Scoop manifest", + "description": "Scoop bucket app manifest", + "fileMatch": ["**/bucket/**.json"], + "url": "https://raw.githubusercontent.com/lukesampson/scoop/master/schema.json" + }, + { + "name": "SDMX structure message", + "description": "Statistical Data and Metadata eXchange (ISO 17369) structure message", + "url": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/structure-message/tools/schemas/2.0.0/sdmx-json-structure-schema.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json", + "2.0.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/structure-message/tools/schemas/2.0.0/sdmx-json-structure-schema.json" + } + }, + { + "name": "SDMX metadata message", + "description": "Statistical Data and Metadata eXchange (ISO 17369) metadata message", + "url": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/metadata-message/tools/schemas/2.0.0/sdmx-json-metadata-schema.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/metadata-message/tools/schemas/1.0/sdmx-json-metadata-schema.json", + "2.0.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/metadata-message/tools/schemas/2.0.0/sdmx-json-metadata-schema.json" + } + }, + { + "name": "SDMX data message", + "description": "Statistical Data and Metadata eXchange (ISO 17369) data message", + "url": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/2.0.0/sdmx-json-data-schema.json", + "versions": { + "1.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/1.0/sdmx-json-data-schema.json", + "2.0.0": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/2.0.0/sdmx-json-data-schema.json" + } + }, + { + "name": "Semantic Data Fabric (SDF) file", + "description": "SDF blocks", + "fileMatch": ["*.sdf.yml"], + "url": "https://cdn.sdf.com/schemas/sdf-schema-1.3.json", + "versions": { + "1.0": "https://cdn.sdf.com/schemas/sdf-schema-1.0.json", + "1.1": "https://cdn.sdf.com/schemas/sdf-schema-1.1.json", + "1.2": "https://cdn.sdf.com/schemas/sdf-schema-1.2.json", + "1.3": "https://cdn.sdf.com/schemas/sdf-schema-1.3.json" + } + }, + { + "name": "semantic-release", + "description": "Configuration for semantic-release", + "fileMatch": [ + ".releaserc", + ".releaserc.yaml", + ".releaserc.yml", + ".releaserc.json" + ], + "url": "https://www.schemastore.org/semantic-release.json" + }, + { + "name": "Semgrep Rule", + "description": "Semgrep code scanning patterns and rules", + "fileMatch": [ + "**/.semgrep/**.yaml", + "**/.semgrep/**.yml", + ".semgrep.yaml", + ".semgrep.yml" + ], + "url": "https://www.schemastore.org/semgrep.json", + "versions": { + "v1.72.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.72.0/rule_schema_v1.yaml", + "v1.73.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.73.0/rule_schema_v1.yaml", + "v1.74.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.74.0/rule_schema_v1.yaml", + "v1.75.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.75.0/rule_schema_v1.yaml", + "v1.76.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.76.0/rule_schema_v1.yaml", + "v1.77.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.77.0/rule_schema_v1.yaml", + "v1.78.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.78.0/rule_schema_v1.yaml", + "v1.79.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.79.0/rule_schema_v1.yaml", + "v1.80.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.80.0/rule_schema_v1.yaml", + "v1.81.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.81.0/rule_schema_v1.yaml", + "v1.82.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.82.0/rule_schema_v1.yaml", + "v1.83.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.83.0/rule_schema_v1.yaml", + "v1.84.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.84.0/rule_schema_v1.yaml", + "v1.85.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.85.0/rule_schema_v1.yaml", + "v1.86.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.86.0/rule_schema_v1.yaml", + "v1.87.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.87.0/rule_schema_v1.yaml", + "v1.88.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.88.0/rule_schema_v1.yaml", + "v1.89.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.89.0/rule_schema_v1.yaml", + "v1.90.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.90.0/rule_schema_v1.yaml", + "v1.91.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.91.0/rule_schema_v1.yaml", + "v1.92.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.92.0/rule_schema_v1.yaml", + "v1.93.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.93.0/rule_schema_v1.yaml", + "v1.94.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.94.0/rule_schema_v1.yaml", + "v1.95.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.95.0/rule_schema_v1.yaml", + "v1.96.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.96.0/rule_schema_v1.yaml", + "v1.97.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.97.0/rule_schema_v1.yaml", + "v1.98.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.98.0/rule_schema_v1.yaml", + "v1.99.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.99.0/rule_schema_v1.yaml", + "v1.100.0": "https://raw.githubusercontent.com/returntocorp/semgrep-interfaces/v1.100.0/rule_schema_v1.yaml" + } + }, + { + "name": "Serenity Code Generator (Sergen)", + "description": "Serenity code generator (sergen) configuration file", + "fileMatch": ["sergen.json", "sergen.*.json", "*.sergen.json"], + "url": "https://www.schemastore.org/sergen.json" + }, + { + "name": "settings.job", + "description": "Azure Webjob settings file", + "fileMatch": ["settings.job"], + "url": "https://www.schemastore.org/settings.job.json" + }, + { + "name": "Settings.paf", + "description": "Qualisys Project Automation Framework settings file", + "fileMatch": ["settings.paf", "Settings.paf"], + "url": "https://raw.githubusercontent.com/qualisys/qualisys-schemas/master/paf-module.schema.json" + }, + { + "name": "sfdx-hardis configuration", + "description": "Configuration file for sfdx-hardis Salesforce DX plugin", + "fileMatch": [ + ".sfdx-hardis.yml", + ".sfdx-hardis.yaml", + ".sfdx-hardis.*.yml", + ".sfdx-hardis.*.yaml" + ], + "url": "https://raw.githubusercontent.com/hardisgroupcom/sfdx-hardis/main/config/sfdx-hardis.jsonschema.json" + }, + { + "name": "Sigma Detection Rule", + "description": "The Sigma detection rule format. Documentation: https://github.com/SigmaHQ/sigma-specification/blob/main/specification/sigma-rules-specification.md and https://github.com/SigmaHQ/sigma", + "fileMatch": ["**/sigma/**/*.yml"], + "url": "https://raw.githubusercontent.com/SigmaHQ/sigma-specification/main/json-schema/sigma-detection-rule-schema.json" + }, + { + "name": "Sigrid scope configuration file", + "description": "Analysis scope configuration file used by Sigrid (sigrid-says.com)", + "fileMatch": ["sigrid.yaml"], + "url": "https://www.schemastore.org/sigrid-scope-file.schema.json" + }, + { + "name": "SIL Kit Participant Configuration", + "description": "Configuration file for a Vector SIL Kit Participant", + "fileMatch": [ + "silkit.json", + "silkit.yaml", + "*.silkit.json", + "*.silkit.yaml" + ], + "url": "https://www.schemastore.org/sil-kit-participant-configuration.json" + }, + { + "name": "SIL Kit Registry Configuration", + "description": "Configuration file for Vector SIL Kit Registry Service", + "fileMatch": [ + "silkit-registry.yaml", + "silkit-registry.yml", + "silkit-registry.json", + "*.silkit-registry.yaml", + "*.silkit-registry.yml", + "*.silkit-registry.json" + ], + "url": "https://www.schemastore.org/sil-kit-registry-configuration.json" + }, + { + "name": "size-limit configuration", + "description": "Configuration file for size-limit", + "fileMatch": [".size-limit.json"], + "url": "https://www.schemastore.org/size-limit.json" + }, + { + "name": "Slack app manifest", + "description": "A manifest file containing the settings for a Slack app", + "url": "https://www.schemastore.org/slack-app-manifest.json" + }, + { + "name": "skyuxconfig.json", + "description": "SKY UX CLI configuration file", + "fileMatch": ["skyuxconfig.json", "skyuxconfig.*.json"], + "url": "https://raw.githubusercontent.com/blackbaud/skyux-config/4.x.x/skyuxconfig-schema.json" + }, + { + "name": "Snapcraft", + "description": "Snapcraft project. Documentation: https://documentation.ubuntu.com/snapcraft/stable/", + "fileMatch": [".snapcraft.yaml", "snapcraft.yaml"], + "url": "https://raw.githubusercontent.com/canonical/snapcraft/main/schema/snapcraft.json" + }, + { + "name": "snowflake-config", + "description": "Configuration file for Snowflake", + "fileMatch": ["**/.snowflake/config.toml", "**/snowflake/config.toml"], + "url": "https://www.schemastore.org/snowflake-config.json" + }, + { + "name": "snowflake-connections", + "description": "Configuration file for Snowflake connections", + "fileMatch": [ + "**/.snowflake/connections.toml", + "**/snowflake/connections.toml" + ], + "url": "https://www.schemastore.org/snowflake-connections.json" + }, + { + "name": "Solidarity", + "description": "CLI config for enforcing environment settings", + "fileMatch": [".solidarity", ".solidarity.json"], + "url": "https://www.schemastore.org/solidaritySchema.json" + }, + { + "name": "Solution filters", + "description": "File that specifies which MSBuild solution to launch and which projects to load", + "fileMatch": ["*.slnf"], + "url": "https://www.schemastore.org/solution-filter.json" + }, + { + "name": "Source Maps v3", + "description": "Source Map files version 3", + "fileMatch": ["*.map"], + "url": "https://www.schemastore.org/sourcemap-v3.json" + }, + { + "name": "Sourcery", + "description": "Sourcery YAML files", + "fileMatch": [".sourcery.yaml"], + "url": "https://www.schemastore.org/sourcery_yaml_schema.json" + }, + { + "name": "Spack bootstrap.yaml", + "description": "Spack package manager bootstrap.yaml config file", + "fileMatch": ["**/*spack/**/bootstrap.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/bootstrap.json" + }, + { + "name": "Spack cdash.yaml", + "description": "Spack package manager cdash.yaml config file", + "fileMatch": ["**/*spack/**/cdash.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/cdash.json" + }, + { + "name": "Spack ci.yaml", + "description": "Spack package manager ci.yaml config file", + "fileMatch": ["**/*spack/**/ci.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/ci.json" + }, + { + "name": "Spack compilers.yaml", + "description": "Spack package manager compilers.yaml config file", + "fileMatch": ["**/*spack/**/compilers.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/compilers.json" + }, + { + "name": "Spack concretizer.yaml", + "description": "Spack package manager concretizer.yaml config file", + "fileMatch": ["**/*spack/**/concretizer.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/concretizer.json" + }, + { + "name": "Spack config.yaml", + "description": "Spack package manager config.yaml file", + "fileMatch": ["**/*spack/**/config.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/config.json" + }, + { + "name": "Spack definitions.yaml", + "description": "Spack package manager definitions.yaml config", + "fileMatch": ["**/*spack/**/definitions.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/definitions.json" + }, + { + "name": "Spack develop.yaml", + "description": "Spack package manager develop.yaml config file", + "fileMatch": ["**/*spack/**/develop.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/develop.json" + }, + { + "name": "Spack env_vars.yaml", + "description": "Spack package manager env_vars.yaml config file", + "fileMatch": ["**/*spack/**/env_vars.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/env_vars.json" + }, + { + "name": "Spack include.yaml", + "description": "Spack package manager include.yaml config file", + "fileMatch": ["**/*spack/**/include.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/include.json" + }, + { + "name": "Spack mirrors.yaml", + "description": "Spack package manager mirrors.yaml config file", + "fileMatch": ["**/*spack/**/mirrors.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/mirrors.json" + }, + { + "name": "Spack modules.yaml", + "description": "Spack package manager modules.yaml config file", + "fileMatch": ["**/*spack/**/modules.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/modules.json" + }, + { + "name": "Spack packages.yaml", + "description": "Spack package manager packages.yaml config file", + "fileMatch": ["**/*spack/**/packages.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/packages.json" + }, + { + "name": "Spack repos.yaml", + "description": "Spack package manager repos.yaml config file", + "fileMatch": ["**/*spack/**/repos.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/repos.json" + }, + { + "name": "Spack environment", + "description": "Spack package manager environment file", + "fileMatch": ["spack.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/spack.json" + }, + { + "name": "Spack toolchains.yaml", + "description": "Spack package manager toolchains.yaml config file", + "fileMatch": ["**/*spack/**/toolchains.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/toolchains.json" + }, + { + "name": "Spack upstreams.yaml", + "description": "Spack package manager upstreams.yaml config file", + "fileMatch": ["**/*spack/**/upstreams.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/upstreams.json" + }, + { + "name": "Spack view.yaml", + "description": "Spack package manager view.yaml config file", + "fileMatch": ["**/*spack/**/view.yaml"], + "url": "https://raw.githubusercontent.com/spack/schemas/refs/heads/main/schemas/view.json" + }, + { + "name": "Speakeasy Lint Configuration File", + "description": "Configuration file for Speakeasy's OpenAPI document linting. Find out more at https://www.speakeasy.com/docs/linting", + "fileMatch": ["**/.speakeasy/lint.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/lint.schema.json" + }, + { + "name": "Speakeasy Test Generation Configuration File", + "description": "Configuration file for Speakeasy's test generation", + "fileMatch": ["**/.speakeasy/tests.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/tests.schema.json" + }, + { + "name": "Speakeasy Workflow File", + "description": "Workflow configuration file. Read more at https://www.speakeasy.com/docs/workflow-file-reference", + "fileMatch": ["**/.speakeasy/workflow.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/workflow.schema.json" + }, + { + "name": "Speakeasy Generation Config File", + "description": "Speakeasy generation configuration file. Read more at https://www.speakeasy.com/docs/speakeasy-reference/generation/gen-yaml", + "fileMatch": ["**/.speakeasy/gen.yaml"], + "url": "https://raw.githubusercontent.com/speakeasy-api/sdk-gen-config/main/schemas/gen.config.schema.json" + }, + { + "name": "SpecIF", + "description": "The Specification Integration Facility (SpecIF) integrates partial system models from different methods and tools in a semantic net. Documentation: https://specif.de and https://github.com/GfSE", + "fileMatch": ["*.specif", "*.specif.json"], + "url": "https://www.schemastore.org/specif-1.1.json", + "versions": { + "1.0": "https://www.schemastore.org/specif-1.0.json", + "1.1": "https://www.schemastore.org/specif-1.1.json" + } + }, + { + "name": "Specmatic Configuration", + "description": "Configuration file for Specmatic, a contract-driven testing tool", + "fileMatch": ["specmatic.json", "specmatic.yaml", "specmatic.yml"], + "url": "https://www.schemastore.org/specmatic.json" + }, + { + "name": "Sponge Mixin configuration", + "description": "Configuration file for SpongePowered's Mixin library", + "fileMatch": ["*.mixins.json"], + "url": "https://www.schemastore.org/sponge-mixins.json" + }, + { + "name": ".sprite files", + "description": "image sprite generation files", + "fileMatch": ["*.sprite"], + "url": "https://www.schemastore.org/sprite.json" + }, + { + "name": "SPDX 2.3", + "description": "System Package Data Exchange (SPDX) definition", + "fileMatch": ["*.spdx.json", "*.spdx.yaml", "*.spdx.yml"], + "url": "https://raw.githubusercontent.com/spdx/spdx-spec/refs/tags/v2.3/schemas/spdx-schema.json" + }, + { + "name": "sqlc configuration", + "description": "Configuration file for sqlc v2", + "fileMatch": ["sqlc.yaml", "sqlc.json", "*.sqlc.yaml"], + "url": "https://www.schemastore.org/sqlc-2.0.json" + }, + { + "name": "Azure Static Web Apps configuration file", + "description": "Documentation: https://learn.microsoft.com/en-us/azure/static-web-apps/configuration", + "fileMatch": ["staticwebapp.config.json"], + "url": "https://www.schemastore.org/staticwebapp.config.json" + }, + { + "name": "Azure Static Web Apps CLI configuration file", + "description": "Documentation: https://github.com/Azure/static-web-apps-cli#swa-cliconfigjson-file", + "fileMatch": ["swa-cli.config.json"], + "url": "https://www.schemastore.org/swa-cli.config.json" + }, + { + "name": "StackBlitz", + "description": "WebContainer project configuration", + "fileMatch": [".stackblitzrc", "**/.stackblitz/config.json"], + "url": "https://www.schemastore.org/stackblitzrc.json" + }, + { + "name": "Stale", + "description": "Configuration file for Stale for closing abandoned issues and pull requests. Documentation: https://probot.github.io/apps/stale/", + "fileMatch": ["**/.github/stale.yml"], + "url": "https://www.schemastore.org/stale.json" + }, + { + "name": "Starfish", + "description": "Configuration file for Starfish", + "fileMatch": ["starfish.yml"], + "url": "https://raw.githubusercontent.com/veepee-oss/json-schema/refs/heads/main/starfish/1-latest/starfish-schema.json" + }, + { + "name": "Starship", + "description": "Configuration file for Starship. Documentation: https://starship.rs", + "fileMatch": ["starship.toml"], + "url": "https://starship.rs/config-schema.json" + }, + { + "name": "Statamic Blueprint", + "description": "A Statamic Blueprint", + "fileMatch": [ + "**/resources/blueprints/**/*.yml", + "**/resources/blueprints/**/*.yaml" + ], + "url": "https://raw.githubusercontent.com/Konafets/statamic-blueprint-validation/main/statamic.blueprint.schema.json" + }, + { + "name": "Stella configuration file", + "description": "Configuration file for stella. Documentation: https://github.com/Shravan-1908/stellapy", + "fileMatch": ["stella.yml", "stella.json"], + "url": "https://raw.githubusercontent.com/Shravan-1908/stellapy/master/schema.json" + }, + { + "name": "Streamlit configuration file", + "description": "Streamlit configuration file", + "fileMatch": ["**/.streamlit/config.toml"], + "url": "https://www.schemastore.org/streamlit-config.json" + }, + { + "name": "stripe-app.json", + "description": "Stripe Apps manifest file", + "fileMatch": ["stripe-app.json"], + "url": "https://raw.githubusercontent.com/stripe/stripe-apps/main/schema/stripe-app.schema.json" + }, + { + "name": "stripe-app-local.json", + "description": "Stripe Apps local manifest file", + "fileMatch": ["stripe-app.*.json"], + "url": "https://raw.githubusercontent.com/stripe/stripe-apps/main/schema/stripe-app-local.schema.json" + }, + { + "name": "Stryker Mutator", + "description": "Configuration file for Stryker Mutator, the mutation testing framework for JavaScript and friends. Documentation: https://stryker-mutator.io", + "fileMatch": ["stryker.conf.json", "stryker-*.conf.json"], + "url": "https://raw.githubusercontent.com/stryker-mutator/stryker/master/packages/api/schema/stryker-core.json" + }, + { + "name": "StyleCop Analyzers Configuration", + "description": "Configuration file for StyleCop Analyzers", + "fileMatch": ["stylecop.json"], + "url": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json" + }, + { + "name": "Stylelint (.stylelintrc)", + "description": "Configuration file for stylelint", + "fileMatch": [ + ".stylelintrc", + ".stylelintrc.yml", + ".stylelintrc.yaml", + ".stylelintrc.json" + ], + "url": "https://www.schemastore.org/stylelintrc.json" + }, + { + "name": "SWADL", + "description": "Symphony Workflow Automation Definition Language. Documentation: https://developers.symphony.com/", + "fileMatch": ["*.swadl.yaml", "*.swadl.yml"], + "url": "https://raw.githubusercontent.com/SymphonyPlatformSolutions/symphony-wdk/master/workflow-language/src/main/resources/swadl-schema-1.0.json" + }, + { + "name": "Swagger API 2.0", + "description": "Swagger API 2.0", + "fileMatch": ["swagger.json"], + "url": "https://spec.openapis.org/oas/2.0/schema/2017-08-27" + }, + { + "name": "Synadia Connect Component", + "description": "Synadia Connect component definition", + "fileMatch": [ + "**/.connect/scanners/*.yml", + "**/.connect/sources/*.yml", + "**/.connect/sinks/*.yml" + ], + "url": "https://raw.githubusercontent.com/synadia-io/connect/main/schemas/component.json" + }, + { + "name": "Tach", + "description": "Tach configuration file", + "fileMatch": ["tach.toml"], + "url": "https://raw.githubusercontent.com/gauge-sh/tach/refs/heads/main/public/tach-toml-schema.json" + }, + { + "name": "Tach Domain", + "description": "Tach domain configuration file", + "fileMatch": ["tach.domain.toml"], + "url": "https://raw.githubusercontent.com/gauge-sh/tach/refs/heads/main/public/tach-domain-toml-schema.json" + }, + { + "name": "task.json", + "description": "VSCode Task file", + "fileMatch": ["task.json", "tasks.json"], + "url": "https://www.schemastore.org/task.json" + }, + { + "name": "Talhelper", + "description": "A helper tool to help creating Talos Kubernetes cluster", + "fileMatch": ["talconfig.yaml", "talconfig.yml"], + "url": "https://raw.githubusercontent.com/budimanjojo/talhelper/master/pkg/config/schemas/talconfig.json" + }, + { + "name": "Talisman configuration", + "description": "Configuration for .talismanrc", + "fileMatch": [".talismanrc"], + "url": "https://raw.githubusercontent.com/thoughtworks/talisman/main/examples/schema-store-talismanrc.json" + }, + { + "name": "Taurus", + "description": "Taurus bzt cli framework config", + "fileMatch": ["bzt.yml", "bzt.yaml", "taurus.yml", "taurus.yaml"], + "url": "https://www.schemastore.org/taurus.json" + }, + { + "name": "Tauticord", + "description": "Tauticord configuration (v2)", + "fileMatch": ["tauticord.yml", "tauticord.yaml"], + "url": "https://raw.githubusercontent.com/nwithan8/tauticord/master/.schema/config_v2.schema.json" + }, + { + "name": "template.json", + "description": ".NET template files", + "fileMatch": ["**/.template.config/template.json"], + "url": "https://www.schemastore.org/template.json" + }, + { + "name": "templatsources.json", + "description": "SideWaffle template source", + "fileMatch": ["templatesources.json"], + "url": "https://www.schemastore.org/templatesources.json" + }, + { + "name": "Tier.run pricing.json", + "description": "Tier.run pricing model configuration", + "fileMatch": ["pricing.json"], + "url": "https://raw.githubusercontent.com/tierrun/tier/main/pricing/schema.json" + }, + { + "name": "Tikibase", + "description": "Tikibase configuration file", + "fileMatch": ["tikibase.json"], + "url": "https://raw.githubusercontent.com/kevgo/tikibase/main/doc/tikibase.schema.json" + }, + { + "name": "theme.json", + "description": "WordPress block theme global settings and styles configuration file", + "fileMatch": ["theme.json"], + "url": "https://schemas.wp.org/trunk/theme.json", + "versions": { + "v1": "https://raw.githubusercontent.com/WordPress/gutenberg/b40b61fabf13a6229c616527689d9a7024f81535/schemas/json/theme.json", + "trunk": "https://raw.githubusercontent.com/WordPress/gutenberg/trunk/schemas/json/theme.json" + } + }, + { + "name": "Threagile", + "description": "Threagile Threat Model file", + "fileMatch": ["threagile.yaml", "threat-model.yaml"], + "url": "https://raw.githubusercontent.com/Threagile/threagile/refs/heads/master/support/schema.json" + }, + { + "name": "tizen_workspace.json", + "description": "Tizen project workspace configuration file", + "fileMatch": ["tizen_workspace.yaml"], + "url": "https://www.schemastore.org/tizen_workspace.json" + }, + { + "name": "tldr", + "description": "tldr configuration file", + "fileMatch": [".tldr.json"], + "url": "https://www.schemastore.org/tldr.json" + }, + { + "name": "Tombi", + "description": "Tombi (\u9cf6) is a toolkit for TOML; providing a formatter/linter and language server", + "fileMatch": ["tombi.toml", "**/tombi/config.toml"], + "url": "https://www.schemastore.org/tombi.json" + }, + { + "name": "tox", + "description": "tox configuration for automating Python testing and task management", + "fileMatch": ["tox.toml"], + "url": "https://raw.githubusercontent.com/tox-dev/tox/main/src/tox/tox.schema.json" + }, + { + "name": "TextMate Grammar", + "description": "Language grammar description files for TextMate and compatible editors", + "fileMatch": [ + "*.tmLanguage.json", + "*.tmLanguage.yaml", + "*.tmLanguage.yml", + "*.yaml-tmlanguage" + ], + "url": "https://www.schemastore.org/tmlanguage.json" + }, + { + "name": "TestEnvironment.json", + "description": "Visual Studio's test environment config", + "fileMatch": ["testEnvironments.json"], + "url": "https://www.schemastore.org/testenvironments.json" + }, + { + "name": "Turborepo", + "description": "Turborepo, a tool for managing monorepos", + "fileMatch": ["turbo.json"], + "url": "https://turborepo.org/schema.json" + }, + { + "name": "Travis CI (.travis.yml)", + "description": "Travis CI configuration file", + "fileMatch": [".travis.yml"], + "url": "https://www.schemastore.org/travis.json" + }, + { + "name": "Traefik v2", + "description": "Traefik v2 YAML configuration file", + "fileMatch": ["traefik.yml", "traefik.yaml"], + "url": "https://www.schemastore.org/traefik-v2.json" + }, + { + "name": "Traefik v2 File Provider", + "description": "Traefik v2 Dynamic Configuration File Provider", + "url": "https://www.schemastore.org/traefik-v2-file-provider.json" + }, + { + "name": "Traefik v3", + "description": "Traefik v3 YAML configuration file", + "url": "https://www.schemastore.org/traefik-v3.json" + }, + { + "name": "Traefik v3 File Provider", + "description": "Traefik v3 Dynamic Configuration File Provider", + "url": "https://www.schemastore.org/traefik-v3-file-provider.json" + }, + { + "name": "transcend.yml", + "description": "Configure as Code for Transcend", + "fileMatch": ["transcend.yml", "transcend.yaml"], + "url": "https://raw.githubusercontent.com/transcend-io/tools/refs/heads/main/packages/cli/schema/transcend-yml-schema-latest.json" + }, + { + "name": "trime.yaml", + "description": "trime configuration file", + "fileMatch": ["trime.yaml", "trime.yml", "*.trime.yaml", "*.trime.yml"], + "url": "https://raw.githubusercontent.com/osfans/trime/develop/doc/trime-schema.json" + }, + { + "name": "TrueScript for *.tscript files", + "description": "The Ultimate Script Language for monday.com - \u00a9 2024 MakeITSimple", + "fileMatch": ["*.tscript", "*.tscript.yaml", "*.tscript.yml"], + "url": "https://www.schemastore.org/truescript.json", + "versions": { + "latest": "https://www.schemastore.org/truescript.json" + } + }, + { + "name": "trunk.yaml", + "description": "Configuration trunk, a powerful linter runner. Documentation: https://docs.trunk.io", + "fileMatch": ["trunk.yaml"], + "url": "https://static.trunk.io/pub/trunk-yaml-schema.json" + }, + { + "name": "tsconfig.json", + "description": "TypeScript compiler configuration file", + "fileMatch": ["tsconfig*.json"], + "url": "https://www.schemastore.org/tsconfig.json" + }, + { + "name": "tsd.json", + "description": "DefinitelyTyped description manager (TSD)", + "fileMatch": ["tsd.json"], + "url": "https://www.schemastore.org/tsd.json" + }, + { + "name": "tsdoc.json", + "description": "TSDoc configuration file", + "fileMatch": ["tsdoc.json"], + "url": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json" + }, + { + "name": "tsdrc.json", + "description": "TypeScript Definition manager (tsd) global settings file", + "fileMatch": [".tsdrc"], + "url": "https://www.schemastore.org/tsdrc.json" + }, + { + "name": "ts-force-config.json", + "description": "Generated Typescript classes for Salesforce", + "fileMatch": ["ts-force-config.json"], + "url": "https://www.schemastore.org/ts-force-config.json" + }, + { + "name": "tslint.json", + "description": "TypeScript Lint configuration file", + "fileMatch": ["tslint.json", "tslint.yaml", "tslint.yml"], + "url": "https://www.schemastore.org/tslint.json" + }, + { + "name": "TSON", + "description": "TSON (Tuning-Spectrum Object Notation) data", + "fileMatch": ["*.tson", "*.tson.yaml", "*.tson.yml", "*.tson.json"], + "url": "https://raw.githubusercontent.com/spectral-discord/TSON/main/schema/tson.json" + }, + { + "name": "TSTyche", + "description": "TSTyche configuration file", + "fileMatch": ["tstyche.json", "tstyche.config.json"], + "url": "https://tstyche.org/schemas/config.json" + }, + { + "name": "tsup", + "description": "Configuration options for tsup", + "fileMatch": ["tsup.config.json"], + "url": "https://cdn.jsdelivr.net/npm/tsup/schema.json" + }, + { + "name": "tusk.yml", + "description": "tusk CLI configuration file", + "fileMatch": ["tusk.yml", "tusk.yaml"], + "url": "https://raw.githubusercontent.com/rliebz/tusk/main/tusk.schema.json" + }, + { + "name": "twee-ts", + "description": "twee-ts compiler configuration file", + "fileMatch": ["twee-ts.config.json"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/twee-ts.config.json" + }, + { + "name": "typewiz.json", + "description": "Typewiz configuration file", + "fileMatch": ["typewiz.json"], + "url": "https://www.schemastore.org/typewiz.json" + }, + { + "name": "typo3.json", + "description": "the Typo3 CMS", + "fileMatch": ["**/sites/*/config.yaml", "**/sites/*/config.yml"], + "url": "https://www.schemastore.org/typo3.json" + }, + { + "name": "TYPO3 Vendor Bundler config", + "description": "Configuration for TYPO3 Vendor Bundler, a Composer library to bundle vendor libraries for TYPO3 extensions in classic mode", + "fileMatch": [ + "typo3-vendor-bundler.json", + "typo3-vendor-bundler.yaml", + "typo3-vendor-bundler.yml" + ], + "url": "https://raw.githubusercontent.com/eliashaeussler/typo3-vendor-bundler/refs/heads/main/res/typo3-vendor-bundler.schema.json" + }, + { + "name": "typos.toml", + "description": "typos configuration file", + "fileMatch": ["typos.toml", "_typos.toml", ".typos.toml"], + "url": "https://raw.githubusercontent.com/crate-ci/typos/master/config.schema.json" + }, + { + "name": "typings.json", + "description": "Typings TypeScript definitions manager definition file", + "fileMatch": ["typings.json"], + "url": "https://www.schemastore.org/typings.json" + }, + { + "name": "typingsrc.json", + "description": "Typings TypeScript definitions manager configuration file", + "fileMatch": [".typingsrc"], + "url": "https://www.schemastore.org/typingsrc.json" + }, + { + "name": "Ubuntu Server Autoinstall", + "description": "Settings file for Ubuntu Autoinstall", + "fileMatch": ["user-data", "autoinstall.yaml"], + "url": "https://www.schemastore.org/ubuntu-server-autoinstall.json" + }, + { + "name": "up.json", + "description": "Up configuration file", + "fileMatch": ["up.json"], + "url": "https://www.schemastore.org/up.json" + }, + { + "name": "UI5 Manifest", + "description": "UI5 Manifest (manifest.json)", + "fileMatch": [ + "**/webapp/manifest.json", + "**/src/main/webapp/manifest.json", + "**/src/manifest.json" + ], + "url": "https://raw.githubusercontent.com/UI5/manifest/main/schema.json" + }, + { + "name": "ui5.yaml", + "description": "UI5 CLI Configuration File (ui5.yaml)", + "fileMatch": [ + "ui5.yaml", + "*-ui5.yaml", + "*.ui5.yaml", + "ui5-deploy.yaml", + "ui5-dist.yaml", + "ui5-local.yaml" + ], + "url": "https://ui5.github.io/cli/schema/ui5.yaml.json" + }, + { + "name": "ui5-workspace.yaml", + "description": "UI5 CLI Workspace Configuration File (ui5-workspace.yaml)", + "fileMatch": [ + "ui5-workspace.yaml", + "*-ui5-workspace.yaml", + "*.ui5-workspace.yaml", + "ui5-workspace-deploy.yaml", + "ui5-workspace-dist.yaml", + "ui5-workspace-local.yaml" + ], + "url": "https://ui5.github.io/cli/schema/ui5-workspace.yaml.json" + }, + { + "name": "UTAM Page Object", + "description": "UI Test Automation Model page object. Documentation: https://utam.dev/", + "fileMatch": ["*.utam.json", ".utam.json"], + "url": "https://www.schemastore.org/utam-page-object.json", + "versions": { + "current": "https://www.schemastore.org/utam-page-object.json", + "1.5.0": "https://www.schemastore.org/utam-page-object-1.5.0.json", + "2.0.3": "https://www.schemastore.org/utam-page-object-2.0.3.json", + "2.2.0": "https://www.schemastore.org/utam-page-object-2.2.0.json" + } + }, + { + "name": "UNCORS configuration", + "description": "Configuration file for UNCORS reverse proxy", + "fileMatch": [ + "*.uncors.yml", + "*.uncors.yaml", + ".uncors.yml", + ".uncors.yaml" + ], + "url": "https://raw.githubusercontent.com/evg4b/uncors/main/schema.json" + }, + { + "name": "Universal Schedule Format", + "description": "Universal Schedule Format (USF) configuration file", + "fileMatch": [ + "*.usf", + "*.usf.yml", + "*.usf.yaml", + "*.usf.json", + ".usf.yml", + ".usf.yaml", + ".usf.json", + "usf.yml", + "usf.yaml", + "usf.json" + ], + "url": "https://raw.githubusercontent.com/USF-org/USF/refs/heads/main/usf.schema.json" + }, + { + "name": "uv", + "description": "uv, a fast Python package installer", + "fileMatch": ["uv.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/uv.json" + }, + { + "name": "Vector", + "description": "Configuration file for Vector, an observability data pipeline agent and aggregator", + "fileMatch": ["vector.json", "vector.toml", "vector.yaml"], + "url": "https://www.schemastore.org/vector.json" + }, + { + "name": "vega.json", + "description": "Vega visualization specification file", + "fileMatch": ["*.vg", "*.vg.json"], + "url": "https://www.schemastore.org/vega.json" + }, + { + "name": "vega-lite.json", + "description": "Vega-Lite visualization specification file", + "fileMatch": ["*.vl", "*.vl.json"], + "url": "https://www.schemastore.org/vega-lite.json" + }, + { + "name": "Vela Pipeline Configuration", + "description": "Vela Pipeline Configuration File", + "fileMatch": [".vela.yml", ".vela.yaml"], + "url": "https://github.com/go-vela/server/releases/latest/download/schema.json" + }, + { + "name": "venvironment.yaml", + "description": "Simulation and test environment for Vector CANoe Server Editions", + "fileMatch": [ + "venvironment.yaml", + "*.venvironment.yaml", + "venvironment.yml", + "*.venvironment.yml", + "venvironment.json", + "*.venvironment.json" + ], + "url": "https://www.schemastore.org/venvironment-schema-v4.2.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/venvironment-schema-v1.0.0.json", + "1.1.0": "https://www.schemastore.org/venvironment-schema-v1.1.0.json", + "1.1.1": "https://www.schemastore.org/venvironment-schema-v1.1.1.json", + "2.0.0": "https://www.schemastore.org/venvironment-schema-v2.0.0.json", + "2.1.0": "https://www.schemastore.org/venvironment-schema-v2.1.0.json", + "2.2.0": "https://www.schemastore.org/venvironment-schema-v2.2.0.json", + "3.0.0": "https://www.schemastore.org/venvironment-schema-v3.0.0.json", + "3.1.0": "https://www.schemastore.org/venvironment-schema-v3.1.0.json", + "3.2.0": "https://www.schemastore.org/venvironment-schema-v3.2.0.json", + "4.0.0": "https://www.schemastore.org/venvironment-schema-v4.0.0.json", + "4.1.0": "https://www.schemastore.org/venvironment-schema-v4.1.0.json", + "4.2.0": "https://www.schemastore.org/venvironment-schema-v4.2.0.json" + } + }, + { + "name": "venvplus.yaml", + "description": "venvplus settings of Vector CANoe Server Editions", + "fileMatch": [ + "venvplus.yaml", + "*.venvplus.yaml", + "venvplus.yml", + "*.venvplus.yml", + "venvplus.json", + "*.venvplus.json" + ], + "url": "https://www.schemastore.org/venvplus-schema-v1.0.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/venvplus-schema-v1.0.0.json" + } + }, + { + "name": "Version Bumper config", + "description": "Configuration for Version Bumper, a Composer plugin to bump project versions during release preparations", + "fileMatch": [ + "version-bumper.json", + "version-bumper.yaml", + "version-bumper.yml" + ], + "url": "https://raw.githubusercontent.com/eliashaeussler/version-bumper/refs/heads/main/res/version-bumper.schema.json" + }, + { + "name": "version.json", + "description": "A project version descriptor file used by Nerdbank.GitVersioning", + "fileMatch": ["version.json"], + "url": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json" + }, + { + "name": ".versionrc.json", + "description": "Conventional Changelog Configuration file", + "fileMatch": [".versionrc", ".versionrc.json"], + "url": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.2.0/schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/1.0.0/schema.json", + "2.0.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.0.0/schema.json", + "2.1.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.1.0/schema.json", + "2.2.0": "https://raw.githubusercontent.com/conventional-changelog/conventional-changelog-config-spec/master/versions/2.2.0/schema.json" + } + }, + { + "name": "vhwdebugger-binding.yaml", + "description": "Configuration of the Vector CANoe hardware debugger binding", + "fileMatch": [ + "vhwdebugger-binding.yaml", + "*.vhwdebugger-binding.yaml", + "vhwdebugger-binding.yml", + "*.vhwdebugger-binding.yml" + ], + "url": "https://www.schemastore.org/vhwdebugger-binding-schema.json" + }, + { + "name": "vim-addon-info", + "description": "vim plugin addon-info.json metadata files", + "fileMatch": ["**/*vim*/addon-info.json"], + "url": "https://www.schemastore.org/vim-addon-info.json" + }, + { + "name": "vsls.json", + "description": "Visual Studio Live Share configuration file", + "fileMatch": [".vsls.json"], + "url": "https://www.schemastore.org/vsls.json" + }, + { + "name": "vs-2017.3.host.json", + "description": "Visual Studio template host file", + "fileMatch": ["vs-2017.3.host.json"], + "url": "https://www.schemastore.org/vs-2017.3.host.json" + }, + { + "name": "vs-nesting.json", + "description": "Visual Studio's file nesting feature", + "fileMatch": ["*.filenesting.json", ".filenesting.json"], + "url": "https://www.schemastore.org/vs-nesting.json" + }, + { + "name": ".vsconfig", + "description": "Visual Studio component configuration files", + "fileMatch": ["*.vsconfig"], + "url": "https://www.schemastore.org/vsconfig.json" + }, + { + "name": ".vsext", + "description": "Visual Studio extension pack manifests", + "fileMatch": ["*.vsext"], + "url": "https://www.schemastore.org/vsext.json" + }, + { + "name": "VSIX CLI publishing", + "description": "Visual Studio extension publishing", + "fileMatch": ["vs-publish.json"], + "url": "https://www.schemastore.org/vsix-publish.json" + }, + { + "name": "vss-extension.json", + "description": "Azure DevOps Extensions", + "fileMatch": ["vss-extension.json"], + "url": "https://www.schemastore.org/vss-extension.json" + }, + { + "name": "vtesttree.yaml", + "description": "Vector test execution tree description", + "fileMatch": ["*.vtesttree.yaml", "*.vtesttree.yml", "*.vtesttree.json"], + "url": "https://www.schemastore.org/vtesttree-schema-v2.4.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/vtesttree-schema-v1.0.0.json", + "2.0.0": "https://www.schemastore.org/vtesttree-schema-v2.0.0.json", + "2.1.0": "https://www.schemastore.org/vtesttree-schema-v2.1.0.json", + "2.2.0": "https://www.schemastore.org/vtesttree-schema-v2.2.0.json", + "2.3.0": "https://www.schemastore.org/vtesttree-schema-v2.3.0.json", + "2.4.0": "https://www.schemastore.org/vtesttree-schema-v2.4.0.json" + } + }, + { + "name": "vtestunit.yaml", + "description": "Vector test unit description", + "fileMatch": ["*.vtestunit.yaml", "*.vtestunit.yml", "*.vtestunit.json"], + "url": "https://www.schemastore.org/vtestunit-schema.json" + }, + { + "name": "v8r", + "description": "v8r configuration file", + "fileMatch": [".v8rrc.json", ".v8rrc.yaml", ".v8rrc.yml"], + "url": "https://raw.githubusercontent.com/chris48s/v8r/main/config-schema.json" + }, + { + "name": "WebExtensions", + "description": "WebExtension manifest files", + "fileMatch": ["manifest.json"], + "url": "https://www.schemastore.org/webextension.json" + }, + { + "name": "Web App Manifest", + "description": "Web Application manifest file", + "fileMatch": ["manifest.json", "*.webmanifest"], + "url": "https://www.schemastore.org/web-manifest-combined.json" + }, + { + "name": "webjobs-list.json", + "description": "Azure Webjob list file", + "fileMatch": ["webjobs-list.json"], + "url": "https://www.schemastore.org/webjobs-list.json" + }, + { + "name": "webjobpublishsettings.json", + "description": "Azure Webjobs publish settings file", + "fileMatch": ["webjobpublishsettings.json"], + "url": "https://www.schemastore.org/webjob-publish-settings.json" + }, + { + "name": "Web types", + "description": "JSON standard for web component libraries metadata", + "fileMatch": ["web-types.json", "*.web-types.json"], + "url": "https://www.schemastore.org/web-types.json" + }, + { + "name": "WP-CLI", + "description": "WP-CLI is the official command-line tool for WordPress", + "fileMatch": ["wp-cli.local.yml", "wp-cli.yml", "**/.wp-cli/config.yml"], + "url": "https://raw.githubusercontent.com/wp-cli/wp-cli/refs/heads/main/schemas/wp-cli-config.json" + }, + { + "name": "Wrangler CLI", + "description": "Wrangler is a command-line tool for building with Cloudflare developer products", + "fileMatch": ["wrangler.json", "wrangler.jsonc", "wrangler.toml"], + "url": "https://www.unpkg.com/wrangler/config-schema.json" + }, + { + "name": "XenForo add-on manifest", + "description": "A manifest describing a XenForo add-on", + "fileMatch": [], + "url": "https://docs.xenforo.com/schema/addon.schema.json" + }, + { + "name": "JSON-stat 2.0", + "description": "JSON-stat 2.0", + "url": "https://json-stat.org/format/schema/2.0/" + }, + { + "name": "KSP-AVC", + "description": "The .version file format for KSP-AVC", + "fileMatch": ["*.version"], + "url": "https://raw.githubusercontent.com/linuxgurugamer/KSPAddonVersionChecker/master/KSP-AVC.schema.json" + }, + { + "name": "KSP-CKAN", + "description": "Metadata spec for CKAN meta files", + "fileMatch": ["*.ckan"], + "url": "https://raw.githubusercontent.com/KSP-CKAN/CKAN/master/CKAN.schema" + }, + { + "name": "KSP-NetKAN", + "description": "Metadata spec for NetKAN files", + "fileMatch": ["*.netkan", "*.frozen"], + "url": "https://raw.githubusercontent.com/KSP-CKAN/CKAN/master/NetKAN.schema" + }, + { + "name": "JSON Schema Draft 4", + "description": "Meta-validation JSON Schema Draft 4", + "url": "https://json-schema.org/draft-04/schema" + }, + { + "name": "JSON Schema Draft 7", + "description": "Meta-validation JSON Schema Draft 7", + "fileMatch": ["*.schema.json"], + "url": "https://json-schema.org/draft-07/schema" + }, + { + "name": "JSON Schema Draft 8 (2019-09)", + "description": "Meta-validation JSON Schema Draft 8 (2019-09)", + "url": "https://json-schema.org/draft/2019-09/schema" + }, + { + "name": "JSON Schema Draft 2020-12", + "description": "Meta-validation JSON Schema Draft 2020-12", + "url": "https://json-schema.org/draft/2020-12/schema" + }, + { + "name": "xunit.runner.json", + "description": "Configuration file for unit test projects using xUnit.net", + "fileMatch": ["xunit.runner.json", "*.xunit.runner.json"], + "url": "https://www.schemastore.org/xunit.runner.schema.json", + "versions": { + "v2.2": "https://xunit.net/schema/v2.2/xunit.runner.schema.json", + "v2.3": "https://xunit.net/schema/v2.3/xunit.runner.schema.json", + "v2.4": "https://xunit.net/schema/current/xunit.runner.schema.json" + } + }, + { + "name": "servicehub.service.json", + "description": "Microsoft ServiceHub Service", + "fileMatch": ["*.servicehub.service.json"], + "url": "https://www.schemastore.org/servicehub.service.schema.json" + }, + { + "name": "servicehub.config.json", + "description": "Microsoft ServiceHub Configuration", + "fileMatch": ["servicehub.config.json"], + "url": "https://www.schemastore.org/servicehub.config.schema.json" + }, + { + "name": ".cryproj (generic)", + "description": "A CRYENGINE projects (.cryproj files)", + "fileMatch": ["*.cryproj"], + "url": "https://www.schemastore.org/cryproj.json", + "versions": { + "dev": "https://www.schemastore.org/cryproj.dev.schema.json", + "5.2": "https://www.schemastore.org/cryproj.52.schema.json", + "5.3": "https://www.schemastore.org/cryproj.53.schema.json", + "5.4": "https://www.schemastore.org/cryproj.54.schema.json", + "5.5": "https://www.schemastore.org/cryproj.55.schema.json" + } + }, + { + "name": "typedoc.json", + "description": "A the Typedoc configuration file", + "fileMatch": ["typedoc.json"], + "url": "https://typedoc.org/schema.json" + }, + { + "name": "tmuxinator", + "description": "tmuxinator, a tmux session manager", + "fileMatch": [ + ".tmuxinator.yaml", + ".tmuxinator.yml", + "**/.tmuxinator/*.yaml", + "**/.tmuxinator/*.yml", + "**/tmuxinator/*.yaml", + "**/tmuxinator/*.yml" + ], + "url": "https://www.schemastore.org/tmuxinator.json" + }, + { + "name": "huskyrc", + "description": "Husky can prevent bad `git commit`, `git push` and more \ud83d\udc36 woof!", + "fileMatch": [".huskyrc", ".huskyrc.json"], + "url": "https://www.schemastore.org/huskyrc.json" + }, + { + "name": "lint-staged (.lintstagedrc)", + "description": "lint-staged config", + "fileMatch": [ + ".lintstagedrc", + ".lintstagedrc.json", + ".lintstagedrc.yaml", + ".lintstagedrc.yml" + ], + "url": "https://www.schemastore.org/lintstagedrc.schema.json" + }, + { + "name": ".mdxlintrc", + "description": "An mdxlint configuration file", + "fileMatch": [ + ".mdxlintrc", + ".mdxlintrc.json", + ".mdxlintrc.yaml", + ".mdxlintrc.yml" + ], + "url": "https://www.schemastore.org/mdxlintrc.json" + }, + { + "name": "mirrord config", + "description": "mirrord", + "fileMatch": [ + "*.mirrord.json", + "*.mirrord.toml", + "*.mirrord.yaml", + "*.mirrord.yml" + ], + "url": "https://raw.githubusercontent.com/metalbear-co/mirrord/main/mirrord-schema.json" + }, + { + "name": "mise", + "description": "mise config, a polyglot dev tool manager", + "fileMatch": [ + ".mise.toml", + ".mise.*.toml", + "mise.toml", + "mise.*.toml", + "**/.mise/config.toml", + "**/.mise/config.*.toml", + "**/.mise/conf.d/*.toml", + "**/mise/config.toml", + "**/mise/config.*.toml", + "**/mise/conf.d/*.toml" + ], + "url": "https://mise.jdx.dev/schema/mise.json" + }, + { + "name": "mta.yaml", + "description": "A MTA projects v3.3", + "fileMatch": ["mta.yaml", "mta.yml"], + "url": "https://www.schemastore.org/mta.json" + }, + { + "name": "mtad.yaml", + "description": "A MTA deployment descriptors v3.3", + "fileMatch": ["mtad.yaml", "mtad.yml"], + "url": "https://www.schemastore.org/mtad.json" + }, + { + "name": "Motif config", + "description": "A Motif config file", + "fileMatch": ["motif.json"], + "url": "https://motif.land/api/motif.schema.json" + }, + { + "name": ".mtaext", + "description": "A MTA extension descriptors v3.3", + "fileMatch": ["*.mtaext"], + "url": "https://www.schemastore.org/mtaext.json" + }, + { + "name": "xs-app.json", + "description": "the SAP Application Router v8.2.2", + "fileMatch": ["xs-app.json"], + "url": "https://www.schemastore.org/xs-app.json" + }, + { + "name": "Opctl", + "description": "Opctl describing an op", + "fileMatch": ["**/.opspec/*/*.yml", "**/.opspec/*/*.yaml"], + "url": "https://www.schemastore.org/opspec-io-0.1.7.json" + }, + { + "name": "HEMTT", + "description": "HEMTT Project File", + "fileMatch": ["hemtt.json", "hemtt.toml"], + "url": "https://www.schemastore.org/hemtt-0.6.2.json", + "versions": { + "0.6.2": "https://www.schemastore.org/hemtt-0.6.2.json" + } + }, + { + "name": "Node.js configuration", + "description": "The Node.js configuration file", + "fileMatch": ["node.config.json"], + "url": "https://nodejs.org/docs/latest/node-config-schema.json" + }, + { + "name": "now", + "description": "ZEIT Now project configuration file", + "fileMatch": ["now.json"], + "url": "https://www.schemastore.org/now.json" + }, + { + "name": "taskcat", + "description": "taskcat", + "fileMatch": [".taskcat.yml"], + "url": "https://raw.githubusercontent.com/aws-quickstart/taskcat/master/taskcat/cfg/config_schema.json" + }, + { + "name": "BizTalkServerApplicationSchema", + "description": "BizTalk server application inventory json file", + "fileMatch": ["BizTalkServerInventory.json"], + "url": "https://www.schemastore.org/BizTalkServerApplicationSchema.json" + }, + { + "name": "httpmockrc", + "description": "Http-mocker is a tool for mock local requests or proxy remote requests", + "fileMatch": [".httpmockrc", ".httpmock.json"], + "url": "https://www.schemastore.org/httpmockrc.json" + }, + { + "name": "nitro.json", + "description": "Nitro Modules configuration file. Documentation: https://margelo.nitro.com", + "fileMatch": [], + "url": "https://nitro.margelo.com/nitro.schema.json" + }, + { + "name": "neoload", + "description": "Neotys as-code load test specification. Documentation: https://github.com/Neotys-Labs/neoload-cli", + "fileMatch": [ + ".nl.yaml", + ".nl.yml", + ".nl.json", + ".neoload.yaml", + ".neoload.yml", + ".neoload.json" + ], + "url": "https://raw.githubusercontent.com/Neotys-Labs/neoload-cli/master/resources/as-code.latest.schema.json" + }, + { + "name": "release drafter", + "description": "Release Drafter configuration file", + "fileMatch": ["**/.github/release-drafter.yml"], + "url": "https://raw.githubusercontent.com/release-drafter/release-drafter/master/schema.json" + }, + { + "name": "zuul", + "description": "Zuul CI configuration file", + "fileMatch": ["**/*zuul.d/*.yaml", ".zuul.yaml"], + "url": "https://www.schemastore.org/zuul.json" + }, + { + "name": "Briefcase", + "description": "Microsoft Briefcase configuration file", + "fileMatch": ["briefcase.yaml"], + "url": "https://raw.githubusercontent.com/microsoft/Briefcase/master/mlbriefcase/briefcase-schema.json" + }, + { + "name": "httparchive", + "description": "HTTP Archive", + "fileMatch": ["*.har"], + "url": "https://raw.githubusercontent.com/ahmadnassri/har-schema/master/lib/har.json" + }, + { + "name": "jsdoc", + "description": "JSDoc configuration file", + "fileMatch": ["conf.json", "jsdoc.json"], + "url": "https://www.schemastore.org/jsdoc-1.0.0.json" + }, + { + "name": "Ray", + "description": "Ray autocluster configuration file", + "fileMatch": ["ray-*-cluster.yaml"], + "url": "https://raw.githubusercontent.com/ray-project/ray/master/python/ray/autoscaler/ray-schema.json" + }, + { + "name": "Hadolint", + "description": "A smarter Dockerfile linter that helps you build best practice Docker images", + "fileMatch": [ + ".hadolint.yaml", + "hadolint.yaml", + ".hadolint.yml", + "hadolint.yml" + ], + "url": "https://raw.githubusercontent.com/hadolint/hadolint/master/contrib/hadolint.json" + }, + { + "name": "Hatch", + "description": "Python package build tool", + "fileMatch": ["hatch.toml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/hatch.json" + }, + { + "name": "helmfile", + "description": "Helmfile is a declarative spec for deploying helm charts", + "fileMatch": ["helmfile.yaml", "**/helmfile.d/**/*.yaml"], + "url": "https://www.schemastore.org/helmfile.json" + }, + { + "name": "helmwave", + "description": "Helmwave is a declarative spec for deploying helm charts", + "fileMatch": ["helmwave.yml"], + "url": "https://github.com/helmwave/helmwave/releases/latest/download/schema.json" + }, + { + "name": "Container Structure Test", + "description": "The Container Structure Tests provide a powerful framework to validate the structure of a container image", + "fileMatch": ["container-structure-test.yaml", "structure-test.yaml"], + "url": "https://www.schemastore.org/container-structure-test.json" + }, + { + "name": "\u017dinoma", + "description": "\u017dinoma incremental build configuration", + "fileMatch": ["zinoma.yml"], + "url": "https://github.com/fbecart/zinoma/releases/latest/download/zinoma-schema.json" + }, + { + "name": "Windows Package Manager Singleton Manifest", + "description": "Windows Package Manager Singleton Manifest file", + "fileMatch": ["**/manifests/?/*/*/*/*.*.yaml"], + "url": "https://www.schemastore.org/winget-pkgs-singleton-1.0.0.json", + "versions": { + "0.1": "https://www.schemastore.org/winget-pkgs-singleton-0.1.json", + "1.0.0": "https://www.schemastore.org/winget-pkgs-singleton-1.0.0.json" + } + }, + { + "name": "Windows Package Manager Installer Manifest", + "description": "Windows Package Manager Installer Manifest file, used for detailing installer specific metadata", + "fileMatch": ["**/manifests/?/*/*/*/*.*.installer.yaml"], + "url": "https://www.schemastore.org/winget-pkgs-installer-1.0.0.json" + }, + { + "name": "Windows Package Manager Locale Manifest", + "description": "Windows Package Manager Locale Manifest file, used for detailing locale specific metadata", + "fileMatch": [ + "**/manifests/?/*/*/*/*.*.locale.en-US.yaml", + "**/manifests/?/*/*/*/*.*.locale.fr-FR.yaml", + "**/manifests/?/*/*/*/*.*.locale.it-IT.yaml", + "**/manifests/?/*/*/*/*.*.locale.ja-JP.yaml", + "**/manifests/?/*/*/*/*.*.locale.ko-KR.yaml", + "**/manifests/?/*/*/*/*.*.locale.pt-BR.yaml", + "**/manifests/?/*/*/*/*.*.locale.ru-RU.yaml", + "**/manifests/?/*/*/*/*.*.locale.zh-CN.yaml", + "**/manifests/?/*/*/*/*.*.locale.zh-TW.yaml" + ], + "url": "https://www.schemastore.org/winget-pkgs-locale-1.0.0.json" + }, + { + "name": "Winutil", + "description": "Configuration for files in \"ChrisTitusTech/winutil\"", + "url": "https://www.schemastore.org/winutil-presets.json" + }, + { + "name": "commitlint (.commitlintrc)", + "description": "commitlint configuration files", + "fileMatch": [ + ".commitlintrc", + ".commitlintrc.json", + ".commitlintrc.yaml", + ".commitlintrc.yml" + ], + "url": "https://www.schemastore.org/commitlintrc.json" + }, + { + "name": "Uniswap Token List", + "description": "A list of tokens compatible with the Uniswap Interface", + "fileMatch": ["*.tokenlist.json"], + "url": "https://uniswap.org/tokenlist.schema.json" + }, + { + "name": "yamlfmt", + "description": "Configuration file for yamlfmt", + "fileMatch": [ + ".yamlfmt", + "yamlfmt.yml", + "yamlfmt.yaml", + ".yamlfmt.yaml", + ".yamlfmt.yml" + ], + "url": "https://www.schemastore.org/yamlfmt.json" + }, + { + "name": "yamllint", + "description": "yamllint uses a set of rules to check source files for problems", + "fileMatch": ["**/.yamllint", "**/.yamllint.yaml", "**/.yamllint.yml"], + "url": "https://www.schemastore.org/yamllint.json" + }, + { + "name": "Yippee-Ki-JSON configuration YML", + "description": "Action and rule configuration descriptor for Yippee-Ki-JSON transformations", + "fileMatch": ["**/yippee-*.yml", "**/*.yippee.yml"], + "url": "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/main/schema/yippee-ki-json_config_schema.json", + "versions": { + "latest": "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/main/schema/yippee-ki-json_config_schema.json", + "1.1.2": "https://raw.githubusercontent.com/nagyesta/yippee-ki-json/v1.1.2/schema/yippee-ki-json_config_schema.json" + } + }, + { + "name": "docker-compose.yml", + "description": "The Compose specification establishes a standard for the definition of multi-container platform-agnostic applications", + "fileMatch": [ + "**/docker-compose.yml", + "**/docker-compose.yaml", + "**/docker-compose.*.yml", + "**/docker-compose.*.yaml", + "**/compose.yml", + "**/compose.yaml", + "**/compose.*.yml", + "**/compose.*.yaml" + ], + "url": "https://raw.githubusercontent.com/compose-spec/compose-go/master/schema/compose-spec.json" + }, + { + "name": "devinit", + "description": "Devinit configuration file", + "fileMatch": ["devinit.json", ".devinit.json"], + "url": "https://www.schemastore.org/devinit.schema-6.0.json", + "versions": { + "1.0": "https://www.schemastore.org/devinit.schema-1.0.json", + "2.0": "https://www.schemastore.org/devinit.schema-2.0.json", + "3.0": "https://www.schemastore.org/devinit.schema-3.0.json", + "4.0": "https://www.schemastore.org/devinit.schema-4.0.json", + "5.0": "https://www.schemastore.org/devinit.schema-5.0.json", + "6.0": "https://www.schemastore.org/devinit.schema-6.0.json" + } + }, + { + "name": "djlint", + "description": "djLint configuration file", + "fileMatch": [".djlintrc"], + "url": "https://www.schemastore.org/djlint.json" + }, + { + "name": "tsoa", + "description": "the tsoa configuration file", + "fileMatch": ["**/tsoa.json"], + "url": "https://www.schemastore.org/tsoa.json" + }, + { + "name": "API Builder", + "description": "apibuilder.io", + "fileMatch": ["**/api.json"], + "url": "https://www.schemastore.org/apibuilder.json" + }, + { + "name": "Apollo Router", + "description": "Apollo Router: The runtime for graph-based API orchestration", + "fileMatch": ["apollo-router-*.json"], + "url": "https://www.schemastore.org/apollo-router-2.9.0.json", + "versions": { + "2.8.1": "https://www.schemastore.org/apollo-router-2.8.1.json", + "2.8.2": "https://www.schemastore.org/apollo-router-2.8.2.json", + "2.9.0": "https://www.schemastore.org/apollo-router-2.9.0.json" + } + }, + { + "name": "Gradle Enterprise", + "description": "Gradle Enterprise configuration", + "fileMatch": ["*gradle-enterprise.yml", "*gradle-enterprise.yaml"], + "url": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-15.json", + "versions": { + "1.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-1.json", + "2.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-2.json", + "3.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-3.json", + "4.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-4.json", + "5.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-5.json", + "6.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-6.json", + "7.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-7.json", + "8.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-8.json", + "9.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-9.json", + "10.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-10.json", + "11.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-11.json", + "12.0": "https://docs.gradle.com/develocity/helm-admin/schema/gradle-enterprise-config-schema-12.json", + "13.0": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-13.json", + "14.0": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-14.json", + "15.0": "https://docs.gradle.com/downloads/gradle-enterprise-config-schema/gradle-enterprise-config-schema-15.json" + } + }, + { + "name": "Gradle Build Cache Node", + "description": "Gradle Build Cache Node configuration", + "fileMatch": [ + "*build-cache-node-config.yml", + "*build-cache-node-config.yaml" + ], + "url": "https://docs.gradle.com/downloads/build-cache-node-config-schema/build-cache-node-config-schema-5.json", + "versions": { + "4.0": "https://docs.gradle.com/develocity/build-cache-node/schema/build-cache-node-config-schema-4.json", + "5.0": "https://docs.gradle.com/downloads/build-cache-node-config-schema/build-cache-node-config-schema-5.json" + } + }, + { + "name": "Yarn Config (.yarnrc.yml)", + "description": "Yarnrc configuration files", + "fileMatch": [".yarnrc.yml"], + "url": "https://yarnpkg.com/configuration/yarnrc.json" + }, + { + "name": "Better Code Hub", + "description": "Configuration file for Better Code Hub to override the default configuration", + "fileMatch": [".bettercodehub.yml"], + "url": "https://www.schemastore.org/bettercodehub.json" + }, + { + "name": "Starlake Data Pipeline", + "description": "Starlake Data Pipeline", + "fileMatch": ["*.sl.yml"], + "url": "https://www.schemastore.org/starlake.json" + }, + { + "name": "swcrc", + "description": "swc configuration files", + "fileMatch": [".swcrc"], + "url": "https://swc.rs/schema.json" + }, + { + "name": "OpenWeather Road Risk API", + "description": "OpenWeather Road Risk API responses", + "fileMatch": [], + "url": "https://www.schemastore.org/openweather.roadrisk.json" + }, + { + "name": "OpenWeather Current Weather API", + "description": "OpenWeather Current Weather API responses", + "fileMatch": [], + "url": "https://www.schemastore.org/openweather.current.json" + }, + { + "name": "JSON-e templates", + "description": "JSON-e templates", + "fileMatch": [], + "url": "https://www.schemastore.org/jsone.json" + }, + { + "name": "Taskfile config", + "description": "Taskfile files", + "fileMatch": [ + "Taskfile.yaml", + "Taskfile.dist.yaml", + "Taskfile.yml", + "Taskfile.dist.yml" + ], + "url": "https://taskfile.dev/schema.json" + }, + { + "name": ".taskrc.yaml", + "description": "Taskfile configuration files", + "fileMatch": [".taskrc.yaml", ".taskrc.yml", "taskrc.yaml", "taskrc.yml"], + "url": "https://taskfile.dev/schema-taskrc.json" + }, + { + "name": "Hammerkit", + "description": "hammerkit files", + "fileMatch": [ + ".hammerkit.yaml", + ".hammerkit.yml", + "*.hammerkit.yaml", + "*.hammerkit.yml" + ], + "url": "https://www.schemastore.org/hammerkit.json" + }, + { + "name": "Containerlab", + "description": "Containerlab topology definition files", + "fileMatch": ["*-clab.yaml", "*-clab.yml", "*.clab.yaml", "*.clab.yml"], + "url": "https://raw.githubusercontent.com/srl-labs/containerlab/main/schemas/clab.schema.json" + }, + { + "name": "User Journey Map", + "description": "user journey map definition files", + "fileMatch": ["*.jm.yaml", "*.jm.yml"], + "url": "https://raw.githubusercontent.com/arvinxx/components/master/packages/journey-map/schema/journey-map.schema.json" + }, + { + "name": "Render Blueprints", + "description": "Blueprints are Render\u2019s infrastructure-as-code model for defining, deploying, and managing multiple resources with a single YAML file", + "fileMatch": ["**/*render.yaml"], + "url": "https://render.com/schema/render.yaml.json" + }, + { + "name": "RKE Cluster Configuration YAML", + "description": "the cluster.yml configuration file for RKE", + "fileMatch": ["cluster.yml", "cluster.yaml"], + "url": "https://raw.githubusercontent.com/dcermak/vscode-rke-cluster-config/main/schemas/cluster.yml.json" + }, + { + "name": "RKE Cluster Configuration JSON", + "description": "the cluster.json configuration file for RKE", + "fileMatch": ["cluster.json"], + "url": "https://raw.githubusercontent.com/dcermak/vscode-rke-cluster-config/main/schemas/cluster.json" + }, + { + "name": "Liquibase", + "description": "liquibase JSON/YAML files", + "fileMatch": [ + "**/db/changelog/**/*.yaml", + "**/db/changelog/**/*.yml", + "**/db/changelog/**/*.json" + ], + "url": "https://www.schemastore.org/liquibase-3.2.json", + "versions": { + "1.0": "https://www.schemastore.org/liquibase.json", + "3.2": "https://www.schemastore.org/liquibase-3.2.json" + } + }, + { + "name": "Liquibase Flow File", + "description": "liquibase flow JSON/YAML files", + "fileMatch": ["*.flowfile.yaml", "*.flowfile.yml"], + "url": "https://www.liquibase.org/json/schema/liquibase-flow-file-latest.json" + }, + { + "name": "Pipeline component", + "description": "YAML the Kubeflow Pipelines' component.yaml files which describe a pipeline components. Component consists of input/output definitions and the description of the implementation which can either be a containerized command line program or an interconnected graph of tasks. Documentation: https://cloud-pipelines.github.io/links/component_authoring_documentation", + "fileMatch": [ + "component.yaml", + "kfp_component.yaml", + "kfp_component.json" + ], + "url": "https://raw.githubusercontent.com/Cloud-Pipelines/component_spec_schema/stable/component_spec.json_schema.json" + }, + { + "name": "skaffold.yaml", + "description": "the skaffold.yaml configuration file for Skaffold. Documentation: https://skaffold.dev", + "fileMatch": ["skaffold.yaml", "skaffold.yml"], + "url": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v3.json", + "versions": { + "v1alpha1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha1.json", + "v1alpha2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha2.json", + "v1alpha3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha3.json", + "v1alpha4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha4.json", + "v1alpha5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1alpha5.json", + "v1beta1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta1.json", + "v1beta2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta2.json", + "v1beta3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta3.json", + "v1beta4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta4.json", + "v1beta5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta5.json", + "v1beta6": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta6.json", + "v1beta7": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta7.json", + "v1beta8": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta8.json", + "v1beta9": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta9.json", + "v1beta10": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta10.json", + "v1beta11": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta11.json", + "v1beta12": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta12.json", + "v1beta13": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta13.json", + "v1beta14": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta14.json", + "v1beta15": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta15.json", + "v1beta16": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta16.json", + "v1beta17": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1beta17.json", + "v1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v1.json", + "v2alpha1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha1.json", + "v2alpha2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha2.json", + "v2alpha3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha3.json", + "v2alpha4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2alpha4.json", + "v2beta1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta1.json", + "v2beta2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta2.json", + "v2beta3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta3.json", + "v2beta4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta4.json", + "v2beta5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta5.json", + "v2beta6": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta6.json", + "v2beta7": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta7.json", + "v2beta8": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta8.json", + "v2beta9": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta9.json", + "v2beta10": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta10.json", + "v2beta11": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta11.json", + "v2beta12": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta12.json", + "v2beta13": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta13.json", + "v2beta14": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta14.json", + "v2beta15": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta15.json", + "v2beta16": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta16.json", + "v2beta17": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta17.json", + "v2beta18": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta18.json", + "v2beta19": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta19.json", + "v2beta20": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta20.json", + "v2beta21": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta21.json", + "v2beta22": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta22.json", + "v2beta23": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta23.json", + "v2beta24": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta24.json", + "v2beta25": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta25.json", + "v2beta26": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta26.json", + "v2beta27": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta27.json", + "v2beta28": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta28.json", + "v2beta29": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v1/content/en/schemas/v2beta29.json", + "v3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v3.json", + "v4beta1": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta1.json", + "v4beta2": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta2.json", + "v4beta3": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta3.json", + "v4beta4": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta4.json", + "v4beta5": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta5.json", + "v4beta6": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta6.json", + "v4beta7": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta7.json", + "v4beta8": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta8.json", + "v4beta9": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta9.json", + "v4beta10": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta10.json", + "v4beta11": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta11.json", + "v4beta12": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta12.json", + "v4beta13": "https://raw.githubusercontent.com/GoogleContainerTools/skaffold/main/docs-v2/content/en/schemas/v4beta13.json" + } + }, + { + "name": "Markdownlint", + "description": "Markdownlint config file", + "fileMatch": [ + ".markdownlintrc", + ".markdownlint.json", + ".markdownlint.jsonc", + ".markdownlint.yaml", + ".markdownlint.yml" + ], + "url": "https://raw.githubusercontent.com/DavidAnson/markdownlint/main/schema/markdownlint-config-schema.json" + }, + { + "name": "markdown-link-check", + "description": "markdown-link-check", + "fileMatch": [".markdown-link-check.json"], + "url": "https://www.schemastore.org/markdown-link-check.json" + }, + { + "name": "maturin", + "description": "Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages", + "fileMatch": ["maturin.toml"], + "url": "https://www.schemastore.org/maturin.json" + }, + { + "name": "Mason Registry", + "description": "Package definitions for Mason, a package manager for Neovim", + "fileMatch": ["**/packages/*/package.yaml"], + "url": "https://github.com/mason-org/registry-schema/releases/latest/download/package.schema.json" + }, + { + "name": "SauceCTL Configuration", + "description": "SauceCTL configuration files", + "fileMatch": ["**/.sauce/*.yml"], + "url": "https://raw.githubusercontent.com/saucelabs/saucectl/main/api/saucectl.schema.json" + }, + { + "name": "fulibWorkflows", + "description": "fulibWorkflows", + "fileMatch": ["*.es.yaml", "*.es.yml"], + "url": "https://raw.githubusercontent.com/fujaba/fulibWorkflows/main/schemas/fulibWorkflows.schema.json" + }, + { + "name": "Woodpecker pipeline config", + "description": "YAML configuring Woodpecker CI", + "fileMatch": [ + "**/.woodpecker/**.yml", + "**/.woodpecker.yml", + "**/.woodpecker/**.yaml", + "**/.woodpecker.yaml" + ], + "url": "https://raw.githubusercontent.com/woodpecker-ci/woodpecker/main/pipeline/frontend/yaml/linter/schema/schema.json" + }, + { + "name": "Netin Diagnostic System Template", + "description": "Device template", + "fileMatch": ["*.ndst.yml", "*.ndst.yaml", "*.ndst.json"], + "url": "https://s3.eu-central-1.amazonaws.com/files.netin.io/spider-schemas/template.schema.json" + }, + { + "name": "noodl config", + "description": "NOODL application config", + "fileMatch": ["*.noodl.yml"], + "url": "https://noodl.s3.us-west-1.amazonaws.com/noodl.schema.json" + }, + { + "name": "mboats", + "description": "MBOATS Configuration", + "fileMatch": ["*.mboats.yaml", "*.mboats.yml"], + "url": "https://www.schemastore.org/mboats-config-0.2.json", + "versions": { + "0.1": "https://www.schemastore.org/mboats-config-0.1.json", + "0.2": "https://www.schemastore.org/mboats-config-0.2.json" + } + }, + { + "name": "StackHawk Scanner Configuration", + "description": "StackHawk Scanner configuration files", + "fileMatch": [ + "stackhawk.yml", + "stackhawk.yaml", + "stackhawk-*.yml", + "stackhawk-*.yaml" + ], + "url": "https://download.stackhawk.com/hawk/jsonschema/hawkconfig.json" + }, + { + "name": "Serverless Framework Configuration", + "description": "Serverless framework configuration files", + "fileMatch": ["serverless.yml"], + "url": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/reference.json" + }, + { + "name": "Alacritty Configuration", + "description": "Alacritty configuration yaml file", + "fileMatch": [".alacritty.yml", "alacritty.yml", "alacritty.toml"], + "url": "https://raw.githubusercontent.com/distinction-dev/alacritty-schema/main/alacritty/reference.json" + }, + { + "name": "Serverless Workflow", + "description": "serverless workflows", + "fileMatch": ["*.sw.json", "*.sw.yml"], + "url": "https://raw.githubusercontent.com/serverlessworkflow/specification/main/schema/workflow.yaml", + "versions": { + "v0.9": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.9.x/schema/workflow.json", + "v0.8": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.8.x/schema/workflow.json", + "v0.7": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.7.x/schema/workflow.json", + "v0.6": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.6.x/schema/workflow.json", + "v0.5": "https://raw.githubusercontent.com/serverlessworkflow/specification/0.5.x/schema/workflow.json" + } + }, + { + "name": "Shopware 6 Configuration", + "description": "Shopware 6 custom configurations", + "fileMatch": ["shopware.yml", "shopware.yaml"], + "url": "https://raw.githubusercontent.com/shopware/platform/trunk/config-schema.json" + }, + { + "name": "Shopware CLI Extension Store Configuration", + "description": "Shopware CLI Extension Store Configuration", + "fileMatch": [".shopware-extension.yml", ".shopware-extension.yaml"], + "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shopware-extension-schema.json" + }, + { + "name": "Shopware CLI Project Store Configuration", + "description": "Shopware CLI Project Store Configuration", + "fileMatch": [ + ".shopware-project.yml", + ".shopware-project.yaml", + ".shopware-project.local.yml", + ".shopware-project.local.yaml" + ], + "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shopware-project-schema.json" + }, + { + "name": "Qodana", + "description": "A standard qodana.yaml (or qodana.yml) format for Qodana configuration. Documentation: https://jetbrains.com/qodana", + "fileMatch": ["qodana.yaml", "qodana.yml"], + "url": "https://www.schemastore.org/qodana-1.0.json" + }, + { + "name": "Tye", + "description": "Tye configuration files", + "fileMatch": ["tye.yaml", "tye.yml"], + "url": "https://raw.githubusercontent.com/dotnet/tye/main/src/schema/tye-schema.json" + }, + { + "name": "unist", + "description": "unist syntax trees", + "fileMatch": [], + "url": "https://www.schemastore.org/unist.json" + }, + { + "name": "Hugo Theme", + "description": "Hugo theme config file", + "fileMatch": [], + "url": "https://www.schemastore.org/hugo-theme.json" + }, + { + "name": "Hugo", + "description": "Hugo static site generator config file", + "fileMatch": ["hugo.toml", "hugo.json", "hugo.yaml"], + "url": "https://www.schemastore.org/hugo.json" + }, + { + "name": "Cheatsheets", + "description": "Cheatsheets config file", + "fileMatch": [ + "**/cheat/conf.yaml", + "**/cheat/conf.yml", + "**/.cheat/conf.yml" + ], + "url": "https://www.schemastore.org/cheatsheets.json" + }, + { + "name": "deployed-cli", + "description": "the deployed cli config file. Documentation: https://hyhello.github.io/deployed", + "fileMatch": [ + ".deployedrc", + ".deployed.json", + ".deployed.yaml", + ".deployed.yml" + ], + "url": "https://www.schemastore.org/deployed.json" + }, + { + "name": "Xstate Machine", + "description": "JSON that represents a statechart", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/statelyai/xstate/main/packages/core/src/machine.schema.json" + }, + { + "name": "Butane Config", + "description": "Fedora CoreOS Butane config file", + "fileMatch": ["*.bu"], + "url": "https://relativ-it.github.io/Butane-Schemas/Butane-Schema.json" + }, + { + "name": "Updatecli Compose", + "description": "Updatecli Compose file, more information on https://www.updatecli.io/docs/core/compose/", + "fileMatch": ["update-compose.yaml", "updatecli-compose.yaml"], + "url": "https://www.updatecli.io/schema/latest/compose/config.json" + }, + { + "name": "Updatecli Policy Manifest", + "description": "Updatecli Policy Manifest", + "fileMatch": [ + "**/updatecli.d/**/*.yaml", + "**/updatecli.d/**/*.yml", + "**/updatecli.d/**/*.json", + "updatecli.yml", + "updatecli.yaml" + ], + "url": "https://www.updatecli.io/schema/latest/policy/manifest/config.json" + }, + { + "name": "Updatecli Policy Metadata", + "description": "Updatecli Policy Metadata", + "fileMatch": ["**/updatecli/**/Policy.yaml"], + "url": "https://www.updatecli.io/schema/latest/policy/metadata/config.json" + }, + { + "name": "GeoJSON.json latest", + "description": "GeoJSON format for representing geographic data. Newest version from GeoJSON org", + "url": "https://geojson.org/schema/GeoJSON.json" + }, + { + "name": "clang-format (.clang-format)", + "description": "yaml clang-format config", + "fileMatch": [".clang-format"], + "url": "https://www.schemastore.org/clang-format-21.x.json", + "versions": { + "18.x": "https://www.schemastore.org/clang-format-18.x.json", + "21.x": "https://www.schemastore.org/clang-format-21.x.json" + } + }, + { + "name": "Estuary Flow Catalog", + "description": "Flow catalog files. Documentation: https://github.com/estuary/flow", + "fileMatch": ["flow.yaml", "*.flow.yaml", "flow.json", "*.flow.json"], + "url": "https://raw.githubusercontent.com/estuary/flow/master/flow.schema.json" + }, + { + "name": "V2Ray", + "description": "V2Ray jsonv4/jsonv5 configuration format", + "fileMatch": ["**/v2ray/*.json"], + "url": "https://raw.githubusercontent.com/EHfive/v2ray-jsonschema/main/v4-config.schema.json", + "versions": { + "jsonv4": "https://raw.githubusercontent.com/EHfive/v2ray-jsonschema/main/v4-config.schema.json", + "jsonv5-preview": "https://raw.githubusercontent.com/EHfive/v2ray-jsonschema/main/v5-config.schema.json" + } + }, + { + "name": "GherKing", + "description": "GherKing configuration", + "fileMatch": [".gherking.json", ".gherkingrc", "gherking.json"], + "url": "https://raw.githubusercontent.com/gherking/gherking/master/schema/gherking.schema.json" + }, + { + "name": "CICS TS region tagging", + "description": "CICS region tagging in IBM CICS Transaction Server for z/OS", + "fileMatch": ["cicstags.yaml", "cicstags.yml"], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/cicstags.json" + }, + { + "name": "CICS TS resource import", + "description": "resource import in IBM CICS Transaction Server for z/OS", + "fileMatch": ["*.cicsresourceimport.yaml", "*.cicsresourceimport.yml"], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/cicsts-resourceimport.json" + }, + { + "name": "CICS TS resource model", + "description": "resource model in IBM CICS Transaction Server for z/OS", + "fileMatch": [ + "*.cicsresourcemodel.yaml", + "*.cicsresourcemodel.yml", + "*.cicsappconstraints.yaml", + "*.cicsappconstraints.yml" + ], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/cicsts-resourcemodel.json" + }, + { + "name": "CICS TS resource overrides", + "description": "resource overrides in IBM CICS Transaction Server for z/OS", + "fileMatch": [ + "**/resourceoverrides/*.yaml", + "**/resourceoverrides/*.yml", + "*.cicsoverrides.yaml", + "*.cicsoverrides.yml" + ], + "url": "https://public.dhe.ibm.com/ibmdl/export/pub/software/htp/cics/schemas/json/resourceoverrides.json" + }, + { + "name": "Webman package recipe", + "description": "YAML a webman package", + "fileMatch": ["*.webman-pkg.yml"], + "url": "https://raw.githubusercontent.com/candrewlee14/webman/main/schema/pkg_schema.json" + }, + { + "name": "webhint.io", + "description": "A configuration file for hint", + "fileMatch": [".hintrc"], + "url": "https://raw.githubusercontent.com/webhintio/hint/main/packages/hint/src/lib/config/config-schema.json" + }, + { + "name": "AVA Configuration", + "description": "configuring AVA, the Node.js test runner", + "fileMatch": ["ava.config.json"], + "url": "https://www.schemastore.org/ava.json" + }, + { + "name": "Datahub Ingestion Recipe", + "description": "Datahub Ingestion recipe. Documentation: https://datahubproject.io/docs/metadata-ingestion", + "fileMatch": ["*.dhub.yml", "*.dhub.yaml", "*.dhub.json"], + "url": "https://datahubproject.io/schemas/datahub_ingestion_schema.json" + }, + { + "name": "Quali Torque Blueprint Spec 2", + "description": "Torque bluerpint", + "fileMatch": ["**/blueprints/**.yaml"], + "url": "https://raw.githubusercontent.com/QualiTorque/torque-vs-code-extensions/master/client/schemas/blueprint-spec2-schema.json" + }, + { + "name": "jscpd Configuration", + "description": "Copy/paste detector for programming source code", + "fileMatch": [".jscpd.json"], + "url": "https://www.schemastore.org/jscpd.json" + }, + { + "name": "Pterodactyl", + "description": "Pterodactyl, a free game server control panel", + "fileMatch": ["egg-*.json"], + "url": "https://www.schemastore.org/pterodactyl.json" + }, + { + "name": "Hardware Sentry Configuration", + "description": "Hardware Sentry configuration file", + "fileMatch": ["*hws-config*.yaml", "*hws-config*.yml"], + "url": "https://www.schemastore.org/hws-config.json" + }, + { + "name": "devspace.yaml", + "description": "yaml devspace.yaml", + "fileMatch": ["devspace.yaml"], + "url": "https://raw.githubusercontent.com/loft-sh/devspace/main/devspace-schema.json" + }, + { + "name": "macro.json", + "description": "Macro configuration file", + "fileMatch": ["macro.json"], + "url": "https://raw.githubusercontent.com/rebaz94/macro_kit/refs/heads/main/macro_schema.json" + }, + { + "name": "Monika Configuration", + "description": "Monika configuration file", + "fileMatch": ["*monika*.yaml", "*monika*.yml", "monika.json"], + "url": "https://www.schemastore.org/monika-config-schema.json" + }, + { + "name": "Istanbul", + "description": "Istanbul, a JavaScript code coverage tool", + "fileMatch": [".nycrc", ".nycrc.json", ".nycrc.yaml", ".nycrc.yml"], + "url": "https://www.schemastore.org/nycrc.json" + }, + { + "name": "MongoDB Atlas Search Index Definition", + "description": "MongoDB Atlas Search index", + "fileMatch": ["*-index.json"], + "url": "https://www.schemastore.org/mongodb-atlas-search-index-definition.json" + }, + { + "name": "KODE/CI build.yaml", + "description": "yaml kode/ci build", + "fileMatch": ["**/.kode/*.yaml"], + "url": "https://www.schemastore.org/kode-ci-build-1.0.0.json" + }, + { + "name": "Kong DBLess config", + "description": "dbless configuration YAML", + "fileMatch": ["kong.yaml", "kong.yml"], + "url": "https://www.schemastore.org/kong_json_schema.json" + }, + { + "name": "Embrace Config", + "description": "Embrace configuration file", + "fileMatch": ["embrace-config.json"], + "url": "https://www.schemastore.org/embrace-config-schema-1.0.0.json" + }, + { + "name": "petstore-v1.0", + "description": "petstore yaml validation", + "fileMatch": ["petstore-v1.0.json"], + "url": "https://www.schemastore.org/petstore-v1.0.json", + "versions": { + "1.0": "https://www.schemastore.org/petstore-v1.0.json", + "0.2": "https://www.schemastore.org/mboats-config-0.2.json" + } + }, + { + "name": "JFrog Pipelines YML DSL", + "description": "JFrog Pipelines YML based DSL definition", + "fileMatch": [ + "**/.jfrog-pipelines/**/*.yml", + "**/.jfrog-pipelines/**/*.yaml" + ], + "url": "https://www.schemastore.org/jfrog-pipelines.json" + }, + { + "name": "Safebox Config", + "description": "Documentation: https://github.com/monebag/safebox", + "fileMatch": ["*safebox*.yaml", "*safebox*.yml"], + "url": "https://www.schemastore.org/safebox-schema-v1.0.0.json" + }, + { + "name": "Sublime Syntax", + "description": "Sublime Text/Merge syntax highlighting definition", + "fileMatch": ["*.sublime-syntax"], + "url": "https://www.schemastore.org/sublime-syntax.json" + }, + { + "name": "Keycloak REST API", + "description": "REST API Keycloak Admin", + "url": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-19.0.0.json", + "versions": { + "16.0": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-16.0.json", + "17.0.1": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-17.0.1.json", + "18.0.0": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-18.0.0.json", + "19.0.0": "https://raw.githubusercontent.com/dahag-ag/keycloak-openapi/main/OpenApiDefinitions/keycloak-19.0.0.json" + } + }, + { + "name": "ize.toml", + "description": "ize Infra Tool", + "fileMatch": ["ize.toml"], + "url": "https://raw.githubusercontent.com/hazelops/ize/1.1.5/internal/schema/ize-spec.json", + "versions": { + "1.1.5": "https://raw.githubusercontent.com/hazelops/ize/1.1.5/internal/schema/ize-spec.json", + "1.1.4": "https://raw.githubusercontent.com/hazelops/ize/1.1.4/internal/schema/ize-spec.json" + } + }, + { + "name": "Uplift", + "description": "Uplift configuration file", + "fileMatch": [".uplift.yml", ".uplift.yaml", "uplift.yml", "uplift.yaml"], + "url": "https://upliftci.dev/static/schema.json" + }, + { + "name": "QueryFirst config file", + "description": "Config options for QueryFirst, SQL wrapper generator", + "fileMatch": ["qfconfig.json"], + "url": "https://www.schemastore.org/qfconfig.json", + "versions": { + "1.0": "https://www.schemastore.org/qfconfig.json" + } + }, + { + "name": "UET BuildConfig.json", + "description": "UET is an unofficial tool for Unreal Engine. The BuildConfig.json file allows you to specify how UET should build an Unreal Engine plugin, project or the engine itself", + "fileMatch": ["BuildConfig.json"], + "url": "https://raw.githubusercontent.com/RedpointGames/uet-schema/main/root.json" + }, + { + "name": "Unreal Engine Uplugin", + "description": "Unreal Engine plugin configuration file", + "fileMatch": [".uplugin"], + "url": "https://www.schemastore.org/uplugin.json" + }, + { + "name": "Unreal Engine Uproject", + "description": "Unreal Engine project configuration file", + "fileMatch": [".uproject"], + "url": "https://www.schemastore.org/uproject.json" + }, + { + "name": "Pantsbuild", + "description": "Pantsbuild configuration file", + "fileMatch": ["pants*.toml"], + "url": "https://www.schemastore.org/pantsbuild-2.31.0.json", + "versions": { + "2.14.0": "https://www.schemastore.org/pantsbuild-2.14.0.json", + "2.15.0": "https://www.schemastore.org/pantsbuild-2.15.0.json", + "2.16.0": "https://www.schemastore.org/pantsbuild-2.16.0.json", + "2.17.0": "https://www.schemastore.org/pantsbuild-2.17.0.json", + "2.18.0": "https://www.schemastore.org/pantsbuild-2.18.0.json", + "2.19.0": "https://www.schemastore.org/pantsbuild-2.19.0.json", + "2.20.0": "https://www.schemastore.org/pantsbuild-2.20.0.json", + "2.21.0": "https://www.schemastore.org/pantsbuild-2.21.0.json", + "2.24.0": "https://www.schemastore.org/pantsbuild-2.24.0.json", + "2.26.0": "https://www.schemastore.org/pantsbuild-2.26.0.json", + "2.30.0": "https://www.schemastore.org/pantsbuild-2.30.0.json", + "2.31.0": "https://www.schemastore.org/pantsbuild-2.30.0.json" + } + }, + { + "name": "All Contributors configuration file", + "description": "The configuration file used by the All Contributors CLI and GitHub bot", + "fileMatch": [".all-contributorsrc"], + "url": "https://www.schemastore.org/all-contributors.json" + }, + { + "name": "ES6 Import Sorter (.es6importsorterrc.json)", + "description": "The configuration file used for ES6 Import Sorter, a VSCode extension", + "fileMatch": [".es6importsorterrc.json"], + "url": "https://www.schemastore.org/es6importsorterrc.json" + }, + { + "name": "completely.yml", + "description": "Completely completion", + "fileMatch": ["completely.yml", "completely.yaml"], + "url": "https://github.com/DannyBen/completely/blob/master/schemas/completely.json" + }, + { + "name": "Madness (madness.yml)", + "description": "Madness settings", + "fileMatch": ["madness.yml", "madness.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/madness/master/schemas/madness.json" + }, + { + "name": "Bashly (bashly.yml)", + "description": "Bashly CLI", + "fileMatch": ["bashly.yml", "bashly.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/bashly/master/schemas/bashly.json" + }, + { + "name": "Bashly Settings (bashly-settings.yml)", + "description": "Bashly settings", + "fileMatch": ["bashly-settings.yml", "bashly-settings.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/bashly/master/schemas/settings.json" + }, + { + "name": "bashly-strings.yml", + "description": "Bashly strings", + "fileMatch": ["bashly-strings.yml", "bashly-strings.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/bashly/master/schemas/strings.json" + }, + { + "name": "bpkg", + "description": "A lightweight Bash package manager", + "fileMatch": ["bpkg.json"], + "url": "https://www.schemastore.org/bpkg.json" + }, + { + "name": "micro-settings.json", + "description": "Micro settings", + "fileMatch": ["**/.config/micro/settings.json"], + "url": "https://raw.githubusercontent.com/zyedidia/micro/master/data/micro.json" + }, + { + "name": "quilt.mod.json", + "description": "Metadata file used by the QuiltMC mod loader", + "fileMatch": ["quilt.mod.json"], + "url": "https://raw.githubusercontent.com/QuiltMC/quilt-json-schemas/main/quilt.mod.json/schemas/main.json" + }, + { + "name": "AutoAPICase", + "description": "auto api case", + "fileMatch": ["**/test_data/**/*.yml"], + "url": "https://www.schemastore.org/case_schema.json" + }, + { + "name": "secrethub.yml", + "description": "secrethub", + "fileMatch": ["secrethub.yml", "secrethub.yaml"], + "url": "https://raw.githubusercontent.com/DannyBen/secret_hub/master/schemas/secrethub.json" + }, + { + "name": "Dynamic Bash Aliases (.aliases)", + "description": "Dynamic Bash aliases", + "fileMatch": [".aliases"], + "url": "https://www.schemastore.org/aliases.json" + }, + { + "name": "Micro Editor Syntax", + "description": "Micro Editor syntaxes", + "fileMatch": ["**/micro/runtime/syntax/*.yaml"], + "url": "https://www.schemastore.org/micro-syntax.json" + }, + { + "name": "lazygit", + "description": "lazygit settings", + "fileMatch": ["**/lazygit/config.yml", "lazygit.yml", ".lazygit.yml"], + "url": "https://raw.githubusercontent.com/jesseduffield/lazygit/master/schema/config.json" + }, + { + "name": "lazydocker", + "description": "lazydocker settings", + "fileMatch": ["**/lazydocker/config.yml"], + "url": "https://www.schemastore.org/lazydocker.json" + }, + { + "name": "custom-elements.json", + "description": "A file format for describing custom elements", + "fileMatch": ["custom-elements.json"], + "url": "https://raw.githubusercontent.com/webcomponents/custom-elements-manifest/main/schema.json" + }, + { + "name": "warp-keysets.json", + "description": "Warp keyboard shortcut presets", + "fileMatch": ["**/.warp/keybindings.yaml"], + "url": "https://www.schemastore.org/warp-keysets.json" + }, + { + "name": "warp-themes.json", + "description": "Warp themes", + "fileMatch": ["**/.warp/themes/*.yaml"], + "url": "https://www.schemastore.org/warp-themes.json" + }, + { + "name": "warp-workflows.json", + "description": "Warp workflows", + "fileMatch": ["**/.warp/workflows/*.yaml"], + "url": "https://www.schemastore.org/warp-workflows.json" + }, + { + "name": "Goblet", + "description": "Goblet serverless framework config", + "fileMatch": ["**/.goblet/config.json"], + "url": "https://raw.githubusercontent.com/goblet/goblet/main/goblet.schema.json" + }, + { + "name": "Declarative Automation Bundles", + "description": "Declarative Automation Bundles config", + "fileMatch": ["databricks.yml", "databricks.yaml"], + "url": "https://github.com/databricks/cli/releases/latest/download/jsonschema.json" + }, + { + "name": "JSON Schema Draft 4 (unofficial with '$ref' and 'format')", + "description": "Meta-validation JSON Schema Draft 7 (unofficial with '$ref' and 'format')", + "url": "https://www.schemastore.org/schema-draft-v4.json" + }, + { + "name": "JSON Schema Draft 7 (unofficial strict)", + "description": "Meta-validation JSON Schema Draft 7 (unofficial strict)", + "url": "https://www.schemastore.org/metaschema-draft-07-unofficial-strict.json" + }, + { + "name": "Visivo", + "description": "Visivo IO Project Files", + "fileMatch": [ + "visivo.yml", + "visivo.yaml", + "visivo_project.yml", + "visivo_project.yaml", + "*.visivo.yml", + "*.visivo.yaml" + ], + "url": "https://docs.visivo.io/assets/visivo_schema.json" + }, + { + "name": "Endurica", + "description": "Endurica Input File", + "fileMatch": ["*.ki.json"], + "url": "https://enduricastorage.blob.core.windows.net/public/endurica-cl-schema.json" + }, + { + "name": "TunnelHub", + "description": "TunnelHub Automation Configuration File", + "fileMatch": ["tunnelhub.yml", "tunnelhub.yaml"], + "url": "https://www.schemastore.org/tunnelhub.json" + }, + { + "name": "ty", + "description": "ty, a fast Python type checker", + "fileMatch": ["ty.toml"], + "url": "https://www.schemastore.org/ty.json" + }, + { + "name": "Problem object RFC9457", + "description": "Problem object per RFC 9457", + "fileMatch": [], + "url": "https://www.schemastore.org/problem-object-rfc9457.json" + }, + { + "name": "apko", + "description": "apko (apk-based OCI image builder) config", + "fileMatch": [ + "apko.json", + "*.apko.json", + "apko.yaml", + "*.apko.yaml", + "apko.yml", + "*.apko.yml" + ], + "url": "https://raw.githubusercontent.com/chainguard-dev/apko/main/pkg/build/types/schema.json" + }, + { + "name": "Melange", + "description": "Melange pipeline config", + "fileMatch": [ + "melange.json", + "*.melange.json", + "melange.yaml", + "*.melange.yaml", + "melange.yml", + "*.melange.yml" + ], + "url": "https://raw.githubusercontent.com/chainguard-dev/melange/main/pkg/config/schema.json" + }, + { + "name": "Minecraft Custom Main Menu Mod", + "description": "Minecraft 1.12 Forge mod 'Custom Main Menu' config", + "fileMatch": ["mainmenu.yml", "mainmenu.yaml", "mainmenu.json"], + "url": "https://www.schemastore.org/minecraft-custom-main-menu-mod.json" + }, + { + "name": "rivet.yaml (legacy)", + "description": "Legacy Rivet game configuration file", + "fileMatch": ["rivet.yaml", "rivet.*.yaml", "rivet.toml", "rivet.*.toml"], + "url": "https://rivet.gg/rivet.schema.json" + }, + { + "name": "rivet.json", + "description": "Rivet configuration file", + "fileMatch": [ + "rivet.json", + "rivet.*.json", + "rivet.jsonc", + "rivet.*.jsonc" + ], + "url": "https://raw.githubusercontent.com/rivet-gg/rivet/refs/heads/main/site/src/content/docs/toolchain-spec.json" + }, + { + "name": "nixd configuration", + "description": "Configuration file for nixd", + "fileMatch": [".nixd.json"], + "url": "https://raw.githubusercontent.com/nix-community/nixd/main/nixd/docs/nixd-schema.json" + }, + { + "name": "Rudder techniques", + "description": "Rudder techniques", + "fileMatch": ["technique.yml", "technique.ids.yml"], + "url": "https://www.schemastore.org/rudder-techniques.json" + }, + { + "name": "SkyPilot Task JSON", + "description": "SkyPilot Task JSON to specify a task (resource requirements, setup commands, run commands, file mounts, storage mounts, and so on)", + "fileMatch": ["skypilot-task.yml", "skypilot-task.yaml"], + "url": "https://www.schemastore.org/skypilot-task.json" + }, + { + "name": "Adobe UXP Manifest", + "description": "Plug-in manifest for Adobe's Unified Extensibility Platform", + "fileMatch": [], + "url": "https://www.schemastore.org/uxp-manifest-5.json", + "versions": { + "5": "https://www.schemastore.org/uxp-manifest-5.json" + } + }, + { + "name": "Subsquid squid manifest", + "description": "Squid manifest for Subsquid Cloud deployments", + "fileMatch": ["squid.yaml", "*.squid.yaml", "squid.yml", "*.squid.yml"], + "url": "https://cdn.subsquid.io/schemas/squid_manifest.json" + }, + { + "name": "GitLab Agent for Kubernetes configuration", + "description": "GitLab Agent for Kubernetes configuration file", + "fileMatch": ["**/.gitlab/agents/*/config.yaml"], + "url": "https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/raw/master/pkg/agentcfg/agentcfg_schemas/gitlab.agent.agentcfg.ConfigurationFile.jsonschema.bundle.json" + }, + { + "name": "IVMS101 by CODE Protocol", + "description": "IVMS101 format from interVASP by CODE Protocol", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/codevasp-lab/IVMS101/main/json-schema.json" + }, + { + "name": "GlazeWM settings", + "description": "GlazeWM settings", + "fileMatch": ["**/.glaze-wm/config.yaml"], + "url": "https://www.schemastore.org/glazewm.json" + }, + { + "name": "CGS Card Game Specification (cgs.json)", + "description": "Card Game Simulator (CGS) Card Game Specification", + "fileMatch": ["cgs.json"], + "url": "https://www.cardgamesimulator.com/schema/cgs.json" + }, + { + "name": "Custom Machinery Machine", + "description": "Custom machinery machine specification (Minecraft mod)", + "fileMatch": ["**/data/*/machines/*.json", "**/data/*/machine/*.json"], + "url": "https://alec016.github.io/Custom-Machinery/Json%20Schema/src/main/resources/schemas/custom_machinery_machine.json" + }, + { + "name": "Custom Machinery Recipe", + "description": "Custom machinery recipes specification (Minecraft mod)", + "fileMatch": ["**/data/*/recipes/**/*.json"], + "url": "https://alec016.github.io/Custom-Machinery/Json%20Schema/src/main/resources/schemas/custom_machinery_recipe.json" + }, + { + "name": "Nuitka.yaml", + "description": "Nuitka Package Configuration", + "fileMatch": [ + "*.nuitka-package.config.yml", + "*.nuitka-package.config.yaml" + ], + "url": "https://raw.githubusercontent.com/Nuitka/Nuitka/develop/misc/nuitka-package-config-schema.json" + }, + { + "name": "bioimageio resource description", + "description": "Bioimage.io resource descriptions may be produced or consumed by bioimage.io-compatible software", + "fileMatch": ["bioimageio.yaml", "*.bioimageio.yaml"], + "url": "https://bioimage-io.github.io/spec-bioimage-io/bioimageio_schema_latest.json" + }, + { + "name": "Flow.json Configurations", + "description": "Project configuration for Cadence projects on Flow Blockchain", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/onflow/flow-cli/master/flowkit/schema.json" + }, + { + "name": "CWL", + "description": "The Common Workflow Language Configuration", + "fileMatch": ["*.cwl"], + "url": "https://raw.githubusercontent.com/common-workflow-lab/cwl-ts-auto/main/json_schemas/cwl_schema.json" + }, + { + "name": "shard.yml", + "description": "Shards configuration file", + "fileMatch": ["shard.yml"], + "url": "https://raw.githubusercontent.com/crystal-lang/shards/master/docs/shard.yml.schema.json" + }, + { + "name": "Erda Pipeline", + "description": "Erda Pipeline Configuration File", + "fileMatch": [ + "pipeline.yaml", + "pipeline.yml", + "**/.erda/pipelines/*.yaml", + "**/.erda/pipelines/*.yml", + "**/.dice/pipelines/*.yaml", + "**/.dice/pipelines/*.yml" + ], + "url": "https://raw.githubusercontent.com/erda-project/erda/master/.erda/schemas/pipeline.yaml.json" + }, + { + "name": "Erda Runtime", + "description": "Erda Runtime Configuration File", + "fileMatch": ["dice.yaml", "erda.yml"], + "url": "https://raw.githubusercontent.com/erda-project/erda/master/.erda/schemas/dice.yaml.json" + }, + { + "name": "KSY", + "description": "Kaitai Struct format description file", + "fileMatch": ["*.ksy"], + "url": "https://raw.githubusercontent.com/kaitai-io/ksy_schema/master/ksy_schema.json" + }, + { + "name": "KYA Manifest", + "description": "Know Your Agent (KYA) Manifest for autonomous AI agents (identity, governance, and operational constraints)", + "fileMatch": [ + "kya-manifest.json", + "kya.json", + "*.kya.json", + "kya-manifest.schema.json" + ], + "url": "https://www.schemastore.org/kya.json", + "versions": { + "development": "https://raw.githubusercontent.com/open-kya/kya-standard/main/schema/kya-manifest.schema.json", + "1.0": "https://raw.githubusercontent.com/open-kya/kya-standard/v1.0/schema/kya-manifest.schema.json" + } + }, + { + "name": "Cloud Foundry Application Manifest", + "description": "A manifest describes a Cloud Foundry application and can be used to deploy it to a Foundation", + "fileMatch": [], + "url": "https://www.schemastore.org/cloudfoundry-application-manifest.json" + }, + { + "name": ".omletrc", + "description": "Configuration file for @omlet/cli", + "fileMatch": [ + ".omletrc", + ".omletrc.json", + ".omletrc.yaml", + ".omletrc.yml", + "omletrc", + "omletrc.json", + "omletrc.yaml", + "omletrc.yml" + ], + "url": "https://www.schemastore.org/omletrc.json" + }, + { + "name": "vcluster", + "description": "vCluster configuration", + "fileMatch": [ + "vCluster.yml", + "vCluster.yaml", + "vcluster.yaml", + "vcluster.yml" + ], + "url": "https://raw.githubusercontent.com/loft-sh/vcluster/main/chart/values.schema.json" + }, + { + "name": "well-known-fursona", + "description": ".well-known/(fursona/fursona.json) files", + "fileMatch": [ + "fursona", + "fursona.json", + "**/.well-known/fursona", + "**/.well-known/fursona.json" + ], + "url": "https://raw.githubusercontent.com/pyrox0/fursona-schema/main/schema-07.json" + }, + { + "name": "changelogging", + "description": "changelogging configuration file", + "fileMatch": ["**/changelogging.toml"], + "url": "https://raw.githubusercontent.com/nekitdev/changelogging/main/changelogging.schema.json" + }, + { + "name": "Configu .cfgu files", + "description": "A human-readable format for declaring configurations and their characteristics", + "fileMatch": ["*.cfgu.json", "*.cfgu.yaml", "*.cfgu.yml"], + "url": "https://raw.githubusercontent.com/configu/configu/main/packages/schema/.cfgu.json" + }, + { + "name": "Configu .configu file", + "description": "An optional configuration file used by the various Configu interfaces to customize its behavior", + "fileMatch": [".configu"], + "url": "https://raw.githubusercontent.com/configu/configu/main/packages/schema/.configu.json" + }, + { + "name": "Qt Creator workspace file", + "description": "Qt Creator project json file", + "fileMatch": ["**/.qtcreator/project.json"], + "url": "https://download.qt.io/official_releases/qtcreator/latest/installer_source/jsonschemas/project.json" + }, + { + "name": "mprocs Configuration file", + "description": "mprocs (https://github.com/pvolok/mprocs) Configuration file using JSON/YAML", + "fileMatch": ["mprocs.json", "mprocs.yaml", "mprocs.yml"], + "url": "https://www.schemastore.org/mprocs-0.6.4.json" + }, + { + "name": "Language configuration", + "description": "Configuration file for language features in VS Code and Visual Studio", + "fileMatch": [ + "language-configuration.json", + "language-configuration.yaml", + "language-configuration.yml" + ], + "url": "https://www.schemastore.org/language-configuration.json" + }, + { + "name": "LangGraph Platform configuration", + "description": "LangGraph Platform configuration file", + "fileMatch": [ + "langgraph.json", + "langgraph.*.json", + ".langgraph.json", + ".langgraph.*.json" + ], + "url": "https://raw.githubusercontent.com/langchain-ai/langgraph/main/libs/cli/schemas/version.schema.json" + }, + { + "name": "Any", + "description": "Valid for any JSON file", + "fileMatch": [], + "url": "https://www.schemastore.org/any.json" + }, + { + "name": "zerops.yml", + "description": "Zerops build, deploy and run configuration YAML file", + "fileMatch": ["zerops.yml", "zerops.yaml"], + "url": "https://api.app-prg1.zerops.io/api/rest/public/settings/zerops-yml-json-schema.json" + }, + { + "name": "Zerops import file", + "description": "Zerops infrastructure-as-code import YAML file", + "fileMatch": [ + "zerops-import.yml", + "zerops-import.yaml", + "zerops-*-import.yml", + "zerops-*-import.yaml" + ], + "url": "https://api.app-prg1.zerops.io/api/rest/public/settings/import-project-yml-json-schema.json" + }, + { + "name": "Microsoft RulesEngine workflow rules", + "description": "Microsoft RulesEngine workflow rules definition https://github.com/microsoft/RulesEngine", + "fileMatch": ["*.workflow-rules.json", "**/workflow-rules/*.json"], + "url": "https://raw.githubusercontent.com/microsoft/RulesEngine/main/schema/workflow-schema.json" + }, + { + "name": "Microsoft RulesEngine workflow rules list", + "description": "Microsoft RulesEngine workflow list definition https://github.com/microsoft/RulesEngine", + "fileMatch": ["*.workflow-rules-list.json"], + "url": "https://raw.githubusercontent.com/microsoft/RulesEngine/main/schema/workflow-list-schema.json" + }, + { + "name": "spicepod.yaml", + "description": "Spice.ai OSS Spicepod Manifest file", + "fileMatch": ["spicepod.yml", "spicepod.yaml"], + "url": "https://raw.githubusercontent.com/spiceai/spiceai/trunk/.schema/spicepod.schema.json" + }, + { + "name": "Concord", + "description": "Concord - https://github.com/walmartlabs/concord, workflow orchestrator", + "fileMatch": [ + "*.concord.yaml", + "*.concord.yml", + ".concord.yml", + ".concord.yaml", + "concord.yml", + "concord.yaml", + "**/*.concord.yaml", + "**/*.concord.yml" + ], + "url": "https://repo1.maven.org/maven2/com/walmartlabs/concord/runtime/v2/concord-runtime-model-v2/2.14.0/concord-runtime-model-v2-2.14.0-schema.json" + }, + { + "name": "CRS WAF test file", + "description": "Definition of a test for verifying WAF behavior", + "fileMatch": ["*.waft", ".waft.yaml", ".waft.yml"], + "url": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.2.0/waf-tests-schema-v2.2.0.json", + "versions": { + "2.0.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.0.0/waf-tests-schema-v2.0.0.json", + "2.1.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.1.0/waf-tests-schema-v2.1.0.json", + "2.2.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/main/spec/v2.2.0/waf-tests-schema-v2.2.0.json" + } + }, + { + "name": "CRS WAF test platform overrides file", + "description": "Definition of platform specific overrides for WAF tests", + "fileMatch": ["*.wafto", ".wafto.yaml", ".wafto.yml"], + "url": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.2.0/waf-platform-overrides-schema-v2.2.0.json", + "versions": { + "2.0.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.0.0/waf-platform-overrides-schema-v2.0.0.json", + "2.1.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.1.0/waf-platform-overrides-schema-v2.1.0.json", + "2.2.0": "https://raw.githubusercontent.com/coreruleset/ftw-tests-schema/master/spec/v2.2.0/waf-platform-overrides-schema-v2.2.0.json" + } + }, + { + "name": "DipDup", + "description": "DipDup project configuration file", + "fileMatch": [ + "**/dipdup.yaml", + "**/dipdup.yml", + "**/dipdup.*.yaml", + "**/dipdup.*.yml" + ], + "url": "https://raw.githubusercontent.com/dipdup-io/dipdup/next/schemas/dipdup-3.0.json", + "versions": { + "3.0": "https://raw.githubusercontent.com/dipdup-io/dipdup/next/schemas/dipdup-3.0.json", + "2.0": "https://raw.githubusercontent.com/dipdup-io/dipdup/next/schemas/dipdup-2.0.json" + } + }, + { + "name": "Tycho", + "description": "Tycho.yaml file", + "fileMatch": ["**/tycho.yml", "**/tycho.yaml"], + "url": "https://deployments.allegrogroup.com/tycho/schema" + }, + { + "name": "Elm", + "description": "elm.json file", + "fileMatch": ["elm.json"], + "url": "https://www.schemastore.org/elm.json" + }, + { + "name": "Cloud Run Spec v1", + "description": "Specification for Cloud Run Admin API v1", + "fileMatch": ["cloud-run-v1.yml", "cloud-run-v1.yaml"], + "url": "https://www.schemastore.org/cloud-run-v1.json" + }, + { + "name": "YouTrack App", + "description": "JetBrains YouTrack App manifest file", + "fileMatch": [], + "url": "https://www.schemastore.org/youtrack-app.json" + }, + { + "name": "Settings for a Cinnamon spice", + "description": "Settings for a Cinnamon spice", + "fileMatch": ["**/*@*/**/settings-schema.json"], + "url": "https://www.schemastore.org/cinnamon-spice-settings.json" + }, + { + "name": "Metadata for a Cinnamon spice", + "description": "Metadata for a Cinnamon spice", + "fileMatch": ["**/*@*/**/metadata.json"], + "url": "https://www.schemastore.org/cinnamon-spice-metadata.json" + }, + { + "name": "Yandex Workflow Language", + "description": "YaWL specification file", + "fileMatch": ["*.yawl.yaml", "*.yawl.yml"], + "url": "https://raw.githubusercontent.com/yandex-cloud/json-schema-store/master/serverless/workflows/yawl.json" + }, + { + "name": "Application list for a WinUtil", + "description": "Application list for a WinUtil", + "fileMatch": ["**/*winutil*/config/applications.json"], + "url": "https://www.schemastore.org/winutil-applications.json" + }, + { + "name": "Preset list for a WinUtil", + "description": "Preset list for a WinUtil", + "fileMatch": ["**/*winutil*/config/preset.json"], + "url": "https://www.schemastore.org/winutil-preset.json" + }, + { + "name": "GitHub Actions typing", + "description": "Describe types of inputs and outputs for GitHub Actions' actions", + "fileMatch": ["action-types.yml", "action-types.yaml"], + "url": "https://raw.githubusercontent.com/typesafegithub/github-actions-typing/refs/heads/schema-latest/github-actions-typing.schema.json" + }, + { + "name": "Tab list for a LinUtil", + "description": "Tab list for a LinUtil", + "fileMatch": ["**/*linutil*/**/tabs.toml"], + "url": "https://www.schemastore.org/linutil-tabs.json" + }, + { + "name": "Tab data for a LinUtil", + "description": "Tab data for a LinUtil", + "fileMatch": ["**/*linutil*/**/tab_data.toml"], + "url": "https://www.schemastore.org/linutil-tab-data.json" + }, + { + "name": "ArchitectFX", + "description": "Grammar for ArchitectFX's trees", + "fileMatch": ["*.jdsl"], + "url": "https://www.schemastore.org/architectfx.json" + }, + { + "name": "Eidolon Resource", + "description": "Resource definitions for Eidolon", + "fileMatch": [ + "*.eidolon.yaml", + "*.eidolon.yml", + "**/eidolon_resources/**/*.yaml", + "**/eidolon_resources/**/*.yml" + ], + "url": "https://www.eidolonai.com/json_schema/v1/resources/overview.json" + }, + { + "name": "Waku Config", + "description": "Configuration file for the Waku CLI", + "fileMatch": [ + "**/waku.yml", + "**/waku.yaml", + "**/waku.json", + "**/.waku.yml", + "**/.waku.yaml", + "**/.waku.json" + ], + "url": "https://waku.ngjx.org/static/schema.json" + }, + { + "name": "ccmod.json", + "description": "Mod manifset file for the CCLoader mod loader for the game CrossCode", + "fileMatch": ["ccmod.json"], + "url": "https://raw.githubusercontent.com/CCDirectLink/CCModDB/refs/heads/master/ccmod-json-schema.json" + }, + { + "name": "moon.yml", + "description": "Moonrepo project configuration file", + "fileMatch": ["moon.yml"], + "url": "https://raw.githubusercontent.com/moonrepo/moon/master/website/static/schemas/project.json" + }, + { + "name": "WireMock stub mapping", + "description": "WireMock single or multiple stub mapping JSON. See https://wiremock.org/docs/stubbing/", + "fileMatch": [ + "wiremock-stub-mapping.yml", + "wiremock-stub-mapping.yaml", + "stubs.json", + "stub-mappings.json", + "stubs.yaml", + "stub-mappings.yaml" + ], + "url": "https://raw.githubusercontent.com/wiremock/wiremock/refs/heads/master/schemas/wiremock-stub-mapping-or-mappings.json" + }, + { + "name": "WireMock message stub mapping", + "description": "WireMock single or multiple async message stub mapping JSON. See https://wiremock.org/docs/messaging/stubbing/", + "fileMatch": [ + "wiremock-message-stub-mapping.yml", + "wiremock-message-stub-mapping.yaml", + "message-stubs.json", + "message-stub-mappings.json", + "message-stubs.yaml", + "message-stub-mappings.yaml" + ], + "url": "https://raw.githubusercontent.com/wiremock/wiremock/refs/heads/master/schemas/wiremock-message-stub-mapping-or-mappings.json" + }, + { + "name": "WireMock CLI local service configuration", + "description": "WireMock CLI and Runner local service config file format", + "fileMatch": ["wiremock.yaml"], + "url": "https://static.wiremock.io/schemas/wiremock.yaml-schema.json" + }, + { + "name": "WireMock CLI import configuration", + "description": "WireMock CLI import and record config file format", + "fileMatch": ["wiremock-import-config.yaml"], + "url": "https://static.wiremock.io/schemas/wiremock-import-config.yaml-schema.json" + }, + { + "name": "Bitmovin Encoding Template", + "description": "An encoding workflow from a single configuration template", + "fileMatch": ["*.bitmovin.json", "*.bitmovin.yml", "*.bitmovin.yaml"], + "url": "https://raw.githubusercontent.com/bitmovin/bitmovin-api-sdk-examples/main/bitmovin-encoding-template.json" + }, + { + "name": "dtool dataset metadata", + "description": "Metadata attached to a dtool dataset", + "fileMatch": [ + "dtool-dataset.yml", + "dtool-dataset.yaml", + "dtool-dataset.json" + ], + "url": "https://www.schemastore.org/dtool-dataset-metadata-1.0.json", + "versions": { + "v1.0": "https://www.schemastore.org/dtool-dataset-metadata-1.0.json" + } + }, + { + "name": "pnpm Workspace (pnpm-workspace.yaml)", + "description": "Workspace file for pnpm", + "fileMatch": ["pnpm-workspace.yaml"], + "url": "https://www.schemastore.org/pnpm-workspace.json" + }, + { + "name": "Chamaleon template", + "description": "Chamaleon template", + "fileMatch": ["template.chamaleon.json"], + "url": "https://raw.githubusercontent.com/gerardorodriguezdev/chamaleon/refs/heads/master/schemas/template-schema.json" + }, + { + "name": "Chamaleon environment", + "description": "Chamaleon environment", + "fileMatch": ["*.environment.chamaleon.json"], + "url": "https://raw.githubusercontent.com/gerardorodriguezdev/chamaleon/refs/heads/master/schemas/environment-schema.json" + }, + { + "name": "Chamaleon properties", + "description": "Chamaleon properties", + "fileMatch": ["properties.chamaleon.json"], + "url": "https://raw.githubusercontent.com/gerardorodriguezdev/chamaleon/refs/heads/master/schemas/properties-schema.json" + }, + { + "name": "ctfd-setup configuration file", + "description": "CTFer.io ctfd-setup utility configuration file", + "fileMatch": [".ctfd.yaml"], + "url": "https://www.schemastore.org/ctfd.json" + }, + { + "name": "AMX Muse Program Descriptor", + "description": "A MUSE program descriptor file", + "fileMatch": [], + "url": "https://www.schemastore.org/amx-muse.json" + }, + { + "name": "DonateCaseBetterCasino menu", + "description": "Configuration file for dcbc addon menus", + "fileMatch": ["*dcbc.yml", "*dcbc.yaml"], + "url": "https://raw.githubusercontent.com/Jodexx/DCBetterCasinoMenuSchema/refs/heads/main/schema.json" + }, + { + "name": "gematik health care patient list", + "description": "A list of health care patients in german telemedicine", + "fileMatch": [ + "**/testdata/patient/patients.yml", + "**/testdata/patient/patients.yaml" + ], + "url": "https://www.schemastore.org/gematik-test-patients.json" + }, + { + "name": "gematik health care provider list", + "description": "A list of health care providers in german telemedicine", + "fileMatch": ["**/testdata/hcp/hcp.yml", "**/testdata/hcp/hcp.yaml"], + "url": "https://www.schemastore.org/gematik-test-hcps.json" + }, + { + "name": "gematik health care provider institution list", + "description": "A list of health care provider institutions in german telemedicine", + "fileMatch": [ + "**/testdata/institution/hcpi.yml", + "**/testdata/institution/hcpi.yaml" + ], + "url": "https://www.schemastore.org/gematik-test-hcpis.json" + }, + { + "name": "gematik health care insurance list", + "description": "A list of health care insurances in german telemedicine", + "fileMatch": [ + "**/testdata/insurance/insurance.yml", + "**/testdata/insurance/insurance.yaml" + ], + "url": "https://www.schemastore.org/gematik-test-hcpis.json" + }, + { + "name": "gematik tiger test environment configuration", + "description": "A configuration file for the test environment of the gematik Tiger test platform", + "fileMatch": ["**/tiger.yml", "**/tiger.yaml"], + "url": "https://www.schemastore.org/gematik-tiger.json" + }, + { + "name": "Tugboat QA config.yml", + "description": "Configuration file for Tugboat QA", + "fileMatch": ["**/.tugboat/config.yml"], + "url": "https://raw.githubusercontent.com/TugboatQA/docs/refs/heads/main/static/config-schema.json" + }, + { + "name": "C4InterFlow", + "description": "C4InterFlow Architecture as Code file", + "fileMatch": ["**/*.c4interflow.yaml", "**/*.c4interflow.json"], + "url": "https://raw.githubusercontent.com/SlavaVedernikov/C4InterFlow/refs/heads/master/C4InterFlow/schema.json" + }, + { + "name": "Wake", + "description": "Wake - development, testing, and static analysis framework for Solidity", + "fileMatch": ["**/*wake.toml", "**/*.wake.toml"], + "url": "https://raw.githubusercontent.com/Ackee-Blockchain/wake/refs/heads/main/docs/wake-schema.json" + }, + { + "name": "Trident", + "description": "Trident - Rust-based fuzzing framework for Solana programs to help ship secure code", + "fileMatch": ["**/*Trident.toml", "**/*.Trident.toml"], + "url": "https://raw.githubusercontent.com/Ackee-Blockchain/trident/refs/heads/master/trident-spec.json" + }, + { + "name": "Unified Tenant Configuration Management (UTCM) Monitor", + "description": "Configuration file for the Unified Tenant Configuration Management (UTCM) Monitor", + "fileMatch": ["*.utcm-monitor.json"], + "url": "https://www.schemastore.org/utcm-monitor.json" + }, + { + "name": "UpCloud CLI (upctl) configuration", + "description": "Configuration file for the UpCloud CLI (upctl)", + "fileMatch": ["**/upctl.yaml"], + "url": "https://raw.githubusercontent.com/UpCloudLtd/upcloud-cli/refs/heads/main/docs/upctl.schema.json" + }, + { + "name": "Restate", + "description": "Restate Server configuration file", + "fileMatch": ["**/restate.toml", "**/restate-server.toml"], + "url": "https://docs.restate.dev/schemas/restate-server-configuration-schema.json" + }, + { + "name": "Telefonistka", + "description": "Telefonistka - Safe and Controlled GitOps Promotion Across Environments/Failure-Domains", + "fileMatch": ["**/telefonistka.yaml"], + "url": "https://raw.githubusercontent.com/commercetools/telefonistka/refs/heads/main/schema/telefonistka.json" + }, + { + "name": "version", + "description": "Project version information", + "fileMatch": [".version.json"], + "url": "https://raw.githubusercontent.com/ljonesfl/bump/refs/heads/master/version-schema.json" + }, + { + "name": "Viash Component Config", + "description": "Viash component config file", + "fileMatch": ["*.vsh.yaml", "*.vsh.yml"], + "url": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/latest/config.schema.json", + "versions": { + "0.7.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.7.5/config.schema.json", + "0.8.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.0/config.schema.json", + "0.8.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.1/config.schema.json", + "0.8.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.2/config.schema.json", + "0.8.3": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.3/config.schema.json", + "0.8.4": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.4/config.schema.json", + "0.8.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.5/config.schema.json", + "0.8.6": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.6/config.schema.json", + "0.9.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.0/config.schema.json", + "0.9.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.1/config.schema.json", + "0.9.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.2/config.schema.json" + } + }, + { + "name": "Viash Package Config", + "description": "Viash package config file", + "fileMatch": ["_viash.yaml", "_viash.yml"], + "url": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/latest/package.schema.json", + "versions": { + "0.7.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.7.5/package.schema.json", + "0.8.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.0/package.schema.json", + "0.8.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.1/package.schema.json", + "0.8.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.2/package.schema.json", + "0.8.3": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.3/package.schema.json", + "0.8.4": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.4/package.schema.json", + "0.8.5": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.5/package.schema.json", + "0.8.6": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.8.6/package.schema.json", + "0.9.0": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.0/package.schema.json", + "0.9.1": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.1/package.schema.json", + "0.9.2": "https://raw.githubusercontent.com/viash-io/viash-schemas/refs/heads/main/json_schemas/0.9.2/package.schema.json" + } + }, + { + "name": "MultiQC", + "description": "MultiQC configuration file", + "fileMatch": [ + "multiqc_config.yaml", + "multiqc_config.yml", + ".multiqc_config.yaml", + ".multiqc_config.yml" + ], + "url": "https://raw.githubusercontent.com/MultiQC/MultiQC/refs/heads/main/multiqc/utils/config_schema.json" + }, + { + "name": "Tyk Gateway - Open Source v5.7+", + "description": "Tyk Gateway Open Source Configuration File", + "fileMatch": ["tyk.conf"], + "url": "https://raw.githubusercontent.com/TykTechnologies/tyk-schemas/refs/heads/main/JSON/draft-07/schema_tyk.oss.conf" + }, + { + "name": "Python script metadata", + "description": "Metadata of a Python script, as defined by PEP 723", + "fileMatch": [], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/pep-723.json" + }, + { + "name": "vtcfg", + "description": "Vector VT System Configuration", + "fileMatch": ["*.vtcfg"], + "url": "https://www.schemastore.org/vtcfg-v19.0.0.json", + "versions": { + "19.0.0": "https://www.schemastore.org/vtcfg-v19.0.0.json" + } + }, + { + "name": "sake", + "description": "Configuration for Sake, Swift-based utility for managing project commands", + "fileMatch": [".sake.yml"], + "url": "https://www.schemastore.org/sake.json" + }, + { + "name": "Open Know-How", + "description": "Open Source Hardware project metadata", + "fileMatch": [ + "okh.json", + "okh.toml", + "okh.yaml", + "okh.yml", + "*.okh.json", + "*.okh.toml", + "*.okh.yaml", + "*.okh.yml" + ], + "url": "https://www.schemastore.org/okh.json" + }, + { + "name": "Contextive Glossary", + "description": "A Contextive Domain Language Glossary", + "fileMatch": [ + "**/.contextive/definitions.yml", + "*.glossary.yml", + "*.glossary.yaml" + ], + "url": "https://www.schemastore.org/contextive-glossary.json" + }, + { + "name": "Google Digital Assetlinks", + "description": "JSON-encoded statement list in a well-known location on a principal", + "fileMatch": ["assetlinks.json"], + "url": "https://www.schemastore.org/assetlinks.json" + }, + { + "name": "Pylock", + "description": "PEP 751 lock file", + "fileMatch": ["pylock.toml", "pylock.*.toml"], + "url": "https://www.schemastore.org/pylock.json" + }, + { + "name": "Stylua Config", + "description": "Stylua configuration", + "fileMatch": [".stylua.toml", "stylua.toml"], + "url": "https://www.schemastore.org/stylua.json" + }, + { + "name": "Taplo", + "description": "Taplo configuration file", + "fileMatch": [".taplo.toml", "taplo.toml"], + "url": "https://www.schemastore.org/taplo.json" + }, + { + "name": "Aider", + "description": "Aider configuration file", + "fileMatch": [".aider.conf.yml"], + "url": "https://www.schemastore.org/aider-0.82.json" + }, + { + "name": "CDK Environment Manager, environment definition", + "description": "ti&m CDK Environment Manager environment definition file", + "fileMatch": [ + "**/environment-definition.json", + "**/environment-definition.yaml", + "**/environment-definition.yml" + ], + "url": "https://www.schemastore.org/ti8m-cdk-environment-definition.json" + }, + { + "name": "CDK Environment Manager, concrete environments definition", + "description": "ti&m CDK Environment Manager concrete environments definition file", + "fileMatch": [ + "**/concrete-environments.json", + "**/concrete-environments.yaml", + "**/concrete-environments.yml" + ], + "url": "https://www.schemastore.org/ti8m-cdk-concrete-environments.json" + }, + { + "name": "CDK Environment Manager, concrete environment configuration", + "description": "ti&m CDK Environment Manager concrete environment configuration file", + "fileMatch": [ + "**/environment_config/*.json", + "**/environment_config/*.yaml", + "**/environment_config/*.yml" + ], + "url": "https://www.schemastore.org/ti8m-cdk-concrete-environment-config.json" + }, + { + "name": "tm_devices configuration file", + "description": "Definition of the configuration file of the tm_devices Python package. Documentation: https://tm-devices.readthedocs.io/stable/configuration/", + "fileMatch": ["tm_devices.yml", "tm_devices.yaml", "tm_devices.toml"], + "url": "https://raw.githubusercontent.com/tektronix/tm_devices/main/src/tm_devices/tm_devices_config_schema.json" + }, + { + "name": "OpenStatus", + "description": "OpenStatus configuration file", + "fileMatch": [ + "openstatus.json", + "openstatus.yml", + "openstatus.yaml", + "openstatus.toml" + ], + "url": "https://github.com/openstatusHQ/json-schema/releases/download/v1.0.0/schema.json" + }, + { + "name": "Power Pages Configuration", + "description": "Power Pages configuration file for Bring Your Own Code (BYOC) sites", + "fileMatch": ["powerpages.config.json"], + "url": "https://www.schemastore.org/powerpages.config.json" + }, + { + "name": "Hecate Input Schema", + "description": "Input schema for Hecate, for generating PDE simulation code", + "fileMatch": [ + "*.hecate.yml", + "*.hecate.yaml", + "*.hecate", + "*.hecate.json" + ], + "url": "https://raw.githubusercontent.com/ShaitanLyss/these/main/hecate/hecate-json-schema.json" + }, + { + "name": "Revel Digital Gadget Definition File", + "description": "Revel Digital gadget definition file. See https://developer.reveldigital.com/gadgets for more information", + "fileMatch": ["gadget.yml", "gadget.yaml"], + "url": "https://www.schemastore.org/gadget-yaml.json" + }, + { + "name": "Jujutsu (jj) VCS config", + "description": "Jujutsu (jj) configuration file", + "fileMatch": ["**/.jj/repo/config.toml", "**/jj/config.toml"], + "url": "https://jj-vcs.github.io/jj/latest/config-schema.json" + }, + { + "name": "AWS Copilot Manifest", + "description": "Manifest YAML files for AWS Copilot services, environments, and pipelines. Documentation: https://aws.github.io/copilot-cli/docs/manifest/overview/", + "fileMatch": ["**/copilot/**/manifest.yml"], + "url": "https://sootyowl.github.io/aws-copilot-schemas/copilot-schema.json" + }, + { + "name": "Terrateam config", + "description": "Terrateam configuration file", + "fileMatch": ["**/.terrateam/config.yaml", "**/.terrateam/config.yml"], + "url": "https://raw.githubusercontent.com/terrateamio/terrateam/refs/heads/main/api_schemas/terrat/config-schema.json" + }, + { + "name": "Lake configuration file", + "description": "`lakefile.toml`, the .toml configuration file for Lake, the package manager of the Lean programming language and theorem prover", + "fileMatch": ["lakefile.toml"], + "url": "https://raw.githubusercontent.com/leanprover/lean4/refs/heads/master/src/lake/schemas/lakefile-toml-schema.json" + }, + { + "name": "Zarf Package Configuration", + "description": "Zarf Packages contain a comprehensive description of system software and all of it's components for declaratively deploying in a disconnected environment", + "fileMatch": ["**/zarf.yaml", "**/zarf.yml"], + "url": "https://www.schemastore.org/zarf.json" + }, + { + "name": "Robust Station Image", + "description": "Space Station 14 RSI validation", + "fileMatch": ["**/*.rsi/meta.json"], + "url": "https://raw.githubusercontent.com/space-wizards/RobustToolbox/refs/heads/master/Schemas/rsi.json" + }, + { + "name": "EUDR IOP Standard Exchange Format (EUDR-X)", + "description": "structured exchange of data related to the EU Deforestation Regulation (EUDR)", + "fileMatch": ["*eudr-x.json"], + "url": "https://raw.githubusercontent.com/initiative-online-print/eudr-iop-standard-exchange-format/refs/heads/main/json/schema.json", + "versions": { + "1.0.0": "https://raw.githubusercontent.com/initiative-online-print/eudr-iop-standard-exchange-format/refs/tags/v1.0.0/json/schema.json", + "2.0.0": "https://raw.githubusercontent.com/initiative-online-print/eudr-iop-standard-exchange-format/refs/tags/v2.0.0/json/schema.json" + } + }, + { + "name": "Azure IoT Operations connector metadata", + "description": "For writing connector metadata documents to be used in Azure IoT Operations scenarios", + "url": "https://www.schemastore.org/aio-connector-metadata-7.0-preview.json", + "versions": { + "5.0-preview": "https://www.schemastore.org/aio-connector-metadata-5.0-preview.json", + "6.0-preview": "https://www.schemastore.org/aio-connector-metadata-6.0-preview.json", + "7.0-preview": "https://www.schemastore.org/aio-connector-metadata-7.0-preview.json", + "8.0-preview": "https://www.schemastore.org/aio-connector-metadata-8.0-preview.json", + "9.0-preview": "https://www.schemastore.org/aio-connector-metadata-9.0-preview.json", + "10.0-preview": "https://www.schemastore.org/aio-connector-metadata-10.0-preview.json" + } + }, + { + "name": "Evolving Resolutive Process notation", + "description": "For describing contradiction-based processes with storing changes and authors", + "fileMatch": ["*.erpn.yml", "*.erpn.yaml", "*.erpn.toml", "*.erpn.json"], + "url": "https://www.schemastore.org/evolving-resolutive-process-notation-1.0.json", + "versions": { + "1.0": "https://www.schemastore.org/evolving-resolutive-process-notation-1.0.json" + } + }, + { + "name": "Deployah Configuration", + "description": "CLI tool that makes Kubernetes deployments effortless\u2014no Helm or K8s expertise required", + "fileMatch": [ + "deployah.yaml", + "deployah.yml", + ".deployah.yaml", + ".deployah.yml" + ], + "url": "https://deployah.dev/schemas/v1-alpha.1/manifest.json", + "versions": { + "v1-alpha.1": "https://deployah.dev/schemas/v1-alpha.1/manifest.json" + } + }, + { + "name": "Azure IoT Operations Wasm Graph Config", + "description": "", + "url": "https://www.schemastore.org/aio-wasm-graph-config-1.1.0.json", + "versions": { + "1.0.0": "https://www.schemastore.org/aio-wasm-graph-config-1.0.0.json", + "1.1.0": "https://www.schemastore.org/aio-wasm-graph-config-1.1.0.json" + } + }, + { + "name": "Airbyte Declarative Connectors Specification (manifest.yaml)", + "description": "Airbyte Specification for custom connectors", + "fileMatch": [ + "source-*-manifest.yaml", + "destination-*-manifest.yaml", + "**/source-*/manifest.yaml", + "**/destination-*/manifest.yaml" + ], + "url": "https://raw.githubusercontent.com/airbytehq/airbyte-python-cdk/49c5a482de7bdfbaa3a68373a940b90c0690a56f/airbyte_cdk/sources/declarative/generated/declarative_component_schema.json" + }, + { + "name": "Airbyte Connector Metadata Specification (metadata.yaml)", + "description": "Airbyte Specification for custom connectors", + "fileMatch": [ + "**/source-*/metadata.yaml", + "**/destination-*/metadata.yaml" + ], + "url": "https://raw.githubusercontent.com/airbytehq/airbyte/refs/heads/master/airbyte-ci/connectors/metadata_service/lib/metadata_service/models/generated/ConnectorMetadataDefinitionV0.json" + }, + { + "name": "git-town.toml", + "description": "Git Town configuration file", + "fileMatch": ["git-town.toml"], + "url": "https://raw.githubusercontent.com/git-town/git-town/refs/heads/main/docs/git-town.schema.json" + }, + { + "name": "Jarl", + "description": "Configuration for R linter", + "fileMatch": ["jarl.toml"], + "url": "https://github.com/etiennebacher/jarl/releases/latest/download/jarl.schema.json" + }, + { + "name": "Zola Configuration", + "description": "A fast static site generator in a single binary with everything built-in", + "fileMatch": ["zola.toml"], + "url": "https://cscnk52.github.io/json-schemas/zola.schema.json" + }, + { + "name": "Tekton Task", + "description": "Defines a sequence of steps (containers) to be executed. It is the smallest configurable unit of execution in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Task.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Task.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_Task.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_Task.json" + } + }, + { + "name": "Tekton TaskRun", + "description": "Instantiates and executes a Task with specific inputs, outputs, and parameters in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_TaskRun.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_TaskRun.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_TaskRun.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_TaskRun.json" + } + }, + { + "name": "Tekton Pipeline", + "description": "Defines a graph of Tasks that execute sequentially or in parallel to define a CI/CD workflow in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Pipeline.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Pipeline.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_Pipeline.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_Pipeline.json" + } + }, + { + "name": "Tekton PipelineRun", + "description": "Instantiates and executes a Pipeline with specific inputs, outputs, and parameters in Tekton Pipelines", + "url": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_PipelineRun.json", + "versions": { + "v1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_PipelineRun.json", + "v1beta1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_PipelineRun.json", + "v1alpha1": "https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1alpha1_PipelineRun.json" + } + }, + { + "name": "zizmor", + "description": "Configuration file for zizmor, a static analysis tool for GitHub Actions", + "fileMatch": [ + "**/zizmor.yml", + "**/zizmor.yaml", + "**/.github/zizmor.yml", + "**/.github/zizmor.yaml" + ], + "url": "https://raw.githubusercontent.com/woodruffw/zizmor/main/support/zizmor.schema.json" + }, + { + "name": "Changepacks", + "description": "Changepacks are a way to package changes to a project", + "fileMatch": ["**/.changepacks/config.json"], + "url": "https://www.schemastore.org/changepacks.json" + }, + { + "name": "Devup", + "description": "JSX Zero-Runtime UI Styling Library", + "fileMatch": ["devup.json"], + "url": "https://www.schemastore.org/devup.json" + }, + { + "name": "Vespertide", + "description": "Vespertide configuration", + "fileMatch": ["**/vespertide.json"], + "url": "https://www.schemastore.org/vespertide.json" + }, + { + "name": "Vespertide Migration", + "description": "Vespertide migration file", + "fileMatch": [ + "**/migrations/**/*.vespertide.json", + "**/migrations/**/*.vespertide.yaml", + "**/migrations/**/*.vespertide.yml" + ], + "url": "https://www.schemastore.org/vespertide-migration.json" + }, + { + "name": "Vespertide Model", + "description": "Vespertide model file", + "fileMatch": [ + "**/models/**/*.vespertide.json", + "**/models/**/*.vespertide.yaml", + "**/models/**/*.vespertide.yml" + ], + "url": "https://www.schemastore.org/vespertide-model.json" + }, + { + "name": "openHAB", + "description": "Configuration files for openHAB", + "fileMatch": ["**/conf/yaml/**/*.yml", "**/conf/yaml/**/*.yaml"], + "url": "https://www.schemastore.org/openhab-5.1.json", + "versions": { + "5.1": "https://www.schemastore.org/openhab-5.1.json" + } + }, + { + "name": "unqueryvet", + "description": "Configuration for unqueryvet - a Go linter for SQL queries", + "fileMatch": [".unqueryvet.yaml", ".unqueryvet.yml"], + "url": "https://raw.githubusercontent.com/MirrexOne/unqueryvet/main/schema.json" + }, + { + "name": "Bento", + "description": "Bento stream configuration file", + "fileMatch": ["bento.json", "bento.yml", "bento.yaml"], + "url": "https://raw.githubusercontent.com/warpstreamlabs/bento/refs/heads/main/resources/schemastore/bento.json" + }, + { + "name": "BMML", + "description": "Business Model Markup Language - a YAML format for describing business models based on Alexander Osterwalder's Business Model Canvas", + "fileMatch": ["*.bmml", "*.bmml.yaml", "*.bmml.yml"], + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/bmml.json" + }, + { + "name": "pgxgen", + "description": "pgxgen configuration file", + "fileMatch": ["pgxgen.yml", "pgxgen.yaml"], + "url": "https://raw.githubusercontent.com/tkcrm/pgxgen/refs/heads/master/schemas/pgxgen-schema.json" + }, + { + "name": "Espanso match.yml", + "description": "define WHAT Espanso does", + "url": "https://raw.githubusercontent.com/espanso/espanso/refs/heads/dev/schemas/match.schema.json" + }, + { + "name": "Espanso config.yml", + "description": "define HOW Espanso acts", + "url": "https://raw.githubusercontent.com/espanso/espanso/refs/heads/dev/schemas/config.schema.json" + }, + { + "name": "pitcms", + "description": "Configuration file for pitcms - a Git-based headless CMS", + "fileMatch": ["pitcms.json", "pitcms.jsonc"], + "url": "https://pitcms.net/schema/pitcms.schema.json" + }, + { + "name": "Bluebricks blueprint config", + "description": "Bluebricks config for blueprints", + "fileMatch": ["bricks.json", "bricks.yaml"], + "url": "https://api.bluebricks.co/docs/schemas/latest/bricks.schema.json" + }, + { + "name": "Mail Servers Configuration", + "description": "Configuration for mail servers across different domains", + "fileMatch": [ + "mail-servers-config.json", + "mail-servers-config.jsonc", + "mail-servers-config.json5", + "*.mail-servers-config.json", + "*.mail-servers-config.jsonc", + "*.mail-servers-config.json5", + "**/mail-servers-config.json", + "**/mail-servers-config.jsonc", + "**/mail-servers-config.json5" + ], + "url": "https://www.schemastore.org/mail-servers-config.json" + }, + { + "name": "oxfmt", + "description": "Configuration file for Oxfmt, a high-performance formatter for the JavaScript ecosystem", + "fileMatch": ["**/.oxfmtrc.json"], + "url": "https://raw.githubusercontent.com/oxc-project/oxc/refs/heads/main/npm/oxfmt/configuration_schema.json" + }, + { + "name": "oxlint", + "description": "Configuration file for Oxlint, a high-performance linter for JavaScript and TypeScript built on the Oxc compiler stack", + "fileMatch": ["**/.oxlintrc.json"], + "url": "https://raw.githubusercontent.com/oxc-project/oxc/refs/heads/main/npm/oxlint/configuration_schema.json" + }, + { + "name": "text2confl config", + "description": "Configuration file for Text2Confl - tool to publish Markdown and Asciidoctor files to Confluence", + "fileMatch": [ + "**/.text2confl.yaml", + "**/.text2confl.yml", + "**/text2confl.yaml", + "**/text2confl.yml" + ], + "url": "https://raw.githubusercontent.com/zeldigas/text2confl/refs/heads/master/docs/config.schema.json" + }, + { + "name": "Cursor Agent Environment", + "description": "Cursor cloud agent environment configuration", + "fileMatch": ["**/.cursor/environment.json"], + "url": "https://cursor.com/schemas/environment.schema.json" + }, + { + "name": "nexus-rpc-gen", + "description": "nexus-rpc-gen configuration for generating Nexus RPC service stubs", + "fileMatch": ["*.nexusrpc.yaml", "*.nexusrpc.yml"], + "url": "https://raw.githubusercontent.com/nexus-rpc/nexus-rpc-gen/main/schemas/nexus-rpc-gen.json" + }, + { + "name": "Agent Permission Policy", + "description": "Cross-agent permission policy for AI coding agents", + "fileMatch": [ + "**/.agents/permissions.json", + "**/.agents/permissions.local.json" + ], + "url": "https://raw.githubusercontent.com/Mearman/agent-permissions/main/agent-permissions.schema.json" + }, + { + "name": "AgentCore CLI", + "description": "Configuration file for Amazon Bedrock AgentCore CLI projects", + "fileMatch": ["**/agentcore/agentcore.json"], + "url": "https://schema.agentcore.aws.dev/v1/agentcore.json", + "versions": { + "1.0": "https://schema.agentcore.aws.dev/v1/agentcore.json" + } + }, + { + "name": "Ethereum ERC721", + "description": "ERC-721 Non-Fungible Token Standard", + "url": "https://www.schemastore.org/ethereum-erc721.json" + }, + { + "name": "Ethereum ERC1155", + "description": "ERC-1155 Multi Token Standard", + "url": "https://www.schemastore.org/ethereum-erc1155.json" + }, + { + "name": "Qwen Code Settings", + "description": "Configuration file for Qwen Code", + "fileMatch": ["**/.qwen/settings.json"], + "url": "https://www.schemastore.org/qwen-code-settings.json" + }, + { + "name": "Raid Profile", + "description": "Definition for one or more Raid Profiles", + "fileMatch": ["*.raid.yaml", "*.raid.yml", "*.raid.json"], + "url": "https://raw.githubusercontent.com/8bitAlex/raid/main/schemas/raid-profile.schema.json" + }, + { + "name": "Raid Repo Configuration", + "description": "Definition for a single repository", + "fileMatch": ["raid.yaml", "raid.yml", "raid.json"], + "url": "https://raw.githubusercontent.com/8bitAlex/raid/main/schemas/raid-repo.schema.json" + }, + { + "name": "OpenDecree", + "description": "OpenDecree definition file (https://opendecree.dev) \u2014 describes typed configuration fields, constraints, and metadata that the OpenDecree configuration management service serves to applications", + "fileMatch": [ + "decree.schema.yaml", + "decree.schema.yml", + "*.decree.schema.yaml", + "*.decree.schema.yml" + ], + "url": "https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json", + "versions": { + "v0.1.0": "https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json" + } + }, + { + "name": "OpenDecree Configuration", + "description": "OpenDecree configuration values file (https://opendecree.dev) \u2014 concrete values for fields declared in a paired main decree yaml", + "fileMatch": [ + "decree.config.yaml", + "decree.config.yml", + "*.decree.config.yaml", + "*.decree.config.yml" + ], + "url": "https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json", + "versions": { + "v0.1.0": "https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json" + } + }, + { + "name": "Envelope Team Definition", + "description": "Open standard for AI agent team definitions — declare agents, roles, tools, access policies, and pipelines in a single versioned document", + "fileMatch": ["*.envelope.json", "team.envelope.json"], + "url": "https://schema.openenvelope.org/team/v1.json" + }, + { + "name": "Acton", + "description": "Configuration file for Acton projects", + "fileMatch": ["Acton.toml"], + "url": "https://raw.githubusercontent.com/ton-blockchain/acton/master/crates/acton-config/schemas/acton.schema.json" + }, + { + "name": "memnex", + "description": "Open specification for portable meeting outputs — transcripts, summaries, action items, and decisions. https://memnex.org", + "fileMatch": ["*.memnex.json", "meeting-output.json"], + "url": "https://memnex.org/schema/v0.2/meeting-output.schema.json", + "versions": { + "0.1": "https://memnex.org/schema/v0.1/meeting-output.schema.json", + "0.2": "https://memnex.org/schema/v0.2/meeting-output.schema.json" + } + } + ] +} diff --git a/tests/testdata/json_schemastore_hatch_build_targets/expected.json b/tests/testdata/json_schemastore_hatch_build_targets/expected.json new file mode 100644 index 0000000..2ca1e2a --- /dev/null +++ b/tests/testdata/json_schemastore_hatch_build_targets/expected.json @@ -0,0 +1,4119 @@ +{ + "version": "v1", + "actions": [ + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 9, + 1, + 5 + ], + "type": "pair", + "start_byte": 17541, + "end_byte": 17586 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 9, + 1 + ], + "type": "object", + "start_byte": 17226, + "end_byte": 17592 + }, + "position": 5, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 10, + 1, + 3 + ], + "type": "pair", + "start_byte": 19340, + "end_byte": 19368 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 10, + 1 + ], + "type": "object", + "start_byte": 17606, + "end_byte": 19374 + }, + "position": 3, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 11, + 1, + 5 + ], + "type": "pair", + "start_byte": 19788, + "end_byte": 19831 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 11, + 1 + ], + "type": "object", + "start_byte": 19394, + "end_byte": 19837 + }, + "position": 5, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 8, + 1, + 2, + 1, + 5 + ], + "type": "pair", + "start_byte": 13616, + "end_byte": 13681 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 8, + 1, + 2, + 1 + ], + "type": "object", + "start_byte": 13218, + "end_byte": 17197 + }, + "position": 5, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": 334, + "right_line": 334 + }, + { + "left_line": 335, + "right_line": 335 + }, + { + "left_line": 336, + "right_line": 336 + }, + { + "left_line": 337, + "right_line": 337 + }, + { + "left_line": 338, + "right_line": 338 + }, + { + "left_line": 339, + "right_line": 339 + }, + { + "left_line": 340, + "right_line": 340 + }, + { + "left_line": 341, + "right_line": 341 + }, + { + "left_line": 342, + "right_line": 342 + }, + { + "left_line": 343, + "right_line": 343 + }, + { + "left_line": 344, + "right_line": 344 + }, + { + "left_line": 345, + "right_line": 345 + }, + { + "left_line": 346, + "right_line": 346 + }, + { + "left_line": 347, + "right_line": 347 + }, + { + "left_line": 348, + "right_line": 348 + }, + { + "left_line": 349, + "right_line": 349 + }, + { + "left_line": 350, + "right_line": 350 + }, + { + "left_line": 351, + "right_line": 351 + }, + { + "left_line": 352, + "right_line": 352 + }, + { + "left_line": 353, + "right_line": 353 + }, + { + "left_line": 354, + "right_line": 354 + }, + { + "left_line": 355, + "right_line": 355 + }, + { + "left_line": 356, + "right_line": 356 + }, + { + "left_line": 357, + "right_line": 357 + }, + { + "left_line": 358, + "right_line": 358 + }, + { + "left_line": 359, + "right_line": 359 + }, + { + "left_line": 360, + "right_line": 360 + }, + { + "left_line": 361, + "right_line": 361 + }, + { + "left_line": 362, + "right_line": 362 + }, + { + "left_line": 363, + "right_line": 363 + }, + { + "left_line": 364, + "right_line": 364 + }, + { + "left_line": 365, + "right_line": 365 + }, + { + "left_line": 366, + "right_line": 366 + }, + { + "left_line": 367, + "right_line": 367 + }, + { + "left_line": 368, + "right_line": 368 + }, + { + "left_line": 369, + "right_line": 369 + }, + { + "left_line": 370, + "right_line": 370 + }, + { + "left_line": 371, + "right_line": 371 + }, + { + "left_line": 372, + "right_line": 372 + }, + { + "left_line": 373, + "right_line": 373 + }, + { + "left_line": 374, + "right_line": 374 + }, + { + "left_line": 375, + "right_line": 375 + }, + { + "left_line": 376, + "right_line": 376 + }, + { + "left_line": 377, + "right_line": 377 + }, + { + "left_line": 378, + "right_line": 378 + }, + { + "left_line": 379, + "right_line": 379 + }, + { + "left_line": 380, + "right_line": 380 + }, + { + "left_line": 381, + "right_line": 381 + }, + { + "left_line": 382, + "right_line": 382 + }, + { + "left_line": 383, + "right_line": 383 + }, + { + "left_line": 384, + "right_line": 384 + }, + { + "left_line": 385, + "right_line": 385 + }, + { + "left_line": 386, + "right_line": 386 + }, + { + "left_line": 387, + "right_line": 387 + }, + { + "left_line": 388, + "right_line": 388 + }, + { + "left_line": 389, + "right_line": 389 + }, + { + "left_line": 390, + "right_line": 390 + }, + { + "left_line": 391, + "right_line": 391 + }, + { + "left_line": 392, + "right_line": 392 + }, + { + "left_line": 393, + "right_line": 393 + }, + { + "left_line": 394, + "right_line": 394 + }, + { + "left_line": 395, + "right_line": 395 + }, + { + "left_line": 396, + "right_line": 396 + }, + { + "left_line": 397, + "right_line": 397 + }, + { + "left_line": 398, + "right_line": 398 + }, + { + "left_line": 399, + "right_line": 399 + }, + { + "left_line": 400, + "right_line": 400 + }, + { + "left_line": 401, + "right_line": 401 + }, + { + "left_line": 402, + "right_line": 402 + }, + { + "left_line": 403, + "right_line": 403 + }, + { + "left_line": 404, + "right_line": 404 + }, + { + "left_line": 405, + "right_line": 405 + }, + { + "left_line": 406, + "right_line": 406 + }, + { + "left_line": 407, + "right_line": 407 + }, + { + "left_line": 408, + "right_line": 408 + }, + { + "left_line": 409, + "right_line": 409 + }, + { + "left_line": 410, + "right_line": 410 + }, + { + "left_line": 411, + "right_line": 411 + }, + { + "left_line": 412, + "right_line": 412 + }, + { + "left_line": 413, + "right_line": 413 + }, + { + "left_line": 414, + "right_line": 414 + }, + { + "left_line": 415, + "right_line": 415 + }, + { + "left_line": 416, + "right_line": 416 + }, + { + "left_line": 417, + "right_line": 417 + }, + { + "left_line": 418, + "right_line": 418 + }, + { + "left_line": 419, + "right_line": 419 + }, + { + "left_line": 420, + "right_line": 420 + }, + { + "left_line": 421, + "right_line": 421 + }, + { + "left_line": 422, + "right_line": 422 + }, + { + "left_line": 423, + "right_line": 423 + }, + { + "left_line": 424, + "right_line": 424 + }, + { + "left_line": 425, + "right_line": 425 + }, + { + "left_line": 426, + "right_line": 426 + }, + { + "left_line": 427, + "right_line": 427 + }, + { + "left_line": 428, + "right_line": 428 + }, + { + "left_line": 429, + "right_line": 429 + }, + { + "left_line": 430, + "right_line": 430 + }, + { + "left_line": 431, + "right_line": 431 + }, + { + "left_line": 432, + "right_line": 432 + }, + { + "left_line": 433, + "right_line": 433 + }, + { + "left_line": 434, + "right_line": 434 + }, + { + "left_line": 435, + "right_line": 435 + }, + { + "left_line": 436, + "right_line": 436 + }, + { + "left_line": 437, + "right_line": 437 + }, + { + "left_line": 438, + "right_line": 438 + }, + { + "left_line": 439, + "right_line": 439 + }, + { + "left_line": 440, + "right_line": 440 + }, + { + "left_line": 441, + "right_line": 441 + }, + { + "left_line": 442, + "right_line": 442 + }, + { + "left_line": -1, + "right_line": 443 + }, + { + "left_line": -1, + "right_line": 444 + }, + { + "left_line": -1, + "right_line": 445 + }, + { + "left_line": 443, + "right_line": 446 + }, + { + "left_line": 444, + "right_line": 447 + }, + { + "left_line": 445, + "right_line": 448 + }, + { + "left_line": 446, + "right_line": 449 + }, + { + "left_line": 447, + "right_line": 450 + }, + { + "left_line": 448, + "right_line": 451 + }, + { + "left_line": 449, + "right_line": 452 + }, + { + "left_line": 450, + "right_line": 453 + }, + { + "left_line": 451, + "right_line": 454 + }, + { + "left_line": 452, + "right_line": 455 + }, + { + "left_line": 453, + "right_line": 456 + }, + { + "left_line": 454, + "right_line": 457 + }, + { + "left_line": 455, + "right_line": 458 + }, + { + "left_line": 456, + "right_line": 459 + }, + { + "left_line": 457, + "right_line": 460 + }, + { + "left_line": 458, + "right_line": 461 + }, + { + "left_line": 459, + "right_line": 462 + }, + { + "left_line": 460, + "right_line": 463 + }, + { + "left_line": 461, + "right_line": 464 + }, + { + "left_line": 462, + "right_line": 465 + }, + { + "left_line": 463, + "right_line": 466 + }, + { + "left_line": 464, + "right_line": 467 + }, + { + "left_line": 465, + "right_line": 468 + }, + { + "left_line": 466, + "right_line": 469 + }, + { + "left_line": 467, + "right_line": 470 + }, + { + "left_line": 468, + "right_line": 471 + }, + { + "left_line": 469, + "right_line": 472 + }, + { + "left_line": 470, + "right_line": 473 + }, + { + "left_line": 471, + "right_line": 474 + }, + { + "left_line": 472, + "right_line": 475 + }, + { + "left_line": 473, + "right_line": 476 + }, + { + "left_line": 474, + "right_line": 477 + }, + { + "left_line": 475, + "right_line": 478 + }, + { + "left_line": 476, + "right_line": 479 + }, + { + "left_line": 477, + "right_line": 480 + }, + { + "left_line": 478, + "right_line": 481 + }, + { + "left_line": 479, + "right_line": 482 + }, + { + "left_line": 480, + "right_line": 483 + }, + { + "left_line": 481, + "right_line": 484 + }, + { + "left_line": 482, + "right_line": 485 + }, + { + "left_line": 483, + "right_line": 486 + }, + { + "left_line": 484, + "right_line": 487 + }, + { + "left_line": 485, + "right_line": 488 + }, + { + "left_line": 486, + "right_line": 489 + }, + { + "left_line": 487, + "right_line": 490 + }, + { + "left_line": 488, + "right_line": 491 + }, + { + "left_line": 489, + "right_line": 492 + }, + { + "left_line": 490, + "right_line": 493 + }, + { + "left_line": 491, + "right_line": 494 + }, + { + "left_line": 492, + "right_line": 495 + }, + { + "left_line": 493, + "right_line": 496 + }, + { + "left_line": 494, + "right_line": 497 + }, + { + "left_line": 495, + "right_line": 498 + }, + { + "left_line": 496, + "right_line": 499 + }, + { + "left_line": 497, + "right_line": 500 + }, + { + "left_line": 498, + "right_line": 501 + }, + { + "left_line": 499, + "right_line": 502 + }, + { + "left_line": 500, + "right_line": 503 + }, + { + "left_line": 501, + "right_line": 504 + }, + { + "left_line": 502, + "right_line": 505 + }, + { + "left_line": 503, + "right_line": 506 + }, + { + "left_line": 504, + "right_line": 507 + }, + { + "left_line": 505, + "right_line": 508 + }, + { + "left_line": 506, + "right_line": 509 + }, + { + "left_line": 507, + "right_line": 510 + }, + { + "left_line": 508, + "right_line": 511 + }, + { + "left_line": 509, + "right_line": 512 + }, + { + "left_line": 510, + "right_line": 513 + }, + { + "left_line": 511, + "right_line": 514 + }, + { + "left_line": 512, + "right_line": 515 + }, + { + "left_line": 513, + "right_line": 516 + }, + { + "left_line": 514, + "right_line": 517 + }, + { + "left_line": 515, + "right_line": 518 + }, + { + "left_line": 516, + "right_line": 519 + }, + { + "left_line": 517, + "right_line": 520 + }, + { + "left_line": 518, + "right_line": 521 + }, + { + "left_line": 519, + "right_line": 522 + }, + { + "left_line": 520, + "right_line": 523 + }, + { + "left_line": 521, + "right_line": 524 + }, + { + "left_line": 522, + "right_line": 525 + }, + { + "left_line": 523, + "right_line": 526 + }, + { + "left_line": 524, + "right_line": 527 + }, + { + "left_line": 525, + "right_line": 528 + }, + { + "left_line": 526, + "right_line": 529 + }, + { + "left_line": 527, + "right_line": 530 + }, + { + "left_line": 528, + "right_line": 531 + }, + { + "left_line": 529, + "right_line": 532 + }, + { + "left_line": 530, + "right_line": 533 + }, + { + "left_line": 531, + "right_line": 534 + }, + { + "left_line": 532, + "right_line": 535 + }, + { + "left_line": 533, + "right_line": 536 + }, + { + "left_line": 534, + "right_line": 537 + }, + { + "left_line": 535, + "right_line": 538 + }, + { + "left_line": 536, + "right_line": 539 + }, + { + "left_line": 537, + "right_line": 540 + }, + { + "left_line": 538, + "right_line": 541 + }, + { + "left_line": 539, + "right_line": 542 + }, + { + "left_line": 540, + "right_line": 543 + }, + { + "left_line": 541, + "right_line": 544 + }, + { + "left_line": 542, + "right_line": 545 + }, + { + "left_line": 543, + "right_line": 546 + }, + { + "left_line": 544, + "right_line": 547 + }, + { + "left_line": 545, + "right_line": 548 + }, + { + "left_line": 546, + "right_line": 549 + }, + { + "left_line": 547, + "right_line": 550 + }, + { + "left_line": 548, + "right_line": 551 + }, + { + "left_line": 549, + "right_line": 552 + }, + { + "left_line": 550, + "right_line": 553 + }, + { + "left_line": 551, + "right_line": 554 + }, + { + "left_line": 552, + "right_line": 555 + }, + { + "left_line": 553, + "right_line": 556 + }, + { + "left_line": 554, + "right_line": 557 + }, + { + "left_line": 555, + "right_line": 558 + }, + { + "left_line": 556, + "right_line": 559 + }, + { + "left_line": 557, + "right_line": 560 + }, + { + "left_line": 558, + "right_line": 561 + }, + { + "left_line": 559, + "right_line": 562 + }, + { + "left_line": 560, + "right_line": 563 + }, + { + "left_line": 561, + "right_line": 564 + }, + { + "left_line": 562, + "right_line": 565 + }, + { + "left_line": 563, + "right_line": 566 + }, + { + "left_line": 564, + "right_line": 567 + }, + { + "left_line": 565, + "right_line": 568 + }, + { + "left_line": 566, + "right_line": 569 + }, + { + "left_line": -1, + "right_line": 570 + }, + { + "left_line": 567, + "right_line": 571 + }, + { + "left_line": 568, + "right_line": 572 + }, + { + "left_line": 569, + "right_line": 573 + }, + { + "left_line": 570, + "right_line": 574 + }, + { + "left_line": 571, + "right_line": 575 + }, + { + "left_line": 572, + "right_line": 576 + }, + { + "left_line": 573, + "right_line": 577 + }, + { + "left_line": 574, + "right_line": 578 + }, + { + "left_line": 575, + "right_line": 579 + }, + { + "left_line": 576, + "right_line": 580 + }, + { + "left_line": 577, + "right_line": 581 + }, + { + "left_line": 578, + "right_line": 582 + }, + { + "left_line": 579, + "right_line": 583 + }, + { + "left_line": 580, + "right_line": 584 + }, + { + "left_line": 581, + "right_line": 585 + }, + { + "left_line": 582, + "right_line": 586 + }, + { + "left_line": 583, + "right_line": 587 + }, + { + "left_line": 584, + "right_line": 588 + }, + { + "left_line": 585, + "right_line": 589 + }, + { + "left_line": 586, + "right_line": 590 + }, + { + "left_line": 587, + "right_line": 591 + }, + { + "left_line": 588, + "right_line": 592 + }, + { + "left_line": 589, + "right_line": 593 + }, + { + "left_line": 590, + "right_line": 594 + }, + { + "left_line": 591, + "right_line": 595 + }, + { + "left_line": 592, + "right_line": 596 + }, + { + "left_line": 593, + "right_line": 597 + }, + { + "left_line": 594, + "right_line": 598 + }, + { + "left_line": 595, + "right_line": 599 + }, + { + "left_line": 596, + "right_line": 600 + }, + { + "left_line": 597, + "right_line": 601 + }, + { + "left_line": 598, + "right_line": 602 + }, + { + "left_line": 599, + "right_line": 603 + }, + { + "left_line": 600, + "right_line": 604 + }, + { + "left_line": 601, + "right_line": 605 + }, + { + "left_line": 602, + "right_line": 606 + }, + { + "left_line": 603, + "right_line": 607 + }, + { + "left_line": 604, + "right_line": 608 + }, + { + "left_line": 605, + "right_line": 609 + }, + { + "left_line": 606, + "right_line": 610 + }, + { + "left_line": 607, + "right_line": 611 + }, + { + "left_line": 608, + "right_line": 612 + }, + { + "left_line": 609, + "right_line": 613 + }, + { + "left_line": 610, + "right_line": 614 + }, + { + "left_line": 611, + "right_line": 615 + }, + { + "left_line": 612, + "right_line": 616 + }, + { + "left_line": 613, + "right_line": 617 + }, + { + "left_line": 614, + "right_line": 618 + }, + { + "left_line": 615, + "right_line": 619 + }, + { + "left_line": 616, + "right_line": 620 + }, + { + "left_line": 617, + "right_line": 621 + }, + { + "left_line": 618, + "right_line": 622 + }, + { + "left_line": 619, + "right_line": 623 + }, + { + "left_line": 620, + "right_line": 624 + }, + { + "left_line": -1, + "right_line": 625 + }, + { + "left_line": 621, + "right_line": 626 + }, + { + "left_line": 622, + "right_line": 627 + }, + { + "left_line": 623, + "right_line": 628 + }, + { + "left_line": 624, + "right_line": 629 + }, + { + "left_line": 625, + "right_line": 630 + }, + { + "left_line": 626, + "right_line": 631 + }, + { + "left_line": 627, + "right_line": 632 + }, + { + "left_line": 628, + "right_line": 633 + }, + { + "left_line": 629, + "right_line": 634 + }, + { + "left_line": 630, + "right_line": 635 + }, + { + "left_line": 631, + "right_line": 636 + }, + { + "left_line": 632, + "right_line": 637 + }, + { + "left_line": 633, + "right_line": 638 + }, + { + "left_line": -1, + "right_line": 639 + }, + { + "left_line": 634, + "right_line": 640 + }, + { + "left_line": 635, + "right_line": 641 + }, + { + "left_line": 636, + "right_line": 642 + }, + { + "left_line": 637, + "right_line": 643 + }, + { + "left_line": 638, + "right_line": 644 + }, + { + "left_line": 639, + "right_line": 645 + }, + { + "left_line": 640, + "right_line": 646 + }, + { + "left_line": 641, + "right_line": 647 + }, + { + "left_line": 642, + "right_line": 648 + }, + { + "left_line": 643, + "right_line": 649 + }, + { + "left_line": 644, + "right_line": 650 + }, + { + "left_line": 645, + "right_line": 651 + }, + { + "left_line": 646, + "right_line": 652 + }, + { + "left_line": 647, + "right_line": 653 + }, + { + "left_line": 648, + "right_line": 654 + }, + { + "left_line": 649, + "right_line": 655 + }, + { + "left_line": 650, + "right_line": 656 + }, + { + "left_line": 651, + "right_line": 657 + }, + { + "left_line": 652, + "right_line": 658 + }, + { + "left_line": 653, + "right_line": 659 + }, + { + "left_line": 654, + "right_line": 660 + }, + { + "left_line": 655, + "right_line": 661 + }, + { + "left_line": 656, + "right_line": 662 + }, + { + "left_line": 657, + "right_line": 663 + }, + { + "left_line": 658, + "right_line": 664 + }, + { + "left_line": 659, + "right_line": 665 + }, + { + "left_line": 660, + "right_line": 666 + }, + { + "left_line": 661, + "right_line": 667 + }, + { + "left_line": 662, + "right_line": 668 + }, + { + "left_line": 663, + "right_line": 669 + }, + { + "left_line": 664, + "right_line": 670 + }, + { + "left_line": 665, + "right_line": 671 + }, + { + "left_line": 666, + "right_line": 672 + }, + { + "left_line": 667, + "right_line": 673 + }, + { + "left_line": 668, + "right_line": 674 + }, + { + "left_line": 669, + "right_line": 675 + }, + { + "left_line": 670, + "right_line": 676 + }, + { + "left_line": 671, + "right_line": 677 + }, + { + "left_line": 672, + "right_line": 678 + }, + { + "left_line": 673, + "right_line": 679 + }, + { + "left_line": 674, + "right_line": 680 + }, + { + "left_line": 675, + "right_line": 681 + }, + { + "left_line": 676, + "right_line": 682 + }, + { + "left_line": 677, + "right_line": 683 + }, + { + "left_line": 678, + "right_line": 684 + }, + { + "left_line": 679, + "right_line": 685 + }, + { + "left_line": 680, + "right_line": 686 + }, + { + "left_line": 681, + "right_line": 687 + }, + { + "left_line": 682, + "right_line": 688 + }, + { + "left_line": 683, + "right_line": 689 + }, + { + "left_line": 684, + "right_line": 690 + }, + { + "left_line": 685, + "right_line": 691 + }, + { + "left_line": 686, + "right_line": 692 + }, + { + "left_line": 687, + "right_line": 693 + }, + { + "left_line": 688, + "right_line": 694 + }, + { + "left_line": 689, + "right_line": 695 + }, + { + "left_line": 690, + "right_line": 696 + }, + { + "left_line": 691, + "right_line": 697 + }, + { + "left_line": 692, + "right_line": 698 + }, + { + "left_line": 693, + "right_line": 699 + }, + { + "left_line": 694, + "right_line": 700 + }, + { + "left_line": 695, + "right_line": 701 + }, + { + "left_line": 696, + "right_line": 702 + }, + { + "left_line": 697, + "right_line": 703 + }, + { + "left_line": 698, + "right_line": 704 + }, + { + "left_line": 699, + "right_line": 705 + }, + { + "left_line": 700, + "right_line": 706 + }, + { + "left_line": 701, + "right_line": 707 + }, + { + "left_line": 702, + "right_line": 708 + }, + { + "left_line": 703, + "right_line": 709 + }, + { + "left_line": 704, + "right_line": 710 + }, + { + "left_line": 705, + "right_line": 711 + }, + { + "left_line": 706, + "right_line": 712 + }, + { + "left_line": 707, + "right_line": 713 + }, + { + "left_line": 708, + "right_line": 714 + }, + { + "left_line": 709, + "right_line": 715 + }, + { + "left_line": 710, + "right_line": 716 + }, + { + "left_line": 711, + "right_line": 717 + }, + { + "left_line": 712, + "right_line": 718 + }, + { + "left_line": 713, + "right_line": 719 + }, + { + "left_line": 714, + "right_line": 720 + }, + { + "left_line": 715, + "right_line": 721 + }, + { + "left_line": 716, + "right_line": 722 + }, + { + "left_line": 717, + "right_line": 723 + }, + { + "left_line": 718, + "right_line": 724 + }, + { + "left_line": 719, + "right_line": 725 + }, + { + "left_line": 720, + "right_line": 726 + }, + { + "left_line": 721, + "right_line": 727 + }, + { + "left_line": 722, + "right_line": 728 + }, + { + "left_line": 723, + "right_line": 729 + }, + { + "left_line": 724, + "right_line": 730 + }, + { + "left_line": 725, + "right_line": 731 + }, + { + "left_line": 726, + "right_line": 732 + }, + { + "left_line": 727, + "right_line": 733 + }, + { + "left_line": 728, + "right_line": 734 + }, + { + "left_line": 729, + "right_line": 735 + }, + { + "left_line": 730, + "right_line": 736 + }, + { + "left_line": 731, + "right_line": 737 + }, + { + "left_line": 732, + "right_line": 738 + }, + { + "left_line": 733, + "right_line": 739 + }, + { + "left_line": 734, + "right_line": 740 + }, + { + "left_line": 735, + "right_line": 741 + }, + { + "left_line": 736, + "right_line": 742 + }, + { + "left_line": 737, + "right_line": 743 + }, + { + "left_line": 738, + "right_line": 744 + }, + { + "left_line": 739, + "right_line": 745 + }, + { + "left_line": 740, + "right_line": 746 + }, + { + "left_line": 741, + "right_line": 747 + }, + { + "left_line": 742, + "right_line": 748 + }, + { + "left_line": 743, + "right_line": 749 + }, + { + "left_line": 744, + "right_line": 750 + }, + { + "left_line": 745, + "right_line": 751 + }, + { + "left_line": 746, + "right_line": 752 + }, + { + "left_line": 747, + "right_line": 753 + }, + { + "left_line": 748, + "right_line": 754 + }, + { + "left_line": 749, + "right_line": 755 + }, + { + "left_line": 750, + "right_line": 756 + }, + { + "left_line": 751, + "right_line": 757 + }, + { + "left_line": 752, + "right_line": 758 + }, + { + "left_line": 753, + "right_line": 759 + }, + { + "left_line": 754, + "right_line": 760 + }, + { + "left_line": 755, + "right_line": 761 + }, + { + "left_line": 756, + "right_line": 762 + }, + { + "left_line": 757, + "right_line": 763 + }, + { + "left_line": 758, + "right_line": 764 + }, + { + "left_line": 759, + "right_line": 765 + }, + { + "left_line": 760, + "right_line": 766 + }, + { + "left_line": 761, + "right_line": 767 + }, + { + "left_line": 762, + "right_line": 768 + }, + { + "left_line": 763, + "right_line": 769 + }, + { + "left_line": 764, + "right_line": 770 + }, + { + "left_line": 765, + "right_line": 771 + }, + { + "left_line": 766, + "right_line": 772 + }, + { + "left_line": 767, + "right_line": 773 + }, + { + "left_line": 768, + "right_line": 774 + }, + { + "left_line": 769, + "right_line": 775 + }, + { + "left_line": 770, + "right_line": 776 + }, + { + "left_line": 771, + "right_line": 777 + }, + { + "left_line": 772, + "right_line": 778 + }, + { + "left_line": 773, + "right_line": 779 + }, + { + "left_line": 774, + "right_line": 780 + }, + { + "left_line": 775, + "right_line": 781 + }, + { + "left_line": 776, + "right_line": 782 + }, + { + "left_line": 777, + "right_line": 783 + }, + { + "left_line": 778, + "right_line": 784 + }, + { + "left_line": 779, + "right_line": 785 + }, + { + "left_line": 780, + "right_line": 786 + }, + { + "left_line": 781, + "right_line": 787 + }, + { + "left_line": 782, + "right_line": 788 + }, + { + "left_line": 783, + "right_line": 789 + }, + { + "left_line": 784, + "right_line": 790 + }, + { + "left_line": 785, + "right_line": 791 + }, + { + "left_line": 786, + "right_line": 792 + }, + { + "left_line": 787, + "right_line": 793 + }, + { + "left_line": 788, + "right_line": 794 + }, + { + "left_line": 789, + "right_line": 795 + }, + { + "left_line": 790, + "right_line": 796 + }, + { + "left_line": 791, + "right_line": 797 + }, + { + "left_line": 792, + "right_line": 798 + }, + { + "left_line": 793, + "right_line": 799 + }, + { + "left_line": 794, + "right_line": 800 + }, + { + "left_line": 795, + "right_line": 801 + }, + { + "left_line": 796, + "right_line": 802 + }, + { + "left_line": 797, + "right_line": 803 + }, + { + "left_line": 798, + "right_line": 804 + }, + { + "left_line": 799, + "right_line": 805 + }, + { + "left_line": 800, + "right_line": 806 + }, + { + "left_line": 801, + "right_line": 807 + }, + { + "left_line": 802, + "right_line": 808 + }, + { + "left_line": 803, + "right_line": 809 + }, + { + "left_line": 804, + "right_line": 810 + }, + { + "left_line": 805, + "right_line": 811 + }, + { + "left_line": 806, + "right_line": 812 + }, + { + "left_line": 807, + "right_line": 813 + }, + { + "left_line": 808, + "right_line": 814 + }, + { + "left_line": 809, + "right_line": 815 + }, + { + "left_line": 810, + "right_line": 816 + }, + { + "left_line": 811, + "right_line": 817 + }, + { + "left_line": 812, + "right_line": 818 + }, + { + "left_line": 813, + "right_line": 819 + }, + { + "left_line": 814, + "right_line": 820 + }, + { + "left_line": 815, + "right_line": 821 + }, + { + "left_line": 816, + "right_line": 822 + }, + { + "left_line": 817, + "right_line": 823 + }, + { + "left_line": 818, + "right_line": 824 + }, + { + "left_line": 819, + "right_line": 825 + }, + { + "left_line": 820, + "right_line": 826 + }, + { + "left_line": 821, + "right_line": 827 + }, + { + "left_line": 822, + "right_line": 828 + }, + { + "left_line": 823, + "right_line": 829 + }, + { + "left_line": 824, + "right_line": 830 + }, + { + "left_line": 825, + "right_line": 831 + }, + { + "left_line": 826, + "right_line": 832 + }, + { + "left_line": 827, + "right_line": 833 + }, + { + "left_line": 828, + "right_line": 834 + }, + { + "left_line": 829, + "right_line": 835 + }, + { + "left_line": 830, + "right_line": 836 + }, + { + "left_line": 831, + "right_line": 837 + }, + { + "left_line": 832, + "right_line": 838 + }, + { + "left_line": 833, + "right_line": 839 + }, + { + "left_line": 834, + "right_line": 840 + }, + { + "left_line": 835, + "right_line": 841 + }, + { + "left_line": 836, + "right_line": 842 + }, + { + "left_line": 837, + "right_line": 843 + }, + { + "left_line": 838, + "right_line": 844 + }, + { + "left_line": 839, + "right_line": 845 + }, + { + "left_line": 840, + "right_line": 846 + }, + { + "left_line": 841, + "right_line": 847 + }, + { + "left_line": 842, + "right_line": 848 + }, + { + "left_line": 843, + "right_line": 849 + }, + { + "left_line": 844, + "right_line": 850 + }, + { + "left_line": 845, + "right_line": 851 + }, + { + "left_line": 846, + "right_line": 852 + }, + { + "left_line": 847, + "right_line": 853 + }, + { + "left_line": 848, + "right_line": 854 + }, + { + "left_line": 849, + "right_line": 855 + }, + { + "left_line": 850, + "right_line": 856 + }, + { + "left_line": 851, + "right_line": 857 + }, + { + "left_line": 852, + "right_line": 858 + }, + { + "left_line": 853, + "right_line": 859 + }, + { + "left_line": 854, + "right_line": 860 + }, + { + "left_line": 855, + "right_line": 861 + }, + { + "left_line": 856, + "right_line": 862 + }, + { + "left_line": 857, + "right_line": 863 + }, + { + "left_line": 858, + "right_line": 864 + }, + { + "left_line": 859, + "right_line": 865 + }, + { + "left_line": 860, + "right_line": 866 + }, + { + "left_line": 861, + "right_line": 867 + }, + { + "left_line": 862, + "right_line": 868 + }, + { + "left_line": 863, + "right_line": 869 + }, + { + "left_line": 864, + "right_line": 870 + }, + { + "left_line": 865, + "right_line": 871 + }, + { + "left_line": 866, + "right_line": 872 + }, + { + "left_line": 867, + "right_line": 873 + }, + { + "left_line": 868, + "right_line": 874 + }, + { + "left_line": 869, + "right_line": 875 + }, + { + "left_line": 870, + "right_line": 876 + }, + { + "left_line": 871, + "right_line": 877 + }, + { + "left_line": 872, + "right_line": 878 + }, + { + "left_line": 873, + "right_line": 879 + }, + { + "left_line": 874, + "right_line": 880 + }, + { + "left_line": 875, + "right_line": 881 + }, + { + "left_line": 876, + "right_line": 882 + }, + { + "left_line": 877, + "right_line": 883 + }, + { + "left_line": 878, + "right_line": 884 + }, + { + "left_line": 879, + "right_line": 885 + }, + { + "left_line": 880, + "right_line": 886 + }, + { + "left_line": 881, + "right_line": 887 + }, + { + "left_line": 882, + "right_line": 888 + }, + { + "left_line": 883, + "right_line": 889 + }, + { + "left_line": 884, + "right_line": 890 + }, + { + "left_line": 885, + "right_line": 891 + }, + { + "left_line": 886, + "right_line": 892 + }, + { + "left_line": 887, + "right_line": 893 + }, + { + "left_line": 888, + "right_line": 894 + }, + { + "left_line": 889, + "right_line": 895 + }, + { + "left_line": 890, + "right_line": 896 + }, + { + "left_line": 891, + "right_line": 897 + }, + { + "left_line": 892, + "right_line": 898 + }, + { + "left_line": 893, + "right_line": 899 + }, + { + "left_line": 894, + "right_line": 900 + }, + { + "left_line": 895, + "right_line": 901 + }, + { + "left_line": 896, + "right_line": 902 + }, + { + "left_line": 897, + "right_line": 903 + }, + { + "left_line": 898, + "right_line": 904 + }, + { + "left_line": 899, + "right_line": 905 + }, + { + "left_line": 900, + "right_line": 906 + }, + { + "left_line": 901, + "right_line": 907 + }, + { + "left_line": 902, + "right_line": 908 + }, + { + "left_line": 903, + "right_line": 909 + }, + { + "left_line": 904, + "right_line": 910 + }, + { + "left_line": 905, + "right_line": 911 + }, + { + "left_line": 906, + "right_line": 912 + }, + { + "left_line": 907, + "right_line": 913 + }, + { + "left_line": 908, + "right_line": 914 + }, + { + "left_line": 909, + "right_line": 915 + }, + { + "left_line": 910, + "right_line": 916 + }, + { + "left_line": 911, + "right_line": 917 + }, + { + "left_line": 912, + "right_line": 918 + }, + { + "left_line": 913, + "right_line": 919 + }, + { + "left_line": 914, + "right_line": 920 + }, + { + "left_line": 915, + "right_line": 921 + }, + { + "left_line": 916, + "right_line": 922 + }, + { + "left_line": 917, + "right_line": 923 + }, + { + "left_line": 918, + "right_line": 924 + }, + { + "left_line": 919, + "right_line": 925 + }, + { + "left_line": 920, + "right_line": 926 + }, + { + "left_line": 921, + "right_line": 927 + }, + { + "left_line": 922, + "right_line": 928 + }, + { + "left_line": 923, + "right_line": 929 + }, + { + "left_line": 924, + "right_line": 930 + }, + { + "left_line": 925, + "right_line": 931 + }, + { + "left_line": 926, + "right_line": 932 + }, + { + "left_line": 927, + "right_line": 933 + }, + { + "left_line": 928, + "right_line": 934 + }, + { + "left_line": 929, + "right_line": 935 + }, + { + "left_line": 930, + "right_line": 936 + }, + { + "left_line": 931, + "right_line": 937 + }, + { + "left_line": 932, + "right_line": 938 + }, + { + "left_line": 933, + "right_line": 939 + }, + { + "left_line": 934, + "right_line": 940 + }, + { + "left_line": 935, + "right_line": 941 + }, + { + "left_line": 936, + "right_line": 942 + }, + { + "left_line": 937, + "right_line": 943 + }, + { + "left_line": 938, + "right_line": 944 + }, + { + "left_line": 939, + "right_line": 945 + }, + { + "left_line": 940, + "right_line": 946 + }, + { + "left_line": 941, + "right_line": 947 + }, + { + "left_line": 942, + "right_line": 948 + }, + { + "left_line": 943, + "right_line": 949 + }, + { + "left_line": 944, + "right_line": 950 + }, + { + "left_line": 945, + "right_line": 951 + }, + { + "left_line": 946, + "right_line": 952 + }, + { + "left_line": 947, + "right_line": 953 + }, + { + "left_line": 948, + "right_line": 954 + }, + { + "left_line": 949, + "right_line": 955 + }, + { + "left_line": 950, + "right_line": 956 + }, + { + "left_line": 951, + "right_line": 957 + }, + { + "left_line": 952, + "right_line": 958 + }, + { + "left_line": 953, + "right_line": 959 + }, + { + "left_line": 954, + "right_line": 960 + }, + { + "left_line": 955, + "right_line": 961 + }, + { + "left_line": 956, + "right_line": 962 + }, + { + "left_line": 957, + "right_line": 963 + }, + { + "left_line": 958, + "right_line": 964 + }, + { + "left_line": 959, + "right_line": 965 + }, + { + "left_line": 960, + "right_line": 966 + }, + { + "left_line": 961, + "right_line": 967 + }, + { + "left_line": 962, + "right_line": 968 + }, + { + "left_line": 963, + "right_line": 969 + }, + { + "left_line": 964, + "right_line": 970 + }, + { + "left_line": 965, + "right_line": 971 + }, + { + "left_line": 966, + "right_line": 972 + }, + { + "left_line": 967, + "right_line": 973 + }, + { + "left_line": 968, + "right_line": 974 + }, + { + "left_line": 969, + "right_line": 975 + }, + { + "left_line": 970, + "right_line": 976 + }, + { + "left_line": 971, + "right_line": 977 + }, + { + "left_line": 972, + "right_line": 978 + }, + { + "left_line": 973, + "right_line": 979 + }, + { + "left_line": 974, + "right_line": 980 + }, + { + "left_line": 975, + "right_line": 981 + }, + { + "left_line": 976, + "right_line": 982 + }, + { + "left_line": 977, + "right_line": 983 + }, + { + "left_line": 978, + "right_line": 984 + }, + { + "left_line": 979, + "right_line": 985 + }, + { + "left_line": 980, + "right_line": 986 + }, + { + "left_line": 981, + "right_line": 987 + }, + { + "left_line": 982, + "right_line": 988 + }, + { + "left_line": 983, + "right_line": 989 + }, + { + "left_line": 984, + "right_line": 990 + }, + { + "left_line": 985, + "right_line": 991 + }, + { + "left_line": 986, + "right_line": 992 + }, + { + "left_line": 987, + "right_line": 993 + }, + { + "left_line": 988, + "right_line": 994 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_hatch_build_targets/metadata.json b/tests/testdata/json_schemastore_hatch_build_targets/metadata.json new file mode 100644 index 0000000..bf392ca --- /dev/null +++ b/tests/testdata/json_schemastore_hatch_build_targets/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "7bd9236c5b2548b91748f96d37c2f4aaf7441dd1", + "description": "Add hatch build targets schema", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_hatch_build_targets/new.json b/tests/testdata/json_schemastore_hatch_build_targets/new.json new file mode 100644 index 0000000..7c7730c --- /dev/null +++ b/tests/testdata/json_schemastore_hatch_build_targets/new.json @@ -0,0 +1,994 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/hatch.json", + "additionalProperties": false, + "definitions": { + "Platform": { + "enum": ["linux", "windows", "macos"] + }, + "Format": { + "title": "Format", + "description": "Options for static analysis and formatting", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/dev/config/static-analysis/" + } + }, + "type": "object", + "properties": { + "config-path": { + "title": "Config-Path", + "description": "Path to default configuration", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/dev/config/static-analysis/#persistent-config" + } + }, + "type": "string" + } + } + }, + "Metadata": { + "title": "Metadata", + "description": "Metadata for the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/metadata/#metadata-options" + } + }, + "type": "object", + "properties": { + "allow-direct-references": { + "title": "Allow-Direct-References", + "description": "Whether to allow direct references", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/metadata/#allowing-direct-references" + } + }, + "type": "boolean" + }, + "allow-ambiguous-features": { + "title": "Allow-Ambiguous-Features", + "description": "Whether to allow ambiguous features", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/metadata/#allowing-ambiguous-features" + } + }, + "type": "boolean" + }, + "hooks": { + "title": "Metadata Hook Plugins", + "description": "Configuration for plugin hooks that allow for the modification of project metadata after it has been loaded", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/metadata-hook" + } + }, + "type": "object", + "additionalProperties": true + } + } + }, + "Override": { + "title": "Override", + "description": "TODO" + }, + "Overrides": { + "title": "Overrides", + "description": "Overrides depending on things like platform, matrix variables, or environment variables", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/advanced/#option-overrides" + } + }, + "type": "object", + "patternProperties": { + "env|matrix|name": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Override" + } + } + }, + "properties": { + "platform": { + "type": "object", + "propertyNames": { + "$ref": "#/definitions/Platform" + }, + "additionalProperties": { + "$ref": "#/definitions/Override" + } + } + } + }, + "Env": { + "title": "Env", + "type": "object", + "properties": { + "template": { + "title": "Template", + "description": "Template environment to inherit from. Set to own name to make self referential (disable inheritance from “default”)", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#inheritance" + } + }, + "type": "string", + "default": "default" + }, + "detached": { + "title": "Detached", + "description": "Make the environment self-referential and skip project install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#detached-environments" + } + }, + "type": "boolean", + "default": false + }, + "dependencies": { + "title": "Dependencies", + "description": "List of dependencies to install in the environment", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "extra-dependencies": { + "title": "Extra dependencies", + "description": "List of extra dependencies to install in the environment in addition to the template environment’s dependencies", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "features": { + "title": "Features (extras)", + "description": "List of optional dependency groups (extras) to install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#features" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "dev-mode": { + "title": "Dev mode", + "description": "Whether to install the project in development mode", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#dev-mode" + } + }, + "type": "boolean", + "default": true + }, + "skip-install": { + "title": "Skip install", + "description": "Whether to skip installing the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#skip-install" + } + }, + "type": "boolean", + "default": false + }, + "env-vars": { + "title": "Environment variables", + "description": "Environment variables to set", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#defined" + } + }, + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "env-include": { + "title": "Environment variable include", + "description": "Glob patterns of environment variables to include", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#filters" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "env-exclude": { + "title": "Environment variable exclude", + "description": "Glob patterns of environment variables to exclude", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#filters" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "scripts": { + "title": "Scripts", + "description": "Dictionary of scripts to run", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#scripts" + } + }, + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + }, + "pre-install-commands": { + "title": "Pre-install commands", + "description": "List of commands to run before installing the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#pre-install" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "post-install-commands": { + "title": "Post-install commands", + "description": "List of commands to run after installing the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#post-install" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "python": { + "title": "Python version", + "description": "Python version to use or an absolute path to a python interpreter", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#python-version" + } + }, + "type": "string" + }, + "platforms": { + "title": "Platforms", + "description": "List of platforms to build for", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#supported-platforms" + } + }, + "type": "array", + "items": { + "$ref": "#/definitions/Platform" + } + }, + "description": { + "title": "Description", + "description": "Description of the environment for the `env show` command", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#description" + } + }, + "type": "string" + }, + "type": { + "title": "Type", + "description": "Type of environment. Without plugins, the only supported type is \"virtual\"", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#type" + } + }, + "type": "string", + "default": "virtual" + }, + "matrix": { + "title": "Matrix", + "description": "Matrix of environments", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/advanced/#matrix" + } + }, + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "matrix-name-format": { + "title": "Matrix name format", + "description": "Format string for matrix names, supporting {variable} and {value} placeholders", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/advanced/#name-formatting" + } + }, + "type": "string", + "default": "{value}" + }, + "overrides": { + "$ref": "#/definitions/Overrides" + }, + "requires": { + "title": "Requires", + "description": "Required environment plugins", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment/reference/#installation" + } + }, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Envs": { + "title": "Envs", + "description": "Dictionary of environments", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/" + } + }, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Env" + } + }, + "CollectorEnv": { + "title": "CollectorEnv", + "description": "Environment collector plugin configuration", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment-collector/" + } + }, + "type": "object", + "properties": { + "collectors": { + "title": "Collectors", + "description": "Custom environment collectors", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment-collector/custom/" + } + }, + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "requires": { + "title": "Requires", + "description": "Required environment collectors for automatic management", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment-collector/reference/#installation" + } + }, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Target": { + "title": "Target", + "type": "object", + "properties": { + "ignore-vcs": { + "$ref": "#/definitions/IgnoreVcs" + }, + "include": { + "$ref": "#/definitions/Include" + }, + "exclude": { + "$ref": "#/definitions/Exclude" + }, + "artifacts": { + "$ref": "#/definitions/Artifacts" + }, + "only-include": { + "$ref": "#/definitions/OnlyInclude" + }, + "hooks": { + "$ref": "#/definitions/BuildHooks" + }, + "dependencies": { + "title": "Dependencies", + "description": "Additional dependencies to install in the environment", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "require-runtime-dependencies": { + "title": "Require runtime dependencies", + "description": "Whether to install the project’s runtime dependencies", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies" + } + }, + "type": "boolean", + "default": false + }, + "require-runtime-features": { + "title": "Required runtime features", + "description": "A list of the project’s runtime features to install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "versions": { + "title": "Versions", + "description": "List of versions to build", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#versions" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "packages": { + "title": "Packages", + "description": "List of packages to build", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#packages" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "force-include": { + "title": "Force include", + "description": "Whether to force include files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#force-include" + } + }, + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "only-packages": { + "title": "Only packages", + "description": "Whether to only include non-artifact files in packages", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#excluding-files-outside-packages" + } + }, + "type": "boolean" + }, + "sources": { + "title": "Sources", + "description": "Rewrite relative paths", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#rewriting-paths" + } + }, + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "bypass-selection": { + "title": "Bypass Selection", + "description": "Whether or not to suppress the error when one has not defined any file selection options and all heuristics have failed to determine what to ship", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/builder/wheel/#options" + } + }, + "type": "boolean", + "default": false + } + } + }, + "CustomTargets": { + "title": "CustomTargets", + "description": "Build targets", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#build-targets" + } + }, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Target" + }, + "x-tombi-additional-key-label": "target_name" + }, + "Hook": { + "title": "Build hook", + "type": "object", + "properties": { + "dependencies": { + "title": "Dependencies", + "description": "Additional dependencies installed in the build environment", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies_1" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "require-runtime-dependencies": { + "title": "Require runtime dependencies", + "description": "Whether to install the project’s runtime dependencies", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies_1" + } + }, + "type": "boolean", + "default": false + }, + "require-runtime-features": { + "title": "Required runtime features", + "description": "A list of the project’s runtime features to install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies_1" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "enable-by-default": { + "title": "Conditional execution", + "description": "Whether to enable current hook (disable to control activation using environment variables)", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#conditional-execution" + } + }, + "type": "boolean", + "default": true + } + }, + "additionalProperties": true + }, + "BuildHooks": { + "title": "Build Hook Plugins", + "description": "Configuration for plugin hooks that will be executed at various stages of the build process", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#build-hooks" + } + }, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Hook" + }, + "x-tombi-additional-key-label": "hook_name" + }, + "Build": { + "title": "Build", + "description": "Build configuration", + "type": "object", + "anyOf": [ + { "properties": { "dev-mode-dirs": false } }, + { "properties": { "dev-mode-exact": false } } + ], + "properties": { + "ignore-vcs": { + "$ref": "#/definitions/IgnoreVcs" + }, + "include": { + "$ref": "#/definitions/Include" + }, + "exclude": { + "$ref": "#/definitions/Exclude" + }, + "artifacts": { + "$ref": "#/definitions/Artifacts" + }, + "only-packages": { + "title": "Excluding files outside packages", + "description": "Whether to only include non-artifact files in packages", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#excluding-files-outside-packages" + } + }, + "type": "boolean", + "default": false + }, + "sources": { + "title": "Sources", + "description": "Rewrite relative paths", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#rewriting-paths" + } + }, + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "skip-excluded-dirs": { + "title": "Skip excluded dirs", + "description": "Whether to skip excluded directories (for performance reasons)", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#performance" + } + }, + "type": "boolean", + "default": false + }, + "reproducible": { + "title": "Reproducible", + "description": "Whether to make the build reproducible", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#reproducible-builds" + } + }, + "type": "boolean", + "default": true + }, + "directory": { + "title": "Output directory", + "description": "Directory to write build artifacts to", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#output-directory" + } + }, + "type": "string", + "default": "dist" + }, + "dev-mode-dirs": { + "title": "Dev mode directories", + "description": "List of directories to add to PYTHONPATH in development mode", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dev-mode" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "dev-mode-exact": { + "title": "Exact dev mode", + "description": "Whether to use an exact dev mode that doesn’t add whole directories to PYTHONPATH", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dev-mode" + } + }, + "type": "boolean" + }, + "targets": { + "$ref": "#/definitions/CustomTargets" + }, + "hooks": { + "$ref": "#/definitions/BuildHooks" + } + } + }, + "Version": { + "title": "Version", + "description": "Version configuration", + "additionalProperties": true, + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "object", + "properties": { + "path": { + "title": "Path", + "description": "A relative path to a file containing the project version", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "string" + }, + "pattern": { + "title": "Pattern", + "description": "A regex pattern to extract the version", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "string" + }, + "source": { + "title": "Source", + "description": "A source to use for retrieving and updating the version.", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "string" + } + } + }, + "PublishIndex": { + "title": "PublishIndex", + "description": "Publishing index configuration", + "type": "object", + "properties": { + "disable": { + "title": "Confirmation", + "description": "Ask for confirmation when publishing to index", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/publish/#confirmation" + } + }, + "type": "boolean", + "default": false + }, + "repos": { + "title": "Repositories", + "description": "Define named repositories to publish to", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/publish/#repository" + } + }, + "type": "object", + "properties": { + "main": false, + "test": false + }, + "additionalProperties": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + } + } + } + } + }, + "Publish": { + "title": "Publish", + "description": "Publish configuration", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/publish/" + } + }, + "type": "object", + "properties": { + "index": { + "$ref": "#/definitions/PublishIndex" + } + } + }, + "IgnoreVcs": { + "title": "Ignore VCS in file selection", + "description": "Whether to ignore VCS .*ignore files and include those files by default", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#vcs" + } + }, + "type": "boolean", + "default": false + }, + "Include": { + "title": "Include files", + "description": "List of glob patterns to include files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#patterns" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "Exclude": { + "title": "Exclude files", + "description": "List of glob patterns to exclude files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#patterns" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "Artifacts": { + "title": "Artifact files", + "description": "List of glob patterns to include VCS-ignored files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#artifacts" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "OnlyInclude": { + "title": "Only include specific paths", + "description": "List of relative paths to directories or files to include, preventing directory traversal from project root. This option overrides any include patterns.", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#generic" + } + }, + "type": "array", + "items": { + "type": "string" + } + } + }, + "oneOf": [ + { + "properties": { + "version": false + } + }, + { + "required": ["version"], + "properties": { + "version": { + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/" + } + }, + "type": "object", + "required": ["path"], + "properties": { + "path": { "type": "string" }, + "pattern": { "type": "string" } + } + } + } + }, + { + "required": ["version"], + "properties": { + "version": { + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/" + } + }, + "type": "object", + "required": ["source"], + "properties": { + "source": { "type": "string" } + } + } + } + } + ], + "properties": { + "metadata": { + "$ref": "#/definitions/Metadata" + }, + "env": { + "$ref": "#/definitions/CollectorEnv" + }, + "envs": { + "$ref": "#/definitions/Envs" + }, + "build": { + "$ref": "#/definitions/Build" + }, + "version": { + "$ref": "#/definitions/Version" + }, + "publish": { + "$ref": "#/definitions/Publish" + } + }, + "title": "Hatch", + "type": "object", + "x-taplo-info": { + "authors": [ + "flying-sheep (https://github.com/flying-sheep)", + "Chaojie (https://github.com/ischaojie)" + ], + "pattern": ["^(.*(/|\\\\)hatch\\.toml|hatch\\.toml)$"] + } +} diff --git a/tests/testdata/json_schemastore_hatch_build_targets/old.json b/tests/testdata/json_schemastore_hatch_build_targets/old.json new file mode 100644 index 0000000..6ae32ed --- /dev/null +++ b/tests/testdata/json_schemastore_hatch_build_targets/old.json @@ -0,0 +1,988 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/hatch.json", + "additionalProperties": false, + "definitions": { + "Platform": { + "enum": ["linux", "windows", "macos"] + }, + "Format": { + "title": "Format", + "description": "Options for static analysis and formatting", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/dev/config/static-analysis/" + } + }, + "type": "object", + "properties": { + "config-path": { + "title": "Config-Path", + "description": "Path to default configuration", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/dev/config/static-analysis/#persistent-config" + } + }, + "type": "string" + } + } + }, + "Metadata": { + "title": "Metadata", + "description": "Metadata for the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/metadata/#metadata-options" + } + }, + "type": "object", + "properties": { + "allow-direct-references": { + "title": "Allow-Direct-References", + "description": "Whether to allow direct references", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/metadata/#allowing-direct-references" + } + }, + "type": "boolean" + }, + "allow-ambiguous-features": { + "title": "Allow-Ambiguous-Features", + "description": "Whether to allow ambiguous features", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/metadata/#allowing-ambiguous-features" + } + }, + "type": "boolean" + }, + "hooks": { + "title": "Metadata Hook Plugins", + "description": "Configuration for plugin hooks that allow for the modification of project metadata after it has been loaded", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/metadata-hook" + } + }, + "type": "object", + "additionalProperties": true + } + } + }, + "Override": { + "title": "Override", + "description": "TODO" + }, + "Overrides": { + "title": "Overrides", + "description": "Overrides depending on things like platform, matrix variables, or environment variables", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/advanced/#option-overrides" + } + }, + "type": "object", + "patternProperties": { + "env|matrix|name": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Override" + } + } + }, + "properties": { + "platform": { + "type": "object", + "propertyNames": { + "$ref": "#/definitions/Platform" + }, + "additionalProperties": { + "$ref": "#/definitions/Override" + } + } + } + }, + "Env": { + "title": "Env", + "type": "object", + "properties": { + "template": { + "title": "Template", + "description": "Template environment to inherit from. Set to own name to make self referential (disable inheritance from “default”)", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#inheritance" + } + }, + "type": "string", + "default": "default" + }, + "detached": { + "title": "Detached", + "description": "Make the environment self-referential and skip project install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#detached-environments" + } + }, + "type": "boolean", + "default": false + }, + "dependencies": { + "title": "Dependencies", + "description": "List of dependencies to install in the environment", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "extra-dependencies": { + "title": "Extra dependencies", + "description": "List of extra dependencies to install in the environment in addition to the template environment’s dependencies", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "features": { + "title": "Features (extras)", + "description": "List of optional dependency groups (extras) to install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#features" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "dev-mode": { + "title": "Dev mode", + "description": "Whether to install the project in development mode", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#dev-mode" + } + }, + "type": "boolean", + "default": true + }, + "skip-install": { + "title": "Skip install", + "description": "Whether to skip installing the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#skip-install" + } + }, + "type": "boolean", + "default": false + }, + "env-vars": { + "title": "Environment variables", + "description": "Environment variables to set", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#defined" + } + }, + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "env-include": { + "title": "Environment variable include", + "description": "Glob patterns of environment variables to include", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#filters" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "env-exclude": { + "title": "Environment variable exclude", + "description": "Glob patterns of environment variables to exclude", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#filters" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "scripts": { + "title": "Scripts", + "description": "Dictionary of scripts to run", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#scripts" + } + }, + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + }, + "pre-install-commands": { + "title": "Pre-install commands", + "description": "List of commands to run before installing the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#pre-install" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "post-install-commands": { + "title": "Post-install commands", + "description": "List of commands to run after installing the project", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#post-install" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "python": { + "title": "Python version", + "description": "Python version to use or an absolute path to a python interpreter", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#python-version" + } + }, + "type": "string" + }, + "platforms": { + "title": "Platforms", + "description": "List of platforms to build for", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#supported-platforms" + } + }, + "type": "array", + "items": { + "$ref": "#/definitions/Platform" + } + }, + "description": { + "title": "Description", + "description": "Description of the environment for the `env show` command", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#description" + } + }, + "type": "string" + }, + "type": { + "title": "Type", + "description": "Type of environment. Without plugins, the only supported type is \"virtual\"", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/#type" + } + }, + "type": "string", + "default": "virtual" + }, + "matrix": { + "title": "Matrix", + "description": "Matrix of environments", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/advanced/#matrix" + } + }, + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "matrix-name-format": { + "title": "Matrix name format", + "description": "Format string for matrix names, supporting {variable} and {value} placeholders", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/advanced/#name-formatting" + } + }, + "type": "string", + "default": "{value}" + }, + "overrides": { + "$ref": "#/definitions/Overrides" + }, + "requires": { + "title": "Requires", + "description": "Required environment plugins", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment/reference/#installation" + } + }, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Envs": { + "title": "Envs", + "description": "Dictionary of environments", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/environment/overview/" + } + }, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Env" + } + }, + "CollectorEnv": { + "title": "CollectorEnv", + "description": "Environment collector plugin configuration", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment-collector/" + } + }, + "type": "object", + "properties": { + "collectors": { + "title": "Collectors", + "description": "Custom environment collectors", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment-collector/custom/" + } + }, + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "requires": { + "title": "Requires", + "description": "Required environment collectors for automatic management", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/environment-collector/reference/#installation" + } + }, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Target": { + "title": "Target", + "type": "object", + "properties": { + "ignore-vcs": { + "$ref": "#/definitions/IgnoreVcs" + }, + "include": { + "$ref": "#/definitions/Include" + }, + "exclude": { + "$ref": "#/definitions/Exclude" + }, + "artifacts": { + "$ref": "#/definitions/Artifacts" + }, + "only-include": { + "$ref": "#/definitions/OnlyInclude" + }, + "dependencies": { + "title": "Dependencies", + "description": "Additional dependencies to install in the environment", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "require-runtime-dependencies": { + "title": "Require runtime dependencies", + "description": "Whether to install the project’s runtime dependencies", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies" + } + }, + "type": "boolean", + "default": false + }, + "require-runtime-features": { + "title": "Required runtime features", + "description": "A list of the project’s runtime features to install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "versions": { + "title": "Versions", + "description": "List of versions to build", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#versions" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "packages": { + "title": "Packages", + "description": "List of packages to build", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#packages" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "force-include": { + "title": "Force include", + "description": "Whether to force include files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#force-include" + } + }, + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "only-packages": { + "title": "Only packages", + "description": "Whether to only include non-artifact files in packages", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#excluding-files-outside-packages" + } + }, + "type": "boolean" + }, + "sources": { + "title": "Sources", + "description": "Rewrite relative paths", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#rewriting-paths" + } + }, + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "bypass-selection": { + "title": "Bypass Selection", + "description": "Whether or not to suppress the error when one has not defined any file selection options and all heuristics have failed to determine what to ship", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/plugins/builder/wheel/#options" + } + }, + "type": "boolean", + "default": false + } + } + }, + "CustomTargets": { + "title": "CustomTargets", + "description": "Build targets", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#build-targets" + } + }, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Target" + } + }, + "Hook": { + "title": "Build hook", + "type": "object", + "properties": { + "dependencies": { + "title": "Dependencies", + "description": "Additional dependencies installed in the build environment", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies_1" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "require-runtime-dependencies": { + "title": "Require runtime dependencies", + "description": "Whether to install the project’s runtime dependencies", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies_1" + } + }, + "type": "boolean", + "default": false + }, + "require-runtime-features": { + "title": "Required runtime features", + "description": "A list of the project’s runtime features to install", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dependencies_1" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "enable-by-default": { + "title": "Conditional execution", + "description": "Whether to enable current hook (disable to control activation using environment variables)", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#conditional-execution" + } + }, + "type": "boolean", + "default": true + } + } + }, + "BuildHooks": { + "title": "Build Hook Plugins", + "description": "Configuration for plugin hooks that will be executed at various stages of the build process", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#build-hooks" + } + }, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Hook" + } + }, + "Build": { + "title": "Build", + "description": "Build configuration", + "type": "object", + "anyOf": [ + { "properties": { "dev-mode-dirs": false } }, + { "properties": { "dev-mode-exact": false } } + ], + "properties": { + "ignore-vcs": { + "$ref": "#/definitions/IgnoreVcs" + }, + "include": { + "$ref": "#/definitions/Include" + }, + "exclude": { + "$ref": "#/definitions/Exclude" + }, + "artifacts": { + "$ref": "#/definitions/Artifacts" + }, + "only-packages": { + "title": "Excluding files outside packages", + "description": "Whether to only include non-artifact files in packages", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#excluding-files-outside-packages" + } + }, + "type": "boolean", + "default": false + }, + "sources": { + "title": "Sources", + "description": "Rewrite relative paths", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#rewriting-paths" + } + }, + "anyOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "skip-excluded-dirs": { + "title": "Skip excluded dirs", + "description": "Whether to skip excluded directories (for performance reasons)", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#performance" + } + }, + "type": "boolean", + "default": false + }, + "reproducible": { + "title": "Reproducible", + "description": "Whether to make the build reproducible", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#reproducible-builds" + } + }, + "type": "boolean", + "default": true + }, + "directory": { + "title": "Output directory", + "description": "Directory to write build artifacts to", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#output-directory" + } + }, + "type": "string", + "default": "dist" + }, + "dev-mode-dirs": { + "title": "Dev mode directories", + "description": "List of directories to add to PYTHONPATH in development mode", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dev-mode" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "dev-mode-exact": { + "title": "Exact dev mode", + "description": "Whether to use an exact dev mode that doesn’t add whole directories to PYTHONPATH", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#dev-mode" + } + }, + "type": "boolean" + }, + "targets": { + "$ref": "#/definitions/CustomTargets" + }, + "hooks": { + "$ref": "#/definitions/BuildHooks" + } + } + }, + "Version": { + "title": "Version", + "description": "Version configuration", + "additionalProperties": true, + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "object", + "properties": { + "path": { + "title": "Path", + "description": "A relative path to a file containing the project version", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "string" + }, + "pattern": { + "title": "Pattern", + "description": "A regex pattern to extract the version", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "string" + }, + "source": { + "title": "Source", + "description": "A source to use for retrieving and updating the version.", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/#configuration" + } + }, + "type": "string" + } + } + }, + "PublishIndex": { + "title": "PublishIndex", + "description": "Publishing index configuration", + "type": "object", + "properties": { + "disable": { + "title": "Confirmation", + "description": "Ask for confirmation when publishing to index", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/publish/#confirmation" + } + }, + "type": "boolean", + "default": false + }, + "repos": { + "title": "Repositories", + "description": "Define named repositories to publish to", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/publish/#repository" + } + }, + "type": "object", + "properties": { + "main": false, + "test": false + }, + "additionalProperties": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + } + } + } + } + }, + "Publish": { + "title": "Publish", + "description": "Publish configuration", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/publish/" + } + }, + "type": "object", + "properties": { + "index": { + "$ref": "#/definitions/PublishIndex" + } + } + }, + "IgnoreVcs": { + "title": "Ignore VCS in file selection", + "description": "Whether to ignore VCS .*ignore files and include those files by default", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#vcs" + } + }, + "type": "boolean", + "default": false + }, + "Include": { + "title": "Include files", + "description": "List of glob patterns to include files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#patterns" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "Exclude": { + "title": "Exclude files", + "description": "List of glob patterns to exclude files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#patterns" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "Artifacts": { + "title": "Artifact files", + "description": "List of glob patterns to include VCS-ignored files", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#artifacts" + } + }, + "type": "array", + "items": { + "type": "string" + } + }, + "OnlyInclude": { + "title": "Only include specific paths", + "description": "List of relative paths to directories or files to include, preventing directory traversal from project root. This option overrides any include patterns.", + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/config/build/#generic" + } + }, + "type": "array", + "items": { + "type": "string" + } + } + }, + "oneOf": [ + { + "properties": { + "version": false + } + }, + { + "required": ["version"], + "properties": { + "version": { + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/" + } + }, + "type": "object", + "required": ["path"], + "properties": { + "path": { "type": "string" }, + "pattern": { "type": "string" } + } + } + } + }, + { + "required": ["version"], + "properties": { + "version": { + "x-taplo": { + "links": { + "key": "https://hatch.pypa.io/latest/version/" + } + }, + "type": "object", + "required": ["source"], + "properties": { + "source": { "type": "string" } + } + } + } + } + ], + "properties": { + "metadata": { + "$ref": "#/definitions/Metadata" + }, + "env": { + "$ref": "#/definitions/CollectorEnv" + }, + "envs": { + "$ref": "#/definitions/Envs" + }, + "build": { + "$ref": "#/definitions/Build" + }, + "version": { + "$ref": "#/definitions/Version" + }, + "publish": { + "$ref": "#/definitions/Publish" + } + }, + "title": "Hatch", + "type": "object", + "x-taplo-info": { + "authors": [ + "flying-sheep (https://github.com/flying-sheep)", + "Chaojie (https://github.com/ischaojie)" + ], + "pattern": ["^(.*(/|\\\\)hatch\\.toml|hatch\\.toml)$"] + } +} diff --git a/tests/testdata/json_schemastore_helmfile_release_opts/expected.json b/tests/testdata/json_schemastore_helmfile_release_opts/expected.json new file mode 100644 index 0000000..078deb5 --- /dev/null +++ b/tests/testdata/json_schemastore_helmfile_release_opts/expected.json @@ -0,0 +1,2928 @@ +{ + "version": "v1", + "actions": [ + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 2, + 1, + 2, + 1, + 3, + 0 + ], + "type": "string", + "label": "\"oneOf\"", + "start_byte": 12531, + "end_byte": 12538 + }, + "old_value": "\"oneOf\"", + "new_value": "\"anyOf\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 3, + 0 + ], + "type": "string", + "label": "\"anyOf\"", + "start_byte": 14177, + "end_byte": 14184 + } + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 32 + ], + "type": "pair", + "start_byte": 12497, + "end_byte": 12760 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4621, + "end_byte": 14141 + }, + "position": 32, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 33 + ], + "type": "pair", + "start_byte": 12770, + "end_byte": 13292 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4621, + "end_byte": 14141 + }, + "position": 33, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 34 + ], + "type": "pair", + "start_byte": 13302, + "end_byte": 13526 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4621, + "end_byte": 14141 + }, + "position": 34, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 35 + ], + "type": "pair", + "start_byte": 13536, + "end_byte": 13742 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4621, + "end_byte": 14141 + }, + "position": 35, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 36 + ], + "type": "pair", + "start_byte": 13752, + "end_byte": 13939 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4621, + "end_byte": 14141 + }, + "position": 36, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1, + 37 + ], + "type": "pair", + "start_byte": 13949, + "end_byte": 14133 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 2, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4621, + "end_byte": 14141 + }, + "position": 37, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": 334, + "right_line": 334 + }, + { + "left_line": 335, + "right_line": 335 + }, + { + "left_line": 336, + "right_line": 336 + }, + { + "left_line": 337, + "right_line": 337 + }, + { + "left_line": 338, + "right_line": 338 + }, + { + "left_line": 339, + "right_line": 339 + }, + { + "left_line": 340, + "right_line": 340 + }, + { + "left_line": 341, + "right_line": 341 + }, + { + "left_line": 342, + "right_line": 342 + }, + { + "left_line": 343, + "right_line": 343 + }, + { + "left_line": 344, + "right_line": 344 + }, + { + "left_line": 345, + "right_line": 345 + }, + { + "left_line": 346, + "right_line": 346 + }, + { + "left_line": 347, + "right_line": 347 + }, + { + "left_line": 348, + "right_line": 348 + }, + { + "left_line": 349, + "right_line": 349 + }, + { + "left_line": 350, + "right_line": 350 + }, + { + "left_line": 351, + "right_line": 351 + }, + { + "left_line": 352, + "right_line": 352 + }, + { + "left_line": 353, + "right_line": 353 + }, + { + "left_line": 354, + "right_line": 354 + }, + { + "left_line": 355, + "right_line": 355 + }, + { + "left_line": 356, + "right_line": 356 + }, + { + "left_line": 357, + "right_line": 357 + }, + { + "left_line": 358, + "right_line": 358 + }, + { + "left_line": 359, + "right_line": 359 + }, + { + "left_line": 360, + "right_line": 360 + }, + { + "left_line": 361, + "right_line": 361 + }, + { + "left_line": 362, + "right_line": 362 + }, + { + "left_line": 363, + "right_line": 363 + }, + { + "left_line": 364, + "right_line": 364 + }, + { + "left_line": 365, + "right_line": 365 + }, + { + "left_line": 366, + "right_line": 366 + }, + { + "left_line": 367, + "right_line": 367 + }, + { + "left_line": 368, + "right_line": 368 + }, + { + "left_line": 369, + "right_line": 369 + }, + { + "left_line": 370, + "right_line": 370 + }, + { + "left_line": 371, + "right_line": 371 + }, + { + "left_line": 372, + "right_line": 372 + }, + { + "left_line": -1, + "right_line": 373 + }, + { + "left_line": -1, + "right_line": 374 + }, + { + "left_line": -1, + "right_line": 375 + }, + { + "left_line": -1, + "right_line": 376 + }, + { + "left_line": -1, + "right_line": 377 + }, + { + "left_line": -1, + "right_line": 378 + }, + { + "left_line": -1, + "right_line": 379 + }, + { + "left_line": -1, + "right_line": 380 + }, + { + "left_line": -1, + "right_line": 381 + }, + { + "left_line": -1, + "right_line": 382 + }, + { + "left_line": -1, + "right_line": 383 + }, + { + "left_line": -1, + "right_line": 384 + }, + { + "left_line": -1, + "right_line": 385 + }, + { + "left_line": -1, + "right_line": 386 + }, + { + "left_line": -1, + "right_line": 387 + }, + { + "left_line": -1, + "right_line": 388 + }, + { + "left_line": -1, + "right_line": 389 + }, + { + "left_line": -1, + "right_line": 390 + }, + { + "left_line": -1, + "right_line": 391 + }, + { + "left_line": -1, + "right_line": 392 + }, + { + "left_line": -1, + "right_line": 393 + }, + { + "left_line": -1, + "right_line": 394 + }, + { + "left_line": -1, + "right_line": 395 + }, + { + "left_line": -1, + "right_line": 396 + }, + { + "left_line": -1, + "right_line": 397 + }, + { + "left_line": -1, + "right_line": 398 + }, + { + "left_line": -1, + "right_line": 399 + }, + { + "left_line": -1, + "right_line": 400 + }, + { + "left_line": -1, + "right_line": 401 + }, + { + "left_line": -1, + "right_line": 402 + }, + { + "left_line": -1, + "right_line": 403 + }, + { + "left_line": -1, + "right_line": 404 + }, + { + "left_line": -1, + "right_line": 405 + }, + { + "left_line": -1, + "right_line": 406 + }, + { + "left_line": -1, + "right_line": 407 + }, + { + "left_line": -1, + "right_line": 408 + }, + { + "left_line": -1, + "right_line": 409 + }, + { + "left_line": -1, + "right_line": 410 + }, + { + "left_line": -1, + "right_line": 411 + }, + { + "left_line": -1, + "right_line": 412 + }, + { + "left_line": -1, + "right_line": 413 + }, + { + "left_line": -1, + "right_line": 414 + }, + { + "left_line": -1, + "right_line": 415 + }, + { + "left_line": -1, + "right_line": 416 + }, + { + "left_line": -1, + "right_line": 417 + }, + { + "left_line": -1, + "right_line": 418 + }, + { + "left_line": -1, + "right_line": 419 + }, + { + "left_line": -1, + "right_line": 420 + }, + { + "left_line": -1, + "right_line": 421 + }, + { + "left_line": -1, + "right_line": 422 + }, + { + "left_line": -1, + "right_line": 423 + }, + { + "left_line": -1, + "right_line": 424 + }, + { + "left_line": -1, + "right_line": 425 + }, + { + "left_line": -1, + "right_line": 426 + }, + { + "left_line": 373, + "right_line": 427 + }, + { + "left_line": 374, + "right_line": 428 + }, + { + "left_line": 375, + "right_line": 429 + }, + { + "left_line": 376, + "right_line": 430 + }, + { + "left_line": 377, + "right_line": 431 + }, + { + "left_line": 378, + "right_line": 432 + }, + { + "left_line": 379, + "right_line": 433 + }, + { + "left_line": 380, + "right_line": 434 + }, + { + "left_line": 381, + "right_line": 435 + }, + { + "left_line": 382, + "right_line": 436 + }, + { + "left_line": 383, + "right_line": 437 + }, + { + "left_line": 384, + "right_line": 438 + }, + { + "left_line": 385, + "right_line": 439 + }, + { + "left_line": 386, + "right_line": 440 + }, + { + "left_line": 387, + "right_line": 441 + }, + { + "left_line": 388, + "right_line": 442 + }, + { + "left_line": 389, + "right_line": 443 + }, + { + "left_line": 390, + "right_line": 444 + }, + { + "left_line": 391, + "right_line": 445 + }, + { + "left_line": 392, + "right_line": 446 + }, + { + "left_line": 393, + "right_line": 447 + }, + { + "left_line": 394, + "right_line": 448 + }, + { + "left_line": 395, + "right_line": 449 + }, + { + "left_line": 396, + "right_line": 450 + }, + { + "left_line": 397, + "right_line": 451 + }, + { + "left_line": 398, + "right_line": 452 + }, + { + "left_line": 399, + "right_line": 453 + }, + { + "left_line": 400, + "right_line": 454 + }, + { + "left_line": 401, + "right_line": 455 + }, + { + "left_line": 402, + "right_line": 456 + }, + { + "left_line": 403, + "right_line": 457 + }, + { + "left_line": 404, + "right_line": 458 + }, + { + "left_line": 405, + "right_line": 459 + }, + { + "left_line": 406, + "right_line": 460 + }, + { + "left_line": 407, + "right_line": 461 + }, + { + "left_line": 408, + "right_line": 462 + }, + { + "left_line": 409, + "right_line": 463 + }, + { + "left_line": 410, + "right_line": 464 + }, + { + "left_line": 411, + "right_line": 465 + }, + { + "left_line": 412, + "right_line": 466 + }, + { + "left_line": 413, + "right_line": 467 + }, + { + "left_line": 414, + "right_line": 468 + }, + { + "left_line": 415, + "right_line": 469 + }, + { + "left_line": 416, + "right_line": 470 + }, + { + "left_line": 417, + "right_line": 471 + }, + { + "left_line": 418, + "right_line": 472 + }, + { + "left_line": 419, + "right_line": 473 + }, + { + "left_line": 420, + "right_line": 474 + }, + { + "left_line": 421, + "right_line": 475 + }, + { + "left_line": 422, + "right_line": 476 + }, + { + "left_line": 423, + "right_line": 477 + }, + { + "left_line": 424, + "right_line": 478 + }, + { + "left_line": 425, + "right_line": 479 + }, + { + "left_line": 426, + "right_line": 480 + }, + { + "left_line": 427, + "right_line": 481 + }, + { + "left_line": 428, + "right_line": 482 + }, + { + "left_line": 429, + "right_line": 483 + }, + { + "left_line": 430, + "right_line": 484 + }, + { + "left_line": 431, + "right_line": 485 + }, + { + "left_line": 432, + "right_line": 486 + }, + { + "left_line": 433, + "right_line": 487 + }, + { + "left_line": 434, + "right_line": 488 + }, + { + "left_line": 435, + "right_line": 489 + }, + { + "left_line": 436, + "right_line": 490 + }, + { + "left_line": 437, + "right_line": 491 + }, + { + "left_line": 438, + "right_line": 492 + }, + { + "left_line": 439, + "right_line": 493 + }, + { + "left_line": 440, + "right_line": 494 + }, + { + "left_line": 441, + "right_line": 495 + }, + { + "left_line": 442, + "right_line": 496 + }, + { + "left_line": 443, + "right_line": 497 + }, + { + "left_line": 444, + "right_line": 498 + }, + { + "left_line": 445, + "right_line": 499 + }, + { + "left_line": 446, + "right_line": 500 + }, + { + "left_line": 447, + "right_line": 501 + }, + { + "left_line": 448, + "right_line": 502 + }, + { + "left_line": 449, + "right_line": 503 + }, + { + "left_line": 450, + "right_line": 504 + }, + { + "left_line": 451, + "right_line": 505 + }, + { + "left_line": 452, + "right_line": 506 + }, + { + "left_line": 453, + "right_line": 507 + }, + { + "left_line": 454, + "right_line": 508 + }, + { + "left_line": 455, + "right_line": 509 + }, + { + "left_line": 456, + "right_line": 510 + }, + { + "left_line": 457, + "right_line": 511 + }, + { + "left_line": 458, + "right_line": 512 + }, + { + "left_line": 459, + "right_line": 513 + }, + { + "left_line": 460, + "right_line": 514 + }, + { + "left_line": 461, + "right_line": 515 + }, + { + "left_line": 462, + "right_line": 516 + }, + { + "left_line": 463, + "right_line": 517 + }, + { + "left_line": 464, + "right_line": 518 + }, + { + "left_line": 465, + "right_line": 519 + }, + { + "left_line": 466, + "right_line": 520 + }, + { + "left_line": 467, + "right_line": 521 + }, + { + "left_line": 468, + "right_line": 522 + }, + { + "left_line": 469, + "right_line": 523 + }, + { + "left_line": 470, + "right_line": 524 + }, + { + "left_line": 471, + "right_line": 525 + }, + { + "left_line": 472, + "right_line": 526 + }, + { + "left_line": 473, + "right_line": 527 + }, + { + "left_line": 474, + "right_line": 528 + }, + { + "left_line": 475, + "right_line": 529 + }, + { + "left_line": 476, + "right_line": 530 + }, + { + "left_line": 477, + "right_line": 531 + }, + { + "left_line": 478, + "right_line": 532 + }, + { + "left_line": 479, + "right_line": 533 + }, + { + "left_line": 480, + "right_line": 534 + }, + { + "left_line": 481, + "right_line": 535 + }, + { + "left_line": 482, + "right_line": 536 + }, + { + "left_line": 483, + "right_line": 537 + }, + { + "left_line": 484, + "right_line": 538 + }, + { + "left_line": 485, + "right_line": 539 + }, + { + "left_line": 486, + "right_line": 540 + }, + { + "left_line": 487, + "right_line": 541 + }, + { + "left_line": 488, + "right_line": 542 + }, + { + "left_line": 489, + "right_line": 543 + }, + { + "left_line": 490, + "right_line": 544 + }, + { + "left_line": 491, + "right_line": 545 + }, + { + "left_line": 492, + "right_line": 546 + }, + { + "left_line": 493, + "right_line": 547 + }, + { + "left_line": 494, + "right_line": 548 + }, + { + "left_line": 495, + "right_line": 549 + }, + { + "left_line": 496, + "right_line": 550 + }, + { + "left_line": 497, + "right_line": 551 + }, + { + "left_line": 498, + "right_line": 552 + }, + { + "left_line": 499, + "right_line": 553 + }, + { + "left_line": 500, + "right_line": 554 + }, + { + "left_line": 501, + "right_line": 555 + }, + { + "left_line": 502, + "right_line": 556 + }, + { + "left_line": 503, + "right_line": 557 + }, + { + "left_line": 504, + "right_line": 558 + }, + { + "left_line": 505, + "right_line": 559 + }, + { + "left_line": 506, + "right_line": 560 + }, + { + "left_line": 507, + "right_line": 561 + }, + { + "left_line": 508, + "right_line": 562 + }, + { + "left_line": 509, + "right_line": 563 + }, + { + "left_line": 510, + "right_line": 564 + }, + { + "left_line": 511, + "right_line": 565 + }, + { + "left_line": 512, + "right_line": 566 + }, + { + "left_line": 513, + "right_line": 567 + }, + { + "left_line": 514, + "right_line": 568 + }, + { + "left_line": 515, + "right_line": 569 + }, + { + "left_line": 516, + "right_line": 570 + }, + { + "left_line": 517, + "right_line": 571 + }, + { + "left_line": 518, + "right_line": 572 + }, + { + "left_line": 519, + "right_line": 573 + }, + { + "left_line": 520, + "right_line": 574 + }, + { + "left_line": 521, + "right_line": 575 + }, + { + "left_line": 522, + "right_line": 576 + }, + { + "left_line": 523, + "right_line": 577 + }, + { + "left_line": 524, + "right_line": 578 + }, + { + "left_line": 525, + "right_line": 579 + }, + { + "left_line": 526, + "right_line": 580 + }, + { + "left_line": 527, + "right_line": 581 + }, + { + "left_line": 528, + "right_line": 582 + }, + { + "left_line": 529, + "right_line": 583 + }, + { + "left_line": 530, + "right_line": 584 + }, + { + "left_line": 531, + "right_line": 585 + }, + { + "left_line": 532, + "right_line": 586 + }, + { + "left_line": 533, + "right_line": 587 + }, + { + "left_line": 534, + "right_line": 588 + }, + { + "left_line": 535, + "right_line": 589 + }, + { + "left_line": 536, + "right_line": 590 + }, + { + "left_line": 537, + "right_line": 591 + }, + { + "left_line": 538, + "right_line": 592 + }, + { + "left_line": 539, + "right_line": 593 + }, + { + "left_line": 540, + "right_line": 594 + }, + { + "left_line": 541, + "right_line": 595 + }, + { + "left_line": 542, + "right_line": 596 + }, + { + "left_line": 543, + "right_line": 597 + }, + { + "left_line": 544, + "right_line": 598 + }, + { + "left_line": 545, + "right_line": 599 + }, + { + "left_line": 546, + "right_line": 600 + }, + { + "left_line": 547, + "right_line": 601 + }, + { + "left_line": 548, + "right_line": 602 + }, + { + "left_line": 549, + "right_line": 603 + }, + { + "left_line": 550, + "right_line": 604 + }, + { + "left_line": 551, + "right_line": 605 + }, + { + "left_line": 552, + "right_line": 606 + }, + { + "left_line": 553, + "right_line": 607 + }, + { + "left_line": 554, + "right_line": 608 + }, + { + "left_line": 555, + "right_line": 609 + }, + { + "left_line": 556, + "right_line": 610 + }, + { + "left_line": 557, + "right_line": 611 + }, + { + "left_line": 558, + "right_line": 612 + }, + { + "left_line": 559, + "right_line": 613 + }, + { + "left_line": 560, + "right_line": 614 + }, + { + "left_line": 561, + "right_line": 615 + }, + { + "left_line": 562, + "right_line": 616 + }, + { + "left_line": 563, + "right_line": 617 + }, + { + "left_line": 564, + "right_line": 618 + }, + { + "left_line": 565, + "right_line": 619 + }, + { + "left_line": 566, + "right_line": 620 + }, + { + "left_line": 567, + "right_line": 621 + }, + { + "left_line": 568, + "right_line": 622 + }, + { + "left_line": 569, + "right_line": 623 + }, + { + "left_line": 570, + "right_line": 624 + }, + { + "left_line": 571, + "right_line": 625 + }, + { + "left_line": 572, + "right_line": 626 + }, + { + "left_line": 573, + "right_line": 627 + }, + { + "left_line": 574, + "right_line": 628 + }, + { + "left_line": 575, + "right_line": 629 + }, + { + "left_line": 576, + "right_line": 630 + }, + { + "left_line": 577, + "right_line": 631 + }, + { + "left_line": 578, + "right_line": 632 + }, + { + "left_line": 579, + "right_line": 633 + }, + { + "left_line": 580, + "right_line": 634 + }, + { + "left_line": 581, + "right_line": 635 + }, + { + "left_line": 582, + "right_line": 636 + }, + { + "left_line": 583, + "right_line": 637 + }, + { + "left_line": 584, + "right_line": 638 + }, + { + "left_line": 585, + "right_line": 639 + }, + { + "left_line": 586, + "right_line": 640 + }, + { + "left_line": 587, + "right_line": 641 + }, + { + "left_line": 588, + "right_line": 642 + }, + { + "left_line": 589, + "right_line": 643 + }, + { + "left_line": 590, + "right_line": 644 + }, + { + "left_line": 591, + "right_line": 645 + }, + { + "left_line": 592, + "right_line": 646 + }, + { + "left_line": 593, + "right_line": 647 + }, + { + "left_line": 594, + "right_line": 648 + }, + { + "left_line": 595, + "right_line": 649 + }, + { + "left_line": 596, + "right_line": 650 + }, + { + "left_line": 597, + "right_line": 651 + }, + { + "left_line": 598, + "right_line": 652 + }, + { + "left_line": 599, + "right_line": 653 + }, + { + "left_line": 600, + "right_line": 654 + }, + { + "left_line": 601, + "right_line": 655 + }, + { + "left_line": 602, + "right_line": 656 + }, + { + "left_line": 603, + "right_line": 657 + }, + { + "left_line": 604, + "right_line": 658 + }, + { + "left_line": 605, + "right_line": 659 + }, + { + "left_line": 606, + "right_line": 660 + }, + { + "left_line": 607, + "right_line": 661 + }, + { + "left_line": 608, + "right_line": 662 + }, + { + "left_line": 609, + "right_line": 663 + }, + { + "left_line": 610, + "right_line": 664 + }, + { + "left_line": 611, + "right_line": 665 + }, + { + "left_line": 612, + "right_line": 666 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_helmfile_release_opts/metadata.json b/tests/testdata/json_schemastore_helmfile_release_opts/metadata.json new file mode 100644 index 0000000..17f6fae --- /dev/null +++ b/tests/testdata/json_schemastore_helmfile_release_opts/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "aec65866196c8b40587a2b3a22708bc0376c9a31", + "description": "Update helmfile release options", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_helmfile_release_opts/new.json b/tests/testdata/json_schemastore_helmfile_release_opts/new.json new file mode 100644 index 0000000..dc14ea1 --- /dev/null +++ b/tests/testdata/json_schemastore_helmfile_release_opts/new.json @@ -0,0 +1,666 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/helmfile.json", + "definitions": { + "repository": { + "type": "object", + "required": ["name"], + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "certFile": { + "type": "string" + }, + "keyFile": { + "type": "string" + }, + "caFile": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + }, + "oci": { + "type": "boolean" + }, + "passCredentials": { + "type": "boolean" + } + } + }, + "helmDefaults": { + "type": "object", + "description": "Default values to set for args along with dedicated keys that can be set by contributors, cli args take precedence over these.", + "properties": { + "kubeContext": { + "type": "string", + "description": "Dedicated default key for kube-context (--kube-context)." + }, + "cleanupOnFail": { + "type": "boolean", + "description": "When true, cleans up any new resources created during a failed release.", + "default": false + }, + "args": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + } + ] + } + }, + "verify": { + "type": "boolean", + "description": "Verify the chart before upgrading (only works with packaged charts not directories).", + "default": false + }, + "wait": { + "type": "boolean", + "description": "Wait for k8s resources via --wait.", + "default": false + }, + "waitForJobs": { + "type": "boolean", + "description": "If true and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout", + "default": false + }, + "timeout": { + "type": "number", + "description": "Time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness)", + "default": 300 + }, + "recreatePods": { + "type": "boolean", + "description": "Performs pods restart for the resource if applicable.", + "default": false + }, + "force": { + "type": "boolean", + "description": "Forces resource update through delete/recreate if needed.", + "default": false + }, + "historyMax": { + "type": "number", + "description": "Limit the maximum number of revisions saved per release. Use 0 for no limit.", + "default": 10 + }, + "createNamespace": { + "type": "boolean", + "description": "When using helm 3.2+, automatically create release namespaces if they do not exist.", + "default": true + }, + "devel": { + "type": "boolean", + "description": "If used with charts museum allows to pull unstable charts for deployment, for example: if 1.2.3 and 1.2.4-dev versions exist and set to true, 1.2.4-dev will be pulled (default false)", + "default": false + }, + "reuseValues": { + "type": "boolean", + "description": "If set to true, reuses the last release's values and merges them with ones provided in helmfile.", + "default": false + }, + "skipDeps": { + "description": "When set to `true`, skips running `helm dep up` and `helm dep build` on this release's chart.", + "type": "boolean", + "default": false + }, + "cascade": { + "type": "string", + "description": "Cascade `--cascade` to helmv3 delete, available values: background, foreground, or orphan.", + "default": "background", + "enum": ["background", "foreground", "orphan"] + }, + "postRenderer": { + "type": "string", + "description": "Propagate `--post-renderer` to helmv3 template and helm install.", + "examples": ["path/to/postRenderer"] + }, + "insecureSkipTLSVerify": { + "type": "boolean", + "description": "Is true if the TLS verification should be skipped when fetching remote chart.", + "default": false + } + } + }, + "release": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the release." + }, + "namespace": { + "type": "string", + "description": "The namespace to install the release into." + }, + "chart": { + "description": "The chart name to be installed. The chart name can be either: 1) a chart reference: https://helm.sh/docs/topics/charts/#chart-references, 2) a path to a directory containing a chart, 3) a path to a packaged chart, or 4) a URL.", + "type": "string" + }, + "atomic": { + "type": "boolean", + "description": "Restores previous state in case of failed release.", + "default": false + }, + "cleanupOnFail": { + "type": "boolean", + "description": "When true, cleans up any new resources created during a failed release.", + "default": false + }, + "kubeContext": { + "type": "string", + "description": "--kube-context to be passed to helm commands.\nDefaults tp an empty string, which means the standard kubeconfig, either ~/kubeconfig or the file pointed by $KUBECONFIG environment variable)", + "default": "" + }, + "condition": { + "type": "string", + "description": "Wen set, helmfile will only attempt to install the release if the condition is true" + }, + "createNamespace": { + "type": "boolean", + "description": "When using helm 3.2+, automatically create release namespaces if they do not exist.", + "default": true + }, + "devel": { + "type": "boolean", + "description": "If used with charts museum allows to pull unstable charts for deployment, for example: if 1.2.3 and 1.2.4-dev versions exist and set to true, 1.2.4-dev will be pulled.", + "default": false + }, + "disableValidation": { + "description": "Disables validation of the rendered templates before releasing.", + "type": "boolean", + "default": false + }, + "disableValidationOnInstall": { + "type": "boolean", + "description": "Passes --disable-validation to helm 3 diff plugin, this requires diff plugin >= 3.1.2", + "default": false + }, + "disableOpenAPIValidation": { + "type": "boolean", + "description": "Passes --disable-openapi-validation to helm 3 diff plugin, this requires diff plugin >= 3.1.2", + "default": false + }, + "historyMax": { + "type": "number", + "description": "Limit the maximum number of revisions saved per release. Use 0 for no limit.", + "default": 10 + }, + "skipDeps": { + "description": "When set to `true`, skips running `helm dep up` and `helm dep build` on this release's chart.", + "type": "boolean", + "default": false + }, + "cascade": { + "type": "string", + "description": "Cascade `--cascade` to helmv3 delete, available values: background, foreground, or orphan", + "default": "background", + "enum": ["background", "foreground", "orphan"] + }, + "postRenderer": { + "type": "string", + "description": "Propagate `--post-renderer` to helmv3 template and helm install.", + "examples": ["path/to/postRenderer"] + }, + "insecureSkipTLSVerify": { + "type": "boolean", + "description": "Is true if the TLS verification should be skipped when fetching remote chart", + "default": false + }, + "hooks": { + "description": "Hooks allow to trigger actions at certain points in helm's lifecycle.", + "type": "array", + "items": { + "$ref": "#/definitions/hook" + } + }, + "installed": { + "description": "Set `false` to uninstall this release on sync.", + "default": true, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "labels": { + "$ref": "#/definitions/map" + }, + "missingFileHandler": { + "$ref": "#/definitions/missingFileHandler", + "type": "string" + }, + "secrets": { + "type": "array", + "description": "Will attempt to decrypt it using helm-secrets plugin", + "items": { + "type": "string" + } + }, + "inherit": { + "type": "array", + "description": "Inherit from one or more release templates", + "items": { + "type": "object", + "properties": { + "template": { + "type": "string" + }, + "except": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["template"] + } + }, + "set": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "file": { + "type": "string" + } + } + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "number" + } + ] + } + } + } + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + ] + } + }, + "timeout": { + "type": "number", + "description": "Time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness)", + "default": 300 + }, + "recreatePods": { + "type": "boolean", + "description": "Performs pods restart for the resource if applicable", + "default": false + }, + "force": { + "type": "boolean", + "description": "Forces resource update through delete/recreate if needed.", + "default": false + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/map" + } + ] + } + }, + "verify": { + "type": "boolean" + }, + "version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + } + ] + }, + "wait": { + "type": "boolean", + "description": "Wait for k8s resources via --wait.", + "default": false + }, + "waitForJobs": { + "type": "boolean", + "description": "If set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout.", + "default": false + }, + "needs": { + "type": "array", + "description": "Define dependencies between releases. This release will only be installed after all releases in the needs list are installed.", + "items": { + "type": "string" + } + }, + "dependencies": { + "type": "array", + "description": "Add chart dependencies without forking. Can be local paths or OCI charts.", + "items": { + "type": "object", + "properties": { + "chart": { + "type": "string" + }, + "version": { + "type": "string" + }, + "alias": { + "type": "string" + } + }, + "required": ["chart"] + } + }, + "strategicMergePatches": { + "type": "array", + "description": "Apply strategic merge patches to Kubernetes resources using Kustomize.", + "items": { + "type": "string" + } + }, + "transformers": { + "type": "array", + "description": "Apply Kustomize transformers to add labels, annotations, etc.", + "items": { + "type": "string" + } + }, + "jsonPatches": { + "type": "array", + "description": "Apply JSON patches to Kubernetes resources.", + "items": { + "type": "object" + } + }, + "adopt": { + "type": "array", + "description": "Adopt existing resources into Helm management.", + "items": { + "type": "string" + } + } + }, + "required": ["name"], + "anyOf": [ + { + "required": ["chart"] + }, + { + "required": ["inherit"] + } + ] + }, + "helmfile": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": ["path"], + "properties": { + "path": { + "type": "string" + }, + "selectors": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + } + ] + } + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "key1": { + "type": "string" + } + } + } + ] + } + } + } + } + ] + }, + "missingFileHandler": { + "type": "string", + "enum": ["Error", "Warn", "Info", "Debug"] + }, + "environment": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/map" + } + ] + } + }, + "secrets": { + "type": "array", + "items": { + "type": "string" + } + }, + "missingFileHandler": { + "$ref": "#/definitions/missingFileHandler" + }, + "kubeContext": { + "type": "string" + } + } + }, + "hook": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "prepare", + "preapply", + "presync", + "preuninstall", + "postuninstall", + "postsync", + "cleanup" + ] + } + }, + "showlogs": { + "type": "boolean" + }, + "command": { + "type": "string" + }, + "args": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string" + } + ] + } + } + } + }, + "map": { + "type": "object", + "patternProperties": { + "[a-zA-Z\\d_-]+": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "array" + }, + { + "type": "null" + }, + { + "type": "integer" + } + ] + } + } + } + }, + "properties": { + "apiVersions": { + "type": "array", + "description": "Configure a fixed list of API versions to pass to 'helm template' via the `--api-versions` flag.", + "items": { + "type": "string", + "examples": ["example/v1"] + } + }, + "bases": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + } + ] + } + }, + "environments": { + "type": "object", + "description": "The list of environments managed by helmfile.", + "default": { + "default": {} + }, + "examples": [ + { + "default": { + "values": [] + } + } + ], + "patternProperties": { + "[a-zA-Z\\d_-]+": { + "$ref": "#/definitions/environment" + } + } + }, + "commonLabels": { + "$ref": "#/definitions/map", + "type": "object", + "description": "these labels will be applied to all releases in a Helmfile. Useful in templating if you have a helmfile per environment or customer and don't want to copy the same label to each release" + }, + "helmBinary": { + "type": "string", + "description": "Path to alternative helm binary (--helm-binary)", + "examples": ["path/to/helm3"] + }, + "helmDefaults": { + "$ref": "#/definitions/helmDefaults" + }, + "helmfiles": { + "type": "array", + "items": { + "$ref": "#/definitions/helmfile" + } + }, + "hooks": { + "type": "array", + "items": { + "$ref": "#/definitions/hook" + } + }, + "missingFileHandler": { + "$ref": "#/definitions/missingFileHandler" + }, + "releases": { + "type": "array", + "description": "Helmfile runs various helm commands to converge the current state in the live cluster to the desired state defined here.", + "items": { + "$ref": "#/definitions/release" + } + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/definitions/repository" + } + } + }, + "title": "Helmfile config schema" +} diff --git a/tests/testdata/json_schemastore_helmfile_release_opts/old.json b/tests/testdata/json_schemastore_helmfile_release_opts/old.json new file mode 100644 index 0000000..79f8c13 --- /dev/null +++ b/tests/testdata/json_schemastore_helmfile_release_opts/old.json @@ -0,0 +1,612 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/helmfile.json", + "definitions": { + "repository": { + "type": "object", + "required": ["name"], + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "certFile": { + "type": "string" + }, + "keyFile": { + "type": "string" + }, + "caFile": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + }, + "oci": { + "type": "boolean" + }, + "passCredentials": { + "type": "boolean" + } + } + }, + "helmDefaults": { + "type": "object", + "description": "Default values to set for args along with dedicated keys that can be set by contributors, cli args take precedence over these.", + "properties": { + "kubeContext": { + "type": "string", + "description": "Dedicated default key for kube-context (--kube-context)." + }, + "cleanupOnFail": { + "type": "boolean", + "description": "When true, cleans up any new resources created during a failed release.", + "default": false + }, + "args": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + } + ] + } + }, + "verify": { + "type": "boolean", + "description": "Verify the chart before upgrading (only works with packaged charts not directories).", + "default": false + }, + "wait": { + "type": "boolean", + "description": "Wait for k8s resources via --wait.", + "default": false + }, + "waitForJobs": { + "type": "boolean", + "description": "If true and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout", + "default": false + }, + "timeout": { + "type": "number", + "description": "Time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness)", + "default": 300 + }, + "recreatePods": { + "type": "boolean", + "description": "Performs pods restart for the resource if applicable.", + "default": false + }, + "force": { + "type": "boolean", + "description": "Forces resource update through delete/recreate if needed.", + "default": false + }, + "historyMax": { + "type": "number", + "description": "Limit the maximum number of revisions saved per release. Use 0 for no limit.", + "default": 10 + }, + "createNamespace": { + "type": "boolean", + "description": "When using helm 3.2+, automatically create release namespaces if they do not exist.", + "default": true + }, + "devel": { + "type": "boolean", + "description": "If used with charts museum allows to pull unstable charts for deployment, for example: if 1.2.3 and 1.2.4-dev versions exist and set to true, 1.2.4-dev will be pulled (default false)", + "default": false + }, + "reuseValues": { + "type": "boolean", + "description": "If set to true, reuses the last release's values and merges them with ones provided in helmfile.", + "default": false + }, + "skipDeps": { + "description": "When set to `true`, skips running `helm dep up` and `helm dep build` on this release's chart.", + "type": "boolean", + "default": false + }, + "cascade": { + "type": "string", + "description": "Cascade `--cascade` to helmv3 delete, available values: background, foreground, or orphan.", + "default": "background", + "enum": ["background", "foreground", "orphan"] + }, + "postRenderer": { + "type": "string", + "description": "Propagate `--post-renderer` to helmv3 template and helm install.", + "examples": ["path/to/postRenderer"] + }, + "insecureSkipTLSVerify": { + "type": "boolean", + "description": "Is true if the TLS verification should be skipped when fetching remote chart.", + "default": false + } + } + }, + "release": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the release." + }, + "namespace": { + "type": "string", + "description": "The namespace to install the release into." + }, + "chart": { + "description": "The chart name to be installed. The chart name can be either: 1) a chart reference: https://helm.sh/docs/topics/charts/#chart-references, 2) a path to a directory containing a chart, 3) a path to a packaged chart, or 4) a URL.", + "type": "string" + }, + "atomic": { + "type": "boolean", + "description": "Restores previous state in case of failed release.", + "default": false + }, + "cleanupOnFail": { + "type": "boolean", + "description": "When true, cleans up any new resources created during a failed release.", + "default": false + }, + "kubeContext": { + "type": "string", + "description": "--kube-context to be passed to helm commands.\nDefaults tp an empty string, which means the standard kubeconfig, either ~/kubeconfig or the file pointed by $KUBECONFIG environment variable)", + "default": "" + }, + "condition": { + "type": "string", + "description": "Wen set, helmfile will only attempt to install the release if the condition is true" + }, + "createNamespace": { + "type": "boolean", + "description": "When using helm 3.2+, automatically create release namespaces if they do not exist.", + "default": true + }, + "devel": { + "type": "boolean", + "description": "If used with charts museum allows to pull unstable charts for deployment, for example: if 1.2.3 and 1.2.4-dev versions exist and set to true, 1.2.4-dev will be pulled.", + "default": false + }, + "disableValidation": { + "description": "Disables validation of the rendered templates before releasing.", + "type": "boolean", + "default": false + }, + "disableValidationOnInstall": { + "type": "boolean", + "description": "Passes --disable-validation to helm 3 diff plugin, this requires diff plugin >= 3.1.2", + "default": false + }, + "disableOpenAPIValidation": { + "type": "boolean", + "description": "Passes --disable-openapi-validation to helm 3 diff plugin, this requires diff plugin >= 3.1.2", + "default": false + }, + "historyMax": { + "type": "number", + "description": "Limit the maximum number of revisions saved per release. Use 0 for no limit.", + "default": 10 + }, + "skipDeps": { + "description": "When set to `true`, skips running `helm dep up` and `helm dep build` on this release's chart.", + "type": "boolean", + "default": false + }, + "cascade": { + "type": "string", + "description": "Cascade `--cascade` to helmv3 delete, available values: background, foreground, or orphan", + "default": "background", + "enum": ["background", "foreground", "orphan"] + }, + "postRenderer": { + "type": "string", + "description": "Propagate `--post-renderer` to helmv3 template and helm install.", + "examples": ["path/to/postRenderer"] + }, + "insecureSkipTLSVerify": { + "type": "boolean", + "description": "Is true if the TLS verification should be skipped when fetching remote chart", + "default": false + }, + "hooks": { + "description": "Hooks allow to trigger actions at certain points in helm's lifecycle.", + "type": "array", + "items": { + "$ref": "#/definitions/hook" + } + }, + "installed": { + "description": "Set `false` to uninstall this release on sync.", + "default": true, + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "labels": { + "$ref": "#/definitions/map" + }, + "missingFileHandler": { + "$ref": "#/definitions/missingFileHandler", + "type": "string" + }, + "secrets": { + "type": "array", + "description": "Will attempt to decrypt it using helm-secrets plugin", + "items": { + "type": "string" + } + }, + "inherit": { + "type": "array", + "description": "Inherit from one or more release templates", + "items": { + "type": "object", + "properties": { + "template": { + "type": "string" + }, + "except": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["template"] + } + }, + "set": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "file": { + "type": "string" + } + } + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "number" + } + ] + } + } + } + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + ] + } + }, + "timeout": { + "type": "number", + "description": "Time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness)", + "default": 300 + }, + "recreatePods": { + "type": "boolean", + "description": "Performs pods restart for the resource if applicable", + "default": false + }, + "force": { + "type": "boolean", + "description": "Forces resource update through delete/recreate if needed.", + "default": false + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/map" + } + ] + } + }, + "verify": { + "type": "boolean" + }, + "version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + } + ] + }, + "wait": { + "type": "boolean", + "description": "Wait for k8s resources via --wait.", + "default": false + }, + "waitForJobs": { + "type": "boolean", + "description": "If set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout.", + "default": false + } + }, + "required": ["name"], + "oneOf": [ + { + "required": ["chart"] + }, + { + "required": ["inherit"] + } + ] + }, + "helmfile": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": ["path"], + "properties": { + "path": { + "type": "string" + }, + "selectors": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + } + ] + } + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "key1": { + "type": "string" + } + } + } + ] + } + } + } + } + ] + }, + "missingFileHandler": { + "type": "string", + "enum": ["Error", "Warn", "Info", "Debug"] + }, + "environment": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/map" + } + ] + } + }, + "secrets": { + "type": "array", + "items": { + "type": "string" + } + }, + "missingFileHandler": { + "$ref": "#/definitions/missingFileHandler" + }, + "kubeContext": { + "type": "string" + } + } + }, + "hook": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "prepare", + "preapply", + "presync", + "preuninstall", + "postuninstall", + "postsync", + "cleanup" + ] + } + }, + "showlogs": { + "type": "boolean" + }, + "command": { + "type": "string" + }, + "args": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string" + } + ] + } + } + } + }, + "map": { + "type": "object", + "patternProperties": { + "[a-zA-Z\\d_-]+": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "array" + }, + { + "type": "null" + }, + { + "type": "integer" + } + ] + } + } + } + }, + "properties": { + "apiVersions": { + "type": "array", + "description": "Configure a fixed list of API versions to pass to 'helm template' via the `--api-versions` flag.", + "items": { + "type": "string", + "examples": ["example/v1"] + } + }, + "bases": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + } + ] + } + }, + "environments": { + "type": "object", + "description": "The list of environments managed by helmfile.", + "default": { + "default": {} + }, + "examples": [ + { + "default": { + "values": [] + } + } + ], + "patternProperties": { + "[a-zA-Z\\d_-]+": { + "$ref": "#/definitions/environment" + } + } + }, + "commonLabels": { + "$ref": "#/definitions/map", + "type": "object", + "description": "these labels will be applied to all releases in a Helmfile. Useful in templating if you have a helmfile per environment or customer and don't want to copy the same label to each release" + }, + "helmBinary": { + "type": "string", + "description": "Path to alternative helm binary (--helm-binary)", + "examples": ["path/to/helm3"] + }, + "helmDefaults": { + "$ref": "#/definitions/helmDefaults" + }, + "helmfiles": { + "type": "array", + "items": { + "$ref": "#/definitions/helmfile" + } + }, + "hooks": { + "type": "array", + "items": { + "$ref": "#/definitions/hook" + } + }, + "missingFileHandler": { + "$ref": "#/definitions/missingFileHandler" + }, + "releases": { + "type": "array", + "description": "Helmfile runs various helm commands to converge the current state in the live cluster to the desired state defined here.", + "items": { + "$ref": "#/definitions/release" + } + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/definitions/repository" + } + } + }, + "title": "Helmfile config schema" +} diff --git a/tests/testdata/json_schemastore_hugo_theme_config/expected.json b/tests/testdata/json_schemastore_hugo_theme_config/expected.json new file mode 100644 index 0000000..b6958f8 --- /dev/null +++ b/tests/testdata/json_schemastore_hugo_theme_config/expected.json @@ -0,0 +1,19692 @@ +{ + "version": "v1", + "actions": [ + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 1, + 1 + ], + "type": "string", + "label": "\"The sitemap options\\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml\"", + "start_byte": 144413, + "end_byte": 144502 + }, + "old_value": "\"The sitemap options\\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml\"", + "new_value": "\"The sitemap options\\nhttps://gohugo.io/templates/sitemap/#configuration\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 1, + 1 + ], + "type": "string", + "label": "\"The sitemap options\\nhttps://gohugo.io/templates/sitemap/#configuration\"", + "start_byte": 144445, + "end_byte": 144518 + } + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 3, + 1, + 1 + ], + "type": "pair", + "start_byte": 144597, + "end_byte": 144613 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 3, + 1 + ], + "type": "object", + "start_byte": 144561, + "end_byte": 144680 + }, + "position": 1, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 145157, + "end_byte": 145314 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 144702, + "end_byte": 145835 + }, + "position": 2, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4 + ], + "type": "pair", + "start_byte": 145500, + "end_byte": 145827 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 144702, + "end_byte": 145835 + }, + "position": 4 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 3, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"\"", + "start_byte": 144585, + "end_byte": 144587 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 3, + 1, + 0 + ], + "type": "pair", + "start_byte": 144571, + "end_byte": 144587 + }, + "position": 1 + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 3, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"monthly\"", + "start_byte": 144569, + "end_byte": 144578 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 3, + 1, + 2, + 1 + ], + "type": "number", + "label": "0.5", + "start_byte": 144635, + "end_byte": 144638 + }, + "old_value": "0.5", + "new_value": "-1", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 3, + 1, + 3, + 1 + ], + "type": "number", + "label": "-1", + "start_byte": 144670, + "end_byte": 144672 + } + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 0 + ], + "type": "string", + "label": "\"priority\"", + "start_byte": 145500, + "end_byte": 145510 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4 + ], + "type": "pair", + "start_byte": 145500, + "end_byte": 145827 + }, + "position": 0 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1, + 0 + ], + "type": "pair", + "start_byte": 144813, + "end_byte": 144883 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 144801, + "end_byte": 145147 + }, + "position": 0, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1, + 2 + ], + "type": "pair", + "start_byte": 144923, + "end_byte": 144936 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 144801, + "end_byte": 145147 + }, + "position": 3, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1, + 3 + ], + "type": "pair", + "start_byte": 144948, + "end_byte": 145137 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 144801, + "end_byte": 145147 + }, + "position": 4, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 0 + ], + "type": "pair", + "start_byte": 145524, + "end_byte": 145592 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 145512, + "end_byte": 145827 + }, + "position": 0, + "subtree": true + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1, + 1 + ], + "type": "pair", + "start_byte": 145258, + "end_byte": 145274 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 145512, + "end_byte": 145827 + }, + "position": 1, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1 + ], + "type": "object", + "start_byte": 145149, + "end_byte": 145358 + }, + "old_position": 1, + "subtree": true, + "dest_start_byte": 145604, + "dest_end_byte": 145620 + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 0 + ], + "type": "string", + "label": "\"priority\"", + "start_byte": 145137, + "end_byte": 145147 + } + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 3 + ], + "type": "pair", + "start_byte": 145804, + "end_byte": 145817 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 145512, + "end_byte": 145827 + }, + "position": 3, + "subtree": true + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 2, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"\\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml\"", + "start_byte": 144983, + "end_byte": 145053 + }, + "old_value": "\"\\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml\"", + "new_value": "\"\\nhttps://gohugo.io/configuration/sitemap/#filename\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"\\nhttps://gohugo.io/configuration/sitemap/#filename\"", + "start_byte": 145363, + "end_byte": 145416 + } + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2, + 0 + ], + "type": "string", + "label": "\"oneOf\"", + "start_byte": 145632, + "end_byte": 145639 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 145632, + "end_byte": 145792 + }, + "position": 0 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2, + 1 + ], + "type": "array", + "start_byte": 145641, + "end_byte": 145792 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 145632, + "end_byte": 145792 + }, + "position": 1 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2, + 1, + 0 + ], + "type": "object", + "start_byte": 145655, + "end_byte": 145696 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2, + 1 + ], + "type": "array", + "start_byte": 145641, + "end_byte": 145792 + }, + "position": 0, + "subtree": true + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1, + 3 + ], + "type": "pair", + "start_byte": 145312, + "end_byte": 145324 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2, + 1, + 1 + ], + "type": "object", + "start_byte": 145710, + "end_byte": 145780 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1 + ], + "type": "object", + "start_byte": 145149, + "end_byte": 145358 + }, + "old_position": 3, + "subtree": true, + "dest_start_byte": 145726, + "dest_end_byte": 145738, + "group_id": "group-1" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1, + 4 + ], + "type": "pair", + "start_byte": 145336, + "end_byte": 145348 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 4, + 1, + 2, + 1, + 1 + ], + "type": "object", + "start_byte": 145710, + "end_byte": 145780 + }, + "position": 1, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1 + ], + "type": "object", + "start_byte": 145149, + "end_byte": 145358 + }, + "old_position": 4, + "subtree": true, + "dest_start_byte": 145754, + "dest_end_byte": 145766, + "group_id": "group-1" + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 2, + 1, + 1, + 1, + 23, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1 + ], + "type": "pair", + "start_byte": 12449, + "end_byte": 12461 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 3, + 1, + 2, + 1, + 1, + 1, + 23, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 12397, + "end_byte": 12479 + }, + "position": 1, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1, + 0 + ], + "type": "pair", + "start_byte": 144779, + "end_byte": 144864 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 1, + 1, + 2 + ], + "type": "pair", + "start_byte": 144904, + "end_byte": 144924 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1, + 0 + ], + "type": "pair", + "start_byte": 145161, + "end_byte": 145246 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 86, + 1, + 4, + 1, + 3, + 1, + 2 + ], + "type": "pair", + "start_byte": 145286, + "end_byte": 145300 + }, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": -1, + "right_line": 334 + }, + { + "left_line": 334, + "right_line": 335 + }, + { + "left_line": 335, + "right_line": 336 + }, + { + "left_line": 336, + "right_line": 337 + }, + { + "left_line": 337, + "right_line": 338 + }, + { + "left_line": 338, + "right_line": 339 + }, + { + "left_line": 339, + "right_line": 340 + }, + { + "left_line": 340, + "right_line": 341 + }, + { + "left_line": 341, + "right_line": 342 + }, + { + "left_line": 342, + "right_line": 343 + }, + { + "left_line": 343, + "right_line": 344 + }, + { + "left_line": 344, + "right_line": 345 + }, + { + "left_line": 345, + "right_line": 346 + }, + { + "left_line": 346, + "right_line": 347 + }, + { + "left_line": 347, + "right_line": 348 + }, + { + "left_line": 348, + "right_line": 349 + }, + { + "left_line": 349, + "right_line": 350 + }, + { + "left_line": 350, + "right_line": 351 + }, + { + "left_line": 351, + "right_line": 352 + }, + { + "left_line": 352, + "right_line": 353 + }, + { + "left_line": 353, + "right_line": 354 + }, + { + "left_line": 354, + "right_line": 355 + }, + { + "left_line": 355, + "right_line": 356 + }, + { + "left_line": 356, + "right_line": 357 + }, + { + "left_line": 357, + "right_line": 358 + }, + { + "left_line": 358, + "right_line": 359 + }, + { + "left_line": 359, + "right_line": 360 + }, + { + "left_line": 360, + "right_line": 361 + }, + { + "left_line": 361, + "right_line": 362 + }, + { + "left_line": 362, + "right_line": 363 + }, + { + "left_line": 363, + "right_line": 364 + }, + { + "left_line": 364, + "right_line": 365 + }, + { + "left_line": 365, + "right_line": 366 + }, + { + "left_line": 366, + "right_line": 367 + }, + { + "left_line": 367, + "right_line": 368 + }, + { + "left_line": 368, + "right_line": 369 + }, + { + "left_line": 369, + "right_line": 370 + }, + { + "left_line": 370, + "right_line": 371 + }, + { + "left_line": 371, + "right_line": 372 + }, + { + "left_line": 372, + "right_line": 373 + }, + { + "left_line": 373, + "right_line": 374 + }, + { + "left_line": 374, + "right_line": 375 + }, + { + "left_line": 375, + "right_line": 376 + }, + { + "left_line": 376, + "right_line": 377 + }, + { + "left_line": 377, + "right_line": 378 + }, + { + "left_line": 378, + "right_line": 379 + }, + { + "left_line": 379, + "right_line": 380 + }, + { + "left_line": 380, + "right_line": 381 + }, + { + "left_line": 381, + "right_line": 382 + }, + { + "left_line": 382, + "right_line": 383 + }, + { + "left_line": 383, + "right_line": 384 + }, + { + "left_line": 384, + "right_line": 385 + }, + { + "left_line": 385, + "right_line": 386 + }, + { + "left_line": 386, + "right_line": 387 + }, + { + "left_line": 387, + "right_line": 388 + }, + { + "left_line": 388, + "right_line": 389 + }, + { + "left_line": 389, + "right_line": 390 + }, + { + "left_line": 390, + "right_line": 391 + }, + { + "left_line": 391, + "right_line": 392 + }, + { + "left_line": 392, + "right_line": 393 + }, + { + "left_line": 393, + "right_line": 394 + }, + { + "left_line": 394, + "right_line": 395 + }, + { + "left_line": 395, + "right_line": 396 + }, + { + "left_line": 396, + "right_line": 397 + }, + { + "left_line": 397, + "right_line": 398 + }, + { + "left_line": 398, + "right_line": 399 + }, + { + "left_line": 399, + "right_line": 400 + }, + { + "left_line": 400, + "right_line": 401 + }, + { + "left_line": 401, + "right_line": 402 + }, + { + "left_line": 402, + "right_line": 403 + }, + { + "left_line": 403, + "right_line": 404 + }, + { + "left_line": 404, + "right_line": 405 + }, + { + "left_line": 405, + "right_line": 406 + }, + { + "left_line": 406, + "right_line": 407 + }, + { + "left_line": 407, + "right_line": 408 + }, + { + "left_line": 408, + "right_line": 409 + }, + { + "left_line": 409, + "right_line": 410 + }, + { + "left_line": 410, + "right_line": 411 + }, + { + "left_line": 411, + "right_line": 412 + }, + { + "left_line": 412, + "right_line": 413 + }, + { + "left_line": 413, + "right_line": 414 + }, + { + "left_line": 414, + "right_line": 415 + }, + { + "left_line": 415, + "right_line": 416 + }, + { + "left_line": 416, + "right_line": 417 + }, + { + "left_line": 417, + "right_line": 418 + }, + { + "left_line": 418, + "right_line": 419 + }, + { + "left_line": 419, + "right_line": 420 + }, + { + "left_line": 420, + "right_line": 421 + }, + { + "left_line": 421, + "right_line": 422 + }, + { + "left_line": 422, + "right_line": 423 + }, + { + "left_line": 423, + "right_line": 424 + }, + { + "left_line": 424, + "right_line": 425 + }, + { + "left_line": 425, + "right_line": 426 + }, + { + "left_line": 426, + "right_line": 427 + }, + { + "left_line": 427, + "right_line": 428 + }, + { + "left_line": 428, + "right_line": 429 + }, + { + "left_line": 429, + "right_line": 430 + }, + { + "left_line": 430, + "right_line": 431 + }, + { + "left_line": 431, + "right_line": 432 + }, + { + "left_line": 432, + "right_line": 433 + }, + { + "left_line": 433, + "right_line": 434 + }, + { + "left_line": 434, + "right_line": 435 + }, + { + "left_line": 435, + "right_line": 436 + }, + { + "left_line": 436, + "right_line": 437 + }, + { + "left_line": 437, + "right_line": 438 + }, + { + "left_line": 438, + "right_line": 439 + }, + { + "left_line": 439, + "right_line": 440 + }, + { + "left_line": 440, + "right_line": 441 + }, + { + "left_line": 441, + "right_line": 442 + }, + { + "left_line": 442, + "right_line": 443 + }, + { + "left_line": 443, + "right_line": 444 + }, + { + "left_line": 444, + "right_line": 445 + }, + { + "left_line": 445, + "right_line": 446 + }, + { + "left_line": 446, + "right_line": 447 + }, + { + "left_line": 447, + "right_line": 448 + }, + { + "left_line": 448, + "right_line": 449 + }, + { + "left_line": 449, + "right_line": 450 + }, + { + "left_line": 450, + "right_line": 451 + }, + { + "left_line": 451, + "right_line": 452 + }, + { + "left_line": 452, + "right_line": 453 + }, + { + "left_line": 453, + "right_line": 454 + }, + { + "left_line": 454, + "right_line": 455 + }, + { + "left_line": 455, + "right_line": 456 + }, + { + "left_line": 456, + "right_line": 457 + }, + { + "left_line": 457, + "right_line": 458 + }, + { + "left_line": 458, + "right_line": 459 + }, + { + "left_line": 459, + "right_line": 460 + }, + { + "left_line": 460, + "right_line": 461 + }, + { + "left_line": 461, + "right_line": 462 + }, + { + "left_line": 462, + "right_line": 463 + }, + { + "left_line": 463, + "right_line": 464 + }, + { + "left_line": 464, + "right_line": 465 + }, + { + "left_line": 465, + "right_line": 466 + }, + { + "left_line": 466, + "right_line": 467 + }, + { + "left_line": 467, + "right_line": 468 + }, + { + "left_line": 468, + "right_line": 469 + }, + { + "left_line": 469, + "right_line": 470 + }, + { + "left_line": 470, + "right_line": 471 + }, + { + "left_line": 471, + "right_line": 472 + }, + { + "left_line": 472, + "right_line": 473 + }, + { + "left_line": 473, + "right_line": 474 + }, + { + "left_line": 474, + "right_line": 475 + }, + { + "left_line": 475, + "right_line": 476 + }, + { + "left_line": 476, + "right_line": 477 + }, + { + "left_line": 477, + "right_line": 478 + }, + { + "left_line": 478, + "right_line": 479 + }, + { + "left_line": 479, + "right_line": 480 + }, + { + "left_line": 480, + "right_line": 481 + }, + { + "left_line": 481, + "right_line": 482 + }, + { + "left_line": 482, + "right_line": 483 + }, + { + "left_line": 483, + "right_line": 484 + }, + { + "left_line": 484, + "right_line": 485 + }, + { + "left_line": 485, + "right_line": 486 + }, + { + "left_line": 486, + "right_line": 487 + }, + { + "left_line": 487, + "right_line": 488 + }, + { + "left_line": 488, + "right_line": 489 + }, + { + "left_line": 489, + "right_line": 490 + }, + { + "left_line": 490, + "right_line": 491 + }, + { + "left_line": 491, + "right_line": 492 + }, + { + "left_line": 492, + "right_line": 493 + }, + { + "left_line": 493, + "right_line": 494 + }, + { + "left_line": 494, + "right_line": 495 + }, + { + "left_line": 495, + "right_line": 496 + }, + { + "left_line": 496, + "right_line": 497 + }, + { + "left_line": 497, + "right_line": 498 + }, + { + "left_line": 498, + "right_line": 499 + }, + { + "left_line": 499, + "right_line": 500 + }, + { + "left_line": 500, + "right_line": 501 + }, + { + "left_line": 501, + "right_line": 502 + }, + { + "left_line": 502, + "right_line": 503 + }, + { + "left_line": 503, + "right_line": 504 + }, + { + "left_line": 504, + "right_line": 505 + }, + { + "left_line": 505, + "right_line": 506 + }, + { + "left_line": 506, + "right_line": 507 + }, + { + "left_line": 507, + "right_line": 508 + }, + { + "left_line": 508, + "right_line": 509 + }, + { + "left_line": 509, + "right_line": 510 + }, + { + "left_line": 510, + "right_line": 511 + }, + { + "left_line": 511, + "right_line": 512 + }, + { + "left_line": 512, + "right_line": 513 + }, + { + "left_line": 513, + "right_line": 514 + }, + { + "left_line": 514, + "right_line": 515 + }, + { + "left_line": 515, + "right_line": 516 + }, + { + "left_line": 516, + "right_line": 517 + }, + { + "left_line": 517, + "right_line": 518 + }, + { + "left_line": 518, + "right_line": 519 + }, + { + "left_line": 519, + "right_line": 520 + }, + { + "left_line": 520, + "right_line": 521 + }, + { + "left_line": 521, + "right_line": 522 + }, + { + "left_line": 522, + "right_line": 523 + }, + { + "left_line": 523, + "right_line": 524 + }, + { + "left_line": 524, + "right_line": 525 + }, + { + "left_line": 525, + "right_line": 526 + }, + { + "left_line": 526, + "right_line": 527 + }, + { + "left_line": 527, + "right_line": 528 + }, + { + "left_line": 528, + "right_line": 529 + }, + { + "left_line": 529, + "right_line": 530 + }, + { + "left_line": 530, + "right_line": 531 + }, + { + "left_line": 531, + "right_line": 532 + }, + { + "left_line": 532, + "right_line": 533 + }, + { + "left_line": 533, + "right_line": 534 + }, + { + "left_line": 534, + "right_line": 535 + }, + { + "left_line": 535, + "right_line": 536 + }, + { + "left_line": 536, + "right_line": 537 + }, + { + "left_line": 537, + "right_line": 538 + }, + { + "left_line": 538, + "right_line": 539 + }, + { + "left_line": 539, + "right_line": 540 + }, + { + "left_line": 540, + "right_line": 541 + }, + { + "left_line": 541, + "right_line": 542 + }, + { + "left_line": 542, + "right_line": 543 + }, + { + "left_line": 543, + "right_line": 544 + }, + { + "left_line": 544, + "right_line": 545 + }, + { + "left_line": 545, + "right_line": 546 + }, + { + "left_line": 546, + "right_line": 547 + }, + { + "left_line": 547, + "right_line": 548 + }, + { + "left_line": 548, + "right_line": 549 + }, + { + "left_line": 549, + "right_line": 550 + }, + { + "left_line": 550, + "right_line": 551 + }, + { + "left_line": 551, + "right_line": 552 + }, + { + "left_line": 552, + "right_line": 553 + }, + { + "left_line": 553, + "right_line": 554 + }, + { + "left_line": 554, + "right_line": 555 + }, + { + "left_line": 555, + "right_line": 556 + }, + { + "left_line": 556, + "right_line": 557 + }, + { + "left_line": 557, + "right_line": 558 + }, + { + "left_line": 558, + "right_line": 559 + }, + { + "left_line": 559, + "right_line": 560 + }, + { + "left_line": 560, + "right_line": 561 + }, + { + "left_line": 561, + "right_line": 562 + }, + { + "left_line": 562, + "right_line": 563 + }, + { + "left_line": 563, + "right_line": 564 + }, + { + "left_line": 564, + "right_line": 565 + }, + { + "left_line": 565, + "right_line": 566 + }, + { + "left_line": 566, + "right_line": 567 + }, + { + "left_line": 567, + "right_line": 568 + }, + { + "left_line": 568, + "right_line": 569 + }, + { + "left_line": 569, + "right_line": 570 + }, + { + "left_line": 570, + "right_line": 571 + }, + { + "left_line": 571, + "right_line": 572 + }, + { + "left_line": 572, + "right_line": 573 + }, + { + "left_line": 573, + "right_line": 574 + }, + { + "left_line": 574, + "right_line": 575 + }, + { + "left_line": 575, + "right_line": 576 + }, + { + "left_line": 576, + "right_line": 577 + }, + { + "left_line": 577, + "right_line": 578 + }, + { + "left_line": 578, + "right_line": 579 + }, + { + "left_line": 579, + "right_line": 580 + }, + { + "left_line": 580, + "right_line": 581 + }, + { + "left_line": 581, + "right_line": 582 + }, + { + "left_line": 582, + "right_line": 583 + }, + { + "left_line": 583, + "right_line": 584 + }, + { + "left_line": 584, + "right_line": 585 + }, + { + "left_line": 585, + "right_line": 586 + }, + { + "left_line": 586, + "right_line": 587 + }, + { + "left_line": 587, + "right_line": 588 + }, + { + "left_line": 588, + "right_line": 589 + }, + { + "left_line": 589, + "right_line": 590 + }, + { + "left_line": 590, + "right_line": 591 + }, + { + "left_line": 591, + "right_line": 592 + }, + { + "left_line": 592, + "right_line": 593 + }, + { + "left_line": 593, + "right_line": 594 + }, + { + "left_line": 594, + "right_line": 595 + }, + { + "left_line": 595, + "right_line": 596 + }, + { + "left_line": 596, + "right_line": 597 + }, + { + "left_line": 597, + "right_line": 598 + }, + { + "left_line": 598, + "right_line": 599 + }, + { + "left_line": 599, + "right_line": 600 + }, + { + "left_line": 600, + "right_line": 601 + }, + { + "left_line": 601, + "right_line": 602 + }, + { + "left_line": 602, + "right_line": 603 + }, + { + "left_line": 603, + "right_line": 604 + }, + { + "left_line": 604, + "right_line": 605 + }, + { + "left_line": 605, + "right_line": 606 + }, + { + "left_line": 606, + "right_line": 607 + }, + { + "left_line": 607, + "right_line": 608 + }, + { + "left_line": 608, + "right_line": 609 + }, + { + "left_line": 609, + "right_line": 610 + }, + { + "left_line": 610, + "right_line": 611 + }, + { + "left_line": 611, + "right_line": 612 + }, + { + "left_line": 612, + "right_line": 613 + }, + { + "left_line": 613, + "right_line": 614 + }, + { + "left_line": 614, + "right_line": 615 + }, + { + "left_line": 615, + "right_line": 616 + }, + { + "left_line": 616, + "right_line": 617 + }, + { + "left_line": 617, + "right_line": 618 + }, + { + "left_line": 618, + "right_line": 619 + }, + { + "left_line": 619, + "right_line": 620 + }, + { + "left_line": 620, + "right_line": 621 + }, + { + "left_line": 621, + "right_line": 622 + }, + { + "left_line": 622, + "right_line": 623 + }, + { + "left_line": 623, + "right_line": 624 + }, + { + "left_line": 624, + "right_line": 625 + }, + { + "left_line": 625, + "right_line": 626 + }, + { + "left_line": 626, + "right_line": 627 + }, + { + "left_line": 627, + "right_line": 628 + }, + { + "left_line": 628, + "right_line": 629 + }, + { + "left_line": 629, + "right_line": 630 + }, + { + "left_line": 630, + "right_line": 631 + }, + { + "left_line": 631, + "right_line": 632 + }, + { + "left_line": 632, + "right_line": 633 + }, + { + "left_line": 633, + "right_line": 634 + }, + { + "left_line": 634, + "right_line": 635 + }, + { + "left_line": 635, + "right_line": 636 + }, + { + "left_line": 636, + "right_line": 637 + }, + { + "left_line": 637, + "right_line": 638 + }, + { + "left_line": 638, + "right_line": 639 + }, + { + "left_line": 639, + "right_line": 640 + }, + { + "left_line": 640, + "right_line": 641 + }, + { + "left_line": 641, + "right_line": 642 + }, + { + "left_line": 642, + "right_line": 643 + }, + { + "left_line": 643, + "right_line": 644 + }, + { + "left_line": 644, + "right_line": 645 + }, + { + "left_line": 645, + "right_line": 646 + }, + { + "left_line": 646, + "right_line": 647 + }, + { + "left_line": 647, + "right_line": 648 + }, + { + "left_line": 648, + "right_line": 649 + }, + { + "left_line": 649, + "right_line": 650 + }, + { + "left_line": 650, + "right_line": 651 + }, + { + "left_line": 651, + "right_line": 652 + }, + { + "left_line": 652, + "right_line": 653 + }, + { + "left_line": 653, + "right_line": 654 + }, + { + "left_line": 654, + "right_line": 655 + }, + { + "left_line": 655, + "right_line": 656 + }, + { + "left_line": 656, + "right_line": 657 + }, + { + "left_line": 657, + "right_line": 658 + }, + { + "left_line": 658, + "right_line": 659 + }, + { + "left_line": 659, + "right_line": 660 + }, + { + "left_line": 660, + "right_line": 661 + }, + { + "left_line": 661, + "right_line": 662 + }, + { + "left_line": 662, + "right_line": 663 + }, + { + "left_line": 663, + "right_line": 664 + }, + { + "left_line": 664, + "right_line": 665 + }, + { + "left_line": 665, + "right_line": 666 + }, + { + "left_line": 666, + "right_line": 667 + }, + { + "left_line": 667, + "right_line": 668 + }, + { + "left_line": 668, + "right_line": 669 + }, + { + "left_line": 669, + "right_line": 670 + }, + { + "left_line": 670, + "right_line": 671 + }, + { + "left_line": 671, + "right_line": 672 + }, + { + "left_line": 672, + "right_line": 673 + }, + { + "left_line": 673, + "right_line": 674 + }, + { + "left_line": 674, + "right_line": 675 + }, + { + "left_line": 675, + "right_line": 676 + }, + { + "left_line": 676, + "right_line": 677 + }, + { + "left_line": 677, + "right_line": 678 + }, + { + "left_line": 678, + "right_line": 679 + }, + { + "left_line": 679, + "right_line": 680 + }, + { + "left_line": 680, + "right_line": 681 + }, + { + "left_line": 681, + "right_line": 682 + }, + { + "left_line": 682, + "right_line": 683 + }, + { + "left_line": 683, + "right_line": 684 + }, + { + "left_line": 684, + "right_line": 685 + }, + { + "left_line": 685, + "right_line": 686 + }, + { + "left_line": 686, + "right_line": 687 + }, + { + "left_line": 687, + "right_line": 688 + }, + { + "left_line": 688, + "right_line": 689 + }, + { + "left_line": 689, + "right_line": 690 + }, + { + "left_line": 690, + "right_line": 691 + }, + { + "left_line": 691, + "right_line": 692 + }, + { + "left_line": 692, + "right_line": 693 + }, + { + "left_line": 693, + "right_line": 694 + }, + { + "left_line": 694, + "right_line": 695 + }, + { + "left_line": 695, + "right_line": 696 + }, + { + "left_line": 696, + "right_line": 697 + }, + { + "left_line": 697, + "right_line": 698 + }, + { + "left_line": 698, + "right_line": 699 + }, + { + "left_line": 699, + "right_line": 700 + }, + { + "left_line": 700, + "right_line": 701 + }, + { + "left_line": 701, + "right_line": 702 + }, + { + "left_line": 702, + "right_line": 703 + }, + { + "left_line": 703, + "right_line": 704 + }, + { + "left_line": 704, + "right_line": 705 + }, + { + "left_line": 705, + "right_line": 706 + }, + { + "left_line": 706, + "right_line": 707 + }, + { + "left_line": 707, + "right_line": 708 + }, + { + "left_line": 708, + "right_line": 709 + }, + { + "left_line": 709, + "right_line": 710 + }, + { + "left_line": 710, + "right_line": 711 + }, + { + "left_line": 711, + "right_line": 712 + }, + { + "left_line": 712, + "right_line": 713 + }, + { + "left_line": 713, + "right_line": 714 + }, + { + "left_line": 714, + "right_line": 715 + }, + { + "left_line": 715, + "right_line": 716 + }, + { + "left_line": 716, + "right_line": 717 + }, + { + "left_line": 717, + "right_line": 718 + }, + { + "left_line": 718, + "right_line": 719 + }, + { + "left_line": 719, + "right_line": 720 + }, + { + "left_line": 720, + "right_line": 721 + }, + { + "left_line": 721, + "right_line": 722 + }, + { + "left_line": 722, + "right_line": 723 + }, + { + "left_line": 723, + "right_line": 724 + }, + { + "left_line": 724, + "right_line": 725 + }, + { + "left_line": 725, + "right_line": 726 + }, + { + "left_line": 726, + "right_line": 727 + }, + { + "left_line": 727, + "right_line": 728 + }, + { + "left_line": 728, + "right_line": 729 + }, + { + "left_line": 729, + "right_line": 730 + }, + { + "left_line": 730, + "right_line": 731 + }, + { + "left_line": 731, + "right_line": 732 + }, + { + "left_line": 732, + "right_line": 733 + }, + { + "left_line": 733, + "right_line": 734 + }, + { + "left_line": 734, + "right_line": 735 + }, + { + "left_line": 735, + "right_line": 736 + }, + { + "left_line": 736, + "right_line": 737 + }, + { + "left_line": 737, + "right_line": 738 + }, + { + "left_line": 738, + "right_line": 739 + }, + { + "left_line": 739, + "right_line": 740 + }, + { + "left_line": 740, + "right_line": 741 + }, + { + "left_line": 741, + "right_line": 742 + }, + { + "left_line": 742, + "right_line": 743 + }, + { + "left_line": 743, + "right_line": 744 + }, + { + "left_line": 744, + "right_line": 745 + }, + { + "left_line": 745, + "right_line": 746 + }, + { + "left_line": 746, + "right_line": 747 + }, + { + "left_line": 747, + "right_line": 748 + }, + { + "left_line": 748, + "right_line": 749 + }, + { + "left_line": 749, + "right_line": 750 + }, + { + "left_line": 750, + "right_line": 751 + }, + { + "left_line": 751, + "right_line": 752 + }, + { + "left_line": 752, + "right_line": 753 + }, + { + "left_line": 753, + "right_line": 754 + }, + { + "left_line": 754, + "right_line": 755 + }, + { + "left_line": 755, + "right_line": 756 + }, + { + "left_line": 756, + "right_line": 757 + }, + { + "left_line": 757, + "right_line": 758 + }, + { + "left_line": 758, + "right_line": 759 + }, + { + "left_line": 759, + "right_line": 760 + }, + { + "left_line": 760, + "right_line": 761 + }, + { + "left_line": 761, + "right_line": 762 + }, + { + "left_line": 762, + "right_line": 763 + }, + { + "left_line": 763, + "right_line": 764 + }, + { + "left_line": 764, + "right_line": 765 + }, + { + "left_line": 765, + "right_line": 766 + }, + { + "left_line": 766, + "right_line": 767 + }, + { + "left_line": 767, + "right_line": 768 + }, + { + "left_line": 768, + "right_line": 769 + }, + { + "left_line": 769, + "right_line": 770 + }, + { + "left_line": 770, + "right_line": 771 + }, + { + "left_line": 771, + "right_line": 772 + }, + { + "left_line": 772, + "right_line": 773 + }, + { + "left_line": 773, + "right_line": 774 + }, + { + "left_line": 774, + "right_line": 775 + }, + { + "left_line": 775, + "right_line": 776 + }, + { + "left_line": 776, + "right_line": 777 + }, + { + "left_line": 777, + "right_line": 778 + }, + { + "left_line": 778, + "right_line": 779 + }, + { + "left_line": 779, + "right_line": 780 + }, + { + "left_line": 780, + "right_line": 781 + }, + { + "left_line": 781, + "right_line": 782 + }, + { + "left_line": 782, + "right_line": 783 + }, + { + "left_line": 783, + "right_line": 784 + }, + { + "left_line": 784, + "right_line": 785 + }, + { + "left_line": 785, + "right_line": 786 + }, + { + "left_line": 786, + "right_line": 787 + }, + { + "left_line": 787, + "right_line": 788 + }, + { + "left_line": 788, + "right_line": 789 + }, + { + "left_line": 789, + "right_line": 790 + }, + { + "left_line": 790, + "right_line": 791 + }, + { + "left_line": 791, + "right_line": 792 + }, + { + "left_line": 792, + "right_line": 793 + }, + { + "left_line": 793, + "right_line": 794 + }, + { + "left_line": 794, + "right_line": 795 + }, + { + "left_line": 795, + "right_line": 796 + }, + { + "left_line": 796, + "right_line": 797 + }, + { + "left_line": 797, + "right_line": 798 + }, + { + "left_line": 798, + "right_line": 799 + }, + { + "left_line": 799, + "right_line": 800 + }, + { + "left_line": 800, + "right_line": 801 + }, + { + "left_line": 801, + "right_line": 802 + }, + { + "left_line": 802, + "right_line": 803 + }, + { + "left_line": 803, + "right_line": 804 + }, + { + "left_line": 804, + "right_line": 805 + }, + { + "left_line": 805, + "right_line": 806 + }, + { + "left_line": 806, + "right_line": 807 + }, + { + "left_line": 807, + "right_line": 808 + }, + { + "left_line": 808, + "right_line": 809 + }, + { + "left_line": 809, + "right_line": 810 + }, + { + "left_line": 810, + "right_line": 811 + }, + { + "left_line": 811, + "right_line": 812 + }, + { + "left_line": 812, + "right_line": 813 + }, + { + "left_line": 813, + "right_line": 814 + }, + { + "left_line": 814, + "right_line": 815 + }, + { + "left_line": 815, + "right_line": 816 + }, + { + "left_line": 816, + "right_line": 817 + }, + { + "left_line": 817, + "right_line": 818 + }, + { + "left_line": 818, + "right_line": 819 + }, + { + "left_line": 819, + "right_line": 820 + }, + { + "left_line": 820, + "right_line": 821 + }, + { + "left_line": 821, + "right_line": 822 + }, + { + "left_line": 822, + "right_line": 823 + }, + { + "left_line": 823, + "right_line": 824 + }, + { + "left_line": 824, + "right_line": 825 + }, + { + "left_line": 825, + "right_line": 826 + }, + { + "left_line": 826, + "right_line": 827 + }, + { + "left_line": 827, + "right_line": 828 + }, + { + "left_line": 828, + "right_line": 829 + }, + { + "left_line": 829, + "right_line": 830 + }, + { + "left_line": 830, + "right_line": 831 + }, + { + "left_line": 831, + "right_line": 832 + }, + { + "left_line": 832, + "right_line": 833 + }, + { + "left_line": 833, + "right_line": 834 + }, + { + "left_line": 834, + "right_line": 835 + }, + { + "left_line": 835, + "right_line": 836 + }, + { + "left_line": 836, + "right_line": 837 + }, + { + "left_line": 837, + "right_line": 838 + }, + { + "left_line": 838, + "right_line": 839 + }, + { + "left_line": 839, + "right_line": 840 + }, + { + "left_line": 840, + "right_line": 841 + }, + { + "left_line": 841, + "right_line": 842 + }, + { + "left_line": 842, + "right_line": 843 + }, + { + "left_line": 843, + "right_line": 844 + }, + { + "left_line": 844, + "right_line": 845 + }, + { + "left_line": 845, + "right_line": 846 + }, + { + "left_line": 846, + "right_line": 847 + }, + { + "left_line": 847, + "right_line": 848 + }, + { + "left_line": 848, + "right_line": 849 + }, + { + "left_line": 849, + "right_line": 850 + }, + { + "left_line": 850, + "right_line": 851 + }, + { + "left_line": 851, + "right_line": 852 + }, + { + "left_line": 852, + "right_line": 853 + }, + { + "left_line": 853, + "right_line": 854 + }, + { + "left_line": 854, + "right_line": 855 + }, + { + "left_line": 855, + "right_line": 856 + }, + { + "left_line": 856, + "right_line": 857 + }, + { + "left_line": 857, + "right_line": 858 + }, + { + "left_line": 858, + "right_line": 859 + }, + { + "left_line": 859, + "right_line": 860 + }, + { + "left_line": 860, + "right_line": 861 + }, + { + "left_line": 861, + "right_line": 862 + }, + { + "left_line": 862, + "right_line": 863 + }, + { + "left_line": 863, + "right_line": 864 + }, + { + "left_line": 864, + "right_line": 865 + }, + { + "left_line": 865, + "right_line": 866 + }, + { + "left_line": 866, + "right_line": 867 + }, + { + "left_line": 867, + "right_line": 868 + }, + { + "left_line": 868, + "right_line": 869 + }, + { + "left_line": 869, + "right_line": 870 + }, + { + "left_line": 870, + "right_line": 871 + }, + { + "left_line": 871, + "right_line": 872 + }, + { + "left_line": 872, + "right_line": 873 + }, + { + "left_line": 873, + "right_line": 874 + }, + { + "left_line": 874, + "right_line": 875 + }, + { + "left_line": 875, + "right_line": 876 + }, + { + "left_line": 876, + "right_line": 877 + }, + { + "left_line": 877, + "right_line": 878 + }, + { + "left_line": 878, + "right_line": 879 + }, + { + "left_line": 879, + "right_line": 880 + }, + { + "left_line": 880, + "right_line": 881 + }, + { + "left_line": 881, + "right_line": 882 + }, + { + "left_line": 882, + "right_line": 883 + }, + { + "left_line": 883, + "right_line": 884 + }, + { + "left_line": 884, + "right_line": 885 + }, + { + "left_line": 885, + "right_line": 886 + }, + { + "left_line": 886, + "right_line": 887 + }, + { + "left_line": 887, + "right_line": 888 + }, + { + "left_line": 888, + "right_line": 889 + }, + { + "left_line": 889, + "right_line": 890 + }, + { + "left_line": 890, + "right_line": 891 + }, + { + "left_line": 891, + "right_line": 892 + }, + { + "left_line": 892, + "right_line": 893 + }, + { + "left_line": 893, + "right_line": 894 + }, + { + "left_line": 894, + "right_line": 895 + }, + { + "left_line": 895, + "right_line": 896 + }, + { + "left_line": 896, + "right_line": 897 + }, + { + "left_line": 897, + "right_line": 898 + }, + { + "left_line": 898, + "right_line": 899 + }, + { + "left_line": 899, + "right_line": 900 + }, + { + "left_line": 900, + "right_line": 901 + }, + { + "left_line": 901, + "right_line": 902 + }, + { + "left_line": 902, + "right_line": 903 + }, + { + "left_line": 903, + "right_line": 904 + }, + { + "left_line": 904, + "right_line": 905 + }, + { + "left_line": 905, + "right_line": 906 + }, + { + "left_line": 906, + "right_line": 907 + }, + { + "left_line": 907, + "right_line": 908 + }, + { + "left_line": 908, + "right_line": 909 + }, + { + "left_line": 909, + "right_line": 910 + }, + { + "left_line": 910, + "right_line": 911 + }, + { + "left_line": 911, + "right_line": 912 + }, + { + "left_line": 912, + "right_line": 913 + }, + { + "left_line": 913, + "right_line": 914 + }, + { + "left_line": 914, + "right_line": 915 + }, + { + "left_line": 915, + "right_line": 916 + }, + { + "left_line": 916, + "right_line": 917 + }, + { + "left_line": 917, + "right_line": 918 + }, + { + "left_line": 918, + "right_line": 919 + }, + { + "left_line": 919, + "right_line": 920 + }, + { + "left_line": 920, + "right_line": 921 + }, + { + "left_line": 921, + "right_line": 922 + }, + { + "left_line": 922, + "right_line": 923 + }, + { + "left_line": 923, + "right_line": 924 + }, + { + "left_line": 924, + "right_line": 925 + }, + { + "left_line": 925, + "right_line": 926 + }, + { + "left_line": 926, + "right_line": 927 + }, + { + "left_line": 927, + "right_line": 928 + }, + { + "left_line": 928, + "right_line": 929 + }, + { + "left_line": 929, + "right_line": 930 + }, + { + "left_line": 930, + "right_line": 931 + }, + { + "left_line": 931, + "right_line": 932 + }, + { + "left_line": 932, + "right_line": 933 + }, + { + "left_line": 933, + "right_line": 934 + }, + { + "left_line": 934, + "right_line": 935 + }, + { + "left_line": 935, + "right_line": 936 + }, + { + "left_line": 936, + "right_line": 937 + }, + { + "left_line": 937, + "right_line": 938 + }, + { + "left_line": 938, + "right_line": 939 + }, + { + "left_line": 939, + "right_line": 940 + }, + { + "left_line": 940, + "right_line": 941 + }, + { + "left_line": 941, + "right_line": 942 + }, + { + "left_line": 942, + "right_line": 943 + }, + { + "left_line": 943, + "right_line": 944 + }, + { + "left_line": 944, + "right_line": 945 + }, + { + "left_line": 945, + "right_line": 946 + }, + { + "left_line": 946, + "right_line": 947 + }, + { + "left_line": 947, + "right_line": 948 + }, + { + "left_line": 948, + "right_line": 949 + }, + { + "left_line": 949, + "right_line": 950 + }, + { + "left_line": 950, + "right_line": 951 + }, + { + "left_line": 951, + "right_line": 952 + }, + { + "left_line": 952, + "right_line": 953 + }, + { + "left_line": 953, + "right_line": 954 + }, + { + "left_line": 954, + "right_line": 955 + }, + { + "left_line": 955, + "right_line": 956 + }, + { + "left_line": 956, + "right_line": 957 + }, + { + "left_line": 957, + "right_line": 958 + }, + { + "left_line": 958, + "right_line": 959 + }, + { + "left_line": 959, + "right_line": 960 + }, + { + "left_line": 960, + "right_line": 961 + }, + { + "left_line": 961, + "right_line": 962 + }, + { + "left_line": 962, + "right_line": 963 + }, + { + "left_line": 963, + "right_line": 964 + }, + { + "left_line": 964, + "right_line": 965 + }, + { + "left_line": 965, + "right_line": 966 + }, + { + "left_line": 966, + "right_line": 967 + }, + { + "left_line": 967, + "right_line": 968 + }, + { + "left_line": 968, + "right_line": 969 + }, + { + "left_line": 969, + "right_line": 970 + }, + { + "left_line": 970, + "right_line": 971 + }, + { + "left_line": 971, + "right_line": 972 + }, + { + "left_line": 972, + "right_line": 973 + }, + { + "left_line": 973, + "right_line": 974 + }, + { + "left_line": 974, + "right_line": 975 + }, + { + "left_line": 975, + "right_line": 976 + }, + { + "left_line": 976, + "right_line": 977 + }, + { + "left_line": 977, + "right_line": 978 + }, + { + "left_line": 978, + "right_line": 979 + }, + { + "left_line": 979, + "right_line": 980 + }, + { + "left_line": 980, + "right_line": 981 + }, + { + "left_line": 981, + "right_line": 982 + }, + { + "left_line": 982, + "right_line": 983 + }, + { + "left_line": 983, + "right_line": 984 + }, + { + "left_line": 984, + "right_line": 985 + }, + { + "left_line": 985, + "right_line": 986 + }, + { + "left_line": 986, + "right_line": 987 + }, + { + "left_line": 987, + "right_line": 988 + }, + { + "left_line": 988, + "right_line": 989 + }, + { + "left_line": 989, + "right_line": 990 + }, + { + "left_line": 990, + "right_line": 991 + }, + { + "left_line": 991, + "right_line": 992 + }, + { + "left_line": 992, + "right_line": 993 + }, + { + "left_line": 993, + "right_line": 994 + }, + { + "left_line": 994, + "right_line": 995 + }, + { + "left_line": 995, + "right_line": 996 + }, + { + "left_line": 996, + "right_line": 997 + }, + { + "left_line": 997, + "right_line": 998 + }, + { + "left_line": 998, + "right_line": 999 + }, + { + "left_line": 999, + "right_line": 1000 + }, + { + "left_line": 1000, + "right_line": 1001 + }, + { + "left_line": 1001, + "right_line": 1002 + }, + { + "left_line": 1002, + "right_line": 1003 + }, + { + "left_line": 1003, + "right_line": 1004 + }, + { + "left_line": 1004, + "right_line": 1005 + }, + { + "left_line": 1005, + "right_line": 1006 + }, + { + "left_line": 1006, + "right_line": 1007 + }, + { + "left_line": 1007, + "right_line": 1008 + }, + { + "left_line": 1008, + "right_line": 1009 + }, + { + "left_line": 1009, + "right_line": 1010 + }, + { + "left_line": 1010, + "right_line": 1011 + }, + { + "left_line": 1011, + "right_line": 1012 + }, + { + "left_line": 1012, + "right_line": 1013 + }, + { + "left_line": 1013, + "right_line": 1014 + }, + { + "left_line": 1014, + "right_line": 1015 + }, + { + "left_line": 1015, + "right_line": 1016 + }, + { + "left_line": 1016, + "right_line": 1017 + }, + { + "left_line": 1017, + "right_line": 1018 + }, + { + "left_line": 1018, + "right_line": 1019 + }, + { + "left_line": 1019, + "right_line": 1020 + }, + { + "left_line": 1020, + "right_line": 1021 + }, + { + "left_line": 1021, + "right_line": 1022 + }, + { + "left_line": 1022, + "right_line": 1023 + }, + { + "left_line": 1023, + "right_line": 1024 + }, + { + "left_line": 1024, + "right_line": 1025 + }, + { + "left_line": 1025, + "right_line": 1026 + }, + { + "left_line": 1026, + "right_line": 1027 + }, + { + "left_line": 1027, + "right_line": 1028 + }, + { + "left_line": 1028, + "right_line": 1029 + }, + { + "left_line": 1029, + "right_line": 1030 + }, + { + "left_line": 1030, + "right_line": 1031 + }, + { + "left_line": 1031, + "right_line": 1032 + }, + { + "left_line": 1032, + "right_line": 1033 + }, + { + "left_line": 1033, + "right_line": 1034 + }, + { + "left_line": 1034, + "right_line": 1035 + }, + { + "left_line": 1035, + "right_line": 1036 + }, + { + "left_line": 1036, + "right_line": 1037 + }, + { + "left_line": 1037, + "right_line": 1038 + }, + { + "left_line": 1038, + "right_line": 1039 + }, + { + "left_line": 1039, + "right_line": 1040 + }, + { + "left_line": 1040, + "right_line": 1041 + }, + { + "left_line": 1041, + "right_line": 1042 + }, + { + "left_line": 1042, + "right_line": 1043 + }, + { + "left_line": 1043, + "right_line": 1044 + }, + { + "left_line": 1044, + "right_line": 1045 + }, + { + "left_line": 1045, + "right_line": 1046 + }, + { + "left_line": 1046, + "right_line": 1047 + }, + { + "left_line": 1047, + "right_line": 1048 + }, + { + "left_line": 1048, + "right_line": 1049 + }, + { + "left_line": 1049, + "right_line": 1050 + }, + { + "left_line": 1050, + "right_line": 1051 + }, + { + "left_line": 1051, + "right_line": 1052 + }, + { + "left_line": 1052, + "right_line": 1053 + }, + { + "left_line": 1053, + "right_line": 1054 + }, + { + "left_line": 1054, + "right_line": 1055 + }, + { + "left_line": 1055, + "right_line": 1056 + }, + { + "left_line": 1056, + "right_line": 1057 + }, + { + "left_line": 1057, + "right_line": 1058 + }, + { + "left_line": 1058, + "right_line": 1059 + }, + { + "left_line": 1059, + "right_line": 1060 + }, + { + "left_line": 1060, + "right_line": 1061 + }, + { + "left_line": 1061, + "right_line": 1062 + }, + { + "left_line": 1062, + "right_line": 1063 + }, + { + "left_line": 1063, + "right_line": 1064 + }, + { + "left_line": 1064, + "right_line": 1065 + }, + { + "left_line": 1065, + "right_line": 1066 + }, + { + "left_line": 1066, + "right_line": 1067 + }, + { + "left_line": 1067, + "right_line": 1068 + }, + { + "left_line": 1068, + "right_line": 1069 + }, + { + "left_line": 1069, + "right_line": 1070 + }, + { + "left_line": 1070, + "right_line": 1071 + }, + { + "left_line": 1071, + "right_line": 1072 + }, + { + "left_line": 1072, + "right_line": 1073 + }, + { + "left_line": 1073, + "right_line": 1074 + }, + { + "left_line": 1074, + "right_line": 1075 + }, + { + "left_line": 1075, + "right_line": 1076 + }, + { + "left_line": 1076, + "right_line": 1077 + }, + { + "left_line": 1077, + "right_line": 1078 + }, + { + "left_line": 1078, + "right_line": 1079 + }, + { + "left_line": 1079, + "right_line": 1080 + }, + { + "left_line": 1080, + "right_line": 1081 + }, + { + "left_line": 1081, + "right_line": 1082 + }, + { + "left_line": 1082, + "right_line": 1083 + }, + { + "left_line": 1083, + "right_line": 1084 + }, + { + "left_line": 1084, + "right_line": 1085 + }, + { + "left_line": 1085, + "right_line": 1086 + }, + { + "left_line": 1086, + "right_line": 1087 + }, + { + "left_line": 1087, + "right_line": 1088 + }, + { + "left_line": 1088, + "right_line": 1089 + }, + { + "left_line": 1089, + "right_line": 1090 + }, + { + "left_line": 1090, + "right_line": 1091 + }, + { + "left_line": 1091, + "right_line": 1092 + }, + { + "left_line": 1092, + "right_line": 1093 + }, + { + "left_line": 1093, + "right_line": 1094 + }, + { + "left_line": 1094, + "right_line": 1095 + }, + { + "left_line": 1095, + "right_line": 1096 + }, + { + "left_line": 1096, + "right_line": 1097 + }, + { + "left_line": 1097, + "right_line": 1098 + }, + { + "left_line": 1098, + "right_line": 1099 + }, + { + "left_line": 1099, + "right_line": 1100 + }, + { + "left_line": 1100, + "right_line": 1101 + }, + { + "left_line": 1101, + "right_line": 1102 + }, + { + "left_line": 1102, + "right_line": 1103 + }, + { + "left_line": 1103, + "right_line": 1104 + }, + { + "left_line": 1104, + "right_line": 1105 + }, + { + "left_line": 1105, + "right_line": 1106 + }, + { + "left_line": 1106, + "right_line": 1107 + }, + { + "left_line": 1107, + "right_line": 1108 + }, + { + "left_line": 1108, + "right_line": 1109 + }, + { + "left_line": 1109, + "right_line": 1110 + }, + { + "left_line": 1110, + "right_line": 1111 + }, + { + "left_line": 1111, + "right_line": 1112 + }, + { + "left_line": 1112, + "right_line": 1113 + }, + { + "left_line": 1113, + "right_line": 1114 + }, + { + "left_line": 1114, + "right_line": 1115 + }, + { + "left_line": 1115, + "right_line": 1116 + }, + { + "left_line": 1116, + "right_line": 1117 + }, + { + "left_line": 1117, + "right_line": 1118 + }, + { + "left_line": 1118, + "right_line": 1119 + }, + { + "left_line": 1119, + "right_line": 1120 + }, + { + "left_line": 1120, + "right_line": 1121 + }, + { + "left_line": 1121, + "right_line": 1122 + }, + { + "left_line": 1122, + "right_line": 1123 + }, + { + "left_line": 1123, + "right_line": 1124 + }, + { + "left_line": 1124, + "right_line": 1125 + }, + { + "left_line": 1125, + "right_line": 1126 + }, + { + "left_line": 1126, + "right_line": 1127 + }, + { + "left_line": 1127, + "right_line": 1128 + }, + { + "left_line": 1128, + "right_line": 1129 + }, + { + "left_line": 1129, + "right_line": 1130 + }, + { + "left_line": 1130, + "right_line": 1131 + }, + { + "left_line": 1131, + "right_line": 1132 + }, + { + "left_line": 1132, + "right_line": 1133 + }, + { + "left_line": 1133, + "right_line": 1134 + }, + { + "left_line": 1134, + "right_line": 1135 + }, + { + "left_line": 1135, + "right_line": 1136 + }, + { + "left_line": 1136, + "right_line": 1137 + }, + { + "left_line": 1137, + "right_line": 1138 + }, + { + "left_line": 1138, + "right_line": 1139 + }, + { + "left_line": 1139, + "right_line": 1140 + }, + { + "left_line": 1140, + "right_line": 1141 + }, + { + "left_line": 1141, + "right_line": 1142 + }, + { + "left_line": 1142, + "right_line": 1143 + }, + { + "left_line": 1143, + "right_line": 1144 + }, + { + "left_line": 1144, + "right_line": 1145 + }, + { + "left_line": 1145, + "right_line": 1146 + }, + { + "left_line": 1146, + "right_line": 1147 + }, + { + "left_line": 1147, + "right_line": 1148 + }, + { + "left_line": 1148, + "right_line": 1149 + }, + { + "left_line": 1149, + "right_line": 1150 + }, + { + "left_line": 1150, + "right_line": 1151 + }, + { + "left_line": 1151, + "right_line": 1152 + }, + { + "left_line": 1152, + "right_line": 1153 + }, + { + "left_line": 1153, + "right_line": 1154 + }, + { + "left_line": 1154, + "right_line": 1155 + }, + { + "left_line": 1155, + "right_line": 1156 + }, + { + "left_line": 1156, + "right_line": 1157 + }, + { + "left_line": 1157, + "right_line": 1158 + }, + { + "left_line": 1158, + "right_line": 1159 + }, + { + "left_line": 1159, + "right_line": 1160 + }, + { + "left_line": 1160, + "right_line": 1161 + }, + { + "left_line": 1161, + "right_line": 1162 + }, + { + "left_line": 1162, + "right_line": 1163 + }, + { + "left_line": 1163, + "right_line": 1164 + }, + { + "left_line": 1164, + "right_line": 1165 + }, + { + "left_line": 1165, + "right_line": 1166 + }, + { + "left_line": 1166, + "right_line": 1167 + }, + { + "left_line": 1167, + "right_line": 1168 + }, + { + "left_line": 1168, + "right_line": 1169 + }, + { + "left_line": 1169, + "right_line": 1170 + }, + { + "left_line": 1170, + "right_line": 1171 + }, + { + "left_line": 1171, + "right_line": 1172 + }, + { + "left_line": 1172, + "right_line": 1173 + }, + { + "left_line": 1173, + "right_line": 1174 + }, + { + "left_line": 1174, + "right_line": 1175 + }, + { + "left_line": 1175, + "right_line": 1176 + }, + { + "left_line": 1176, + "right_line": 1177 + }, + { + "left_line": 1177, + "right_line": 1178 + }, + { + "left_line": 1178, + "right_line": 1179 + }, + { + "left_line": 1179, + "right_line": 1180 + }, + { + "left_line": 1180, + "right_line": 1181 + }, + { + "left_line": 1181, + "right_line": 1182 + }, + { + "left_line": 1182, + "right_line": 1183 + }, + { + "left_line": 1183, + "right_line": 1184 + }, + { + "left_line": 1184, + "right_line": 1185 + }, + { + "left_line": 1185, + "right_line": 1186 + }, + { + "left_line": 1186, + "right_line": 1187 + }, + { + "left_line": 1187, + "right_line": 1188 + }, + { + "left_line": 1188, + "right_line": 1189 + }, + { + "left_line": 1189, + "right_line": 1190 + }, + { + "left_line": 1190, + "right_line": 1191 + }, + { + "left_line": 1191, + "right_line": 1192 + }, + { + "left_line": 1192, + "right_line": 1193 + }, + { + "left_line": 1193, + "right_line": 1194 + }, + { + "left_line": 1194, + "right_line": 1195 + }, + { + "left_line": 1195, + "right_line": 1196 + }, + { + "left_line": 1196, + "right_line": 1197 + }, + { + "left_line": 1197, + "right_line": 1198 + }, + { + "left_line": 1198, + "right_line": 1199 + }, + { + "left_line": 1199, + "right_line": 1200 + }, + { + "left_line": 1200, + "right_line": 1201 + }, + { + "left_line": 1201, + "right_line": 1202 + }, + { + "left_line": 1202, + "right_line": 1203 + }, + { + "left_line": 1203, + "right_line": 1204 + }, + { + "left_line": 1204, + "right_line": 1205 + }, + { + "left_line": 1205, + "right_line": 1206 + }, + { + "left_line": 1206, + "right_line": 1207 + }, + { + "left_line": 1207, + "right_line": 1208 + }, + { + "left_line": 1208, + "right_line": 1209 + }, + { + "left_line": 1209, + "right_line": 1210 + }, + { + "left_line": 1210, + "right_line": 1211 + }, + { + "left_line": 1211, + "right_line": 1212 + }, + { + "left_line": 1212, + "right_line": 1213 + }, + { + "left_line": 1213, + "right_line": 1214 + }, + { + "left_line": 1214, + "right_line": 1215 + }, + { + "left_line": 1215, + "right_line": 1216 + }, + { + "left_line": 1216, + "right_line": 1217 + }, + { + "left_line": 1217, + "right_line": 1218 + }, + { + "left_line": 1218, + "right_line": 1219 + }, + { + "left_line": 1219, + "right_line": 1220 + }, + { + "left_line": 1220, + "right_line": 1221 + }, + { + "left_line": 1221, + "right_line": 1222 + }, + { + "left_line": 1222, + "right_line": 1223 + }, + { + "left_line": 1223, + "right_line": 1224 + }, + { + "left_line": 1224, + "right_line": 1225 + }, + { + "left_line": 1225, + "right_line": 1226 + }, + { + "left_line": 1226, + "right_line": 1227 + }, + { + "left_line": 1227, + "right_line": 1228 + }, + { + "left_line": 1228, + "right_line": 1229 + }, + { + "left_line": 1229, + "right_line": 1230 + }, + { + "left_line": 1230, + "right_line": 1231 + }, + { + "left_line": 1231, + "right_line": 1232 + }, + { + "left_line": 1232, + "right_line": 1233 + }, + { + "left_line": 1233, + "right_line": 1234 + }, + { + "left_line": 1234, + "right_line": 1235 + }, + { + "left_line": 1235, + "right_line": 1236 + }, + { + "left_line": 1236, + "right_line": 1237 + }, + { + "left_line": 1237, + "right_line": 1238 + }, + { + "left_line": 1238, + "right_line": 1239 + }, + { + "left_line": 1239, + "right_line": 1240 + }, + { + "left_line": 1240, + "right_line": 1241 + }, + { + "left_line": 1241, + "right_line": 1242 + }, + { + "left_line": 1242, + "right_line": 1243 + }, + { + "left_line": 1243, + "right_line": 1244 + }, + { + "left_line": 1244, + "right_line": 1245 + }, + { + "left_line": 1245, + "right_line": 1246 + }, + { + "left_line": 1246, + "right_line": 1247 + }, + { + "left_line": 1247, + "right_line": 1248 + }, + { + "left_line": 1248, + "right_line": 1249 + }, + { + "left_line": 1249, + "right_line": 1250 + }, + { + "left_line": 1250, + "right_line": 1251 + }, + { + "left_line": 1251, + "right_line": 1252 + }, + { + "left_line": 1252, + "right_line": 1253 + }, + { + "left_line": 1253, + "right_line": 1254 + }, + { + "left_line": 1254, + "right_line": 1255 + }, + { + "left_line": 1255, + "right_line": 1256 + }, + { + "left_line": 1256, + "right_line": 1257 + }, + { + "left_line": 1257, + "right_line": 1258 + }, + { + "left_line": 1258, + "right_line": 1259 + }, + { + "left_line": 1259, + "right_line": 1260 + }, + { + "left_line": 1260, + "right_line": 1261 + }, + { + "left_line": 1261, + "right_line": 1262 + }, + { + "left_line": 1262, + "right_line": 1263 + }, + { + "left_line": 1263, + "right_line": 1264 + }, + { + "left_line": 1264, + "right_line": 1265 + }, + { + "left_line": 1265, + "right_line": 1266 + }, + { + "left_line": 1266, + "right_line": 1267 + }, + { + "left_line": 1267, + "right_line": 1268 + }, + { + "left_line": 1268, + "right_line": 1269 + }, + { + "left_line": 1269, + "right_line": 1270 + }, + { + "left_line": 1270, + "right_line": 1271 + }, + { + "left_line": 1271, + "right_line": 1272 + }, + { + "left_line": 1272, + "right_line": 1273 + }, + { + "left_line": 1273, + "right_line": 1274 + }, + { + "left_line": 1274, + "right_line": 1275 + }, + { + "left_line": 1275, + "right_line": 1276 + }, + { + "left_line": 1276, + "right_line": 1277 + }, + { + "left_line": 1277, + "right_line": 1278 + }, + { + "left_line": 1278, + "right_line": 1279 + }, + { + "left_line": 1279, + "right_line": 1280 + }, + { + "left_line": 1280, + "right_line": 1281 + }, + { + "left_line": 1281, + "right_line": 1282 + }, + { + "left_line": 1282, + "right_line": 1283 + }, + { + "left_line": 1283, + "right_line": 1284 + }, + { + "left_line": 1284, + "right_line": 1285 + }, + { + "left_line": 1285, + "right_line": 1286 + }, + { + "left_line": 1286, + "right_line": 1287 + }, + { + "left_line": 1287, + "right_line": 1288 + }, + { + "left_line": 1288, + "right_line": 1289 + }, + { + "left_line": 1289, + "right_line": 1290 + }, + { + "left_line": 1290, + "right_line": 1291 + }, + { + "left_line": 1291, + "right_line": 1292 + }, + { + "left_line": 1292, + "right_line": 1293 + }, + { + "left_line": 1293, + "right_line": 1294 + }, + { + "left_line": 1294, + "right_line": 1295 + }, + { + "left_line": 1295, + "right_line": 1296 + }, + { + "left_line": 1296, + "right_line": 1297 + }, + { + "left_line": 1297, + "right_line": 1298 + }, + { + "left_line": 1298, + "right_line": 1299 + }, + { + "left_line": 1299, + "right_line": 1300 + }, + { + "left_line": 1300, + "right_line": 1301 + }, + { + "left_line": 1301, + "right_line": 1302 + }, + { + "left_line": 1302, + "right_line": 1303 + }, + { + "left_line": 1303, + "right_line": 1304 + }, + { + "left_line": 1304, + "right_line": 1305 + }, + { + "left_line": 1305, + "right_line": 1306 + }, + { + "left_line": 1306, + "right_line": 1307 + }, + { + "left_line": 1307, + "right_line": 1308 + }, + { + "left_line": 1308, + "right_line": 1309 + }, + { + "left_line": 1309, + "right_line": 1310 + }, + { + "left_line": 1310, + "right_line": 1311 + }, + { + "left_line": 1311, + "right_line": 1312 + }, + { + "left_line": 1312, + "right_line": 1313 + }, + { + "left_line": 1313, + "right_line": 1314 + }, + { + "left_line": 1314, + "right_line": 1315 + }, + { + "left_line": 1315, + "right_line": 1316 + }, + { + "left_line": 1316, + "right_line": 1317 + }, + { + "left_line": 1317, + "right_line": 1318 + }, + { + "left_line": 1318, + "right_line": 1319 + }, + { + "left_line": 1319, + "right_line": 1320 + }, + { + "left_line": 1320, + "right_line": 1321 + }, + { + "left_line": 1321, + "right_line": 1322 + }, + { + "left_line": 1322, + "right_line": 1323 + }, + { + "left_line": 1323, + "right_line": 1324 + }, + { + "left_line": 1324, + "right_line": 1325 + }, + { + "left_line": 1325, + "right_line": 1326 + }, + { + "left_line": 1326, + "right_line": 1327 + }, + { + "left_line": 1327, + "right_line": 1328 + }, + { + "left_line": 1328, + "right_line": 1329 + }, + { + "left_line": 1329, + "right_line": 1330 + }, + { + "left_line": 1330, + "right_line": 1331 + }, + { + "left_line": 1331, + "right_line": 1332 + }, + { + "left_line": 1332, + "right_line": 1333 + }, + { + "left_line": 1333, + "right_line": 1334 + }, + { + "left_line": 1334, + "right_line": 1335 + }, + { + "left_line": 1335, + "right_line": 1336 + }, + { + "left_line": 1336, + "right_line": 1337 + }, + { + "left_line": 1337, + "right_line": 1338 + }, + { + "left_line": 1338, + "right_line": 1339 + }, + { + "left_line": 1339, + "right_line": 1340 + }, + { + "left_line": 1340, + "right_line": 1341 + }, + { + "left_line": 1341, + "right_line": 1342 + }, + { + "left_line": 1342, + "right_line": 1343 + }, + { + "left_line": 1343, + "right_line": 1344 + }, + { + "left_line": 1344, + "right_line": 1345 + }, + { + "left_line": 1345, + "right_line": 1346 + }, + { + "left_line": 1346, + "right_line": 1347 + }, + { + "left_line": 1347, + "right_line": 1348 + }, + { + "left_line": 1348, + "right_line": 1349 + }, + { + "left_line": 1349, + "right_line": 1350 + }, + { + "left_line": 1350, + "right_line": 1351 + }, + { + "left_line": 1351, + "right_line": 1352 + }, + { + "left_line": 1352, + "right_line": 1353 + }, + { + "left_line": 1353, + "right_line": 1354 + }, + { + "left_line": 1354, + "right_line": 1355 + }, + { + "left_line": 1355, + "right_line": 1356 + }, + { + "left_line": 1356, + "right_line": 1357 + }, + { + "left_line": 1357, + "right_line": 1358 + }, + { + "left_line": 1358, + "right_line": 1359 + }, + { + "left_line": 1359, + "right_line": 1360 + }, + { + "left_line": 1360, + "right_line": 1361 + }, + { + "left_line": 1361, + "right_line": 1362 + }, + { + "left_line": 1362, + "right_line": 1363 + }, + { + "left_line": 1363, + "right_line": 1364 + }, + { + "left_line": 1364, + "right_line": 1365 + }, + { + "left_line": 1365, + "right_line": 1366 + }, + { + "left_line": 1366, + "right_line": 1367 + }, + { + "left_line": 1367, + "right_line": 1368 + }, + { + "left_line": 1368, + "right_line": 1369 + }, + { + "left_line": 1369, + "right_line": 1370 + }, + { + "left_line": 1370, + "right_line": 1371 + }, + { + "left_line": 1371, + "right_line": 1372 + }, + { + "left_line": 1372, + "right_line": 1373 + }, + { + "left_line": 1373, + "right_line": 1374 + }, + { + "left_line": 1374, + "right_line": 1375 + }, + { + "left_line": 1375, + "right_line": 1376 + }, + { + "left_line": 1376, + "right_line": 1377 + }, + { + "left_line": 1377, + "right_line": 1378 + }, + { + "left_line": 1378, + "right_line": 1379 + }, + { + "left_line": 1379, + "right_line": 1380 + }, + { + "left_line": 1380, + "right_line": 1381 + }, + { + "left_line": 1381, + "right_line": 1382 + }, + { + "left_line": 1382, + "right_line": 1383 + }, + { + "left_line": 1383, + "right_line": 1384 + }, + { + "left_line": 1384, + "right_line": 1385 + }, + { + "left_line": 1385, + "right_line": 1386 + }, + { + "left_line": 1386, + "right_line": 1387 + }, + { + "left_line": 1387, + "right_line": 1388 + }, + { + "left_line": 1388, + "right_line": 1389 + }, + { + "left_line": 1389, + "right_line": 1390 + }, + { + "left_line": 1390, + "right_line": 1391 + }, + { + "left_line": 1391, + "right_line": 1392 + }, + { + "left_line": 1392, + "right_line": 1393 + }, + { + "left_line": 1393, + "right_line": 1394 + }, + { + "left_line": 1394, + "right_line": 1395 + }, + { + "left_line": 1395, + "right_line": 1396 + }, + { + "left_line": 1396, + "right_line": 1397 + }, + { + "left_line": 1397, + "right_line": 1398 + }, + { + "left_line": 1398, + "right_line": 1399 + }, + { + "left_line": 1399, + "right_line": 1400 + }, + { + "left_line": 1400, + "right_line": 1401 + }, + { + "left_line": 1401, + "right_line": 1402 + }, + { + "left_line": 1402, + "right_line": 1403 + }, + { + "left_line": 1403, + "right_line": 1404 + }, + { + "left_line": 1404, + "right_line": 1405 + }, + { + "left_line": 1405, + "right_line": 1406 + }, + { + "left_line": 1406, + "right_line": 1407 + }, + { + "left_line": 1407, + "right_line": 1408 + }, + { + "left_line": 1408, + "right_line": 1409 + }, + { + "left_line": 1409, + "right_line": 1410 + }, + { + "left_line": 1410, + "right_line": 1411 + }, + { + "left_line": 1411, + "right_line": 1412 + }, + { + "left_line": 1412, + "right_line": 1413 + }, + { + "left_line": 1413, + "right_line": 1414 + }, + { + "left_line": 1414, + "right_line": 1415 + }, + { + "left_line": 1415, + "right_line": 1416 + }, + { + "left_line": 1416, + "right_line": 1417 + }, + { + "left_line": 1417, + "right_line": 1418 + }, + { + "left_line": 1418, + "right_line": 1419 + }, + { + "left_line": 1419, + "right_line": 1420 + }, + { + "left_line": 1420, + "right_line": 1421 + }, + { + "left_line": 1421, + "right_line": 1422 + }, + { + "left_line": 1422, + "right_line": 1423 + }, + { + "left_line": 1423, + "right_line": 1424 + }, + { + "left_line": 1424, + "right_line": 1425 + }, + { + "left_line": 1425, + "right_line": 1426 + }, + { + "left_line": 1426, + "right_line": 1427 + }, + { + "left_line": 1427, + "right_line": 1428 + }, + { + "left_line": 1428, + "right_line": 1429 + }, + { + "left_line": 1429, + "right_line": 1430 + }, + { + "left_line": 1430, + "right_line": 1431 + }, + { + "left_line": 1431, + "right_line": 1432 + }, + { + "left_line": 1432, + "right_line": 1433 + }, + { + "left_line": 1433, + "right_line": 1434 + }, + { + "left_line": 1434, + "right_line": 1435 + }, + { + "left_line": 1435, + "right_line": 1436 + }, + { + "left_line": 1436, + "right_line": 1437 + }, + { + "left_line": 1437, + "right_line": 1438 + }, + { + "left_line": 1438, + "right_line": 1439 + }, + { + "left_line": 1439, + "right_line": 1440 + }, + { + "left_line": 1440, + "right_line": 1441 + }, + { + "left_line": 1441, + "right_line": 1442 + }, + { + "left_line": 1442, + "right_line": 1443 + }, + { + "left_line": 1443, + "right_line": 1444 + }, + { + "left_line": 1444, + "right_line": 1445 + }, + { + "left_line": 1445, + "right_line": 1446 + }, + { + "left_line": 1446, + "right_line": 1447 + }, + { + "left_line": 1447, + "right_line": 1448 + }, + { + "left_line": 1448, + "right_line": 1449 + }, + { + "left_line": 1449, + "right_line": 1450 + }, + { + "left_line": 1450, + "right_line": 1451 + }, + { + "left_line": 1451, + "right_line": 1452 + }, + { + "left_line": 1452, + "right_line": 1453 + }, + { + "left_line": 1453, + "right_line": 1454 + }, + { + "left_line": 1454, + "right_line": 1455 + }, + { + "left_line": 1455, + "right_line": 1456 + }, + { + "left_line": 1456, + "right_line": 1457 + }, + { + "left_line": 1457, + "right_line": 1458 + }, + { + "left_line": 1458, + "right_line": 1459 + }, + { + "left_line": 1459, + "right_line": 1460 + }, + { + "left_line": 1460, + "right_line": 1461 + }, + { + "left_line": 1461, + "right_line": 1462 + }, + { + "left_line": 1462, + "right_line": 1463 + }, + { + "left_line": 1463, + "right_line": 1464 + }, + { + "left_line": 1464, + "right_line": 1465 + }, + { + "left_line": 1465, + "right_line": 1466 + }, + { + "left_line": 1466, + "right_line": 1467 + }, + { + "left_line": 1467, + "right_line": 1468 + }, + { + "left_line": 1468, + "right_line": 1469 + }, + { + "left_line": 1469, + "right_line": 1470 + }, + { + "left_line": 1470, + "right_line": 1471 + }, + { + "left_line": 1471, + "right_line": 1472 + }, + { + "left_line": 1472, + "right_line": 1473 + }, + { + "left_line": 1473, + "right_line": 1474 + }, + { + "left_line": 1474, + "right_line": 1475 + }, + { + "left_line": 1475, + "right_line": 1476 + }, + { + "left_line": 1476, + "right_line": 1477 + }, + { + "left_line": 1477, + "right_line": 1478 + }, + { + "left_line": 1478, + "right_line": 1479 + }, + { + "left_line": 1479, + "right_line": 1480 + }, + { + "left_line": 1480, + "right_line": 1481 + }, + { + "left_line": 1481, + "right_line": 1482 + }, + { + "left_line": 1482, + "right_line": 1483 + }, + { + "left_line": 1483, + "right_line": 1484 + }, + { + "left_line": 1484, + "right_line": 1485 + }, + { + "left_line": 1485, + "right_line": 1486 + }, + { + "left_line": 1486, + "right_line": 1487 + }, + { + "left_line": 1487, + "right_line": 1488 + }, + { + "left_line": 1488, + "right_line": 1489 + }, + { + "left_line": 1489, + "right_line": 1490 + }, + { + "left_line": 1490, + "right_line": 1491 + }, + { + "left_line": 1491, + "right_line": 1492 + }, + { + "left_line": 1492, + "right_line": 1493 + }, + { + "left_line": 1493, + "right_line": 1494 + }, + { + "left_line": 1494, + "right_line": 1495 + }, + { + "left_line": 1495, + "right_line": 1496 + }, + { + "left_line": 1496, + "right_line": 1497 + }, + { + "left_line": 1497, + "right_line": 1498 + }, + { + "left_line": 1498, + "right_line": 1499 + }, + { + "left_line": 1499, + "right_line": 1500 + }, + { + "left_line": 1500, + "right_line": 1501 + }, + { + "left_line": 1501, + "right_line": 1502 + }, + { + "left_line": 1502, + "right_line": 1503 + }, + { + "left_line": 1503, + "right_line": 1504 + }, + { + "left_line": 1504, + "right_line": 1505 + }, + { + "left_line": 1505, + "right_line": 1506 + }, + { + "left_line": 1506, + "right_line": 1507 + }, + { + "left_line": 1507, + "right_line": 1508 + }, + { + "left_line": 1508, + "right_line": 1509 + }, + { + "left_line": 1509, + "right_line": 1510 + }, + { + "left_line": 1510, + "right_line": 1511 + }, + { + "left_line": 1511, + "right_line": 1512 + }, + { + "left_line": 1512, + "right_line": 1513 + }, + { + "left_line": 1513, + "right_line": 1514 + }, + { + "left_line": 1514, + "right_line": 1515 + }, + { + "left_line": 1515, + "right_line": 1516 + }, + { + "left_line": 1516, + "right_line": 1517 + }, + { + "left_line": 1517, + "right_line": 1518 + }, + { + "left_line": 1518, + "right_line": 1519 + }, + { + "left_line": 1519, + "right_line": 1520 + }, + { + "left_line": 1520, + "right_line": 1521 + }, + { + "left_line": 1521, + "right_line": 1522 + }, + { + "left_line": 1522, + "right_line": 1523 + }, + { + "left_line": 1523, + "right_line": 1524 + }, + { + "left_line": 1524, + "right_line": 1525 + }, + { + "left_line": 1525, + "right_line": 1526 + }, + { + "left_line": 1526, + "right_line": 1527 + }, + { + "left_line": 1527, + "right_line": 1528 + }, + { + "left_line": 1528, + "right_line": 1529 + }, + { + "left_line": 1529, + "right_line": 1530 + }, + { + "left_line": 1530, + "right_line": 1531 + }, + { + "left_line": 1531, + "right_line": 1532 + }, + { + "left_line": 1532, + "right_line": 1533 + }, + { + "left_line": 1533, + "right_line": 1534 + }, + { + "left_line": 1534, + "right_line": 1535 + }, + { + "left_line": 1535, + "right_line": 1536 + }, + { + "left_line": 1536, + "right_line": 1537 + }, + { + "left_line": 1537, + "right_line": 1538 + }, + { + "left_line": 1538, + "right_line": 1539 + }, + { + "left_line": 1539, + "right_line": 1540 + }, + { + "left_line": 1540, + "right_line": 1541 + }, + { + "left_line": 1541, + "right_line": 1542 + }, + { + "left_line": 1542, + "right_line": 1543 + }, + { + "left_line": 1543, + "right_line": 1544 + }, + { + "left_line": 1544, + "right_line": 1545 + }, + { + "left_line": 1545, + "right_line": 1546 + }, + { + "left_line": 1546, + "right_line": 1547 + }, + { + "left_line": 1547, + "right_line": 1548 + }, + { + "left_line": 1548, + "right_line": 1549 + }, + { + "left_line": 1549, + "right_line": 1550 + }, + { + "left_line": 1550, + "right_line": 1551 + }, + { + "left_line": 1551, + "right_line": 1552 + }, + { + "left_line": 1552, + "right_line": 1553 + }, + { + "left_line": 1553, + "right_line": 1554 + }, + { + "left_line": 1554, + "right_line": 1555 + }, + { + "left_line": 1555, + "right_line": 1556 + }, + { + "left_line": 1556, + "right_line": 1557 + }, + { + "left_line": 1557, + "right_line": 1558 + }, + { + "left_line": 1558, + "right_line": 1559 + }, + { + "left_line": 1559, + "right_line": 1560 + }, + { + "left_line": 1560, + "right_line": 1561 + }, + { + "left_line": 1561, + "right_line": 1562 + }, + { + "left_line": 1562, + "right_line": 1563 + }, + { + "left_line": 1563, + "right_line": 1564 + }, + { + "left_line": 1564, + "right_line": 1565 + }, + { + "left_line": 1565, + "right_line": 1566 + }, + { + "left_line": 1566, + "right_line": 1567 + }, + { + "left_line": 1567, + "right_line": 1568 + }, + { + "left_line": 1568, + "right_line": 1569 + }, + { + "left_line": 1569, + "right_line": 1570 + }, + { + "left_line": 1570, + "right_line": 1571 + }, + { + "left_line": 1571, + "right_line": 1572 + }, + { + "left_line": 1572, + "right_line": 1573 + }, + { + "left_line": 1573, + "right_line": 1574 + }, + { + "left_line": 1574, + "right_line": 1575 + }, + { + "left_line": 1575, + "right_line": 1576 + }, + { + "left_line": 1576, + "right_line": 1577 + }, + { + "left_line": 1577, + "right_line": 1578 + }, + { + "left_line": 1578, + "right_line": 1579 + }, + { + "left_line": 1579, + "right_line": 1580 + }, + { + "left_line": 1580, + "right_line": 1581 + }, + { + "left_line": 1581, + "right_line": 1582 + }, + { + "left_line": 1582, + "right_line": 1583 + }, + { + "left_line": 1583, + "right_line": 1584 + }, + { + "left_line": 1584, + "right_line": 1585 + }, + { + "left_line": 1585, + "right_line": 1586 + }, + { + "left_line": 1586, + "right_line": 1587 + }, + { + "left_line": 1587, + "right_line": 1588 + }, + { + "left_line": 1588, + "right_line": 1589 + }, + { + "left_line": 1589, + "right_line": 1590 + }, + { + "left_line": 1590, + "right_line": 1591 + }, + { + "left_line": 1591, + "right_line": 1592 + }, + { + "left_line": 1592, + "right_line": 1593 + }, + { + "left_line": 1593, + "right_line": 1594 + }, + { + "left_line": 1594, + "right_line": 1595 + }, + { + "left_line": 1595, + "right_line": 1596 + }, + { + "left_line": 1596, + "right_line": 1597 + }, + { + "left_line": 1597, + "right_line": 1598 + }, + { + "left_line": 1598, + "right_line": 1599 + }, + { + "left_line": 1599, + "right_line": 1600 + }, + { + "left_line": 1600, + "right_line": 1601 + }, + { + "left_line": 1601, + "right_line": 1602 + }, + { + "left_line": 1602, + "right_line": 1603 + }, + { + "left_line": 1603, + "right_line": 1604 + }, + { + "left_line": 1604, + "right_line": 1605 + }, + { + "left_line": 1605, + "right_line": 1606 + }, + { + "left_line": 1606, + "right_line": 1607 + }, + { + "left_line": 1607, + "right_line": 1608 + }, + { + "left_line": 1608, + "right_line": 1609 + }, + { + "left_line": 1609, + "right_line": 1610 + }, + { + "left_line": 1610, + "right_line": 1611 + }, + { + "left_line": 1611, + "right_line": 1612 + }, + { + "left_line": 1612, + "right_line": 1613 + }, + { + "left_line": 1613, + "right_line": 1614 + }, + { + "left_line": 1614, + "right_line": 1615 + }, + { + "left_line": 1615, + "right_line": 1616 + }, + { + "left_line": 1616, + "right_line": 1617 + }, + { + "left_line": 1617, + "right_line": 1618 + }, + { + "left_line": 1618, + "right_line": 1619 + }, + { + "left_line": 1619, + "right_line": 1620 + }, + { + "left_line": 1620, + "right_line": 1621 + }, + { + "left_line": 1621, + "right_line": 1622 + }, + { + "left_line": 1622, + "right_line": 1623 + }, + { + "left_line": 1623, + "right_line": 1624 + }, + { + "left_line": 1624, + "right_line": 1625 + }, + { + "left_line": 1625, + "right_line": 1626 + }, + { + "left_line": 1626, + "right_line": 1627 + }, + { + "left_line": 1627, + "right_line": 1628 + }, + { + "left_line": 1628, + "right_line": 1629 + }, + { + "left_line": 1629, + "right_line": 1630 + }, + { + "left_line": 1630, + "right_line": 1631 + }, + { + "left_line": 1631, + "right_line": 1632 + }, + { + "left_line": 1632, + "right_line": 1633 + }, + { + "left_line": 1633, + "right_line": 1634 + }, + { + "left_line": 1634, + "right_line": 1635 + }, + { + "left_line": 1635, + "right_line": 1636 + }, + { + "left_line": 1636, + "right_line": 1637 + }, + { + "left_line": 1637, + "right_line": 1638 + }, + { + "left_line": 1638, + "right_line": 1639 + }, + { + "left_line": 1639, + "right_line": 1640 + }, + { + "left_line": 1640, + "right_line": 1641 + }, + { + "left_line": 1641, + "right_line": 1642 + }, + { + "left_line": 1642, + "right_line": 1643 + }, + { + "left_line": 1643, + "right_line": 1644 + }, + { + "left_line": 1644, + "right_line": 1645 + }, + { + "left_line": 1645, + "right_line": 1646 + }, + { + "left_line": 1646, + "right_line": 1647 + }, + { + "left_line": 1647, + "right_line": 1648 + }, + { + "left_line": 1648, + "right_line": 1649 + }, + { + "left_line": 1649, + "right_line": 1650 + }, + { + "left_line": 1650, + "right_line": 1651 + }, + { + "left_line": 1651, + "right_line": 1652 + }, + { + "left_line": 1652, + "right_line": 1653 + }, + { + "left_line": 1653, + "right_line": 1654 + }, + { + "left_line": 1654, + "right_line": 1655 + }, + { + "left_line": 1655, + "right_line": 1656 + }, + { + "left_line": 1656, + "right_line": 1657 + }, + { + "left_line": 1657, + "right_line": 1658 + }, + { + "left_line": 1658, + "right_line": 1659 + }, + { + "left_line": 1659, + "right_line": 1660 + }, + { + "left_line": 1660, + "right_line": 1661 + }, + { + "left_line": 1661, + "right_line": 1662 + }, + { + "left_line": 1662, + "right_line": 1663 + }, + { + "left_line": 1663, + "right_line": 1664 + }, + { + "left_line": 1664, + "right_line": 1665 + }, + { + "left_line": 1665, + "right_line": 1666 + }, + { + "left_line": 1666, + "right_line": 1667 + }, + { + "left_line": 1667, + "right_line": 1668 + }, + { + "left_line": 1668, + "right_line": 1669 + }, + { + "left_line": 1669, + "right_line": 1670 + }, + { + "left_line": 1670, + "right_line": 1671 + }, + { + "left_line": 1671, + "right_line": 1672 + }, + { + "left_line": 1672, + "right_line": 1673 + }, + { + "left_line": 1673, + "right_line": 1674 + }, + { + "left_line": 1674, + "right_line": 1675 + }, + { + "left_line": 1675, + "right_line": 1676 + }, + { + "left_line": 1676, + "right_line": 1677 + }, + { + "left_line": 1677, + "right_line": 1678 + }, + { + "left_line": 1678, + "right_line": 1679 + }, + { + "left_line": 1679, + "right_line": 1680 + }, + { + "left_line": 1680, + "right_line": 1681 + }, + { + "left_line": 1681, + "right_line": 1682 + }, + { + "left_line": 1682, + "right_line": 1683 + }, + { + "left_line": 1683, + "right_line": 1684 + }, + { + "left_line": 1684, + "right_line": 1685 + }, + { + "left_line": 1685, + "right_line": 1686 + }, + { + "left_line": 1686, + "right_line": 1687 + }, + { + "left_line": 1687, + "right_line": 1688 + }, + { + "left_line": 1688, + "right_line": 1689 + }, + { + "left_line": 1689, + "right_line": 1690 + }, + { + "left_line": 1690, + "right_line": 1691 + }, + { + "left_line": 1691, + "right_line": 1692 + }, + { + "left_line": 1692, + "right_line": 1693 + }, + { + "left_line": 1693, + "right_line": 1694 + }, + { + "left_line": 1694, + "right_line": 1695 + }, + { + "left_line": 1695, + "right_line": 1696 + }, + { + "left_line": 1696, + "right_line": 1697 + }, + { + "left_line": 1697, + "right_line": 1698 + }, + { + "left_line": 1698, + "right_line": 1699 + }, + { + "left_line": 1699, + "right_line": 1700 + }, + { + "left_line": 1700, + "right_line": 1701 + }, + { + "left_line": 1701, + "right_line": 1702 + }, + { + "left_line": 1702, + "right_line": 1703 + }, + { + "left_line": 1703, + "right_line": 1704 + }, + { + "left_line": 1704, + "right_line": 1705 + }, + { + "left_line": 1705, + "right_line": 1706 + }, + { + "left_line": 1706, + "right_line": 1707 + }, + { + "left_line": 1707, + "right_line": 1708 + }, + { + "left_line": 1708, + "right_line": 1709 + }, + { + "left_line": 1709, + "right_line": 1710 + }, + { + "left_line": 1710, + "right_line": 1711 + }, + { + "left_line": 1711, + "right_line": 1712 + }, + { + "left_line": 1712, + "right_line": 1713 + }, + { + "left_line": 1713, + "right_line": 1714 + }, + { + "left_line": 1714, + "right_line": 1715 + }, + { + "left_line": 1715, + "right_line": 1716 + }, + { + "left_line": 1716, + "right_line": 1717 + }, + { + "left_line": 1717, + "right_line": 1718 + }, + { + "left_line": 1718, + "right_line": 1719 + }, + { + "left_line": 1719, + "right_line": 1720 + }, + { + "left_line": 1720, + "right_line": 1721 + }, + { + "left_line": 1721, + "right_line": 1722 + }, + { + "left_line": 1722, + "right_line": 1723 + }, + { + "left_line": 1723, + "right_line": 1724 + }, + { + "left_line": 1724, + "right_line": 1725 + }, + { + "left_line": 1725, + "right_line": 1726 + }, + { + "left_line": 1726, + "right_line": 1727 + }, + { + "left_line": 1727, + "right_line": 1728 + }, + { + "left_line": 1728, + "right_line": 1729 + }, + { + "left_line": 1729, + "right_line": 1730 + }, + { + "left_line": 1730, + "right_line": 1731 + }, + { + "left_line": 1731, + "right_line": 1732 + }, + { + "left_line": 1732, + "right_line": 1733 + }, + { + "left_line": 1733, + "right_line": 1734 + }, + { + "left_line": 1734, + "right_line": 1735 + }, + { + "left_line": 1735, + "right_line": 1736 + }, + { + "left_line": 1736, + "right_line": 1737 + }, + { + "left_line": 1737, + "right_line": 1738 + }, + { + "left_line": 1738, + "right_line": 1739 + }, + { + "left_line": 1739, + "right_line": 1740 + }, + { + "left_line": 1740, + "right_line": 1741 + }, + { + "left_line": 1741, + "right_line": 1742 + }, + { + "left_line": 1742, + "right_line": 1743 + }, + { + "left_line": 1743, + "right_line": 1744 + }, + { + "left_line": 1744, + "right_line": 1745 + }, + { + "left_line": 1745, + "right_line": 1746 + }, + { + "left_line": 1746, + "right_line": 1747 + }, + { + "left_line": 1747, + "right_line": 1748 + }, + { + "left_line": 1748, + "right_line": 1749 + }, + { + "left_line": 1749, + "right_line": 1750 + }, + { + "left_line": 1750, + "right_line": 1751 + }, + { + "left_line": 1751, + "right_line": 1752 + }, + { + "left_line": 1752, + "right_line": 1753 + }, + { + "left_line": 1753, + "right_line": 1754 + }, + { + "left_line": 1754, + "right_line": 1755 + }, + { + "left_line": 1755, + "right_line": 1756 + }, + { + "left_line": 1756, + "right_line": 1757 + }, + { + "left_line": 1757, + "right_line": 1758 + }, + { + "left_line": 1758, + "right_line": 1759 + }, + { + "left_line": 1759, + "right_line": 1760 + }, + { + "left_line": 1760, + "right_line": 1761 + }, + { + "left_line": 1761, + "right_line": 1762 + }, + { + "left_line": 1762, + "right_line": 1763 + }, + { + "left_line": 1763, + "right_line": 1764 + }, + { + "left_line": 1764, + "right_line": 1765 + }, + { + "left_line": 1765, + "right_line": 1766 + }, + { + "left_line": 1766, + "right_line": 1767 + }, + { + "left_line": 1767, + "right_line": 1768 + }, + { + "left_line": 1768, + "right_line": 1769 + }, + { + "left_line": 1769, + "right_line": 1770 + }, + { + "left_line": 1770, + "right_line": 1771 + }, + { + "left_line": 1771, + "right_line": 1772 + }, + { + "left_line": 1772, + "right_line": 1773 + }, + { + "left_line": 1773, + "right_line": 1774 + }, + { + "left_line": 1774, + "right_line": 1775 + }, + { + "left_line": 1775, + "right_line": 1776 + }, + { + "left_line": 1776, + "right_line": 1777 + }, + { + "left_line": 1777, + "right_line": 1778 + }, + { + "left_line": 1778, + "right_line": 1779 + }, + { + "left_line": 1779, + "right_line": 1780 + }, + { + "left_line": 1780, + "right_line": 1781 + }, + { + "left_line": 1781, + "right_line": 1782 + }, + { + "left_line": 1782, + "right_line": 1783 + }, + { + "left_line": 1783, + "right_line": 1784 + }, + { + "left_line": 1784, + "right_line": 1785 + }, + { + "left_line": 1785, + "right_line": 1786 + }, + { + "left_line": 1786, + "right_line": 1787 + }, + { + "left_line": 1787, + "right_line": 1788 + }, + { + "left_line": 1788, + "right_line": 1789 + }, + { + "left_line": 1789, + "right_line": 1790 + }, + { + "left_line": 1790, + "right_line": 1791 + }, + { + "left_line": 1791, + "right_line": 1792 + }, + { + "left_line": 1792, + "right_line": 1793 + }, + { + "left_line": 1793, + "right_line": 1794 + }, + { + "left_line": 1794, + "right_line": 1795 + }, + { + "left_line": 1795, + "right_line": 1796 + }, + { + "left_line": 1796, + "right_line": 1797 + }, + { + "left_line": 1797, + "right_line": 1798 + }, + { + "left_line": 1798, + "right_line": 1799 + }, + { + "left_line": 1799, + "right_line": 1800 + }, + { + "left_line": 1800, + "right_line": 1801 + }, + { + "left_line": 1801, + "right_line": 1802 + }, + { + "left_line": 1802, + "right_line": 1803 + }, + { + "left_line": 1803, + "right_line": 1804 + }, + { + "left_line": 1804, + "right_line": 1805 + }, + { + "left_line": 1805, + "right_line": 1806 + }, + { + "left_line": 1806, + "right_line": 1807 + }, + { + "left_line": 1807, + "right_line": 1808 + }, + { + "left_line": 1808, + "right_line": 1809 + }, + { + "left_line": 1809, + "right_line": 1810 + }, + { + "left_line": 1810, + "right_line": 1811 + }, + { + "left_line": 1811, + "right_line": 1812 + }, + { + "left_line": 1812, + "right_line": 1813 + }, + { + "left_line": 1813, + "right_line": 1814 + }, + { + "left_line": 1814, + "right_line": 1815 + }, + { + "left_line": 1815, + "right_line": 1816 + }, + { + "left_line": 1816, + "right_line": 1817 + }, + { + "left_line": 1817, + "right_line": 1818 + }, + { + "left_line": 1818, + "right_line": 1819 + }, + { + "left_line": 1819, + "right_line": 1820 + }, + { + "left_line": 1820, + "right_line": 1821 + }, + { + "left_line": 1821, + "right_line": 1822 + }, + { + "left_line": 1822, + "right_line": 1823 + }, + { + "left_line": 1823, + "right_line": 1824 + }, + { + "left_line": 1824, + "right_line": 1825 + }, + { + "left_line": 1825, + "right_line": 1826 + }, + { + "left_line": 1826, + "right_line": 1827 + }, + { + "left_line": 1827, + "right_line": 1828 + }, + { + "left_line": 1828, + "right_line": 1829 + }, + { + "left_line": 1829, + "right_line": 1830 + }, + { + "left_line": 1830, + "right_line": 1831 + }, + { + "left_line": 1831, + "right_line": 1832 + }, + { + "left_line": 1832, + "right_line": 1833 + }, + { + "left_line": 1833, + "right_line": 1834 + }, + { + "left_line": 1834, + "right_line": 1835 + }, + { + "left_line": 1835, + "right_line": 1836 + }, + { + "left_line": 1836, + "right_line": 1837 + }, + { + "left_line": 1837, + "right_line": 1838 + }, + { + "left_line": 1838, + "right_line": 1839 + }, + { + "left_line": 1839, + "right_line": 1840 + }, + { + "left_line": 1840, + "right_line": 1841 + }, + { + "left_line": 1841, + "right_line": 1842 + }, + { + "left_line": 1842, + "right_line": 1843 + }, + { + "left_line": 1843, + "right_line": 1844 + }, + { + "left_line": 1844, + "right_line": 1845 + }, + { + "left_line": 1845, + "right_line": 1846 + }, + { + "left_line": 1846, + "right_line": 1847 + }, + { + "left_line": 1847, + "right_line": 1848 + }, + { + "left_line": 1848, + "right_line": 1849 + }, + { + "left_line": 1849, + "right_line": 1850 + }, + { + "left_line": 1850, + "right_line": 1851 + }, + { + "left_line": 1851, + "right_line": 1852 + }, + { + "left_line": 1852, + "right_line": 1853 + }, + { + "left_line": 1853, + "right_line": 1854 + }, + { + "left_line": 1854, + "right_line": 1855 + }, + { + "left_line": 1855, + "right_line": 1856 + }, + { + "left_line": 1856, + "right_line": 1857 + }, + { + "left_line": 1857, + "right_line": 1858 + }, + { + "left_line": 1858, + "right_line": 1859 + }, + { + "left_line": 1859, + "right_line": 1860 + }, + { + "left_line": 1860, + "right_line": 1861 + }, + { + "left_line": 1861, + "right_line": 1862 + }, + { + "left_line": 1862, + "right_line": 1863 + }, + { + "left_line": 1863, + "right_line": 1864 + }, + { + "left_line": 1864, + "right_line": 1865 + }, + { + "left_line": 1865, + "right_line": 1866 + }, + { + "left_line": 1866, + "right_line": 1867 + }, + { + "left_line": 1867, + "right_line": 1868 + }, + { + "left_line": 1868, + "right_line": 1869 + }, + { + "left_line": 1869, + "right_line": 1870 + }, + { + "left_line": 1870, + "right_line": 1871 + }, + { + "left_line": 1871, + "right_line": 1872 + }, + { + "left_line": 1872, + "right_line": 1873 + }, + { + "left_line": 1873, + "right_line": 1874 + }, + { + "left_line": 1874, + "right_line": 1875 + }, + { + "left_line": 1875, + "right_line": 1876 + }, + { + "left_line": 1876, + "right_line": 1877 + }, + { + "left_line": 1877, + "right_line": 1878 + }, + { + "left_line": 1878, + "right_line": 1879 + }, + { + "left_line": 1879, + "right_line": 1880 + }, + { + "left_line": 1880, + "right_line": 1881 + }, + { + "left_line": 1881, + "right_line": 1882 + }, + { + "left_line": 1882, + "right_line": 1883 + }, + { + "left_line": 1883, + "right_line": 1884 + }, + { + "left_line": 1884, + "right_line": 1885 + }, + { + "left_line": 1885, + "right_line": 1886 + }, + { + "left_line": 1886, + "right_line": 1887 + }, + { + "left_line": 1887, + "right_line": 1888 + }, + { + "left_line": 1888, + "right_line": 1889 + }, + { + "left_line": 1889, + "right_line": 1890 + }, + { + "left_line": 1890, + "right_line": 1891 + }, + { + "left_line": 1891, + "right_line": 1892 + }, + { + "left_line": 1892, + "right_line": 1893 + }, + { + "left_line": 1893, + "right_line": 1894 + }, + { + "left_line": 1894, + "right_line": 1895 + }, + { + "left_line": 1895, + "right_line": 1896 + }, + { + "left_line": 1896, + "right_line": 1897 + }, + { + "left_line": 1897, + "right_line": 1898 + }, + { + "left_line": 1898, + "right_line": 1899 + }, + { + "left_line": 1899, + "right_line": 1900 + }, + { + "left_line": 1900, + "right_line": 1901 + }, + { + "left_line": 1901, + "right_line": 1902 + }, + { + "left_line": 1902, + "right_line": 1903 + }, + { + "left_line": 1903, + "right_line": 1904 + }, + { + "left_line": 1904, + "right_line": 1905 + }, + { + "left_line": 1905, + "right_line": 1906 + }, + { + "left_line": 1906, + "right_line": 1907 + }, + { + "left_line": 1907, + "right_line": 1908 + }, + { + "left_line": 1908, + "right_line": 1909 + }, + { + "left_line": 1909, + "right_line": 1910 + }, + { + "left_line": 1910, + "right_line": 1911 + }, + { + "left_line": 1911, + "right_line": 1912 + }, + { + "left_line": 1912, + "right_line": 1913 + }, + { + "left_line": 1913, + "right_line": 1914 + }, + { + "left_line": 1914, + "right_line": 1915 + }, + { + "left_line": 1915, + "right_line": 1916 + }, + { + "left_line": 1916, + "right_line": 1917 + }, + { + "left_line": 1917, + "right_line": 1918 + }, + { + "left_line": 1918, + "right_line": 1919 + }, + { + "left_line": 1919, + "right_line": 1920 + }, + { + "left_line": 1920, + "right_line": 1921 + }, + { + "left_line": 1921, + "right_line": 1922 + }, + { + "left_line": 1922, + "right_line": 1923 + }, + { + "left_line": 1923, + "right_line": 1924 + }, + { + "left_line": 1924, + "right_line": 1925 + }, + { + "left_line": 1925, + "right_line": 1926 + }, + { + "left_line": 1926, + "right_line": 1927 + }, + { + "left_line": 1927, + "right_line": 1928 + }, + { + "left_line": 1928, + "right_line": 1929 + }, + { + "left_line": 1929, + "right_line": 1930 + }, + { + "left_line": 1930, + "right_line": 1931 + }, + { + "left_line": 1931, + "right_line": 1932 + }, + { + "left_line": 1932, + "right_line": 1933 + }, + { + "left_line": 1933, + "right_line": 1934 + }, + { + "left_line": 1934, + "right_line": 1935 + }, + { + "left_line": 1935, + "right_line": 1936 + }, + { + "left_line": 1936, + "right_line": 1937 + }, + { + "left_line": 1937, + "right_line": 1938 + }, + { + "left_line": 1938, + "right_line": 1939 + }, + { + "left_line": 1939, + "right_line": 1940 + }, + { + "left_line": 1940, + "right_line": 1941 + }, + { + "left_line": 1941, + "right_line": 1942 + }, + { + "left_line": 1942, + "right_line": 1943 + }, + { + "left_line": 1943, + "right_line": 1944 + }, + { + "left_line": 1944, + "right_line": 1945 + }, + { + "left_line": 1945, + "right_line": 1946 + }, + { + "left_line": 1946, + "right_line": 1947 + }, + { + "left_line": 1947, + "right_line": 1948 + }, + { + "left_line": 1948, + "right_line": 1949 + }, + { + "left_line": 1949, + "right_line": 1950 + }, + { + "left_line": 1950, + "right_line": 1951 + }, + { + "left_line": 1951, + "right_line": 1952 + }, + { + "left_line": 1952, + "right_line": 1953 + }, + { + "left_line": 1953, + "right_line": 1954 + }, + { + "left_line": 1954, + "right_line": 1955 + }, + { + "left_line": 1955, + "right_line": 1956 + }, + { + "left_line": 1956, + "right_line": 1957 + }, + { + "left_line": 1957, + "right_line": 1958 + }, + { + "left_line": 1958, + "right_line": 1959 + }, + { + "left_line": 1959, + "right_line": 1960 + }, + { + "left_line": 1960, + "right_line": 1961 + }, + { + "left_line": 1961, + "right_line": 1962 + }, + { + "left_line": 1962, + "right_line": 1963 + }, + { + "left_line": 1963, + "right_line": 1964 + }, + { + "left_line": 1964, + "right_line": 1965 + }, + { + "left_line": 1965, + "right_line": 1966 + }, + { + "left_line": 1966, + "right_line": 1967 + }, + { + "left_line": 1967, + "right_line": 1968 + }, + { + "left_line": 1968, + "right_line": 1969 + }, + { + "left_line": 1969, + "right_line": 1970 + }, + { + "left_line": 1970, + "right_line": 1971 + }, + { + "left_line": 1971, + "right_line": 1972 + }, + { + "left_line": 1972, + "right_line": 1973 + }, + { + "left_line": 1973, + "right_line": 1974 + }, + { + "left_line": 1974, + "right_line": 1975 + }, + { + "left_line": 1975, + "right_line": 1976 + }, + { + "left_line": 1976, + "right_line": 1977 + }, + { + "left_line": 1977, + "right_line": 1978 + }, + { + "left_line": 1978, + "right_line": 1979 + }, + { + "left_line": 1979, + "right_line": 1980 + }, + { + "left_line": 1980, + "right_line": 1981 + }, + { + "left_line": 1981, + "right_line": 1982 + }, + { + "left_line": 1982, + "right_line": 1983 + }, + { + "left_line": 1983, + "right_line": 1984 + }, + { + "left_line": 1984, + "right_line": 1985 + }, + { + "left_line": 1985, + "right_line": 1986 + }, + { + "left_line": 1986, + "right_line": 1987 + }, + { + "left_line": 1987, + "right_line": 1988 + }, + { + "left_line": 1988, + "right_line": 1989 + }, + { + "left_line": 1989, + "right_line": 1990 + }, + { + "left_line": 1990, + "right_line": 1991 + }, + { + "left_line": 1991, + "right_line": 1992 + }, + { + "left_line": 1992, + "right_line": 1993 + }, + { + "left_line": 1993, + "right_line": 1994 + }, + { + "left_line": 1994, + "right_line": 1995 + }, + { + "left_line": 1995, + "right_line": 1996 + }, + { + "left_line": 1996, + "right_line": 1997 + }, + { + "left_line": 1997, + "right_line": 1998 + }, + { + "left_line": 1998, + "right_line": 1999 + }, + { + "left_line": 1999, + "right_line": 2000 + }, + { + "left_line": 2000, + "right_line": 2001 + }, + { + "left_line": 2001, + "right_line": 2002 + }, + { + "left_line": 2002, + "right_line": 2003 + }, + { + "left_line": 2003, + "right_line": 2004 + }, + { + "left_line": 2004, + "right_line": 2005 + }, + { + "left_line": 2005, + "right_line": 2006 + }, + { + "left_line": 2006, + "right_line": 2007 + }, + { + "left_line": 2007, + "right_line": 2008 + }, + { + "left_line": 2008, + "right_line": 2009 + }, + { + "left_line": 2009, + "right_line": 2010 + }, + { + "left_line": 2010, + "right_line": 2011 + }, + { + "left_line": 2011, + "right_line": 2012 + }, + { + "left_line": 2012, + "right_line": 2013 + }, + { + "left_line": 2013, + "right_line": 2014 + }, + { + "left_line": 2014, + "right_line": 2015 + }, + { + "left_line": 2015, + "right_line": 2016 + }, + { + "left_line": 2016, + "right_line": 2017 + }, + { + "left_line": 2017, + "right_line": 2018 + }, + { + "left_line": 2018, + "right_line": 2019 + }, + { + "left_line": 2019, + "right_line": 2020 + }, + { + "left_line": 2020, + "right_line": 2021 + }, + { + "left_line": 2021, + "right_line": 2022 + }, + { + "left_line": 2022, + "right_line": 2023 + }, + { + "left_line": 2023, + "right_line": 2024 + }, + { + "left_line": 2024, + "right_line": 2025 + }, + { + "left_line": 2025, + "right_line": 2026 + }, + { + "left_line": 2026, + "right_line": 2027 + }, + { + "left_line": 2027, + "right_line": 2028 + }, + { + "left_line": 2028, + "right_line": 2029 + }, + { + "left_line": 2029, + "right_line": 2030 + }, + { + "left_line": 2030, + "right_line": 2031 + }, + { + "left_line": 2031, + "right_line": 2032 + }, + { + "left_line": 2032, + "right_line": 2033 + }, + { + "left_line": 2033, + "right_line": 2034 + }, + { + "left_line": 2034, + "right_line": 2035 + }, + { + "left_line": 2035, + "right_line": 2036 + }, + { + "left_line": 2036, + "right_line": 2037 + }, + { + "left_line": 2037, + "right_line": 2038 + }, + { + "left_line": 2038, + "right_line": 2039 + }, + { + "left_line": 2039, + "right_line": 2040 + }, + { + "left_line": 2040, + "right_line": 2041 + }, + { + "left_line": 2041, + "right_line": 2042 + }, + { + "left_line": 2042, + "right_line": 2043 + }, + { + "left_line": 2043, + "right_line": 2044 + }, + { + "left_line": 2044, + "right_line": 2045 + }, + { + "left_line": 2045, + "right_line": 2046 + }, + { + "left_line": 2046, + "right_line": 2047 + }, + { + "left_line": 2047, + "right_line": 2048 + }, + { + "left_line": 2048, + "right_line": 2049 + }, + { + "left_line": 2049, + "right_line": 2050 + }, + { + "left_line": 2050, + "right_line": 2051 + }, + { + "left_line": 2051, + "right_line": 2052 + }, + { + "left_line": 2052, + "right_line": 2053 + }, + { + "left_line": 2053, + "right_line": 2054 + }, + { + "left_line": 2054, + "right_line": 2055 + }, + { + "left_line": 2055, + "right_line": 2056 + }, + { + "left_line": 2056, + "right_line": 2057 + }, + { + "left_line": 2057, + "right_line": 2058 + }, + { + "left_line": 2058, + "right_line": 2059 + }, + { + "left_line": 2059, + "right_line": 2060 + }, + { + "left_line": 2060, + "right_line": 2061 + }, + { + "left_line": 2061, + "right_line": 2062 + }, + { + "left_line": 2062, + "right_line": 2063 + }, + { + "left_line": 2063, + "right_line": 2064 + }, + { + "left_line": 2064, + "right_line": 2065 + }, + { + "left_line": 2065, + "right_line": 2066 + }, + { + "left_line": 2066, + "right_line": 2067 + }, + { + "left_line": 2067, + "right_line": 2068 + }, + { + "left_line": 2068, + "right_line": 2069 + }, + { + "left_line": 2069, + "right_line": 2070 + }, + { + "left_line": 2070, + "right_line": 2071 + }, + { + "left_line": 2071, + "right_line": 2072 + }, + { + "left_line": 2072, + "right_line": 2073 + }, + { + "left_line": 2073, + "right_line": 2074 + }, + { + "left_line": 2074, + "right_line": 2075 + }, + { + "left_line": 2075, + "right_line": 2076 + }, + { + "left_line": 2076, + "right_line": 2077 + }, + { + "left_line": 2077, + "right_line": 2078 + }, + { + "left_line": 2078, + "right_line": 2079 + }, + { + "left_line": 2079, + "right_line": 2080 + }, + { + "left_line": 2080, + "right_line": 2081 + }, + { + "left_line": 2081, + "right_line": 2082 + }, + { + "left_line": 2082, + "right_line": 2083 + }, + { + "left_line": 2083, + "right_line": 2084 + }, + { + "left_line": 2084, + "right_line": 2085 + }, + { + "left_line": 2085, + "right_line": 2086 + }, + { + "left_line": 2086, + "right_line": 2087 + }, + { + "left_line": 2087, + "right_line": 2088 + }, + { + "left_line": 2088, + "right_line": 2089 + }, + { + "left_line": 2089, + "right_line": 2090 + }, + { + "left_line": 2090, + "right_line": 2091 + }, + { + "left_line": 2091, + "right_line": 2092 + }, + { + "left_line": 2092, + "right_line": 2093 + }, + { + "left_line": 2093, + "right_line": 2094 + }, + { + "left_line": 2094, + "right_line": 2095 + }, + { + "left_line": 2095, + "right_line": 2096 + }, + { + "left_line": 2096, + "right_line": 2097 + }, + { + "left_line": 2097, + "right_line": 2098 + }, + { + "left_line": 2098, + "right_line": 2099 + }, + { + "left_line": 2099, + "right_line": 2100 + }, + { + "left_line": 2100, + "right_line": 2101 + }, + { + "left_line": 2101, + "right_line": 2102 + }, + { + "left_line": 2102, + "right_line": 2103 + }, + { + "left_line": 2103, + "right_line": 2104 + }, + { + "left_line": 2104, + "right_line": 2105 + }, + { + "left_line": 2105, + "right_line": 2106 + }, + { + "left_line": 2106, + "right_line": 2107 + }, + { + "left_line": 2107, + "right_line": 2108 + }, + { + "left_line": 2108, + "right_line": 2109 + }, + { + "left_line": 2109, + "right_line": 2110 + }, + { + "left_line": 2110, + "right_line": 2111 + }, + { + "left_line": 2111, + "right_line": 2112 + }, + { + "left_line": 2112, + "right_line": 2113 + }, + { + "left_line": 2113, + "right_line": 2114 + }, + { + "left_line": 2114, + "right_line": 2115 + }, + { + "left_line": 2115, + "right_line": 2116 + }, + { + "left_line": 2116, + "right_line": 2117 + }, + { + "left_line": 2117, + "right_line": 2118 + }, + { + "left_line": 2118, + "right_line": 2119 + }, + { + "left_line": 2119, + "right_line": 2120 + }, + { + "left_line": 2120, + "right_line": 2121 + }, + { + "left_line": 2121, + "right_line": 2122 + }, + { + "left_line": 2122, + "right_line": 2123 + }, + { + "left_line": 2123, + "right_line": 2124 + }, + { + "left_line": 2124, + "right_line": 2125 + }, + { + "left_line": 2125, + "right_line": 2126 + }, + { + "left_line": 2126, + "right_line": 2127 + }, + { + "left_line": 2127, + "right_line": 2128 + }, + { + "left_line": 2128, + "right_line": 2129 + }, + { + "left_line": 2129, + "right_line": 2130 + }, + { + "left_line": 2130, + "right_line": 2131 + }, + { + "left_line": 2131, + "right_line": 2132 + }, + { + "left_line": 2132, + "right_line": 2133 + }, + { + "left_line": 2133, + "right_line": 2134 + }, + { + "left_line": 2134, + "right_line": 2135 + }, + { + "left_line": 2135, + "right_line": 2136 + }, + { + "left_line": 2136, + "right_line": 2137 + }, + { + "left_line": 2137, + "right_line": 2138 + }, + { + "left_line": 2138, + "right_line": 2139 + }, + { + "left_line": 2139, + "right_line": 2140 + }, + { + "left_line": 2140, + "right_line": 2141 + }, + { + "left_line": 2141, + "right_line": 2142 + }, + { + "left_line": 2142, + "right_line": 2143 + }, + { + "left_line": 2143, + "right_line": 2144 + }, + { + "left_line": 2144, + "right_line": 2145 + }, + { + "left_line": 2145, + "right_line": 2146 + }, + { + "left_line": 2146, + "right_line": 2147 + }, + { + "left_line": 2147, + "right_line": 2148 + }, + { + "left_line": 2148, + "right_line": 2149 + }, + { + "left_line": 2149, + "right_line": 2150 + }, + { + "left_line": 2150, + "right_line": 2151 + }, + { + "left_line": 2151, + "right_line": 2152 + }, + { + "left_line": 2152, + "right_line": 2153 + }, + { + "left_line": 2153, + "right_line": 2154 + }, + { + "left_line": 2154, + "right_line": 2155 + }, + { + "left_line": 2155, + "right_line": 2156 + }, + { + "left_line": 2156, + "right_line": 2157 + }, + { + "left_line": 2157, + "right_line": 2158 + }, + { + "left_line": 2158, + "right_line": 2159 + }, + { + "left_line": 2159, + "right_line": 2160 + }, + { + "left_line": 2160, + "right_line": 2161 + }, + { + "left_line": 2161, + "right_line": 2162 + }, + { + "left_line": 2162, + "right_line": 2163 + }, + { + "left_line": 2163, + "right_line": 2164 + }, + { + "left_line": 2164, + "right_line": 2165 + }, + { + "left_line": 2165, + "right_line": 2166 + }, + { + "left_line": 2166, + "right_line": 2167 + }, + { + "left_line": 2167, + "right_line": 2168 + }, + { + "left_line": 2168, + "right_line": 2169 + }, + { + "left_line": 2169, + "right_line": 2170 + }, + { + "left_line": 2170, + "right_line": 2171 + }, + { + "left_line": 2171, + "right_line": 2172 + }, + { + "left_line": 2172, + "right_line": 2173 + }, + { + "left_line": 2173, + "right_line": 2174 + }, + { + "left_line": 2174, + "right_line": 2175 + }, + { + "left_line": 2175, + "right_line": 2176 + }, + { + "left_line": 2176, + "right_line": 2177 + }, + { + "left_line": 2177, + "right_line": 2178 + }, + { + "left_line": 2178, + "right_line": 2179 + }, + { + "left_line": 2179, + "right_line": 2180 + }, + { + "left_line": 2180, + "right_line": 2181 + }, + { + "left_line": 2181, + "right_line": 2182 + }, + { + "left_line": 2182, + "right_line": 2183 + }, + { + "left_line": 2183, + "right_line": 2184 + }, + { + "left_line": 2184, + "right_line": 2185 + }, + { + "left_line": 2185, + "right_line": 2186 + }, + { + "left_line": 2186, + "right_line": 2187 + }, + { + "left_line": 2187, + "right_line": 2188 + }, + { + "left_line": 2188, + "right_line": 2189 + }, + { + "left_line": 2189, + "right_line": 2190 + }, + { + "left_line": 2190, + "right_line": 2191 + }, + { + "left_line": 2191, + "right_line": 2192 + }, + { + "left_line": 2192, + "right_line": 2193 + }, + { + "left_line": 2193, + "right_line": 2194 + }, + { + "left_line": 2194, + "right_line": 2195 + }, + { + "left_line": 2195, + "right_line": 2196 + }, + { + "left_line": 2196, + "right_line": 2197 + }, + { + "left_line": 2197, + "right_line": 2198 + }, + { + "left_line": 2198, + "right_line": 2199 + }, + { + "left_line": 2199, + "right_line": 2200 + }, + { + "left_line": 2200, + "right_line": 2201 + }, + { + "left_line": 2201, + "right_line": 2202 + }, + { + "left_line": 2202, + "right_line": 2203 + }, + { + "left_line": 2203, + "right_line": 2204 + }, + { + "left_line": 2204, + "right_line": 2205 + }, + { + "left_line": 2205, + "right_line": 2206 + }, + { + "left_line": 2206, + "right_line": 2207 + }, + { + "left_line": 2207, + "right_line": 2208 + }, + { + "left_line": 2208, + "right_line": 2209 + }, + { + "left_line": 2209, + "right_line": 2210 + }, + { + "left_line": 2210, + "right_line": 2211 + }, + { + "left_line": 2211, + "right_line": 2212 + }, + { + "left_line": 2212, + "right_line": 2213 + }, + { + "left_line": 2213, + "right_line": 2214 + }, + { + "left_line": 2214, + "right_line": 2215 + }, + { + "left_line": 2215, + "right_line": 2216 + }, + { + "left_line": 2216, + "right_line": 2217 + }, + { + "left_line": 2217, + "right_line": 2218 + }, + { + "left_line": 2218, + "right_line": 2219 + }, + { + "left_line": 2219, + "right_line": 2220 + }, + { + "left_line": 2220, + "right_line": 2221 + }, + { + "left_line": 2221, + "right_line": 2222 + }, + { + "left_line": 2222, + "right_line": 2223 + }, + { + "left_line": 2223, + "right_line": 2224 + }, + { + "left_line": 2224, + "right_line": 2225 + }, + { + "left_line": 2225, + "right_line": 2226 + }, + { + "left_line": 2226, + "right_line": 2227 + }, + { + "left_line": 2227, + "right_line": 2228 + }, + { + "left_line": 2228, + "right_line": 2229 + }, + { + "left_line": 2229, + "right_line": 2230 + }, + { + "left_line": 2230, + "right_line": 2231 + }, + { + "left_line": 2231, + "right_line": 2232 + }, + { + "left_line": 2232, + "right_line": 2233 + }, + { + "left_line": 2233, + "right_line": 2234 + }, + { + "left_line": 2234, + "right_line": 2235 + }, + { + "left_line": 2235, + "right_line": 2236 + }, + { + "left_line": 2236, + "right_line": 2237 + }, + { + "left_line": 2237, + "right_line": 2238 + }, + { + "left_line": 2238, + "right_line": 2239 + }, + { + "left_line": 2239, + "right_line": 2240 + }, + { + "left_line": 2240, + "right_line": 2241 + }, + { + "left_line": 2241, + "right_line": 2242 + }, + { + "left_line": 2242, + "right_line": 2243 + }, + { + "left_line": 2243, + "right_line": 2244 + }, + { + "left_line": 2244, + "right_line": 2245 + }, + { + "left_line": 2245, + "right_line": 2246 + }, + { + "left_line": 2246, + "right_line": 2247 + }, + { + "left_line": 2247, + "right_line": 2248 + }, + { + "left_line": 2248, + "right_line": 2249 + }, + { + "left_line": 2249, + "right_line": 2250 + }, + { + "left_line": 2250, + "right_line": 2251 + }, + { + "left_line": 2251, + "right_line": 2252 + }, + { + "left_line": 2252, + "right_line": 2253 + }, + { + "left_line": 2253, + "right_line": 2254 + }, + { + "left_line": 2254, + "right_line": 2255 + }, + { + "left_line": 2255, + "right_line": 2256 + }, + { + "left_line": 2256, + "right_line": 2257 + }, + { + "left_line": 2257, + "right_line": 2258 + }, + { + "left_line": 2258, + "right_line": 2259 + }, + { + "left_line": 2259, + "right_line": 2260 + }, + { + "left_line": 2260, + "right_line": 2261 + }, + { + "left_line": 2261, + "right_line": 2262 + }, + { + "left_line": 2262, + "right_line": 2263 + }, + { + "left_line": 2263, + "right_line": 2264 + }, + { + "left_line": 2264, + "right_line": 2265 + }, + { + "left_line": 2265, + "right_line": 2266 + }, + { + "left_line": 2266, + "right_line": 2267 + }, + { + "left_line": 2267, + "right_line": 2268 + }, + { + "left_line": 2268, + "right_line": 2269 + }, + { + "left_line": 2269, + "right_line": 2270 + }, + { + "left_line": 2270, + "right_line": 2271 + }, + { + "left_line": 2271, + "right_line": 2272 + }, + { + "left_line": 2272, + "right_line": 2273 + }, + { + "left_line": 2273, + "right_line": 2274 + }, + { + "left_line": 2274, + "right_line": 2275 + }, + { + "left_line": 2275, + "right_line": 2276 + }, + { + "left_line": 2276, + "right_line": 2277 + }, + { + "left_line": 2277, + "right_line": 2278 + }, + { + "left_line": 2278, + "right_line": 2279 + }, + { + "left_line": 2279, + "right_line": 2280 + }, + { + "left_line": 2280, + "right_line": 2281 + }, + { + "left_line": 2281, + "right_line": 2282 + }, + { + "left_line": 2282, + "right_line": 2283 + }, + { + "left_line": 2283, + "right_line": 2284 + }, + { + "left_line": 2284, + "right_line": 2285 + }, + { + "left_line": 2285, + "right_line": 2286 + }, + { + "left_line": 2286, + "right_line": 2287 + }, + { + "left_line": 2287, + "right_line": 2288 + }, + { + "left_line": 2288, + "right_line": 2289 + }, + { + "left_line": 2289, + "right_line": 2290 + }, + { + "left_line": 2290, + "right_line": 2291 + }, + { + "left_line": 2291, + "right_line": 2292 + }, + { + "left_line": 2292, + "right_line": 2293 + }, + { + "left_line": 2293, + "right_line": 2294 + }, + { + "left_line": 2294, + "right_line": 2295 + }, + { + "left_line": 2295, + "right_line": 2296 + }, + { + "left_line": 2296, + "right_line": 2297 + }, + { + "left_line": 2297, + "right_line": 2298 + }, + { + "left_line": 2298, + "right_line": 2299 + }, + { + "left_line": 2299, + "right_line": 2300 + }, + { + "left_line": 2300, + "right_line": 2301 + }, + { + "left_line": 2301, + "right_line": 2302 + }, + { + "left_line": 2302, + "right_line": 2303 + }, + { + "left_line": 2303, + "right_line": 2304 + }, + { + "left_line": 2304, + "right_line": 2305 + }, + { + "left_line": 2305, + "right_line": 2306 + }, + { + "left_line": 2306, + "right_line": 2307 + }, + { + "left_line": 2307, + "right_line": 2308 + }, + { + "left_line": 2308, + "right_line": 2309 + }, + { + "left_line": 2309, + "right_line": 2310 + }, + { + "left_line": 2310, + "right_line": 2311 + }, + { + "left_line": 2311, + "right_line": 2312 + }, + { + "left_line": 2312, + "right_line": 2313 + }, + { + "left_line": 2313, + "right_line": 2314 + }, + { + "left_line": 2314, + "right_line": 2315 + }, + { + "left_line": 2315, + "right_line": 2316 + }, + { + "left_line": 2316, + "right_line": 2317 + }, + { + "left_line": 2317, + "right_line": 2318 + }, + { + "left_line": 2318, + "right_line": 2319 + }, + { + "left_line": 2319, + "right_line": 2320 + }, + { + "left_line": 2320, + "right_line": 2321 + }, + { + "left_line": 2321, + "right_line": 2322 + }, + { + "left_line": 2322, + "right_line": 2323 + }, + { + "left_line": 2323, + "right_line": 2324 + }, + { + "left_line": 2324, + "right_line": 2325 + }, + { + "left_line": 2325, + "right_line": 2326 + }, + { + "left_line": 2326, + "right_line": 2327 + }, + { + "left_line": 2327, + "right_line": 2328 + }, + { + "left_line": 2328, + "right_line": 2329 + }, + { + "left_line": 2329, + "right_line": 2330 + }, + { + "left_line": 2330, + "right_line": 2331 + }, + { + "left_line": 2331, + "right_line": 2332 + }, + { + "left_line": 2332, + "right_line": 2333 + }, + { + "left_line": 2333, + "right_line": 2334 + }, + { + "left_line": 2334, + "right_line": 2335 + }, + { + "left_line": 2335, + "right_line": 2336 + }, + { + "left_line": 2336, + "right_line": 2337 + }, + { + "left_line": 2337, + "right_line": 2338 + }, + { + "left_line": 2338, + "right_line": 2339 + }, + { + "left_line": 2339, + "right_line": 2340 + }, + { + "left_line": 2340, + "right_line": 2341 + }, + { + "left_line": 2341, + "right_line": 2342 + }, + { + "left_line": 2342, + "right_line": 2343 + }, + { + "left_line": 2343, + "right_line": 2344 + }, + { + "left_line": 2344, + "right_line": 2345 + }, + { + "left_line": 2345, + "right_line": 2346 + }, + { + "left_line": 2346, + "right_line": 2347 + }, + { + "left_line": 2347, + "right_line": 2348 + }, + { + "left_line": 2348, + "right_line": 2349 + }, + { + "left_line": 2349, + "right_line": 2350 + }, + { + "left_line": 2350, + "right_line": 2351 + }, + { + "left_line": 2351, + "right_line": 2352 + }, + { + "left_line": 2352, + "right_line": 2353 + }, + { + "left_line": 2353, + "right_line": 2354 + }, + { + "left_line": 2354, + "right_line": 2355 + }, + { + "left_line": 2355, + "right_line": 2356 + }, + { + "left_line": 2356, + "right_line": 2357 + }, + { + "left_line": 2357, + "right_line": 2358 + }, + { + "left_line": 2358, + "right_line": 2359 + }, + { + "left_line": 2359, + "right_line": 2360 + }, + { + "left_line": 2360, + "right_line": 2361 + }, + { + "left_line": 2361, + "right_line": 2362 + }, + { + "left_line": 2362, + "right_line": 2363 + }, + { + "left_line": 2363, + "right_line": 2364 + }, + { + "left_line": 2364, + "right_line": 2365 + }, + { + "left_line": 2365, + "right_line": 2366 + }, + { + "left_line": 2366, + "right_line": 2367 + }, + { + "left_line": 2367, + "right_line": 2368 + }, + { + "left_line": 2368, + "right_line": 2369 + }, + { + "left_line": 2369, + "right_line": 2370 + }, + { + "left_line": 2370, + "right_line": 2371 + }, + { + "left_line": 2371, + "right_line": 2372 + }, + { + "left_line": 2372, + "right_line": 2373 + }, + { + "left_line": 2373, + "right_line": 2374 + }, + { + "left_line": 2374, + "right_line": 2375 + }, + { + "left_line": 2375, + "right_line": 2376 + }, + { + "left_line": 2376, + "right_line": 2377 + }, + { + "left_line": 2377, + "right_line": 2378 + }, + { + "left_line": 2378, + "right_line": 2379 + }, + { + "left_line": 2379, + "right_line": 2380 + }, + { + "left_line": 2380, + "right_line": 2381 + }, + { + "left_line": 2381, + "right_line": 2382 + }, + { + "left_line": 2382, + "right_line": 2383 + }, + { + "left_line": 2383, + "right_line": 2384 + }, + { + "left_line": 2384, + "right_line": 2385 + }, + { + "left_line": 2385, + "right_line": 2386 + }, + { + "left_line": 2386, + "right_line": 2387 + }, + { + "left_line": 2387, + "right_line": 2388 + }, + { + "left_line": 2388, + "right_line": 2389 + }, + { + "left_line": 2389, + "right_line": 2390 + }, + { + "left_line": 2390, + "right_line": 2391 + }, + { + "left_line": 2391, + "right_line": 2392 + }, + { + "left_line": 2392, + "right_line": 2393 + }, + { + "left_line": 2393, + "right_line": 2394 + }, + { + "left_line": 2394, + "right_line": 2395 + }, + { + "left_line": 2395, + "right_line": 2396 + }, + { + "left_line": 2396, + "right_line": 2397 + }, + { + "left_line": 2397, + "right_line": 2398 + }, + { + "left_line": 2398, + "right_line": 2399 + }, + { + "left_line": 2399, + "right_line": 2400 + }, + { + "left_line": 2400, + "right_line": 2401 + }, + { + "left_line": 2401, + "right_line": 2402 + }, + { + "left_line": 2402, + "right_line": 2403 + }, + { + "left_line": 2403, + "right_line": 2404 + }, + { + "left_line": 2404, + "right_line": 2405 + }, + { + "left_line": 2405, + "right_line": 2406 + }, + { + "left_line": 2406, + "right_line": 2407 + }, + { + "left_line": 2407, + "right_line": 2408 + }, + { + "left_line": 2408, + "right_line": 2409 + }, + { + "left_line": 2409, + "right_line": 2410 + }, + { + "left_line": 2410, + "right_line": 2411 + }, + { + "left_line": 2411, + "right_line": 2412 + }, + { + "left_line": 2412, + "right_line": 2413 + }, + { + "left_line": 2413, + "right_line": 2414 + }, + { + "left_line": 2414, + "right_line": 2415 + }, + { + "left_line": 2415, + "right_line": 2416 + }, + { + "left_line": 2416, + "right_line": 2417 + }, + { + "left_line": 2417, + "right_line": 2418 + }, + { + "left_line": 2418, + "right_line": 2419 + }, + { + "left_line": 2419, + "right_line": 2420 + }, + { + "left_line": 2420, + "right_line": 2421 + }, + { + "left_line": 2421, + "right_line": 2422 + }, + { + "left_line": 2422, + "right_line": 2423 + }, + { + "left_line": 2423, + "right_line": 2424 + }, + { + "left_line": 2424, + "right_line": 2425 + }, + { + "left_line": 2425, + "right_line": 2426 + }, + { + "left_line": 2426, + "right_line": 2427 + }, + { + "left_line": 2427, + "right_line": 2428 + }, + { + "left_line": 2428, + "right_line": 2429 + }, + { + "left_line": 2429, + "right_line": 2430 + }, + { + "left_line": 2430, + "right_line": 2431 + }, + { + "left_line": 2431, + "right_line": 2432 + }, + { + "left_line": 2432, + "right_line": 2433 + }, + { + "left_line": 2433, + "right_line": 2434 + }, + { + "left_line": 2434, + "right_line": 2435 + }, + { + "left_line": 2435, + "right_line": 2436 + }, + { + "left_line": 2436, + "right_line": 2437 + }, + { + "left_line": 2437, + "right_line": 2438 + }, + { + "left_line": 2438, + "right_line": 2439 + }, + { + "left_line": 2439, + "right_line": 2440 + }, + { + "left_line": 2440, + "right_line": 2441 + }, + { + "left_line": 2441, + "right_line": 2442 + }, + { + "left_line": 2442, + "right_line": 2443 + }, + { + "left_line": 2443, + "right_line": 2444 + }, + { + "left_line": 2444, + "right_line": 2445 + }, + { + "left_line": 2445, + "right_line": 2446 + }, + { + "left_line": 2446, + "right_line": 2447 + }, + { + "left_line": 2447, + "right_line": 2448 + }, + { + "left_line": 2448, + "right_line": 2449 + }, + { + "left_line": 2449, + "right_line": 2450 + }, + { + "left_line": 2450, + "right_line": 2451 + }, + { + "left_line": 2451, + "right_line": 2452 + }, + { + "left_line": 2452, + "right_line": 2453 + }, + { + "left_line": 2453, + "right_line": 2454 + }, + { + "left_line": 2454, + "right_line": 2455 + }, + { + "left_line": 2455, + "right_line": 2456 + }, + { + "left_line": 2456, + "right_line": 2457 + }, + { + "left_line": 2457, + "right_line": 2458 + }, + { + "left_line": 2458, + "right_line": 2459 + }, + { + "left_line": 2459, + "right_line": 2460 + }, + { + "left_line": 2460, + "right_line": 2461 + }, + { + "left_line": 2461, + "right_line": 2462 + }, + { + "left_line": 2462, + "right_line": 2463 + }, + { + "left_line": 2463, + "right_line": 2464 + }, + { + "left_line": 2464, + "right_line": 2465 + }, + { + "left_line": 2465, + "right_line": 2466 + }, + { + "left_line": 2466, + "right_line": 2467 + }, + { + "left_line": 2467, + "right_line": 2468 + }, + { + "left_line": 2468, + "right_line": 2469 + }, + { + "left_line": 2469, + "right_line": 2470 + }, + { + "left_line": 2470, + "right_line": 2471 + }, + { + "left_line": 2471, + "right_line": 2472 + }, + { + "left_line": 2472, + "right_line": 2473 + }, + { + "left_line": 2473, + "right_line": 2474 + }, + { + "left_line": 2474, + "right_line": 2475 + }, + { + "left_line": 2475, + "right_line": 2476 + }, + { + "left_line": 2476, + "right_line": 2477 + }, + { + "left_line": 2477, + "right_line": 2478 + }, + { + "left_line": 2478, + "right_line": 2479 + }, + { + "left_line": 2479, + "right_line": 2480 + }, + { + "left_line": 2480, + "right_line": 2481 + }, + { + "left_line": 2481, + "right_line": 2482 + }, + { + "left_line": 2482, + "right_line": 2483 + }, + { + "left_line": 2483, + "right_line": 2484 + }, + { + "left_line": 2484, + "right_line": 2485 + }, + { + "left_line": 2485, + "right_line": 2486 + }, + { + "left_line": 2486, + "right_line": 2487 + }, + { + "left_line": 2487, + "right_line": 2488 + }, + { + "left_line": 2488, + "right_line": 2489 + }, + { + "left_line": 2489, + "right_line": 2490 + }, + { + "left_line": 2490, + "right_line": 2491 + }, + { + "left_line": 2491, + "right_line": 2492 + }, + { + "left_line": 2492, + "right_line": 2493 + }, + { + "left_line": 2493, + "right_line": 2494 + }, + { + "left_line": 2494, + "right_line": 2495 + }, + { + "left_line": 2495, + "right_line": 2496 + }, + { + "left_line": 2496, + "right_line": 2497 + }, + { + "left_line": 2497, + "right_line": 2498 + }, + { + "left_line": 2498, + "right_line": 2499 + }, + { + "left_line": 2499, + "right_line": 2500 + }, + { + "left_line": 2500, + "right_line": 2501 + }, + { + "left_line": 2501, + "right_line": 2502 + }, + { + "left_line": 2502, + "right_line": 2503 + }, + { + "left_line": 2503, + "right_line": 2504 + }, + { + "left_line": 2504, + "right_line": 2505 + }, + { + "left_line": 2505, + "right_line": 2506 + }, + { + "left_line": 2506, + "right_line": 2507 + }, + { + "left_line": 2507, + "right_line": 2508 + }, + { + "left_line": 2508, + "right_line": 2509 + }, + { + "left_line": 2509, + "right_line": 2510 + }, + { + "left_line": 2510, + "right_line": 2511 + }, + { + "left_line": 2511, + "right_line": 2512 + }, + { + "left_line": 2512, + "right_line": 2513 + }, + { + "left_line": 2513, + "right_line": 2514 + }, + { + "left_line": 2514, + "right_line": 2515 + }, + { + "left_line": 2515, + "right_line": 2516 + }, + { + "left_line": 2516, + "right_line": 2517 + }, + { + "left_line": 2517, + "right_line": 2518 + }, + { + "left_line": 2518, + "right_line": 2519 + }, + { + "left_line": 2519, + "right_line": 2520 + }, + { + "left_line": 2520, + "right_line": 2521 + }, + { + "left_line": 2521, + "right_line": 2522 + }, + { + "left_line": 2522, + "right_line": 2523 + }, + { + "left_line": 2523, + "right_line": 2524 + }, + { + "left_line": 2524, + "right_line": 2525 + }, + { + "left_line": 2525, + "right_line": 2526 + }, + { + "left_line": 2526, + "right_line": 2527 + }, + { + "left_line": 2527, + "right_line": 2528 + }, + { + "left_line": 2528, + "right_line": 2529 + }, + { + "left_line": 2529, + "right_line": 2530 + }, + { + "left_line": 2530, + "right_line": 2531 + }, + { + "left_line": 2531, + "right_line": 2532 + }, + { + "left_line": 2532, + "right_line": 2533 + }, + { + "left_line": 2533, + "right_line": 2534 + }, + { + "left_line": 2534, + "right_line": 2535 + }, + { + "left_line": 2535, + "right_line": 2536 + }, + { + "left_line": 2536, + "right_line": 2537 + }, + { + "left_line": 2537, + "right_line": 2538 + }, + { + "left_line": 2538, + "right_line": 2539 + }, + { + "left_line": 2539, + "right_line": 2540 + }, + { + "left_line": 2540, + "right_line": 2541 + }, + { + "left_line": 2541, + "right_line": 2542 + }, + { + "left_line": 2542, + "right_line": 2543 + }, + { + "left_line": 2543, + "right_line": 2544 + }, + { + "left_line": 2544, + "right_line": 2545 + }, + { + "left_line": 2545, + "right_line": 2546 + }, + { + "left_line": 2546, + "right_line": 2547 + }, + { + "left_line": 2547, + "right_line": 2548 + }, + { + "left_line": 2548, + "right_line": 2549 + }, + { + "left_line": 2549, + "right_line": 2550 + }, + { + "left_line": 2550, + "right_line": 2551 + }, + { + "left_line": 2551, + "right_line": 2552 + }, + { + "left_line": 2552, + "right_line": 2553 + }, + { + "left_line": 2553, + "right_line": 2554 + }, + { + "left_line": 2554, + "right_line": 2555 + }, + { + "left_line": 2555, + "right_line": 2556 + }, + { + "left_line": 2556, + "right_line": 2557 + }, + { + "left_line": 2557, + "right_line": 2558 + }, + { + "left_line": 2558, + "right_line": 2559 + }, + { + "left_line": 2559, + "right_line": 2560 + }, + { + "left_line": 2560, + "right_line": 2561 + }, + { + "left_line": 2561, + "right_line": 2562 + }, + { + "left_line": 2562, + "right_line": 2563 + }, + { + "left_line": 2563, + "right_line": 2564 + }, + { + "left_line": 2564, + "right_line": 2565 + }, + { + "left_line": 2565, + "right_line": 2566 + }, + { + "left_line": 2566, + "right_line": 2567 + }, + { + "left_line": 2567, + "right_line": 2568 + }, + { + "left_line": 2568, + "right_line": 2569 + }, + { + "left_line": 2569, + "right_line": 2570 + }, + { + "left_line": 2570, + "right_line": 2571 + }, + { + "left_line": 2571, + "right_line": 2572 + }, + { + "left_line": 2572, + "right_line": 2573 + }, + { + "left_line": 2573, + "right_line": 2574 + }, + { + "left_line": 2574, + "right_line": 2575 + }, + { + "left_line": 2575, + "right_line": 2576 + }, + { + "left_line": 2576, + "right_line": 2577 + }, + { + "left_line": 2577, + "right_line": 2578 + }, + { + "left_line": 2578, + "right_line": 2579 + }, + { + "left_line": 2579, + "right_line": 2580 + }, + { + "left_line": 2580, + "right_line": 2581 + }, + { + "left_line": 2581, + "right_line": 2582 + }, + { + "left_line": 2582, + "right_line": 2583 + }, + { + "left_line": 2583, + "right_line": 2584 + }, + { + "left_line": 2584, + "right_line": 2585 + }, + { + "left_line": 2585, + "right_line": 2586 + }, + { + "left_line": 2586, + "right_line": 2587 + }, + { + "left_line": 2587, + "right_line": 2588 + }, + { + "left_line": 2588, + "right_line": 2589 + }, + { + "left_line": 2589, + "right_line": 2590 + }, + { + "left_line": 2590, + "right_line": 2591 + }, + { + "left_line": 2591, + "right_line": 2592 + }, + { + "left_line": 2592, + "right_line": 2593 + }, + { + "left_line": 2593, + "right_line": 2594 + }, + { + "left_line": 2594, + "right_line": 2595 + }, + { + "left_line": 2595, + "right_line": 2596 + }, + { + "left_line": 2596, + "right_line": 2597 + }, + { + "left_line": 2597, + "right_line": 2598 + }, + { + "left_line": 2598, + "right_line": 2599 + }, + { + "left_line": 2599, + "right_line": 2600 + }, + { + "left_line": 2600, + "right_line": 2601 + }, + { + "left_line": 2601, + "right_line": 2602 + }, + { + "left_line": 2602, + "right_line": 2603 + }, + { + "left_line": 2603, + "right_line": 2604 + }, + { + "left_line": 2604, + "right_line": 2605 + }, + { + "left_line": 2605, + "right_line": 2606 + }, + { + "left_line": 2606, + "right_line": 2607 + }, + { + "left_line": 2607, + "right_line": 2608 + }, + { + "left_line": 2608, + "right_line": 2609 + }, + { + "left_line": 2609, + "right_line": 2610 + }, + { + "left_line": 2610, + "right_line": 2611 + }, + { + "left_line": 2611, + "right_line": 2612 + }, + { + "left_line": 2612, + "right_line": 2613 + }, + { + "left_line": 2613, + "right_line": 2614 + }, + { + "left_line": 2614, + "right_line": 2615 + }, + { + "left_line": 2615, + "right_line": 2616 + }, + { + "left_line": 2616, + "right_line": 2617 + }, + { + "left_line": 2617, + "right_line": 2618 + }, + { + "left_line": 2618, + "right_line": 2619 + }, + { + "left_line": 2619, + "right_line": 2620 + }, + { + "left_line": 2620, + "right_line": 2621 + }, + { + "left_line": 2621, + "right_line": 2622 + }, + { + "left_line": 2622, + "right_line": 2623 + }, + { + "left_line": 2623, + "right_line": 2624 + }, + { + "left_line": 2624, + "right_line": 2625 + }, + { + "left_line": 2625, + "right_line": 2626 + }, + { + "left_line": 2626, + "right_line": 2627 + }, + { + "left_line": 2627, + "right_line": 2628 + }, + { + "left_line": 2628, + "right_line": 2629 + }, + { + "left_line": 2629, + "right_line": 2630 + }, + { + "left_line": 2630, + "right_line": 2631 + }, + { + "left_line": 2631, + "right_line": 2632 + }, + { + "left_line": 2632, + "right_line": 2633 + }, + { + "left_line": 2633, + "right_line": 2634 + }, + { + "left_line": 2634, + "right_line": 2635 + }, + { + "left_line": 2635, + "right_line": 2636 + }, + { + "left_line": 2636, + "right_line": 2637 + }, + { + "left_line": 2637, + "right_line": 2638 + }, + { + "left_line": 2638, + "right_line": 2639 + }, + { + "left_line": 2639, + "right_line": 2640 + }, + { + "left_line": 2640, + "right_line": 2641 + }, + { + "left_line": 2641, + "right_line": 2642 + }, + { + "left_line": 2642, + "right_line": 2643 + }, + { + "left_line": 2643, + "right_line": 2644 + }, + { + "left_line": 2644, + "right_line": 2645 + }, + { + "left_line": 2645, + "right_line": 2646 + }, + { + "left_line": 2646, + "right_line": 2647 + }, + { + "left_line": 2647, + "right_line": 2648 + }, + { + "left_line": 2648, + "right_line": 2649 + }, + { + "left_line": 2649, + "right_line": 2650 + }, + { + "left_line": 2650, + "right_line": 2651 + }, + { + "left_line": 2651, + "right_line": 2652 + }, + { + "left_line": 2652, + "right_line": 2653 + }, + { + "left_line": 2653, + "right_line": 2654 + }, + { + "left_line": 2654, + "right_line": 2655 + }, + { + "left_line": 2655, + "right_line": 2656 + }, + { + "left_line": 2656, + "right_line": 2657 + }, + { + "left_line": 2657, + "right_line": 2658 + }, + { + "left_line": 2658, + "right_line": 2659 + }, + { + "left_line": 2659, + "right_line": 2660 + }, + { + "left_line": 2660, + "right_line": 2661 + }, + { + "left_line": 2661, + "right_line": 2662 + }, + { + "left_line": 2662, + "right_line": 2663 + }, + { + "left_line": 2663, + "right_line": 2664 + }, + { + "left_line": 2664, + "right_line": 2665 + }, + { + "left_line": 2665, + "right_line": 2666 + }, + { + "left_line": 2666, + "right_line": 2667 + }, + { + "left_line": 2667, + "right_line": 2668 + }, + { + "left_line": 2668, + "right_line": 2669 + }, + { + "left_line": 2669, + "right_line": 2670 + }, + { + "left_line": 2670, + "right_line": 2671 + }, + { + "left_line": 2671, + "right_line": 2672 + }, + { + "left_line": 2672, + "right_line": 2673 + }, + { + "left_line": 2673, + "right_line": 2674 + }, + { + "left_line": 2674, + "right_line": 2675 + }, + { + "left_line": 2675, + "right_line": 2676 + }, + { + "left_line": 2676, + "right_line": 2677 + }, + { + "left_line": 2677, + "right_line": 2678 + }, + { + "left_line": 2678, + "right_line": 2679 + }, + { + "left_line": 2679, + "right_line": 2680 + }, + { + "left_line": 2680, + "right_line": 2681 + }, + { + "left_line": 2681, + "right_line": 2682 + }, + { + "left_line": 2682, + "right_line": 2683 + }, + { + "left_line": 2683, + "right_line": 2684 + }, + { + "left_line": 2684, + "right_line": 2685 + }, + { + "left_line": 2685, + "right_line": 2686 + }, + { + "left_line": 2686, + "right_line": 2687 + }, + { + "left_line": 2687, + "right_line": 2688 + }, + { + "left_line": 2688, + "right_line": 2689 + }, + { + "left_line": 2689, + "right_line": 2690 + }, + { + "left_line": 2690, + "right_line": 2691 + }, + { + "left_line": 2691, + "right_line": 2692 + }, + { + "left_line": 2692, + "right_line": 2693 + }, + { + "left_line": 2693, + "right_line": 2694 + }, + { + "left_line": 2694, + "right_line": 2695 + }, + { + "left_line": 2695, + "right_line": 2696 + }, + { + "left_line": 2696, + "right_line": 2697 + }, + { + "left_line": 2697, + "right_line": 2698 + }, + { + "left_line": 2698, + "right_line": 2699 + }, + { + "left_line": 2699, + "right_line": 2700 + }, + { + "left_line": 2700, + "right_line": 2701 + }, + { + "left_line": 2701, + "right_line": 2702 + }, + { + "left_line": 2702, + "right_line": 2703 + }, + { + "left_line": 2703, + "right_line": 2704 + }, + { + "left_line": 2704, + "right_line": 2705 + }, + { + "left_line": 2705, + "right_line": 2706 + }, + { + "left_line": 2706, + "right_line": 2707 + }, + { + "left_line": 2707, + "right_line": 2708 + }, + { + "left_line": 2708, + "right_line": 2709 + }, + { + "left_line": 2709, + "right_line": 2710 + }, + { + "left_line": 2710, + "right_line": 2711 + }, + { + "left_line": 2711, + "right_line": 2712 + }, + { + "left_line": 2712, + "right_line": 2713 + }, + { + "left_line": 2713, + "right_line": 2714 + }, + { + "left_line": 2714, + "right_line": 2715 + }, + { + "left_line": 2715, + "right_line": 2716 + }, + { + "left_line": 2716, + "right_line": 2717 + }, + { + "left_line": 2717, + "right_line": 2718 + }, + { + "left_line": 2718, + "right_line": 2719 + }, + { + "left_line": 2719, + "right_line": 2720 + }, + { + "left_line": 2720, + "right_line": 2721 + }, + { + "left_line": 2721, + "right_line": 2722 + }, + { + "left_line": 2722, + "right_line": 2723 + }, + { + "left_line": 2723, + "right_line": 2724 + }, + { + "left_line": 2724, + "right_line": 2725 + }, + { + "left_line": 2725, + "right_line": 2726 + }, + { + "left_line": 2726, + "right_line": 2727 + }, + { + "left_line": 2727, + "right_line": 2728 + }, + { + "left_line": 2728, + "right_line": 2729 + }, + { + "left_line": 2729, + "right_line": 2730 + }, + { + "left_line": 2730, + "right_line": 2731 + }, + { + "left_line": 2731, + "right_line": 2732 + }, + { + "left_line": 2732, + "right_line": 2733 + }, + { + "left_line": 2733, + "right_line": 2734 + }, + { + "left_line": 2734, + "right_line": 2735 + }, + { + "left_line": 2735, + "right_line": 2736 + }, + { + "left_line": 2736, + "right_line": 2737 + }, + { + "left_line": 2737, + "right_line": 2738 + }, + { + "left_line": 2738, + "right_line": 2739 + }, + { + "left_line": 2739, + "right_line": 2740 + }, + { + "left_line": 2740, + "right_line": 2741 + }, + { + "left_line": 2741, + "right_line": 2742 + }, + { + "left_line": 2742, + "right_line": 2743 + }, + { + "left_line": 2743, + "right_line": 2744 + }, + { + "left_line": 2744, + "right_line": 2745 + }, + { + "left_line": 2745, + "right_line": 2746 + }, + { + "left_line": 2746, + "right_line": 2747 + }, + { + "left_line": 2747, + "right_line": 2748 + }, + { + "left_line": 2748, + "right_line": 2749 + }, + { + "left_line": 2749, + "right_line": 2750 + }, + { + "left_line": 2750, + "right_line": 2751 + }, + { + "left_line": 2751, + "right_line": 2752 + }, + { + "left_line": 2752, + "right_line": 2753 + }, + { + "left_line": 2753, + "right_line": 2754 + }, + { + "left_line": 2754, + "right_line": 2755 + }, + { + "left_line": 2755, + "right_line": 2756 + }, + { + "left_line": 2756, + "right_line": 2757 + }, + { + "left_line": 2757, + "right_line": 2758 + }, + { + "left_line": 2758, + "right_line": 2759 + }, + { + "left_line": 2759, + "right_line": 2760 + }, + { + "left_line": 2760, + "right_line": 2761 + }, + { + "left_line": 2761, + "right_line": 2762 + }, + { + "left_line": 2762, + "right_line": 2763 + }, + { + "left_line": 2763, + "right_line": 2764 + }, + { + "left_line": 2764, + "right_line": 2765 + }, + { + "left_line": 2765, + "right_line": 2766 + }, + { + "left_line": 2766, + "right_line": 2767 + }, + { + "left_line": 2767, + "right_line": 2768 + }, + { + "left_line": 2768, + "right_line": 2769 + }, + { + "left_line": 2769, + "right_line": 2770 + }, + { + "left_line": 2770, + "right_line": 2771 + }, + { + "left_line": 2771, + "right_line": 2772 + }, + { + "left_line": 2772, + "right_line": 2773 + }, + { + "left_line": 2773, + "right_line": 2774 + }, + { + "left_line": 2774, + "right_line": 2775 + }, + { + "left_line": 2775, + "right_line": 2776 + }, + { + "left_line": 2776, + "right_line": 2777 + }, + { + "left_line": 2777, + "right_line": 2778 + }, + { + "left_line": 2778, + "right_line": 2779 + }, + { + "left_line": 2779, + "right_line": 2780 + }, + { + "left_line": 2780, + "right_line": 2781 + }, + { + "left_line": 2781, + "right_line": 2782 + }, + { + "left_line": 2782, + "right_line": 2783 + }, + { + "left_line": 2783, + "right_line": 2784 + }, + { + "left_line": 2784, + "right_line": 2785 + }, + { + "left_line": 2785, + "right_line": 2786 + }, + { + "left_line": 2786, + "right_line": 2787 + }, + { + "left_line": 2787, + "right_line": 2788 + }, + { + "left_line": 2788, + "right_line": 2789 + }, + { + "left_line": 2789, + "right_line": 2790 + }, + { + "left_line": 2790, + "right_line": 2791 + }, + { + "left_line": 2791, + "right_line": 2792 + }, + { + "left_line": 2792, + "right_line": 2793 + }, + { + "left_line": 2793, + "right_line": 2794 + }, + { + "left_line": 2794, + "right_line": 2795 + }, + { + "left_line": 2795, + "right_line": 2796 + }, + { + "left_line": 2796, + "right_line": 2797 + }, + { + "left_line": 2797, + "right_line": 2798 + }, + { + "left_line": 2798, + "right_line": 2799 + }, + { + "left_line": 2799, + "right_line": 2800 + }, + { + "left_line": 2800, + "right_line": 2801 + }, + { + "left_line": 2801, + "right_line": 2802 + }, + { + "left_line": 2802, + "right_line": 2803 + }, + { + "left_line": 2803, + "right_line": 2804 + }, + { + "left_line": 2804, + "right_line": 2805 + }, + { + "left_line": 2805, + "right_line": 2806 + }, + { + "left_line": 2806, + "right_line": 2807 + }, + { + "left_line": 2807, + "right_line": 2808 + }, + { + "left_line": 2808, + "right_line": 2809 + }, + { + "left_line": 2809, + "right_line": 2810 + }, + { + "left_line": 2810, + "right_line": 2811 + }, + { + "left_line": 2811, + "right_line": 2812 + }, + { + "left_line": 2812, + "right_line": 2813 + }, + { + "left_line": 2813, + "right_line": 2814 + }, + { + "left_line": 2814, + "right_line": 2815 + }, + { + "left_line": 2815, + "right_line": 2816 + }, + { + "left_line": 2816, + "right_line": 2817 + }, + { + "left_line": 2817, + "right_line": 2818 + }, + { + "left_line": 2818, + "right_line": 2819 + }, + { + "left_line": 2819, + "right_line": 2820 + }, + { + "left_line": 2820, + "right_line": 2821 + }, + { + "left_line": 2821, + "right_line": 2822 + }, + { + "left_line": 2822, + "right_line": 2823 + }, + { + "left_line": 2823, + "right_line": 2824 + }, + { + "left_line": 2824, + "right_line": 2825 + }, + { + "left_line": 2825, + "right_line": 2826 + }, + { + "left_line": 2826, + "right_line": 2827 + }, + { + "left_line": 2827, + "right_line": 2828 + }, + { + "left_line": 2828, + "right_line": 2829 + }, + { + "left_line": 2829, + "right_line": 2830 + }, + { + "left_line": 2830, + "right_line": 2831 + }, + { + "left_line": 2831, + "right_line": 2832 + }, + { + "left_line": 2832, + "right_line": 2833 + }, + { + "left_line": 2833, + "right_line": 2834 + }, + { + "left_line": 2834, + "right_line": 2835 + }, + { + "left_line": 2835, + "right_line": 2836 + }, + { + "left_line": 2836, + "right_line": 2837 + }, + { + "left_line": 2837, + "right_line": 2838 + }, + { + "left_line": 2838, + "right_line": 2839 + }, + { + "left_line": 2839, + "right_line": 2840 + }, + { + "left_line": 2840, + "right_line": 2841 + }, + { + "left_line": 2841, + "right_line": 2842 + }, + { + "left_line": 2842, + "right_line": 2843 + }, + { + "left_line": 2843, + "right_line": 2844 + }, + { + "left_line": 2844, + "right_line": 2845 + }, + { + "left_line": 2845, + "right_line": 2846 + }, + { + "left_line": 2846, + "right_line": 2847 + }, + { + "left_line": 2847, + "right_line": 2848 + }, + { + "left_line": 2848, + "right_line": 2849 + }, + { + "left_line": 2849, + "right_line": 2850 + }, + { + "left_line": 2850, + "right_line": 2851 + }, + { + "left_line": 2851, + "right_line": 2852 + }, + { + "left_line": 2852, + "right_line": 2853 + }, + { + "left_line": 2853, + "right_line": 2854 + }, + { + "left_line": 2854, + "right_line": 2855 + }, + { + "left_line": 2855, + "right_line": 2856 + }, + { + "left_line": 2856, + "right_line": 2857 + }, + { + "left_line": 2857, + "right_line": 2858 + }, + { + "left_line": 2858, + "right_line": 2859 + }, + { + "left_line": 2859, + "right_line": 2860 + }, + { + "left_line": 2860, + "right_line": 2861 + }, + { + "left_line": 2861, + "right_line": 2862 + }, + { + "left_line": 2862, + "right_line": 2863 + }, + { + "left_line": 2863, + "right_line": 2864 + }, + { + "left_line": 2864, + "right_line": 2865 + }, + { + "left_line": 2865, + "right_line": 2866 + }, + { + "left_line": 2866, + "right_line": 2867 + }, + { + "left_line": 2867, + "right_line": 2868 + }, + { + "left_line": 2868, + "right_line": 2869 + }, + { + "left_line": 2869, + "right_line": 2870 + }, + { + "left_line": 2870, + "right_line": 2871 + }, + { + "left_line": 2871, + "right_line": 2872 + }, + { + "left_line": 2872, + "right_line": 2873 + }, + { + "left_line": 2873, + "right_line": 2874 + }, + { + "left_line": 2874, + "right_line": 2875 + }, + { + "left_line": 2875, + "right_line": 2876 + }, + { + "left_line": 2876, + "right_line": 2877 + }, + { + "left_line": 2877, + "right_line": 2878 + }, + { + "left_line": 2878, + "right_line": 2879 + }, + { + "left_line": 2879, + "right_line": 2880 + }, + { + "left_line": 2880, + "right_line": 2881 + }, + { + "left_line": 2881, + "right_line": 2882 + }, + { + "left_line": 2882, + "right_line": 2883 + }, + { + "left_line": 2883, + "right_line": 2884 + }, + { + "left_line": 2884, + "right_line": 2885 + }, + { + "left_line": 2885, + "right_line": 2886 + }, + { + "left_line": 2886, + "right_line": 2887 + }, + { + "left_line": 2887, + "right_line": 2888 + }, + { + "left_line": 2888, + "right_line": 2889 + }, + { + "left_line": 2889, + "right_line": 2890 + }, + { + "left_line": 2890, + "right_line": 2891 + }, + { + "left_line": 2891, + "right_line": 2892 + }, + { + "left_line": 2892, + "right_line": 2893 + }, + { + "left_line": 2893, + "right_line": 2894 + }, + { + "left_line": 2894, + "right_line": 2895 + }, + { + "left_line": 2895, + "right_line": 2896 + }, + { + "left_line": 2896, + "right_line": 2897 + }, + { + "left_line": 2897, + "right_line": 2898 + }, + { + "left_line": 2898, + "right_line": 2899 + }, + { + "left_line": 2899, + "right_line": 2900 + }, + { + "left_line": 2900, + "right_line": 2901 + }, + { + "left_line": 2901, + "right_line": 2902 + }, + { + "left_line": 2902, + "right_line": 2903 + }, + { + "left_line": 2903, + "right_line": 2904 + }, + { + "left_line": 2904, + "right_line": 2905 + }, + { + "left_line": 2905, + "right_line": 2906 + }, + { + "left_line": 2906, + "right_line": 2907 + }, + { + "left_line": 2907, + "right_line": 2908 + }, + { + "left_line": 2908, + "right_line": 2909 + }, + { + "left_line": 2909, + "right_line": 2910 + }, + { + "left_line": 2910, + "right_line": 2911 + }, + { + "left_line": 2911, + "right_line": 2912 + }, + { + "left_line": 2912, + "right_line": 2913 + }, + { + "left_line": 2913, + "right_line": 2914 + }, + { + "left_line": 2914, + "right_line": 2915 + }, + { + "left_line": 2915, + "right_line": 2916 + }, + { + "left_line": 2916, + "right_line": 2917 + }, + { + "left_line": 2917, + "right_line": 2918 + }, + { + "left_line": 2918, + "right_line": 2919 + }, + { + "left_line": 2919, + "right_line": 2920 + }, + { + "left_line": 2920, + "right_line": 2921 + }, + { + "left_line": 2921, + "right_line": 2922 + }, + { + "left_line": 2922, + "right_line": 2923 + }, + { + "left_line": 2923, + "right_line": 2924 + }, + { + "left_line": 2924, + "right_line": 2925 + }, + { + "left_line": 2925, + "right_line": 2926 + }, + { + "left_line": 2926, + "right_line": 2927 + }, + { + "left_line": 2927, + "right_line": 2928 + }, + { + "left_line": 2928, + "right_line": 2929 + }, + { + "left_line": 2929, + "right_line": 2930 + }, + { + "left_line": 2930, + "right_line": 2931 + }, + { + "left_line": 2931, + "right_line": 2932 + }, + { + "left_line": 2932, + "right_line": 2933 + }, + { + "left_line": 2933, + "right_line": 2934 + }, + { + "left_line": 2934, + "right_line": 2935 + }, + { + "left_line": 2935, + "right_line": 2936 + }, + { + "left_line": 2936, + "right_line": 2937 + }, + { + "left_line": 2937, + "right_line": 2938 + }, + { + "left_line": 2938, + "right_line": 2939 + }, + { + "left_line": 2939, + "right_line": 2940 + }, + { + "left_line": 2940, + "right_line": 2941 + }, + { + "left_line": 2941, + "right_line": 2942 + }, + { + "left_line": 2942, + "right_line": 2943 + }, + { + "left_line": 2943, + "right_line": 2944 + }, + { + "left_line": 2944, + "right_line": 2945 + }, + { + "left_line": 2945, + "right_line": 2946 + }, + { + "left_line": 2946, + "right_line": 2947 + }, + { + "left_line": 2947, + "right_line": 2948 + }, + { + "left_line": 2948, + "right_line": 2949 + }, + { + "left_line": 2949, + "right_line": 2950 + }, + { + "left_line": 2950, + "right_line": 2951 + }, + { + "left_line": 2951, + "right_line": 2952 + }, + { + "left_line": 2952, + "right_line": 2953 + }, + { + "left_line": 2953, + "right_line": 2954 + }, + { + "left_line": 2954, + "right_line": 2955 + }, + { + "left_line": 2955, + "right_line": 2956 + }, + { + "left_line": 2956, + "right_line": 2957 + }, + { + "left_line": 2957, + "right_line": 2958 + }, + { + "left_line": 2958, + "right_line": 2959 + }, + { + "left_line": 2959, + "right_line": 2960 + }, + { + "left_line": 2960, + "right_line": 2961 + }, + { + "left_line": 2961, + "right_line": 2962 + }, + { + "left_line": 2962, + "right_line": 2963 + }, + { + "left_line": 2963, + "right_line": 2964 + }, + { + "left_line": 2964, + "right_line": 2965 + }, + { + "left_line": 2965, + "right_line": 2966 + }, + { + "left_line": 2966, + "right_line": 2967 + }, + { + "left_line": 2967, + "right_line": 2968 + }, + { + "left_line": 2968, + "right_line": 2969 + }, + { + "left_line": 2969, + "right_line": 2970 + }, + { + "left_line": 2970, + "right_line": 2971 + }, + { + "left_line": 2971, + "right_line": 2972 + }, + { + "left_line": 2972, + "right_line": 2973 + }, + { + "left_line": 2973, + "right_line": 2974 + }, + { + "left_line": 2974, + "right_line": 2975 + }, + { + "left_line": 2975, + "right_line": 2976 + }, + { + "left_line": 2976, + "right_line": 2977 + }, + { + "left_line": 2977, + "right_line": 2978 + }, + { + "left_line": 2978, + "right_line": 2979 + }, + { + "left_line": 2979, + "right_line": 2980 + }, + { + "left_line": 2980, + "right_line": 2981 + }, + { + "left_line": 2981, + "right_line": 2982 + }, + { + "left_line": 2982, + "right_line": 2983 + }, + { + "left_line": 2983, + "right_line": 2984 + }, + { + "left_line": 2984, + "right_line": 2985 + }, + { + "left_line": 2985, + "right_line": 2986 + }, + { + "left_line": 2986, + "right_line": 2987 + }, + { + "left_line": 2987, + "right_line": 2988 + }, + { + "left_line": 2988, + "right_line": 2989 + }, + { + "left_line": 2989, + "right_line": 2990 + }, + { + "left_line": 2990, + "right_line": 2991 + }, + { + "left_line": 2991, + "right_line": 2992 + }, + { + "left_line": 2992, + "right_line": 2993 + }, + { + "left_line": 2993, + "right_line": 2994 + }, + { + "left_line": 2994, + "right_line": 2995 + }, + { + "left_line": 2995, + "right_line": 2996 + }, + { + "left_line": 2996, + "right_line": 2997 + }, + { + "left_line": 2997, + "right_line": 2998 + }, + { + "left_line": 2998, + "right_line": 2999 + }, + { + "left_line": 2999, + "right_line": 3000 + }, + { + "left_line": 3000, + "right_line": 3001 + }, + { + "left_line": 3001, + "right_line": 3002 + }, + { + "left_line": 3002, + "right_line": 3003 + }, + { + "left_line": 3003, + "right_line": 3004 + }, + { + "left_line": 3004, + "right_line": 3005 + }, + { + "left_line": 3005, + "right_line": 3006 + }, + { + "left_line": 3006, + "right_line": 3007 + }, + { + "left_line": 3007, + "right_line": 3008 + }, + { + "left_line": 3008, + "right_line": 3009 + }, + { + "left_line": 3009, + "right_line": 3010 + }, + { + "left_line": 3010, + "right_line": 3011 + }, + { + "left_line": 3011, + "right_line": 3012 + }, + { + "left_line": 3012, + "right_line": 3013 + }, + { + "left_line": 3013, + "right_line": 3014 + }, + { + "left_line": 3014, + "right_line": 3015 + }, + { + "left_line": 3015, + "right_line": 3016 + }, + { + "left_line": 3016, + "right_line": 3017 + }, + { + "left_line": 3017, + "right_line": 3018 + }, + { + "left_line": 3018, + "right_line": 3019 + }, + { + "left_line": 3019, + "right_line": 3020 + }, + { + "left_line": 3020, + "right_line": 3021 + }, + { + "left_line": 3021, + "right_line": 3022 + }, + { + "left_line": 3022, + "right_line": 3023 + }, + { + "left_line": 3023, + "right_line": 3024 + }, + { + "left_line": 3024, + "right_line": 3025 + }, + { + "left_line": 3025, + "right_line": 3026 + }, + { + "left_line": 3026, + "right_line": 3027 + }, + { + "left_line": 3027, + "right_line": 3028 + }, + { + "left_line": 3028, + "right_line": 3029 + }, + { + "left_line": 3029, + "right_line": 3030 + }, + { + "left_line": 3030, + "right_line": 3031 + }, + { + "left_line": 3031, + "right_line": 3032 + }, + { + "left_line": 3032, + "right_line": 3033 + }, + { + "left_line": 3033, + "right_line": 3034 + }, + { + "left_line": 3034, + "right_line": 3035 + }, + { + "left_line": 3035, + "right_line": 3036 + }, + { + "left_line": 3036, + "right_line": 3037 + }, + { + "left_line": 3037, + "right_line": 3038 + }, + { + "left_line": 3038, + "right_line": 3039 + }, + { + "left_line": 3039, + "right_line": 3040 + }, + { + "left_line": 3040, + "right_line": 3041 + }, + { + "left_line": 3041, + "right_line": 3042 + }, + { + "left_line": 3042, + "right_line": 3043 + }, + { + "left_line": 3043, + "right_line": 3044 + }, + { + "left_line": 3044, + "right_line": 3045 + }, + { + "left_line": 3045, + "right_line": 3046 + }, + { + "left_line": 3046, + "right_line": 3047 + }, + { + "left_line": 3047, + "right_line": 3048 + }, + { + "left_line": 3048, + "right_line": 3049 + }, + { + "left_line": 3049, + "right_line": 3050 + }, + { + "left_line": 3050, + "right_line": 3051 + }, + { + "left_line": 3051, + "right_line": 3052 + }, + { + "left_line": 3052, + "right_line": 3053 + }, + { + "left_line": 3053, + "right_line": 3054 + }, + { + "left_line": 3054, + "right_line": 3055 + }, + { + "left_line": 3055, + "right_line": 3056 + }, + { + "left_line": 3056, + "right_line": 3057 + }, + { + "left_line": 3057, + "right_line": 3058 + }, + { + "left_line": 3058, + "right_line": 3059 + }, + { + "left_line": 3059, + "right_line": 3060 + }, + { + "left_line": 3060, + "right_line": 3061 + }, + { + "left_line": 3061, + "right_line": 3062 + }, + { + "left_line": 3062, + "right_line": 3063 + }, + { + "left_line": 3063, + "right_line": 3064 + }, + { + "left_line": 3064, + "right_line": 3065 + }, + { + "left_line": 3065, + "right_line": 3066 + }, + { + "left_line": 3066, + "right_line": 3067 + }, + { + "left_line": 3067, + "right_line": 3068 + }, + { + "left_line": 3068, + "right_line": 3069 + }, + { + "left_line": 3069, + "right_line": 3070 + }, + { + "left_line": 3070, + "right_line": 3071 + }, + { + "left_line": 3071, + "right_line": 3072 + }, + { + "left_line": 3072, + "right_line": 3073 + }, + { + "left_line": 3073, + "right_line": 3074 + }, + { + "left_line": 3074, + "right_line": 3075 + }, + { + "left_line": 3075, + "right_line": 3076 + }, + { + "left_line": 3076, + "right_line": 3077 + }, + { + "left_line": 3077, + "right_line": 3078 + }, + { + "left_line": 3078, + "right_line": 3079 + }, + { + "left_line": 3079, + "right_line": 3080 + }, + { + "left_line": 3080, + "right_line": 3081 + }, + { + "left_line": 3081, + "right_line": 3082 + }, + { + "left_line": 3082, + "right_line": 3083 + }, + { + "left_line": 3083, + "right_line": 3084 + }, + { + "left_line": 3084, + "right_line": 3085 + }, + { + "left_line": 3085, + "right_line": 3086 + }, + { + "left_line": 3086, + "right_line": 3087 + }, + { + "left_line": 3087, + "right_line": 3088 + }, + { + "left_line": 3088, + "right_line": 3089 + }, + { + "left_line": 3089, + "right_line": 3090 + }, + { + "left_line": 3090, + "right_line": 3091 + }, + { + "left_line": 3091, + "right_line": 3092 + }, + { + "left_line": 3092, + "right_line": 3093 + }, + { + "left_line": 3093, + "right_line": 3094 + }, + { + "left_line": 3094, + "right_line": 3095 + }, + { + "left_line": 3095, + "right_line": 3096 + }, + { + "left_line": 3096, + "right_line": 3097 + }, + { + "left_line": 3097, + "right_line": 3098 + }, + { + "left_line": 3098, + "right_line": 3099 + }, + { + "left_line": 3099, + "right_line": 3100 + }, + { + "left_line": 3100, + "right_line": 3101 + }, + { + "left_line": 3101, + "right_line": 3102 + }, + { + "left_line": 3102, + "right_line": 3103 + }, + { + "left_line": 3103, + "right_line": 3104 + }, + { + "left_line": 3104, + "right_line": 3105 + }, + { + "left_line": 3105, + "right_line": 3106 + }, + { + "left_line": 3106, + "right_line": 3107 + }, + { + "left_line": 3107, + "right_line": 3108 + }, + { + "left_line": 3108, + "right_line": 3109 + }, + { + "left_line": 3109, + "right_line": 3110 + }, + { + "left_line": 3110, + "right_line": 3111 + }, + { + "left_line": 3111, + "right_line": 3112 + }, + { + "left_line": 3112, + "right_line": 3113 + }, + { + "left_line": 3113, + "right_line": 3114 + }, + { + "left_line": 3114, + "right_line": 3115 + }, + { + "left_line": 3115, + "right_line": 3116 + }, + { + "left_line": 3116, + "right_line": 3117 + }, + { + "left_line": 3117, + "right_line": 3118 + }, + { + "left_line": 3118, + "right_line": 3119 + }, + { + "left_line": 3119, + "right_line": 3120 + }, + { + "left_line": 3120, + "right_line": 3121 + }, + { + "left_line": 3121, + "right_line": 3122 + }, + { + "left_line": 3122, + "right_line": 3123 + }, + { + "left_line": 3123, + "right_line": 3124 + }, + { + "left_line": 3124, + "right_line": 3125 + }, + { + "left_line": 3125, + "right_line": 3126 + }, + { + "left_line": 3126, + "right_line": 3127 + }, + { + "left_line": 3127, + "right_line": 3128 + }, + { + "left_line": 3128, + "right_line": 3129 + }, + { + "left_line": 3129, + "right_line": 3130 + }, + { + "left_line": 3130, + "right_line": 3131 + }, + { + "left_line": 3131, + "right_line": 3132 + }, + { + "left_line": 3132, + "right_line": 3133 + }, + { + "left_line": 3133, + "right_line": 3134 + }, + { + "left_line": 3134, + "right_line": 3135 + }, + { + "left_line": 3135, + "right_line": 3136 + }, + { + "left_line": 3136, + "right_line": 3137 + }, + { + "left_line": 3137, + "right_line": 3138 + }, + { + "left_line": 3138, + "right_line": 3139 + }, + { + "left_line": 3139, + "right_line": 3140 + }, + { + "left_line": 3140, + "right_line": 3141 + }, + { + "left_line": 3141, + "right_line": 3142 + }, + { + "left_line": 3142, + "right_line": 3143 + }, + { + "left_line": 3143, + "right_line": 3144 + }, + { + "left_line": 3144, + "right_line": 3145 + }, + { + "left_line": 3145, + "right_line": 3146 + }, + { + "left_line": 3146, + "right_line": 3147 + }, + { + "left_line": 3147, + "right_line": 3148 + }, + { + "left_line": 3148, + "right_line": 3149 + }, + { + "left_line": 3149, + "right_line": 3150 + }, + { + "left_line": 3150, + "right_line": 3151 + }, + { + "left_line": 3151, + "right_line": 3152 + }, + { + "left_line": 3152, + "right_line": 3153 + }, + { + "left_line": 3153, + "right_line": 3154 + }, + { + "left_line": 3154, + "right_line": 3155 + }, + { + "left_line": 3155, + "right_line": 3156 + }, + { + "left_line": 3156, + "right_line": 3157 + }, + { + "left_line": 3157, + "right_line": 3158 + }, + { + "left_line": 3158, + "right_line": 3159 + }, + { + "left_line": 3159, + "right_line": 3160 + }, + { + "left_line": 3160, + "right_line": 3161 + }, + { + "left_line": 3161, + "right_line": 3162 + }, + { + "left_line": 3162, + "right_line": 3163 + }, + { + "left_line": 3163, + "right_line": 3164 + }, + { + "left_line": 3164, + "right_line": 3165 + }, + { + "left_line": 3165, + "right_line": 3166 + }, + { + "left_line": 3166, + "right_line": 3167 + }, + { + "left_line": 3167, + "right_line": 3168 + }, + { + "left_line": 3168, + "right_line": 3169 + }, + { + "left_line": 3169, + "right_line": 3170 + }, + { + "left_line": 3170, + "right_line": 3171 + }, + { + "left_line": 3171, + "right_line": 3172 + }, + { + "left_line": 3172, + "right_line": 3173 + }, + { + "left_line": 3173, + "right_line": 3174 + }, + { + "left_line": 3174, + "right_line": 3175 + }, + { + "left_line": 3175, + "right_line": 3176 + }, + { + "left_line": 3176, + "right_line": 3177 + }, + { + "left_line": 3177, + "right_line": 3178 + }, + { + "left_line": 3178, + "right_line": 3179 + }, + { + "left_line": 3179, + "right_line": 3180 + }, + { + "left_line": 3180, + "right_line": 3181 + }, + { + "left_line": 3181, + "right_line": 3182 + }, + { + "left_line": 3182, + "right_line": 3183 + }, + { + "left_line": 3183, + "right_line": 3184 + }, + { + "left_line": 3184, + "right_line": 3185 + }, + { + "left_line": 3185, + "right_line": 3186 + }, + { + "left_line": 3186, + "right_line": 3187 + }, + { + "left_line": 3187, + "right_line": 3188 + }, + { + "left_line": 3188, + "right_line": 3189 + }, + { + "left_line": 3189, + "right_line": 3190 + }, + { + "left_line": 3190, + "right_line": 3191 + }, + { + "left_line": 3191, + "right_line": 3192 + }, + { + "left_line": 3192, + "right_line": 3193 + }, + { + "left_line": 3193, + "right_line": 3194 + }, + { + "left_line": 3194, + "right_line": 3195 + }, + { + "left_line": 3195, + "right_line": 3196 + }, + { + "left_line": 3196, + "right_line": 3197 + }, + { + "left_line": 3197, + "right_line": 3198 + }, + { + "left_line": 3198, + "right_line": 3199 + }, + { + "left_line": 3199, + "right_line": 3200 + }, + { + "left_line": 3200, + "right_line": 3201 + }, + { + "left_line": 3201, + "right_line": 3202 + }, + { + "left_line": 3202, + "right_line": 3203 + }, + { + "left_line": 3203, + "right_line": 3204 + }, + { + "left_line": 3204, + "right_line": 3205 + }, + { + "left_line": 3205, + "right_line": 3206 + }, + { + "left_line": 3206, + "right_line": 3207 + }, + { + "left_line": 3207, + "right_line": 3208 + }, + { + "left_line": 3208, + "right_line": 3209 + }, + { + "left_line": 3209, + "right_line": 3210 + }, + { + "left_line": 3210, + "right_line": 3211 + }, + { + "left_line": 3211, + "right_line": 3212 + }, + { + "left_line": 3212, + "right_line": 3213 + }, + { + "left_line": 3213, + "right_line": 3214 + }, + { + "left_line": 3214, + "right_line": 3215 + }, + { + "left_line": 3215, + "right_line": 3216 + }, + { + "left_line": 3216, + "right_line": 3217 + }, + { + "left_line": 3217, + "right_line": 3218 + }, + { + "left_line": 3218, + "right_line": 3219 + }, + { + "left_line": 3219, + "right_line": 3220 + }, + { + "left_line": 3220, + "right_line": 3221 + }, + { + "left_line": 3221, + "right_line": 3222 + }, + { + "left_line": 3222, + "right_line": 3223 + }, + { + "left_line": 3223, + "right_line": 3224 + }, + { + "left_line": 3224, + "right_line": 3225 + }, + { + "left_line": 3225, + "right_line": 3226 + }, + { + "left_line": 3226, + "right_line": 3227 + }, + { + "left_line": 3227, + "right_line": 3228 + }, + { + "left_line": 3228, + "right_line": 3229 + }, + { + "left_line": 3229, + "right_line": 3230 + }, + { + "left_line": 3230, + "right_line": 3231 + }, + { + "left_line": 3231, + "right_line": 3232 + }, + { + "left_line": 3232, + "right_line": 3233 + }, + { + "left_line": 3233, + "right_line": 3234 + }, + { + "left_line": 3234, + "right_line": 3235 + }, + { + "left_line": 3235, + "right_line": 3236 + }, + { + "left_line": 3236, + "right_line": 3237 + }, + { + "left_line": 3237, + "right_line": 3238 + }, + { + "left_line": 3238, + "right_line": 3239 + }, + { + "left_line": 3239, + "right_line": 3240 + }, + { + "left_line": 3240, + "right_line": 3241 + }, + { + "left_line": 3241, + "right_line": 3242 + }, + { + "left_line": 3242, + "right_line": 3243 + }, + { + "left_line": 3243, + "right_line": 3244 + }, + { + "left_line": 3244, + "right_line": 3245 + }, + { + "left_line": 3245, + "right_line": 3246 + }, + { + "left_line": 3246, + "right_line": 3247 + }, + { + "left_line": 3247, + "right_line": 3248 + }, + { + "left_line": 3248, + "right_line": 3249 + }, + { + "left_line": 3249, + "right_line": 3250 + }, + { + "left_line": 3250, + "right_line": 3251 + }, + { + "left_line": 3251, + "right_line": 3252 + }, + { + "left_line": 3252, + "right_line": 3253 + }, + { + "left_line": 3253, + "right_line": 3254 + }, + { + "left_line": 3254, + "right_line": 3255 + }, + { + "left_line": 3255, + "right_line": 3256 + }, + { + "left_line": 3256, + "right_line": 3257 + }, + { + "left_line": 3257, + "right_line": 3258 + }, + { + "left_line": 3258, + "right_line": 3259 + }, + { + "left_line": 3259, + "right_line": 3260 + }, + { + "left_line": 3260, + "right_line": 3261 + }, + { + "left_line": 3261, + "right_line": 3262 + }, + { + "left_line": 3262, + "right_line": 3263 + }, + { + "left_line": 3263, + "right_line": 3264 + }, + { + "left_line": 3264, + "right_line": 3265 + }, + { + "left_line": 3265, + "right_line": 3266 + }, + { + "left_line": 3266, + "right_line": 3267 + }, + { + "left_line": 3267, + "right_line": 3268 + }, + { + "left_line": 3268, + "right_line": 3269 + }, + { + "left_line": 3269, + "right_line": 3270 + }, + { + "left_line": 3270, + "right_line": 3271 + }, + { + "left_line": 3271, + "right_line": 3272 + }, + { + "left_line": 3272, + "right_line": 3273 + }, + { + "left_line": 3273, + "right_line": 3274 + }, + { + "left_line": 3274, + "right_line": 3275 + }, + { + "left_line": 3275, + "right_line": 3276 + }, + { + "left_line": 3276, + "right_line": 3277 + }, + { + "left_line": 3277, + "right_line": 3278 + }, + { + "left_line": 3278, + "right_line": 3279 + }, + { + "left_line": 3279, + "right_line": 3280 + }, + { + "left_line": 3280, + "right_line": 3281 + }, + { + "left_line": 3281, + "right_line": 3282 + }, + { + "left_line": 3282, + "right_line": 3283 + }, + { + "left_line": 3283, + "right_line": 3284 + }, + { + "left_line": 3284, + "right_line": 3285 + }, + { + "left_line": 3285, + "right_line": 3286 + }, + { + "left_line": 3286, + "right_line": 3287 + }, + { + "left_line": 3287, + "right_line": 3288 + }, + { + "left_line": 3288, + "right_line": 3289 + }, + { + "left_line": 3289, + "right_line": 3290 + }, + { + "left_line": 3290, + "right_line": 3291 + }, + { + "left_line": 3291, + "right_line": 3292 + }, + { + "left_line": 3292, + "right_line": 3293 + }, + { + "left_line": 3293, + "right_line": 3294 + }, + { + "left_line": 3294, + "right_line": 3295 + }, + { + "left_line": 3295, + "right_line": 3296 + }, + { + "left_line": 3296, + "right_line": 3297 + }, + { + "left_line": 3297, + "right_line": 3298 + }, + { + "left_line": 3298, + "right_line": 3299 + }, + { + "left_line": 3299, + "right_line": 3300 + }, + { + "left_line": 3300, + "right_line": 3301 + }, + { + "left_line": 3301, + "right_line": 3302 + }, + { + "left_line": 3302, + "right_line": 3303 + }, + { + "left_line": 3303, + "right_line": 3304 + }, + { + "left_line": 3304, + "right_line": 3305 + }, + { + "left_line": 3305, + "right_line": 3306 + }, + { + "left_line": 3306, + "right_line": 3307 + }, + { + "left_line": 3307, + "right_line": 3308 + }, + { + "left_line": 3308, + "right_line": 3309 + }, + { + "left_line": 3309, + "right_line": 3310 + }, + { + "left_line": 3310, + "right_line": 3311 + }, + { + "left_line": 3311, + "right_line": 3312 + }, + { + "left_line": 3312, + "right_line": 3313 + }, + { + "left_line": 3313, + "right_line": 3314 + }, + { + "left_line": 3314, + "right_line": 3315 + }, + { + "left_line": 3315, + "right_line": 3316 + }, + { + "left_line": 3316, + "right_line": 3317 + }, + { + "left_line": 3317, + "right_line": 3318 + }, + { + "left_line": 3318, + "right_line": 3319 + }, + { + "left_line": 3319, + "right_line": 3320 + }, + { + "left_line": 3320, + "right_line": 3321 + }, + { + "left_line": 3321, + "right_line": 3322 + }, + { + "left_line": 3322, + "right_line": 3323 + }, + { + "left_line": 3323, + "right_line": 3324 + }, + { + "left_line": 3324, + "right_line": 3325 + }, + { + "left_line": 3325, + "right_line": 3326 + }, + { + "left_line": 3326, + "right_line": 3327 + }, + { + "left_line": 3327, + "right_line": 3328 + }, + { + "left_line": 3328, + "right_line": 3329 + }, + { + "left_line": 3329, + "right_line": 3330 + }, + { + "left_line": 3330, + "right_line": 3331 + }, + { + "left_line": 3331, + "right_line": 3332 + }, + { + "left_line": 3332, + "right_line": 3333 + }, + { + "left_line": 3333, + "right_line": 3334 + }, + { + "left_line": 3334, + "right_line": 3335 + }, + { + "left_line": 3335, + "right_line": 3336 + }, + { + "left_line": 3336, + "right_line": 3337 + }, + { + "left_line": 3337, + "right_line": 3338 + }, + { + "left_line": 3338, + "right_line": 3339 + }, + { + "left_line": 3339, + "right_line": 3340 + }, + { + "left_line": 3340, + "right_line": 3341 + }, + { + "left_line": 3341, + "right_line": 3342 + }, + { + "left_line": 3342, + "right_line": 3343 + }, + { + "left_line": 3343, + "right_line": 3344 + }, + { + "left_line": 3344, + "right_line": 3345 + }, + { + "left_line": 3345, + "right_line": 3346 + }, + { + "left_line": 3346, + "right_line": 3347 + }, + { + "left_line": 3347, + "right_line": 3348 + }, + { + "left_line": 3348, + "right_line": 3349 + }, + { + "left_line": 3349, + "right_line": 3350 + }, + { + "left_line": 3350, + "right_line": 3351 + }, + { + "left_line": 3351, + "right_line": 3352 + }, + { + "left_line": 3352, + "right_line": 3353 + }, + { + "left_line": 3353, + "right_line": 3354 + }, + { + "left_line": 3354, + "right_line": 3355 + }, + { + "left_line": 3355, + "right_line": 3356 + }, + { + "left_line": 3356, + "right_line": 3357 + }, + { + "left_line": 3357, + "right_line": 3358 + }, + { + "left_line": 3358, + "right_line": 3359 + }, + { + "left_line": 3359, + "right_line": 3360 + }, + { + "left_line": 3360, + "right_line": 3361 + }, + { + "left_line": 3361, + "right_line": 3362 + }, + { + "left_line": 3362, + "right_line": 3363 + }, + { + "left_line": 3363, + "right_line": 3364 + }, + { + "left_line": 3364, + "right_line": 3365 + }, + { + "left_line": 3365, + "right_line": 3366 + }, + { + "left_line": 3366, + "right_line": 3367 + }, + { + "left_line": 3367, + "right_line": 3368 + }, + { + "left_line": 3368, + "right_line": 3369 + }, + { + "left_line": 3369, + "right_line": 3370 + }, + { + "left_line": 3370, + "right_line": 3371 + }, + { + "left_line": 3371, + "right_line": 3372 + }, + { + "left_line": 3372, + "right_line": 3373 + }, + { + "left_line": 3373, + "right_line": 3374 + }, + { + "left_line": 3374, + "right_line": 3375 + }, + { + "left_line": 3375, + "right_line": 3376 + }, + { + "left_line": 3376, + "right_line": 3377 + }, + { + "left_line": 3377, + "right_line": 3378 + }, + { + "left_line": 3378, + "right_line": 3379 + }, + { + "left_line": 3379, + "right_line": 3380 + }, + { + "left_line": 3380, + "right_line": 3381 + }, + { + "left_line": 3381, + "right_line": 3382 + }, + { + "left_line": 3382, + "right_line": 3383 + }, + { + "left_line": 3383, + "right_line": 3384 + }, + { + "left_line": 3384, + "right_line": 3385 + }, + { + "left_line": 3385, + "right_line": 3386 + }, + { + "left_line": 3386, + "right_line": 3387 + }, + { + "left_line": 3387, + "right_line": 3388 + }, + { + "left_line": 3388, + "right_line": 3389 + }, + { + "left_line": 3389, + "right_line": 3390 + }, + { + "left_line": 3390, + "right_line": 3391 + }, + { + "left_line": 3391, + "right_line": 3392 + }, + { + "left_line": 3392, + "right_line": 3393 + }, + { + "left_line": 3393, + "right_line": 3394 + }, + { + "left_line": 3394, + "right_line": 3395 + }, + { + "left_line": 3395, + "right_line": 3396 + }, + { + "left_line": 3396, + "right_line": 3397 + }, + { + "left_line": 3397, + "right_line": 3398 + }, + { + "left_line": 3398, + "right_line": 3399 + }, + { + "left_line": 3399, + "right_line": 3400 + }, + { + "left_line": 3400, + "right_line": 3401 + }, + { + "left_line": 3401, + "right_line": 3402 + }, + { + "left_line": 3402, + "right_line": 3403 + }, + { + "left_line": 3403, + "right_line": 3404 + }, + { + "left_line": 3404, + "right_line": 3405 + }, + { + "left_line": 3405, + "right_line": 3406 + }, + { + "left_line": 3406, + "right_line": 3407 + }, + { + "left_line": 3407, + "right_line": 3408 + }, + { + "left_line": 3408, + "right_line": 3409 + }, + { + "left_line": 3409, + "right_line": 3410 + }, + { + "left_line": 3410, + "right_line": 3411 + }, + { + "left_line": 3411, + "right_line": 3412 + }, + { + "left_line": 3412, + "right_line": 3413 + }, + { + "left_line": 3413, + "right_line": 3414 + }, + { + "left_line": 3414, + "right_line": 3415 + }, + { + "left_line": 3415, + "right_line": 3416 + }, + { + "left_line": 3416, + "right_line": 3417 + }, + { + "left_line": 3417, + "right_line": 3418 + }, + { + "left_line": 3418, + "right_line": 3419 + }, + { + "left_line": 3419, + "right_line": 3420 + }, + { + "left_line": 3420, + "right_line": 3421 + }, + { + "left_line": 3421, + "right_line": 3422 + }, + { + "left_line": 3422, + "right_line": 3423 + }, + { + "left_line": 3423, + "right_line": 3424 + }, + { + "left_line": 3424, + "right_line": 3425 + }, + { + "left_line": 3425, + "right_line": 3426 + }, + { + "left_line": 3426, + "right_line": 3427 + }, + { + "left_line": 3427, + "right_line": 3428 + }, + { + "left_line": 3428, + "right_line": 3429 + }, + { + "left_line": 3429, + "right_line": 3430 + }, + { + "left_line": 3430, + "right_line": 3431 + }, + { + "left_line": 3431, + "right_line": 3432 + }, + { + "left_line": 3432, + "right_line": 3433 + }, + { + "left_line": 3433, + "right_line": 3434 + }, + { + "left_line": 3434, + "right_line": 3435 + }, + { + "left_line": 3435, + "right_line": 3436 + }, + { + "left_line": 3436, + "right_line": 3437 + }, + { + "left_line": 3437, + "right_line": 3438 + }, + { + "left_line": 3438, + "right_line": 3439 + }, + { + "left_line": 3439, + "right_line": 3440 + }, + { + "left_line": 3440, + "right_line": 3441 + }, + { + "left_line": 3441, + "right_line": 3442 + }, + { + "left_line": 3442, + "right_line": 3443 + }, + { + "left_line": 3443, + "right_line": 3444 + }, + { + "left_line": 3444, + "right_line": 3445 + }, + { + "left_line": 3445, + "right_line": 3446 + }, + { + "left_line": 3446, + "right_line": 3447 + }, + { + "left_line": 3447, + "right_line": 3448 + }, + { + "left_line": 3448, + "right_line": 3449 + }, + { + "left_line": 3449, + "right_line": 3450 + }, + { + "left_line": 3450, + "right_line": 3451 + }, + { + "left_line": 3451, + "right_line": 3452 + }, + { + "left_line": 3452, + "right_line": 3453 + }, + { + "left_line": 3453, + "right_line": 3454 + }, + { + "left_line": 3454, + "right_line": 3455 + }, + { + "left_line": 3455, + "right_line": 3456 + }, + { + "left_line": 3456, + "right_line": 3457 + }, + { + "left_line": 3457, + "right_line": 3458 + }, + { + "left_line": 3458, + "right_line": 3459 + }, + { + "left_line": 3459, + "right_line": 3460 + }, + { + "left_line": 3460, + "right_line": 3461 + }, + { + "left_line": 3461, + "right_line": 3462 + }, + { + "left_line": 3462, + "right_line": 3463 + }, + { + "left_line": 3463, + "right_line": 3464 + }, + { + "left_line": 3464, + "right_line": 3465 + }, + { + "left_line": 3465, + "right_line": 3466 + }, + { + "left_line": 3466, + "right_line": 3467 + }, + { + "left_line": 3467, + "right_line": 3468 + }, + { + "left_line": 3468, + "right_line": 3469 + }, + { + "left_line": 3469, + "right_line": 3470 + }, + { + "left_line": 3470, + "right_line": 3471 + }, + { + "left_line": 3471, + "right_line": 3472 + }, + { + "left_line": 3472, + "right_line": 3473 + }, + { + "left_line": 3473, + "right_line": 3474 + }, + { + "left_line": 3474, + "right_line": 3475 + }, + { + "left_line": 3475, + "right_line": 3476 + }, + { + "left_line": 3476, + "right_line": 3477 + }, + { + "left_line": 3477, + "right_line": 3478 + }, + { + "left_line": 3478, + "right_line": 3479 + }, + { + "left_line": 3479, + "right_line": 3480 + }, + { + "left_line": 3480, + "right_line": 3481 + }, + { + "left_line": 3481, + "right_line": 3482 + }, + { + "left_line": 3482, + "right_line": 3483 + }, + { + "left_line": 3483, + "right_line": 3484 + }, + { + "left_line": 3484, + "right_line": 3485 + }, + { + "left_line": 3485, + "right_line": 3486 + }, + { + "left_line": 3486, + "right_line": 3487 + }, + { + "left_line": 3487, + "right_line": 3488 + }, + { + "left_line": 3488, + "right_line": 3489 + }, + { + "left_line": 3489, + "right_line": 3490 + }, + { + "left_line": 3490, + "right_line": 3491 + }, + { + "left_line": 3491, + "right_line": 3492 + }, + { + "left_line": 3492, + "right_line": 3493 + }, + { + "left_line": 3493, + "right_line": 3494 + }, + { + "left_line": 3494, + "right_line": 3495 + }, + { + "left_line": 3495, + "right_line": 3496 + }, + { + "left_line": 3496, + "right_line": 3497 + }, + { + "left_line": 3497, + "right_line": 3498 + }, + { + "left_line": 3498, + "right_line": 3499 + }, + { + "left_line": 3499, + "right_line": 3500 + }, + { + "left_line": 3500, + "right_line": 3501 + }, + { + "left_line": 3501, + "right_line": 3502 + }, + { + "left_line": 3502, + "right_line": 3503 + }, + { + "left_line": 3503, + "right_line": 3504 + }, + { + "left_line": 3504, + "right_line": 3505 + }, + { + "left_line": 3505, + "right_line": 3506 + }, + { + "left_line": 3506, + "right_line": 3507 + }, + { + "left_line": 3507, + "right_line": 3508 + }, + { + "left_line": 3508, + "right_line": 3509 + }, + { + "left_line": 3509, + "right_line": 3510 + }, + { + "left_line": 3510, + "right_line": 3511 + }, + { + "left_line": 3511, + "right_line": 3512 + }, + { + "left_line": 3512, + "right_line": 3513 + }, + { + "left_line": 3513, + "right_line": 3514 + }, + { + "left_line": 3514, + "right_line": 3515 + }, + { + "left_line": 3515, + "right_line": 3516 + }, + { + "left_line": 3516, + "right_line": 3517 + }, + { + "left_line": 3517, + "right_line": 3518 + }, + { + "left_line": 3518, + "right_line": 3519 + }, + { + "left_line": 3519, + "right_line": 3520 + }, + { + "left_line": 3520, + "right_line": 3521 + }, + { + "left_line": 3521, + "right_line": 3522 + }, + { + "left_line": 3522, + "right_line": 3523 + }, + { + "left_line": 3523, + "right_line": 3524 + }, + { + "left_line": 3524, + "right_line": 3525 + }, + { + "left_line": 3525, + "right_line": 3526 + }, + { + "left_line": 3526, + "right_line": 3527 + }, + { + "left_line": 3527, + "right_line": 3528 + }, + { + "left_line": 3528, + "right_line": 3529 + }, + { + "left_line": 3529, + "right_line": 3530 + }, + { + "left_line": 3530, + "right_line": 3531 + }, + { + "left_line": 3531, + "right_line": 3532 + }, + { + "left_line": 3532, + "right_line": 3533 + }, + { + "left_line": 3533, + "right_line": 3534 + }, + { + "left_line": 3534, + "right_line": 3535 + }, + { + "left_line": 3535, + "right_line": 3536 + }, + { + "left_line": 3536, + "right_line": 3537 + }, + { + "left_line": 3537, + "right_line": 3538 + }, + { + "left_line": 3538, + "right_line": 3539 + }, + { + "left_line": 3539, + "right_line": 3540 + }, + { + "left_line": 3540, + "right_line": 3541 + }, + { + "left_line": 3541, + "right_line": 3542 + }, + { + "left_line": 3542, + "right_line": 3543 + }, + { + "left_line": 3543, + "right_line": 3544 + }, + { + "left_line": 3544, + "right_line": 3545 + }, + { + "left_line": 3545, + "right_line": 3546 + }, + { + "left_line": 3546, + "right_line": 3547 + }, + { + "left_line": 3547, + "right_line": 3548 + }, + { + "left_line": 3548, + "right_line": 3549 + }, + { + "left_line": 3549, + "right_line": 3550 + }, + { + "left_line": 3550, + "right_line": 3551 + }, + { + "left_line": 3551, + "right_line": 3552 + }, + { + "left_line": 3552, + "right_line": 3553 + }, + { + "left_line": 3553, + "right_line": 3554 + }, + { + "left_line": 3554, + "right_line": 3555 + }, + { + "left_line": 3555, + "right_line": 3556 + }, + { + "left_line": 3556, + "right_line": 3557 + }, + { + "left_line": 3557, + "right_line": 3558 + }, + { + "left_line": 3558, + "right_line": 3559 + }, + { + "left_line": 3559, + "right_line": 3560 + }, + { + "left_line": 3560, + "right_line": 3561 + }, + { + "left_line": 3561, + "right_line": 3562 + }, + { + "left_line": 3562, + "right_line": 3563 + }, + { + "left_line": 3563, + "right_line": 3564 + }, + { + "left_line": 3564, + "right_line": 3565 + }, + { + "left_line": 3565, + "right_line": 3566 + }, + { + "left_line": 3566, + "right_line": 3567 + }, + { + "left_line": 3567, + "right_line": 3568 + }, + { + "left_line": 3568, + "right_line": 3569 + }, + { + "left_line": 3569, + "right_line": 3570 + }, + { + "left_line": 3570, + "right_line": 3571 + }, + { + "left_line": 3571, + "right_line": 3572 + }, + { + "left_line": 3572, + "right_line": 3573 + }, + { + "left_line": 3573, + "right_line": 3574 + }, + { + "left_line": 3574, + "right_line": 3575 + }, + { + "left_line": 3575, + "right_line": 3576 + }, + { + "left_line": 3576, + "right_line": 3577 + }, + { + "left_line": 3577, + "right_line": 3578 + }, + { + "left_line": 3578, + "right_line": 3579 + }, + { + "left_line": 3579, + "right_line": 3580 + }, + { + "left_line": 3580, + "right_line": 3581 + }, + { + "left_line": 3581, + "right_line": 3582 + }, + { + "left_line": 3582, + "right_line": 3583 + }, + { + "left_line": 3583, + "right_line": 3584 + }, + { + "left_line": 3584, + "right_line": 3585 + }, + { + "left_line": 3585, + "right_line": 3586 + }, + { + "left_line": 3586, + "right_line": 3587 + }, + { + "left_line": 3587, + "right_line": 3588 + }, + { + "left_line": 3588, + "right_line": 3589 + }, + { + "left_line": 3589, + "right_line": 3590 + }, + { + "left_line": 3590, + "right_line": 3591 + }, + { + "left_line": 3591, + "right_line": 3592 + }, + { + "left_line": 3592, + "right_line": 3593 + }, + { + "left_line": 3593, + "right_line": 3594 + }, + { + "left_line": 3594, + "right_line": 3595 + }, + { + "left_line": 3595, + "right_line": 3596 + }, + { + "left_line": 3596, + "right_line": 3597 + }, + { + "left_line": 3597, + "right_line": 3598 + }, + { + "left_line": 3598, + "right_line": 3599 + }, + { + "left_line": 3599, + "right_line": 3600 + }, + { + "left_line": 3600, + "right_line": 3601 + }, + { + "left_line": 3601, + "right_line": 3602 + }, + { + "left_line": 3602, + "right_line": 3603 + }, + { + "left_line": 3603, + "right_line": 3604 + }, + { + "left_line": 3604, + "right_line": 3605 + }, + { + "left_line": 3605, + "right_line": 3606 + }, + { + "left_line": 3606, + "right_line": 3607 + }, + { + "left_line": 3607, + "right_line": 3608 + }, + { + "left_line": 3608, + "right_line": 3609 + }, + { + "left_line": 3609, + "right_line": 3610 + }, + { + "left_line": 3610, + "right_line": 3611 + }, + { + "left_line": 3611, + "right_line": 3612 + }, + { + "left_line": 3612, + "right_line": 3613 + }, + { + "left_line": 3613, + "right_line": 3614 + }, + { + "left_line": 3614, + "right_line": 3615 + }, + { + "left_line": 3615, + "right_line": 3616 + }, + { + "left_line": 3616, + "right_line": 3617 + }, + { + "left_line": 3617, + "right_line": 3618 + }, + { + "left_line": 3618, + "right_line": 3619 + }, + { + "left_line": 3619, + "right_line": 3620 + }, + { + "left_line": 3620, + "right_line": 3621 + }, + { + "left_line": 3621, + "right_line": 3622 + }, + { + "left_line": 3622, + "right_line": 3623 + }, + { + "left_line": 3623, + "right_line": 3624 + }, + { + "left_line": 3624, + "right_line": 3625 + }, + { + "left_line": 3625, + "right_line": 3626 + }, + { + "left_line": 3626, + "right_line": 3627 + }, + { + "left_line": 3627, + "right_line": 3628 + }, + { + "left_line": 3628, + "right_line": 3629 + }, + { + "left_line": 3629, + "right_line": 3630 + }, + { + "left_line": 3630, + "right_line": 3631 + }, + { + "left_line": 3631, + "right_line": 3632 + }, + { + "left_line": 3632, + "right_line": 3633 + }, + { + "left_line": 3633, + "right_line": 3634 + }, + { + "left_line": 3634, + "right_line": 3635 + }, + { + "left_line": 3635, + "right_line": 3636 + }, + { + "left_line": 3636, + "right_line": 3637 + }, + { + "left_line": 3637, + "right_line": 3638 + }, + { + "left_line": 3638, + "right_line": 3639 + }, + { + "left_line": 3639, + "right_line": 3640 + }, + { + "left_line": 3640, + "right_line": 3641 + }, + { + "left_line": 3641, + "right_line": 3642 + }, + { + "left_line": 3642, + "right_line": 3643 + }, + { + "left_line": 3643, + "right_line": 3644 + }, + { + "left_line": 3644, + "right_line": 3645 + }, + { + "left_line": 3645, + "right_line": 3646 + }, + { + "left_line": 3646, + "right_line": 3647 + }, + { + "left_line": 3647, + "right_line": 3648 + }, + { + "left_line": 3648, + "right_line": 3649 + }, + { + "left_line": 3649, + "right_line": 3650 + }, + { + "left_line": 3650, + "right_line": 3651 + }, + { + "left_line": 3651, + "right_line": 3652 + }, + { + "left_line": 3652, + "right_line": 3653 + }, + { + "left_line": 3653, + "right_line": 3654 + }, + { + "left_line": 3654, + "right_line": 3655 + }, + { + "left_line": 3655, + "right_line": 3656 + }, + { + "left_line": 3656, + "right_line": 3657 + }, + { + "left_line": 3657, + "right_line": 3658 + }, + { + "left_line": 3658, + "right_line": 3659 + }, + { + "left_line": 3659, + "right_line": 3660 + }, + { + "left_line": 3660, + "right_line": 3661 + }, + { + "left_line": 3661, + "right_line": 3662 + }, + { + "left_line": 3662, + "right_line": 3663 + }, + { + "left_line": 3663, + "right_line": 3664 + }, + { + "left_line": 3664, + "right_line": 3665 + }, + { + "left_line": 3665, + "right_line": 3666 + }, + { + "left_line": 3666, + "right_line": 3667 + }, + { + "left_line": 3667, + "right_line": 3668 + }, + { + "left_line": 3668, + "right_line": 3669 + }, + { + "left_line": 3669, + "right_line": 3670 + }, + { + "left_line": 3670, + "right_line": 3671 + }, + { + "left_line": 3671, + "right_line": 3672 + }, + { + "left_line": 3672, + "right_line": 3673 + }, + { + "left_line": 3673, + "right_line": 3674 + }, + { + "left_line": 3674, + "right_line": 3675 + }, + { + "left_line": 3675, + "right_line": 3676 + }, + { + "left_line": 3676, + "right_line": 3677 + }, + { + "left_line": 3677, + "right_line": 3678 + }, + { + "left_line": 3678, + "right_line": 3679 + }, + { + "left_line": 3679, + "right_line": 3680 + }, + { + "left_line": 3680, + "right_line": 3681 + }, + { + "left_line": 3681, + "right_line": 3682 + }, + { + "left_line": 3682, + "right_line": 3683 + }, + { + "left_line": 3683, + "right_line": 3684 + }, + { + "left_line": 3684, + "right_line": 3685 + }, + { + "left_line": 3685, + "right_line": 3686 + }, + { + "left_line": 3686, + "right_line": 3687 + }, + { + "left_line": 3687, + "right_line": 3688 + }, + { + "left_line": 3688, + "right_line": 3689 + }, + { + "left_line": 3689, + "right_line": 3690 + }, + { + "left_line": 3690, + "right_line": 3691 + }, + { + "left_line": 3691, + "right_line": 3692 + }, + { + "left_line": 3692, + "right_line": 3693 + }, + { + "left_line": 3693, + "right_line": 3694 + }, + { + "left_line": 3694, + "right_line": 3695 + }, + { + "left_line": 3695, + "right_line": 3696 + }, + { + "left_line": 3696, + "right_line": 3697 + }, + { + "left_line": 3697, + "right_line": 3698 + }, + { + "left_line": 3698, + "right_line": 3699 + }, + { + "left_line": 3699, + "right_line": 3700 + }, + { + "left_line": 3700, + "right_line": 3701 + }, + { + "left_line": 3701, + "right_line": 3702 + }, + { + "left_line": 3702, + "right_line": 3703 + }, + { + "left_line": 3703, + "right_line": 3704 + }, + { + "left_line": 3704, + "right_line": 3705 + }, + { + "left_line": 3705, + "right_line": 3706 + }, + { + "left_line": 3706, + "right_line": 3707 + }, + { + "left_line": 3707, + "right_line": 3708 + }, + { + "left_line": 3708, + "right_line": 3709 + }, + { + "left_line": 3709, + "right_line": 3710 + }, + { + "left_line": 3710, + "right_line": 3711 + }, + { + "left_line": 3711, + "right_line": 3712 + }, + { + "left_line": 3712, + "right_line": 3713 + }, + { + "left_line": 3713, + "right_line": 3714 + }, + { + "left_line": 3714, + "right_line": 3715 + }, + { + "left_line": 3715, + "right_line": 3716 + }, + { + "left_line": 3716, + "right_line": 3717 + }, + { + "left_line": 3717, + "right_line": 3718 + }, + { + "left_line": 3718, + "right_line": 3719 + }, + { + "left_line": 3719, + "right_line": 3720 + }, + { + "left_line": 3720, + "right_line": 3721 + }, + { + "left_line": 3721, + "right_line": 3722 + }, + { + "left_line": 3722, + "right_line": 3723 + }, + { + "left_line": 3723, + "right_line": 3724 + }, + { + "left_line": 3724, + "right_line": 3725 + }, + { + "left_line": 3725, + "right_line": 3726 + }, + { + "left_line": 3726, + "right_line": 3727 + }, + { + "left_line": 3727, + "right_line": 3728 + }, + { + "left_line": 3728, + "right_line": 3729 + }, + { + "left_line": 3729, + "right_line": 3730 + }, + { + "left_line": 3730, + "right_line": 3731 + }, + { + "left_line": 3731, + "right_line": 3732 + }, + { + "left_line": 3732, + "right_line": 3733 + }, + { + "left_line": 3733, + "right_line": 3734 + }, + { + "left_line": 3734, + "right_line": 3735 + }, + { + "left_line": 3735, + "right_line": 3736 + }, + { + "left_line": 3736, + "right_line": 3737 + }, + { + "left_line": 3737, + "right_line": 3738 + }, + { + "left_line": 3738, + "right_line": 3739 + }, + { + "left_line": 3739, + "right_line": 3740 + }, + { + "left_line": 3740, + "right_line": 3741 + }, + { + "left_line": 3741, + "right_line": 3742 + }, + { + "left_line": 3742, + "right_line": 3743 + }, + { + "left_line": 3743, + "right_line": 3744 + }, + { + "left_line": 3744, + "right_line": 3745 + }, + { + "left_line": 3745, + "right_line": 3746 + }, + { + "left_line": 3746, + "right_line": 3747 + }, + { + "left_line": 3747, + "right_line": 3748 + }, + { + "left_line": 3748, + "right_line": 3749 + }, + { + "left_line": 3749, + "right_line": 3750 + }, + { + "left_line": 3750, + "right_line": 3751 + }, + { + "left_line": 3751, + "right_line": 3752 + }, + { + "left_line": 3752, + "right_line": 3753 + }, + { + "left_line": 3753, + "right_line": 3754 + }, + { + "left_line": 3754, + "right_line": 3755 + }, + { + "left_line": 3755, + "right_line": 3756 + }, + { + "left_line": 3756, + "right_line": 3757 + }, + { + "left_line": 3757, + "right_line": 3758 + }, + { + "left_line": 3758, + "right_line": 3759 + }, + { + "left_line": 3759, + "right_line": 3760 + }, + { + "left_line": 3760, + "right_line": 3761 + }, + { + "left_line": 3761, + "right_line": 3762 + }, + { + "left_line": 3762, + "right_line": 3763 + }, + { + "left_line": 3763, + "right_line": 3764 + }, + { + "left_line": 3764, + "right_line": 3765 + }, + { + "left_line": 3765, + "right_line": 3766 + }, + { + "left_line": 3766, + "right_line": 3767 + }, + { + "left_line": 3767, + "right_line": 3768 + }, + { + "left_line": 3768, + "right_line": 3769 + }, + { + "left_line": 3769, + "right_line": 3770 + }, + { + "left_line": 3770, + "right_line": 3771 + }, + { + "left_line": 3771, + "right_line": 3772 + }, + { + "left_line": 3772, + "right_line": 3773 + }, + { + "left_line": 3773, + "right_line": 3774 + }, + { + "left_line": 3774, + "right_line": 3775 + }, + { + "left_line": 3775, + "right_line": 3776 + }, + { + "left_line": 3776, + "right_line": 3777 + }, + { + "left_line": 3777, + "right_line": 3778 + }, + { + "left_line": 3778, + "right_line": 3779 + }, + { + "left_line": 3779, + "right_line": 3780 + }, + { + "left_line": 3780, + "right_line": 3781 + }, + { + "left_line": 3781, + "right_line": 3782 + }, + { + "left_line": 3782, + "right_line": 3783 + }, + { + "left_line": 3783, + "right_line": 3784 + }, + { + "left_line": 3784, + "right_line": 3785 + }, + { + "left_line": 3785, + "right_line": 3786 + }, + { + "left_line": 3786, + "right_line": 3787 + }, + { + "left_line": 3787, + "right_line": 3788 + }, + { + "left_line": 3788, + "right_line": 3789 + }, + { + "left_line": 3789, + "right_line": 3790 + }, + { + "left_line": 3790, + "right_line": 3791 + }, + { + "left_line": 3791, + "right_line": 3792 + }, + { + "left_line": 3792, + "right_line": 3793 + }, + { + "left_line": 3793, + "right_line": 3794 + }, + { + "left_line": 3794, + "right_line": 3795 + }, + { + "left_line": 3795, + "right_line": 3796 + }, + { + "left_line": 3796, + "right_line": 3797 + }, + { + "left_line": 3797, + "right_line": 3798 + }, + { + "left_line": 3798, + "right_line": 3799 + }, + { + "left_line": 3799, + "right_line": 3800 + }, + { + "left_line": 3800, + "right_line": 3801 + }, + { + "left_line": 3801, + "right_line": 3802 + }, + { + "left_line": 3802, + "right_line": 3803 + }, + { + "left_line": 3803, + "right_line": 3804 + }, + { + "left_line": 3804, + "right_line": 3805 + }, + { + "left_line": 3805, + "right_line": 3806 + }, + { + "left_line": 3806, + "right_line": 3807 + }, + { + "left_line": 3807, + "right_line": 3808 + }, + { + "left_line": 3808, + "right_line": 3809 + }, + { + "left_line": 3809, + "right_line": 3810 + }, + { + "left_line": 3810, + "right_line": 3811 + }, + { + "left_line": 3811, + "right_line": 3812 + }, + { + "left_line": 3812, + "right_line": 3813 + }, + { + "left_line": 3813, + "right_line": 3814 + }, + { + "left_line": 3814, + "right_line": 3815 + }, + { + "left_line": 3815, + "right_line": 3816 + }, + { + "left_line": 3816, + "right_line": 3817 + }, + { + "left_line": 3817, + "right_line": 3818 + }, + { + "left_line": 3818, + "right_line": 3819 + }, + { + "left_line": 3819, + "right_line": 3820 + }, + { + "left_line": 3820, + "right_line": 3821 + }, + { + "left_line": 3821, + "right_line": 3822 + }, + { + "left_line": 3822, + "right_line": 3823 + }, + { + "left_line": 3823, + "right_line": 3824 + }, + { + "left_line": 3824, + "right_line": 3825 + }, + { + "left_line": 3825, + "right_line": 3826 + }, + { + "left_line": 3826, + "right_line": 3827 + }, + { + "left_line": 3827, + "right_line": 3828 + }, + { + "left_line": 3828, + "right_line": 3829 + }, + { + "left_line": 3829, + "right_line": 3830 + }, + { + "left_line": 3830, + "right_line": 3831 + }, + { + "left_line": 3831, + "right_line": 3832 + }, + { + "left_line": 3832, + "right_line": 3833 + }, + { + "left_line": 3833, + "right_line": 3834 + }, + { + "left_line": 3834, + "right_line": 3835 + }, + { + "left_line": 3835, + "right_line": 3836 + }, + { + "left_line": 3836, + "right_line": 3837 + }, + { + "left_line": 3837, + "right_line": 3838 + }, + { + "left_line": 3838, + "right_line": 3839 + }, + { + "left_line": 3839, + "right_line": 3840 + }, + { + "left_line": 3840, + "right_line": 3841 + }, + { + "left_line": 3841, + "right_line": 3842 + }, + { + "left_line": 3842, + "right_line": 3843 + }, + { + "left_line": 3843, + "right_line": 3844 + }, + { + "left_line": 3844, + "right_line": 3845 + }, + { + "left_line": 3845, + "right_line": 3846 + }, + { + "left_line": 3846, + "right_line": 3847 + }, + { + "left_line": 3847, + "right_line": 3848 + }, + { + "left_line": 3848, + "right_line": 3849 + }, + { + "left_line": 3849, + "right_line": 3850 + }, + { + "left_line": 3850, + "right_line": 3851 + }, + { + "left_line": 3851, + "right_line": 3852 + }, + { + "left_line": 3852, + "right_line": 3853 + }, + { + "left_line": 3853, + "right_line": 3854 + }, + { + "left_line": 3854, + "right_line": 3855 + }, + { + "left_line": 3855, + "right_line": 3856 + }, + { + "left_line": 3856, + "right_line": 3857 + }, + { + "left_line": 3857, + "right_line": 3858 + }, + { + "left_line": 3858, + "right_line": 3859 + }, + { + "left_line": 3859, + "right_line": 3860 + }, + { + "left_line": 3860, + "right_line": 3861 + }, + { + "left_line": 3861, + "right_line": 3862 + }, + { + "left_line": 3862, + "right_line": 3863 + }, + { + "left_line": 3863, + "right_line": 3864 + }, + { + "left_line": 3864, + "right_line": 3865 + }, + { + "left_line": 3865, + "right_line": 3866 + }, + { + "left_line": 3866, + "right_line": 3867 + }, + { + "left_line": 3867, + "right_line": 3868 + }, + { + "left_line": 3868, + "right_line": 3869 + }, + { + "left_line": 3869, + "right_line": 3870 + }, + { + "left_line": 3870, + "right_line": 3871 + }, + { + "left_line": 3871, + "right_line": 3872 + }, + { + "left_line": 3872, + "right_line": 3873 + }, + { + "left_line": 3873, + "right_line": 3874 + }, + { + "left_line": 3874, + "right_line": 3875 + }, + { + "left_line": 3875, + "right_line": 3876 + }, + { + "left_line": 3876, + "right_line": 3877 + }, + { + "left_line": 3877, + "right_line": 3878 + }, + { + "left_line": 3878, + "right_line": 3879 + }, + { + "left_line": 3879, + "right_line": 3880 + }, + { + "left_line": 3880, + "right_line": 3881 + }, + { + "left_line": 3881, + "right_line": 3882 + }, + { + "left_line": 3882, + "right_line": 3883 + }, + { + "left_line": 3883, + "right_line": 3884 + }, + { + "left_line": 3884, + "right_line": 3885 + }, + { + "left_line": 3885, + "right_line": 3886 + }, + { + "left_line": 3886, + "right_line": 3887 + }, + { + "left_line": 3887, + "right_line": 3888 + }, + { + "left_line": 3888, + "right_line": 3889 + }, + { + "left_line": 3889, + "right_line": 3890 + }, + { + "left_line": 3890, + "right_line": 3891 + }, + { + "left_line": 3891, + "right_line": 3892 + }, + { + "left_line": 3892, + "right_line": 3893 + }, + { + "left_line": 3893, + "right_line": 3894 + }, + { + "left_line": 3894, + "right_line": 3895 + }, + { + "left_line": 3895, + "right_line": 3896 + }, + { + "left_line": 3896, + "right_line": 3897 + }, + { + "left_line": 3897, + "right_line": 3898 + }, + { + "left_line": 3898, + "right_line": 3899 + }, + { + "left_line": 3899, + "right_line": 3900 + }, + { + "left_line": 3900, + "right_line": 3901 + }, + { + "left_line": 3901, + "right_line": 3902 + }, + { + "left_line": 3902, + "right_line": 3903 + }, + { + "left_line": 3903, + "right_line": 3904 + }, + { + "left_line": 3904, + "right_line": 3905 + }, + { + "left_line": 3905, + "right_line": 3906 + }, + { + "left_line": 3906, + "right_line": 3907 + }, + { + "left_line": 3907, + "right_line": 3908 + }, + { + "left_line": 3908, + "right_line": 3909 + }, + { + "left_line": 3909, + "right_line": 3910 + }, + { + "left_line": 3910, + "right_line": 3911 + }, + { + "left_line": 3911, + "right_line": 3912 + }, + { + "left_line": 3912, + "right_line": 3913 + }, + { + "left_line": 3913, + "right_line": 3914 + }, + { + "left_line": 3914, + "right_line": 3915 + }, + { + "left_line": 3915, + "right_line": 3916 + }, + { + "left_line": 3916, + "right_line": 3917 + }, + { + "left_line": 3917, + "right_line": 3918 + }, + { + "left_line": 3918, + "right_line": 3919 + }, + { + "left_line": 3919, + "right_line": 3920 + }, + { + "left_line": 3920, + "right_line": 3921 + }, + { + "left_line": 3921, + "right_line": 3922 + }, + { + "left_line": 3922, + "right_line": 3923 + }, + { + "left_line": 3923, + "right_line": 3924 + }, + { + "left_line": 3924, + "right_line": 3925 + }, + { + "left_line": 3925, + "right_line": 3926 + }, + { + "left_line": 3926, + "right_line": 3927 + }, + { + "left_line": 3927, + "right_line": 3928 + }, + { + "left_line": 3928, + "right_line": 3929 + }, + { + "left_line": 3929, + "right_line": 3930 + }, + { + "left_line": 3930, + "right_line": 3931 + }, + { + "left_line": 3931, + "right_line": 3932 + }, + { + "left_line": 3932, + "right_line": 3933 + }, + { + "left_line": 3933, + "right_line": 3934 + }, + { + "left_line": 3934, + "right_line": 3935 + }, + { + "left_line": -1, + "right_line": 3936 + }, + { + "left_line": 3935, + "right_line": 3937 + }, + { + "left_line": 3936, + "right_line": 3938 + }, + { + "left_line": 3937, + "right_line": 3939 + }, + { + "left_line": 3938, + "right_line": 3940 + }, + { + "left_line": 3939, + "right_line": 3941 + }, + { + "left_line": 3940, + "right_line": 3942 + }, + { + "left_line": 3941, + "right_line": 3943 + }, + { + "left_line": 3942, + "right_line": 3944 + }, + { + "left_line": 3943, + "right_line": 3945 + }, + { + "left_line": 3944, + "right_line": 3946 + }, + { + "left_line": 3945, + "right_line": 3947 + }, + { + "left_line": -1, + "right_line": 3948 + }, + { + "left_line": -1, + "right_line": 3949 + }, + { + "left_line": -1, + "right_line": 3950 + }, + { + "left_line": -1, + "right_line": 3951 + }, + { + "left_line": -1, + "right_line": 3952 + }, + { + "left_line": -1, + "right_line": 3953 + }, + { + "left_line": -1, + "right_line": 3954 + }, + { + "left_line": -1, + "right_line": 3955 + }, + { + "left_line": -1, + "right_line": 3956 + }, + { + "left_line": -1, + "right_line": 3957 + }, + { + "left_line": -1, + "right_line": 3958 + }, + { + "left_line": -1, + "right_line": 3959 + }, + { + "left_line": -1, + "right_line": 3960 + }, + { + "left_line": -1, + "right_line": 3961 + }, + { + "left_line": -1, + "right_line": 3962 + }, + { + "left_line": 3946, + "right_line": 3963 + }, + { + "left_line": 3947, + "right_line": 3964 + }, + { + "left_line": 3948, + "right_line": 3965 + }, + { + "left_line": 3949, + "right_line": 3966 + }, + { + "left_line": 3950, + "right_line": 3967 + }, + { + "left_line": 3951, + "right_line": 3968 + }, + { + "left_line": 3952, + "right_line": 3969 + }, + { + "left_line": 3953, + "right_line": -1 + }, + { + "left_line": 3954, + "right_line": -1 + }, + { + "left_line": 3955, + "right_line": 3970 + }, + { + "left_line": -1, + "right_line": 3971 + }, + { + "left_line": -1, + "right_line": 3972 + }, + { + "left_line": -1, + "right_line": 3973 + }, + { + "left_line": -1, + "right_line": 3974 + }, + { + "left_line": -1, + "right_line": 3975 + }, + { + "left_line": -1, + "right_line": 3976 + }, + { + "left_line": 3956, + "right_line": 3977 + }, + { + "left_line": 3957, + "right_line": 3978 + }, + { + "left_line": -1, + "right_line": 3979 + }, + { + "left_line": -1, + "right_line": 3980 + }, + { + "left_line": -1, + "right_line": 3981 + }, + { + "left_line": 3958, + "right_line": 3982 + }, + { + "left_line": 3959, + "right_line": 3983 + }, + { + "left_line": 3960, + "right_line": 3984 + }, + { + "left_line": 3961, + "right_line": 3985 + }, + { + "left_line": 3962, + "right_line": 3986 + }, + { + "left_line": 3963, + "right_line": 3987 + }, + { + "left_line": 3964, + "right_line": 3988 + }, + { + "left_line": 3965, + "right_line": 3989 + }, + { + "left_line": 3966, + "right_line": 3990 + }, + { + "left_line": 3967, + "right_line": 3991 + }, + { + "left_line": 3968, + "right_line": 3992 + }, + { + "left_line": 3969, + "right_line": 3993 + }, + { + "left_line": 3970, + "right_line": 3994 + }, + { + "left_line": 3971, + "right_line": 3995 + }, + { + "left_line": 3972, + "right_line": 3996 + }, + { + "left_line": 3973, + "right_line": 3997 + }, + { + "left_line": 3974, + "right_line": 3998 + }, + { + "left_line": 3975, + "right_line": 3999 + }, + { + "left_line": 3976, + "right_line": 4000 + }, + { + "left_line": 3977, + "right_line": 4001 + }, + { + "left_line": 3978, + "right_line": 4002 + }, + { + "left_line": 3979, + "right_line": 4003 + }, + { + "left_line": 3980, + "right_line": 4004 + }, + { + "left_line": 3981, + "right_line": 4005 + }, + { + "left_line": 3982, + "right_line": 4006 + }, + { + "left_line": 3983, + "right_line": 4007 + }, + { + "left_line": 3984, + "right_line": 4008 + }, + { + "left_line": 3985, + "right_line": 4009 + }, + { + "left_line": 3986, + "right_line": 4010 + }, + { + "left_line": 3987, + "right_line": 4011 + }, + { + "left_line": 3988, + "right_line": 4012 + }, + { + "left_line": 3989, + "right_line": 4013 + }, + { + "left_line": 3990, + "right_line": 4014 + }, + { + "left_line": 3991, + "right_line": 4015 + }, + { + "left_line": 3992, + "right_line": 4016 + }, + { + "left_line": 3993, + "right_line": 4017 + }, + { + "left_line": 3994, + "right_line": 4018 + }, + { + "left_line": 3995, + "right_line": 4019 + }, + { + "left_line": 3996, + "right_line": 4020 + }, + { + "left_line": 3997, + "right_line": 4021 + }, + { + "left_line": 3998, + "right_line": 4022 + }, + { + "left_line": 3999, + "right_line": 4023 + }, + { + "left_line": 4000, + "right_line": 4024 + }, + { + "left_line": 4001, + "right_line": 4025 + }, + { + "left_line": 4002, + "right_line": 4026 + }, + { + "left_line": 4003, + "right_line": 4027 + }, + { + "left_line": 4004, + "right_line": 4028 + }, + { + "left_line": 4005, + "right_line": 4029 + }, + { + "left_line": 4006, + "right_line": 4030 + }, + { + "left_line": 4007, + "right_line": 4031 + }, + { + "left_line": 4008, + "right_line": 4032 + }, + { + "left_line": 4009, + "right_line": 4033 + }, + { + "left_line": 4010, + "right_line": 4034 + }, + { + "left_line": 4011, + "right_line": 4035 + }, + { + "left_line": 4012, + "right_line": 4036 + }, + { + "left_line": 4013, + "right_line": 4037 + }, + { + "left_line": 4014, + "right_line": 4038 + }, + { + "left_line": 4015, + "right_line": 4039 + }, + { + "left_line": 4016, + "right_line": 4040 + }, + { + "left_line": 4017, + "right_line": 4041 + }, + { + "left_line": 4018, + "right_line": 4042 + }, + { + "left_line": 4019, + "right_line": 4043 + }, + { + "left_line": 4020, + "right_line": 4044 + }, + { + "left_line": 4021, + "right_line": 4045 + }, + { + "left_line": 4022, + "right_line": 4046 + }, + { + "left_line": 4023, + "right_line": 4047 + }, + { + "left_line": 4024, + "right_line": 4048 + }, + { + "left_line": 4025, + "right_line": 4049 + }, + { + "left_line": 4026, + "right_line": 4050 + }, + { + "left_line": 4027, + "right_line": 4051 + }, + { + "left_line": 4028, + "right_line": 4052 + }, + { + "left_line": 4029, + "right_line": 4053 + }, + { + "left_line": 4030, + "right_line": 4054 + }, + { + "left_line": 4031, + "right_line": 4055 + }, + { + "left_line": 4032, + "right_line": 4056 + }, + { + "left_line": 4033, + "right_line": 4057 + }, + { + "left_line": 4034, + "right_line": 4058 + }, + { + "left_line": 4035, + "right_line": 4059 + }, + { + "left_line": 4036, + "right_line": 4060 + }, + { + "left_line": 4037, + "right_line": 4061 + }, + { + "left_line": 4038, + "right_line": 4062 + }, + { + "left_line": 4039, + "right_line": 4063 + }, + { + "left_line": 4040, + "right_line": 4064 + }, + { + "left_line": 4041, + "right_line": 4065 + }, + { + "left_line": 4042, + "right_line": 4066 + }, + { + "left_line": 4043, + "right_line": 4067 + }, + { + "left_line": 4044, + "right_line": 4068 + }, + { + "left_line": 4045, + "right_line": 4069 + }, + { + "left_line": 4046, + "right_line": 4070 + }, + { + "left_line": 4047, + "right_line": 4071 + }, + { + "left_line": 4048, + "right_line": 4072 + }, + { + "left_line": 4049, + "right_line": 4073 + }, + { + "left_line": 4050, + "right_line": 4074 + }, + { + "left_line": 4051, + "right_line": 4075 + }, + { + "left_line": 4052, + "right_line": 4076 + }, + { + "left_line": 4053, + "right_line": 4077 + }, + { + "left_line": 4054, + "right_line": 4078 + }, + { + "left_line": 4055, + "right_line": 4079 + }, + { + "left_line": 4056, + "right_line": 4080 + }, + { + "left_line": 4057, + "right_line": 4081 + }, + { + "left_line": 4058, + "right_line": 4082 + }, + { + "left_line": 4059, + "right_line": 4083 + }, + { + "left_line": 4060, + "right_line": 4084 + }, + { + "left_line": 4061, + "right_line": 4085 + }, + { + "left_line": 4062, + "right_line": 4086 + }, + { + "left_line": 4063, + "right_line": 4087 + }, + { + "left_line": 4064, + "right_line": 4088 + }, + { + "left_line": 4065, + "right_line": 4089 + }, + { + "left_line": 4066, + "right_line": 4090 + }, + { + "left_line": 4067, + "right_line": 4091 + }, + { + "left_line": 4068, + "right_line": 4092 + }, + { + "left_line": 4069, + "right_line": 4093 + }, + { + "left_line": 4070, + "right_line": 4094 + }, + { + "left_line": 4071, + "right_line": 4095 + }, + { + "left_line": 4072, + "right_line": 4096 + }, + { + "left_line": 4073, + "right_line": 4097 + }, + { + "left_line": 4074, + "right_line": 4098 + }, + { + "left_line": 4075, + "right_line": 4099 + }, + { + "left_line": 4076, + "right_line": 4100 + }, + { + "left_line": 4077, + "right_line": 4101 + }, + { + "left_line": 4078, + "right_line": 4102 + }, + { + "left_line": 4079, + "right_line": 4103 + }, + { + "left_line": 4080, + "right_line": 4104 + }, + { + "left_line": 4081, + "right_line": 4105 + }, + { + "left_line": 4082, + "right_line": 4106 + }, + { + "left_line": 4083, + "right_line": 4107 + }, + { + "left_line": 4084, + "right_line": 4108 + }, + { + "left_line": 4085, + "right_line": 4109 + }, + { + "left_line": 4086, + "right_line": 4110 + }, + { + "left_line": 4087, + "right_line": 4111 + }, + { + "left_line": 4088, + "right_line": 4112 + }, + { + "left_line": 4089, + "right_line": 4113 + }, + { + "left_line": 4090, + "right_line": 4114 + }, + { + "left_line": 4091, + "right_line": 4115 + }, + { + "left_line": 4092, + "right_line": 4116 + }, + { + "left_line": 4093, + "right_line": 4117 + }, + { + "left_line": 4094, + "right_line": 4118 + }, + { + "left_line": 4095, + "right_line": 4119 + }, + { + "left_line": 4096, + "right_line": 4120 + }, + { + "left_line": 4097, + "right_line": 4121 + }, + { + "left_line": 4098, + "right_line": 4122 + }, + { + "left_line": 4099, + "right_line": 4123 + }, + { + "left_line": 4100, + "right_line": 4124 + }, + { + "left_line": 4101, + "right_line": 4125 + }, + { + "left_line": 4102, + "right_line": 4126 + }, + { + "left_line": 4103, + "right_line": 4127 + }, + { + "left_line": 4104, + "right_line": 4128 + }, + { + "left_line": 4105, + "right_line": 4129 + }, + { + "left_line": 4106, + "right_line": 4130 + }, + { + "left_line": 4107, + "right_line": 4131 + }, + { + "left_line": 4108, + "right_line": 4132 + }, + { + "left_line": 4109, + "right_line": 4133 + }, + { + "left_line": 4110, + "right_line": 4134 + }, + { + "left_line": 4111, + "right_line": 4135 + }, + { + "left_line": 4112, + "right_line": 4136 + }, + { + "left_line": 4113, + "right_line": 4137 + }, + { + "left_line": 4114, + "right_line": 4138 + }, + { + "left_line": 4115, + "right_line": 4139 + }, + { + "left_line": 4116, + "right_line": 4140 + }, + { + "left_line": 4117, + "right_line": 4141 + }, + { + "left_line": 4118, + "right_line": 4142 + }, + { + "left_line": 4119, + "right_line": 4143 + }, + { + "left_line": 4120, + "right_line": 4144 + }, + { + "left_line": 4121, + "right_line": 4145 + }, + { + "left_line": 4122, + "right_line": 4146 + }, + { + "left_line": 4123, + "right_line": 4147 + }, + { + "left_line": 4124, + "right_line": 4148 + }, + { + "left_line": 4125, + "right_line": 4149 + }, + { + "left_line": 4126, + "right_line": 4150 + }, + { + "left_line": 4127, + "right_line": 4151 + }, + { + "left_line": 4128, + "right_line": 4152 + }, + { + "left_line": 4129, + "right_line": 4153 + }, + { + "left_line": 4130, + "right_line": 4154 + }, + { + "left_line": 4131, + "right_line": 4155 + }, + { + "left_line": 4132, + "right_line": 4156 + }, + { + "left_line": 4133, + "right_line": 4157 + }, + { + "left_line": 4134, + "right_line": 4158 + }, + { + "left_line": 4135, + "right_line": 4159 + }, + { + "left_line": 4136, + "right_line": 4160 + }, + { + "left_line": 4137, + "right_line": 4161 + }, + { + "left_line": 4138, + "right_line": 4162 + }, + { + "left_line": 4139, + "right_line": 4163 + }, + { + "left_line": 4140, + "right_line": 4164 + }, + { + "left_line": 4141, + "right_line": 4165 + }, + { + "left_line": 4142, + "right_line": 4166 + }, + { + "left_line": 4143, + "right_line": 4167 + }, + { + "left_line": 4144, + "right_line": 4168 + }, + { + "left_line": 4145, + "right_line": 4169 + }, + { + "left_line": 4146, + "right_line": 4170 + }, + { + "left_line": 4147, + "right_line": 4171 + }, + { + "left_line": 4148, + "right_line": 4172 + }, + { + "left_line": 4149, + "right_line": 4173 + }, + { + "left_line": 4150, + "right_line": 4174 + }, + { + "left_line": 4151, + "right_line": 4175 + }, + { + "left_line": 4152, + "right_line": 4176 + }, + { + "left_line": 4153, + "right_line": 4177 + }, + { + "left_line": 4154, + "right_line": 4178 + }, + { + "left_line": 4155, + "right_line": 4179 + }, + { + "left_line": 4156, + "right_line": 4180 + }, + { + "left_line": 4157, + "right_line": 4181 + }, + { + "left_line": 4158, + "right_line": 4182 + }, + { + "left_line": 4159, + "right_line": 4183 + }, + { + "left_line": 4160, + "right_line": 4184 + }, + { + "left_line": 4161, + "right_line": 4185 + }, + { + "left_line": 4162, + "right_line": 4186 + }, + { + "left_line": 4163, + "right_line": 4187 + }, + { + "left_line": 4164, + "right_line": 4188 + }, + { + "left_line": 4165, + "right_line": 4189 + }, + { + "left_line": 4166, + "right_line": 4190 + }, + { + "left_line": 4167, + "right_line": 4191 + }, + { + "left_line": 4168, + "right_line": 4192 + }, + { + "left_line": 4169, + "right_line": 4193 + }, + { + "left_line": 4170, + "right_line": 4194 + }, + { + "left_line": 4171, + "right_line": 4195 + }, + { + "left_line": 4172, + "right_line": 4196 + }, + { + "left_line": 4173, + "right_line": 4197 + }, + { + "left_line": 4174, + "right_line": 4198 + }, + { + "left_line": 4175, + "right_line": 4199 + }, + { + "left_line": 4176, + "right_line": 4200 + }, + { + "left_line": 4177, + "right_line": 4201 + }, + { + "left_line": 4178, + "right_line": 4202 + }, + { + "left_line": 4179, + "right_line": 4203 + }, + { + "left_line": 4180, + "right_line": 4204 + }, + { + "left_line": 4181, + "right_line": 4205 + }, + { + "left_line": 4182, + "right_line": 4206 + }, + { + "left_line": 4183, + "right_line": 4207 + }, + { + "left_line": 4184, + "right_line": 4208 + }, + { + "left_line": 4185, + "right_line": 4209 + }, + { + "left_line": 4186, + "right_line": 4210 + }, + { + "left_line": 4187, + "right_line": 4211 + }, + { + "left_line": 4188, + "right_line": 4212 + }, + { + "left_line": 4189, + "right_line": 4213 + }, + { + "left_line": 4190, + "right_line": 4214 + }, + { + "left_line": 4191, + "right_line": 4215 + }, + { + "left_line": 4192, + "right_line": 4216 + }, + { + "left_line": 4193, + "right_line": 4217 + }, + { + "left_line": 4194, + "right_line": 4218 + }, + { + "left_line": 4195, + "right_line": 4219 + }, + { + "left_line": 4196, + "right_line": 4220 + }, + { + "left_line": 4197, + "right_line": 4221 + }, + { + "left_line": 4198, + "right_line": 4222 + }, + { + "left_line": 4199, + "right_line": 4223 + }, + { + "left_line": 4200, + "right_line": 4224 + }, + { + "left_line": 4201, + "right_line": 4225 + }, + { + "left_line": 4202, + "right_line": 4226 + }, + { + "left_line": 4203, + "right_line": 4227 + }, + { + "left_line": 4204, + "right_line": 4228 + }, + { + "left_line": 4205, + "right_line": 4229 + }, + { + "left_line": 4206, + "right_line": 4230 + }, + { + "left_line": 4207, + "right_line": 4231 + }, + { + "left_line": 4208, + "right_line": 4232 + }, + { + "left_line": 4209, + "right_line": 4233 + }, + { + "left_line": 4210, + "right_line": 4234 + }, + { + "left_line": 4211, + "right_line": 4235 + }, + { + "left_line": 4212, + "right_line": 4236 + }, + { + "left_line": 4213, + "right_line": 4237 + }, + { + "left_line": 4214, + "right_line": 4238 + }, + { + "left_line": 4215, + "right_line": 4239 + }, + { + "left_line": 4216, + "right_line": 4240 + }, + { + "left_line": 4217, + "right_line": 4241 + }, + { + "left_line": 4218, + "right_line": 4242 + }, + { + "left_line": 4219, + "right_line": 4243 + }, + { + "left_line": 4220, + "right_line": 4244 + }, + { + "left_line": 4221, + "right_line": 4245 + }, + { + "left_line": 4222, + "right_line": 4246 + }, + { + "left_line": 4223, + "right_line": 4247 + }, + { + "left_line": 4224, + "right_line": 4248 + }, + { + "left_line": 4225, + "right_line": 4249 + }, + { + "left_line": 4226, + "right_line": 4250 + }, + { + "left_line": 4227, + "right_line": 4251 + }, + { + "left_line": 4228, + "right_line": 4252 + }, + { + "left_line": 4229, + "right_line": 4253 + }, + { + "left_line": 4230, + "right_line": 4254 + }, + { + "left_line": 4231, + "right_line": 4255 + }, + { + "left_line": 4232, + "right_line": 4256 + }, + { + "left_line": 4233, + "right_line": 4257 + }, + { + "left_line": 4234, + "right_line": 4258 + }, + { + "left_line": 4235, + "right_line": 4259 + }, + { + "left_line": 4236, + "right_line": 4260 + }, + { + "left_line": 4237, + "right_line": 4261 + }, + { + "left_line": 4238, + "right_line": 4262 + }, + { + "left_line": 4239, + "right_line": 4263 + }, + { + "left_line": 4240, + "right_line": 4264 + }, + { + "left_line": 4241, + "right_line": 4265 + }, + { + "left_line": 4242, + "right_line": 4266 + }, + { + "left_line": 4243, + "right_line": 4267 + }, + { + "left_line": 4244, + "right_line": 4268 + }, + { + "left_line": 4245, + "right_line": 4269 + }, + { + "left_line": 4246, + "right_line": 4270 + }, + { + "left_line": 4247, + "right_line": 4271 + }, + { + "left_line": 4248, + "right_line": 4272 + }, + { + "left_line": 4249, + "right_line": 4273 + }, + { + "left_line": 4250, + "right_line": 4274 + }, + { + "left_line": 4251, + "right_line": 4275 + }, + { + "left_line": 4252, + "right_line": 4276 + }, + { + "left_line": 4253, + "right_line": 4277 + }, + { + "left_line": 4254, + "right_line": 4278 + }, + { + "left_line": 4255, + "right_line": 4279 + }, + { + "left_line": 4256, + "right_line": 4280 + }, + { + "left_line": 4257, + "right_line": 4281 + }, + { + "left_line": 4258, + "right_line": 4282 + }, + { + "left_line": 4259, + "right_line": 4283 + }, + { + "left_line": 4260, + "right_line": 4284 + }, + { + "left_line": 4261, + "right_line": 4285 + }, + { + "left_line": 4262, + "right_line": 4286 + }, + { + "left_line": 4263, + "right_line": 4287 + }, + { + "left_line": 4264, + "right_line": 4288 + }, + { + "left_line": 4265, + "right_line": 4289 + }, + { + "left_line": 4266, + "right_line": 4290 + }, + { + "left_line": 4267, + "right_line": 4291 + }, + { + "left_line": 4268, + "right_line": 4292 + }, + { + "left_line": 4269, + "right_line": 4293 + }, + { + "left_line": 4270, + "right_line": 4294 + }, + { + "left_line": 4271, + "right_line": 4295 + }, + { + "left_line": 4272, + "right_line": 4296 + }, + { + "left_line": 4273, + "right_line": 4297 + }, + { + "left_line": 4274, + "right_line": 4298 + }, + { + "left_line": 4275, + "right_line": 4299 + }, + { + "left_line": 4276, + "right_line": 4300 + }, + { + "left_line": 4277, + "right_line": 4301 + }, + { + "left_line": 4278, + "right_line": 4302 + }, + { + "left_line": 4279, + "right_line": 4303 + }, + { + "left_line": 4280, + "right_line": 4304 + }, + { + "left_line": 4281, + "right_line": 4305 + }, + { + "left_line": 4282, + "right_line": 4306 + }, + { + "left_line": 4283, + "right_line": 4307 + }, + { + "left_line": 4284, + "right_line": 4308 + }, + { + "left_line": 4285, + "right_line": 4309 + }, + { + "left_line": 4286, + "right_line": 4310 + }, + { + "left_line": 4287, + "right_line": 4311 + }, + { + "left_line": 4288, + "right_line": 4312 + }, + { + "left_line": 4289, + "right_line": 4313 + }, + { + "left_line": 4290, + "right_line": 4314 + }, + { + "left_line": 4291, + "right_line": 4315 + }, + { + "left_line": 4292, + "right_line": 4316 + }, + { + "left_line": 4293, + "right_line": 4317 + }, + { + "left_line": 4294, + "right_line": 4318 + }, + { + "left_line": 4295, + "right_line": 4319 + }, + { + "left_line": 4296, + "right_line": 4320 + }, + { + "left_line": 4297, + "right_line": 4321 + }, + { + "left_line": 4298, + "right_line": 4322 + }, + { + "left_line": 4299, + "right_line": 4323 + }, + { + "left_line": 4300, + "right_line": 4324 + }, + { + "left_line": 4301, + "right_line": 4325 + }, + { + "left_line": 4302, + "right_line": 4326 + }, + { + "left_line": 4303, + "right_line": 4327 + }, + { + "left_line": 4304, + "right_line": 4328 + }, + { + "left_line": 4305, + "right_line": 4329 + }, + { + "left_line": 4306, + "right_line": 4330 + }, + { + "left_line": 4307, + "right_line": 4331 + }, + { + "left_line": 4308, + "right_line": 4332 + }, + { + "left_line": 4309, + "right_line": 4333 + }, + { + "left_line": 4310, + "right_line": 4334 + }, + { + "left_line": 4311, + "right_line": 4335 + }, + { + "left_line": 4312, + "right_line": 4336 + }, + { + "left_line": 4313, + "right_line": 4337 + }, + { + "left_line": 4314, + "right_line": 4338 + }, + { + "left_line": 4315, + "right_line": 4339 + }, + { + "left_line": 4316, + "right_line": 4340 + }, + { + "left_line": 4317, + "right_line": 4341 + }, + { + "left_line": 4318, + "right_line": 4342 + }, + { + "left_line": 4319, + "right_line": 4343 + }, + { + "left_line": 4320, + "right_line": 4344 + }, + { + "left_line": 4321, + "right_line": 4345 + }, + { + "left_line": 4322, + "right_line": 4346 + }, + { + "left_line": 4323, + "right_line": 4347 + }, + { + "left_line": 4324, + "right_line": 4348 + }, + { + "left_line": 4325, + "right_line": 4349 + }, + { + "left_line": 4326, + "right_line": 4350 + }, + { + "left_line": 4327, + "right_line": 4351 + }, + { + "left_line": 4328, + "right_line": 4352 + }, + { + "left_line": 4329, + "right_line": 4353 + }, + { + "left_line": 4330, + "right_line": 4354 + }, + { + "left_line": 4331, + "right_line": 4355 + }, + { + "left_line": 4332, + "right_line": 4356 + }, + { + "left_line": 4333, + "right_line": 4357 + }, + { + "left_line": 4334, + "right_line": 4358 + }, + { + "left_line": 4335, + "right_line": 4359 + }, + { + "left_line": 4336, + "right_line": 4360 + }, + { + "left_line": 4337, + "right_line": 4361 + }, + { + "left_line": 4338, + "right_line": 4362 + }, + { + "left_line": 4339, + "right_line": 4363 + }, + { + "left_line": 4340, + "right_line": 4364 + }, + { + "left_line": 4341, + "right_line": 4365 + }, + { + "left_line": 4342, + "right_line": 4366 + }, + { + "left_line": 4343, + "right_line": 4367 + }, + { + "left_line": 4344, + "right_line": 4368 + }, + { + "left_line": 4345, + "right_line": 4369 + }, + { + "left_line": 4346, + "right_line": 4370 + }, + { + "left_line": 4347, + "right_line": 4371 + }, + { + "left_line": 4348, + "right_line": 4372 + }, + { + "left_line": 4349, + "right_line": 4373 + }, + { + "left_line": 4350, + "right_line": 4374 + }, + { + "left_line": 4351, + "right_line": 4375 + }, + { + "left_line": 4352, + "right_line": 4376 + }, + { + "left_line": 4353, + "right_line": 4377 + }, + { + "left_line": 4354, + "right_line": 4378 + }, + { + "left_line": 4355, + "right_line": 4379 + }, + { + "left_line": 4356, + "right_line": 4380 + }, + { + "left_line": 4357, + "right_line": 4381 + }, + { + "left_line": 4358, + "right_line": 4382 + }, + { + "left_line": 4359, + "right_line": 4383 + }, + { + "left_line": 4360, + "right_line": 4384 + }, + { + "left_line": 4361, + "right_line": 4385 + }, + { + "left_line": 4362, + "right_line": 4386 + }, + { + "left_line": 4363, + "right_line": 4387 + }, + { + "left_line": 4364, + "right_line": 4388 + }, + { + "left_line": 4365, + "right_line": 4389 + }, + { + "left_line": 4366, + "right_line": 4390 + }, + { + "left_line": 4367, + "right_line": 4391 + }, + { + "left_line": 4368, + "right_line": 4392 + }, + { + "left_line": 4369, + "right_line": 4393 + }, + { + "left_line": 4370, + "right_line": 4394 + }, + { + "left_line": 4371, + "right_line": 4395 + }, + { + "left_line": 4372, + "right_line": 4396 + }, + { + "left_line": 4373, + "right_line": 4397 + }, + { + "left_line": 4374, + "right_line": 4398 + }, + { + "left_line": 4375, + "right_line": 4399 + }, + { + "left_line": 4376, + "right_line": 4400 + }, + { + "left_line": 4377, + "right_line": 4401 + }, + { + "left_line": 4378, + "right_line": 4402 + }, + { + "left_line": 4379, + "right_line": 4403 + }, + { + "left_line": 4380, + "right_line": 4404 + }, + { + "left_line": 4381, + "right_line": 4405 + }, + { + "left_line": 4382, + "right_line": 4406 + }, + { + "left_line": 4383, + "right_line": 4407 + }, + { + "left_line": 4384, + "right_line": 4408 + }, + { + "left_line": 4385, + "right_line": 4409 + }, + { + "left_line": 4386, + "right_line": 4410 + }, + { + "left_line": 4387, + "right_line": 4411 + }, + { + "left_line": 4388, + "right_line": 4412 + }, + { + "left_line": 4389, + "right_line": 4413 + }, + { + "left_line": 4390, + "right_line": 4414 + }, + { + "left_line": 4391, + "right_line": 4415 + }, + { + "left_line": 4392, + "right_line": 4416 + }, + { + "left_line": 4393, + "right_line": 4417 + }, + { + "left_line": 4394, + "right_line": 4418 + }, + { + "left_line": 4395, + "right_line": 4419 + }, + { + "left_line": 4396, + "right_line": 4420 + }, + { + "left_line": 4397, + "right_line": 4421 + }, + { + "left_line": 4398, + "right_line": 4422 + }, + { + "left_line": 4399, + "right_line": 4423 + }, + { + "left_line": 4400, + "right_line": 4424 + }, + { + "left_line": 4401, + "right_line": 4425 + }, + { + "left_line": 4402, + "right_line": 4426 + }, + { + "left_line": 4403, + "right_line": 4427 + }, + { + "left_line": 4404, + "right_line": 4428 + }, + { + "left_line": 4405, + "right_line": 4429 + }, + { + "left_line": 4406, + "right_line": 4430 + }, + { + "left_line": 4407, + "right_line": 4431 + }, + { + "left_line": 4408, + "right_line": 4432 + }, + { + "left_line": 4409, + "right_line": 4433 + }, + { + "left_line": 4410, + "right_line": 4434 + }, + { + "left_line": 4411, + "right_line": 4435 + }, + { + "left_line": 4412, + "right_line": 4436 + }, + { + "left_line": 4413, + "right_line": 4437 + }, + { + "left_line": 4414, + "right_line": 4438 + }, + { + "left_line": 4415, + "right_line": 4439 + }, + { + "left_line": 4416, + "right_line": 4440 + }, + { + "left_line": 4417, + "right_line": 4441 + }, + { + "left_line": 4418, + "right_line": 4442 + }, + { + "left_line": 4419, + "right_line": 4443 + }, + { + "left_line": 4420, + "right_line": 4444 + }, + { + "left_line": 4421, + "right_line": 4445 + }, + { + "left_line": 4422, + "right_line": 4446 + }, + { + "left_line": 4423, + "right_line": 4447 + }, + { + "left_line": 4424, + "right_line": 4448 + }, + { + "left_line": 4425, + "right_line": 4449 + }, + { + "left_line": 4426, + "right_line": 4450 + }, + { + "left_line": 4427, + "right_line": 4451 + }, + { + "left_line": 4428, + "right_line": 4452 + }, + { + "left_line": 4429, + "right_line": 4453 + }, + { + "left_line": 4430, + "right_line": 4454 + }, + { + "left_line": 4431, + "right_line": 4455 + }, + { + "left_line": 4432, + "right_line": 4456 + }, + { + "left_line": 4433, + "right_line": 4457 + }, + { + "left_line": 4434, + "right_line": 4458 + }, + { + "left_line": 4435, + "right_line": 4459 + }, + { + "left_line": 4436, + "right_line": 4460 + }, + { + "left_line": 4437, + "right_line": 4461 + }, + { + "left_line": 4438, + "right_line": 4462 + }, + { + "left_line": 4439, + "right_line": 4463 + }, + { + "left_line": 4440, + "right_line": 4464 + }, + { + "left_line": 4441, + "right_line": 4465 + }, + { + "left_line": 4442, + "right_line": 4466 + }, + { + "left_line": 4443, + "right_line": 4467 + }, + { + "left_line": 4444, + "right_line": 4468 + }, + { + "left_line": 4445, + "right_line": 4469 + }, + { + "left_line": 4446, + "right_line": 4470 + }, + { + "left_line": 4447, + "right_line": 4471 + }, + { + "left_line": 4448, + "right_line": 4472 + }, + { + "left_line": 4449, + "right_line": 4473 + }, + { + "left_line": 4450, + "right_line": 4474 + }, + { + "left_line": 4451, + "right_line": 4475 + }, + { + "left_line": 4452, + "right_line": 4476 + }, + { + "left_line": 4453, + "right_line": 4477 + }, + { + "left_line": 4454, + "right_line": 4478 + }, + { + "left_line": 4455, + "right_line": 4479 + }, + { + "left_line": 4456, + "right_line": 4480 + }, + { + "left_line": 4457, + "right_line": 4481 + }, + { + "left_line": 4458, + "right_line": 4482 + }, + { + "left_line": 4459, + "right_line": 4483 + }, + { + "left_line": 4460, + "right_line": 4484 + }, + { + "left_line": 4461, + "right_line": 4485 + }, + { + "left_line": 4462, + "right_line": 4486 + }, + { + "left_line": 4463, + "right_line": 4487 + }, + { + "left_line": 4464, + "right_line": 4488 + }, + { + "left_line": 4465, + "right_line": 4489 + }, + { + "left_line": 4466, + "right_line": 4490 + }, + { + "left_line": 4467, + "right_line": 4491 + }, + { + "left_line": 4468, + "right_line": 4492 + }, + { + "left_line": 4469, + "right_line": 4493 + }, + { + "left_line": 4470, + "right_line": 4494 + }, + { + "left_line": 4471, + "right_line": 4495 + }, + { + "left_line": 4472, + "right_line": 4496 + }, + { + "left_line": 4473, + "right_line": 4497 + }, + { + "left_line": 4474, + "right_line": 4498 + }, + { + "left_line": 4475, + "right_line": 4499 + }, + { + "left_line": 4476, + "right_line": 4500 + }, + { + "left_line": 4477, + "right_line": 4501 + }, + { + "left_line": 4478, + "right_line": 4502 + }, + { + "left_line": 4479, + "right_line": 4503 + }, + { + "left_line": 4480, + "right_line": 4504 + }, + { + "left_line": 4481, + "right_line": 4505 + }, + { + "left_line": 4482, + "right_line": 4506 + }, + { + "left_line": 4483, + "right_line": 4507 + }, + { + "left_line": 4484, + "right_line": 4508 + }, + { + "left_line": 4485, + "right_line": 4509 + }, + { + "left_line": 4486, + "right_line": 4510 + }, + { + "left_line": 4487, + "right_line": 4511 + }, + { + "left_line": 4488, + "right_line": 4512 + }, + { + "left_line": 4489, + "right_line": 4513 + }, + { + "left_line": 4490, + "right_line": 4514 + }, + { + "left_line": 4491, + "right_line": 4515 + }, + { + "left_line": 4492, + "right_line": 4516 + }, + { + "left_line": 4493, + "right_line": 4517 + }, + { + "left_line": 4494, + "right_line": 4518 + }, + { + "left_line": 4495, + "right_line": 4519 + }, + { + "left_line": 4496, + "right_line": 4520 + }, + { + "left_line": 4497, + "right_line": 4521 + }, + { + "left_line": 4498, + "right_line": 4522 + }, + { + "left_line": 4499, + "right_line": 4523 + }, + { + "left_line": 4500, + "right_line": 4524 + }, + { + "left_line": 4501, + "right_line": 4525 + }, + { + "left_line": 4502, + "right_line": 4526 + }, + { + "left_line": 4503, + "right_line": 4527 + }, + { + "left_line": 4504, + "right_line": 4528 + }, + { + "left_line": 4505, + "right_line": 4529 + }, + { + "left_line": 4506, + "right_line": 4530 + }, + { + "left_line": 4507, + "right_line": 4531 + }, + { + "left_line": 4508, + "right_line": 4532 + }, + { + "left_line": 4509, + "right_line": 4533 + }, + { + "left_line": 4510, + "right_line": 4534 + }, + { + "left_line": 4511, + "right_line": 4535 + }, + { + "left_line": 4512, + "right_line": 4536 + }, + { + "left_line": 4513, + "right_line": 4537 + }, + { + "left_line": 4514, + "right_line": 4538 + }, + { + "left_line": 4515, + "right_line": 4539 + }, + { + "left_line": 4516, + "right_line": 4540 + }, + { + "left_line": 4517, + "right_line": 4541 + }, + { + "left_line": 4518, + "right_line": 4542 + }, + { + "left_line": 4519, + "right_line": 4543 + }, + { + "left_line": 4520, + "right_line": 4544 + }, + { + "left_line": 4521, + "right_line": 4545 + }, + { + "left_line": 4522, + "right_line": 4546 + }, + { + "left_line": 4523, + "right_line": 4547 + }, + { + "left_line": 4524, + "right_line": 4548 + }, + { + "left_line": 4525, + "right_line": 4549 + }, + { + "left_line": 4526, + "right_line": 4550 + }, + { + "left_line": 4527, + "right_line": 4551 + }, + { + "left_line": 4528, + "right_line": 4552 + }, + { + "left_line": 4529, + "right_line": 4553 + }, + { + "left_line": 4530, + "right_line": 4554 + }, + { + "left_line": 4531, + "right_line": 4555 + }, + { + "left_line": 4532, + "right_line": 4556 + }, + { + "left_line": 4533, + "right_line": 4557 + }, + { + "left_line": 4534, + "right_line": 4558 + }, + { + "left_line": 4535, + "right_line": 4559 + }, + { + "left_line": 4536, + "right_line": 4560 + }, + { + "left_line": 4537, + "right_line": 4561 + }, + { + "left_line": 4538, + "right_line": 4562 + }, + { + "left_line": 4539, + "right_line": 4563 + }, + { + "left_line": 4540, + "right_line": 4564 + }, + { + "left_line": 4541, + "right_line": 4565 + }, + { + "left_line": 4542, + "right_line": 4566 + }, + { + "left_line": 4543, + "right_line": 4567 + }, + { + "left_line": 4544, + "right_line": 4568 + }, + { + "left_line": 4545, + "right_line": 4569 + }, + { + "left_line": 4546, + "right_line": 4570 + }, + { + "left_line": 4547, + "right_line": 4571 + }, + { + "left_line": 4548, + "right_line": 4572 + }, + { + "left_line": 4549, + "right_line": 4573 + }, + { + "left_line": 4550, + "right_line": 4574 + }, + { + "left_line": 4551, + "right_line": 4575 + }, + { + "left_line": 4552, + "right_line": 4576 + }, + { + "left_line": 4553, + "right_line": 4577 + }, + { + "left_line": 4554, + "right_line": 4578 + }, + { + "left_line": 4555, + "right_line": 4579 + }, + { + "left_line": 4556, + "right_line": 4580 + }, + { + "left_line": 4557, + "right_line": 4581 + }, + { + "left_line": 4558, + "right_line": 4582 + }, + { + "left_line": 4559, + "right_line": 4583 + }, + { + "left_line": 4560, + "right_line": 4584 + }, + { + "left_line": 4561, + "right_line": 4585 + }, + { + "left_line": 4562, + "right_line": 4586 + }, + { + "left_line": 4563, + "right_line": 4587 + }, + { + "left_line": 4564, + "right_line": 4588 + }, + { + "left_line": 4565, + "right_line": 4589 + }, + { + "left_line": 4566, + "right_line": 4590 + }, + { + "left_line": 4567, + "right_line": 4591 + }, + { + "left_line": 4568, + "right_line": 4592 + }, + { + "left_line": 4569, + "right_line": 4593 + }, + { + "left_line": 4570, + "right_line": 4594 + }, + { + "left_line": 4571, + "right_line": 4595 + }, + { + "left_line": 4572, + "right_line": 4596 + }, + { + "left_line": 4573, + "right_line": 4597 + }, + { + "left_line": 4574, + "right_line": 4598 + }, + { + "left_line": 4575, + "right_line": 4599 + }, + { + "left_line": 4576, + "right_line": 4600 + }, + { + "left_line": 4577, + "right_line": 4601 + }, + { + "left_line": 4578, + "right_line": 4602 + }, + { + "left_line": 4579, + "right_line": 4603 + }, + { + "left_line": 4580, + "right_line": 4604 + }, + { + "left_line": 4581, + "right_line": 4605 + }, + { + "left_line": 4582, + "right_line": 4606 + }, + { + "left_line": 4583, + "right_line": 4607 + }, + { + "left_line": 4584, + "right_line": 4608 + }, + { + "left_line": 4585, + "right_line": 4609 + }, + { + "left_line": 4586, + "right_line": 4610 + }, + { + "left_line": 4587, + "right_line": 4611 + }, + { + "left_line": 4588, + "right_line": 4612 + }, + { + "left_line": 4589, + "right_line": 4613 + }, + { + "left_line": 4590, + "right_line": 4614 + }, + { + "left_line": 4591, + "right_line": 4615 + }, + { + "left_line": 4592, + "right_line": 4616 + }, + { + "left_line": 4593, + "right_line": 4617 + }, + { + "left_line": 4594, + "right_line": 4618 + }, + { + "left_line": 4595, + "right_line": 4619 + }, + { + "left_line": 4596, + "right_line": 4620 + }, + { + "left_line": 4597, + "right_line": 4621 + }, + { + "left_line": 4598, + "right_line": 4622 + }, + { + "left_line": 4599, + "right_line": 4623 + }, + { + "left_line": 4600, + "right_line": 4624 + }, + { + "left_line": 4601, + "right_line": 4625 + }, + { + "left_line": 4602, + "right_line": 4626 + }, + { + "left_line": 4603, + "right_line": 4627 + }, + { + "left_line": 4604, + "right_line": 4628 + }, + { + "left_line": 4605, + "right_line": 4629 + }, + { + "left_line": 4606, + "right_line": 4630 + }, + { + "left_line": 4607, + "right_line": 4631 + }, + { + "left_line": 4608, + "right_line": 4632 + }, + { + "left_line": 4609, + "right_line": 4633 + }, + { + "left_line": 4610, + "right_line": 4634 + }, + { + "left_line": 4611, + "right_line": 4635 + }, + { + "left_line": 4612, + "right_line": 4636 + }, + { + "left_line": 4613, + "right_line": 4637 + }, + { + "left_line": 4614, + "right_line": 4638 + }, + { + "left_line": 4615, + "right_line": 4639 + }, + { + "left_line": 4616, + "right_line": 4640 + }, + { + "left_line": 4617, + "right_line": 4641 + }, + { + "left_line": 4618, + "right_line": 4642 + }, + { + "left_line": 4619, + "right_line": 4643 + }, + { + "left_line": 4620, + "right_line": 4644 + }, + { + "left_line": 4621, + "right_line": 4645 + }, + { + "left_line": 4622, + "right_line": 4646 + }, + { + "left_line": 4623, + "right_line": 4647 + }, + { + "left_line": 4624, + "right_line": 4648 + }, + { + "left_line": 4625, + "right_line": 4649 + }, + { + "left_line": 4626, + "right_line": 4650 + }, + { + "left_line": 4627, + "right_line": 4651 + }, + { + "left_line": 4628, + "right_line": 4652 + }, + { + "left_line": 4629, + "right_line": 4653 + }, + { + "left_line": 4630, + "right_line": 4654 + }, + { + "left_line": 4631, + "right_line": 4655 + }, + { + "left_line": 4632, + "right_line": 4656 + }, + { + "left_line": 4633, + "right_line": 4657 + }, + { + "left_line": 4634, + "right_line": 4658 + }, + { + "left_line": 4635, + "right_line": 4659 + }, + { + "left_line": 4636, + "right_line": 4660 + }, + { + "left_line": 4637, + "right_line": 4661 + }, + { + "left_line": 4638, + "right_line": 4662 + }, + { + "left_line": 4639, + "right_line": 4663 + }, + { + "left_line": 4640, + "right_line": 4664 + }, + { + "left_line": 4641, + "right_line": 4665 + }, + { + "left_line": 4642, + "right_line": 4666 + }, + { + "left_line": 4643, + "right_line": 4667 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_hugo_theme_config/metadata.json b/tests/testdata/json_schemastore_hugo_theme_config/metadata.json new file mode 100644 index 0000000..2591f09 --- /dev/null +++ b/tests/testdata/json_schemastore_hugo_theme_config/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "5ae8bc24f17bd14be8469b1ba300b7dda1714165", + "description": "Update hugo theme config schema", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_hugo_theme_config/new.json b/tests/testdata/json_schemastore_hugo_theme_config/new.json new file mode 100644 index 0000000..606a9d0 --- /dev/null +++ b/tests/testdata/json_schemastore_hugo_theme_config/new.json @@ -0,0 +1,4667 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/hugo.json", + "$comment": "https://gohugo.io/getting-started/configuration/", + "definitions": { + "uniqueStringArray": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "outputFormats": { + "type": "object", + "additionalProperties": { + "title": "output format options", + "description": "The output format options\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "object", + "properties": { + "name": { + "description": "The identifier\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "minLength": 1 + }, + "mediaType": { + "description": "The media type\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "string", + "examples": [ + "application/json", + "application/manifest+json", + "application/octet-stream", + "application/pdf", + "application/rss+xml", + "application/toml", + "application/wasm", + "application/xml", + "application/yaml", + "font/otf", + "font/ttf", + "image/bmp", + "image/gif", + "image/jpeg", + "image/png", + "image/svg+xml", + "image/tiff", + "image/webp", + "text/calendar", + "text/css", + "text/csv", + "text/html", + "text/javascript", + "text/jsx", + "text/markdown", + "text/plain", + "text/tsx", + "text/typescript", + "text/x-sass", + "text/x-scss", + "video/3gpp", + "video/mp4", + "video/mpeg", + "video/ogg", + "video/webm", + "video/x-msvideo" + ] + }, + "path": { + "description": "The path\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "minLength": 1 + }, + "baseName": { + "description": "The base filename for the list filenames\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "default": "index" + }, + "rel": { + "description": "\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "default": "alternate" + }, + "protocol": { + "description": "The replacement for `http://` or `https://` in `baseURL`\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string" + }, + "isPlainText": { + "description": "Enable/disable Go's plain text templates parser for the templates\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "isHTML": { + "description": "\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "noUgly": { + "description": "Enable/disable adding file extensions to urls\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "notAlternative": { + "description": "Include/exclude this format in an AlternativeOutputFormats format listing\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "permalinkable": { + "description": "Enable/disable .Permalink and .RelPermalink return the rendering output format\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "weight": { + "description": "The weight\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "integer" + } + }, + "additionalProperties": false + } + }, + "cascade": { + "type": "object", + "properties": { + "aliases": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The aliases\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "audio": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The audio\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "build": { + "description": "\nhttps://gohugo.io/content-management/build-options/", + "type": "object", + "properties": { + "list": { + "description": "\nhttps://gohugo.io/content-management/build-options/#list", + "type": "string", + "enum": ["always", "local", "never"] + }, + "publishResources": { + "description": "\nhttps://gohugo.io/content-management/build-options/#publishresources", + "type": "boolean" + }, + "render": { + "description": "\nhttps://gohugo.io/content-management/build-options/#render", + "type": "string", + "enum": ["always", "link", "never"] + } + } + }, + "date": { + "description": "The datetime\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "description": { + "description": "The description\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string" + }, + "draft": { + "description": "Specify that the content is (not) the draft\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "boolean" + }, + "expiryDate": { + "description": "The expire date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "headless": { + "description": "Specify that the content is (not) the headless bundle\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "boolean" + }, + "images": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The images\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "isCJKLanguage": { + "description": "Specify that the page language is (not) the CJK language\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "boolean" + }, + "keywords": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The keywords\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "layout": { + "description": "The layout\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "lastmod": { + "description": "The last modification time\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "linkTitle": { + "description": "The link title\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "markup": { + "description": "\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "enum": ["rst", "md"] + }, + "menus": { + "description": "\nhttps://gohugo.io/content-management/menus/", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "type": "object", + "additionalProperties": true + }, + "parent": { + "type": "string" + }, + "post": { + "type": "string" + }, + "pre": { + "type": "string" + }, + "weight": { + "type": "integer", + "not": { + "const": 0 + } + } + } + } + } + ] + }, + "modified": { + "description": "The last modification time\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "outputs": { + "$ref": "#/definitions/outputFormats", + "title": "output format options", + "description": "The output format options\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "params": { + "type": "object", + "additionalProperties": true + }, + "pubdate": { + "description": "The publish date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "publishDate": { + "description": "The publish date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "published": { + "description": "The publish date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "resources": { + "title": "resource options", + "description": "The resource options\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "object", + "properties": { + "name": { + "description": "The value for `Name`\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata", + "type": "string", + "minLength": 1, + "examples": [":counter"] + }, + "title": { + "description": "The value for `Title`\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata", + "type": "string", + "minLength": 1, + "examples": [":counter"] + }, + "params": { + "title": "param options", + "description": "The param options\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata", + "type": "object", + "additionalProperties": { + "description": "The param\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata" + } + } + }, + "additionalProperties": false + }, + "sitemap": { + "type": "object", + "properties": { + "changefreq": { + "description": "\nhttps://gohugo.io/configuration/sitemap/#changefreq", + "type": "string", + "enum": [ + "", + "always", + "hourly", + "daily", + "weekly", + "monthly", + "yearly", + "never" + ] + }, + "disable": { + "description": "https://gohugo.io/configuration/sitemap/#disable", + "type": "boolean" + }, + "priority": { + "type": "number", + "oneOf": [ + { + "const": -1 + }, + { + "minimum": 0, + "maximum": 1 + } + ] + } + } + }, + "series": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The series\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "slug": { + "description": "The slug\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "summary": { + "description": "The summary\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "target": { + "description": "The front matter default\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "object", + "properties": { + "environment": { + "description": "", + "type": "string", + "minLength": 1, + "examples": ["development", "staging", "production"] + }, + "path": { + "description": "The glob pattern matching the content path below /content\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "string", + "minLength": 1 + }, + "kind": { + "description": "The glob pattern matching the page's kind\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "string", + "minLength": 1 + }, + "lang": { + "description": "The glob pattern matching the page's language\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false + }, + "title": { + "description": "The title\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "translationKey": { + "type": "string", + "minLength": 1 + }, + "type": { + "description": "The type\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "unpublishdate": { + "description": "The expire date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "url": { + "description": "The url\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "videos": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The videos\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "weight": { + "description": "The weight\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "integer" + } + }, + "patternProperties": { + "^(?!aliases|audio|build|date|description|draft|expiryDate|headless|images|isCJKLanguage|keywords|layout|lastmod|linkTitle|markup|menus|modified|outputs|params|pubdate|publishDate|published|resources|sitemap|series|slug|summary|target|title|translationKey|type|unpublishdate|url|videos|weight)$": { + "description": "The front matter default\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade" + } + } + }, + "hugoVersion": { + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+.*$" + }, + "mergeType": { + "description": "Merge configuration from themes\nhttps://gohugo.io/getting-started/configuration/#merge-configuration-from-themes", + "type": "string", + "enum": ["none", "shallow", "deep"] + }, + "mounts": { + "type": "array", + "items": { + "type": "object", + "default": [ + { + "source": "content", + "target": "content" + }, + { + "source": "static", + "target": "static" + }, + { + "source": "layouts", + "target": "layouts" + }, + { + "source": "data", + "target": "data" + }, + { + "source": "assets", + "target": "assets" + }, + { + "source": "i18n", + "target": "i18n" + }, + { + "source": "archetypes", + "target": "archetypes" + } + ], + "required": ["source", "target"], + "properties": { + "source": { + "description": "The source path\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "string", + "minLength": 1 + }, + "target": { + "description": "The target path\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "string", + "minLength": 1 + }, + "disableWatch": { + "description": "Whether to disable watching\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "boolean", + "default": false + }, + "lang": { + "description": "The language code\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "string", + "minLength": 1 + }, + "includeFiles": { + "description": "The included files\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + ] + }, + "excludeFiles": { + "description": "The excluded files\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + ] + } + }, + "additionalProperties": false + } + }, + "permalinkDefinition": { + "description": "A permalink", + "type": "string", + "examples": [ + ":year", + ":month", + ":monthname", + ":day", + ":weekday", + ":weekdayname", + ":yearday", + ":section", + ":sections", + ":title", + ":slug", + ":filename" + ] + }, + "permalinkConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/permalinkDefinition" + }, + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/permalinkDefinition" + } + } + ] + }, + "duration": { + "description": "Length of time expressed in seconds (s), minutes (m), and hours (h)", + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9smh]*$", + "minLength": 1 + }, + { + "type": "integer", + "const": 0 + } + ] + }, + "stringOrStringArray": { + "oneOf": [ + { + "type": "string", + "minLength": 1 + }, + { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + ] + }, + "segmentIncludesExcludes": { + "type": "object", + "properties": { + "kind": { + "description": "A glob pattern matching the page kind\nhttps://gohugo.io/configuration/segments/#kind", + "type": "string", + "examples": ["taxonomy", "term"] + }, + "lang": { + "description": " A glob pattern matching the page language\nhttps://gohugo.io/configuration/segments/#lang", + "type": "string", + "examples": ["en", "de"] + }, + "output": { + "description": "A glob pattern matching the page output format\nhttps://gohugo.io/configuration/segments/#output", + "type": "string", + "examples": ["html", "json"] + }, + "path": { + "description": "A glob pattern matching the page’s logical path\nhttps://gohugo.io/configuration/segments/#path", + "type": "string", + "examples": ["/books", "books/**"] + } + } + } + }, + "properties": { + "archetypeDir": { + "description": "The directory to store archetype files\nhttps://gohugo.io/getting-started/configuration/#archetypedir", + "type": "string", + "default": "archetypes", + "minLength": 1 + }, + "assetDir": { + "description": "The directory to store asset files\nhttps://gohugo.io/getting-started/configuration/#assetdir", + "type": "string", + "default": "assets", + "minLength": 1 + }, + "baseURL": { + "description": "The hostname and the path to the root\nhttps://gohugo.io/getting-started/configuration/#baseurl", + "type": "string", + "minLength": 1 + }, + "build": { + "title": "build options", + "description": "The build options\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "useResourceCacheWhen": { + "description": "The time when to use the cached resources in `/resources/_gen` for `PostCSS` and `ToCSS`\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "string", + "default": "fallback", + "enum": ["never", "always", "fallback"] + }, + "writeStats": { + "description": "Enable/disable `hugo_stats.json` writing to the root project directory.\nAlthough still functional, the writeStats key will be deprecated in a future release.\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "boolean", + "default": false, + "deprecated": true + }, + "buildStats": { + "title": "build stats", + "description": "When enabled, creates a hugo_stats.json file in the root of your project.\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "disableClasses": { + "type": "boolean", + "default": false + }, + "disableIDs": { + "type": "boolean", + "default": false + }, + "disableTags": { + "type": "boolean", + "default": false + } + } + }, + "noJSConfigInAssets": { + "description": "Enable/disable `jsconfig.json` writing into your `/assets` folder with mapping of imports from running `js.Build`\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "boolean", + "default": false + }, + "cachebusters": { + "title": "Cache busters", + "description": "Cache busters to support development using Tailwind 3.x's JIT compiler\nhttps://gohugo.io/getting-started/configuration/#configure-cache-busters", + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "target": { + "type": "string" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "buildDrafts": { + "description": "Include/exclude the drafts when building\nhttps://gohugo.io/getting-started/configuration/#builddrafts-false", + "type": "boolean", + "default": false + }, + "buildExpired": { + "description": "Include/exclude the content already expired\nhttps://gohugo.io/getting-started/configuration/#buildexpired", + "type": "boolean", + "default": false + }, + "buildFuture": { + "description": "Include/exclude the content with `publishDate` in the future\nhttps://gohugo.io/getting-started/configuration/#buildfuture", + "type": "boolean", + "default": false + }, + "cacheDir": { + "description": "The directory where cached files are stored\nhttps://gohugo.io/configuration/all/#cachedir", + "type": "string", + "minLength": 1 + }, + "caches": { + "title": "cache options", + "description": "The cache options\nhttps://gohugo.io/getting-started/configuration/#configure-file-caches", + "type": "object", + "default": { + "assets": { + "dir": ":resourceDir/_gen", + "maxAge": -1 + }, + "getcsv": { + "dir": ":cacheDir/:project", + "maxAge": -1 + }, + "getjson": { + "dir": ":cacheDir/:project", + "maxAge": -1 + }, + "getresource": { + "dir": ":cacheDir/:project", + "maxAge": -1 + }, + "images": { + "dir": ":resourceDir/_gen", + "maxAge": -1 + }, + "modules": { + "dir": ":cacheDir/modules", + "maxAge": -1 + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + } + }, + "additionalProperties": { + "description": "Cache entry", + "type": "object", + "properties": { + "maxAge": { + "description": "The duration before the cache entry will be evicted\nhttps://gohugo.io/getting-started/configuration/#the-keywords-explained", + "default": -1, + "examples": ["0", "10s", "10m", "10h"], + "oneOf": [ + { + "type": "integer", + "minimum": -1 + }, + { + "type": "string", + "pattern": "^-?\\d+[smh]?$" + } + ] + }, + "dir": { + "description": "The absolute path to store cache files\nhttps://gohugo.io/getting-started/configuration/#the-keywords-explained", + "type": "string", + "examples": [ + ":cacheDir", + ":project", + ":resourceDir", + ":resourceDir/_gen", + ":cacheDir/:project", + ":cacheDir/modules" + ], + "minLength": 1 + } + }, + "additionalProperties": false + } + }, + "cascade": { + "title": "front matter options", + "description": "The front matter options\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "oneOf": [ + { + "$ref": "#/definitions/cascade", + "type": "object" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/cascade", + "type": "object" + } + } + ] + }, + "canonifyURLs": { + "description": "Enable/disable relative URLs to absolute conversion\nhttps://gohugo.io/getting-started/configuration/#canonifyurls", + "type": "boolean", + "default": false + }, + "capitalizeListTitles": { + "description": "Enable/disable the automatic capitalize of list titles\nhttps://gohugo.io/configuration/all/#capitalizelisttitles", + "type": "boolean", + "default": true + }, + "cleanDestinationDir": { + "description": "Enable/disable cleaning of the destination directory\nhttps://gohugo.io/configuration/all/#cleandestinationdir", + "type": "boolean", + "default": false + }, + "contentDir": { + "description": "The directory where content files are stored\nhttps://gohugo.io/getting-started/configuration/#contentdir", + "type": "string", + "default": "content", + "minLength": 1 + }, + "copyright": { + "description": "The copyright notice for your site\nhttps://gohugo.io/getting-started/configuration/#copyright", + "type": "string", + "default": "" + }, + "dataDir": { + "description": "The directory where data files are stored\nhttps://gohugo.io/getting-started/configuration/#datadir", + "type": "string", + "default": "data", + "minLength": 1 + }, + "defaultContentLanguage": { + "description": "The default content language for the content without language indicator\nhttps://gohugo.io/getting-started/configuration/#defaultcontentlanguage", + "type": "string", + "default": "en", + "minLength": 1 + }, + "defaultContentLanguageInSubdir": { + "description": "Enable/disable rendering the default content language in subdir\nhttps://gohugo.io/getting-started/configuration/#defaultcontentlanguageinsubdir", + "type": "boolean", + "default": false + }, + "defaultOutputFormat": { + "description": "The default output format for the site\nhttps://gohugo.io/configuration/all/#defaultoutputformat", + "type": "string", + "minLength": 1 + }, + "disableAliases": { + "description": "Enable/disable generation of the alias redirects\nhttps://gohugo.io/getting-started/configuration/#disablealiases", + "type": "boolean", + "default": false + }, + "disableDefaultLanguateRedirect": { + "description": "Enable/disable generation of of the alias redirect to the default language when DefaultContentLanguageInSubdir is true\nhttps://gohugo.io/configuration/all/#disabledefaultlanguageredirect", + "type": "boolean", + "default": false + }, + "disableHugoGeneratorInject": { + "description": "Enable/disable injecting a generator meta tag in the HTML head on the home page only\nhttps://gohugo.io/getting-started/configuration/#disablehugogeneratorinject", + "type": "boolean", + "default": false + }, + "disableKinds": { + "description": "Disabled kinds of pages\nhttps://gohugo.io/getting-started/configuration/#disablekinds", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "page", + "home", + "section", + "taxonomy", + "term", + "rss", + "sitemap", + "robotstxt", + "404" + ] + } + }, + "disableLiveReload": { + "description": "Enable/disable automatic live reloading of browser window\nhttps://gohugo.io/getting-started/configuration/#disablelivereload", + "type": "boolean", + "default": false + }, + "disablePathToLower": { + "description": "Enable/disable the url/path to lowercase conversion\nhttps://gohugo.io/getting-started/configuration/#disablepathtolower", + "type": "boolean", + "default": false + }, + "enableEmoji": { + "description": "Enable/disable Emoji emoticons support for page content\nhttps://gohugo.io/getting-started/configuration/#enableemoji", + "type": "boolean", + "default": false + }, + "enableGitInfo": { + "description": "Enable/disable .GitInfo object for each page\nhttps://gohugo.io/getting-started/configuration/#enablegitinfo", + "type": "boolean", + "default": false + }, + "enableInlineShortcodes": { + "description": "Enable/disable inline shortcode support\nhttps://gohugo.io/getting-started/configuration/#enableinlineshortcodes", + "type": "boolean", + "default": false + }, + "enableMissingTranslationPlaceholders": { + "description": "Enable/disable placeholder substitution instead of the default value or an empty string if a translation is missing\nhttps://gohugo.io/getting-started/configuration/#enablemissingtranslationplaceholders", + "type": "boolean", + "default": false + }, + "enableRobotsTXT": { + "description": "Enable/disable generation of robots.txt file\nhttps://gohugo.io/getting-started/configuration/#enablerobotstxt", + "type": "boolean", + "default": false + }, + "environment": { + "description": "The build environment\nhttps://gohugo.io/configuration/all/#environment", + "type": "string", + "minLength": 1, + "examples": ["production", "development"] + }, + "frontmatter": { + "title": "front matter options", + "description": "The front matter options\nhttps://gohugo.io/getting-started/configuration/#configure-front-matter", + "type": "object", + "default": { + "date": ["date", "publishdate", "lastmod"], + "expiryDate": ["expirydate", "expiryDate"], + "lastmod": [":git", "lastmod", "date", "publishdate"], + "publishDate": ["publishdate", "date"] + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "date": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + ":fileModTime", + ":filename", + ":git", + "date", + "lastmod", + "modified", + "pubdate", + "publishDate", + "publishdate" + ] + } + }, + "expiryDate": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + "expirydate", + "expiryDate", + "unpublishdate", + "unpublishDate" + ] + } + }, + "lastmod": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + ":fileModTime", + ":filename", + ":git", + "date", + "lastmod", + "modified", + "pubdate", + "publishDate", + "publishdate" + ] + } + }, + "publishDate": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + ":fileModTime", + ":filename", + ":git", + "date", + "lastmod", + "modified", + "pubdate", + "publishDate", + "publishdate" + ] + } + } + }, + "additionalProperties": false + }, + "HTTPCache": { + "$comment": "#TODO a lot", + "description": "\nhttps://gohugo.io/configuration/http-cache/", + "type": "object", + "properties": { + "cache": { + "type": "object", + "properties": { + "for": { + "type": "object", + "properties": { + "excludes": { + "$comment": "The documentation is ambiguous, the type is stated to be a string, but all examples are of string arrays. The same issue exists with all HTTPCache includes and excludes", + "$ref": "#/definitions/stringOrStringArray", + "description": "List of glob patterns to exclude from caching\nhttps://gohugo.io/configuration/http-cache/#cacheforexcludes" + }, + "includes": { + "$ref": "#/definitions/stringOrStringArray", + "description": "A list of glob patterns to cache\nhttps://gohugo.io/configuration/http-cache/#cacheforincludes" + } + } + } + } + }, + "polls": { + "type": "array", + "items": { + "type": "object", + "properties": { + "disable": { + "description": "Enable/disable polling for this configuration\nhttps://gohugo.io/configuration/http-cache/#pollsdisable", + "type": "boolean" + }, + "low": { + "$ref": "#/definitions/duration", + "description": "The minimum polling interval. This is used after a recent change and gradually increases towards polls.high\nhttps://gohugo.io/configuration/http-cache/#pollslow" + }, + "high": { + "$ref": "#/definitions/duration", + "description": "The maximum polling interval. This is used when the resource is considered stable\nhttps://gohugo.io/configuration/http-cache/#pollshigh" + }, + "for": { + "type": "object", + "properties": { + "excludes": { + "$ref": "#/definitions/stringOrStringArray", + "description": "A list of glob patterns to exclude from polling for this configuration\nhttps://gohugo.io/configuration/http-cache/#pollsforexcludes" + }, + "includes": { + "$ref": "#/definitions/stringOrStringArray", + "description": "A list of glob patterns to include in polling for this configuration\nhttps://gohugo.io/configuration/http-cache/#pollsforincludes" + } + } + } + } + } + } + } + }, + "i18nDir": { + "description": "The designated directory for translation tables\nhttps://gohugo.io/configuration/all/#i18ndir", + "type": "string", + "default": "i18n", + "minLength": 1 + }, + "footnoteAnchorPrefix": { + "description": "The prefix for footnote anchors\nhttps://gohugo.io/getting-started/configuration/#footnoteanchorprefix", + "type": "string", + "default": "" + }, + "footnoteReturnLinkContents": { + "description": "The text to display for footnote return links\nhttps://gohugo.io/getting-started/configuration/#footnotereturnlinkcontents", + "type": "string", + "default": "" + }, + "googleAnalytics": { + "description": "The Google Analytics tracking ID\nhttps://gohugo.io/getting-started/configuration/#googleanalytics", + "type": "string", + "default": "", + "pattern": "(UA-\\d{4,9}-\\d)|(G-\\w+)" + }, + "hasCJKLanguage": { + "description": "Enable/disable auto-detecting Chinese/Japanese/Korean Languages in the content\nhttps://gohugo.io/getting-started/configuration/#hascjklanguage", + "type": "boolean", + "default": false + }, + "ignoreCache": { + "description": "Enable/disable usage of the cache directory", + "type": "boolean", + "default": false + }, + "ignoreFiles": { + "description": "Array of regular expression used to exclude files from a build\nhttps://gohugo.io/configuration/all/#ignorefiles", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "ignoreLogs": { + "description": "Array of of message identifiers used to suppress warnings and errors\nhttps://gohugo.io/configuration/all/#ignorelogs", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "ignoreVendorPaths": { + "description": "A glob pattern matching the module paths to exclude from the _vendor directory\nhttps://gohugo.io/configuration/all/#ignorevendorpaths", + "type": "string", + "minLength": 1 + }, + "imaging": { + "description": "The image processing options\nhttps://gohugo.io/getting-started/configuration/#imaging", + "type": "object", + "default": { + "resampleFilter": "Box", + "quality": 75, + "hint": "photo", + "anchor": "Smart", + "bgColor": "#ffffff", + "exif": { + "includeFields": "", + "excludeFields": "", + "disableDate": false, + "disableLatLong": false + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "resampleFilter": { + "description": "The default resample filter\nhttps://gohugo.io/content-management/image-processing/#resampling-filter", + "type": "string", + "default": "Box", + "enum": [ + "NearestNeighbor", + "Box", + "Linear", + "Hermite", + "MitchellNetravali", + "CatmullRom", + "BSpline", + "Gaussian", + "Lanczos", + "Hann", + "Hamming", + "Blackman", + "Bartlett", + "Welch", + "Cosine" + ] + }, + "quality": { + "description": "The default quality\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "integer", + "default": 75, + "minimum": 0, + "maximum": 100 + }, + "hint": { + "description": "The default hint about what type of image\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "photo", + "enum": ["picture", "photo", "drawing", "icon", "text"] + }, + "anchor": { + "description": "The anchor used when cropping pictures with either .Fill or .Crop\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "Smart", + "enum": [ + "Smart", + "TopLeft", + "Top", + "TopRight", + "Left", + "Center", + "Right", + "BottomLeft", + "Bottom", + "BottomRight" + ] + }, + "bgColor": { + "description": "The default background color\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "#ffffff", + "pattern": "^#(\\d|[ABCDEFabcdef]){6}$" + }, + "exif": { + "title": "Exif options", + "description": "Exif options\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "object", + "properties": { + "includeFields": { + "description": "The regexp matching the included fields\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "" + }, + "excludeFields": { + "description": "The regexp matching the excluded fields\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "" + }, + "disableDate": { + "description": "Enable/disable extracting the 'photo taken' date/time into .Date\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "boolean", + "default": false + }, + "disableLatLong": { + "description": "Enable/disable extracting the 'photo taken where' into .Long and .Lat\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "languageCode": { + "description": "The language tag as defined by RFC 5646\nhttps://gohugo.io/getting-started/configuration/#languagecode", + "type": "string", + "default": "" + }, + "languages": { + "title": "language options", + "description": "The language options\nhttps://gohugo.io/content-management/multilingual/#configure-languages", + "type": "object", + "default": {}, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + } + }, + "additionalProperties": { + "description": "The language options", + "type": "object", + "additionalProperties": true + } + }, + "layoutDir": { + "description": "The directory containing layout templates\nhttps://gohugo.io/configuration/all/#layoutdir", + "type": "string", + "default": "layouts", + "minLength": 1 + }, + "disableLanguages": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The disabled languages\nhttps://gohugo.io/content-management/multilingual/#disable-a-language" + }, + "mainSections": { + "$ref": "#/definitions/stringOrStringArray", + "description": "The main sections of a site. Used by the MainSections method\nhttps://gohugo.io/configuration/all/#mainsections" + }, + "markup": { + "title": "markdown options", + "description": "The markdown options\nhttps://gohugo.io/getting-started/configuration-markup", + "type": "object", + "default": { + "asciidocExt": { + "attributes": {}, + "backend": "html5", + "extensions": [], + "failureLevel": "fatal", + "noHeaderOrFooter": true, + "preserveTOC": false, + "safeMode": "unsafe", + "sectionNumbers": false, + "trace": false, + "verbose": false, + "workingFolderCurrent": false + }, + "blackFriday": { + "angledQuotes": false, + "extensions": null, + "extensionsMask": null, + "footnoteAnchorPrefix": "", + "footnoteReturnLinkContents": "", + "fractions": true, + "hrefTargetBlank": false, + "latexDashes": true, + "nofollowLinks": false, + "noreferrerLinks": false, + "plainIDAnchors": true, + "skipHTML": false, + "smartDashes": true, + "smartypants": true, + "smartypantsQuotesNBSP": false, + "taskLists": true + }, + "defaultMarkdownHandler": "goldmark", + "goldmark": { + "extensions": { + "definitionList": true, + "footnote": true, + "linkify": true, + "linkifyProtocol": "https", + "strikethrough": true, + "table": true, + "taskList": true, + "typographer": true, + "extras": null + }, + "parser": { + "attribute": { + "block": false, + "title": true + }, + "autoHeadingID": true, + "autoHeadingIDType": "github", + "wrapStandAloneImageWithinParagraph": true + }, + "renderer": { + "hardWraps": false, + "unsafe": false, + "xhtml": false + } + }, + "highlight": { + "anchorLineNos": false, + "codeFences": true, + "guessSyntax": false, + "hl_Lines": "", + "lineAnchors": "", + "lineNoStart": 1, + "lineNos": false, + "lineNumbersInTable": true, + "noClasses": true, + "noHl": false, + "style": "monokai", + "tabWidth": 4 + }, + "tableOfContents": { + "startLevel": 2, + "endLevel": 3, + "ordered": false + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "asciidocExt": { + "title": "AsciidocExt options", + "description": "AsciidocExt options\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#processing-information", + "type": "object", + "properties": { + "attributes": { + "title": "document attributes", + "description": "The document attributes\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#document-settings", + "type": "object", + "default": {}, + "additionalProperties": { + "type": "string" + } + }, + "backend": { + "description": "The backend output file format\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#document-settings", + "type": "string", + "default": "html5", + "enum": ["html5", "docbook5", "manpage", "html"] + }, + "extensions": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "array", + "default": [], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "failureLevel": { + "description": "The minimum logging level\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#processing-information", + "type": "string", + "default": "fatal" + }, + "noHeaderOrFooter": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": true + }, + "preserveTOC": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + }, + "safeMode": { + "description": "The safe mode\nhttps://docs.asciidoctor.org/asciidoctor/latest/safe-modes/", + "type": "string", + "default": "unsafe", + "enum": ["unsafe", "safe", "server", "secure"] + }, + "sectionNumbers": { + "description": "Enable/disable section title's auto-numbering\nhttps://docs.asciidoctor.org/asciidoctor.js/latest/cli/options/#document-conversion", + "type": "boolean", + "default": false + }, + "trace": { + "description": "Include/exclude the backtrace information on errors\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + }, + "verbose": { + "description": "Enable/disable verbose error printing\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + }, + "workingFolderCurrent": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "blackfriday": { + "title": "Blackfriday options", + "description": "Blackfriday options\nhttps://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "object", + "properties": { + "angledQuotes": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "extensions": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": ["array", "null"], + "default": null, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "extensionsMask": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": ["string", "null"], + "default": null + }, + "footnoteAnchorPrefix": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "string", + "default": "" + }, + "footnoteReturnLinkContents": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "string", + "default": "" + }, + "fractions": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "hrefTargetBlank": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "latexDashes": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "nofollowLinks": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "noreferrerLinks": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "plainIDAnchors": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "skipHTML": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "smartDashes": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "smartypants": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "smartypantsQuotesNBSP": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "taskLists": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "defaultMarkdownHandler": { + "description": "The default markdown renderer\nhttps://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "string", + "default": "goldmark", + "enum": ["goldmark", "blackfriday"] + }, + "goldmark": { + "title": "Goldmark options", + "description": "Goldmark options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "extensions": { + "definitionList": true, + "footnote": true, + "linkify": true, + "linkifyProtocol": "https", + "strikethrough": true, + "table": true, + "taskList": true, + "typographer": true + }, + "parser": { + "attribute": { + "block": false, + "title": true + }, + "autoHeadingID": true, + "autoHeadingIDType": "github", + "wrapStandAloneImageWithinParagraph": true + }, + "renderer": { + "hardWraps": false, + "unsafe": false, + "xhtml": false + } + }, + "properties": { + "duplicateResourceFiles": { + "description": "Enable/disable duplication of resources per language\nhttps://gohugo.io/configuration/markup/#duplicateresourcefiles", + "type": "boolean", + "default": false + }, + "extensions": { + "title": "extension options", + "description": "The extension options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "definitionList": true, + "footnote": true, + "linkify": true, + "linkifyProtocol": "https", + "strikethrough": true, + "table": true, + "taskList": true, + "typographer": true + }, + "properties": { + "definitionList": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "footnote": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "linkify": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "linkifyProtocol": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "string", + "default": "https" + }, + "strikethrough": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "table": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "taskList": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "cjk": { + "description": "\nhttps://github.com/yuin/goldmark?tab=readme-ov-file#cjk-extension", + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "eastAsianLineBreaks": { + "type": "boolean", + "default": false + }, + "eastAsianLineBreaksStyle": { + "type": "string", + "default": "simple" + }, + "escapedSpace": { + "type": "boolean", + "default": false + } + } + }, + "passthrough": { + "description": "\nhttps://gohugo.io/configuration/markup/#passthrough", + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "delimiters": { + "type": "object", + "properties": { + "block": { + "description": "Array of pairs of open/closing block delimiters", + "type": "array", + "items": { + "type": "array", + "maxItems": 2, + "minItems": 2, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "inline": { + "description": "Array of pairs of open/closing inline delimiters", + "type": "array", + "items": { + "type": "array", + "maxItems": 2, + "minItems": 2, + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + } + } + }, + "typographer": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "oneOf": [ + { + "type": "boolean", + "default": true + }, + { + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "ellipsis": { + "type": "string", + "default": "…" + }, + "apostrophe": { + "type": "string", + "default": "’" + }, + "enDash": { + "type": "string", + "default": "–" + }, + "emDash": { + "type": "string", + "default": "—" + }, + "leftAngleQuote": { + "type": "string", + "default": "«" + }, + "leftDoubleQuote": { + "type": "string", + "default": "“" + }, + "leftSingleQuote": { + "type": "string", + "default": "‘" + }, + "rightAngleQuote": { + "type": "string", + "default": "»" + }, + "rightDoubleQuote": { + "type": "string", + "default": "”" + }, + "rightSingleQuote": { + "type": "string", + "default": "’" + } + } + } + ] + }, + "extras": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "delete": { + "enable": false + }, + "insert": { + "enable": false + }, + "mark": { + "enable": false + }, + "subscript": { + "enable": false + }, + "superscript": { + "enable": false + } + }, + "properties": { + "delete": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "insert": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "mark": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "subscript": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "superscript": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + } + } + } + }, + "additionalProperties": false + }, + "parser": { + "title": "parser options", + "description": "The parser options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "attribute": { + "block": false, + "title": true + }, + "autoHeadingID": true, + "autoHeadingIDType": "github", + "wrapStandAloneImageWithinParagraph": true + }, + "properties": { + "attribute": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "block": false, + "title": true + }, + "properties": { + "block": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + }, + "title": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "autoHeadingID": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "autoHeadingIDType": { + "description": "DEPRECATED. \nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "string", + "default": "github" + }, + "autoDefinitionTermID": { + "description": "Enable/disable automatically adding id attributes to description list terms\nhttps://gohugo.io/configuration/markup/#parserautodefinitiontermid", + "type": "boolean" + }, + "autoIDType": { + "description": "The strategy used to automatically generate id attributes\nhttps://gohugo.io/configuration/markup/#parserautoidtype", + "type": "string", + "enum": ["github", "github-ascii", "blackfriday"], + "default": "github" + }, + "wrapStandAloneImageWithinParagraph": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "renderHooks": { + "type": "object", + "properties": { + "image": { + "type": "object", + "properties": { + "enableDefault": { + "description": "DEPRECATED.\nhttps://gohugo.io/configuration/markup/#renderhooksimageenabledefault", + "type": "boolean" + }, + "useEmbedded": { + "description": "When to use the embedded image render hook\nhttps://gohugo.io/configuration/markup/#renderhooksimageuseembedded", + "type": "string", + "enum": ["auto", "never", "always", "fallback"] + } + } + }, + "link": { + "type": "object", + "properties": { + "enableDefault": { + "description": "DEPRECATED.\nhttps://gohugo.io/configuration/markup/#renderhookslinkenabledefault", + "type": "boolean" + }, + "useEmbedded": { + "description": "When to use the embedded link render hook\nhttps://gohugo.io/configuration/markup/#renderhookslinkuseembedded", + "type": "string", + "enum": ["auto", "never", "always", "fallback"] + } + } + } + } + }, + "renderer": { + "title": "renderer options", + "description": "The renderer options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "hardWraps": false, + "unsafe": false, + "xhtml": false + }, + "properties": { + "hardWraps": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + }, + "unsafe": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + }, + "xhtml": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "highlight": { + "title": "highlighting options", + "description": "The highlighting options\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "object", + "default": { + "anchorLineNos": false, + "codeFences": true, + "guessSyntax": false, + "hl_Lines": "", + "lineAnchors": "", + "lineNoStart": 1, + "lineNos": false, + "lineNumbersInTable": true, + "noClasses": true, + "noHl": false, + "style": "monokai", + "tabWidth": 4 + }, + "properties": { + "anchorLineNos": { + "description": "Enable/disable anchors on line numbers\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": false + }, + "codeFences": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": true + }, + "guessSyntax": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": false + }, + "hl_Lines": { + "description": "The highlighted line number range\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "default": "", + "oneOf": [ + { + "type": "integer", + "minimum": 1 + }, + { + "type": "string", + "pattern": "^\\d+( \\d+(-\\d+)?)*$" + } + ] + }, + "hl_inline": { + "description": "Enable/disable rendering the highlighted code without a wrapping container\nhttps://gohugo.io/configuration/markup/#hl_inline", + "type": "boolean", + "default": false + }, + "lineAnchors": { + "description": "The prefix for the anchors on line numbers\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "string", + "default": "" + }, + "lineNoStart": { + "description": "The first line\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "integer", + "default": 1, + "minimum": 1 + }, + "lineNos": { + "description": "Enable/disable line numbers\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "default": false, + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "enum": ["table", "inline"] + } + ] + }, + "lineNumbersInTable": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": true + }, + "noClasses": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": true + }, + "noHl": { + "description": "DEPRECATED. \nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": false + }, + "style": { + "description": "\nhttps://gohugo.io/quick-reference/syntax-highlighting-styles/", + "type": "string", + "default": "monokai", + "enum": [ + "abap", + "algol", + "algol_nu", + "arduino", + "autumn", + "average", + "base16-snazzy", + "borland", + "bw", + "catppuccin-frappe", + "catppuccin-latte", + "catppuccin-macchiato", + "catppuccin-mocha", + "colorful", + "doom-one", + "doom-one2", + "dracula", + "emacs", + "friendly", + "fruity", + "github-dark", + "github", + "gruvbox-light", + "gruvbox", + "hr_high_contrast", + "hrdark", + "igor", + "lovelace", + "manni", + "modus-operandi", + "modus-vivendi", + "monokai", + "monokailight", + "murphy", + "native", + "nord", + "onedark", + "onesenterprise", + "paraiso-dark", + "paraiso-light", + "pastie", + "perldoc", + "pygments", + "rainbow_dash", + "rose-pine-dawn", + "rose-pine-moon", + "rose-pine", + "rrt", + "solarized-dark", + "solarized-dark256", + "solarized-light", + "swapoff", + "tango", + "trac", + "vim", + "vs", + "vulcan", + "witchhazel", + "xcode-dark", + "xcode" + ] + }, + "tabWidth": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "integer", + "default": 4, + "minimum": 1 + }, + "wrapperClass": { + "description": "The class or classes to use for the outermost element of the highlighted code\nhttps://gohugo.io/configuration/markup/#wrapperclass", + "type": "string", + "default": "highlight" + } + }, + "additionalProperties": false + }, + "tableOfContents": { + "title": "table of contents options", + "description": "The table of contents options\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "object", + "default": { + "endLevel": 3, + "ordered": false, + "startLevel": 2 + }, + "properties": { + "startLevel": { + "description": "The start heading level\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "integer", + "default": 2 + }, + "endLevel": { + "description": "The end heading level\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "integer", + "default": 3 + }, + "ordered": { + "description": "Enable/disable ordered list generation\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + } + }, + "mediaTypes": { + "title": "media type's options", + "description": "The media type's options\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "application/json": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["json"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["json"] + } + } + } + }, + "application/manifest+json": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webmanifest"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webmanifest"] + } + } + } + }, + "application/octet-stream": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webmanifest"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webmanifest"] + } + } + } + }, + "application/pdf": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["pdf"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["pdf"] + } + } + } + }, + "application/rss+xml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["xml", "rss"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["xml", "rss"] + } + } + } + }, + "application/toml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["toml"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["toml"] + } + } + } + }, + "application/wasm": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffix": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": "wasm", + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["wasm"] + } + } + } + }, + "application/xml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["xml"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["xml"] + } + } + } + }, + "application/yaml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["yaml", "yml"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["yaml", "yml"] + } + } + } + }, + "font/otf": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["otf"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["otf"] + } + } + } + }, + "font/ttf": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ttf"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ttf"] + } + } + } + }, + "image/bmp": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["bmp"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["bmp"] + } + } + } + }, + "image/gif": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["gif"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["gif"] + } + } + } + }, + "image/jpeg": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["jpg", "jpeg", "jpe", "jif", "jfif"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["jpg", "jpeg", "jpe", "jif", "jfif"] + } + } + } + }, + "image/png": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["png"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["png"] + } + } + } + }, + "image/svg+xml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["svg"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["svg"] + } + } + } + }, + "image/tiff": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["tif", "tiff"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["tif", "tiff"] + } + } + } + }, + "image/webp": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webp"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webp"] + } + } + } + }, + "text/calendar": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ics"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ics"] + } + } + } + }, + "text/css": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["css"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["css"] + } + } + } + }, + "text/csv": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["csv"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["csv"] + } + } + } + }, + "text/html": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["html"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["html"] + } + } + } + }, + "text/javascript": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["js", "jsm", "mjs"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["js", "jsm", "mjs"] + } + } + } + }, + "text/jsx": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["jsx"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["jsx"] + } + } + } + }, + "text/markdown": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["md", "markdown"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["md"] + } + } + } + }, + "text/plain": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["txt"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["txt"] + } + } + } + }, + "text/tsx": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["tsx"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["tsx"] + } + } + } + }, + "text/typescript": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ts"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ts"] + } + } + } + }, + "text/x-sass": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["sass"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["sass"] + } + } + } + }, + "text/x-scss": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["scss"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["scss"] + } + } + } + }, + "video/3gpp": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["3gpp", "3gp"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["3gpp", "3gp"] + } + } + } + }, + "video/mp4": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["mp4"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["mp4"] + } + } + } + }, + "video/mpeg": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["mpg", "mpeg"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["mpg", "mpeg"] + } + } + } + }, + "video/ogg": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ogv"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ogv"] + } + } + } + }, + "video/webm": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webm"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webm"] + } + } + } + }, + "video/x-msvideo": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["avi"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["avi"] + } + } + } + } + }, + "additionalProperties": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "delimiter": { + "description": "\nhttps://gohugo.io/configuration/media-types/#delimiter", + "type": "string", + "default": "." + }, + "suffixes": { + "description": "\nhttps://gohugo.io/configuration/media-types/#suffixes", + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "menu": { + "$comment": "Old name of menus. Exists for legacy reasons", + "$ref": "#/properties/menus", + "description": "DEPRECATED. Removed in latest versions use 'menus' instead" + }, + "menus": { + "title": "media menu options", + "description": "The menu options\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + } + }, + "additionalProperties": { + "description": "The menu\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "array", + "items": { + "type": "object", + "properties": { + "identifier": { + "description": "Required when two or more menu entries have the same name\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "string", + "minLength": 1 + }, + "name": { + "description": "The text to display when rendering the menu entry.\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "string", + "minLength": 1 + }, + "parent": { + "description": "Required for child entries in a nested menu.\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "string" + }, + "post": { + "description": "\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "string" + }, + "pre": { + "description": "\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "string" + }, + "title": { + "description": "\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "string" + }, + "weight": { + "description": "A non-zero integer indicating the entry's position relative the root of the menu, or to its parent for a child entry\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "integer" + }, + "pageRef": { + "description": "Required for internal links.\nhttps://gohugo.io/content-management/menus/#properties-site-configuration", + "type": "string" + }, + "url": { + "description": "Required for external links.\nhttps://gohugo.io/content-management/menus/#properties-site-configuration", + "type": "string" + }, + "params": { + "description": "User-defined properties for the menu entry.\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "object" + } + }, + "additionalProperties": false + } + } + }, + "minify": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "default": { + "disableCSS": false, + "disableHTML": false, + "disableJS": false, + "disableJSON": false, + "disableSVG": false, + "disableXML": false, + "minifyOutput": false, + "tdewolff": { + "css": { + "keepCSS2": true, + "precision": 0 + }, + "html": { + "keepComments": false, + "keepConditionalComments": true, + "keepDefaultAttrVals": true, + "keepDocumentTags": true, + "keepEndTags": true, + "keepQuotes": false, + "keepWhitespace": false + }, + "js": { + "keepVarNames": false, + "noNullishOperator": false, + "precision": 0 + }, + "json": { + "keepNumbers": false, + "precision": 0 + }, + "svg": { + "precision": 0 + }, + "xml": { + "keepWhitespace": false + } + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "disableCSS": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableHTML": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableJS": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableJSON": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableSVG": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableXML": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "minifyOutput": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "tdewolff": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "css": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepCSS2": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "precision": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0 + } + }, + "additionalProperties": false + }, + "html": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepComments": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "keepConditionalComments": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepDefaultAttrVals": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepDocumentTags": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepEndTags": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepQuotes": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "keepWhitespace": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "js": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepVarNames": { + "description": "Keeps variable names as they are and omits shortening variable names.\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "noNullishOperator": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "precision": { + "description": "Number of significant digits to preserve for numbers, 0 means no trimming.\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0 + }, + "version": { + "description": "ECMAScript version to use for output, 0 is the latest.\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer" + } + }, + "additionalProperties": false + }, + "json": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepNumbers": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "precision": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0 + } + }, + "additionalProperties": false + }, + "svg": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "precision": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0, + "minimum": 0 + }, + "keepComments": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "xml": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepWhitespace": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "module": { + "description": "The module options\nhttps://gohugo.io/hugo-modules/configuration/", + "type": "object", + "default": { + "noProxy": "none", + "noVendor": "", + "private": "*.*", + "proxy": "direct", + "replacements": "", + "workspace": "" + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "noVendor": { + "description": "The glob pattern matching the paths to skip when vendoring\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "" + }, + "vendorClosest": { + "description": "Enable/disable picking the vendored module closest to the module using it\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "boolean", + "default": "true" + }, + "proxy": { + "description": "The proxy server to download the remote modules\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "direct" + }, + "noProxy": { + "description": "The glob list of the matching paths that should not use the proxy configured above\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "none", + "examples": ["*.ext", "*.ext1,*.ext2"], + "pattern": "^[^,]+(,[^,]+)*$" + }, + "private": { + "description": "The glob list of the matching paths that should be treated as private\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "*.*", + "examples": ["*.ext", "*.ext1,*.ext2"], + "pattern": "^[^,]+(,[^,]+)*$" + }, + "workspace": { + "description": "The workspace file to use. This enables Go workspace mode.\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "off", + "examples": ["/my/hugo.work", "./hugo.work"] + }, + "replacements": { + "description": "The list of the module path to directory replacement mapping\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "", + "examples": [ + "path/to/input_directory -> path/to/output_directory", + "path/to/input_directory1 -> path/to/output_directory1,path/to/input_directory2 -> path/to/output_directory2" + ], + "pattern": "^[^,]+ -> [^,]+(,[^,]+ -> [^,]+)*$" + }, + "hugoVersion": { + "title": "version", + "description": "The version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion", + "type": "object", + "properties": { + "min": { + "$ref": "#/definitions/hugoVersion", + "description": "The minimum required version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion" + }, + "max": { + "$ref": "#/definitions/hugoVersion", + "description": "The maximum required version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion" + }, + "extended": { + "description": "Enable/disable requiring the extended version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "imports": { + "title": "import options", + "description": "The import options\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "array", + "items": { + "type": "object", + "required": ["path"], + "properties": { + "path": { + "description": "The path\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "string", + "minLength": 1 + }, + "ignoreConfig": { + "description": "Use/ignore the configuration file\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "ignoreImports": { + "description": "Use/ignore the imports\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "disable": { + "description": "Enable/disable the module\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "noMounts": { + "description": "Enable/disable the folder mounting\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "noVendor": { + "description": "Enable/disable vendoring this import\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "mounts": { + "$ref": "#/definitions/mounts", + "title": "mount options", + "description": "The mount options\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts" + } + }, + "additionalProperties": false + } + }, + "mounts": { + "$ref": "#/definitions/mounts", + "title": "mount options", + "description": "The mount options\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts" + } + }, + "additionalProperties": false + }, + "newContentEditor": { + "description": "The content editor\nhttps://gohugo.io/getting-started/configuration/#newcontenteditor", + "type": "string", + "default": "" + }, + "noBuildLock": { + "description": "Enable/disable creation of the .hugo_build.lock file\nhttps://gohugo.io/configuration/all/#nobuildlock", + "type": "boolean", + "default": false + }, + "noChmod": { + "description": "Enable/disable syncing permission mode of files\nhttps://gohugo.io/getting-started/configuration/#nochmod", + "type": "boolean", + "default": false + }, + "noTimes": { + "description": "Enable/disable syncing modification time of files\nhttps://gohugo.io/getting-started/configuration/#notimes", + "type": "boolean", + "default": false + }, + "outputFormats": { + "$ref": "#/definitions/outputFormats", + "title": "output format options", + "description": "The output format options\nhttps://gohugo.io/templates/output-formats/#configure-output-formats" + }, + "outputs": { + "description": "Enable/disable output formats per page kind\nhttps://gohugo.io/configuration/outputs/", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "default": ["html", "rss"] + }, + "default": { + "home": ["html", "rss"], + "page": ["html"], + "rss": ["rss"], + "section": ["html", "rss"], + "taxonomy": ["html", "rss"], + "term": ["html", "rss"] + } + }, + "page": { + "$comment": "I have been unable to decipher the documentation\nhttps://gohugo.io/configuration/page/", + "description": "UNDOCUMENTED.", + "type": "object" + }, + "paginate": { + "$comment": "DEPRECATED. Use 'pagination.pagerSize' instead.", + "description": "The default number of elements per page in pagination\nhttps://gohugo.io/getting-started/configuration/#paginate", + "type": "integer", + "default": 10 + }, + "paginatePath": { + "$comment": "DEPRECATED. Use 'pagination.path' instead.", + "description": "The path element used during pagination\nhttps://gohugo.io/getting-started/configuration/#paginatepath", + "type": "string", + "default": "page", + "minLength": 1 + }, + "pagination": { + "description": "Pagination settings\nhttps://gohugo.io/configuration/pagination/", + "type": "object", + "properties": { + "disableAliases": { + "description": "Enable/disable alias generation for the first pager\nhttps://gohugo.io/configuration/pagination/#disablealiases", + "type": "boolean", + "default": false + }, + "pagerSize": { + "description": "The number of pages per pager\nhttps://gohugo.io/configuration/pagination/#pagersize", + "type": "integer", + "default": 10 + }, + "path": { + "description": "The segment of each pager URL indicating that the target page is a pager\nhttps://gohugo.io/configuration/pagination/#path", + "type": "string", + "default": "page" + } + } + }, + "panicOnWarning": { + "description": "Whether to panic on the first WARNING\nhttps://gohugo.io/configuration/all/#paniconwarning", + "type": "boolean", + "default": false + }, + "params": { + "description": "Custom site parameters\nhttps://gohugo.io/configuration/params/", + "type": "object", + "additionalProperties": true + }, + "permalinks": { + "title": "permalink options", + "description": "The permalink options\nhttps://gohugo.io/content-management/urls/#permalinks", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "page": { + "$ref": "#/definitions/permalinkConfiguration" + }, + "section": { + "$ref": "#/definitions/permalinkConfiguration" + }, + "term": { + "$ref": "#/definitions/permalinkConfiguration" + } + } + }, + "pluralizeListTitles": { + "description": "Pluralize/leave titles in lists\nhttps://gohugo.io/getting-started/configuration/#pluralizelisttitles", + "type": "boolean", + "default": true + }, + "printI18nWarnings": { + "description": "Enable/disable the logging WARNINGs for each missing translation\nhttps://gohugo.io/configuration/all/#printi18nwarnings", + "type": "boolean", + "default": false + }, + "printPathWarnings": { + "description": "Enable/disable the logging of WARNINGs when publishing two or more files to the same path\nhttps://gohugo.io/configuration/all/#printpathwarnings", + "type": "boolean", + "default": false + }, + "printUnusedTemplates": { + "description": "Enable/disable the logging WARNINGs for each unused template\nhttps://gohugo.io/configuration/all/#printunusedtemplates", + "type": "boolean", + "default": false + }, + "privacy": { + "description": "Privacy setting for embedded templates\nhttps://gohugo.io/configuration/privacy/", + "type": "object", + "properties": { + "dispus": { + "description": "Disqus embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + } + } + }, + "googleAnalytics": { + "description": "Google analytics embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "respectDoNotTrack": { + "type": "boolean", + "default": false + } + } + }, + "instagram": { + "description": "Instagram embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "simple": { + "type": "boolean", + "default": false + } + } + }, + "twitter": { + "description": "DEPRECATED. Do not use. Deprecated in v0.141.0. Use the x shortcode instead.", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "enableDNT": { + "type": "boolean", + "default": false + }, + "simple": { + "type": "boolean", + "default": false + } + } + }, + "vimeo": { + "description": "Vimeo embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "enableDNT": { + "type": "boolean", + "default": false + }, + "simple": { + "type": "boolean", + "default": false + } + } + }, + "x": { + "description": "X embedded template privacy settings\nhttps://gohugo.io/shortcodes/x/#privacy", + "type": "object", + "properties": { + "disable": { + "description": "Enable/disable the X shortcode\nhttps://gohugo.io/shortcodes/x/#disable", + "type": "boolean", + "default": false + }, + "enableDNT": { + "description": "Whether to prevent X from using post and embedded page data for personalized suggestions and ads\nhttps://gohugo.io/shortcodes/x/#enablednt", + "type": "boolean", + "default": false + }, + "simple": { + "description": "Enable/disable usage of javascript in X shortcode\nhttps://gohugo.io/shortcodes/x/#simple", + "type": "boolean", + "default": false + } + } + }, + "youtube": { + "description": "Toutube embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "privacyEnhanced": { + "type": "boolean", + "default": false + } + } + } + } + }, + "publishDir": { + "description": "The directory where Hugo writes the final static site\nhttps://gohugo.io/getting-started/configuration/#publishdir", + "type": "string", + "default": "public", + "minLength": 1 + }, + "related": { + "title": "related content options", + "description": "The related content options\nhttps://gohugo.io/getting-started/configuration/#related", + "type": "object", + "default": { + "includeNewer": false, + "indices": [ + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "keywords", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 100 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "date", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 10 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "tags", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 80 + } + ], + "threshold": 80, + "toLower": false + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "threshold": { + "description": "\nhttps://gohugo.io/content-management/related/#top-level-config-options", + "type": "integer", + "default": 80, + "minimum": 0, + "maximum": 100 + }, + "includeNewer": { + "description": "Include/exclude the pages newer than the current page\nhttps://gohugo.io/content-management/related/#top-level-config-options", + "type": "boolean", + "default": false + }, + "toLower": { + "description": "Enable/disable lowering the case keywords in both the indexes and the queries\nhttps://gohugo.io/content-management/related/#top-level-config-options", + "type": "boolean", + "default": false + }, + "indices": { + "title": "related content option's entry", + "description": "The related content option's entry\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "array", + "default": [ + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "keywords", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 100 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "date", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 10 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "tags", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 80 + } + ], + "items": { + "type": "object", + "properties": { + "name": { + "description": "The index name\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "string", + "minLength": 1 + }, + "type": { + "description": "The index type\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "string", + "default": "basic", + "enum": ["basic", "fragments"] + }, + "applyFilter": { + "description": "Apply a type specific filter to the result of a search. This is currently only used for the fragments type\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "boolean", + "default": false + }, + "weight": { + "description": "The weight indicating how important this parameter is relative to the other parameters\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "integer" + }, + "cardinalityThreshold": { + "description": "A percentage (0-100) used to remove common keywords from the index\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 100 + }, + "pattern": { + "description": "The date format\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "string" + }, + "toLower": { + "description": "Enable/disable lowering the case keywords in both the indexes and the queries\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "relativeURLs": { + "description": "Enable/disable making all relative URLs relative to content root\nhttps://gohugo.io/getting-started/configuration/#relativeurls", + "type": "boolean", + "default": false + }, + "refLinksErrorLevel": { + "description": "The logging level for page links cannot be resolved\nhttps://gohugo.io/getting-started/configuration/#reflinkserrorlevel", + "type": "string", + "default": "ERROR", + "enum": ["ERROR", "WARNING"] + }, + "refLinksNotFoundURL": { + "description": "The placeholder when a page reference cannot be found in `ref` or `relref`\nhttps://gohugo.io/getting-started/configuration/#reflinksnotfoundurl", + "type": "string" + }, + "removePathAccents": { + "description": "Remove/leave non-spacing marks from composite characters in content paths\nhttps://gohugo.io/getting-started/configuration/#removepathaccents", + "type": "boolean", + "default": false + }, + "renderSegments": { + "description": "Array of segments to render\nhttps://gohugo.io/configuration/all/#rendersegments", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "resourceDir": { + "description": "The designated directory for caching output from asset pipelines\nhttps://gohugo.io/configuration/all/#resourcedir", + "type": "string", + "default": "resources", + "minLength": 1 + }, + "rssLimit": { + "description": "DEPRECATED. Use 'services.rss.limit' instead\nhttps://gohugo.io/getting-started/configuration/#rsslimit", + "type": "integer", + "default": -1, + "minimum": -1 + }, + "sectionPagesMenu": { + "description": "\nhttps://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers", + "type": "string" + }, + "security": { + "title": "security options", + "description": "The security options\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "enableInlineShortcodes": false, + "exec": { + "allow": ["^dart-sass-embedded$", "^go$", "^npx$", "^postcss$"], + "osEnv": ["(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$"] + }, + "funcs": { + "getenv": ["^HUGO_"] + }, + "http": { + "methods": ["(?i)GET|POST"], + "urls": [".*"] + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "enableInlineShortcodes": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "boolean", + "default": false + }, + "exec": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "allow": ["^dart-sass-embedded$", "^go$", "^npx$", "^postcss$"], + "osEnv": ["(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$"] + }, + "properties": { + "allow": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["^dart-sass-embedded$", "^go$", "^npx$", "^postcss$"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "osEnv": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "additionalProperties": false + }, + "funcs": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "getenv": ["^HUGO_"] + }, + "properties": { + "getenv": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["^HUGO_"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "additionalProperties": false + }, + "http": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "methods": ["(?i)GET|POST"], + "urls": [".*"] + }, + "properties": { + "methods": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["(?i)GET|POST"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "urls": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": [".*"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "segments": { + "description": "Map of named segments. Used to build portions of the site independently\nhttps://gohugo.io/configuration/segments/", + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "excludes": { + "description": "An array of glob matchers to exclude pages from the segment\nhttps://gohugo.io/configuration/segments/", + "type": "array", + "items": { + "$ref": "#/definitions/segmentIncludesExcludes" + } + }, + "includes": { + "description": "An array of glob matchers to include pages from the segment\nhttps://gohugo.io/configuration/segments/", + "type": "array", + "items": { + "$ref": "#/definitions/segmentIncludesExcludes" + } + } + } + } + }, + "server": { + "description": "Configuration for builtin development server\nhttps://gohugo.io/configuration/server/", + "type": "object", + "properties": { + "redirects": { + "description": "Array of redirects\nhttps://gohugo.io/configuration/server/#redirects", + "type": "array", + "items": { + "type": "object", + "properties": { + "force": { + "description": "Enable/disable redirecting even if there is existing content in the path\nhttps://gohugo.io/configuration/server/#force", + "type": "boolean" + }, + "from": { + "description": "A glob pattern matching the requested URL\nhttps://gohugo.io/configuration/server/#from", + "type": "string" + }, + "formHeaders": { + "description": "Map of glob patterns to march against the request headers\nhttps://gohugo.io/configuration/server/#fromheaders", + "type": "object", + "additionalProperties": { + "description": "Glob pattern to match the headers", + "type": "string" + } + }, + "fromRe": { + "description": "A regular expression used to match the requested URL\nhttps://gohugo.io/configuration/server/#fromre", + "type": "string" + }, + "status": { + "description": "The HTTP status code to use for the redirect\nhttps://gohugo.io/configuration/server/#status", + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "to": { + "description": "The URL to forward the request to\nhttps://gohugo.io/configuration/server/#to", + "type": "string" + } + } + } + }, + "headers": { + "description": "Array of headers to add to every response\nhttps://gohugo.io/configuration/server/#headers", + "type": "array", + "items": { + "type": "object", + "properties": { + "for": { + "description": "Glob pattern to match against request URL path\nhttps://gohugo.io/configuration/server/#headers", + "type": "string" + }, + "values": { + "description": "Map of headers to add to the response", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + }, + "services": { + "type": "object", + "properties": { + "disqus": { + "type": "object", + "properties": { + "shortname": { + "description": "\nhttps://gohugo.io/configuration/services/#disqusshortname", + "type": "string" + } + } + }, + "googleAnalytics": { + "type": "object", + "properties": { + "id": { + "description": "\nhttps://gohugo.io/configuration/services/#googleanalyticsid", + "type": "string" + } + } + }, + "instagram": { + "type": "object", + "properties": { + "accessToken": { + "description": "DEPRECATED. Do not use. Deprecated in v0.123.0\nhttps://gohugo.io/configuration/services/#instagramaccesstoken", + "type": "string" + }, + "disableInlineCSS": { + "description": "DEPRECATED. Do not use. Deprecated in v0.123.0\nhttps://gohugo.io/configuration/services/#instagramdisableinlinecss", + "type": "boolean" + } + } + }, + "rss": { + "type": "object", + "properties": { + "limit": { + "description": "The maximum number of items to include in an RSS feed\nhttps://gohugo.io/configuration/services/#rsslimit", + "type": "integer", + "minimum": -1, + "default": -1 + } + } + }, + "twitter": { + "description": "DEPRECATED. Do not use. Deprecated in v0.141.0. Use the x shortcode instead", + "type": "object", + "properties": { + "disableInlineCSS": { + "type": "boolean" + } + } + }, + "x": { + "type": "object", + "properties": { + "disableInlineCSS": { + "description": "\nhttps://gohugo.io/configuration/services/#xdisableinlinecss", + "type": "boolean", + "default": false + } + } + } + } + }, + "sitemap": { + "title": "sitemap options", + "description": "The sitemap options\nhttps://gohugo.io/templates/sitemap/#configuration", + "type": "object", + "default": { + "changefreq": "", + "disable": false, + "filename": "sitemap.xml", + "priority": -1 + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "changefreq": { + "description": "\nhttps://gohugo.io/configuration/sitemap/#changefreq", + "type": "string", + "default": "", + "enum": [ + "", + "always", + "hourly", + "daily", + "weekly", + "monthly", + "yearly", + "never" + ] + }, + "disable": { + "description": "\nhttps://gohugo.io/configuration/sitemap/#disable", + "type": "boolean", + "default": false + }, + "filename": { + "description": "\nhttps://gohugo.io/configuration/sitemap/#filename", + "type": "string", + "default": "sitemap.xml" + }, + "priority": { + "description": "\nhttps://gohugo.io/configuration/sitemap/#priority", + "type": "number", + "oneOf": [ + { + "const": -1 + }, + { + "minimum": 0, + "maximum": 1 + } + ], + "default": -1 + } + }, + "additionalProperties": false + }, + "staticDir": { + "description": "The designated directory for static files\nhttps://gohugo.io/configuration/all/#staticdir", + "type": "string", + "default": "static", + "minLength": 1 + }, + "summaryLength": { + "description": "The length of text in words to show in a .Summary\nhttps://gohugo.io/getting-started/configuration/#summarylength", + "type": "integer", + "default": 70, + "minimum": 0 + }, + "taxonomies": { + "title": "taxonomy options", + "description": "The taxonomy options\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "object", + "default": { + "category": "categories", + "tag": "tags" + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "tag": { + "description": "The default taxonomy\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "string", + "default": "tags", + "minLength": 1 + }, + "category": { + "description": "The default taxonomy\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "string", + "default": "categories", + "minLength": 1 + } + }, + "patternProperties": { + "^(?!tag|category)$": { + "description": "The custom taxonomy\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "string", + "minLength": 1 + } + } + }, + "templateMetrics": { + "description": "Enable/disable printing template execution metrics to the console\nhttps://gohugo.io/troubleshooting/performance/#template-metrics", + "type": "boolean", + "default": false + }, + "templateMetricsHints": { + "description": "Enable/disable printing template execution improvement hints to the console\nhttps://gohugo.io/troubleshooting/performance/#template-metrics", + "type": "boolean", + "default": false + }, + "theme": { + "description": "Theme or Theme list\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "themesDir": { + "description": "The directory where themes are stored\nhttps://gohugo.io/getting-started/configuration/#themesdir", + "type": "string", + "default": "themes", + "minLength": 1 + }, + "timeout": { + "description": "The timeout for generating page contents\nhttps://gohugo.io/getting-started/configuration/#timeout", + "type": "string", + "default": "30s", + "pattern": "^\\d+s$" + }, + "timeZone": { + "description": "The time zone\nhttps://gohugo.io/getting-started/configuration/#timezone", + "type": "string", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Asmera", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Timbuktu", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/ComodRivadavia", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Atka", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Buenos_Aires", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Catamarca", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Coral_Harbour", + "America/Cordoba", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Ensenada", + "America/Fort_Nelson", + "America/Fort_Wayne", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Indianapolis", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Jujuy", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Knox_IN", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Louisville", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Mendoza", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montreal", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Acre", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Rosario", + "America/Santa_Isabel", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Shiprock", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Virgin", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/South_Pole", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Ashkhabad", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Calcutta", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Chongqing", + "Asia/Chungking", + "Asia/Colombo", + "Asia/Dacca", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Harbin", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kashgar", + "Asia/Kathmandu", + "Asia/Katmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macao", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Rangoon", + "Asia/Riyadh", + "Asia/Saigon", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Tel_Aviv", + "Asia/Thimbu", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ujung_Pandang", + "Asia/Ulaanbaatar", + "Asia/Ulan_Bator", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faeroe", + "Atlantic/Faroe", + "Atlantic/Jan_Mayen", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/ACT", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Canberra", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/LHI", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/North", + "Australia/NSW", + "Australia/Perth", + "Australia/Queensland", + "Australia/South", + "Australia/Sydney", + "Australia/Tasmania", + "Australia/Victoria", + "Australia/West", + "Australia/Yancowinna", + "Brazil/Acre", + "Brazil/DeNoronha", + "Brazil/East", + "Brazil/West", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Canada/Saskatchewan", + "Canada/Yukon", + "Chile/Continental", + "Chile/EasterIsland", + "Cuba", + "Egypt", + "Eire", + "Etc/GMT", + "Etc/GMT+0", + "Etc/GMT+1", + "Etc/GMT+10", + "Etc/GMT+11", + "Etc/GMT+12", + "Etc/GMT+2", + "Etc/GMT+3", + "Etc/GMT+4", + "Etc/GMT+5", + "Etc/GMT+6", + "Etc/GMT+7", + "Etc/GMT+8", + "Etc/GMT+9", + "Etc/GMT-0", + "Etc/GMT-1", + "Etc/GMT-10", + "Etc/GMT-11", + "Etc/GMT-12", + "Etc/GMT-13", + "Etc/GMT-14", + "Etc/GMT-2", + "Etc/GMT-3", + "Etc/GMT-4", + "Etc/GMT-5", + "Etc/GMT-6", + "Etc/GMT-7", + "Etc/GMT-8", + "Etc/GMT-9", + "Etc/GMT0", + "Etc/Greenwich", + "Etc/UCT", + "Etc/Universal", + "Etc/UTC", + "Etc/Zulu", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belfast", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Nicosia", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Tiraspol", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "GB", + "GB-Eire", + "Hongkong", + "Iceland", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Iran", + "Israel", + "Jamaica", + "Japan", + "Kwajalein", + "Libya", + "Mexico/BajaNorte", + "Mexico/BajaSur", + "Mexico/General", + "Navajo", + "NZ", + "NZ-CHAT", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Johnston", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Ponape", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Samoa", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Truk", + "Pacific/Wake", + "Pacific/Wallis", + "Pacific/Yap", + "Poland", + "Portugal", + "PRC", + "ROC", + "Singapore", + "US/Alaska", + "US/Aleutian", + "US/Arizona", + "US/Central", + "US/East-Indiana", + "US/Eastern", + "US/Hawaii", + "US/Indiana-Starke", + "US/Michigan", + "US/Mountain", + "US/Pacific", + "US/Samoa" + ] + }, + "title": { + "description": "The site title\nhttps://gohugo.io/getting-started/configuration/#title", + "type": "string" + }, + "titleCaseStyle": { + "description": "The title case style\nhttps://gohugo.io/getting-started/configuration/#titlecasestyle", + "type": "string", + "default": "ap", + "enum": ["ap", "chicago", "go", "firstupper", "none"] + }, + "uglyURLs": { + "description": "Enable/disable adding file extensions to urls\nhttps://gohugo.io/getting-started/configuration/#uglyurls", + "type": "boolean" + }, + "watch": { + "description": "Enable/disable watching filesystem for changes and recreating as needed\nhttps://gohugo.io/getting-started/configuration/#watch", + "type": "boolean", + "default": false + } + }, + "title": "Hugo static site generator config file schema", + "type": "object" +} diff --git a/tests/testdata/json_schemastore_hugo_theme_config/old.json b/tests/testdata/json_schemastore_hugo_theme_config/old.json new file mode 100644 index 0000000..ae5de20 --- /dev/null +++ b/tests/testdata/json_schemastore_hugo_theme_config/old.json @@ -0,0 +1,4643 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/hugo.json", + "$comment": "https://gohugo.io/getting-started/configuration/", + "definitions": { + "uniqueStringArray": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "outputFormats": { + "type": "object", + "additionalProperties": { + "title": "output format options", + "description": "The output format options\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "object", + "properties": { + "name": { + "description": "The identifier\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "minLength": 1 + }, + "mediaType": { + "description": "The media type\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "string", + "examples": [ + "application/json", + "application/manifest+json", + "application/octet-stream", + "application/pdf", + "application/rss+xml", + "application/toml", + "application/wasm", + "application/xml", + "application/yaml", + "font/otf", + "font/ttf", + "image/bmp", + "image/gif", + "image/jpeg", + "image/png", + "image/svg+xml", + "image/tiff", + "image/webp", + "text/calendar", + "text/css", + "text/csv", + "text/html", + "text/javascript", + "text/jsx", + "text/markdown", + "text/plain", + "text/tsx", + "text/typescript", + "text/x-sass", + "text/x-scss", + "video/3gpp", + "video/mp4", + "video/mpeg", + "video/ogg", + "video/webm", + "video/x-msvideo" + ] + }, + "path": { + "description": "The path\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "minLength": 1 + }, + "baseName": { + "description": "The base filename for the list filenames\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "default": "index" + }, + "rel": { + "description": "\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string", + "default": "alternate" + }, + "protocol": { + "description": "The replacement for `http://` or `https://` in `baseURL`\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "string" + }, + "isPlainText": { + "description": "Enable/disable Go's plain text templates parser for the templates\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "isHTML": { + "description": "\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "noUgly": { + "description": "Enable/disable adding file extensions to urls\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "notAlternative": { + "description": "Include/exclude this format in an AlternativeOutputFormats format listing\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "permalinkable": { + "description": "Enable/disable .Permalink and .RelPermalink return the rendering output format\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "boolean", + "default": false + }, + "weight": { + "description": "The weight\nhttps://gohugo.io/templates/output-formats/#configure-output-formats", + "type": "integer" + } + }, + "additionalProperties": false + } + }, + "cascade": { + "type": "object", + "properties": { + "aliases": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The aliases\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "audio": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The audio\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "build": { + "description": "\nhttps://gohugo.io/content-management/build-options/", + "type": "object", + "properties": { + "list": { + "description": "\nhttps://gohugo.io/content-management/build-options/#list", + "type": "string", + "enum": ["always", "local", "never"] + }, + "publishResources": { + "description": "\nhttps://gohugo.io/content-management/build-options/#publishresources", + "type": "boolean" + }, + "render": { + "description": "\nhttps://gohugo.io/content-management/build-options/#render", + "type": "string", + "enum": ["always", "link", "never"] + } + } + }, + "date": { + "description": "The datetime\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "description": { + "description": "The description\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string" + }, + "draft": { + "description": "Specify that the content is (not) the draft\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "boolean" + }, + "expiryDate": { + "description": "The expire date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "headless": { + "description": "Specify that the content is (not) the headless bundle\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "boolean" + }, + "images": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The images\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "isCJKLanguage": { + "description": "Specify that the page language is (not) the CJK language\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "boolean" + }, + "keywords": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The keywords\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "layout": { + "description": "The layout\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "lastmod": { + "description": "The last modification time\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "linkTitle": { + "description": "The link title\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "markup": { + "description": "\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "enum": ["rst", "md"] + }, + "menus": { + "description": "\nhttps://gohugo.io/content-management/menus/", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "type": "object", + "additionalProperties": true + }, + "parent": { + "type": "string" + }, + "post": { + "type": "string" + }, + "pre": { + "type": "string" + }, + "weight": { + "type": "integer", + "not": { + "const": 0 + } + } + } + } + } + ] + }, + "modified": { + "description": "The last modification time\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "outputs": { + "$ref": "#/definitions/outputFormats", + "title": "output format options", + "description": "The output format options\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "params": { + "type": "object", + "additionalProperties": true + }, + "pubdate": { + "description": "The publish date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "publishDate": { + "description": "The publish date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "published": { + "description": "The publish date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "resources": { + "title": "resource options", + "description": "The resource options\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "object", + "properties": { + "name": { + "description": "The value for `Name`\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata", + "type": "string", + "minLength": 1, + "examples": [":counter"] + }, + "title": { + "description": "The value for `Title`\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata", + "type": "string", + "minLength": 1, + "examples": [":counter"] + }, + "params": { + "title": "param options", + "description": "The param options\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata", + "type": "object", + "additionalProperties": { + "description": "The param\nhttps://gohugo.io/content-management/page-resources/#page-resources-metadata" + } + } + }, + "additionalProperties": false + }, + "sitemap": { + "type": "object", + "properties": { + "changefreq": { + "description": "\nhttps://gohugo.io/configuration/sitemap/#changefreq", + "type": "string", + "enum": [ + "", + "always", + "hourly", + "daily", + "weekly", + "monthly", + "yearly", + "never" + ] + }, + "disable": { + "description": "https://gohugo.io/configuration/sitemap/#disable", + "type": "boolean" + }, + "priority": { + "type": "number", + "oneOf": [ + { + "const": -1 + }, + { + "minimum": 0 + } + ] + } + } + }, + "series": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The series\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "slug": { + "description": "The slug\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "summary": { + "description": "The summary\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "target": { + "description": "The front matter default\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "object", + "properties": { + "environment": { + "description": "", + "type": "string", + "minLength": 1, + "examples": ["development", "staging", "production"] + }, + "path": { + "description": "The glob pattern matching the content path below /content\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "string", + "minLength": 1 + }, + "kind": { + "description": "The glob pattern matching the page's kind\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "string", + "minLength": 1 + }, + "lang": { + "description": "The glob pattern matching the page's language\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "type": "string", + "minLength": 1 + } + }, + "additionalProperties": false + }, + "title": { + "description": "The title\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "translationKey": { + "type": "string", + "minLength": 1 + }, + "type": { + "description": "The type\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "unpublishdate": { + "description": "The expire date\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "url": { + "description": "The url\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "string", + "minLength": 1 + }, + "videos": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The videos\nhttps://gohugo.io/content-management/front-matter#predefined" + }, + "weight": { + "description": "The weight\nhttps://gohugo.io/content-management/front-matter#predefined", + "type": "integer" + } + }, + "patternProperties": { + "^(?!aliases|audio|build|date|description|draft|expiryDate|headless|images|isCJKLanguage|keywords|layout|lastmod|linkTitle|markup|menus|modified|outputs|params|pubdate|publishDate|published|resources|sitemap|series|slug|summary|target|title|translationKey|type|unpublishdate|url|videos|weight)$": { + "description": "The front matter default\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade" + } + } + }, + "hugoVersion": { + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+.*$" + }, + "mergeType": { + "description": "Merge configuration from themes\nhttps://gohugo.io/getting-started/configuration/#merge-configuration-from-themes", + "type": "string", + "enum": ["none", "shallow", "deep"] + }, + "mounts": { + "type": "array", + "items": { + "type": "object", + "default": [ + { + "source": "content", + "target": "content" + }, + { + "source": "static", + "target": "static" + }, + { + "source": "layouts", + "target": "layouts" + }, + { + "source": "data", + "target": "data" + }, + { + "source": "assets", + "target": "assets" + }, + { + "source": "i18n", + "target": "i18n" + }, + { + "source": "archetypes", + "target": "archetypes" + } + ], + "required": ["source", "target"], + "properties": { + "source": { + "description": "The source path\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "string", + "minLength": 1 + }, + "target": { + "description": "The target path\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "string", + "minLength": 1 + }, + "disableWatch": { + "description": "Whether to disable watching\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "boolean", + "default": false + }, + "lang": { + "description": "The language code\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "type": "string", + "minLength": 1 + }, + "includeFiles": { + "description": "The included files\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + ] + }, + "excludeFiles": { + "description": "The excluded files\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + } + } + ] + } + }, + "additionalProperties": false + } + }, + "permalinkDefinition": { + "description": "A permalink", + "type": "string", + "examples": [ + ":year", + ":month", + ":monthname", + ":day", + ":weekday", + ":weekdayname", + ":yearday", + ":section", + ":sections", + ":title", + ":slug", + ":filename" + ] + }, + "permalinkConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/permalinkDefinition" + }, + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/permalinkDefinition" + } + } + ] + }, + "duration": { + "description": "Length of time expressed in seconds (s), minutes (m), and hours (h)", + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9smh]*$", + "minLength": 1 + }, + { + "type": "integer", + "const": 0 + } + ] + }, + "stringOrStringArray": { + "oneOf": [ + { + "type": "string", + "minLength": 1 + }, + { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + ] + }, + "segmentIncludesExcludes": { + "type": "object", + "properties": { + "kind": { + "description": "A glob pattern matching the page kind\nhttps://gohugo.io/configuration/segments/#kind", + "type": "string", + "examples": ["taxonomy", "term"] + }, + "lang": { + "description": " A glob pattern matching the page language\nhttps://gohugo.io/configuration/segments/#lang", + "type": "string", + "examples": ["en", "de"] + }, + "output": { + "description": "A glob pattern matching the page output format\nhttps://gohugo.io/configuration/segments/#output", + "type": "string", + "examples": ["html", "json"] + }, + "path": { + "description": "A glob pattern matching the page’s logical path\nhttps://gohugo.io/configuration/segments/#path", + "type": "string", + "examples": ["/books", "books/**"] + } + } + } + }, + "properties": { + "archetypeDir": { + "description": "The directory to store archetype files\nhttps://gohugo.io/getting-started/configuration/#archetypedir", + "type": "string", + "default": "archetypes", + "minLength": 1 + }, + "assetDir": { + "description": "The directory to store asset files\nhttps://gohugo.io/getting-started/configuration/#assetdir", + "type": "string", + "default": "assets", + "minLength": 1 + }, + "baseURL": { + "description": "The hostname and the path to the root\nhttps://gohugo.io/getting-started/configuration/#baseurl", + "type": "string", + "minLength": 1 + }, + "build": { + "title": "build options", + "description": "The build options\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "useResourceCacheWhen": { + "description": "The time when to use the cached resources in `/resources/_gen` for `PostCSS` and `ToCSS`\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "string", + "default": "fallback", + "enum": ["never", "always", "fallback"] + }, + "writeStats": { + "description": "Enable/disable `hugo_stats.json` writing to the root project directory.\nAlthough still functional, the writeStats key will be deprecated in a future release.\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "boolean", + "default": false, + "deprecated": true + }, + "buildStats": { + "title": "build stats", + "description": "When enabled, creates a hugo_stats.json file in the root of your project.\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "disableClasses": { + "type": "boolean", + "default": false + }, + "disableIDs": { + "type": "boolean", + "default": false + }, + "disableTags": { + "type": "boolean", + "default": false + } + } + }, + "noJSConfigInAssets": { + "description": "Enable/disable `jsconfig.json` writing into your `/assets` folder with mapping of imports from running `js.Build`\nhttps://gohugo.io/getting-started/configuration/#configure-build", + "type": "boolean", + "default": false + }, + "cachebusters": { + "title": "Cache busters", + "description": "Cache busters to support development using Tailwind 3.x's JIT compiler\nhttps://gohugo.io/getting-started/configuration/#configure-cache-busters", + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "target": { + "type": "string" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "buildDrafts": { + "description": "Include/exclude the drafts when building\nhttps://gohugo.io/getting-started/configuration/#builddrafts-false", + "type": "boolean", + "default": false + }, + "buildExpired": { + "description": "Include/exclude the content already expired\nhttps://gohugo.io/getting-started/configuration/#buildexpired", + "type": "boolean", + "default": false + }, + "buildFuture": { + "description": "Include/exclude the content with `publishDate` in the future\nhttps://gohugo.io/getting-started/configuration/#buildfuture", + "type": "boolean", + "default": false + }, + "cacheDir": { + "description": "The directory where cached files are stored\nhttps://gohugo.io/configuration/all/#cachedir", + "type": "string", + "minLength": 1 + }, + "caches": { + "title": "cache options", + "description": "The cache options\nhttps://gohugo.io/getting-started/configuration/#configure-file-caches", + "type": "object", + "default": { + "assets": { + "dir": ":resourceDir/_gen", + "maxAge": -1 + }, + "getcsv": { + "dir": ":cacheDir/:project", + "maxAge": -1 + }, + "getjson": { + "dir": ":cacheDir/:project", + "maxAge": -1 + }, + "getresource": { + "dir": ":cacheDir/:project", + "maxAge": -1 + }, + "images": { + "dir": ":resourceDir/_gen", + "maxAge": -1 + }, + "modules": { + "dir": ":cacheDir/modules", + "maxAge": -1 + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + } + }, + "additionalProperties": { + "description": "Cache entry", + "type": "object", + "properties": { + "maxAge": { + "description": "The duration before the cache entry will be evicted\nhttps://gohugo.io/getting-started/configuration/#the-keywords-explained", + "default": -1, + "examples": ["0", "10s", "10m", "10h"], + "oneOf": [ + { + "type": "integer", + "minimum": -1 + }, + { + "type": "string", + "pattern": "^-?\\d+[smh]?$" + } + ] + }, + "dir": { + "description": "The absolute path to store cache files\nhttps://gohugo.io/getting-started/configuration/#the-keywords-explained", + "type": "string", + "examples": [ + ":cacheDir", + ":project", + ":resourceDir", + ":resourceDir/_gen", + ":cacheDir/:project", + ":cacheDir/modules" + ], + "minLength": 1 + } + }, + "additionalProperties": false + } + }, + "cascade": { + "title": "front matter options", + "description": "The front matter options\nhttps://gohugo.io/content-management/front-matter#front-matter-cascade", + "oneOf": [ + { + "$ref": "#/definitions/cascade", + "type": "object" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/cascade", + "type": "object" + } + } + ] + }, + "canonifyURLs": { + "description": "Enable/disable relative URLs to absolute conversion\nhttps://gohugo.io/getting-started/configuration/#canonifyurls", + "type": "boolean", + "default": false + }, + "capitalizeListTitles": { + "description": "Enable/disable the automatic capitalize of list titles\nhttps://gohugo.io/configuration/all/#capitalizelisttitles", + "type": "boolean", + "default": true + }, + "cleanDestinationDir": { + "description": "Enable/disable cleaning of the destination directory\nhttps://gohugo.io/configuration/all/#cleandestinationdir", + "type": "boolean", + "default": false + }, + "contentDir": { + "description": "The directory where content files are stored\nhttps://gohugo.io/getting-started/configuration/#contentdir", + "type": "string", + "default": "content", + "minLength": 1 + }, + "copyright": { + "description": "The copyright notice for your site\nhttps://gohugo.io/getting-started/configuration/#copyright", + "type": "string", + "default": "" + }, + "dataDir": { + "description": "The directory where data files are stored\nhttps://gohugo.io/getting-started/configuration/#datadir", + "type": "string", + "default": "data", + "minLength": 1 + }, + "defaultContentLanguage": { + "description": "The default content language for the content without language indicator\nhttps://gohugo.io/getting-started/configuration/#defaultcontentlanguage", + "type": "string", + "default": "en", + "minLength": 1 + }, + "defaultContentLanguageInSubdir": { + "description": "Enable/disable rendering the default content language in subdir\nhttps://gohugo.io/getting-started/configuration/#defaultcontentlanguageinsubdir", + "type": "boolean", + "default": false + }, + "defaultOutputFormat": { + "description": "The default output format for the site\nhttps://gohugo.io/configuration/all/#defaultoutputformat", + "type": "string", + "minLength": 1 + }, + "disableAliases": { + "description": "Enable/disable generation of the alias redirects\nhttps://gohugo.io/getting-started/configuration/#disablealiases", + "type": "boolean", + "default": false + }, + "disableDefaultLanguateRedirect": { + "description": "Enable/disable generation of of the alias redirect to the default language when DefaultContentLanguageInSubdir is true\nhttps://gohugo.io/configuration/all/#disabledefaultlanguageredirect", + "type": "boolean", + "default": false + }, + "disableHugoGeneratorInject": { + "description": "Enable/disable injecting a generator meta tag in the HTML head on the home page only\nhttps://gohugo.io/getting-started/configuration/#disablehugogeneratorinject", + "type": "boolean", + "default": false + }, + "disableKinds": { + "description": "Disabled kinds of pages\nhttps://gohugo.io/getting-started/configuration/#disablekinds", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "page", + "home", + "section", + "taxonomy", + "term", + "rss", + "sitemap", + "robotstxt", + "404" + ] + } + }, + "disableLiveReload": { + "description": "Enable/disable automatic live reloading of browser window\nhttps://gohugo.io/getting-started/configuration/#disablelivereload", + "type": "boolean", + "default": false + }, + "disablePathToLower": { + "description": "Enable/disable the url/path to lowercase conversion\nhttps://gohugo.io/getting-started/configuration/#disablepathtolower", + "type": "boolean", + "default": false + }, + "enableEmoji": { + "description": "Enable/disable Emoji emoticons support for page content\nhttps://gohugo.io/getting-started/configuration/#enableemoji", + "type": "boolean", + "default": false + }, + "enableGitInfo": { + "description": "Enable/disable .GitInfo object for each page\nhttps://gohugo.io/getting-started/configuration/#enablegitinfo", + "type": "boolean", + "default": false + }, + "enableInlineShortcodes": { + "description": "Enable/disable inline shortcode support\nhttps://gohugo.io/getting-started/configuration/#enableinlineshortcodes", + "type": "boolean", + "default": false + }, + "enableMissingTranslationPlaceholders": { + "description": "Enable/disable placeholder substitution instead of the default value or an empty string if a translation is missing\nhttps://gohugo.io/getting-started/configuration/#enablemissingtranslationplaceholders", + "type": "boolean", + "default": false + }, + "enableRobotsTXT": { + "description": "Enable/disable generation of robots.txt file\nhttps://gohugo.io/getting-started/configuration/#enablerobotstxt", + "type": "boolean", + "default": false + }, + "environment": { + "description": "The build environment\nhttps://gohugo.io/configuration/all/#environment", + "type": "string", + "minLength": 1, + "examples": ["production", "development"] + }, + "frontmatter": { + "title": "front matter options", + "description": "The front matter options\nhttps://gohugo.io/getting-started/configuration/#configure-front-matter", + "type": "object", + "default": { + "date": ["date", "publishdate", "lastmod"], + "expiryDate": ["expirydate", "expiryDate"], + "lastmod": [":git", "lastmod", "date", "publishdate"], + "publishDate": ["publishdate", "date"] + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "date": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + ":fileModTime", + ":filename", + ":git", + "date", + "lastmod", + "modified", + "pubdate", + "publishDate", + "publishdate" + ] + } + }, + "expiryDate": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + "expirydate", + "expiryDate", + "unpublishdate", + "unpublishDate" + ] + } + }, + "lastmod": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + ":fileModTime", + ":filename", + ":git", + "date", + "lastmod", + "modified", + "pubdate", + "publishDate", + "publishdate" + ] + } + }, + "publishDate": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-dates", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + ":default", + ":fileModTime", + ":filename", + ":git", + "date", + "lastmod", + "modified", + "pubdate", + "publishDate", + "publishdate" + ] + } + } + }, + "additionalProperties": false + }, + "HTTPCache": { + "$comment": "#TODO a lot", + "description": "\nhttps://gohugo.io/configuration/http-cache/", + "type": "object", + "properties": { + "cache": { + "type": "object", + "properties": { + "for": { + "type": "object", + "properties": { + "excludes": { + "$comment": "The documentation is ambiguous, the type is stated to be a string, but all examples are of string arrays. The same issue exists with all HTTPCache includes and excludes", + "$ref": "#/definitions/stringOrStringArray", + "description": "List of glob patterns to exclude from caching\nhttps://gohugo.io/configuration/http-cache/#cacheforexcludes" + }, + "includes": { + "$ref": "#/definitions/stringOrStringArray", + "description": "A list of glob patterns to cache\nhttps://gohugo.io/configuration/http-cache/#cacheforincludes" + } + } + } + } + }, + "polls": { + "type": "array", + "items": { + "type": "object", + "properties": { + "disable": { + "description": "Enable/disable polling for this configuration\nhttps://gohugo.io/configuration/http-cache/#pollsdisable", + "type": "boolean" + }, + "low": { + "$ref": "#/definitions/duration", + "description": "The minimum polling interval. This is used after a recent change and gradually increases towards polls.high\nhttps://gohugo.io/configuration/http-cache/#pollslow" + }, + "high": { + "$ref": "#/definitions/duration", + "description": "The maximum polling interval. This is used when the resource is considered stable\nhttps://gohugo.io/configuration/http-cache/#pollshigh" + }, + "for": { + "type": "object", + "properties": { + "excludes": { + "$ref": "#/definitions/stringOrStringArray", + "description": "A list of glob patterns to exclude from polling for this configuration\nhttps://gohugo.io/configuration/http-cache/#pollsforexcludes" + }, + "includes": { + "$ref": "#/definitions/stringOrStringArray", + "description": "A list of glob patterns to include in polling for this configuration\nhttps://gohugo.io/configuration/http-cache/#pollsforincludes" + } + } + } + } + } + } + } + }, + "i18nDir": { + "description": "The designated directory for translation tables\nhttps://gohugo.io/configuration/all/#i18ndir", + "type": "string", + "default": "i18n", + "minLength": 1 + }, + "footnoteAnchorPrefix": { + "description": "The prefix for footnote anchors\nhttps://gohugo.io/getting-started/configuration/#footnoteanchorprefix", + "type": "string", + "default": "" + }, + "footnoteReturnLinkContents": { + "description": "The text to display for footnote return links\nhttps://gohugo.io/getting-started/configuration/#footnotereturnlinkcontents", + "type": "string", + "default": "" + }, + "googleAnalytics": { + "description": "The Google Analytics tracking ID\nhttps://gohugo.io/getting-started/configuration/#googleanalytics", + "type": "string", + "default": "", + "pattern": "(UA-\\d{4,9}-\\d)|(G-\\w+)" + }, + "hasCJKLanguage": { + "description": "Enable/disable auto-detecting Chinese/Japanese/Korean Languages in the content\nhttps://gohugo.io/getting-started/configuration/#hascjklanguage", + "type": "boolean", + "default": false + }, + "ignoreCache": { + "description": "Enable/disable usage of the cache directory", + "type": "boolean", + "default": false + }, + "ignoreFiles": { + "description": "Array of regular expression used to exclude files from a build\nhttps://gohugo.io/configuration/all/#ignorefiles", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "ignoreLogs": { + "description": "Array of of message identifiers used to suppress warnings and errors\nhttps://gohugo.io/configuration/all/#ignorelogs", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "ignoreVendorPaths": { + "description": "A glob pattern matching the module paths to exclude from the _vendor directory\nhttps://gohugo.io/configuration/all/#ignorevendorpaths", + "type": "string", + "minLength": 1 + }, + "imaging": { + "description": "The image processing options\nhttps://gohugo.io/getting-started/configuration/#imaging", + "type": "object", + "default": { + "resampleFilter": "Box", + "quality": 75, + "hint": "photo", + "anchor": "Smart", + "bgColor": "#ffffff", + "exif": { + "includeFields": "", + "excludeFields": "", + "disableDate": false, + "disableLatLong": false + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "resampleFilter": { + "description": "The default resample filter\nhttps://gohugo.io/content-management/image-processing/#resampling-filter", + "type": "string", + "default": "Box", + "enum": [ + "NearestNeighbor", + "Box", + "Linear", + "Hermite", + "MitchellNetravali", + "CatmullRom", + "BSpline", + "Gaussian", + "Lanczos", + "Hann", + "Hamming", + "Blackman", + "Bartlett", + "Welch", + "Cosine" + ] + }, + "quality": { + "description": "The default quality\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "integer", + "default": 75, + "minimum": 0, + "maximum": 100 + }, + "hint": { + "description": "The default hint about what type of image\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "photo", + "enum": ["picture", "photo", "drawing", "icon", "text"] + }, + "anchor": { + "description": "The anchor used when cropping pictures with either .Fill or .Crop\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "Smart", + "enum": [ + "Smart", + "TopLeft", + "Top", + "TopRight", + "Left", + "Center", + "Right", + "BottomLeft", + "Bottom", + "BottomRight" + ] + }, + "bgColor": { + "description": "The default background color\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "#ffffff", + "pattern": "^#(\\d|[ABCDEFabcdef]){6}$" + }, + "exif": { + "title": "Exif options", + "description": "Exif options\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "object", + "properties": { + "includeFields": { + "description": "The regexp matching the included fields\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "" + }, + "excludeFields": { + "description": "The regexp matching the excluded fields\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "string", + "default": "" + }, + "disableDate": { + "description": "Enable/disable extracting the 'photo taken' date/time into .Date\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "boolean", + "default": false + }, + "disableLatLong": { + "description": "Enable/disable extracting the 'photo taken where' into .Long and .Lat\nhttps://gohugo.io/content-management/image-processing/#image-processing-config", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "languageCode": { + "description": "The language tag as defined by RFC 5646\nhttps://gohugo.io/getting-started/configuration/#languagecode", + "type": "string", + "default": "" + }, + "languages": { + "title": "language options", + "description": "The language options\nhttps://gohugo.io/content-management/multilingual/#configure-languages", + "type": "object", + "default": {}, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + } + }, + "additionalProperties": { + "description": "The language options", + "type": "object", + "additionalProperties": true + } + }, + "layoutDir": { + "description": "The directory containing layout templates\nhttps://gohugo.io/configuration/all/#layoutdir", + "type": "string", + "default": "layouts", + "minLength": 1 + }, + "disableLanguages": { + "$ref": "#/definitions/uniqueStringArray", + "description": "The disabled languages\nhttps://gohugo.io/content-management/multilingual/#disable-a-language" + }, + "mainSections": { + "$ref": "#/definitions/stringOrStringArray", + "description": "The main sections of a site. Used by the MainSections method\nhttps://gohugo.io/configuration/all/#mainsections" + }, + "markup": { + "title": "markdown options", + "description": "The markdown options\nhttps://gohugo.io/getting-started/configuration-markup", + "type": "object", + "default": { + "asciidocExt": { + "attributes": {}, + "backend": "html5", + "extensions": [], + "failureLevel": "fatal", + "noHeaderOrFooter": true, + "preserveTOC": false, + "safeMode": "unsafe", + "sectionNumbers": false, + "trace": false, + "verbose": false, + "workingFolderCurrent": false + }, + "blackFriday": { + "angledQuotes": false, + "extensions": null, + "extensionsMask": null, + "footnoteAnchorPrefix": "", + "footnoteReturnLinkContents": "", + "fractions": true, + "hrefTargetBlank": false, + "latexDashes": true, + "nofollowLinks": false, + "noreferrerLinks": false, + "plainIDAnchors": true, + "skipHTML": false, + "smartDashes": true, + "smartypants": true, + "smartypantsQuotesNBSP": false, + "taskLists": true + }, + "defaultMarkdownHandler": "goldmark", + "goldmark": { + "extensions": { + "definitionList": true, + "footnote": true, + "linkify": true, + "linkifyProtocol": "https", + "strikethrough": true, + "table": true, + "taskList": true, + "typographer": true, + "extras": null + }, + "parser": { + "attribute": { + "block": false, + "title": true + }, + "autoHeadingID": true, + "autoHeadingIDType": "github", + "wrapStandAloneImageWithinParagraph": true + }, + "renderer": { + "hardWraps": false, + "unsafe": false, + "xhtml": false + } + }, + "highlight": { + "anchorLineNos": false, + "codeFences": true, + "guessSyntax": false, + "hl_Lines": "", + "lineAnchors": "", + "lineNoStart": 1, + "lineNos": false, + "lineNumbersInTable": true, + "noClasses": true, + "noHl": false, + "style": "monokai", + "tabWidth": 4 + }, + "tableOfContents": { + "startLevel": 2, + "endLevel": 3, + "ordered": false + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "asciidocExt": { + "title": "AsciidocExt options", + "description": "AsciidocExt options\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#processing-information", + "type": "object", + "properties": { + "attributes": { + "title": "document attributes", + "description": "The document attributes\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#document-settings", + "type": "object", + "default": {}, + "additionalProperties": { + "type": "string" + } + }, + "backend": { + "description": "The backend output file format\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#document-settings", + "type": "string", + "default": "html5", + "enum": ["html5", "docbook5", "manpage", "html"] + }, + "extensions": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "array", + "default": [], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "failureLevel": { + "description": "The minimum logging level\nhttps://docs.asciidoctor.org/asciidoctor/latest/cli/man1/asciidoctor/#processing-information", + "type": "string", + "default": "fatal" + }, + "noHeaderOrFooter": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": true + }, + "preserveTOC": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + }, + "safeMode": { + "description": "The safe mode\nhttps://docs.asciidoctor.org/asciidoctor/latest/safe-modes/", + "type": "string", + "default": "unsafe", + "enum": ["unsafe", "safe", "server", "secure"] + }, + "sectionNumbers": { + "description": "Enable/disable section title's auto-numbering\nhttps://docs.asciidoctor.org/asciidoctor.js/latest/cli/options/#document-conversion", + "type": "boolean", + "default": false + }, + "trace": { + "description": "Include/exclude the backtrace information on errors\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + }, + "verbose": { + "description": "Enable/disable verbose error printing\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + }, + "workingFolderCurrent": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#configure-markup", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "blackfriday": { + "title": "Blackfriday options", + "description": "Blackfriday options\nhttps://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "object", + "properties": { + "angledQuotes": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "extensions": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": ["array", "null"], + "default": null, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "extensionsMask": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": ["string", "null"], + "default": null + }, + "footnoteAnchorPrefix": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "string", + "default": "" + }, + "footnoteReturnLinkContents": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "string", + "default": "" + }, + "fractions": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "hrefTargetBlank": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "latexDashes": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "nofollowLinks": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "noreferrerLinks": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "plainIDAnchors": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "skipHTML": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "smartDashes": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "smartypants": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + }, + "smartypantsQuotesNBSP": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": false + }, + "taskLists": { + "description": "https://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "defaultMarkdownHandler": { + "description": "The default markdown renderer\nhttps://gohugo.io/getting-started/configuration-markup#blackfriday", + "type": "string", + "default": "goldmark", + "enum": ["goldmark", "blackfriday"] + }, + "goldmark": { + "title": "Goldmark options", + "description": "Goldmark options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "extensions": { + "definitionList": true, + "footnote": true, + "linkify": true, + "linkifyProtocol": "https", + "strikethrough": true, + "table": true, + "taskList": true, + "typographer": true + }, + "parser": { + "attribute": { + "block": false, + "title": true + }, + "autoHeadingID": true, + "autoHeadingIDType": "github", + "wrapStandAloneImageWithinParagraph": true + }, + "renderer": { + "hardWraps": false, + "unsafe": false, + "xhtml": false + } + }, + "properties": { + "duplicateResourceFiles": { + "description": "Enable/disable duplication of resources per language\nhttps://gohugo.io/configuration/markup/#duplicateresourcefiles", + "type": "boolean", + "default": false + }, + "extensions": { + "title": "extension options", + "description": "The extension options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "definitionList": true, + "footnote": true, + "linkify": true, + "linkifyProtocol": "https", + "strikethrough": true, + "table": true, + "taskList": true, + "typographer": true + }, + "properties": { + "definitionList": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "footnote": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "linkify": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "linkifyProtocol": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "string", + "default": "https" + }, + "strikethrough": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "table": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "taskList": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "cjk": { + "description": "\nhttps://github.com/yuin/goldmark?tab=readme-ov-file#cjk-extension", + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "eastAsianLineBreaks": { + "type": "boolean", + "default": false + }, + "eastAsianLineBreaksStyle": { + "type": "string", + "default": "simple" + }, + "escapedSpace": { + "type": "boolean", + "default": false + } + } + }, + "passthrough": { + "description": "\nhttps://gohugo.io/configuration/markup/#passthrough", + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "delimiters": { + "type": "object", + "properties": { + "block": { + "description": "Array of pairs of open/closing block delimiters", + "type": "array", + "items": { + "type": "array", + "maxItems": 2, + "minItems": 2, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "inline": { + "description": "Array of pairs of open/closing inline delimiters", + "type": "array", + "items": { + "type": "array", + "maxItems": 2, + "minItems": 2, + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + } + } + }, + "typographer": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "oneOf": [ + { + "type": "boolean", + "default": true + }, + { + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "ellipsis": { + "type": "string", + "default": "…" + }, + "apostrophe": { + "type": "string", + "default": "’" + }, + "enDash": { + "type": "string", + "default": "–" + }, + "emDash": { + "type": "string", + "default": "—" + }, + "leftAngleQuote": { + "type": "string", + "default": "«" + }, + "leftDoubleQuote": { + "type": "string", + "default": "“" + }, + "leftSingleQuote": { + "type": "string", + "default": "‘" + }, + "rightAngleQuote": { + "type": "string", + "default": "»" + }, + "rightDoubleQuote": { + "type": "string", + "default": "”" + }, + "rightSingleQuote": { + "type": "string", + "default": "’" + } + } + } + ] + }, + "extras": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "delete": { + "enable": false + }, + "insert": { + "enable": false + }, + "mark": { + "enable": false + }, + "subscript": { + "enable": false + }, + "superscript": { + "enable": false + } + }, + "properties": { + "delete": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "insert": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "mark": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "subscript": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + }, + "superscript": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "object", + "default": { + "enable": false + }, + "properties": { + "enable": { + "description": "\nhttps://gohugo.io/configuration/markup/#extras", + "type": "boolean", + "default": false + } + } + } + } + } + }, + "additionalProperties": false + }, + "parser": { + "title": "parser options", + "description": "The parser options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "attribute": { + "block": false, + "title": true + }, + "autoHeadingID": true, + "autoHeadingIDType": "github", + "wrapStandAloneImageWithinParagraph": true + }, + "properties": { + "attribute": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "block": false, + "title": true + }, + "properties": { + "block": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + }, + "title": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "autoHeadingID": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + }, + "autoHeadingIDType": { + "description": "DEPRECATED. \nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "string", + "default": "github" + }, + "autoDefinitionTermID": { + "description": "Enable/disable automatically adding id attributes to description list terms\nhttps://gohugo.io/configuration/markup/#parserautodefinitiontermid", + "type": "boolean" + }, + "autoIDType": { + "description": "The strategy used to automatically generate id attributes\nhttps://gohugo.io/configuration/markup/#parserautoidtype", + "type": "string", + "enum": ["github", "github-ascii", "blackfriday"], + "default": "github" + }, + "wrapStandAloneImageWithinParagraph": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "renderHooks": { + "type": "object", + "properties": { + "image": { + "type": "object", + "properties": { + "enableDefault": { + "description": "DEPRECATED.\nhttps://gohugo.io/configuration/markup/#renderhooksimageenabledefault", + "type": "boolean" + }, + "useEmbedded": { + "description": "When to use the embedded image render hook\nhttps://gohugo.io/configuration/markup/#renderhooksimageuseembedded", + "type": "string", + "enum": ["auto", "never", "always", "fallback"] + } + } + }, + "link": { + "type": "object", + "properties": { + "enableDefault": { + "description": "DEPRECATED.\nhttps://gohugo.io/configuration/markup/#renderhookslinkenabledefault", + "type": "boolean" + }, + "useEmbedded": { + "description": "When to use the embedded link render hook\nhttps://gohugo.io/configuration/markup/#renderhookslinkuseembedded", + "type": "string", + "enum": ["auto", "never", "always", "fallback"] + } + } + } + } + }, + "renderer": { + "title": "renderer options", + "description": "The renderer options\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "object", + "default": { + "hardWraps": false, + "unsafe": false, + "xhtml": false + }, + "properties": { + "hardWraps": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + }, + "unsafe": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + }, + "xhtml": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#goldmark", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "highlight": { + "title": "highlighting options", + "description": "The highlighting options\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "object", + "default": { + "anchorLineNos": false, + "codeFences": true, + "guessSyntax": false, + "hl_Lines": "", + "lineAnchors": "", + "lineNoStart": 1, + "lineNos": false, + "lineNumbersInTable": true, + "noClasses": true, + "noHl": false, + "style": "monokai", + "tabWidth": 4 + }, + "properties": { + "anchorLineNos": { + "description": "Enable/disable anchors on line numbers\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": false + }, + "codeFences": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": true + }, + "guessSyntax": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": false + }, + "hl_Lines": { + "description": "The highlighted line number range\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "default": "", + "oneOf": [ + { + "type": "integer", + "minimum": 1 + }, + { + "type": "string", + "pattern": "^\\d+( \\d+(-\\d+)?)*$" + } + ] + }, + "hl_inline": { + "description": "Enable/disable rendering the highlighted code without a wrapping container\nhttps://gohugo.io/configuration/markup/#hl_inline", + "type": "boolean", + "default": false + }, + "lineAnchors": { + "description": "The prefix for the anchors on line numbers\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "string", + "default": "" + }, + "lineNoStart": { + "description": "The first line\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "integer", + "default": 1, + "minimum": 1 + }, + "lineNos": { + "description": "Enable/disable line numbers\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "default": false, + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "enum": ["table", "inline"] + } + ] + }, + "lineNumbersInTable": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": true + }, + "noClasses": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": true + }, + "noHl": { + "description": "DEPRECATED. \nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "boolean", + "default": false + }, + "style": { + "description": "\nhttps://gohugo.io/quick-reference/syntax-highlighting-styles/", + "type": "string", + "default": "monokai", + "enum": [ + "abap", + "algol", + "algol_nu", + "arduino", + "autumn", + "average", + "base16-snazzy", + "borland", + "bw", + "catppuccin-frappe", + "catppuccin-latte", + "catppuccin-macchiato", + "catppuccin-mocha", + "colorful", + "doom-one", + "doom-one2", + "dracula", + "emacs", + "friendly", + "fruity", + "github-dark", + "github", + "gruvbox-light", + "gruvbox", + "hr_high_contrast", + "hrdark", + "igor", + "lovelace", + "manni", + "modus-operandi", + "modus-vivendi", + "monokai", + "monokailight", + "murphy", + "native", + "nord", + "onedark", + "onesenterprise", + "paraiso-dark", + "paraiso-light", + "pastie", + "perldoc", + "pygments", + "rainbow_dash", + "rose-pine-dawn", + "rose-pine-moon", + "rose-pine", + "rrt", + "solarized-dark", + "solarized-dark256", + "solarized-light", + "swapoff", + "tango", + "trac", + "vim", + "vs", + "vulcan", + "witchhazel", + "xcode-dark", + "xcode" + ] + }, + "tabWidth": { + "description": "\nhttps://gohugo.io/getting-started/configuration-markup#highlight", + "type": "integer", + "default": 4, + "minimum": 1 + }, + "wrapperClass": { + "description": "The class or classes to use for the outermost element of the highlighted code\nhttps://gohugo.io/configuration/markup/#wrapperclass", + "type": "string", + "default": "highlight" + } + }, + "additionalProperties": false + }, + "tableOfContents": { + "title": "table of contents options", + "description": "The table of contents options\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "object", + "default": { + "endLevel": 3, + "ordered": false, + "startLevel": 2 + }, + "properties": { + "startLevel": { + "description": "The start heading level\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "integer", + "default": 2 + }, + "endLevel": { + "description": "The end heading level\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "integer", + "default": 3 + }, + "ordered": { + "description": "Enable/disable ordered list generation\nhttps://gohugo.io/getting-started/configuration-markup#table-of-contents", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + } + }, + "mediaTypes": { + "title": "media type's options", + "description": "The media type's options\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "application/json": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["json"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["json"] + } + } + } + }, + "application/manifest+json": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webmanifest"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webmanifest"] + } + } + } + }, + "application/octet-stream": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webmanifest"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webmanifest"] + } + } + } + }, + "application/pdf": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["pdf"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["pdf"] + } + } + } + }, + "application/rss+xml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["xml", "rss"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["xml", "rss"] + } + } + } + }, + "application/toml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["toml"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["toml"] + } + } + } + }, + "application/wasm": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffix": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": "wasm", + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["wasm"] + } + } + } + }, + "application/xml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["xml"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["xml"] + } + } + } + }, + "application/yaml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["yaml", "yml"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["yaml", "yml"] + } + } + } + }, + "font/otf": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["otf"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["otf"] + } + } + } + }, + "font/ttf": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ttf"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ttf"] + } + } + } + }, + "image/bmp": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["bmp"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["bmp"] + } + } + } + }, + "image/gif": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["gif"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["gif"] + } + } + } + }, + "image/jpeg": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["jpg", "jpeg", "jpe", "jif", "jfif"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["jpg", "jpeg", "jpe", "jif", "jfif"] + } + } + } + }, + "image/png": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["png"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["png"] + } + } + } + }, + "image/svg+xml": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["svg"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["svg"] + } + } + } + }, + "image/tiff": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["tif", "tiff"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["tif", "tiff"] + } + } + } + }, + "image/webp": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webp"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webp"] + } + } + } + }, + "text/calendar": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ics"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ics"] + } + } + } + }, + "text/css": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["css"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["css"] + } + } + } + }, + "text/csv": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["csv"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["csv"] + } + } + } + }, + "text/html": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["html"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["html"] + } + } + } + }, + "text/javascript": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["js", "jsm", "mjs"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["js", "jsm", "mjs"] + } + } + } + }, + "text/jsx": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["jsx"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["jsx"] + } + } + } + }, + "text/markdown": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["md", "markdown"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["md"] + } + } + } + }, + "text/plain": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["txt"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["txt"] + } + } + } + }, + "text/tsx": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["tsx"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["tsx"] + } + } + } + }, + "text/typescript": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ts"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ts"] + } + } + } + }, + "text/x-sass": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["sass"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["sass"] + } + } + } + }, + "text/x-scss": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["scss"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["scss"] + } + } + } + }, + "video/3gpp": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["3gpp", "3gp"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["3gpp", "3gp"] + } + } + } + }, + "video/mp4": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["mp4"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["mp4"] + } + } + } + }, + "video/mpeg": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["mpg", "mpeg"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["mpg", "mpeg"] + } + } + } + }, + "video/ogg": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["ogv"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["ogv"] + } + } + } + }, + "video/webm": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["webm"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["webm"] + } + } + } + }, + "video/x-msvideo": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "suffixes": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "array", + "default": ["avi"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["avi"] + } + } + } + } + }, + "additionalProperties": { + "description": "\nhttps://gohugo.io/templates/output-formats/#media-types", + "type": "object", + "properties": { + "delimiter": { + "description": "\nhttps://gohugo.io/configuration/media-types/#delimiter", + "type": "string", + "default": "." + }, + "suffixes": { + "description": "\nhttps://gohugo.io/configuration/media-types/#suffixes", + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "menu": { + "$comment": "Old name of menus. Exists for legacy reasons", + "$ref": "#/properties/menus", + "description": "DEPRECATED. Removed in latest versions use 'menus' instead" + }, + "menus": { + "title": "media menu options", + "description": "The menu options\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + } + }, + "additionalProperties": { + "description": "The menu\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "array", + "items": { + "type": "object", + "properties": { + "identifier": { + "description": "Required when two or more menu entries have the same name\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "string", + "minLength": 1 + }, + "name": { + "description": "The text to display when rendering the menu entry.\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "string", + "minLength": 1 + }, + "parent": { + "description": "Required for child entries in a nested menu.\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "string" + }, + "post": { + "description": "\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "string" + }, + "pre": { + "description": "\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "string" + }, + "title": { + "description": "\nhttps://gohugo.io/content-management/menus/#add-non-content-entries-to-a-menu", + "type": "string" + }, + "weight": { + "description": "A non-zero integer indicating the entry's position relative the root of the menu, or to its parent for a child entry\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "integer" + }, + "pageRef": { + "description": "Required for internal links.\nhttps://gohugo.io/content-management/menus/#properties-site-configuration", + "type": "string" + }, + "url": { + "description": "Required for external links.\nhttps://gohugo.io/content-management/menus/#properties-site-configuration", + "type": "string" + }, + "params": { + "description": "User-defined properties for the menu entry.\nhttps://gohugo.io/content-management/menus/#properties-front-matter", + "type": "object" + } + }, + "additionalProperties": false + } + } + }, + "minify": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "default": { + "disableCSS": false, + "disableHTML": false, + "disableJS": false, + "disableJSON": false, + "disableSVG": false, + "disableXML": false, + "minifyOutput": false, + "tdewolff": { + "css": { + "keepCSS2": true, + "precision": 0 + }, + "html": { + "keepComments": false, + "keepConditionalComments": true, + "keepDefaultAttrVals": true, + "keepDocumentTags": true, + "keepEndTags": true, + "keepQuotes": false, + "keepWhitespace": false + }, + "js": { + "keepVarNames": false, + "noNullishOperator": false, + "precision": 0 + }, + "json": { + "keepNumbers": false, + "precision": 0 + }, + "svg": { + "precision": 0 + }, + "xml": { + "keepWhitespace": false + } + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "disableCSS": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableHTML": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableJS": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableJSON": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableSVG": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "disableXML": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "minifyOutput": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "tdewolff": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "css": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepCSS2": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "precision": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0 + } + }, + "additionalProperties": false + }, + "html": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepComments": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "keepConditionalComments": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepDefaultAttrVals": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepDocumentTags": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepEndTags": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": true + }, + "keepQuotes": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "keepWhitespace": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "js": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepVarNames": { + "description": "Keeps variable names as they are and omits shortening variable names.\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "noNullishOperator": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "precision": { + "description": "Number of significant digits to preserve for numbers, 0 means no trimming.\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0 + }, + "version": { + "description": "ECMAScript version to use for output, 0 is the latest.\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer" + } + }, + "additionalProperties": false + }, + "json": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepNumbers": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + }, + "precision": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0 + } + }, + "additionalProperties": false + }, + "svg": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "precision": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "integer", + "default": 0, + "minimum": 0 + }, + "keepComments": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "xml": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "object", + "properties": { + "keepWhitespace": { + "description": "\nhttps://gohugo.io/getting-started/configuration/#configure-minify", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "module": { + "description": "The module options\nhttps://gohugo.io/hugo-modules/configuration/", + "type": "object", + "default": { + "noProxy": "none", + "noVendor": "", + "private": "*.*", + "proxy": "direct", + "replacements": "", + "workspace": "" + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "noVendor": { + "description": "The glob pattern matching the paths to skip when vendoring\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "" + }, + "vendorClosest": { + "description": "Enable/disable picking the vendored module closest to the module using it\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "boolean", + "default": "true" + }, + "proxy": { + "description": "The proxy server to download the remote modules\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "direct" + }, + "noProxy": { + "description": "The glob list of the matching paths that should not use the proxy configured above\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "none", + "examples": ["*.ext", "*.ext1,*.ext2"], + "pattern": "^[^,]+(,[^,]+)*$" + }, + "private": { + "description": "The glob list of the matching paths that should be treated as private\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "*.*", + "examples": ["*.ext", "*.ext1,*.ext2"], + "pattern": "^[^,]+(,[^,]+)*$" + }, + "workspace": { + "description": "The workspace file to use. This enables Go workspace mode.\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "off", + "examples": ["/my/hugo.work", "./hugo.work"] + }, + "replacements": { + "description": "The list of the module path to directory replacement mapping\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-top-level", + "type": "string", + "default": "", + "examples": [ + "path/to/input_directory -> path/to/output_directory", + "path/to/input_directory1 -> path/to/output_directory1,path/to/input_directory2 -> path/to/output_directory2" + ], + "pattern": "^[^,]+ -> [^,]+(,[^,]+ -> [^,]+)*$" + }, + "hugoVersion": { + "title": "version", + "description": "The version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion", + "type": "object", + "properties": { + "min": { + "$ref": "#/definitions/hugoVersion", + "description": "The minimum required version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion" + }, + "max": { + "$ref": "#/definitions/hugoVersion", + "description": "The maximum required version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion" + }, + "extended": { + "description": "Enable/disable requiring the extended version\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-hugoversion", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "imports": { + "title": "import options", + "description": "The import options\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "array", + "items": { + "type": "object", + "required": ["path"], + "properties": { + "path": { + "description": "The path\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "string", + "minLength": 1 + }, + "ignoreConfig": { + "description": "Use/ignore the configuration file\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "ignoreImports": { + "description": "Use/ignore the imports\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "disable": { + "description": "Enable/disable the module\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "noMounts": { + "description": "Enable/disable the folder mounting\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "noVendor": { + "description": "Enable/disable vendoring this import\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "type": "boolean" + }, + "mounts": { + "$ref": "#/definitions/mounts", + "title": "mount options", + "description": "The mount options\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts" + } + }, + "additionalProperties": false + } + }, + "mounts": { + "$ref": "#/definitions/mounts", + "title": "mount options", + "description": "The mount options\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-mounts" + } + }, + "additionalProperties": false + }, + "newContentEditor": { + "description": "The content editor\nhttps://gohugo.io/getting-started/configuration/#newcontenteditor", + "type": "string", + "default": "" + }, + "noBuildLock": { + "description": "Enable/disable creation of the .hugo_build.lock file\nhttps://gohugo.io/configuration/all/#nobuildlock", + "type": "boolean", + "default": false + }, + "noChmod": { + "description": "Enable/disable syncing permission mode of files\nhttps://gohugo.io/getting-started/configuration/#nochmod", + "type": "boolean", + "default": false + }, + "noTimes": { + "description": "Enable/disable syncing modification time of files\nhttps://gohugo.io/getting-started/configuration/#notimes", + "type": "boolean", + "default": false + }, + "outputFormats": { + "$ref": "#/definitions/outputFormats", + "title": "output format options", + "description": "The output format options\nhttps://gohugo.io/templates/output-formats/#configure-output-formats" + }, + "outputs": { + "description": "Enable/disable output formats per page kind\nhttps://gohugo.io/configuration/outputs/", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "default": ["html", "rss"] + }, + "default": { + "home": ["html", "rss"], + "page": ["html"], + "rss": ["rss"], + "section": ["html", "rss"], + "taxonomy": ["html", "rss"], + "term": ["html", "rss"] + } + }, + "page": { + "$comment": "I have been unable to decipher the documentation\nhttps://gohugo.io/configuration/page/", + "description": "UNDOCUMENTED.", + "type": "object" + }, + "paginate": { + "$comment": "DEPRECATED. Use 'pagination.pagerSize' instead.", + "description": "The default number of elements per page in pagination\nhttps://gohugo.io/getting-started/configuration/#paginate", + "type": "integer", + "default": 10 + }, + "paginatePath": { + "$comment": "DEPRECATED. Use 'pagination.path' instead.", + "description": "The path element used during pagination\nhttps://gohugo.io/getting-started/configuration/#paginatepath", + "type": "string", + "default": "page", + "minLength": 1 + }, + "pagination": { + "description": "Pagination settings\nhttps://gohugo.io/configuration/pagination/", + "type": "object", + "properties": { + "disableAliases": { + "description": "Enable/disable alias generation for the first pager\nhttps://gohugo.io/configuration/pagination/#disablealiases", + "type": "boolean", + "default": false + }, + "pagerSize": { + "description": "The number of pages per pager\nhttps://gohugo.io/configuration/pagination/#pagersize", + "type": "integer", + "default": 10 + }, + "path": { + "description": "The segment of each pager URL indicating that the target page is a pager\nhttps://gohugo.io/configuration/pagination/#path", + "type": "string", + "default": "page" + } + } + }, + "panicOnWarning": { + "description": "Whether to panic on the first WARNING\nhttps://gohugo.io/configuration/all/#paniconwarning", + "type": "boolean", + "default": false + }, + "params": { + "description": "Custom site parameters\nhttps://gohugo.io/configuration/params/", + "type": "object", + "additionalProperties": true + }, + "permalinks": { + "title": "permalink options", + "description": "The permalink options\nhttps://gohugo.io/content-management/urls/#permalinks", + "type": "object", + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "page": { + "$ref": "#/definitions/permalinkConfiguration" + }, + "section": { + "$ref": "#/definitions/permalinkConfiguration" + }, + "term": { + "$ref": "#/definitions/permalinkConfiguration" + } + } + }, + "pluralizeListTitles": { + "description": "Pluralize/leave titles in lists\nhttps://gohugo.io/getting-started/configuration/#pluralizelisttitles", + "type": "boolean", + "default": true + }, + "printI18nWarnings": { + "description": "Enable/disable the logging WARNINGs for each missing translation\nhttps://gohugo.io/configuration/all/#printi18nwarnings", + "type": "boolean", + "default": false + }, + "printPathWarnings": { + "description": "Enable/disable the logging of WARNINGs when publishing two or more files to the same path\nhttps://gohugo.io/configuration/all/#printpathwarnings", + "type": "boolean", + "default": false + }, + "printUnusedTemplates": { + "description": "Enable/disable the logging WARNINGs for each unused template\nhttps://gohugo.io/configuration/all/#printunusedtemplates", + "type": "boolean", + "default": false + }, + "privacy": { + "description": "Privacy setting for embedded templates\nhttps://gohugo.io/configuration/privacy/", + "type": "object", + "properties": { + "dispus": { + "description": "Disqus embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + } + } + }, + "googleAnalytics": { + "description": "Google analytics embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "respectDoNotTrack": { + "type": "boolean", + "default": false + } + } + }, + "instagram": { + "description": "Instagram embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "simple": { + "type": "boolean", + "default": false + } + } + }, + "twitter": { + "description": "DEPRECATED. Do not use. Deprecated in v0.141.0. Use the x shortcode instead.", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "enableDNT": { + "type": "boolean", + "default": false + }, + "simple": { + "type": "boolean", + "default": false + } + } + }, + "vimeo": { + "description": "Vimeo embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "enableDNT": { + "type": "boolean", + "default": false + }, + "simple": { + "type": "boolean", + "default": false + } + } + }, + "x": { + "description": "X embedded template privacy settings\nhttps://gohugo.io/shortcodes/x/#privacy", + "type": "object", + "properties": { + "disable": { + "description": "Enable/disable the X shortcode\nhttps://gohugo.io/shortcodes/x/#disable", + "type": "boolean", + "default": false + }, + "enableDNT": { + "description": "Whether to prevent X from using post and embedded page data for personalized suggestions and ads\nhttps://gohugo.io/shortcodes/x/#enablednt", + "type": "boolean", + "default": false + }, + "simple": { + "description": "Enable/disable usage of javascript in X shortcode\nhttps://gohugo.io/shortcodes/x/#simple", + "type": "boolean", + "default": false + } + } + }, + "youtube": { + "description": "Toutube embedded template privacy settings", + "type": "object", + "properties": { + "disable": { + "type": "boolean", + "default": false + }, + "privacyEnhanced": { + "type": "boolean", + "default": false + } + } + } + } + }, + "publishDir": { + "description": "The directory where Hugo writes the final static site\nhttps://gohugo.io/getting-started/configuration/#publishdir", + "type": "string", + "default": "public", + "minLength": 1 + }, + "related": { + "title": "related content options", + "description": "The related content options\nhttps://gohugo.io/getting-started/configuration/#related", + "type": "object", + "default": { + "includeNewer": false, + "indices": [ + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "keywords", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 100 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "date", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 10 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "tags", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 80 + } + ], + "threshold": 80, + "toLower": false + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "threshold": { + "description": "\nhttps://gohugo.io/content-management/related/#top-level-config-options", + "type": "integer", + "default": 80, + "minimum": 0, + "maximum": 100 + }, + "includeNewer": { + "description": "Include/exclude the pages newer than the current page\nhttps://gohugo.io/content-management/related/#top-level-config-options", + "type": "boolean", + "default": false + }, + "toLower": { + "description": "Enable/disable lowering the case keywords in both the indexes and the queries\nhttps://gohugo.io/content-management/related/#top-level-config-options", + "type": "boolean", + "default": false + }, + "indices": { + "title": "related content option's entry", + "description": "The related content option's entry\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "array", + "default": [ + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "keywords", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 100 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "date", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 10 + }, + { + "applyFilter": false, + "cardinalityThreshold": 0, + "name": "tags", + "pattern": "", + "toLower": false, + "type": "basic", + "weight": 80 + } + ], + "items": { + "type": "object", + "properties": { + "name": { + "description": "The index name\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "string", + "minLength": 1 + }, + "type": { + "description": "The index type\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "string", + "default": "basic", + "enum": ["basic", "fragments"] + }, + "applyFilter": { + "description": "Apply a type specific filter to the result of a search. This is currently only used for the fragments type\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "boolean", + "default": false + }, + "weight": { + "description": "The weight indicating how important this parameter is relative to the other parameters\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "integer" + }, + "cardinalityThreshold": { + "description": "A percentage (0-100) used to remove common keywords from the index\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 100 + }, + "pattern": { + "description": "The date format\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "string" + }, + "toLower": { + "description": "Enable/disable lowering the case keywords in both the indexes and the queries\nhttps://gohugo.io/content-management/related/#config-options-per-index", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "relativeURLs": { + "description": "Enable/disable making all relative URLs relative to content root\nhttps://gohugo.io/getting-started/configuration/#relativeurls", + "type": "boolean", + "default": false + }, + "refLinksErrorLevel": { + "description": "The logging level for page links cannot be resolved\nhttps://gohugo.io/getting-started/configuration/#reflinkserrorlevel", + "type": "string", + "default": "ERROR", + "enum": ["ERROR", "WARNING"] + }, + "refLinksNotFoundURL": { + "description": "The placeholder when a page reference cannot be found in `ref` or `relref`\nhttps://gohugo.io/getting-started/configuration/#reflinksnotfoundurl", + "type": "string" + }, + "removePathAccents": { + "description": "Remove/leave non-spacing marks from composite characters in content paths\nhttps://gohugo.io/getting-started/configuration/#removepathaccents", + "type": "boolean", + "default": false + }, + "renderSegments": { + "description": "Array of segments to render\nhttps://gohugo.io/configuration/all/#rendersegments", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "resourceDir": { + "description": "The designated directory for caching output from asset pipelines\nhttps://gohugo.io/configuration/all/#resourcedir", + "type": "string", + "default": "resources", + "minLength": 1 + }, + "rssLimit": { + "description": "DEPRECATED. Use 'services.rss.limit' instead\nhttps://gohugo.io/getting-started/configuration/#rsslimit", + "type": "integer", + "default": -1, + "minimum": -1 + }, + "sectionPagesMenu": { + "description": "\nhttps://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers", + "type": "string" + }, + "security": { + "title": "security options", + "description": "The security options\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "enableInlineShortcodes": false, + "exec": { + "allow": ["^dart-sass-embedded$", "^go$", "^npx$", "^postcss$"], + "osEnv": ["(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$"] + }, + "funcs": { + "getenv": ["^HUGO_"] + }, + "http": { + "methods": ["(?i)GET|POST"], + "urls": [".*"] + } + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "enableInlineShortcodes": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "boolean", + "default": false + }, + "exec": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "allow": ["^dart-sass-embedded$", "^go$", "^npx$", "^postcss$"], + "osEnv": ["(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$"] + }, + "properties": { + "allow": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["^dart-sass-embedded$", "^go$", "^npx$", "^postcss$"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "osEnv": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["(?i)^(PATH|PATHEXT|APPDATA|TMP|TEMP|TERM)$"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "additionalProperties": false + }, + "funcs": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "getenv": ["^HUGO_"] + }, + "properties": { + "getenv": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["^HUGO_"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "additionalProperties": false + }, + "http": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "object", + "default": { + "methods": ["(?i)GET|POST"], + "urls": [".*"] + }, + "properties": { + "methods": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": ["(?i)GET|POST"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + }, + "urls": { + "description": "\nhttps://gohugo.io/about/security-model/#security-policy", + "type": "array", + "default": [".*"], + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "segments": { + "description": "Map of named segments. Used to build portions of the site independently\nhttps://gohugo.io/configuration/segments/", + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "excludes": { + "description": "An array of glob matchers to exclude pages from the segment\nhttps://gohugo.io/configuration/segments/", + "type": "array", + "items": { + "$ref": "#/definitions/segmentIncludesExcludes" + } + }, + "includes": { + "description": "An array of glob matchers to include pages from the segment\nhttps://gohugo.io/configuration/segments/", + "type": "array", + "items": { + "$ref": "#/definitions/segmentIncludesExcludes" + } + } + } + } + }, + "server": { + "description": "Configuration for builtin development server\nhttps://gohugo.io/configuration/server/", + "type": "object", + "properties": { + "redirects": { + "description": "Array of redirects\nhttps://gohugo.io/configuration/server/#redirects", + "type": "array", + "items": { + "type": "object", + "properties": { + "force": { + "description": "Enable/disable redirecting even if there is existing content in the path\nhttps://gohugo.io/configuration/server/#force", + "type": "boolean" + }, + "from": { + "description": "A glob pattern matching the requested URL\nhttps://gohugo.io/configuration/server/#from", + "type": "string" + }, + "formHeaders": { + "description": "Map of glob patterns to march against the request headers\nhttps://gohugo.io/configuration/server/#fromheaders", + "type": "object", + "additionalProperties": { + "description": "Glob pattern to match the headers", + "type": "string" + } + }, + "fromRe": { + "description": "A regular expression used to match the requested URL\nhttps://gohugo.io/configuration/server/#fromre", + "type": "string" + }, + "status": { + "description": "The HTTP status code to use for the redirect\nhttps://gohugo.io/configuration/server/#status", + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + }, + "to": { + "description": "The URL to forward the request to\nhttps://gohugo.io/configuration/server/#to", + "type": "string" + } + } + } + }, + "headers": { + "description": "Array of headers to add to every response\nhttps://gohugo.io/configuration/server/#headers", + "type": "array", + "items": { + "type": "object", + "properties": { + "for": { + "description": "Glob pattern to match against request URL path\nhttps://gohugo.io/configuration/server/#headers", + "type": "string" + }, + "values": { + "description": "Map of headers to add to the response", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + }, + "services": { + "type": "object", + "properties": { + "disqus": { + "type": "object", + "properties": { + "shortname": { + "description": "\nhttps://gohugo.io/configuration/services/#disqusshortname", + "type": "string" + } + } + }, + "googleAnalytics": { + "type": "object", + "properties": { + "id": { + "description": "\nhttps://gohugo.io/configuration/services/#googleanalyticsid", + "type": "string" + } + } + }, + "instagram": { + "type": "object", + "properties": { + "accessToken": { + "description": "DEPRECATED. Do not use. Deprecated in v0.123.0\nhttps://gohugo.io/configuration/services/#instagramaccesstoken", + "type": "string" + }, + "disableInlineCSS": { + "description": "DEPRECATED. Do not use. Deprecated in v0.123.0\nhttps://gohugo.io/configuration/services/#instagramdisableinlinecss", + "type": "boolean" + } + } + }, + "rss": { + "type": "object", + "properties": { + "limit": { + "description": "The maximum number of items to include in an RSS feed\nhttps://gohugo.io/configuration/services/#rsslimit", + "type": "integer", + "minimum": -1, + "default": -1 + } + } + }, + "twitter": { + "description": "DEPRECATED. Do not use. Deprecated in v0.141.0. Use the x shortcode instead", + "type": "object", + "properties": { + "disableInlineCSS": { + "type": "boolean" + } + } + }, + "x": { + "type": "object", + "properties": { + "disableInlineCSS": { + "description": "\nhttps://gohugo.io/configuration/services/#xdisableinlinecss", + "type": "boolean", + "default": false + } + } + } + } + }, + "sitemap": { + "title": "sitemap options", + "description": "The sitemap options\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml", + "type": "object", + "default": { + "changefreq": "monthly", + "filename": "sitemap.xml", + "priority": 0.5 + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "changefreq": { + "description": "\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml", + "type": "string", + "default": "monthly" + }, + "filename": { + "description": "\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml", + "type": "string", + "default": "sitemap.xml" + }, + "priority": { + "description": "\nhttps://gohugo.io/templates/sitemap-template/#configure-sitemapxml", + "type": "number", + "default": 0.5, + "minimum": 0, + "maximum": 1 + } + }, + "additionalProperties": false + }, + "staticDir": { + "description": "The designated directory for static files\nhttps://gohugo.io/configuration/all/#staticdir", + "type": "string", + "default": "static", + "minLength": 1 + }, + "summaryLength": { + "description": "The length of text in words to show in a .Summary\nhttps://gohugo.io/getting-started/configuration/#summarylength", + "type": "integer", + "default": 70, + "minimum": 0 + }, + "taxonomies": { + "title": "taxonomy options", + "description": "The taxonomy options\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "object", + "default": { + "category": "categories", + "tag": "tags" + }, + "properties": { + "_merge": { + "$ref": "#/definitions/mergeType" + }, + "tag": { + "description": "The default taxonomy\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "string", + "default": "tags", + "minLength": 1 + }, + "category": { + "description": "The default taxonomy\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "string", + "default": "categories", + "minLength": 1 + } + }, + "patternProperties": { + "^(?!tag|category)$": { + "description": "The custom taxonomy\nhttps://gohugo.io/content-management/taxonomies#configure-taxonomies", + "type": "string", + "minLength": 1 + } + } + }, + "templateMetrics": { + "description": "Enable/disable printing template execution metrics to the console\nhttps://gohugo.io/troubleshooting/performance/#template-metrics", + "type": "boolean", + "default": false + }, + "templateMetricsHints": { + "description": "Enable/disable printing template execution improvement hints to the console\nhttps://gohugo.io/troubleshooting/performance/#template-metrics", + "type": "boolean", + "default": false + }, + "theme": { + "description": "Theme or Theme list\nhttps://gohugo.io/hugo-modules/configuration/#module-configuration-imports", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "themesDir": { + "description": "The directory where themes are stored\nhttps://gohugo.io/getting-started/configuration/#themesdir", + "type": "string", + "default": "themes", + "minLength": 1 + }, + "timeout": { + "description": "The timeout for generating page contents\nhttps://gohugo.io/getting-started/configuration/#timeout", + "type": "string", + "default": "30s", + "pattern": "^\\d+s$" + }, + "timeZone": { + "description": "The time zone\nhttps://gohugo.io/getting-started/configuration/#timezone", + "type": "string", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Asmera", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Timbuktu", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/ComodRivadavia", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Atka", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Buenos_Aires", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Catamarca", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Coral_Harbour", + "America/Cordoba", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Ensenada", + "America/Fort_Nelson", + "America/Fort_Wayne", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Indianapolis", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Jujuy", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Knox_IN", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Louisville", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Mendoza", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montreal", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Acre", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Rosario", + "America/Santa_Isabel", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Shiprock", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Virgin", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/South_Pole", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Ashkhabad", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Calcutta", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Chongqing", + "Asia/Chungking", + "Asia/Colombo", + "Asia/Dacca", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Harbin", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kashgar", + "Asia/Kathmandu", + "Asia/Katmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macao", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Rangoon", + "Asia/Riyadh", + "Asia/Saigon", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Tel_Aviv", + "Asia/Thimbu", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ujung_Pandang", + "Asia/Ulaanbaatar", + "Asia/Ulan_Bator", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faeroe", + "Atlantic/Faroe", + "Atlantic/Jan_Mayen", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/ACT", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Canberra", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/LHI", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/North", + "Australia/NSW", + "Australia/Perth", + "Australia/Queensland", + "Australia/South", + "Australia/Sydney", + "Australia/Tasmania", + "Australia/Victoria", + "Australia/West", + "Australia/Yancowinna", + "Brazil/Acre", + "Brazil/DeNoronha", + "Brazil/East", + "Brazil/West", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Canada/Saskatchewan", + "Canada/Yukon", + "Chile/Continental", + "Chile/EasterIsland", + "Cuba", + "Egypt", + "Eire", + "Etc/GMT", + "Etc/GMT+0", + "Etc/GMT+1", + "Etc/GMT+10", + "Etc/GMT+11", + "Etc/GMT+12", + "Etc/GMT+2", + "Etc/GMT+3", + "Etc/GMT+4", + "Etc/GMT+5", + "Etc/GMT+6", + "Etc/GMT+7", + "Etc/GMT+8", + "Etc/GMT+9", + "Etc/GMT-0", + "Etc/GMT-1", + "Etc/GMT-10", + "Etc/GMT-11", + "Etc/GMT-12", + "Etc/GMT-13", + "Etc/GMT-14", + "Etc/GMT-2", + "Etc/GMT-3", + "Etc/GMT-4", + "Etc/GMT-5", + "Etc/GMT-6", + "Etc/GMT-7", + "Etc/GMT-8", + "Etc/GMT-9", + "Etc/GMT0", + "Etc/Greenwich", + "Etc/UCT", + "Etc/Universal", + "Etc/UTC", + "Etc/Zulu", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belfast", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Nicosia", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Tiraspol", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "GB", + "GB-Eire", + "Hongkong", + "Iceland", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Iran", + "Israel", + "Jamaica", + "Japan", + "Kwajalein", + "Libya", + "Mexico/BajaNorte", + "Mexico/BajaSur", + "Mexico/General", + "Navajo", + "NZ", + "NZ-CHAT", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Johnston", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Ponape", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Samoa", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Truk", + "Pacific/Wake", + "Pacific/Wallis", + "Pacific/Yap", + "Poland", + "Portugal", + "PRC", + "ROC", + "Singapore", + "US/Alaska", + "US/Aleutian", + "US/Arizona", + "US/Central", + "US/East-Indiana", + "US/Eastern", + "US/Hawaii", + "US/Indiana-Starke", + "US/Michigan", + "US/Mountain", + "US/Pacific", + "US/Samoa" + ] + }, + "title": { + "description": "The site title\nhttps://gohugo.io/getting-started/configuration/#title", + "type": "string" + }, + "titleCaseStyle": { + "description": "The title case style\nhttps://gohugo.io/getting-started/configuration/#titlecasestyle", + "type": "string", + "default": "ap", + "enum": ["ap", "chicago", "go", "firstupper", "none"] + }, + "uglyURLs": { + "description": "Enable/disable adding file extensions to urls\nhttps://gohugo.io/getting-started/configuration/#uglyurls", + "type": "boolean" + }, + "watch": { + "description": "Enable/disable watching filesystem for changes and recreating as needed\nhttps://gohugo.io/getting-started/configuration/#watch", + "type": "boolean", + "default": false + } + }, + "title": "Hugo static site generator config file schema", + "type": "object" +} diff --git a/tests/testdata/json_schemastore_issue_forms_elements/expected.json b/tests/testdata/json_schemastore_issue_forms_elements/expected.json new file mode 100644 index 0000000..499e19d --- /dev/null +++ b/tests/testdata/json_schemastore_issue_forms_elements/expected.json @@ -0,0 +1,9299 @@ +{ + "version": "v1", + "actions": [ + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 3 + ], + "type": "pair", + "start_byte": 1101, + "end_byte": 1892 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1 + ], + "type": "object", + "start_byte": 313, + "end_byte": 80567 + }, + "position": 3, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 0, + 1, + 2, + 1, + 5 + ], + "type": "string", + "label": "\"upload\"", + "start_byte": 654, + "end_byte": 662 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 0, + 1, + 2, + 1 + ], + "type": "array", + "start_byte": 545, + "end_byte": 670 + }, + "position": 5 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 9, + 1, + 5, + 1, + 5 + ], + "type": "object", + "start_byte": 78321, + "end_byte": 80549 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 9, + 1, + 5, + 1 + ], + "type": "array", + "start_byte": 2893, + "end_byte": 80557 + }, + "position": 5, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": -1, + "right_line": 9 + }, + { + "left_line": -1, + "right_line": 10 + }, + { + "left_line": -1, + "right_line": 11 + }, + { + "left_line": -1, + "right_line": 12 + }, + { + "left_line": -1, + "right_line": 13 + }, + { + "left_line": 9, + "right_line": 14 + }, + { + "left_line": -1, + "right_line": 15 + }, + { + "left_line": -1, + "right_line": 16 + }, + { + "left_line": 10, + "right_line": 17 + }, + { + "left_line": 11, + "right_line": 18 + }, + { + "left_line": 12, + "right_line": 19 + }, + { + "left_line": 13, + "right_line": 20 + }, + { + "left_line": 14, + "right_line": 21 + }, + { + "left_line": 15, + "right_line": 22 + }, + { + "left_line": 16, + "right_line": 23 + }, + { + "left_line": 17, + "right_line": 24 + }, + { + "left_line": 18, + "right_line": 25 + }, + { + "left_line": 19, + "right_line": 26 + }, + { + "left_line": 20, + "right_line": 27 + }, + { + "left_line": 21, + "right_line": 28 + }, + { + "left_line": 22, + "right_line": 29 + }, + { + "left_line": 23, + "right_line": 30 + }, + { + "left_line": 24, + "right_line": 31 + }, + { + "left_line": 25, + "right_line": 32 + }, + { + "left_line": 26, + "right_line": 33 + }, + { + "left_line": 27, + "right_line": 34 + }, + { + "left_line": -1, + "right_line": 35 + }, + { + "left_line": -1, + "right_line": 36 + }, + { + "left_line": -1, + "right_line": 37 + }, + { + "left_line": -1, + "right_line": 38 + }, + { + "left_line": -1, + "right_line": 39 + }, + { + "left_line": -1, + "right_line": 40 + }, + { + "left_line": -1, + "right_line": 41 + }, + { + "left_line": -1, + "right_line": 42 + }, + { + "left_line": -1, + "right_line": 43 + }, + { + "left_line": -1, + "right_line": 44 + }, + { + "left_line": -1, + "right_line": 45 + }, + { + "left_line": -1, + "right_line": 46 + }, + { + "left_line": -1, + "right_line": 47 + }, + { + "left_line": -1, + "right_line": 48 + }, + { + "left_line": -1, + "right_line": 49 + }, + { + "left_line": -1, + "right_line": 50 + }, + { + "left_line": -1, + "right_line": 51 + }, + { + "left_line": -1, + "right_line": 52 + }, + { + "left_line": -1, + "right_line": 53 + }, + { + "left_line": 28, + "right_line": 54 + }, + { + "left_line": 29, + "right_line": 55 + }, + { + "left_line": 30, + "right_line": 56 + }, + { + "left_line": 31, + "right_line": 57 + }, + { + "left_line": 32, + "right_line": 58 + }, + { + "left_line": 33, + "right_line": 59 + }, + { + "left_line": 34, + "right_line": 60 + }, + { + "left_line": 35, + "right_line": 61 + }, + { + "left_line": 36, + "right_line": 62 + }, + { + "left_line": 37, + "right_line": 63 + }, + { + "left_line": 38, + "right_line": 64 + }, + { + "left_line": 39, + "right_line": 65 + }, + { + "left_line": 40, + "right_line": 66 + }, + { + "left_line": 41, + "right_line": 67 + }, + { + "left_line": 42, + "right_line": 68 + }, + { + "left_line": 43, + "right_line": 69 + }, + { + "left_line": 44, + "right_line": 70 + }, + { + "left_line": 45, + "right_line": 71 + }, + { + "left_line": 46, + "right_line": 72 + }, + { + "left_line": 47, + "right_line": 73 + }, + { + "left_line": 48, + "right_line": 74 + }, + { + "left_line": 49, + "right_line": 75 + }, + { + "left_line": 50, + "right_line": 76 + }, + { + "left_line": 51, + "right_line": 77 + }, + { + "left_line": 52, + "right_line": 78 + }, + { + "left_line": 53, + "right_line": 79 + }, + { + "left_line": 54, + "right_line": 80 + }, + { + "left_line": 55, + "right_line": 81 + }, + { + "left_line": 56, + "right_line": 82 + }, + { + "left_line": 57, + "right_line": 83 + }, + { + "left_line": 58, + "right_line": 84 + }, + { + "left_line": 59, + "right_line": 85 + }, + { + "left_line": 60, + "right_line": 86 + }, + { + "left_line": 61, + "right_line": 87 + }, + { + "left_line": 62, + "right_line": 88 + }, + { + "left_line": 63, + "right_line": 89 + }, + { + "left_line": 64, + "right_line": 90 + }, + { + "left_line": 65, + "right_line": 91 + }, + { + "left_line": 66, + "right_line": 92 + }, + { + "left_line": 67, + "right_line": 93 + }, + { + "left_line": 68, + "right_line": 94 + }, + { + "left_line": 69, + "right_line": 95 + }, + { + "left_line": 70, + "right_line": 96 + }, + { + "left_line": 71, + "right_line": 97 + }, + { + "left_line": 72, + "right_line": 98 + }, + { + "left_line": 73, + "right_line": 99 + }, + { + "left_line": 74, + "right_line": 100 + }, + { + "left_line": 75, + "right_line": 101 + }, + { + "left_line": 76, + "right_line": 102 + }, + { + "left_line": 77, + "right_line": 103 + }, + { + "left_line": 78, + "right_line": 104 + }, + { + "left_line": 79, + "right_line": 105 + }, + { + "left_line": 80, + "right_line": 106 + }, + { + "left_line": 81, + "right_line": 107 + }, + { + "left_line": 82, + "right_line": 108 + }, + { + "left_line": 83, + "right_line": 109 + }, + { + "left_line": 84, + "right_line": 110 + }, + { + "left_line": 85, + "right_line": 111 + }, + { + "left_line": 86, + "right_line": 112 + }, + { + "left_line": 87, + "right_line": 113 + }, + { + "left_line": 88, + "right_line": 114 + }, + { + "left_line": 89, + "right_line": 115 + }, + { + "left_line": 90, + "right_line": 116 + }, + { + "left_line": 91, + "right_line": 117 + }, + { + "left_line": 92, + "right_line": 118 + }, + { + "left_line": 93, + "right_line": 119 + }, + { + "left_line": 94, + "right_line": 120 + }, + { + "left_line": 95, + "right_line": 121 + }, + { + "left_line": 96, + "right_line": 122 + }, + { + "left_line": 97, + "right_line": 123 + }, + { + "left_line": 98, + "right_line": 124 + }, + { + "left_line": 99, + "right_line": 125 + }, + { + "left_line": 100, + "right_line": 126 + }, + { + "left_line": 101, + "right_line": 127 + }, + { + "left_line": 102, + "right_line": 128 + }, + { + "left_line": 103, + "right_line": 129 + }, + { + "left_line": 104, + "right_line": 130 + }, + { + "left_line": 105, + "right_line": 131 + }, + { + "left_line": 106, + "right_line": 132 + }, + { + "left_line": 107, + "right_line": 133 + }, + { + "left_line": 108, + "right_line": 134 + }, + { + "left_line": 109, + "right_line": 135 + }, + { + "left_line": 110, + "right_line": 136 + }, + { + "left_line": 111, + "right_line": 137 + }, + { + "left_line": 112, + "right_line": 138 + }, + { + "left_line": 113, + "right_line": 139 + }, + { + "left_line": 114, + "right_line": 140 + }, + { + "left_line": 115, + "right_line": 141 + }, + { + "left_line": 116, + "right_line": 142 + }, + { + "left_line": 117, + "right_line": 143 + }, + { + "left_line": 118, + "right_line": 144 + }, + { + "left_line": 119, + "right_line": 145 + }, + { + "left_line": 120, + "right_line": 146 + }, + { + "left_line": 121, + "right_line": 147 + }, + { + "left_line": 122, + "right_line": 148 + }, + { + "left_line": 123, + "right_line": 149 + }, + { + "left_line": 124, + "right_line": 150 + }, + { + "left_line": 125, + "right_line": 151 + }, + { + "left_line": 126, + "right_line": 152 + }, + { + "left_line": 127, + "right_line": 153 + }, + { + "left_line": 128, + "right_line": 154 + }, + { + "left_line": 129, + "right_line": 155 + }, + { + "left_line": 130, + "right_line": 156 + }, + { + "left_line": 131, + "right_line": 157 + }, + { + "left_line": 132, + "right_line": 158 + }, + { + "left_line": 133, + "right_line": 159 + }, + { + "left_line": 134, + "right_line": 160 + }, + { + "left_line": 135, + "right_line": 161 + }, + { + "left_line": 136, + "right_line": 162 + }, + { + "left_line": 137, + "right_line": 163 + }, + { + "left_line": 138, + "right_line": 164 + }, + { + "left_line": 139, + "right_line": 165 + }, + { + "left_line": 140, + "right_line": 166 + }, + { + "left_line": 141, + "right_line": 167 + }, + { + "left_line": 142, + "right_line": 168 + }, + { + "left_line": 143, + "right_line": 169 + }, + { + "left_line": 144, + "right_line": 170 + }, + { + "left_line": 145, + "right_line": 171 + }, + { + "left_line": 146, + "right_line": 172 + }, + { + "left_line": 147, + "right_line": 173 + }, + { + "left_line": 148, + "right_line": 174 + }, + { + "left_line": 149, + "right_line": 175 + }, + { + "left_line": 150, + "right_line": 176 + }, + { + "left_line": 151, + "right_line": 177 + }, + { + "left_line": 152, + "right_line": 178 + }, + { + "left_line": 153, + "right_line": 179 + }, + { + "left_line": 154, + "right_line": 180 + }, + { + "left_line": 155, + "right_line": 181 + }, + { + "left_line": 156, + "right_line": 182 + }, + { + "left_line": 157, + "right_line": 183 + }, + { + "left_line": 158, + "right_line": 184 + }, + { + "left_line": 159, + "right_line": 185 + }, + { + "left_line": 160, + "right_line": 186 + }, + { + "left_line": 161, + "right_line": 187 + }, + { + "left_line": 162, + "right_line": 188 + }, + { + "left_line": 163, + "right_line": 189 + }, + { + "left_line": 164, + "right_line": 190 + }, + { + "left_line": 165, + "right_line": 191 + }, + { + "left_line": 166, + "right_line": 192 + }, + { + "left_line": 167, + "right_line": 193 + }, + { + "left_line": 168, + "right_line": 194 + }, + { + "left_line": 169, + "right_line": 195 + }, + { + "left_line": 170, + "right_line": 196 + }, + { + "left_line": 171, + "right_line": 197 + }, + { + "left_line": 172, + "right_line": 198 + }, + { + "left_line": 173, + "right_line": 199 + }, + { + "left_line": 174, + "right_line": 200 + }, + { + "left_line": 175, + "right_line": 201 + }, + { + "left_line": 176, + "right_line": 202 + }, + { + "left_line": 177, + "right_line": 203 + }, + { + "left_line": 178, + "right_line": 204 + }, + { + "left_line": 179, + "right_line": 205 + }, + { + "left_line": 180, + "right_line": 206 + }, + { + "left_line": 181, + "right_line": 207 + }, + { + "left_line": 182, + "right_line": 208 + }, + { + "left_line": 183, + "right_line": 209 + }, + { + "left_line": 184, + "right_line": 210 + }, + { + "left_line": 185, + "right_line": 211 + }, + { + "left_line": 186, + "right_line": 212 + }, + { + "left_line": 187, + "right_line": 213 + }, + { + "left_line": 188, + "right_line": 214 + }, + { + "left_line": 189, + "right_line": 215 + }, + { + "left_line": 190, + "right_line": 216 + }, + { + "left_line": 191, + "right_line": 217 + }, + { + "left_line": 192, + "right_line": 218 + }, + { + "left_line": 193, + "right_line": 219 + }, + { + "left_line": 194, + "right_line": 220 + }, + { + "left_line": 195, + "right_line": 221 + }, + { + "left_line": 196, + "right_line": 222 + }, + { + "left_line": 197, + "right_line": 223 + }, + { + "left_line": 198, + "right_line": 224 + }, + { + "left_line": 199, + "right_line": 225 + }, + { + "left_line": 200, + "right_line": 226 + }, + { + "left_line": 201, + "right_line": 227 + }, + { + "left_line": 202, + "right_line": 228 + }, + { + "left_line": 203, + "right_line": 229 + }, + { + "left_line": 204, + "right_line": 230 + }, + { + "left_line": 205, + "right_line": 231 + }, + { + "left_line": 206, + "right_line": 232 + }, + { + "left_line": 207, + "right_line": 233 + }, + { + "left_line": 208, + "right_line": 234 + }, + { + "left_line": 209, + "right_line": 235 + }, + { + "left_line": 210, + "right_line": 236 + }, + { + "left_line": 211, + "right_line": 237 + }, + { + "left_line": 212, + "right_line": 238 + }, + { + "left_line": 213, + "right_line": 239 + }, + { + "left_line": 214, + "right_line": 240 + }, + { + "left_line": 215, + "right_line": 241 + }, + { + "left_line": 216, + "right_line": 242 + }, + { + "left_line": 217, + "right_line": 243 + }, + { + "left_line": 218, + "right_line": 244 + }, + { + "left_line": 219, + "right_line": 245 + }, + { + "left_line": 220, + "right_line": 246 + }, + { + "left_line": 221, + "right_line": 247 + }, + { + "left_line": 222, + "right_line": 248 + }, + { + "left_line": 223, + "right_line": 249 + }, + { + "left_line": 224, + "right_line": 250 + }, + { + "left_line": 225, + "right_line": 251 + }, + { + "left_line": 226, + "right_line": 252 + }, + { + "left_line": 227, + "right_line": 253 + }, + { + "left_line": 228, + "right_line": 254 + }, + { + "left_line": 229, + "right_line": 255 + }, + { + "left_line": 230, + "right_line": 256 + }, + { + "left_line": 231, + "right_line": 257 + }, + { + "left_line": 232, + "right_line": 258 + }, + { + "left_line": 233, + "right_line": 259 + }, + { + "left_line": 234, + "right_line": 260 + }, + { + "left_line": 235, + "right_line": 261 + }, + { + "left_line": 236, + "right_line": 262 + }, + { + "left_line": 237, + "right_line": 263 + }, + { + "left_line": 238, + "right_line": 264 + }, + { + "left_line": 239, + "right_line": 265 + }, + { + "left_line": 240, + "right_line": 266 + }, + { + "left_line": 241, + "right_line": 267 + }, + { + "left_line": 242, + "right_line": 268 + }, + { + "left_line": 243, + "right_line": 269 + }, + { + "left_line": 244, + "right_line": 270 + }, + { + "left_line": 245, + "right_line": 271 + }, + { + "left_line": 246, + "right_line": 272 + }, + { + "left_line": 247, + "right_line": 273 + }, + { + "left_line": 248, + "right_line": 274 + }, + { + "left_line": 249, + "right_line": 275 + }, + { + "left_line": 250, + "right_line": 276 + }, + { + "left_line": 251, + "right_line": 277 + }, + { + "left_line": 252, + "right_line": 278 + }, + { + "left_line": 253, + "right_line": 279 + }, + { + "left_line": 254, + "right_line": 280 + }, + { + "left_line": 255, + "right_line": 281 + }, + { + "left_line": 256, + "right_line": 282 + }, + { + "left_line": 257, + "right_line": 283 + }, + { + "left_line": 258, + "right_line": 284 + }, + { + "left_line": 259, + "right_line": 285 + }, + { + "left_line": 260, + "right_line": 286 + }, + { + "left_line": 261, + "right_line": 287 + }, + { + "left_line": 262, + "right_line": 288 + }, + { + "left_line": 263, + "right_line": 289 + }, + { + "left_line": 264, + "right_line": 290 + }, + { + "left_line": 265, + "right_line": 291 + }, + { + "left_line": 266, + "right_line": 292 + }, + { + "left_line": 267, + "right_line": 293 + }, + { + "left_line": 268, + "right_line": 294 + }, + { + "left_line": 269, + "right_line": 295 + }, + { + "left_line": 270, + "right_line": 296 + }, + { + "left_line": 271, + "right_line": 297 + }, + { + "left_line": 272, + "right_line": 298 + }, + { + "left_line": 273, + "right_line": 299 + }, + { + "left_line": 274, + "right_line": 300 + }, + { + "left_line": 275, + "right_line": 301 + }, + { + "left_line": 276, + "right_line": 302 + }, + { + "left_line": 277, + "right_line": 303 + }, + { + "left_line": 278, + "right_line": 304 + }, + { + "left_line": 279, + "right_line": 305 + }, + { + "left_line": 280, + "right_line": 306 + }, + { + "left_line": 281, + "right_line": 307 + }, + { + "left_line": 282, + "right_line": 308 + }, + { + "left_line": 283, + "right_line": 309 + }, + { + "left_line": 284, + "right_line": 310 + }, + { + "left_line": 285, + "right_line": 311 + }, + { + "left_line": 286, + "right_line": 312 + }, + { + "left_line": 287, + "right_line": 313 + }, + { + "left_line": 288, + "right_line": 314 + }, + { + "left_line": 289, + "right_line": 315 + }, + { + "left_line": 290, + "right_line": 316 + }, + { + "left_line": 291, + "right_line": 317 + }, + { + "left_line": 292, + "right_line": 318 + }, + { + "left_line": 293, + "right_line": 319 + }, + { + "left_line": 294, + "right_line": 320 + }, + { + "left_line": 295, + "right_line": 321 + }, + { + "left_line": 296, + "right_line": 322 + }, + { + "left_line": 297, + "right_line": 323 + }, + { + "left_line": 298, + "right_line": 324 + }, + { + "left_line": 299, + "right_line": 325 + }, + { + "left_line": 300, + "right_line": 326 + }, + { + "left_line": 301, + "right_line": 327 + }, + { + "left_line": 302, + "right_line": 328 + }, + { + "left_line": 303, + "right_line": 329 + }, + { + "left_line": 304, + "right_line": 330 + }, + { + "left_line": 305, + "right_line": 331 + }, + { + "left_line": 306, + "right_line": 332 + }, + { + "left_line": 307, + "right_line": 333 + }, + { + "left_line": 308, + "right_line": 334 + }, + { + "left_line": 309, + "right_line": 335 + }, + { + "left_line": 310, + "right_line": 336 + }, + { + "left_line": 311, + "right_line": 337 + }, + { + "left_line": 312, + "right_line": 338 + }, + { + "left_line": 313, + "right_line": 339 + }, + { + "left_line": 314, + "right_line": 340 + }, + { + "left_line": 315, + "right_line": 341 + }, + { + "left_line": 316, + "right_line": 342 + }, + { + "left_line": 317, + "right_line": 343 + }, + { + "left_line": 318, + "right_line": 344 + }, + { + "left_line": 319, + "right_line": 345 + }, + { + "left_line": 320, + "right_line": 346 + }, + { + "left_line": 321, + "right_line": 347 + }, + { + "left_line": 322, + "right_line": 348 + }, + { + "left_line": 323, + "right_line": 349 + }, + { + "left_line": 324, + "right_line": 350 + }, + { + "left_line": 325, + "right_line": 351 + }, + { + "left_line": 326, + "right_line": 352 + }, + { + "left_line": 327, + "right_line": 353 + }, + { + "left_line": 328, + "right_line": 354 + }, + { + "left_line": 329, + "right_line": 355 + }, + { + "left_line": 330, + "right_line": 356 + }, + { + "left_line": 331, + "right_line": 357 + }, + { + "left_line": 332, + "right_line": 358 + }, + { + "left_line": 333, + "right_line": 359 + }, + { + "left_line": 334, + "right_line": 360 + }, + { + "left_line": 335, + "right_line": 361 + }, + { + "left_line": 336, + "right_line": 362 + }, + { + "left_line": 337, + "right_line": 363 + }, + { + "left_line": 338, + "right_line": 364 + }, + { + "left_line": 339, + "right_line": 365 + }, + { + "left_line": 340, + "right_line": 366 + }, + { + "left_line": 341, + "right_line": 367 + }, + { + "left_line": 342, + "right_line": 368 + }, + { + "left_line": 343, + "right_line": 369 + }, + { + "left_line": 344, + "right_line": 370 + }, + { + "left_line": 345, + "right_line": 371 + }, + { + "left_line": 346, + "right_line": 372 + }, + { + "left_line": 347, + "right_line": 373 + }, + { + "left_line": 348, + "right_line": 374 + }, + { + "left_line": 349, + "right_line": 375 + }, + { + "left_line": 350, + "right_line": 376 + }, + { + "left_line": 351, + "right_line": 377 + }, + { + "left_line": 352, + "right_line": 378 + }, + { + "left_line": 353, + "right_line": 379 + }, + { + "left_line": 354, + "right_line": 380 + }, + { + "left_line": 355, + "right_line": 381 + }, + { + "left_line": 356, + "right_line": 382 + }, + { + "left_line": 357, + "right_line": 383 + }, + { + "left_line": 358, + "right_line": 384 + }, + { + "left_line": 359, + "right_line": 385 + }, + { + "left_line": 360, + "right_line": 386 + }, + { + "left_line": 361, + "right_line": 387 + }, + { + "left_line": 362, + "right_line": 388 + }, + { + "left_line": 363, + "right_line": 389 + }, + { + "left_line": 364, + "right_line": 390 + }, + { + "left_line": 365, + "right_line": 391 + }, + { + "left_line": 366, + "right_line": 392 + }, + { + "left_line": 367, + "right_line": 393 + }, + { + "left_line": 368, + "right_line": 394 + }, + { + "left_line": 369, + "right_line": 395 + }, + { + "left_line": 370, + "right_line": 396 + }, + { + "left_line": 371, + "right_line": 397 + }, + { + "left_line": 372, + "right_line": 398 + }, + { + "left_line": 373, + "right_line": 399 + }, + { + "left_line": 374, + "right_line": 400 + }, + { + "left_line": 375, + "right_line": 401 + }, + { + "left_line": 376, + "right_line": 402 + }, + { + "left_line": 377, + "right_line": 403 + }, + { + "left_line": 378, + "right_line": 404 + }, + { + "left_line": 379, + "right_line": 405 + }, + { + "left_line": 380, + "right_line": 406 + }, + { + "left_line": 381, + "right_line": 407 + }, + { + "left_line": 382, + "right_line": 408 + }, + { + "left_line": 383, + "right_line": 409 + }, + { + "left_line": 384, + "right_line": 410 + }, + { + "left_line": 385, + "right_line": 411 + }, + { + "left_line": 386, + "right_line": 412 + }, + { + "left_line": 387, + "right_line": 413 + }, + { + "left_line": 388, + "right_line": 414 + }, + { + "left_line": 389, + "right_line": 415 + }, + { + "left_line": 390, + "right_line": 416 + }, + { + "left_line": 391, + "right_line": 417 + }, + { + "left_line": 392, + "right_line": 418 + }, + { + "left_line": 393, + "right_line": 419 + }, + { + "left_line": 394, + "right_line": 420 + }, + { + "left_line": 395, + "right_line": 421 + }, + { + "left_line": 396, + "right_line": 422 + }, + { + "left_line": 397, + "right_line": 423 + }, + { + "left_line": 398, + "right_line": 424 + }, + { + "left_line": 399, + "right_line": 425 + }, + { + "left_line": 400, + "right_line": 426 + }, + { + "left_line": 401, + "right_line": 427 + }, + { + "left_line": 402, + "right_line": 428 + }, + { + "left_line": 403, + "right_line": 429 + }, + { + "left_line": 404, + "right_line": 430 + }, + { + "left_line": 405, + "right_line": 431 + }, + { + "left_line": 406, + "right_line": 432 + }, + { + "left_line": 407, + "right_line": 433 + }, + { + "left_line": 408, + "right_line": 434 + }, + { + "left_line": 409, + "right_line": 435 + }, + { + "left_line": 410, + "right_line": 436 + }, + { + "left_line": 411, + "right_line": 437 + }, + { + "left_line": 412, + "right_line": 438 + }, + { + "left_line": 413, + "right_line": 439 + }, + { + "left_line": 414, + "right_line": 440 + }, + { + "left_line": 415, + "right_line": 441 + }, + { + "left_line": 416, + "right_line": 442 + }, + { + "left_line": 417, + "right_line": 443 + }, + { + "left_line": 418, + "right_line": 444 + }, + { + "left_line": 419, + "right_line": 445 + }, + { + "left_line": 420, + "right_line": 446 + }, + { + "left_line": 421, + "right_line": 447 + }, + { + "left_line": 422, + "right_line": 448 + }, + { + "left_line": 423, + "right_line": 449 + }, + { + "left_line": 424, + "right_line": 450 + }, + { + "left_line": 425, + "right_line": 451 + }, + { + "left_line": 426, + "right_line": 452 + }, + { + "left_line": 427, + "right_line": 453 + }, + { + "left_line": 428, + "right_line": 454 + }, + { + "left_line": 429, + "right_line": 455 + }, + { + "left_line": 430, + "right_line": 456 + }, + { + "left_line": 431, + "right_line": 457 + }, + { + "left_line": 432, + "right_line": 458 + }, + { + "left_line": 433, + "right_line": 459 + }, + { + "left_line": 434, + "right_line": 460 + }, + { + "left_line": 435, + "right_line": 461 + }, + { + "left_line": 436, + "right_line": 462 + }, + { + "left_line": 437, + "right_line": 463 + }, + { + "left_line": 438, + "right_line": 464 + }, + { + "left_line": 439, + "right_line": 465 + }, + { + "left_line": 440, + "right_line": 466 + }, + { + "left_line": 441, + "right_line": 467 + }, + { + "left_line": 442, + "right_line": 468 + }, + { + "left_line": 443, + "right_line": 469 + }, + { + "left_line": 444, + "right_line": 470 + }, + { + "left_line": 445, + "right_line": 471 + }, + { + "left_line": 446, + "right_line": 472 + }, + { + "left_line": 447, + "right_line": 473 + }, + { + "left_line": 448, + "right_line": 474 + }, + { + "left_line": 449, + "right_line": 475 + }, + { + "left_line": 450, + "right_line": 476 + }, + { + "left_line": 451, + "right_line": 477 + }, + { + "left_line": 452, + "right_line": 478 + }, + { + "left_line": 453, + "right_line": 479 + }, + { + "left_line": 454, + "right_line": 480 + }, + { + "left_line": 455, + "right_line": 481 + }, + { + "left_line": 456, + "right_line": 482 + }, + { + "left_line": 457, + "right_line": 483 + }, + { + "left_line": 458, + "right_line": 484 + }, + { + "left_line": 459, + "right_line": 485 + }, + { + "left_line": 460, + "right_line": 486 + }, + { + "left_line": 461, + "right_line": 487 + }, + { + "left_line": 462, + "right_line": 488 + }, + { + "left_line": 463, + "right_line": 489 + }, + { + "left_line": 464, + "right_line": 490 + }, + { + "left_line": 465, + "right_line": 491 + }, + { + "left_line": 466, + "right_line": 492 + }, + { + "left_line": 467, + "right_line": 493 + }, + { + "left_line": 468, + "right_line": 494 + }, + { + "left_line": 469, + "right_line": 495 + }, + { + "left_line": 470, + "right_line": 496 + }, + { + "left_line": 471, + "right_line": 497 + }, + { + "left_line": 472, + "right_line": 498 + }, + { + "left_line": 473, + "right_line": 499 + }, + { + "left_line": 474, + "right_line": 500 + }, + { + "left_line": 475, + "right_line": 501 + }, + { + "left_line": 476, + "right_line": 502 + }, + { + "left_line": 477, + "right_line": 503 + }, + { + "left_line": 478, + "right_line": 504 + }, + { + "left_line": 479, + "right_line": 505 + }, + { + "left_line": 480, + "right_line": 506 + }, + { + "left_line": 481, + "right_line": 507 + }, + { + "left_line": 482, + "right_line": 508 + }, + { + "left_line": 483, + "right_line": 509 + }, + { + "left_line": 484, + "right_line": 510 + }, + { + "left_line": 485, + "right_line": 511 + }, + { + "left_line": 486, + "right_line": 512 + }, + { + "left_line": 487, + "right_line": 513 + }, + { + "left_line": 488, + "right_line": 514 + }, + { + "left_line": 489, + "right_line": 515 + }, + { + "left_line": 490, + "right_line": 516 + }, + { + "left_line": 491, + "right_line": 517 + }, + { + "left_line": 492, + "right_line": 518 + }, + { + "left_line": 493, + "right_line": 519 + }, + { + "left_line": 494, + "right_line": 520 + }, + { + "left_line": 495, + "right_line": 521 + }, + { + "left_line": 496, + "right_line": 522 + }, + { + "left_line": 497, + "right_line": 523 + }, + { + "left_line": 498, + "right_line": 524 + }, + { + "left_line": 499, + "right_line": 525 + }, + { + "left_line": 500, + "right_line": 526 + }, + { + "left_line": 501, + "right_line": 527 + }, + { + "left_line": 502, + "right_line": 528 + }, + { + "left_line": 503, + "right_line": 529 + }, + { + "left_line": 504, + "right_line": 530 + }, + { + "left_line": 505, + "right_line": 531 + }, + { + "left_line": 506, + "right_line": 532 + }, + { + "left_line": 507, + "right_line": 533 + }, + { + "left_line": 508, + "right_line": 534 + }, + { + "left_line": 509, + "right_line": 535 + }, + { + "left_line": 510, + "right_line": 536 + }, + { + "left_line": 511, + "right_line": 537 + }, + { + "left_line": 512, + "right_line": 538 + }, + { + "left_line": 513, + "right_line": 539 + }, + { + "left_line": 514, + "right_line": 540 + }, + { + "left_line": 515, + "right_line": 541 + }, + { + "left_line": 516, + "right_line": 542 + }, + { + "left_line": 517, + "right_line": 543 + }, + { + "left_line": 518, + "right_line": 544 + }, + { + "left_line": 519, + "right_line": 545 + }, + { + "left_line": 520, + "right_line": 546 + }, + { + "left_line": 521, + "right_line": 547 + }, + { + "left_line": 522, + "right_line": 548 + }, + { + "left_line": 523, + "right_line": 549 + }, + { + "left_line": 524, + "right_line": 550 + }, + { + "left_line": 525, + "right_line": 551 + }, + { + "left_line": 526, + "right_line": 552 + }, + { + "left_line": 527, + "right_line": 553 + }, + { + "left_line": 528, + "right_line": 554 + }, + { + "left_line": 529, + "right_line": 555 + }, + { + "left_line": 530, + "right_line": 556 + }, + { + "left_line": 531, + "right_line": 557 + }, + { + "left_line": 532, + "right_line": 558 + }, + { + "left_line": 533, + "right_line": 559 + }, + { + "left_line": 534, + "right_line": 560 + }, + { + "left_line": 535, + "right_line": 561 + }, + { + "left_line": 536, + "right_line": 562 + }, + { + "left_line": 537, + "right_line": 563 + }, + { + "left_line": 538, + "right_line": 564 + }, + { + "left_line": 539, + "right_line": 565 + }, + { + "left_line": 540, + "right_line": 566 + }, + { + "left_line": 541, + "right_line": 567 + }, + { + "left_line": 542, + "right_line": 568 + }, + { + "left_line": 543, + "right_line": 569 + }, + { + "left_line": 544, + "right_line": 570 + }, + { + "left_line": 545, + "right_line": 571 + }, + { + "left_line": 546, + "right_line": 572 + }, + { + "left_line": 547, + "right_line": 573 + }, + { + "left_line": 548, + "right_line": 574 + }, + { + "left_line": 549, + "right_line": 575 + }, + { + "left_line": 550, + "right_line": 576 + }, + { + "left_line": 551, + "right_line": 577 + }, + { + "left_line": 552, + "right_line": 578 + }, + { + "left_line": 553, + "right_line": 579 + }, + { + "left_line": 554, + "right_line": 580 + }, + { + "left_line": 555, + "right_line": 581 + }, + { + "left_line": 556, + "right_line": 582 + }, + { + "left_line": 557, + "right_line": 583 + }, + { + "left_line": 558, + "right_line": 584 + }, + { + "left_line": 559, + "right_line": 585 + }, + { + "left_line": 560, + "right_line": 586 + }, + { + "left_line": 561, + "right_line": 587 + }, + { + "left_line": 562, + "right_line": 588 + }, + { + "left_line": 563, + "right_line": 589 + }, + { + "left_line": 564, + "right_line": 590 + }, + { + "left_line": 565, + "right_line": 591 + }, + { + "left_line": 566, + "right_line": 592 + }, + { + "left_line": 567, + "right_line": 593 + }, + { + "left_line": 568, + "right_line": 594 + }, + { + "left_line": 569, + "right_line": 595 + }, + { + "left_line": 570, + "right_line": 596 + }, + { + "left_line": 571, + "right_line": 597 + }, + { + "left_line": 572, + "right_line": 598 + }, + { + "left_line": 573, + "right_line": 599 + }, + { + "left_line": 574, + "right_line": 600 + }, + { + "left_line": 575, + "right_line": 601 + }, + { + "left_line": 576, + "right_line": 602 + }, + { + "left_line": 577, + "right_line": 603 + }, + { + "left_line": 578, + "right_line": 604 + }, + { + "left_line": 579, + "right_line": 605 + }, + { + "left_line": 580, + "right_line": 606 + }, + { + "left_line": 581, + "right_line": 607 + }, + { + "left_line": 582, + "right_line": 608 + }, + { + "left_line": 583, + "right_line": 609 + }, + { + "left_line": 584, + "right_line": 610 + }, + { + "left_line": 585, + "right_line": 611 + }, + { + "left_line": 586, + "right_line": 612 + }, + { + "left_line": 587, + "right_line": 613 + }, + { + "left_line": 588, + "right_line": 614 + }, + { + "left_line": 589, + "right_line": 615 + }, + { + "left_line": 590, + "right_line": 616 + }, + { + "left_line": 591, + "right_line": 617 + }, + { + "left_line": 592, + "right_line": 618 + }, + { + "left_line": 593, + "right_line": 619 + }, + { + "left_line": 594, + "right_line": 620 + }, + { + "left_line": 595, + "right_line": 621 + }, + { + "left_line": 596, + "right_line": 622 + }, + { + "left_line": 597, + "right_line": 623 + }, + { + "left_line": 598, + "right_line": 624 + }, + { + "left_line": 599, + "right_line": 625 + }, + { + "left_line": 600, + "right_line": 626 + }, + { + "left_line": 601, + "right_line": 627 + }, + { + "left_line": 602, + "right_line": 628 + }, + { + "left_line": 603, + "right_line": 629 + }, + { + "left_line": 604, + "right_line": 630 + }, + { + "left_line": 605, + "right_line": 631 + }, + { + "left_line": 606, + "right_line": 632 + }, + { + "left_line": 607, + "right_line": 633 + }, + { + "left_line": 608, + "right_line": 634 + }, + { + "left_line": 609, + "right_line": 635 + }, + { + "left_line": 610, + "right_line": 636 + }, + { + "left_line": 611, + "right_line": 637 + }, + { + "left_line": 612, + "right_line": 638 + }, + { + "left_line": 613, + "right_line": 639 + }, + { + "left_line": 614, + "right_line": 640 + }, + { + "left_line": 615, + "right_line": 641 + }, + { + "left_line": 616, + "right_line": 642 + }, + { + "left_line": 617, + "right_line": 643 + }, + { + "left_line": 618, + "right_line": 644 + }, + { + "left_line": 619, + "right_line": 645 + }, + { + "left_line": 620, + "right_line": 646 + }, + { + "left_line": 621, + "right_line": 647 + }, + { + "left_line": 622, + "right_line": 648 + }, + { + "left_line": 623, + "right_line": 649 + }, + { + "left_line": 624, + "right_line": 650 + }, + { + "left_line": 625, + "right_line": 651 + }, + { + "left_line": 626, + "right_line": 652 + }, + { + "left_line": 627, + "right_line": 653 + }, + { + "left_line": 628, + "right_line": 654 + }, + { + "left_line": 629, + "right_line": 655 + }, + { + "left_line": 630, + "right_line": 656 + }, + { + "left_line": 631, + "right_line": 657 + }, + { + "left_line": 632, + "right_line": 658 + }, + { + "left_line": 633, + "right_line": 659 + }, + { + "left_line": 634, + "right_line": 660 + }, + { + "left_line": 635, + "right_line": 661 + }, + { + "left_line": 636, + "right_line": 662 + }, + { + "left_line": 637, + "right_line": 663 + }, + { + "left_line": 638, + "right_line": 664 + }, + { + "left_line": 639, + "right_line": 665 + }, + { + "left_line": 640, + "right_line": 666 + }, + { + "left_line": 641, + "right_line": 667 + }, + { + "left_line": 642, + "right_line": 668 + }, + { + "left_line": 643, + "right_line": 669 + }, + { + "left_line": 644, + "right_line": 670 + }, + { + "left_line": 645, + "right_line": 671 + }, + { + "left_line": 646, + "right_line": 672 + }, + { + "left_line": 647, + "right_line": 673 + }, + { + "left_line": 648, + "right_line": 674 + }, + { + "left_line": 649, + "right_line": 675 + }, + { + "left_line": 650, + "right_line": 676 + }, + { + "left_line": 651, + "right_line": 677 + }, + { + "left_line": 652, + "right_line": 678 + }, + { + "left_line": 653, + "right_line": 679 + }, + { + "left_line": 654, + "right_line": 680 + }, + { + "left_line": 655, + "right_line": 681 + }, + { + "left_line": 656, + "right_line": 682 + }, + { + "left_line": 657, + "right_line": 683 + }, + { + "left_line": 658, + "right_line": 684 + }, + { + "left_line": 659, + "right_line": 685 + }, + { + "left_line": 660, + "right_line": 686 + }, + { + "left_line": 661, + "right_line": 687 + }, + { + "left_line": 662, + "right_line": 688 + }, + { + "left_line": 663, + "right_line": 689 + }, + { + "left_line": 664, + "right_line": 690 + }, + { + "left_line": 665, + "right_line": 691 + }, + { + "left_line": 666, + "right_line": 692 + }, + { + "left_line": 667, + "right_line": 693 + }, + { + "left_line": 668, + "right_line": 694 + }, + { + "left_line": 669, + "right_line": 695 + }, + { + "left_line": 670, + "right_line": 696 + }, + { + "left_line": 671, + "right_line": 697 + }, + { + "left_line": 672, + "right_line": 698 + }, + { + "left_line": 673, + "right_line": 699 + }, + { + "left_line": 674, + "right_line": 700 + }, + { + "left_line": 675, + "right_line": 701 + }, + { + "left_line": 676, + "right_line": 702 + }, + { + "left_line": 677, + "right_line": 703 + }, + { + "left_line": 678, + "right_line": 704 + }, + { + "left_line": 679, + "right_line": 705 + }, + { + "left_line": 680, + "right_line": 706 + }, + { + "left_line": 681, + "right_line": 707 + }, + { + "left_line": 682, + "right_line": 708 + }, + { + "left_line": 683, + "right_line": 709 + }, + { + "left_line": 684, + "right_line": 710 + }, + { + "left_line": 685, + "right_line": 711 + }, + { + "left_line": 686, + "right_line": 712 + }, + { + "left_line": 687, + "right_line": 713 + }, + { + "left_line": 688, + "right_line": 714 + }, + { + "left_line": 689, + "right_line": 715 + }, + { + "left_line": 690, + "right_line": 716 + }, + { + "left_line": 691, + "right_line": 717 + }, + { + "left_line": 692, + "right_line": 718 + }, + { + "left_line": 693, + "right_line": 719 + }, + { + "left_line": 694, + "right_line": 720 + }, + { + "left_line": 695, + "right_line": 721 + }, + { + "left_line": 696, + "right_line": 722 + }, + { + "left_line": 697, + "right_line": 723 + }, + { + "left_line": 698, + "right_line": 724 + }, + { + "left_line": 699, + "right_line": 725 + }, + { + "left_line": 700, + "right_line": 726 + }, + { + "left_line": 701, + "right_line": 727 + }, + { + "left_line": 702, + "right_line": 728 + }, + { + "left_line": 703, + "right_line": 729 + }, + { + "left_line": 704, + "right_line": 730 + }, + { + "left_line": 705, + "right_line": 731 + }, + { + "left_line": 706, + "right_line": 732 + }, + { + "left_line": 707, + "right_line": 733 + }, + { + "left_line": 708, + "right_line": 734 + }, + { + "left_line": 709, + "right_line": 735 + }, + { + "left_line": 710, + "right_line": 736 + }, + { + "left_line": 711, + "right_line": 737 + }, + { + "left_line": 712, + "right_line": 738 + }, + { + "left_line": 713, + "right_line": 739 + }, + { + "left_line": 714, + "right_line": 740 + }, + { + "left_line": 715, + "right_line": 741 + }, + { + "left_line": 716, + "right_line": 742 + }, + { + "left_line": 717, + "right_line": 743 + }, + { + "left_line": 718, + "right_line": 744 + }, + { + "left_line": 719, + "right_line": 745 + }, + { + "left_line": 720, + "right_line": 746 + }, + { + "left_line": 721, + "right_line": 747 + }, + { + "left_line": 722, + "right_line": 748 + }, + { + "left_line": 723, + "right_line": 749 + }, + { + "left_line": 724, + "right_line": 750 + }, + { + "left_line": 725, + "right_line": 751 + }, + { + "left_line": 726, + "right_line": 752 + }, + { + "left_line": 727, + "right_line": 753 + }, + { + "left_line": 728, + "right_line": 754 + }, + { + "left_line": 729, + "right_line": 755 + }, + { + "left_line": 730, + "right_line": 756 + }, + { + "left_line": 731, + "right_line": 757 + }, + { + "left_line": 732, + "right_line": 758 + }, + { + "left_line": 733, + "right_line": 759 + }, + { + "left_line": 734, + "right_line": 760 + }, + { + "left_line": 735, + "right_line": 761 + }, + { + "left_line": 736, + "right_line": 762 + }, + { + "left_line": 737, + "right_line": 763 + }, + { + "left_line": 738, + "right_line": 764 + }, + { + "left_line": 739, + "right_line": 765 + }, + { + "left_line": 740, + "right_line": 766 + }, + { + "left_line": 741, + "right_line": 767 + }, + { + "left_line": 742, + "right_line": 768 + }, + { + "left_line": 743, + "right_line": 769 + }, + { + "left_line": 744, + "right_line": 770 + }, + { + "left_line": 745, + "right_line": 771 + }, + { + "left_line": 746, + "right_line": 772 + }, + { + "left_line": 747, + "right_line": 773 + }, + { + "left_line": 748, + "right_line": 774 + }, + { + "left_line": 749, + "right_line": 775 + }, + { + "left_line": 750, + "right_line": 776 + }, + { + "left_line": 751, + "right_line": 777 + }, + { + "left_line": 752, + "right_line": 778 + }, + { + "left_line": 753, + "right_line": 779 + }, + { + "left_line": 754, + "right_line": 780 + }, + { + "left_line": 755, + "right_line": 781 + }, + { + "left_line": 756, + "right_line": 782 + }, + { + "left_line": 757, + "right_line": 783 + }, + { + "left_line": 758, + "right_line": 784 + }, + { + "left_line": 759, + "right_line": 785 + }, + { + "left_line": 760, + "right_line": 786 + }, + { + "left_line": 761, + "right_line": 787 + }, + { + "left_line": 762, + "right_line": 788 + }, + { + "left_line": 763, + "right_line": 789 + }, + { + "left_line": 764, + "right_line": 790 + }, + { + "left_line": 765, + "right_line": 791 + }, + { + "left_line": 766, + "right_line": 792 + }, + { + "left_line": 767, + "right_line": 793 + }, + { + "left_line": 768, + "right_line": 794 + }, + { + "left_line": 769, + "right_line": 795 + }, + { + "left_line": 770, + "right_line": 796 + }, + { + "left_line": 771, + "right_line": 797 + }, + { + "left_line": 772, + "right_line": 798 + }, + { + "left_line": 773, + "right_line": 799 + }, + { + "left_line": 774, + "right_line": 800 + }, + { + "left_line": 775, + "right_line": 801 + }, + { + "left_line": 776, + "right_line": 802 + }, + { + "left_line": 777, + "right_line": 803 + }, + { + "left_line": 778, + "right_line": 804 + }, + { + "left_line": 779, + "right_line": 805 + }, + { + "left_line": 780, + "right_line": 806 + }, + { + "left_line": 781, + "right_line": 807 + }, + { + "left_line": 782, + "right_line": 808 + }, + { + "left_line": 783, + "right_line": 809 + }, + { + "left_line": 784, + "right_line": 810 + }, + { + "left_line": 785, + "right_line": 811 + }, + { + "left_line": 786, + "right_line": 812 + }, + { + "left_line": 787, + "right_line": 813 + }, + { + "left_line": 788, + "right_line": 814 + }, + { + "left_line": 789, + "right_line": 815 + }, + { + "left_line": 790, + "right_line": 816 + }, + { + "left_line": 791, + "right_line": 817 + }, + { + "left_line": 792, + "right_line": 818 + }, + { + "left_line": 793, + "right_line": 819 + }, + { + "left_line": 794, + "right_line": 820 + }, + { + "left_line": 795, + "right_line": 821 + }, + { + "left_line": 796, + "right_line": 822 + }, + { + "left_line": 797, + "right_line": 823 + }, + { + "left_line": 798, + "right_line": 824 + }, + { + "left_line": 799, + "right_line": 825 + }, + { + "left_line": 800, + "right_line": 826 + }, + { + "left_line": 801, + "right_line": 827 + }, + { + "left_line": 802, + "right_line": 828 + }, + { + "left_line": 803, + "right_line": 829 + }, + { + "left_line": 804, + "right_line": 830 + }, + { + "left_line": 805, + "right_line": 831 + }, + { + "left_line": 806, + "right_line": 832 + }, + { + "left_line": 807, + "right_line": 833 + }, + { + "left_line": 808, + "right_line": 834 + }, + { + "left_line": 809, + "right_line": 835 + }, + { + "left_line": 810, + "right_line": 836 + }, + { + "left_line": 811, + "right_line": 837 + }, + { + "left_line": 812, + "right_line": 838 + }, + { + "left_line": 813, + "right_line": 839 + }, + { + "left_line": 814, + "right_line": 840 + }, + { + "left_line": 815, + "right_line": 841 + }, + { + "left_line": 816, + "right_line": 842 + }, + { + "left_line": 817, + "right_line": 843 + }, + { + "left_line": 818, + "right_line": 844 + }, + { + "left_line": 819, + "right_line": 845 + }, + { + "left_line": 820, + "right_line": 846 + }, + { + "left_line": 821, + "right_line": 847 + }, + { + "left_line": 822, + "right_line": 848 + }, + { + "left_line": 823, + "right_line": 849 + }, + { + "left_line": 824, + "right_line": 850 + }, + { + "left_line": 825, + "right_line": 851 + }, + { + "left_line": 826, + "right_line": 852 + }, + { + "left_line": 827, + "right_line": 853 + }, + { + "left_line": 828, + "right_line": 854 + }, + { + "left_line": 829, + "right_line": 855 + }, + { + "left_line": 830, + "right_line": 856 + }, + { + "left_line": 831, + "right_line": 857 + }, + { + "left_line": 832, + "right_line": 858 + }, + { + "left_line": 833, + "right_line": 859 + }, + { + "left_line": 834, + "right_line": 860 + }, + { + "left_line": 835, + "right_line": 861 + }, + { + "left_line": 836, + "right_line": 862 + }, + { + "left_line": 837, + "right_line": 863 + }, + { + "left_line": 838, + "right_line": 864 + }, + { + "left_line": 839, + "right_line": 865 + }, + { + "left_line": 840, + "right_line": 866 + }, + { + "left_line": 841, + "right_line": 867 + }, + { + "left_line": 842, + "right_line": 868 + }, + { + "left_line": 843, + "right_line": 869 + }, + { + "left_line": 844, + "right_line": 870 + }, + { + "left_line": 845, + "right_line": 871 + }, + { + "left_line": 846, + "right_line": 872 + }, + { + "left_line": 847, + "right_line": 873 + }, + { + "left_line": 848, + "right_line": 874 + }, + { + "left_line": 849, + "right_line": 875 + }, + { + "left_line": 850, + "right_line": 876 + }, + { + "left_line": 851, + "right_line": 877 + }, + { + "left_line": 852, + "right_line": 878 + }, + { + "left_line": 853, + "right_line": 879 + }, + { + "left_line": 854, + "right_line": 880 + }, + { + "left_line": 855, + "right_line": 881 + }, + { + "left_line": 856, + "right_line": 882 + }, + { + "left_line": 857, + "right_line": 883 + }, + { + "left_line": 858, + "right_line": 884 + }, + { + "left_line": 859, + "right_line": 885 + }, + { + "left_line": 860, + "right_line": 886 + }, + { + "left_line": 861, + "right_line": 887 + }, + { + "left_line": 862, + "right_line": 888 + }, + { + "left_line": 863, + "right_line": 889 + }, + { + "left_line": 864, + "right_line": 890 + }, + { + "left_line": 865, + "right_line": 891 + }, + { + "left_line": 866, + "right_line": 892 + }, + { + "left_line": 867, + "right_line": 893 + }, + { + "left_line": 868, + "right_line": 894 + }, + { + "left_line": 869, + "right_line": 895 + }, + { + "left_line": 870, + "right_line": 896 + }, + { + "left_line": 871, + "right_line": 897 + }, + { + "left_line": 872, + "right_line": 898 + }, + { + "left_line": 873, + "right_line": 899 + }, + { + "left_line": 874, + "right_line": 900 + }, + { + "left_line": 875, + "right_line": 901 + }, + { + "left_line": 876, + "right_line": 902 + }, + { + "left_line": 877, + "right_line": 903 + }, + { + "left_line": 878, + "right_line": 904 + }, + { + "left_line": 879, + "right_line": 905 + }, + { + "left_line": 880, + "right_line": 906 + }, + { + "left_line": 881, + "right_line": 907 + }, + { + "left_line": 882, + "right_line": 908 + }, + { + "left_line": 883, + "right_line": 909 + }, + { + "left_line": 884, + "right_line": 910 + }, + { + "left_line": 885, + "right_line": 911 + }, + { + "left_line": 886, + "right_line": 912 + }, + { + "left_line": 887, + "right_line": 913 + }, + { + "left_line": 888, + "right_line": 914 + }, + { + "left_line": 889, + "right_line": 915 + }, + { + "left_line": 890, + "right_line": 916 + }, + { + "left_line": 891, + "right_line": 917 + }, + { + "left_line": 892, + "right_line": 918 + }, + { + "left_line": 893, + "right_line": 919 + }, + { + "left_line": 894, + "right_line": 920 + }, + { + "left_line": 895, + "right_line": 921 + }, + { + "left_line": 896, + "right_line": 922 + }, + { + "left_line": 897, + "right_line": 923 + }, + { + "left_line": 898, + "right_line": 924 + }, + { + "left_line": 899, + "right_line": 925 + }, + { + "left_line": 900, + "right_line": 926 + }, + { + "left_line": 901, + "right_line": 927 + }, + { + "left_line": 902, + "right_line": 928 + }, + { + "left_line": 903, + "right_line": 929 + }, + { + "left_line": 904, + "right_line": 930 + }, + { + "left_line": 905, + "right_line": 931 + }, + { + "left_line": 906, + "right_line": 932 + }, + { + "left_line": 907, + "right_line": 933 + }, + { + "left_line": 908, + "right_line": 934 + }, + { + "left_line": 909, + "right_line": 935 + }, + { + "left_line": 910, + "right_line": 936 + }, + { + "left_line": 911, + "right_line": 937 + }, + { + "left_line": 912, + "right_line": 938 + }, + { + "left_line": 913, + "right_line": 939 + }, + { + "left_line": 914, + "right_line": 940 + }, + { + "left_line": 915, + "right_line": 941 + }, + { + "left_line": 916, + "right_line": 942 + }, + { + "left_line": 917, + "right_line": 943 + }, + { + "left_line": 918, + "right_line": 944 + }, + { + "left_line": 919, + "right_line": 945 + }, + { + "left_line": 920, + "right_line": 946 + }, + { + "left_line": 921, + "right_line": 947 + }, + { + "left_line": 922, + "right_line": 948 + }, + { + "left_line": 923, + "right_line": 949 + }, + { + "left_line": 924, + "right_line": 950 + }, + { + "left_line": 925, + "right_line": 951 + }, + { + "left_line": 926, + "right_line": 952 + }, + { + "left_line": 927, + "right_line": 953 + }, + { + "left_line": 928, + "right_line": 954 + }, + { + "left_line": 929, + "right_line": 955 + }, + { + "left_line": 930, + "right_line": 956 + }, + { + "left_line": 931, + "right_line": 957 + }, + { + "left_line": 932, + "right_line": 958 + }, + { + "left_line": 933, + "right_line": 959 + }, + { + "left_line": 934, + "right_line": 960 + }, + { + "left_line": 935, + "right_line": 961 + }, + { + "left_line": 936, + "right_line": 962 + }, + { + "left_line": 937, + "right_line": 963 + }, + { + "left_line": 938, + "right_line": 964 + }, + { + "left_line": 939, + "right_line": 965 + }, + { + "left_line": 940, + "right_line": 966 + }, + { + "left_line": 941, + "right_line": 967 + }, + { + "left_line": 942, + "right_line": 968 + }, + { + "left_line": 943, + "right_line": 969 + }, + { + "left_line": 944, + "right_line": 970 + }, + { + "left_line": 945, + "right_line": 971 + }, + { + "left_line": 946, + "right_line": 972 + }, + { + "left_line": 947, + "right_line": 973 + }, + { + "left_line": 948, + "right_line": 974 + }, + { + "left_line": 949, + "right_line": 975 + }, + { + "left_line": 950, + "right_line": 976 + }, + { + "left_line": 951, + "right_line": 977 + }, + { + "left_line": 952, + "right_line": 978 + }, + { + "left_line": 953, + "right_line": 979 + }, + { + "left_line": 954, + "right_line": 980 + }, + { + "left_line": 955, + "right_line": 981 + }, + { + "left_line": 956, + "right_line": 982 + }, + { + "left_line": 957, + "right_line": 983 + }, + { + "left_line": 958, + "right_line": 984 + }, + { + "left_line": 959, + "right_line": 985 + }, + { + "left_line": 960, + "right_line": 986 + }, + { + "left_line": 961, + "right_line": 987 + }, + { + "left_line": 962, + "right_line": 988 + }, + { + "left_line": 963, + "right_line": 989 + }, + { + "left_line": 964, + "right_line": 990 + }, + { + "left_line": 965, + "right_line": 991 + }, + { + "left_line": 966, + "right_line": 992 + }, + { + "left_line": 967, + "right_line": 993 + }, + { + "left_line": 968, + "right_line": 994 + }, + { + "left_line": 969, + "right_line": 995 + }, + { + "left_line": 970, + "right_line": 996 + }, + { + "left_line": 971, + "right_line": 997 + }, + { + "left_line": 972, + "right_line": 998 + }, + { + "left_line": 973, + "right_line": 999 + }, + { + "left_line": 974, + "right_line": 1000 + }, + { + "left_line": 975, + "right_line": 1001 + }, + { + "left_line": 976, + "right_line": 1002 + }, + { + "left_line": 977, + "right_line": 1003 + }, + { + "left_line": 978, + "right_line": 1004 + }, + { + "left_line": 979, + "right_line": 1005 + }, + { + "left_line": 980, + "right_line": 1006 + }, + { + "left_line": 981, + "right_line": 1007 + }, + { + "left_line": 982, + "right_line": 1008 + }, + { + "left_line": 983, + "right_line": 1009 + }, + { + "left_line": 984, + "right_line": 1010 + }, + { + "left_line": 985, + "right_line": 1011 + }, + { + "left_line": 986, + "right_line": 1012 + }, + { + "left_line": 987, + "right_line": 1013 + }, + { + "left_line": 988, + "right_line": 1014 + }, + { + "left_line": 989, + "right_line": 1015 + }, + { + "left_line": 990, + "right_line": 1016 + }, + { + "left_line": 991, + "right_line": 1017 + }, + { + "left_line": 992, + "right_line": 1018 + }, + { + "left_line": 993, + "right_line": 1019 + }, + { + "left_line": 994, + "right_line": 1020 + }, + { + "left_line": 995, + "right_line": 1021 + }, + { + "left_line": 996, + "right_line": 1022 + }, + { + "left_line": 997, + "right_line": 1023 + }, + { + "left_line": 998, + "right_line": 1024 + }, + { + "left_line": 999, + "right_line": 1025 + }, + { + "left_line": 1000, + "right_line": 1026 + }, + { + "left_line": 1001, + "right_line": 1027 + }, + { + "left_line": 1002, + "right_line": 1028 + }, + { + "left_line": 1003, + "right_line": 1029 + }, + { + "left_line": 1004, + "right_line": 1030 + }, + { + "left_line": 1005, + "right_line": 1031 + }, + { + "left_line": 1006, + "right_line": 1032 + }, + { + "left_line": 1007, + "right_line": 1033 + }, + { + "left_line": 1008, + "right_line": 1034 + }, + { + "left_line": 1009, + "right_line": 1035 + }, + { + "left_line": 1010, + "right_line": 1036 + }, + { + "left_line": 1011, + "right_line": 1037 + }, + { + "left_line": 1012, + "right_line": 1038 + }, + { + "left_line": 1013, + "right_line": 1039 + }, + { + "left_line": 1014, + "right_line": 1040 + }, + { + "left_line": 1015, + "right_line": 1041 + }, + { + "left_line": 1016, + "right_line": 1042 + }, + { + "left_line": 1017, + "right_line": 1043 + }, + { + "left_line": 1018, + "right_line": 1044 + }, + { + "left_line": 1019, + "right_line": 1045 + }, + { + "left_line": 1020, + "right_line": 1046 + }, + { + "left_line": 1021, + "right_line": 1047 + }, + { + "left_line": 1022, + "right_line": 1048 + }, + { + "left_line": 1023, + "right_line": 1049 + }, + { + "left_line": 1024, + "right_line": 1050 + }, + { + "left_line": 1025, + "right_line": 1051 + }, + { + "left_line": 1026, + "right_line": 1052 + }, + { + "left_line": 1027, + "right_line": 1053 + }, + { + "left_line": 1028, + "right_line": 1054 + }, + { + "left_line": 1029, + "right_line": 1055 + }, + { + "left_line": 1030, + "right_line": 1056 + }, + { + "left_line": 1031, + "right_line": 1057 + }, + { + "left_line": 1032, + "right_line": 1058 + }, + { + "left_line": 1033, + "right_line": 1059 + }, + { + "left_line": 1034, + "right_line": 1060 + }, + { + "left_line": 1035, + "right_line": 1061 + }, + { + "left_line": 1036, + "right_line": 1062 + }, + { + "left_line": 1037, + "right_line": 1063 + }, + { + "left_line": 1038, + "right_line": 1064 + }, + { + "left_line": 1039, + "right_line": 1065 + }, + { + "left_line": 1040, + "right_line": 1066 + }, + { + "left_line": 1041, + "right_line": 1067 + }, + { + "left_line": 1042, + "right_line": 1068 + }, + { + "left_line": 1043, + "right_line": 1069 + }, + { + "left_line": 1044, + "right_line": 1070 + }, + { + "left_line": 1045, + "right_line": 1071 + }, + { + "left_line": 1046, + "right_line": 1072 + }, + { + "left_line": 1047, + "right_line": 1073 + }, + { + "left_line": 1048, + "right_line": 1074 + }, + { + "left_line": 1049, + "right_line": 1075 + }, + { + "left_line": 1050, + "right_line": 1076 + }, + { + "left_line": 1051, + "right_line": 1077 + }, + { + "left_line": 1052, + "right_line": 1078 + }, + { + "left_line": 1053, + "right_line": 1079 + }, + { + "left_line": 1054, + "right_line": 1080 + }, + { + "left_line": 1055, + "right_line": 1081 + }, + { + "left_line": 1056, + "right_line": 1082 + }, + { + "left_line": 1057, + "right_line": 1083 + }, + { + "left_line": 1058, + "right_line": 1084 + }, + { + "left_line": 1059, + "right_line": 1085 + }, + { + "left_line": 1060, + "right_line": 1086 + }, + { + "left_line": 1061, + "right_line": 1087 + }, + { + "left_line": 1062, + "right_line": 1088 + }, + { + "left_line": 1063, + "right_line": 1089 + }, + { + "left_line": 1064, + "right_line": 1090 + }, + { + "left_line": 1065, + "right_line": 1091 + }, + { + "left_line": 1066, + "right_line": 1092 + }, + { + "left_line": 1067, + "right_line": 1093 + }, + { + "left_line": 1068, + "right_line": 1094 + }, + { + "left_line": 1069, + "right_line": 1095 + }, + { + "left_line": 1070, + "right_line": 1096 + }, + { + "left_line": 1071, + "right_line": 1097 + }, + { + "left_line": 1072, + "right_line": 1098 + }, + { + "left_line": 1073, + "right_line": 1099 + }, + { + "left_line": 1074, + "right_line": 1100 + }, + { + "left_line": 1075, + "right_line": 1101 + }, + { + "left_line": 1076, + "right_line": 1102 + }, + { + "left_line": 1077, + "right_line": 1103 + }, + { + "left_line": 1078, + "right_line": 1104 + }, + { + "left_line": 1079, + "right_line": 1105 + }, + { + "left_line": 1080, + "right_line": 1106 + }, + { + "left_line": 1081, + "right_line": 1107 + }, + { + "left_line": 1082, + "right_line": 1108 + }, + { + "left_line": 1083, + "right_line": 1109 + }, + { + "left_line": 1084, + "right_line": 1110 + }, + { + "left_line": 1085, + "right_line": 1111 + }, + { + "left_line": 1086, + "right_line": 1112 + }, + { + "left_line": 1087, + "right_line": 1113 + }, + { + "left_line": 1088, + "right_line": 1114 + }, + { + "left_line": 1089, + "right_line": 1115 + }, + { + "left_line": 1090, + "right_line": 1116 + }, + { + "left_line": 1091, + "right_line": 1117 + }, + { + "left_line": 1092, + "right_line": 1118 + }, + { + "left_line": 1093, + "right_line": 1119 + }, + { + "left_line": 1094, + "right_line": 1120 + }, + { + "left_line": 1095, + "right_line": 1121 + }, + { + "left_line": 1096, + "right_line": 1122 + }, + { + "left_line": 1097, + "right_line": 1123 + }, + { + "left_line": 1098, + "right_line": 1124 + }, + { + "left_line": 1099, + "right_line": 1125 + }, + { + "left_line": 1100, + "right_line": 1126 + }, + { + "left_line": 1101, + "right_line": 1127 + }, + { + "left_line": 1102, + "right_line": 1128 + }, + { + "left_line": 1103, + "right_line": 1129 + }, + { + "left_line": 1104, + "right_line": 1130 + }, + { + "left_line": 1105, + "right_line": 1131 + }, + { + "left_line": 1106, + "right_line": 1132 + }, + { + "left_line": 1107, + "right_line": 1133 + }, + { + "left_line": 1108, + "right_line": 1134 + }, + { + "left_line": 1109, + "right_line": 1135 + }, + { + "left_line": 1110, + "right_line": 1136 + }, + { + "left_line": 1111, + "right_line": 1137 + }, + { + "left_line": 1112, + "right_line": 1138 + }, + { + "left_line": 1113, + "right_line": 1139 + }, + { + "left_line": 1114, + "right_line": 1140 + }, + { + "left_line": 1115, + "right_line": 1141 + }, + { + "left_line": 1116, + "right_line": 1142 + }, + { + "left_line": 1117, + "right_line": 1143 + }, + { + "left_line": 1118, + "right_line": 1144 + }, + { + "left_line": 1119, + "right_line": 1145 + }, + { + "left_line": 1120, + "right_line": 1146 + }, + { + "left_line": 1121, + "right_line": 1147 + }, + { + "left_line": 1122, + "right_line": 1148 + }, + { + "left_line": 1123, + "right_line": 1149 + }, + { + "left_line": 1124, + "right_line": 1150 + }, + { + "left_line": 1125, + "right_line": 1151 + }, + { + "left_line": 1126, + "right_line": 1152 + }, + { + "left_line": 1127, + "right_line": 1153 + }, + { + "left_line": 1128, + "right_line": 1154 + }, + { + "left_line": 1129, + "right_line": 1155 + }, + { + "left_line": 1130, + "right_line": 1156 + }, + { + "left_line": 1131, + "right_line": 1157 + }, + { + "left_line": 1132, + "right_line": 1158 + }, + { + "left_line": 1133, + "right_line": 1159 + }, + { + "left_line": 1134, + "right_line": 1160 + }, + { + "left_line": 1135, + "right_line": 1161 + }, + { + "left_line": 1136, + "right_line": 1162 + }, + { + "left_line": 1137, + "right_line": 1163 + }, + { + "left_line": 1138, + "right_line": 1164 + }, + { + "left_line": 1139, + "right_line": 1165 + }, + { + "left_line": 1140, + "right_line": 1166 + }, + { + "left_line": 1141, + "right_line": 1167 + }, + { + "left_line": 1142, + "right_line": 1168 + }, + { + "left_line": 1143, + "right_line": 1169 + }, + { + "left_line": 1144, + "right_line": 1170 + }, + { + "left_line": 1145, + "right_line": 1171 + }, + { + "left_line": 1146, + "right_line": 1172 + }, + { + "left_line": 1147, + "right_line": 1173 + }, + { + "left_line": 1148, + "right_line": 1174 + }, + { + "left_line": 1149, + "right_line": 1175 + }, + { + "left_line": 1150, + "right_line": 1176 + }, + { + "left_line": 1151, + "right_line": 1177 + }, + { + "left_line": 1152, + "right_line": 1178 + }, + { + "left_line": 1153, + "right_line": 1179 + }, + { + "left_line": 1154, + "right_line": 1180 + }, + { + "left_line": 1155, + "right_line": 1181 + }, + { + "left_line": 1156, + "right_line": 1182 + }, + { + "left_line": 1157, + "right_line": 1183 + }, + { + "left_line": 1158, + "right_line": 1184 + }, + { + "left_line": 1159, + "right_line": 1185 + }, + { + "left_line": 1160, + "right_line": 1186 + }, + { + "left_line": 1161, + "right_line": 1187 + }, + { + "left_line": 1162, + "right_line": 1188 + }, + { + "left_line": 1163, + "right_line": 1189 + }, + { + "left_line": 1164, + "right_line": 1190 + }, + { + "left_line": 1165, + "right_line": 1191 + }, + { + "left_line": 1166, + "right_line": 1192 + }, + { + "left_line": 1167, + "right_line": 1193 + }, + { + "left_line": 1168, + "right_line": 1194 + }, + { + "left_line": 1169, + "right_line": 1195 + }, + { + "left_line": 1170, + "right_line": 1196 + }, + { + "left_line": 1171, + "right_line": 1197 + }, + { + "left_line": 1172, + "right_line": 1198 + }, + { + "left_line": 1173, + "right_line": 1199 + }, + { + "left_line": 1174, + "right_line": 1200 + }, + { + "left_line": 1175, + "right_line": 1201 + }, + { + "left_line": 1176, + "right_line": 1202 + }, + { + "left_line": 1177, + "right_line": 1203 + }, + { + "left_line": 1178, + "right_line": 1204 + }, + { + "left_line": 1179, + "right_line": 1205 + }, + { + "left_line": 1180, + "right_line": 1206 + }, + { + "left_line": 1181, + "right_line": 1207 + }, + { + "left_line": 1182, + "right_line": 1208 + }, + { + "left_line": 1183, + "right_line": 1209 + }, + { + "left_line": 1184, + "right_line": 1210 + }, + { + "left_line": 1185, + "right_line": 1211 + }, + { + "left_line": 1186, + "right_line": 1212 + }, + { + "left_line": 1187, + "right_line": 1213 + }, + { + "left_line": 1188, + "right_line": 1214 + }, + { + "left_line": 1189, + "right_line": 1215 + }, + { + "left_line": 1190, + "right_line": 1216 + }, + { + "left_line": 1191, + "right_line": 1217 + }, + { + "left_line": 1192, + "right_line": 1218 + }, + { + "left_line": 1193, + "right_line": 1219 + }, + { + "left_line": 1194, + "right_line": 1220 + }, + { + "left_line": 1195, + "right_line": 1221 + }, + { + "left_line": 1196, + "right_line": 1222 + }, + { + "left_line": 1197, + "right_line": 1223 + }, + { + "left_line": 1198, + "right_line": 1224 + }, + { + "left_line": 1199, + "right_line": 1225 + }, + { + "left_line": 1200, + "right_line": 1226 + }, + { + "left_line": 1201, + "right_line": 1227 + }, + { + "left_line": 1202, + "right_line": 1228 + }, + { + "left_line": 1203, + "right_line": 1229 + }, + { + "left_line": 1204, + "right_line": 1230 + }, + { + "left_line": 1205, + "right_line": 1231 + }, + { + "left_line": 1206, + "right_line": 1232 + }, + { + "left_line": 1207, + "right_line": 1233 + }, + { + "left_line": 1208, + "right_line": 1234 + }, + { + "left_line": 1209, + "right_line": 1235 + }, + { + "left_line": 1210, + "right_line": 1236 + }, + { + "left_line": 1211, + "right_line": 1237 + }, + { + "left_line": 1212, + "right_line": 1238 + }, + { + "left_line": 1213, + "right_line": 1239 + }, + { + "left_line": 1214, + "right_line": 1240 + }, + { + "left_line": 1215, + "right_line": 1241 + }, + { + "left_line": 1216, + "right_line": 1242 + }, + { + "left_line": 1217, + "right_line": 1243 + }, + { + "left_line": 1218, + "right_line": 1244 + }, + { + "left_line": 1219, + "right_line": 1245 + }, + { + "left_line": 1220, + "right_line": 1246 + }, + { + "left_line": 1221, + "right_line": 1247 + }, + { + "left_line": 1222, + "right_line": 1248 + }, + { + "left_line": 1223, + "right_line": 1249 + }, + { + "left_line": 1224, + "right_line": 1250 + }, + { + "left_line": 1225, + "right_line": 1251 + }, + { + "left_line": 1226, + "right_line": 1252 + }, + { + "left_line": 1227, + "right_line": 1253 + }, + { + "left_line": 1228, + "right_line": 1254 + }, + { + "left_line": 1229, + "right_line": 1255 + }, + { + "left_line": 1230, + "right_line": 1256 + }, + { + "left_line": 1231, + "right_line": 1257 + }, + { + "left_line": 1232, + "right_line": 1258 + }, + { + "left_line": 1233, + "right_line": 1259 + }, + { + "left_line": 1234, + "right_line": 1260 + }, + { + "left_line": 1235, + "right_line": 1261 + }, + { + "left_line": 1236, + "right_line": 1262 + }, + { + "left_line": 1237, + "right_line": 1263 + }, + { + "left_line": 1238, + "right_line": 1264 + }, + { + "left_line": 1239, + "right_line": 1265 + }, + { + "left_line": 1240, + "right_line": 1266 + }, + { + "left_line": 1241, + "right_line": 1267 + }, + { + "left_line": 1242, + "right_line": 1268 + }, + { + "left_line": 1243, + "right_line": 1269 + }, + { + "left_line": 1244, + "right_line": 1270 + }, + { + "left_line": 1245, + "right_line": 1271 + }, + { + "left_line": 1246, + "right_line": 1272 + }, + { + "left_line": 1247, + "right_line": 1273 + }, + { + "left_line": 1248, + "right_line": 1274 + }, + { + "left_line": 1249, + "right_line": 1275 + }, + { + "left_line": 1250, + "right_line": 1276 + }, + { + "left_line": 1251, + "right_line": 1277 + }, + { + "left_line": 1252, + "right_line": 1278 + }, + { + "left_line": 1253, + "right_line": 1279 + }, + { + "left_line": 1254, + "right_line": 1280 + }, + { + "left_line": 1255, + "right_line": 1281 + }, + { + "left_line": 1256, + "right_line": 1282 + }, + { + "left_line": 1257, + "right_line": 1283 + }, + { + "left_line": 1258, + "right_line": 1284 + }, + { + "left_line": 1259, + "right_line": 1285 + }, + { + "left_line": 1260, + "right_line": 1286 + }, + { + "left_line": 1261, + "right_line": 1287 + }, + { + "left_line": 1262, + "right_line": 1288 + }, + { + "left_line": 1263, + "right_line": 1289 + }, + { + "left_line": 1264, + "right_line": 1290 + }, + { + "left_line": 1265, + "right_line": 1291 + }, + { + "left_line": 1266, + "right_line": 1292 + }, + { + "left_line": 1267, + "right_line": 1293 + }, + { + "left_line": 1268, + "right_line": 1294 + }, + { + "left_line": 1269, + "right_line": 1295 + }, + { + "left_line": 1270, + "right_line": 1296 + }, + { + "left_line": 1271, + "right_line": 1297 + }, + { + "left_line": 1272, + "right_line": 1298 + }, + { + "left_line": 1273, + "right_line": 1299 + }, + { + "left_line": 1274, + "right_line": 1300 + }, + { + "left_line": 1275, + "right_line": 1301 + }, + { + "left_line": 1276, + "right_line": 1302 + }, + { + "left_line": 1277, + "right_line": 1303 + }, + { + "left_line": 1278, + "right_line": 1304 + }, + { + "left_line": 1279, + "right_line": 1305 + }, + { + "left_line": 1280, + "right_line": 1306 + }, + { + "left_line": 1281, + "right_line": 1307 + }, + { + "left_line": 1282, + "right_line": 1308 + }, + { + "left_line": 1283, + "right_line": 1309 + }, + { + "left_line": 1284, + "right_line": 1310 + }, + { + "left_line": 1285, + "right_line": 1311 + }, + { + "left_line": 1286, + "right_line": 1312 + }, + { + "left_line": 1287, + "right_line": 1313 + }, + { + "left_line": 1288, + "right_line": 1314 + }, + { + "left_line": 1289, + "right_line": 1315 + }, + { + "left_line": 1290, + "right_line": 1316 + }, + { + "left_line": 1291, + "right_line": 1317 + }, + { + "left_line": 1292, + "right_line": 1318 + }, + { + "left_line": 1293, + "right_line": 1319 + }, + { + "left_line": 1294, + "right_line": 1320 + }, + { + "left_line": 1295, + "right_line": 1321 + }, + { + "left_line": 1296, + "right_line": 1322 + }, + { + "left_line": 1297, + "right_line": 1323 + }, + { + "left_line": 1298, + "right_line": 1324 + }, + { + "left_line": 1299, + "right_line": 1325 + }, + { + "left_line": 1300, + "right_line": 1326 + }, + { + "left_line": 1301, + "right_line": 1327 + }, + { + "left_line": 1302, + "right_line": 1328 + }, + { + "left_line": 1303, + "right_line": 1329 + }, + { + "left_line": 1304, + "right_line": 1330 + }, + { + "left_line": 1305, + "right_line": 1331 + }, + { + "left_line": 1306, + "right_line": 1332 + }, + { + "left_line": 1307, + "right_line": 1333 + }, + { + "left_line": 1308, + "right_line": 1334 + }, + { + "left_line": 1309, + "right_line": 1335 + }, + { + "left_line": 1310, + "right_line": 1336 + }, + { + "left_line": 1311, + "right_line": 1337 + }, + { + "left_line": 1312, + "right_line": 1338 + }, + { + "left_line": 1313, + "right_line": 1339 + }, + { + "left_line": 1314, + "right_line": 1340 + }, + { + "left_line": 1315, + "right_line": 1341 + }, + { + "left_line": 1316, + "right_line": 1342 + }, + { + "left_line": 1317, + "right_line": 1343 + }, + { + "left_line": 1318, + "right_line": 1344 + }, + { + "left_line": 1319, + "right_line": 1345 + }, + { + "left_line": 1320, + "right_line": 1346 + }, + { + "left_line": 1321, + "right_line": 1347 + }, + { + "left_line": 1322, + "right_line": 1348 + }, + { + "left_line": 1323, + "right_line": 1349 + }, + { + "left_line": 1324, + "right_line": 1350 + }, + { + "left_line": 1325, + "right_line": 1351 + }, + { + "left_line": 1326, + "right_line": 1352 + }, + { + "left_line": 1327, + "right_line": 1353 + }, + { + "left_line": 1328, + "right_line": 1354 + }, + { + "left_line": 1329, + "right_line": 1355 + }, + { + "left_line": 1330, + "right_line": 1356 + }, + { + "left_line": 1331, + "right_line": 1357 + }, + { + "left_line": 1332, + "right_line": 1358 + }, + { + "left_line": 1333, + "right_line": 1359 + }, + { + "left_line": 1334, + "right_line": 1360 + }, + { + "left_line": 1335, + "right_line": 1361 + }, + { + "left_line": 1336, + "right_line": 1362 + }, + { + "left_line": 1337, + "right_line": 1363 + }, + { + "left_line": 1338, + "right_line": 1364 + }, + { + "left_line": 1339, + "right_line": 1365 + }, + { + "left_line": 1340, + "right_line": 1366 + }, + { + "left_line": 1341, + "right_line": 1367 + }, + { + "left_line": 1342, + "right_line": 1368 + }, + { + "left_line": 1343, + "right_line": 1369 + }, + { + "left_line": 1344, + "right_line": 1370 + }, + { + "left_line": 1345, + "right_line": 1371 + }, + { + "left_line": 1346, + "right_line": 1372 + }, + { + "left_line": 1347, + "right_line": 1373 + }, + { + "left_line": 1348, + "right_line": 1374 + }, + { + "left_line": 1349, + "right_line": 1375 + }, + { + "left_line": 1350, + "right_line": 1376 + }, + { + "left_line": 1351, + "right_line": 1377 + }, + { + "left_line": 1352, + "right_line": 1378 + }, + { + "left_line": 1353, + "right_line": 1379 + }, + { + "left_line": 1354, + "right_line": 1380 + }, + { + "left_line": 1355, + "right_line": 1381 + }, + { + "left_line": 1356, + "right_line": 1382 + }, + { + "left_line": 1357, + "right_line": 1383 + }, + { + "left_line": 1358, + "right_line": 1384 + }, + { + "left_line": 1359, + "right_line": 1385 + }, + { + "left_line": 1360, + "right_line": 1386 + }, + { + "left_line": 1361, + "right_line": 1387 + }, + { + "left_line": 1362, + "right_line": 1388 + }, + { + "left_line": 1363, + "right_line": 1389 + }, + { + "left_line": 1364, + "right_line": 1390 + }, + { + "left_line": 1365, + "right_line": 1391 + }, + { + "left_line": 1366, + "right_line": 1392 + }, + { + "left_line": 1367, + "right_line": 1393 + }, + { + "left_line": 1368, + "right_line": 1394 + }, + { + "left_line": 1369, + "right_line": 1395 + }, + { + "left_line": 1370, + "right_line": 1396 + }, + { + "left_line": 1371, + "right_line": 1397 + }, + { + "left_line": 1372, + "right_line": 1398 + }, + { + "left_line": 1373, + "right_line": 1399 + }, + { + "left_line": 1374, + "right_line": 1400 + }, + { + "left_line": 1375, + "right_line": 1401 + }, + { + "left_line": 1376, + "right_line": 1402 + }, + { + "left_line": 1377, + "right_line": 1403 + }, + { + "left_line": 1378, + "right_line": 1404 + }, + { + "left_line": 1379, + "right_line": 1405 + }, + { + "left_line": 1380, + "right_line": 1406 + }, + { + "left_line": 1381, + "right_line": 1407 + }, + { + "left_line": 1382, + "right_line": 1408 + }, + { + "left_line": 1383, + "right_line": 1409 + }, + { + "left_line": 1384, + "right_line": 1410 + }, + { + "left_line": 1385, + "right_line": 1411 + }, + { + "left_line": 1386, + "right_line": 1412 + }, + { + "left_line": 1387, + "right_line": 1413 + }, + { + "left_line": 1388, + "right_line": 1414 + }, + { + "left_line": 1389, + "right_line": 1415 + }, + { + "left_line": 1390, + "right_line": 1416 + }, + { + "left_line": 1391, + "right_line": 1417 + }, + { + "left_line": 1392, + "right_line": 1418 + }, + { + "left_line": 1393, + "right_line": 1419 + }, + { + "left_line": 1394, + "right_line": 1420 + }, + { + "left_line": 1395, + "right_line": 1421 + }, + { + "left_line": 1396, + "right_line": 1422 + }, + { + "left_line": 1397, + "right_line": 1423 + }, + { + "left_line": 1398, + "right_line": 1424 + }, + { + "left_line": 1399, + "right_line": 1425 + }, + { + "left_line": 1400, + "right_line": 1426 + }, + { + "left_line": 1401, + "right_line": 1427 + }, + { + "left_line": 1402, + "right_line": 1428 + }, + { + "left_line": 1403, + "right_line": 1429 + }, + { + "left_line": 1404, + "right_line": 1430 + }, + { + "left_line": 1405, + "right_line": 1431 + }, + { + "left_line": 1406, + "right_line": 1432 + }, + { + "left_line": 1407, + "right_line": 1433 + }, + { + "left_line": 1408, + "right_line": 1434 + }, + { + "left_line": 1409, + "right_line": 1435 + }, + { + "left_line": 1410, + "right_line": 1436 + }, + { + "left_line": 1411, + "right_line": 1437 + }, + { + "left_line": 1412, + "right_line": 1438 + }, + { + "left_line": 1413, + "right_line": 1439 + }, + { + "left_line": 1414, + "right_line": 1440 + }, + { + "left_line": 1415, + "right_line": 1441 + }, + { + "left_line": 1416, + "right_line": 1442 + }, + { + "left_line": 1417, + "right_line": 1443 + }, + { + "left_line": 1418, + "right_line": 1444 + }, + { + "left_line": 1419, + "right_line": 1445 + }, + { + "left_line": 1420, + "right_line": 1446 + }, + { + "left_line": 1421, + "right_line": 1447 + }, + { + "left_line": 1422, + "right_line": 1448 + }, + { + "left_line": 1423, + "right_line": 1449 + }, + { + "left_line": 1424, + "right_line": 1450 + }, + { + "left_line": 1425, + "right_line": 1451 + }, + { + "left_line": 1426, + "right_line": 1452 + }, + { + "left_line": 1427, + "right_line": 1453 + }, + { + "left_line": 1428, + "right_line": 1454 + }, + { + "left_line": 1429, + "right_line": 1455 + }, + { + "left_line": 1430, + "right_line": 1456 + }, + { + "left_line": 1431, + "right_line": 1457 + }, + { + "left_line": 1432, + "right_line": 1458 + }, + { + "left_line": 1433, + "right_line": 1459 + }, + { + "left_line": 1434, + "right_line": 1460 + }, + { + "left_line": 1435, + "right_line": 1461 + }, + { + "left_line": 1436, + "right_line": 1462 + }, + { + "left_line": 1437, + "right_line": 1463 + }, + { + "left_line": 1438, + "right_line": 1464 + }, + { + "left_line": 1439, + "right_line": 1465 + }, + { + "left_line": 1440, + "right_line": 1466 + }, + { + "left_line": 1441, + "right_line": 1467 + }, + { + "left_line": 1442, + "right_line": 1468 + }, + { + "left_line": 1443, + "right_line": 1469 + }, + { + "left_line": 1444, + "right_line": 1470 + }, + { + "left_line": 1445, + "right_line": 1471 + }, + { + "left_line": 1446, + "right_line": 1472 + }, + { + "left_line": 1447, + "right_line": 1473 + }, + { + "left_line": 1448, + "right_line": 1474 + }, + { + "left_line": 1449, + "right_line": 1475 + }, + { + "left_line": 1450, + "right_line": 1476 + }, + { + "left_line": 1451, + "right_line": 1477 + }, + { + "left_line": 1452, + "right_line": 1478 + }, + { + "left_line": 1453, + "right_line": 1479 + }, + { + "left_line": 1454, + "right_line": 1480 + }, + { + "left_line": 1455, + "right_line": 1481 + }, + { + "left_line": 1456, + "right_line": 1482 + }, + { + "left_line": 1457, + "right_line": 1483 + }, + { + "left_line": 1458, + "right_line": 1484 + }, + { + "left_line": 1459, + "right_line": 1485 + }, + { + "left_line": 1460, + "right_line": 1486 + }, + { + "left_line": 1461, + "right_line": 1487 + }, + { + "left_line": 1462, + "right_line": 1488 + }, + { + "left_line": 1463, + "right_line": 1489 + }, + { + "left_line": 1464, + "right_line": 1490 + }, + { + "left_line": 1465, + "right_line": 1491 + }, + { + "left_line": 1466, + "right_line": 1492 + }, + { + "left_line": 1467, + "right_line": 1493 + }, + { + "left_line": 1468, + "right_line": 1494 + }, + { + "left_line": 1469, + "right_line": 1495 + }, + { + "left_line": 1470, + "right_line": 1496 + }, + { + "left_line": 1471, + "right_line": 1497 + }, + { + "left_line": 1472, + "right_line": 1498 + }, + { + "left_line": 1473, + "right_line": 1499 + }, + { + "left_line": 1474, + "right_line": 1500 + }, + { + "left_line": 1475, + "right_line": 1501 + }, + { + "left_line": 1476, + "right_line": 1502 + }, + { + "left_line": 1477, + "right_line": 1503 + }, + { + "left_line": 1478, + "right_line": 1504 + }, + { + "left_line": 1479, + "right_line": 1505 + }, + { + "left_line": 1480, + "right_line": 1506 + }, + { + "left_line": 1481, + "right_line": 1507 + }, + { + "left_line": 1482, + "right_line": 1508 + }, + { + "left_line": 1483, + "right_line": 1509 + }, + { + "left_line": 1484, + "right_line": 1510 + }, + { + "left_line": 1485, + "right_line": 1511 + }, + { + "left_line": 1486, + "right_line": 1512 + }, + { + "left_line": 1487, + "right_line": 1513 + }, + { + "left_line": 1488, + "right_line": 1514 + }, + { + "left_line": 1489, + "right_line": 1515 + }, + { + "left_line": 1490, + "right_line": 1516 + }, + { + "left_line": 1491, + "right_line": 1517 + }, + { + "left_line": 1492, + "right_line": 1518 + }, + { + "left_line": 1493, + "right_line": 1519 + }, + { + "left_line": 1494, + "right_line": 1520 + }, + { + "left_line": 1495, + "right_line": 1521 + }, + { + "left_line": 1496, + "right_line": 1522 + }, + { + "left_line": 1497, + "right_line": 1523 + }, + { + "left_line": 1498, + "right_line": 1524 + }, + { + "left_line": 1499, + "right_line": 1525 + }, + { + "left_line": 1500, + "right_line": 1526 + }, + { + "left_line": 1501, + "right_line": 1527 + }, + { + "left_line": 1502, + "right_line": 1528 + }, + { + "left_line": 1503, + "right_line": 1529 + }, + { + "left_line": 1504, + "right_line": 1530 + }, + { + "left_line": 1505, + "right_line": 1531 + }, + { + "left_line": 1506, + "right_line": 1532 + }, + { + "left_line": 1507, + "right_line": 1533 + }, + { + "left_line": 1508, + "right_line": 1534 + }, + { + "left_line": 1509, + "right_line": 1535 + }, + { + "left_line": 1510, + "right_line": 1536 + }, + { + "left_line": 1511, + "right_line": 1537 + }, + { + "left_line": 1512, + "right_line": 1538 + }, + { + "left_line": 1513, + "right_line": 1539 + }, + { + "left_line": 1514, + "right_line": 1540 + }, + { + "left_line": 1515, + "right_line": 1541 + }, + { + "left_line": 1516, + "right_line": 1542 + }, + { + "left_line": 1517, + "right_line": 1543 + }, + { + "left_line": 1518, + "right_line": 1544 + }, + { + "left_line": 1519, + "right_line": 1545 + }, + { + "left_line": 1520, + "right_line": 1546 + }, + { + "left_line": 1521, + "right_line": 1547 + }, + { + "left_line": 1522, + "right_line": 1548 + }, + { + "left_line": 1523, + "right_line": 1549 + }, + { + "left_line": 1524, + "right_line": 1550 + }, + { + "left_line": 1525, + "right_line": 1551 + }, + { + "left_line": 1526, + "right_line": 1552 + }, + { + "left_line": 1527, + "right_line": 1553 + }, + { + "left_line": 1528, + "right_line": 1554 + }, + { + "left_line": 1529, + "right_line": 1555 + }, + { + "left_line": 1530, + "right_line": 1556 + }, + { + "left_line": 1531, + "right_line": 1557 + }, + { + "left_line": 1532, + "right_line": 1558 + }, + { + "left_line": 1533, + "right_line": 1559 + }, + { + "left_line": 1534, + "right_line": 1560 + }, + { + "left_line": 1535, + "right_line": 1561 + }, + { + "left_line": 1536, + "right_line": 1562 + }, + { + "left_line": 1537, + "right_line": 1563 + }, + { + "left_line": 1538, + "right_line": 1564 + }, + { + "left_line": 1539, + "right_line": 1565 + }, + { + "left_line": 1540, + "right_line": 1566 + }, + { + "left_line": 1541, + "right_line": 1567 + }, + { + "left_line": 1542, + "right_line": 1568 + }, + { + "left_line": 1543, + "right_line": 1569 + }, + { + "left_line": 1544, + "right_line": 1570 + }, + { + "left_line": 1545, + "right_line": 1571 + }, + { + "left_line": 1546, + "right_line": 1572 + }, + { + "left_line": 1547, + "right_line": 1573 + }, + { + "left_line": 1548, + "right_line": 1574 + }, + { + "left_line": 1549, + "right_line": 1575 + }, + { + "left_line": 1550, + "right_line": 1576 + }, + { + "left_line": 1551, + "right_line": 1577 + }, + { + "left_line": 1552, + "right_line": 1578 + }, + { + "left_line": 1553, + "right_line": 1579 + }, + { + "left_line": 1554, + "right_line": 1580 + }, + { + "left_line": 1555, + "right_line": 1581 + }, + { + "left_line": 1556, + "right_line": 1582 + }, + { + "left_line": 1557, + "right_line": 1583 + }, + { + "left_line": 1558, + "right_line": 1584 + }, + { + "left_line": 1559, + "right_line": 1585 + }, + { + "left_line": 1560, + "right_line": 1586 + }, + { + "left_line": 1561, + "right_line": 1587 + }, + { + "left_line": 1562, + "right_line": 1588 + }, + { + "left_line": 1563, + "right_line": 1589 + }, + { + "left_line": 1564, + "right_line": 1590 + }, + { + "left_line": 1565, + "right_line": 1591 + }, + { + "left_line": 1566, + "right_line": 1592 + }, + { + "left_line": 1567, + "right_line": 1593 + }, + { + "left_line": 1568, + "right_line": 1594 + }, + { + "left_line": 1569, + "right_line": 1595 + }, + { + "left_line": 1570, + "right_line": 1596 + }, + { + "left_line": 1571, + "right_line": 1597 + }, + { + "left_line": 1572, + "right_line": 1598 + }, + { + "left_line": 1573, + "right_line": 1599 + }, + { + "left_line": 1574, + "right_line": 1600 + }, + { + "left_line": 1575, + "right_line": 1601 + }, + { + "left_line": 1576, + "right_line": 1602 + }, + { + "left_line": 1577, + "right_line": 1603 + }, + { + "left_line": 1578, + "right_line": 1604 + }, + { + "left_line": 1579, + "right_line": 1605 + }, + { + "left_line": 1580, + "right_line": 1606 + }, + { + "left_line": 1581, + "right_line": 1607 + }, + { + "left_line": 1582, + "right_line": 1608 + }, + { + "left_line": 1583, + "right_line": 1609 + }, + { + "left_line": 1584, + "right_line": 1610 + }, + { + "left_line": 1585, + "right_line": 1611 + }, + { + "left_line": 1586, + "right_line": 1612 + }, + { + "left_line": 1587, + "right_line": 1613 + }, + { + "left_line": 1588, + "right_line": 1614 + }, + { + "left_line": 1589, + "right_line": 1615 + }, + { + "left_line": 1590, + "right_line": 1616 + }, + { + "left_line": 1591, + "right_line": 1617 + }, + { + "left_line": 1592, + "right_line": 1618 + }, + { + "left_line": 1593, + "right_line": 1619 + }, + { + "left_line": 1594, + "right_line": 1620 + }, + { + "left_line": 1595, + "right_line": 1621 + }, + { + "left_line": 1596, + "right_line": 1622 + }, + { + "left_line": 1597, + "right_line": 1623 + }, + { + "left_line": 1598, + "right_line": 1624 + }, + { + "left_line": 1599, + "right_line": 1625 + }, + { + "left_line": 1600, + "right_line": 1626 + }, + { + "left_line": 1601, + "right_line": 1627 + }, + { + "left_line": 1602, + "right_line": 1628 + }, + { + "left_line": 1603, + "right_line": 1629 + }, + { + "left_line": 1604, + "right_line": 1630 + }, + { + "left_line": 1605, + "right_line": 1631 + }, + { + "left_line": 1606, + "right_line": 1632 + }, + { + "left_line": 1607, + "right_line": 1633 + }, + { + "left_line": 1608, + "right_line": 1634 + }, + { + "left_line": 1609, + "right_line": 1635 + }, + { + "left_line": 1610, + "right_line": 1636 + }, + { + "left_line": 1611, + "right_line": 1637 + }, + { + "left_line": 1612, + "right_line": 1638 + }, + { + "left_line": 1613, + "right_line": 1639 + }, + { + "left_line": 1614, + "right_line": 1640 + }, + { + "left_line": 1615, + "right_line": 1641 + }, + { + "left_line": 1616, + "right_line": 1642 + }, + { + "left_line": 1617, + "right_line": 1643 + }, + { + "left_line": 1618, + "right_line": 1644 + }, + { + "left_line": 1619, + "right_line": 1645 + }, + { + "left_line": 1620, + "right_line": 1646 + }, + { + "left_line": 1621, + "right_line": 1647 + }, + { + "left_line": 1622, + "right_line": 1648 + }, + { + "left_line": 1623, + "right_line": 1649 + }, + { + "left_line": 1624, + "right_line": 1650 + }, + { + "left_line": 1625, + "right_line": 1651 + }, + { + "left_line": 1626, + "right_line": 1652 + }, + { + "left_line": 1627, + "right_line": 1653 + }, + { + "left_line": 1628, + "right_line": 1654 + }, + { + "left_line": 1629, + "right_line": 1655 + }, + { + "left_line": 1630, + "right_line": 1656 + }, + { + "left_line": 1631, + "right_line": 1657 + }, + { + "left_line": 1632, + "right_line": 1658 + }, + { + "left_line": 1633, + "right_line": 1659 + }, + { + "left_line": 1634, + "right_line": 1660 + }, + { + "left_line": 1635, + "right_line": 1661 + }, + { + "left_line": 1636, + "right_line": 1662 + }, + { + "left_line": 1637, + "right_line": 1663 + }, + { + "left_line": 1638, + "right_line": 1664 + }, + { + "left_line": 1639, + "right_line": 1665 + }, + { + "left_line": 1640, + "right_line": 1666 + }, + { + "left_line": 1641, + "right_line": 1667 + }, + { + "left_line": 1642, + "right_line": 1668 + }, + { + "left_line": 1643, + "right_line": 1669 + }, + { + "left_line": 1644, + "right_line": 1670 + }, + { + "left_line": 1645, + "right_line": 1671 + }, + { + "left_line": 1646, + "right_line": 1672 + }, + { + "left_line": 1647, + "right_line": 1673 + }, + { + "left_line": 1648, + "right_line": 1674 + }, + { + "left_line": 1649, + "right_line": 1675 + }, + { + "left_line": 1650, + "right_line": 1676 + }, + { + "left_line": 1651, + "right_line": 1677 + }, + { + "left_line": 1652, + "right_line": 1678 + }, + { + "left_line": 1653, + "right_line": 1679 + }, + { + "left_line": 1654, + "right_line": 1680 + }, + { + "left_line": 1655, + "right_line": 1681 + }, + { + "left_line": 1656, + "right_line": 1682 + }, + { + "left_line": 1657, + "right_line": 1683 + }, + { + "left_line": 1658, + "right_line": 1684 + }, + { + "left_line": 1659, + "right_line": 1685 + }, + { + "left_line": 1660, + "right_line": 1686 + }, + { + "left_line": 1661, + "right_line": 1687 + }, + { + "left_line": 1662, + "right_line": 1688 + }, + { + "left_line": 1663, + "right_line": 1689 + }, + { + "left_line": 1664, + "right_line": 1690 + }, + { + "left_line": 1665, + "right_line": 1691 + }, + { + "left_line": 1666, + "right_line": 1692 + }, + { + "left_line": 1667, + "right_line": 1693 + }, + { + "left_line": 1668, + "right_line": 1694 + }, + { + "left_line": 1669, + "right_line": 1695 + }, + { + "left_line": 1670, + "right_line": 1696 + }, + { + "left_line": 1671, + "right_line": 1697 + }, + { + "left_line": 1672, + "right_line": 1698 + }, + { + "left_line": 1673, + "right_line": 1699 + }, + { + "left_line": 1674, + "right_line": 1700 + }, + { + "left_line": 1675, + "right_line": 1701 + }, + { + "left_line": 1676, + "right_line": 1702 + }, + { + "left_line": 1677, + "right_line": 1703 + }, + { + "left_line": 1678, + "right_line": 1704 + }, + { + "left_line": 1679, + "right_line": 1705 + }, + { + "left_line": 1680, + "right_line": 1706 + }, + { + "left_line": 1681, + "right_line": 1707 + }, + { + "left_line": 1682, + "right_line": 1708 + }, + { + "left_line": 1683, + "right_line": 1709 + }, + { + "left_line": 1684, + "right_line": 1710 + }, + { + "left_line": 1685, + "right_line": 1711 + }, + { + "left_line": 1686, + "right_line": 1712 + }, + { + "left_line": 1687, + "right_line": 1713 + }, + { + "left_line": 1688, + "right_line": 1714 + }, + { + "left_line": 1689, + "right_line": 1715 + }, + { + "left_line": 1690, + "right_line": 1716 + }, + { + "left_line": 1691, + "right_line": 1717 + }, + { + "left_line": 1692, + "right_line": 1718 + }, + { + "left_line": 1693, + "right_line": 1719 + }, + { + "left_line": 1694, + "right_line": 1720 + }, + { + "left_line": 1695, + "right_line": 1721 + }, + { + "left_line": 1696, + "right_line": 1722 + }, + { + "left_line": 1697, + "right_line": 1723 + }, + { + "left_line": 1698, + "right_line": 1724 + }, + { + "left_line": 1699, + "right_line": 1725 + }, + { + "left_line": 1700, + "right_line": 1726 + }, + { + "left_line": 1701, + "right_line": 1727 + }, + { + "left_line": 1702, + "right_line": 1728 + }, + { + "left_line": 1703, + "right_line": 1729 + }, + { + "left_line": 1704, + "right_line": 1730 + }, + { + "left_line": 1705, + "right_line": 1731 + }, + { + "left_line": 1706, + "right_line": 1732 + }, + { + "left_line": 1707, + "right_line": 1733 + }, + { + "left_line": 1708, + "right_line": 1734 + }, + { + "left_line": 1709, + "right_line": 1735 + }, + { + "left_line": 1710, + "right_line": 1736 + }, + { + "left_line": 1711, + "right_line": 1737 + }, + { + "left_line": 1712, + "right_line": 1738 + }, + { + "left_line": 1713, + "right_line": 1739 + }, + { + "left_line": 1714, + "right_line": 1740 + }, + { + "left_line": 1715, + "right_line": 1741 + }, + { + "left_line": 1716, + "right_line": 1742 + }, + { + "left_line": 1717, + "right_line": 1743 + }, + { + "left_line": 1718, + "right_line": 1744 + }, + { + "left_line": 1719, + "right_line": 1745 + }, + { + "left_line": 1720, + "right_line": 1746 + }, + { + "left_line": 1721, + "right_line": 1747 + }, + { + "left_line": 1722, + "right_line": 1748 + }, + { + "left_line": 1723, + "right_line": 1749 + }, + { + "left_line": 1724, + "right_line": 1750 + }, + { + "left_line": 1725, + "right_line": 1751 + }, + { + "left_line": 1726, + "right_line": 1752 + }, + { + "left_line": 1727, + "right_line": 1753 + }, + { + "left_line": 1728, + "right_line": 1754 + }, + { + "left_line": 1729, + "right_line": 1755 + }, + { + "left_line": 1730, + "right_line": 1756 + }, + { + "left_line": 1731, + "right_line": 1757 + }, + { + "left_line": 1732, + "right_line": 1758 + }, + { + "left_line": 1733, + "right_line": 1759 + }, + { + "left_line": 1734, + "right_line": 1760 + }, + { + "left_line": 1735, + "right_line": 1761 + }, + { + "left_line": 1736, + "right_line": 1762 + }, + { + "left_line": 1737, + "right_line": 1763 + }, + { + "left_line": 1738, + "right_line": 1764 + }, + { + "left_line": 1739, + "right_line": 1765 + }, + { + "left_line": 1740, + "right_line": 1766 + }, + { + "left_line": 1741, + "right_line": 1767 + }, + { + "left_line": 1742, + "right_line": 1768 + }, + { + "left_line": 1743, + "right_line": 1769 + }, + { + "left_line": 1744, + "right_line": 1770 + }, + { + "left_line": 1745, + "right_line": 1771 + }, + { + "left_line": 1746, + "right_line": 1772 + }, + { + "left_line": 1747, + "right_line": 1773 + }, + { + "left_line": 1748, + "right_line": 1774 + }, + { + "left_line": 1749, + "right_line": 1775 + }, + { + "left_line": 1750, + "right_line": 1776 + }, + { + "left_line": 1751, + "right_line": 1777 + }, + { + "left_line": 1752, + "right_line": 1778 + }, + { + "left_line": 1753, + "right_line": 1779 + }, + { + "left_line": 1754, + "right_line": 1780 + }, + { + "left_line": 1755, + "right_line": 1781 + }, + { + "left_line": 1756, + "right_line": 1782 + }, + { + "left_line": 1757, + "right_line": 1783 + }, + { + "left_line": 1758, + "right_line": 1784 + }, + { + "left_line": 1759, + "right_line": 1785 + }, + { + "left_line": 1760, + "right_line": 1786 + }, + { + "left_line": 1761, + "right_line": 1787 + }, + { + "left_line": 1762, + "right_line": 1788 + }, + { + "left_line": 1763, + "right_line": 1789 + }, + { + "left_line": 1764, + "right_line": 1790 + }, + { + "left_line": 1765, + "right_line": 1791 + }, + { + "left_line": 1766, + "right_line": 1792 + }, + { + "left_line": 1767, + "right_line": 1793 + }, + { + "left_line": 1768, + "right_line": 1794 + }, + { + "left_line": 1769, + "right_line": 1795 + }, + { + "left_line": 1770, + "right_line": 1796 + }, + { + "left_line": 1771, + "right_line": 1797 + }, + { + "left_line": 1772, + "right_line": 1798 + }, + { + "left_line": 1773, + "right_line": 1799 + }, + { + "left_line": 1774, + "right_line": 1800 + }, + { + "left_line": 1775, + "right_line": 1801 + }, + { + "left_line": 1776, + "right_line": 1802 + }, + { + "left_line": 1777, + "right_line": 1803 + }, + { + "left_line": 1778, + "right_line": 1804 + }, + { + "left_line": 1779, + "right_line": 1805 + }, + { + "left_line": 1780, + "right_line": 1806 + }, + { + "left_line": 1781, + "right_line": 1807 + }, + { + "left_line": 1782, + "right_line": 1808 + }, + { + "left_line": 1783, + "right_line": 1809 + }, + { + "left_line": 1784, + "right_line": 1810 + }, + { + "left_line": 1785, + "right_line": 1811 + }, + { + "left_line": 1786, + "right_line": 1812 + }, + { + "left_line": 1787, + "right_line": 1813 + }, + { + "left_line": 1788, + "right_line": 1814 + }, + { + "left_line": 1789, + "right_line": 1815 + }, + { + "left_line": 1790, + "right_line": 1816 + }, + { + "left_line": 1791, + "right_line": 1817 + }, + { + "left_line": 1792, + "right_line": 1818 + }, + { + "left_line": 1793, + "right_line": 1819 + }, + { + "left_line": 1794, + "right_line": 1820 + }, + { + "left_line": 1795, + "right_line": 1821 + }, + { + "left_line": 1796, + "right_line": 1822 + }, + { + "left_line": 1797, + "right_line": 1823 + }, + { + "left_line": 1798, + "right_line": 1824 + }, + { + "left_line": 1799, + "right_line": 1825 + }, + { + "left_line": 1800, + "right_line": 1826 + }, + { + "left_line": 1801, + "right_line": 1827 + }, + { + "left_line": 1802, + "right_line": 1828 + }, + { + "left_line": 1803, + "right_line": 1829 + }, + { + "left_line": 1804, + "right_line": 1830 + }, + { + "left_line": 1805, + "right_line": 1831 + }, + { + "left_line": 1806, + "right_line": 1832 + }, + { + "left_line": 1807, + "right_line": 1833 + }, + { + "left_line": 1808, + "right_line": 1834 + }, + { + "left_line": 1809, + "right_line": 1835 + }, + { + "left_line": 1810, + "right_line": 1836 + }, + { + "left_line": 1811, + "right_line": 1837 + }, + { + "left_line": 1812, + "right_line": 1838 + }, + { + "left_line": 1813, + "right_line": 1839 + }, + { + "left_line": 1814, + "right_line": 1840 + }, + { + "left_line": 1815, + "right_line": 1841 + }, + { + "left_line": 1816, + "right_line": 1842 + }, + { + "left_line": 1817, + "right_line": 1843 + }, + { + "left_line": 1818, + "right_line": 1844 + }, + { + "left_line": 1819, + "right_line": 1845 + }, + { + "left_line": 1820, + "right_line": 1846 + }, + { + "left_line": 1821, + "right_line": 1847 + }, + { + "left_line": 1822, + "right_line": 1848 + }, + { + "left_line": 1823, + "right_line": 1849 + }, + { + "left_line": 1824, + "right_line": 1850 + }, + { + "left_line": 1825, + "right_line": 1851 + }, + { + "left_line": 1826, + "right_line": 1852 + }, + { + "left_line": 1827, + "right_line": 1853 + }, + { + "left_line": 1828, + "right_line": 1854 + }, + { + "left_line": 1829, + "right_line": 1855 + }, + { + "left_line": 1830, + "right_line": 1856 + }, + { + "left_line": 1831, + "right_line": 1857 + }, + { + "left_line": 1832, + "right_line": 1858 + }, + { + "left_line": 1833, + "right_line": 1859 + }, + { + "left_line": 1834, + "right_line": 1860 + }, + { + "left_line": 1835, + "right_line": 1861 + }, + { + "left_line": 1836, + "right_line": 1862 + }, + { + "left_line": 1837, + "right_line": 1863 + }, + { + "left_line": 1838, + "right_line": 1864 + }, + { + "left_line": 1839, + "right_line": 1865 + }, + { + "left_line": 1840, + "right_line": 1866 + }, + { + "left_line": 1841, + "right_line": 1867 + }, + { + "left_line": 1842, + "right_line": 1868 + }, + { + "left_line": 1843, + "right_line": 1869 + }, + { + "left_line": 1844, + "right_line": 1870 + }, + { + "left_line": 1845, + "right_line": 1871 + }, + { + "left_line": 1846, + "right_line": 1872 + }, + { + "left_line": 1847, + "right_line": 1873 + }, + { + "left_line": 1848, + "right_line": 1874 + }, + { + "left_line": 1849, + "right_line": 1875 + }, + { + "left_line": 1850, + "right_line": 1876 + }, + { + "left_line": 1851, + "right_line": 1877 + }, + { + "left_line": 1852, + "right_line": 1878 + }, + { + "left_line": 1853, + "right_line": 1879 + }, + { + "left_line": 1854, + "right_line": 1880 + }, + { + "left_line": 1855, + "right_line": 1881 + }, + { + "left_line": 1856, + "right_line": 1882 + }, + { + "left_line": 1857, + "right_line": 1883 + }, + { + "left_line": 1858, + "right_line": 1884 + }, + { + "left_line": 1859, + "right_line": 1885 + }, + { + "left_line": 1860, + "right_line": 1886 + }, + { + "left_line": 1861, + "right_line": 1887 + }, + { + "left_line": 1862, + "right_line": 1888 + }, + { + "left_line": 1863, + "right_line": 1889 + }, + { + "left_line": 1864, + "right_line": 1890 + }, + { + "left_line": 1865, + "right_line": 1891 + }, + { + "left_line": 1866, + "right_line": 1892 + }, + { + "left_line": 1867, + "right_line": 1893 + }, + { + "left_line": 1868, + "right_line": 1894 + }, + { + "left_line": 1869, + "right_line": 1895 + }, + { + "left_line": 1870, + "right_line": 1896 + }, + { + "left_line": 1871, + "right_line": 1897 + }, + { + "left_line": 1872, + "right_line": 1898 + }, + { + "left_line": 1873, + "right_line": 1899 + }, + { + "left_line": 1874, + "right_line": 1900 + }, + { + "left_line": 1875, + "right_line": 1901 + }, + { + "left_line": 1876, + "right_line": 1902 + }, + { + "left_line": 1877, + "right_line": 1903 + }, + { + "left_line": 1878, + "right_line": 1904 + }, + { + "left_line": 1879, + "right_line": 1905 + }, + { + "left_line": 1880, + "right_line": 1906 + }, + { + "left_line": 1881, + "right_line": 1907 + }, + { + "left_line": 1882, + "right_line": 1908 + }, + { + "left_line": 1883, + "right_line": 1909 + }, + { + "left_line": 1884, + "right_line": 1910 + }, + { + "left_line": 1885, + "right_line": 1911 + }, + { + "left_line": 1886, + "right_line": 1912 + }, + { + "left_line": 1887, + "right_line": 1913 + }, + { + "left_line": 1888, + "right_line": 1914 + }, + { + "left_line": 1889, + "right_line": 1915 + }, + { + "left_line": 1890, + "right_line": 1916 + }, + { + "left_line": 1891, + "right_line": 1917 + }, + { + "left_line": 1892, + "right_line": 1918 + }, + { + "left_line": 1893, + "right_line": 1919 + }, + { + "left_line": 1894, + "right_line": 1920 + }, + { + "left_line": 1895, + "right_line": 1921 + }, + { + "left_line": 1896, + "right_line": 1922 + }, + { + "left_line": 1897, + "right_line": 1923 + }, + { + "left_line": 1898, + "right_line": 1924 + }, + { + "left_line": 1899, + "right_line": 1925 + }, + { + "left_line": 1900, + "right_line": 1926 + }, + { + "left_line": 1901, + "right_line": 1927 + }, + { + "left_line": 1902, + "right_line": 1928 + }, + { + "left_line": 1903, + "right_line": 1929 + }, + { + "left_line": 1904, + "right_line": 1930 + }, + { + "left_line": 1905, + "right_line": 1931 + }, + { + "left_line": 1906, + "right_line": 1932 + }, + { + "left_line": 1907, + "right_line": 1933 + }, + { + "left_line": 1908, + "right_line": 1934 + }, + { + "left_line": 1909, + "right_line": 1935 + }, + { + "left_line": 1910, + "right_line": 1936 + }, + { + "left_line": 1911, + "right_line": 1937 + }, + { + "left_line": 1912, + "right_line": 1938 + }, + { + "left_line": 1913, + "right_line": 1939 + }, + { + "left_line": 1914, + "right_line": 1940 + }, + { + "left_line": 1915, + "right_line": 1941 + }, + { + "left_line": 1916, + "right_line": 1942 + }, + { + "left_line": 1917, + "right_line": 1943 + }, + { + "left_line": 1918, + "right_line": 1944 + }, + { + "left_line": 1919, + "right_line": 1945 + }, + { + "left_line": 1920, + "right_line": 1946 + }, + { + "left_line": 1921, + "right_line": 1947 + }, + { + "left_line": 1922, + "right_line": 1948 + }, + { + "left_line": 1923, + "right_line": 1949 + }, + { + "left_line": 1924, + "right_line": 1950 + }, + { + "left_line": 1925, + "right_line": 1951 + }, + { + "left_line": 1926, + "right_line": 1952 + }, + { + "left_line": 1927, + "right_line": 1953 + }, + { + "left_line": 1928, + "right_line": 1954 + }, + { + "left_line": 1929, + "right_line": 1955 + }, + { + "left_line": 1930, + "right_line": 1956 + }, + { + "left_line": 1931, + "right_line": 1957 + }, + { + "left_line": 1932, + "right_line": 1958 + }, + { + "left_line": 1933, + "right_line": 1959 + }, + { + "left_line": 1934, + "right_line": 1960 + }, + { + "left_line": 1935, + "right_line": 1961 + }, + { + "left_line": 1936, + "right_line": 1962 + }, + { + "left_line": 1937, + "right_line": 1963 + }, + { + "left_line": 1938, + "right_line": 1964 + }, + { + "left_line": 1939, + "right_line": 1965 + }, + { + "left_line": 1940, + "right_line": 1966 + }, + { + "left_line": 1941, + "right_line": 1967 + }, + { + "left_line": 1942, + "right_line": 1968 + }, + { + "left_line": 1943, + "right_line": 1969 + }, + { + "left_line": 1944, + "right_line": 1970 + }, + { + "left_line": 1945, + "right_line": 1971 + }, + { + "left_line": 1946, + "right_line": 1972 + }, + { + "left_line": 1947, + "right_line": 1973 + }, + { + "left_line": 1948, + "right_line": 1974 + }, + { + "left_line": 1949, + "right_line": 1975 + }, + { + "left_line": 1950, + "right_line": 1976 + }, + { + "left_line": 1951, + "right_line": 1977 + }, + { + "left_line": 1952, + "right_line": 1978 + }, + { + "left_line": 1953, + "right_line": 1979 + }, + { + "left_line": 1954, + "right_line": 1980 + }, + { + "left_line": 1955, + "right_line": 1981 + }, + { + "left_line": 1956, + "right_line": 1982 + }, + { + "left_line": 1957, + "right_line": 1983 + }, + { + "left_line": 1958, + "right_line": 1984 + }, + { + "left_line": 1959, + "right_line": 1985 + }, + { + "left_line": 1960, + "right_line": 1986 + }, + { + "left_line": 1961, + "right_line": 1987 + }, + { + "left_line": 1962, + "right_line": 1988 + }, + { + "left_line": 1963, + "right_line": 1989 + }, + { + "left_line": 1964, + "right_line": 1990 + }, + { + "left_line": 1965, + "right_line": 1991 + }, + { + "left_line": 1966, + "right_line": 1992 + }, + { + "left_line": 1967, + "right_line": 1993 + }, + { + "left_line": 1968, + "right_line": 1994 + }, + { + "left_line": 1969, + "right_line": 1995 + }, + { + "left_line": 1970, + "right_line": 1996 + }, + { + "left_line": 1971, + "right_line": 1997 + }, + { + "left_line": 1972, + "right_line": 1998 + }, + { + "left_line": 1973, + "right_line": 1999 + }, + { + "left_line": 1974, + "right_line": 2000 + }, + { + "left_line": 1975, + "right_line": 2001 + }, + { + "left_line": 1976, + "right_line": 2002 + }, + { + "left_line": 1977, + "right_line": 2003 + }, + { + "left_line": 1978, + "right_line": 2004 + }, + { + "left_line": 1979, + "right_line": 2005 + }, + { + "left_line": 1980, + "right_line": 2006 + }, + { + "left_line": 1981, + "right_line": 2007 + }, + { + "left_line": 1982, + "right_line": 2008 + }, + { + "left_line": 1983, + "right_line": 2009 + }, + { + "left_line": 1984, + "right_line": 2010 + }, + { + "left_line": 1985, + "right_line": 2011 + }, + { + "left_line": 1986, + "right_line": 2012 + }, + { + "left_line": 1987, + "right_line": 2013 + }, + { + "left_line": 1988, + "right_line": 2014 + }, + { + "left_line": 1989, + "right_line": 2015 + }, + { + "left_line": 1990, + "right_line": 2016 + }, + { + "left_line": 1991, + "right_line": 2017 + }, + { + "left_line": 1992, + "right_line": 2018 + }, + { + "left_line": 1993, + "right_line": 2019 + }, + { + "left_line": 1994, + "right_line": 2020 + }, + { + "left_line": 1995, + "right_line": 2021 + }, + { + "left_line": 1996, + "right_line": 2022 + }, + { + "left_line": 1997, + "right_line": 2023 + }, + { + "left_line": 1998, + "right_line": 2024 + }, + { + "left_line": 1999, + "right_line": 2025 + }, + { + "left_line": 2000, + "right_line": 2026 + }, + { + "left_line": 2001, + "right_line": 2027 + }, + { + "left_line": 2002, + "right_line": 2028 + }, + { + "left_line": 2003, + "right_line": 2029 + }, + { + "left_line": 2004, + "right_line": 2030 + }, + { + "left_line": 2005, + "right_line": 2031 + }, + { + "left_line": 2006, + "right_line": 2032 + }, + { + "left_line": 2007, + "right_line": 2033 + }, + { + "left_line": 2008, + "right_line": 2034 + }, + { + "left_line": 2009, + "right_line": 2035 + }, + { + "left_line": 2010, + "right_line": 2036 + }, + { + "left_line": 2011, + "right_line": 2037 + }, + { + "left_line": 2012, + "right_line": 2038 + }, + { + "left_line": 2013, + "right_line": 2039 + }, + { + "left_line": 2014, + "right_line": 2040 + }, + { + "left_line": 2015, + "right_line": 2041 + }, + { + "left_line": 2016, + "right_line": 2042 + }, + { + "left_line": 2017, + "right_line": 2043 + }, + { + "left_line": 2018, + "right_line": 2044 + }, + { + "left_line": 2019, + "right_line": 2045 + }, + { + "left_line": 2020, + "right_line": 2046 + }, + { + "left_line": 2021, + "right_line": 2047 + }, + { + "left_line": 2022, + "right_line": 2048 + }, + { + "left_line": 2023, + "right_line": 2049 + }, + { + "left_line": 2024, + "right_line": 2050 + }, + { + "left_line": 2025, + "right_line": 2051 + }, + { + "left_line": 2026, + "right_line": 2052 + }, + { + "left_line": 2027, + "right_line": 2053 + }, + { + "left_line": 2028, + "right_line": 2054 + }, + { + "left_line": 2029, + "right_line": 2055 + }, + { + "left_line": 2030, + "right_line": 2056 + }, + { + "left_line": 2031, + "right_line": 2057 + }, + { + "left_line": 2032, + "right_line": 2058 + }, + { + "left_line": 2033, + "right_line": 2059 + }, + { + "left_line": 2034, + "right_line": 2060 + }, + { + "left_line": 2035, + "right_line": 2061 + }, + { + "left_line": 2036, + "right_line": 2062 + }, + { + "left_line": 2037, + "right_line": 2063 + }, + { + "left_line": 2038, + "right_line": 2064 + }, + { + "left_line": 2039, + "right_line": 2065 + }, + { + "left_line": 2040, + "right_line": 2066 + }, + { + "left_line": 2041, + "right_line": 2067 + }, + { + "left_line": 2042, + "right_line": 2068 + }, + { + "left_line": 2043, + "right_line": 2069 + }, + { + "left_line": 2044, + "right_line": 2070 + }, + { + "left_line": 2045, + "right_line": 2071 + }, + { + "left_line": 2046, + "right_line": 2072 + }, + { + "left_line": 2047, + "right_line": 2073 + }, + { + "left_line": 2048, + "right_line": 2074 + }, + { + "left_line": 2049, + "right_line": 2075 + }, + { + "left_line": 2050, + "right_line": 2076 + }, + { + "left_line": 2051, + "right_line": 2077 + }, + { + "left_line": 2052, + "right_line": 2078 + }, + { + "left_line": 2053, + "right_line": 2079 + }, + { + "left_line": 2054, + "right_line": 2080 + }, + { + "left_line": 2055, + "right_line": 2081 + }, + { + "left_line": 2056, + "right_line": 2082 + }, + { + "left_line": 2057, + "right_line": 2083 + }, + { + "left_line": 2058, + "right_line": 2084 + }, + { + "left_line": 2059, + "right_line": 2085 + }, + { + "left_line": 2060, + "right_line": 2086 + }, + { + "left_line": 2061, + "right_line": 2087 + }, + { + "left_line": 2062, + "right_line": 2088 + }, + { + "left_line": 2063, + "right_line": 2089 + }, + { + "left_line": 2064, + "right_line": 2090 + }, + { + "left_line": 2065, + "right_line": 2091 + }, + { + "left_line": 2066, + "right_line": 2092 + }, + { + "left_line": 2067, + "right_line": 2093 + }, + { + "left_line": 2068, + "right_line": 2094 + }, + { + "left_line": 2069, + "right_line": 2095 + }, + { + "left_line": 2070, + "right_line": 2096 + }, + { + "left_line": 2071, + "right_line": 2097 + }, + { + "left_line": 2072, + "right_line": 2098 + }, + { + "left_line": 2073, + "right_line": 2099 + }, + { + "left_line": 2074, + "right_line": 2100 + }, + { + "left_line": 2075, + "right_line": 2101 + }, + { + "left_line": 2076, + "right_line": 2102 + }, + { + "left_line": 2077, + "right_line": 2103 + }, + { + "left_line": 2078, + "right_line": 2104 + }, + { + "left_line": 2079, + "right_line": 2105 + }, + { + "left_line": 2080, + "right_line": 2106 + }, + { + "left_line": 2081, + "right_line": 2107 + }, + { + "left_line": 2082, + "right_line": 2108 + }, + { + "left_line": 2083, + "right_line": 2109 + }, + { + "left_line": 2084, + "right_line": 2110 + }, + { + "left_line": 2085, + "right_line": 2111 + }, + { + "left_line": 2086, + "right_line": 2112 + }, + { + "left_line": 2087, + "right_line": 2113 + }, + { + "left_line": 2088, + "right_line": 2114 + }, + { + "left_line": 2089, + "right_line": 2115 + }, + { + "left_line": 2090, + "right_line": 2116 + }, + { + "left_line": 2091, + "right_line": 2117 + }, + { + "left_line": 2092, + "right_line": 2118 + }, + { + "left_line": 2093, + "right_line": 2119 + }, + { + "left_line": 2094, + "right_line": 2120 + }, + { + "left_line": 2095, + "right_line": 2121 + }, + { + "left_line": 2096, + "right_line": 2122 + }, + { + "left_line": 2097, + "right_line": 2123 + }, + { + "left_line": 2098, + "right_line": 2124 + }, + { + "left_line": 2099, + "right_line": 2125 + }, + { + "left_line": 2100, + "right_line": 2126 + }, + { + "left_line": 2101, + "right_line": 2127 + }, + { + "left_line": 2102, + "right_line": 2128 + }, + { + "left_line": 2103, + "right_line": 2129 + }, + { + "left_line": 2104, + "right_line": 2130 + }, + { + "left_line": 2105, + "right_line": 2131 + }, + { + "left_line": 2106, + "right_line": 2132 + }, + { + "left_line": 2107, + "right_line": 2133 + }, + { + "left_line": 2108, + "right_line": 2134 + }, + { + "left_line": 2109, + "right_line": 2135 + }, + { + "left_line": 2110, + "right_line": 2136 + }, + { + "left_line": 2111, + "right_line": 2137 + }, + { + "left_line": 2112, + "right_line": 2138 + }, + { + "left_line": 2113, + "right_line": 2139 + }, + { + "left_line": 2114, + "right_line": 2140 + }, + { + "left_line": 2115, + "right_line": 2141 + }, + { + "left_line": 2116, + "right_line": 2142 + }, + { + "left_line": 2117, + "right_line": 2143 + }, + { + "left_line": 2118, + "right_line": 2144 + }, + { + "left_line": 2119, + "right_line": 2145 + }, + { + "left_line": 2120, + "right_line": 2146 + }, + { + "left_line": 2121, + "right_line": 2147 + }, + { + "left_line": 2122, + "right_line": 2148 + }, + { + "left_line": 2123, + "right_line": 2149 + }, + { + "left_line": 2124, + "right_line": 2150 + }, + { + "left_line": 2125, + "right_line": 2151 + }, + { + "left_line": 2126, + "right_line": 2152 + }, + { + "left_line": 2127, + "right_line": 2153 + }, + { + "left_line": -1, + "right_line": 2154 + }, + { + "left_line": -1, + "right_line": 2155 + }, + { + "left_line": -1, + "right_line": 2156 + }, + { + "left_line": -1, + "right_line": 2157 + }, + { + "left_line": -1, + "right_line": 2158 + }, + { + "left_line": -1, + "right_line": 2159 + }, + { + "left_line": -1, + "right_line": 2160 + }, + { + "left_line": -1, + "right_line": 2161 + }, + { + "left_line": -1, + "right_line": 2162 + }, + { + "left_line": -1, + "right_line": 2163 + }, + { + "left_line": -1, + "right_line": 2164 + }, + { + "left_line": -1, + "right_line": 2165 + }, + { + "left_line": -1, + "right_line": 2166 + }, + { + "left_line": -1, + "right_line": 2167 + }, + { + "left_line": -1, + "right_line": 2168 + }, + { + "left_line": -1, + "right_line": 2169 + }, + { + "left_line": -1, + "right_line": 2170 + }, + { + "left_line": -1, + "right_line": 2171 + }, + { + "left_line": -1, + "right_line": 2172 + }, + { + "left_line": -1, + "right_line": 2173 + }, + { + "left_line": -1, + "right_line": 2174 + }, + { + "left_line": -1, + "right_line": 2175 + }, + { + "left_line": -1, + "right_line": 2176 + }, + { + "left_line": -1, + "right_line": 2177 + }, + { + "left_line": -1, + "right_line": 2178 + }, + { + "left_line": -1, + "right_line": 2179 + }, + { + "left_line": -1, + "right_line": 2180 + }, + { + "left_line": -1, + "right_line": 2181 + }, + { + "left_line": -1, + "right_line": 2182 + }, + { + "left_line": -1, + "right_line": 2183 + }, + { + "left_line": -1, + "right_line": 2184 + }, + { + "left_line": -1, + "right_line": 2185 + }, + { + "left_line": -1, + "right_line": 2186 + }, + { + "left_line": -1, + "right_line": 2187 + }, + { + "left_line": -1, + "right_line": 2188 + }, + { + "left_line": -1, + "right_line": 2189 + }, + { + "left_line": -1, + "right_line": 2190 + }, + { + "left_line": -1, + "right_line": 2191 + }, + { + "left_line": -1, + "right_line": 2192 + }, + { + "left_line": -1, + "right_line": 2193 + }, + { + "left_line": -1, + "right_line": 2194 + }, + { + "left_line": -1, + "right_line": 2195 + }, + { + "left_line": -1, + "right_line": 2196 + }, + { + "left_line": -1, + "right_line": 2197 + }, + { + "left_line": -1, + "right_line": 2198 + }, + { + "left_line": -1, + "right_line": 2199 + }, + { + "left_line": 2128, + "right_line": 2200 + }, + { + "left_line": 2129, + "right_line": 2201 + }, + { + "left_line": 2130, + "right_line": 2202 + }, + { + "left_line": 2131, + "right_line": 2203 + }, + { + "left_line": 2132, + "right_line": 2204 + }, + { + "left_line": 2133, + "right_line": 2205 + }, + { + "left_line": 2134, + "right_line": 2206 + }, + { + "left_line": 2135, + "right_line": 2207 + }, + { + "left_line": 2136, + "right_line": 2208 + }, + { + "left_line": 2137, + "right_line": 2209 + }, + { + "left_line": 2138, + "right_line": 2210 + }, + { + "left_line": 2139, + "right_line": 2211 + }, + { + "left_line": 2140, + "right_line": 2212 + }, + { + "left_line": 2141, + "right_line": 2213 + }, + { + "left_line": 2142, + "right_line": 2214 + }, + { + "left_line": 2143, + "right_line": 2215 + }, + { + "left_line": 2144, + "right_line": 2216 + }, + { + "left_line": 2145, + "right_line": 2217 + }, + { + "left_line": 2146, + "right_line": 2218 + }, + { + "left_line": 2147, + "right_line": 2219 + }, + { + "left_line": 2148, + "right_line": 2220 + }, + { + "left_line": 2149, + "right_line": 2221 + }, + { + "left_line": 2150, + "right_line": 2222 + }, + { + "left_line": 2151, + "right_line": 2223 + }, + { + "left_line": 2152, + "right_line": 2224 + }, + { + "left_line": 2153, + "right_line": 2225 + }, + { + "left_line": 2154, + "right_line": 2226 + }, + { + "left_line": 2155, + "right_line": 2227 + }, + { + "left_line": 2156, + "right_line": 2228 + }, + { + "left_line": 2157, + "right_line": 2229 + }, + { + "left_line": 2158, + "right_line": 2230 + }, + { + "left_line": 2159, + "right_line": 2231 + }, + { + "left_line": 2160, + "right_line": 2232 + }, + { + "left_line": 2161, + "right_line": 2233 + }, + { + "left_line": 2162, + "right_line": 2234 + }, + { + "left_line": 2163, + "right_line": 2235 + }, + { + "left_line": 2164, + "right_line": 2236 + }, + { + "left_line": 2165, + "right_line": 2237 + }, + { + "left_line": 2166, + "right_line": 2238 + }, + { + "left_line": 2167, + "right_line": 2239 + }, + { + "left_line": 2168, + "right_line": 2240 + }, + { + "left_line": 2169, + "right_line": 2241 + }, + { + "left_line": 2170, + "right_line": 2242 + }, + { + "left_line": 2171, + "right_line": 2243 + }, + { + "left_line": 2172, + "right_line": 2244 + }, + { + "left_line": 2173, + "right_line": 2245 + }, + { + "left_line": 2174, + "right_line": 2246 + }, + { + "left_line": 2175, + "right_line": 2247 + }, + { + "left_line": 2176, + "right_line": 2248 + }, + { + "left_line": 2177, + "right_line": 2249 + }, + { + "left_line": 2178, + "right_line": 2250 + }, + { + "left_line": 2179, + "right_line": 2251 + }, + { + "left_line": 2180, + "right_line": 2252 + }, + { + "left_line": 2181, + "right_line": 2253 + }, + { + "left_line": 2182, + "right_line": 2254 + }, + { + "left_line": 2183, + "right_line": 2255 + }, + { + "left_line": 2184, + "right_line": 2256 + }, + { + "left_line": 2185, + "right_line": 2257 + }, + { + "left_line": 2186, + "right_line": 2258 + }, + { + "left_line": 2187, + "right_line": 2259 + }, + { + "left_line": 2188, + "right_line": 2260 + }, + { + "left_line": 2189, + "right_line": 2261 + }, + { + "left_line": 2190, + "right_line": 2262 + }, + { + "left_line": 2191, + "right_line": 2263 + }, + { + "left_line": 2192, + "right_line": 2264 + }, + { + "left_line": 2193, + "right_line": 2265 + }, + { + "left_line": 2194, + "right_line": 2266 + }, + { + "left_line": 2195, + "right_line": 2267 + }, + { + "left_line": 2196, + "right_line": 2268 + }, + { + "left_line": 2197, + "right_line": 2269 + }, + { + "left_line": 2198, + "right_line": 2270 + }, + { + "left_line": 2199, + "right_line": 2271 + }, + { + "left_line": 2200, + "right_line": 2272 + }, + { + "left_line": 2201, + "right_line": 2273 + }, + { + "left_line": 2202, + "right_line": 2274 + }, + { + "left_line": 2203, + "right_line": 2275 + }, + { + "left_line": 2204, + "right_line": 2276 + }, + { + "left_line": 2205, + "right_line": 2277 + }, + { + "left_line": 2206, + "right_line": 2278 + }, + { + "left_line": 2207, + "right_line": 2279 + }, + { + "left_line": 2208, + "right_line": 2280 + }, + { + "left_line": 2209, + "right_line": 2281 + }, + { + "left_line": 2210, + "right_line": 2282 + }, + { + "left_line": 2211, + "right_line": 2283 + }, + { + "left_line": 2212, + "right_line": 2284 + }, + { + "left_line": 2213, + "right_line": 2285 + }, + { + "left_line": 2214, + "right_line": 2286 + }, + { + "left_line": 2215, + "right_line": 2287 + }, + { + "left_line": 2216, + "right_line": 2288 + }, + { + "left_line": 2217, + "right_line": 2289 + }, + { + "left_line": 2218, + "right_line": 2290 + }, + { + "left_line": 2219, + "right_line": 2291 + }, + { + "left_line": 2220, + "right_line": 2292 + }, + { + "left_line": 2221, + "right_line": 2293 + }, + { + "left_line": 2222, + "right_line": 2294 + }, + { + "left_line": 2223, + "right_line": 2295 + }, + { + "left_line": 2224, + "right_line": 2296 + }, + { + "left_line": 2225, + "right_line": 2297 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_issue_forms_elements/metadata.json b/tests/testdata/json_schemastore_issue_forms_elements/metadata.json new file mode 100644 index 0000000..0c2d3f1 --- /dev/null +++ b/tests/testdata/json_schemastore_issue_forms_elements/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "64cc4a9ee27111df7a6a68eb64451690234a12ba", + "description": "Add issue forms elements schema", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_issue_forms_elements/new.json b/tests/testdata/json_schemastore_issue_forms_elements/new.json new file mode 100644 index 0000000..08374ac --- /dev/null +++ b/tests/testdata/json_schemastore_issue_forms_elements/new.json @@ -0,0 +1,2297 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/github-issue-forms.json", + "$comment": "https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms", + "additionalProperties": false, + "definitions": { + "type": { + "description": "A form item type\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys", + "type": "string", + "enum": [ + "checkboxes", + "dropdown", + "input", + "markdown", + "textarea", + "upload" + ] + }, + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "examples": ["SampleId"] + }, + "validations": { + "title": "validation options", + "type": "object", + "properties": { + "required": { + "description": "Specify whether require a form item", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "upload_validations": { + "title": "upload validations", + "description": "Upload validations\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#validations-for-upload", + "type": "object", + "properties": { + "required": { + "description": "Specify whether require a form item", + "type": "boolean", + "default": false + }, + "accept": { + "title": "accept", + "description": "A comma-separated list of file extensions that are accepted. If omitted, all supported file types are accepted.", + "type": "string", + "examples": [".png,.jpg,.gif,.log,.txt,.zip"] + } + }, + "additionalProperties": false + }, + "assignee": { + "type": "string", + "maxLength": 39, + "pattern": "^[a-zA-Z0-9](-?[a-zA-Z0-9])*$", + "examples": ["SampleAssignee"] + }, + "label": { + "type": "string", + "minLength": 1, + "examples": ["Sample label"] + }, + "description": { + "type": "string", + "default": "", + "examples": ["Sample description"] + }, + "placeholder": { + "type": "string", + "default": "", + "examples": ["Sample placeholder"] + }, + "value": { + "type": "string", + "minLength": 1, + "examples": ["Sample value"] + }, + "form_item": { + "title": "form item", + "description": "A form item\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#about-githubs-form-schema", + "type": "object", + "required": ["type"], + "properties": { + "type": { + "$ref": "#/definitions/type" + } + }, + "allOf": [ + { + "if": { + "properties": { + "type": { + "const": "markdown" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "markdown", + "description": "Markdown\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#markdown", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "attributes": { + "title": "markdown attributes", + "description": "Markdown attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes", + "type": "object", + "required": ["value"], + "properties": { + "value": { + "description": "A markdown code\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes", + "type": "string", + "minLength": 1, + "examples": ["Sample code"] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "textarea" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "textarea", + "description": "Textarea\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#textarea", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "A textarea id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "textarea attributes", + "description": "Textarea attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1", + "type": "object", + "required": ["label"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short textarea description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long textarea description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "placeholder": { + "$ref": "#/definitions/placeholder", + "description": "A textarea placeholder\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "value": { + "$ref": "#/definitions/value", + "description": "A textarea value\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "render": { + "description": "A textarea syntax highlighting mode\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1", + "type": "string", + "enum": [ + "1C Enterprise", + "1c enterprise", + "2-Dimensional Array", + "2-dimensional array", + "4D", + "4d", + "ABAP", + "ABAP CDS", + "ABNF", + "AFDKO", + "AGS Script", + "AIDL", + "AL", + "AMPL", + "ANTLR", + "API Blueprint", + "APL", + "ASL", + "ASN.1", + "ASP.NET", + "ATS", + "ActionScript", + "Ada", + "Adblock Filter List", + "Adobe Font Metrics", + "Agda", + "Alloy", + "Alpine Abuild", + "Altium Designer", + "AngelScript", + "Ant Build System", + "Antlers", + "ApacheConf", + "Apex", + "Apollo Guidance Computer", + "AppleScript", + "Arc", + "AsciiDoc", + "AspectJ", + "Assembly", + "Astro", + "Asymptote", + "Augeas", + "AutoHotkey", + "AutoIt", + "AutoIt3", + "AutoItScript", + "Avro IDL", + "Awk", + "BASIC", + "Ballerina", + "Batchfile", + "Beef", + "Befunge", + "Berry", + "BibTeX", + "Bicep", + "Bikeshed", + "Bison", + "BitBake", + "Blade", + "BlitzBasic", + "BlitzMax", + "Bluespec", + "Bluespec BH", + "Boo", + "Boogie", + "Brainfuck", + "BrighterScript", + "Brightscript", + "Browserslist", + "C", + "C#", + "C++", + "C-ObjDump", + "C2hs Haskell", + "CAP CDS", + "CIL", + "CLIPS", + "CMake", + "COBOL", + "CODEOWNERS", + "COLLADA", + "CSON", + "CSS", + "CSV", + "CUE", + "CWeb", + "Cabal", + "Cabal Config", + "Cadence", + "Cairo", + "CameLIGO", + "Cap'n Proto", + "Carto", + "CartoCSS", + "Ceylon", + "Chapel", + "Charity", + "Checksums", + "ChucK", + "Circom", + "Cirru", + "Clarion", + "Clarity", + "Classic ASP", + "Clean", + "Click", + "Clojure", + "Closure Templates", + "Cloud Firestore Security Rules", + "CoNLL", + "CoNLL-U", + "CoNLL-X", + "CodeQL", + "CoffeeScript", + "ColdFusion", + "ColdFusion CFC", + "Common Lisp", + "Common Workflow Language", + "Component Pascal", + "Containerfile", + "Cool", + "Coq", + "Cpp-ObjDump", + "Creole", + "Crystal", + "Csound", + "Csound Document", + "Csound Score", + "Cuda", + "Cue Sheet", + "Curry", + "Cycript", + "Cypher", + "Cython", + "D", + "D-ObjDump", + "D2", + "DIGITAL Command Language", + "DM", + "DNS Zone", + "DTrace", + "Dafny", + "Darcs Patch", + "Dart", + "DataWeave", + "Debian Package Control File", + "DenizenScript", + "Dhall", + "Diff", + "DirectX 3D File", + "Dlang", + "Dockerfile", + "Dogescript", + "Dotenv", + "Dylan", + "E", + "E-mail", + "EBNF", + "ECL", + "ECLiPSe", + "EJS", + "EQ", + "Eagle", + "Earthfile", + "Earthly", + "Easybuild", + "Ecere Projects", + "Ecmarkup", + "EdgeQL", + "EditorConfig", + "Edje Data Collection", + "Eiffel", + "Elixir", + "Elm", + "Elvish", + "Elvish Transcript", + "Emacs Lisp", + "EmberScript", + "Erlang", + "Euphoria", + "F#", + "F*", + "FIGfont", + "FIGlet Font", + "FLUX", + "Factor", + "Fancy", + "Fantom", + "Faust", + "Fennel", + "Filebench WML", + "Filterscript", + "Fluent", + "Formatted", + "Forth", + "Fortran", + "Fortran Free Form", + "FreeBasic", + "FreeMarker", + "Frege", + "Futhark", + "G-code", + "GAML", + "GAMS", + "GAP", + "GCC Machine Description", + "GDB", + "GDScript", + "GEDCOM", + "GLSL", + "GN", + "GSC", + "Game Maker Language", + "Gemfile.lock", + "Gemini", + "Genero 4gl", + "Genero per", + "Genie", + "Genshi", + "Gentoo Ebuild", + "Gentoo Eclass", + "Gerber Image", + "Gettext Catalog", + "Gherkin", + "Git Attributes", + "Git Blame Ignore Revs", + "Git Config", + "Git Revision List", + "Gleam", + "Glimmer JS", + "Glyph", + "Glyph Bitmap Distribution Format", + "Gnuplot", + "Go", + "Go Checksums", + "Go Module", + "Go Workspace", + "Godot Resource", + "Golo", + "Gosu", + "Grace", + "Gradle", + "Gradle Kotlin DSL", + "Grammatical Framework", + "Graph Modeling Language", + "GraphQL", + "Graphviz (DOT)", + "Groovy", + "Groovy Server Pages", + "HAProxy", + "HCL", + "HLSL", + "HOCON", + "HTML", + "HTML+ECR", + "HTML+EEX", + "HTML+ERB", + "HTML+PHP", + "HTML+Razor", + "HTTP", + "HXML", + "Hack", + "Haml", + "Handlebars", + "Harbour", + "HashiCorp Configuration Language", + "Haskell", + "Haxe", + "HiveQL", + "HolyC", + "Hosts File", + "Hy", + "HyPhy", + "IDL", + "IGOR Pro", + "INI", + "IPython Notebook", + "IRC log", + "Idris", + "Ignore List", + "ImageJ Macro", + "Imba", + "Inform 7", + "Ink", + "Inno Setup", + "Io", + "Ioke", + "Isabelle", + "Isabelle ROOT", + "J", + "JAR Manifest", + "JCL", + "JFlex", + "JSON", + "JSON with Comments", + "JSON5", + "JSONLD", + "JSONiq", + "Janet", + "Jasmin", + "Java", + "Java Properties", + "Java Server Pages", + "JavaScript", + "JavaScript+ERB", + "Jest Snapshot", + "JetBrains MPS", + "Jinja", + "Jison", + "Jison Lex", + "Jolie", + "Jsonnet", + "Julia", + "Jupyter Notebook", + "Just", + "Justfile", + "KRL", + "Kaitai Struct", + "KakouneScript", + "KerboScript", + "KiCad Layout", + "KiCad Legacy Layout", + "KiCad Schematic", + "Kickstart", + "Kit", + "Kotlin", + "Kusto", + "LFE", + "LLVM", + "LOLCODE", + "LSL", + "LTspice Symbol", + "LabVIEW", + "Lark", + "Lasso", + "Latte", + "Lean", + "Lean 4", + "Less", + "Lex", + "LigoLANG", + "LilyPond", + "Limbo", + "Linker Script", + "Linux Kernel Module", + "Liquid", + "Literate Agda", + "Literate CoffeeScript", + "Literate Haskell", + "LiveScript", + "Logos", + "Logtalk", + "LookML", + "LoomScript", + "Lua", + "M", + "M4", + "M4Sugar", + "MATLAB", + "MAXScript", + "MDX", + "MLIR", + "MQL4", + "MQL5", + "MTML", + "MUF", + "Macaulay2", + "Makefile", + "Mako", + "Markdown", + "Marko", + "Mask", + "Mathematica", + "Maven POM", + "Max", + "Mercury", + "Mermaid", + "Meson", + "Metal", + "Microsoft Developer Studio Project", + "Microsoft Visual Studio Solution", + "MiniD", + "MiniYAML", + "Mint", + "Mirah", + "Modelica", + "Modula-2", + "Modula-3", + "Module Management System", + "Monkey", + "Monkey C", + "Moocode", + "MoonScript", + "Motoko", + "Motorola 68K Assembly", + "Move", + "Muse", + "Mustache", + "Myghty", + "NASL", + "NCL", + "NEON", + "NL", + "NPM Config", + "NSIS", + "NWScript", + "Nasal", + "Nearley", + "Nemerle", + "NeoSnippet", + "NetLinx", + "NetLinx+ERB", + "NetLogo", + "NewLisp", + "Nextflow", + "Nginx", + "Nim", + "Ninja", + "Nit", + "Nix", + "Nu", + "NumPy", + "Nunjucks", + "Nushell", + "OASv2-json", + "OASv2-yaml", + "OASv3-json", + "OASv3-yaml", + "OCaml", + "ObjDump", + "Object Data Instance Notation", + "ObjectScript", + "Objective-C", + "Objective-C++", + "Objective-J", + "Odin", + "Omgrofl", + "Opa", + "Opal", + "Open Policy Agent", + "OpenAPI Specification v2", + "OpenAPI Specification v3", + "OpenCL", + "OpenEdge ABL", + "OpenQASM", + "OpenRC runscript", + "OpenSCAD", + "OpenStep Property List", + "OpenType Feature File", + "Option List", + "Org", + "Ox", + "Oxygene", + "Oz", + "P4", + "PDDL", + "PEG.js", + "PHP", + "PLSQL", + "PLpgSQL", + "POV-Ray SDL", + "Pact", + "Pan", + "Papyrus", + "Parrot", + "Parrot Assembly", + "Parrot Internal Representation", + "Pascal", + "Pawn", + "Pep8", + "Perl", + "Pic", + "Pickle", + "PicoLisp", + "PigLatin", + "Pike", + "PlantUML", + "Pod", + "Pod 6", + "PogoScript", + "Polar", + "Pony", + "Portugol", + "PostCSS", + "PostScript", + "PowerBuilder", + "PowerShell", + "Praat", + "Prisma", + "Processing", + "Procfile", + "Proguard", + "Prolog", + "Promela", + "Propeller Spin", + "Protocol Buffer", + "Protocol Buffer Text Format", + "Protocol Buffers", + "Public Key", + "Pug", + "Puppet", + "Pure Data", + "PureBasic", + "PureScript", + "Pyret", + "Python", + "Python console", + "Python traceback", + "Q#", + "QML", + "QMake", + "Qt Script", + "Quake", + "R", + "RAML", + "RBS", + "RDoc", + "REALbasic", + "REXX", + "RMarkdown", + "RPC", + "RPGLE", + "RPM Spec", + "RUNOFF", + "Racket", + "Ragel", + "Raku", + "Rascal", + "Raw token data", + "ReScript", + "Readline Config", + "Reason", + "ReasonLIGO", + "Rebol", + "Record Jar", + "Red", + "Redcode", + "Redirect Rules", + "Regular Expression", + "Ren'Py", + "RenderScript", + "Rez", + "Rich Text Format", + "Ring", + "Riot", + "RobotFramework", + "Roff", + "Roff Manpage", + "Rouge", + "RouterOS Script", + "Rscript", + "Ruby", + "Rust", + "SAS", + "SCSS", + "SELinux Kernel Policy Language", + "SELinux Policy", + "SMT", + "SPARQL", + "SQF", + "SQL", + "SQLPL", + "SRecode Template", + "SSH Config", + "STAR", + "STL", + "STON", + "SVG", + "SWIG", + "Sage", + "SaltStack", + "Sass", + "Scala", + "Scaml", + "Scenic", + "Scheme", + "Scilab", + "Self", + "ShaderLab", + "Shell", + "ShellCheck Config", + "ShellSession", + "Shen", + "Sieve", + "Simple File Verification", + "Singularity", + "Slash", + "Slice", + "Slim", + "SmPL", + "Smali", + "Smalltalk", + "Smarty", + "Smithy", + "Snakemake", + "SnipMate", + "Solidity", + "Soong", + "SourcePawn", + "Spline Font Database", + "Squirrel", + "Stan", + "Standard ML", + "Starlark", + "Stata", + "StringTemplate", + "Stylus", + "SubRip Text", + "SugarSS", + "SuperCollider", + "Svelte", + "Sway", + "Sweave", + "Swift", + "SystemVerilog", + "TI Program", + "TL-Verilog", + "TLA", + "TOML", + "TSQL", + "TSV", + "TSX", + "TXL", + "Talon", + "Tcl", + "Tcsh", + "TeX", + "Tea", + "Terra", + "Terraform Template", + "Texinfo", + "Text", + "TextMate Properties", + "Textile", + "Thrift", + "Toit", + "Turing", + "Turtle", + "Twig", + "Type Language", + "TypeScript", + "UltiSnip", + "UltiSnips", + "Unified Parallel C", + "Unity3D Asset", + "Unix Assembly", + "Uno", + "UnrealScript", + "Ur", + "Ur/Web", + "UrWeb", + "V", + "VBA", + "VBScript", + "VCL", + "VHDL", + "Vala", + "Valve Data Format", + "Velocity Template Language", + "Verilog", + "Vim Help File", + "Vim Script", + "Vim Snippet", + "Visual Basic .NET", + "Visual Basic 6.0", + "Volt", + "Vue", + "Vyper", + "WDL", + "WGSL", + "Wavefront Material", + "Wavefront Object", + "Web Ontology Language", + "WebAssembly", + "WebAssembly Interface Type", + "WebIDL", + "WebVTT", + "Wget Config", + "Whiley", + "Wikitext", + "Win32 Message File", + "Windows Registry Entries", + "Witcher Script", + "Wollok", + "Workflow Description Language", + "World of Warcraft Addon Data", + "Wren", + "X BitMap", + "X Font Directory Index", + "X PixMap", + "X10", + "XC", + "XCompose", + "XML", + "XML Property List", + "XPages", + "XProc", + "XQuery", + "XS", + "XSLT", + "Xojo", + "Xonsh", + "Xtend", + "YAML", + "YANG", + "YARA", + "YASnippet", + "Yacc", + "Yul", + "ZAP", + "ZIL", + "Zeek", + "ZenScript", + "Zephir", + "Zig", + "Zimpl", + "abap", + "abap cds", + "abl", + "abnf", + "abuild", + "acfm", + "ackrc", + "aconf", + "actionscript", + "actionscript 3", + "actionscript3", + "ad block", + "ad block filters", + "ada", + "ada2005", + "ada95", + "adb", + "adblock", + "adblock filter list", + "adobe composite font metrics", + "adobe font metrics", + "adobe multiple font metrics", + "advpl", + "agda", + "ags", + "ags script", + "ahk", + "aidl", + "al", + "alloy", + "alpine abuild", + "altium", + "altium designer", + "amfm", + "ampl", + "amusewiki", + "angelscript", + "ant build system", + "antlers", + "antlr", + "apache", + "apacheconf", + "apex", + "api blueprint", + "apkbuild", + "apl", + "apollo guidance computer", + "applescript", + "arc", + "arexx", + "as3", + "ascii stl", + "asciidoc", + "asl", + "asm", + "asn.1", + "asp", + "asp.net", + "aspectj", + "aspx", + "aspx-vb", + "assembly", + "astro", + "asymptote", + "ats", + "ats2", + "au3", + "augeas", + "autoconf", + "autohotkey", + "autoit", + "avro idl", + "awk", + "b3d", + "ballerina", + "bash", + "bash session", + "basic", + "bat", + "batch", + "batchfile", + "bazel", + "be", + "beef", + "befunge", + "berry", + "bh", + "bibtex", + "bicep", + "bikeshed", + "bison", + "bitbake", + "blade", + "blitz3d", + "blitzbasic", + "blitzmax", + "blitzplus", + "bluespec", + "bluespec bh", + "bluespec bsv", + "bluespec classic", + "bmax", + "boo", + "boogie", + "bplus", + "brainfuck", + "brighterscript", + "brightscript", + "bro", + "browserslist", + "bsdmake", + "bsv", + "byond", + "bzl", + "c", + "c#", + "c++", + "c++-objdump", + "c-objdump", + "c2hs", + "c2hs haskell", + "cURL Config", + "cabal config", + "cadence", + "cairo", + "cake", + "cakescript", + "cameligo", + "cap cds", + "cap'n proto", + "cartocss", + "cds", + "ceylon", + "cfc", + "cfm", + "cfml", + "chapel", + "charity", + "checksum", + "checksums", + "chpl", + "chuck", + "cil", + "circom", + "cirru", + "clarion", + "clarity", + "classic asp", + "classic visual basic", + "clean", + "click", + "clipper", + "clips", + "clojure", + "closure templates", + "cloud firestore security rules", + "cmake", + "cobol", + "coccinelle", + "codeowners", + "codeql", + "coffee", + "coffee-script", + "coffeescript", + "coldfusion", + "coldfusion cfc", + "coldfusion html", + "collada", + "common lisp", + "common workflow language", + "component pascal", + "conll-u", + "console", + "cool", + "coq", + "cperl", + "cpp", + "cpp-objdump", + "creole", + "crystal", + "csharp", + "cson", + "csound", + "csound document", + "csound score", + "csound-csd", + "csound-orc", + "csound-sco", + "css", + "csv", + "cucumber", + "cuda", + "cue", + "cue sheet", + "curl config", + "curlrc", + "curry", + "cweb", + "cwl", + "cycript", + "cypher", + "cython", + "d", + "d-objdump", + "d2", + "d2lang", + "dafny", + "darcs patch", + "dart", + "dataweave", + "dcl", + "debian package control file", + "delphi", + "denizenscript", + "desktop", + "dhall", + "diff", + "digital command language", + "dircolors", + "directx 3d file", + "django", + "dm", + "dns zone", + "dockerfile", + "dogescript", + "dosbatch", + "dosini", + "dotenv", + "dpatch", + "dtrace", + "dtrace-script", + "dylan", + "e", + "e-mail", + "eC", + "eagle", + "earthly", + "easybuild", + "ebnf", + "ec", + "ecere projects", + "ecl", + "eclipse", + "ecmarkdown", + "ecmarkup", + "ecr", + "edgeql", + "editor-config", + "editorconfig", + "edje data collection", + "edn", + "eeschema schematic", + "eex", + "eiffel", + "ejs", + "elisp", + "elixir", + "elm", + "elvish", + "elvish transcript", + "emacs", + "emacs lisp", + "emacs muse", + "email", + "emberscript", + "eml", + "eq", + "erb", + "erlang", + "esdl", + "euphoria", + "f#", + "f*", + "factor", + "fancy", + "fantom", + "faust", + "fb", + "fennel", + "figlet font", + "filebench wml", + "filterscript", + "fish", + "flex", + "fluent", + "flux", + "formatted", + "forth", + "fortran", + "fortran free form", + "foxpro", + "freebasic", + "freemarker", + "frege", + "fsharp", + "fstar", + "ftl", + "fundamental", + "futhark", + "g-code", + "game maker language", + "gaml", + "gams", + "gap", + "gas", + "gcc machine description", + "gdb", + "gdscript", + "gedcom", + "gemfile.lock", + "gemini", + "gemtext", + "genero 4gl", + "genero per", + "genie", + "genshi", + "gentoo ebuild", + "gentoo eclass", + "geojson", + "gerber image", + "gettext catalog", + "gf", + "gherkin", + "git attributes", + "git config", + "git revision list", + "git-ignore", + "gitattributes", + "gitconfig", + "gitignore", + "gitmodules", + "gleam", + "glimmer js", + "glsl", + "glyph", + "glyph bitmap distribution format", + "gn", + "gnu asm", + "gnuplot", + "go", + "go checksums", + "go mod", + "go module", + "go sum", + "go work", + "go work sum", + "go workspace", + "go.mod", + "go.sum", + "go.work", + "go.work.sum", + "godot resource", + "golang", + "golo", + "gosu", + "grace", + "gradle", + "gradle kotlin dsl", + "grammatical framework", + "graph modeling language", + "graphql", + "graphviz (dot)", + "groff", + "groovy", + "groovy server pages", + "gsc", + "gsp", + "hack", + "haml", + "handlebars", + "haproxy", + "harbour", + "hash", + "hashes", + "haskell", + "haxe", + "hbs", + "hcl", + "heex", + "help", + "hiveql", + "hlsl", + "hocon", + "holyc", + "hoon", + "hosts", + "hosts file", + "html", + "html+django", + "html+ecr", + "html+eex", + "html+erb", + "html+jinja", + "html+php", + "html+razor", + "html+ruby", + "htmlbars", + "htmldjango", + "http", + "hxml", + "hy", + "hylang", + "hyphy", + "i7", + "idl", + "idris", + "ignore", + "ignore list", + "igor", + "igor pro", + "igorpro", + "ijm", + "ile rpg", + "imagej macro", + "imba", + "inc", + "inform 7", + "inform7", + "ini", + "ink", + "inno setup", + "inputrc", + "io", + "ioke", + "irc", + "irc log", + "irc logs", + "isabelle", + "isabelle root", + "j", + "janet", + "jar manifest", + "jasmin", + "java", + "java properties", + "java server page", + "java server pages", + "javascript", + "javascript+erb", + "jcl", + "jest snapshot", + "jetbrains mps", + "jflex", + "jinja", + "jison", + "jison lex", + "jolie", + "jq", + "jruby", + "js", + "json", + "json with comments", + "json5", + "jsonc", + "jsoniq", + "jsonl", + "jsonld", + "jsonnet", + "jsp", + "julia", + "jupyter notebook", + "just", + "kaitai struct", + "kak", + "kakounescript", + "kakscript", + "kerboscript", + "keyvalues", + "kicad layout", + "kicad legacy layout", + "kicad schematic", + "kickstart", + "kit", + "kotlin", + "krl", + "ksy", + "kusto", + "kvlang", + "labview", + "lark", + "lasso", + "lassoscript", + "latex", + "latte", + "lean", + "lean 4", + "leex", + "less", + "less-css", + "lex", + "lfe", + "lhaskell", + "lhs", + "ligolang", + "lilypond", + "limbo", + "linker script", + "linux kernel module", + "liquid", + "lisp", + "litcoffee", + "literate agda", + "literate coffeescript", + "literate haskell", + "live-script", + "livescript", + "llvm", + "logos", + "logtalk", + "lolcode", + "lookml", + "loomscript", + "ls", + "lsl", + "ltspice symbol", + "lua", + "m", + "m2", + "m4", + "m4sugar", + "m68k", + "mIRC Script", + "macaulay2", + "macruby", + "mail", + "make", + "makefile", + "mako", + "man", + "man page", + "man-page", + "manpage", + "markdown", + "marko", + "markojs", + "mask", + "mathematica", + "matlab", + "maven pom", + "max", + "max/msp", + "maxmsp", + "maxscript", + "mbox", + "mcfunction", + "md", + "mdoc", + "mdx", + "mediawiki", + "mercury", + "mermaid", + "mermaid example", + "meson", + "metal", + "mf", + "microsoft developer studio project", + "microsoft visual studio solution", + "minid", + "miniyaml", + "mint", + "mirah", + "mirc script", + "mlir", + "mma", + "modelica", + "modula-2", + "modula-3", + "module management system", + "monkey", + "monkey c", + "moocode", + "moonscript", + "motoko", + "motorola 68k assembly", + "move", + "mps", + "mql4", + "mql5", + "mtml", + "muf", + "mumps", + "mupad", + "muse", + "mustache", + "myghty", + "nanorc", + "nasal", + "nasl", + "nasm", + "ncl", + "ne-on", + "nearley", + "nemerle", + "neon", + "nesC", + "nesc", + "netlinx", + "netlinx+erb", + "netlogo", + "nette object notation", + "newlisp", + "nextflow", + "nginx", + "nginx configuration file", + "nim", + "ninja", + "nit", + "nix", + "nixos", + "njk", + "nl", + "node", + "npm config", + "npmrc", + "nroff", + "nsis", + "nu", + "nu-script", + "numpy", + "nunjucks", + "nush", + "nushell", + "nushell-script", + "nvim", + "nwscript", + "oasv2", + "oasv2-json", + "oasv2-yaml", + "oasv3", + "oasv3-json", + "oasv3-yaml", + "obj-c", + "obj-c++", + "obj-j", + "objc", + "objc++", + "objdump", + "object data instance notation", + "objective-c", + "objective-c++", + "objective-j", + "objectivec", + "objectivec++", + "objectivej", + "objectpascal", + "objectscript", + "objj", + "ocaml", + "octave", + "odin", + "odin-lang", + "odinlang", + "omgrofl", + "oncrpc", + "ooc", + "opa", + "opal", + "open policy agent", + "openapi specification v2", + "openapi specification v3", + "opencl", + "openedge", + "openedge abl", + "openqasm", + "openrc", + "openrc runscript", + "openscad", + "openstep property list", + "opentype feature file", + "option list", + "opts", + "org", + "osascript", + "ox", + "oxygene", + "oz", + "p4", + "pact", + "pan", + "pandoc", + "papyrus", + "parrot", + "parrot assembly", + "parrot internal representation", + "pascal", + "pasm", + "pawn", + "pcbnew", + "pddl", + "peg.js", + "pep8", + "perl", + "perl-6", + "perl6", + "php", + "pic", + "pickle", + "picolisp", + "piglatin", + "pikchr", + "pike", + "pir", + "plain text", + "plantuml", + "plpgsql", + "plsql", + "pod", + "pod 6", + "pogoscript", + "polar", + "pony", + "portugol", + "posh", + "postcss", + "postscr", + "postscript", + "pot", + "pov-ray", + "pov-ray sdl", + "povray", + "powerbuilder", + "powershell", + "praat", + "prisma", + "processing", + "procfile", + "progress", + "proguard", + "prolog", + "promela", + "propeller spin", + "proto", + "protobuf", + "protobuf text format", + "protocol buffer", + "protocol buffer text format", + "public key", + "pug", + "puppet", + "pure data", + "purebasic", + "purescript", + "pwsh", + "pycon", + "pyret", + "pyrex", + "python", + "python console", + "python traceback", + "python3", + "q", + "q#", + "ql", + "qmake", + "qml", + "qsharp", + "qt script", + "quake", + "r", + "racket", + "ragel", + "ragel-rb", + "ragel-ruby", + "rake", + "raku", + "raml", + "rascal", + "raw", + "raw token data", + "razor", + "rb", + "rbs", + "rbx", + "rdoc", + "reStructuredText", + "readline", + "readline config", + "realbasic", + "reason", + "reasonligo", + "rebol", + "record jar", + "red", + "red/system", + "redcode", + "redirect rules", + "redirects", + "regex", + "regexp", + "regular expression", + "ren'py", + "renderscript", + "renpy", + "rescript", + "restructuredtext", + "rexx", + "rez", + "rhtml", + "rich text format", + "ring", + "riot", + "rmarkdown", + "robotframework", + "robots", + "robots txt", + "robots.txt", + "roff", + "roff manpage", + "rouge", + "routeros script", + "rpc", + "rpcgen", + "rpgle", + "rpm spec", + "rs", + "rs-274x", + "rss", + "rst", + "ruby", + "runoff", + "rust", + "rusthon", + "sage", + "salt", + "saltstack", + "saltstate", + "sas", + "sass", + "scala", + "scaml", + "scenic", + "scheme", + "scilab", + "scss", + "sdc", + "sed", + "self", + "selinux policy", + "sepolicy", + "sfv", + "sh", + "shaderlab", + "shell", + "shell-script", + "shellcheck config", + "shellcheckrc", + "shellsession", + "shen", + "sieve", + "simple file verification", + "singularity", + "slash", + "slice", + "slim", + "smali", + "smalltalk", + "smarty", + "smithy", + "sml", + "smpl", + "smt", + "snakefile", + "snakemake", + "snippet", + "solidity", + "soong", + "sourcemod", + "sourcepawn", + "soy", + "sparql", + "specfile", + "spline font database", + "splus", + "sqf", + "sql", + "sqlpl", + "sqlrpgle", + "squeak", + "squirrel", + "srecode template", + "ssh config", + "stan", + "standard ml", + "star", + "starlark", + "stata", + "stl", + "stla", + "ston", + "stringtemplate", + "stylus", + "subrip text", + "sugarss", + "sum", + "sums", + "supercollider", + "svelte", + "svg", + "sway", + "sweave", + "swift", + "swig", + "systemverilog", + "talon", + "tcl", + "tcsh", + "tea", + "terra", + "terraform", + "terraform template", + "tex", + "texinfo", + "text", + "text proto", + "textile", + "textmate properties", + "thrift", + "ti program", + "tl", + "tl-verilog", + "tla", + "tm-properties", + "toit", + "toml", + "topojson", + "troff", + "ts", + "tsql", + "tsv", + "tsx", + "turing", + "turtle", + "twig", + "txl", + "typ", + "type language", + "typescript", + "udiff", + "unified parallel c", + "unity3d asset", + "unix asm", + "unix assembly", + "uno", + "unrealscript", + "urweb", + "v", + "vala", + "valve data format", + "vb .net", + "vb 6", + "vb.net", + "vb6", + "vba", + "vbnet", + "vbscript", + "vcl", + "vdf", + "velocity", + "velocity template language", + "verilog", + "vhdl", + "vim", + "vim help file", + "vim script", + "vim snippet", + "vimhelp", + "viml", + "visual basic", + "visual basic .net", + "visual basic 6", + "visual basic 6.0", + "visual basic classic", + "visual basic for applications", + "vlang", + "volt", + "vtl", + "vtt", + "vue", + "vyper", + "wasm", + "wast", + "wavefront material", + "wavefront object", + "wdl", + "web ontology language", + "webassembly", + "webassembly interface type", + "webidl", + "webvtt", + "wget config", + "wgetrc", + "wgsl", + "whiley", + "wiki", + "wikitext", + "win32 message file", + "winbatch", + "windows registry entries", + "wisp", + "wit", + "witcher script", + "wl", + "wolfram", + "wolfram lang", + "wolfram language", + "wollok", + "world of warcraft addon data", + "wren", + "wrenlang", + "wsdl", + "x bitmap", + "x font directory index", + "x pixmap", + "x10", + "xBase", + "xbase", + "xbm", + "xc", + "xcompose", + "xdc", + "xdr", + "xhtml", + "xml", + "xml property list", + "xml+genshi", + "xml+kid", + "xojo", + "xonsh", + "xpages", + "xpm", + "xproc", + "xquery", + "xs", + "xsd", + "xsl", + "xslt", + "xten", + "xtend", + "yacc", + "yaml", + "yang", + "yara", + "yas", + "yasnippet", + "yml", + "yul", + "zap", + "zeek", + "zenscript", + "zephir", + "zig", + "zil", + "zimpl", + "zsh" + ] + } + }, + "additionalProperties": false + }, + "validations": { + "$ref": "#/definitions/validations", + "title": "textarea validations", + "description": "Textarea validations\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#validations" + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "input" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "input", + "description": "Input\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#input", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "An input id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "input attributes", + "description": "Input attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2", + "type": "object", + "required": ["label"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short input description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long input description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + }, + "placeholder": { + "$ref": "#/definitions/placeholder", + "description": "An input placeholder\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + }, + "value": { + "$ref": "#/definitions/value", + "description": "An input value\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + } + }, + "additionalProperties": false + }, + "validations": { + "$ref": "#/definitions/validations", + "title": "input validations", + "description": "Input validations\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#validations-1" + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "dropdown" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "dropdown", + "description": "dropdown\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#dropdown", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "A dropdown id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "dropdown attributes", + "description": "Dropdown attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "object", + "required": ["label", "options"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short dropdown description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long dropdown description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3" + }, + "multiple": { + "description": "Specify whether allow a multiple choices\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "boolean", + "default": false + }, + "options": { + "description": "Dropdown choices\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["Sample choice"] + } + }, + "default": { + "description": "Index of the default option\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "integer", + "examples": [0] + } + }, + "additionalProperties": false + }, + "validations": { + "$ref": "#/definitions/validations", + "title": "dropdown validations", + "description": "Dropdown validations\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#validations-2" + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "checkboxes" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "checkboxes", + "description": "Checkboxes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#checkboxes", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "Checkbox list id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "checkbox list attributes", + "description": "Checkbox list attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "object", + "required": ["label", "options"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short checkbox list description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long checkbox list description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4" + }, + "options": { + "description": "Checkbox list choices\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "array", + "minItems": 1, + "items": { + "title": "checkbox list choice", + "description": "Checkbox list choice\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "object", + "required": ["label"], + "properties": { + "label": { + "description": "A short checkbox list choice description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "string", + "minLength": 1, + "examples": ["Sample label"] + }, + "required": { + "description": "Specify whether a choice is required\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "upload" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "upload", + "description": "Upload\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#upload", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "Upload id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "upload attributes", + "description": "Upload attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-for-upload", + "type": "object", + "required": ["label"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short upload description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-for-upload" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long upload description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-for-upload" + } + }, + "additionalProperties": false + }, + "validations": { + "$ref": "#/definitions/upload_validations" + } + }, + "additionalProperties": false + } + } + ] + } + }, + "properties": { + "name": { + "description": "An issue template name\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "string", + "minLength": 1, + "examples": ["Sample name"] + }, + "description": { + "description": "An issue template description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "string", + "minLength": 1, + "examples": ["Sample description"] + }, + "title": { + "description": "An issue template title\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "string", + "minLength": 1, + "examples": ["Sample title", "Bug: ", "Feature: "] + }, + "labels": { + "description": "An issue template labels\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "oneOf": [ + { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": [ + "Sample label", + "bug", + "documentation", + "duplicate", + "enhancement", + "good first issue", + "help wanted", + "invalid", + "question", + "wontfix" + ] + } + }, + { + "description": "Comma-delimited labels", + "type": "string", + "minLength": 1, + "examples": ["Sample label", "bug,documentation,duplicate"] + } + ] + }, + "projects": { + "description": "Projects that any issues created with this template will automatically be added to.", + "type": "array", + "items": { + "type": "string" + } + }, + "assignees": { + "description": "An issue template assignees\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "oneOf": [ + { + "$ref": "#/definitions/assignee" + }, + { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/assignee" + } + } + ] + }, + "type": { + "description": "An issue type, currently in beta\nhttps://github.com/orgs/community/discussions/139933", + "type": "string", + "minLength": 1, + "examples": ["Bug", "Enhancement"] + }, + "body": { + "description": "An issue template body\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/form_item" + } + } + }, + "required": ["name", "description", "body"], + "title": "GitHub issue forms config file schema", + "type": "object" +} diff --git a/tests/testdata/json_schemastore_issue_forms_elements/old.json b/tests/testdata/json_schemastore_issue_forms_elements/old.json new file mode 100644 index 0000000..510411a --- /dev/null +++ b/tests/testdata/json_schemastore_issue_forms_elements/old.json @@ -0,0 +1,2225 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/github-issue-forms.json", + "$comment": "https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms", + "additionalProperties": false, + "definitions": { + "type": { + "description": "A form item type\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys", + "type": "string", + "enum": ["checkboxes", "dropdown", "input", "markdown", "textarea"] + }, + "id": { + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "examples": ["SampleId"] + }, + "validations": { + "title": "validation options", + "type": "object", + "properties": { + "required": { + "description": "Specify whether require a form item", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "assignee": { + "type": "string", + "maxLength": 39, + "pattern": "^[a-zA-Z0-9](-?[a-zA-Z0-9])*$", + "examples": ["SampleAssignee"] + }, + "label": { + "type": "string", + "minLength": 1, + "examples": ["Sample label"] + }, + "description": { + "type": "string", + "default": "", + "examples": ["Sample description"] + }, + "placeholder": { + "type": "string", + "default": "", + "examples": ["Sample placeholder"] + }, + "value": { + "type": "string", + "minLength": 1, + "examples": ["Sample value"] + }, + "form_item": { + "title": "form item", + "description": "A form item\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#about-githubs-form-schema", + "type": "object", + "required": ["type"], + "properties": { + "type": { + "$ref": "#/definitions/type" + } + }, + "allOf": [ + { + "if": { + "properties": { + "type": { + "const": "markdown" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "markdown", + "description": "Markdown\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#markdown", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "attributes": { + "title": "markdown attributes", + "description": "Markdown attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes", + "type": "object", + "required": ["value"], + "properties": { + "value": { + "description": "A markdown code\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes", + "type": "string", + "minLength": 1, + "examples": ["Sample code"] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "textarea" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "textarea", + "description": "Textarea\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#textarea", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "A textarea id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "textarea attributes", + "description": "Textarea attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1", + "type": "object", + "required": ["label"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short textarea description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long textarea description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "placeholder": { + "$ref": "#/definitions/placeholder", + "description": "A textarea placeholder\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "value": { + "$ref": "#/definitions/value", + "description": "A textarea value\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1" + }, + "render": { + "description": "A textarea syntax highlighting mode\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-1", + "type": "string", + "enum": [ + "1C Enterprise", + "1c enterprise", + "2-Dimensional Array", + "2-dimensional array", + "4D", + "4d", + "ABAP", + "ABAP CDS", + "ABNF", + "AFDKO", + "AGS Script", + "AIDL", + "AL", + "AMPL", + "ANTLR", + "API Blueprint", + "APL", + "ASL", + "ASN.1", + "ASP.NET", + "ATS", + "ActionScript", + "Ada", + "Adblock Filter List", + "Adobe Font Metrics", + "Agda", + "Alloy", + "Alpine Abuild", + "Altium Designer", + "AngelScript", + "Ant Build System", + "Antlers", + "ApacheConf", + "Apex", + "Apollo Guidance Computer", + "AppleScript", + "Arc", + "AsciiDoc", + "AspectJ", + "Assembly", + "Astro", + "Asymptote", + "Augeas", + "AutoHotkey", + "AutoIt", + "AutoIt3", + "AutoItScript", + "Avro IDL", + "Awk", + "BASIC", + "Ballerina", + "Batchfile", + "Beef", + "Befunge", + "Berry", + "BibTeX", + "Bicep", + "Bikeshed", + "Bison", + "BitBake", + "Blade", + "BlitzBasic", + "BlitzMax", + "Bluespec", + "Bluespec BH", + "Boo", + "Boogie", + "Brainfuck", + "BrighterScript", + "Brightscript", + "Browserslist", + "C", + "C#", + "C++", + "C-ObjDump", + "C2hs Haskell", + "CAP CDS", + "CIL", + "CLIPS", + "CMake", + "COBOL", + "CODEOWNERS", + "COLLADA", + "CSON", + "CSS", + "CSV", + "CUE", + "CWeb", + "Cabal", + "Cabal Config", + "Cadence", + "Cairo", + "CameLIGO", + "Cap'n Proto", + "Carto", + "CartoCSS", + "Ceylon", + "Chapel", + "Charity", + "Checksums", + "ChucK", + "Circom", + "Cirru", + "Clarion", + "Clarity", + "Classic ASP", + "Clean", + "Click", + "Clojure", + "Closure Templates", + "Cloud Firestore Security Rules", + "CoNLL", + "CoNLL-U", + "CoNLL-X", + "CodeQL", + "CoffeeScript", + "ColdFusion", + "ColdFusion CFC", + "Common Lisp", + "Common Workflow Language", + "Component Pascal", + "Containerfile", + "Cool", + "Coq", + "Cpp-ObjDump", + "Creole", + "Crystal", + "Csound", + "Csound Document", + "Csound Score", + "Cuda", + "Cue Sheet", + "Curry", + "Cycript", + "Cypher", + "Cython", + "D", + "D-ObjDump", + "D2", + "DIGITAL Command Language", + "DM", + "DNS Zone", + "DTrace", + "Dafny", + "Darcs Patch", + "Dart", + "DataWeave", + "Debian Package Control File", + "DenizenScript", + "Dhall", + "Diff", + "DirectX 3D File", + "Dlang", + "Dockerfile", + "Dogescript", + "Dotenv", + "Dylan", + "E", + "E-mail", + "EBNF", + "ECL", + "ECLiPSe", + "EJS", + "EQ", + "Eagle", + "Earthfile", + "Earthly", + "Easybuild", + "Ecere Projects", + "Ecmarkup", + "EdgeQL", + "EditorConfig", + "Edje Data Collection", + "Eiffel", + "Elixir", + "Elm", + "Elvish", + "Elvish Transcript", + "Emacs Lisp", + "EmberScript", + "Erlang", + "Euphoria", + "F#", + "F*", + "FIGfont", + "FIGlet Font", + "FLUX", + "Factor", + "Fancy", + "Fantom", + "Faust", + "Fennel", + "Filebench WML", + "Filterscript", + "Fluent", + "Formatted", + "Forth", + "Fortran", + "Fortran Free Form", + "FreeBasic", + "FreeMarker", + "Frege", + "Futhark", + "G-code", + "GAML", + "GAMS", + "GAP", + "GCC Machine Description", + "GDB", + "GDScript", + "GEDCOM", + "GLSL", + "GN", + "GSC", + "Game Maker Language", + "Gemfile.lock", + "Gemini", + "Genero 4gl", + "Genero per", + "Genie", + "Genshi", + "Gentoo Ebuild", + "Gentoo Eclass", + "Gerber Image", + "Gettext Catalog", + "Gherkin", + "Git Attributes", + "Git Blame Ignore Revs", + "Git Config", + "Git Revision List", + "Gleam", + "Glimmer JS", + "Glyph", + "Glyph Bitmap Distribution Format", + "Gnuplot", + "Go", + "Go Checksums", + "Go Module", + "Go Workspace", + "Godot Resource", + "Golo", + "Gosu", + "Grace", + "Gradle", + "Gradle Kotlin DSL", + "Grammatical Framework", + "Graph Modeling Language", + "GraphQL", + "Graphviz (DOT)", + "Groovy", + "Groovy Server Pages", + "HAProxy", + "HCL", + "HLSL", + "HOCON", + "HTML", + "HTML+ECR", + "HTML+EEX", + "HTML+ERB", + "HTML+PHP", + "HTML+Razor", + "HTTP", + "HXML", + "Hack", + "Haml", + "Handlebars", + "Harbour", + "HashiCorp Configuration Language", + "Haskell", + "Haxe", + "HiveQL", + "HolyC", + "Hosts File", + "Hy", + "HyPhy", + "IDL", + "IGOR Pro", + "INI", + "IPython Notebook", + "IRC log", + "Idris", + "Ignore List", + "ImageJ Macro", + "Imba", + "Inform 7", + "Ink", + "Inno Setup", + "Io", + "Ioke", + "Isabelle", + "Isabelle ROOT", + "J", + "JAR Manifest", + "JCL", + "JFlex", + "JSON", + "JSON with Comments", + "JSON5", + "JSONLD", + "JSONiq", + "Janet", + "Jasmin", + "Java", + "Java Properties", + "Java Server Pages", + "JavaScript", + "JavaScript+ERB", + "Jest Snapshot", + "JetBrains MPS", + "Jinja", + "Jison", + "Jison Lex", + "Jolie", + "Jsonnet", + "Julia", + "Jupyter Notebook", + "Just", + "Justfile", + "KRL", + "Kaitai Struct", + "KakouneScript", + "KerboScript", + "KiCad Layout", + "KiCad Legacy Layout", + "KiCad Schematic", + "Kickstart", + "Kit", + "Kotlin", + "Kusto", + "LFE", + "LLVM", + "LOLCODE", + "LSL", + "LTspice Symbol", + "LabVIEW", + "Lark", + "Lasso", + "Latte", + "Lean", + "Lean 4", + "Less", + "Lex", + "LigoLANG", + "LilyPond", + "Limbo", + "Linker Script", + "Linux Kernel Module", + "Liquid", + "Literate Agda", + "Literate CoffeeScript", + "Literate Haskell", + "LiveScript", + "Logos", + "Logtalk", + "LookML", + "LoomScript", + "Lua", + "M", + "M4", + "M4Sugar", + "MATLAB", + "MAXScript", + "MDX", + "MLIR", + "MQL4", + "MQL5", + "MTML", + "MUF", + "Macaulay2", + "Makefile", + "Mako", + "Markdown", + "Marko", + "Mask", + "Mathematica", + "Maven POM", + "Max", + "Mercury", + "Mermaid", + "Meson", + "Metal", + "Microsoft Developer Studio Project", + "Microsoft Visual Studio Solution", + "MiniD", + "MiniYAML", + "Mint", + "Mirah", + "Modelica", + "Modula-2", + "Modula-3", + "Module Management System", + "Monkey", + "Monkey C", + "Moocode", + "MoonScript", + "Motoko", + "Motorola 68K Assembly", + "Move", + "Muse", + "Mustache", + "Myghty", + "NASL", + "NCL", + "NEON", + "NL", + "NPM Config", + "NSIS", + "NWScript", + "Nasal", + "Nearley", + "Nemerle", + "NeoSnippet", + "NetLinx", + "NetLinx+ERB", + "NetLogo", + "NewLisp", + "Nextflow", + "Nginx", + "Nim", + "Ninja", + "Nit", + "Nix", + "Nu", + "NumPy", + "Nunjucks", + "Nushell", + "OASv2-json", + "OASv2-yaml", + "OASv3-json", + "OASv3-yaml", + "OCaml", + "ObjDump", + "Object Data Instance Notation", + "ObjectScript", + "Objective-C", + "Objective-C++", + "Objective-J", + "Odin", + "Omgrofl", + "Opa", + "Opal", + "Open Policy Agent", + "OpenAPI Specification v2", + "OpenAPI Specification v3", + "OpenCL", + "OpenEdge ABL", + "OpenQASM", + "OpenRC runscript", + "OpenSCAD", + "OpenStep Property List", + "OpenType Feature File", + "Option List", + "Org", + "Ox", + "Oxygene", + "Oz", + "P4", + "PDDL", + "PEG.js", + "PHP", + "PLSQL", + "PLpgSQL", + "POV-Ray SDL", + "Pact", + "Pan", + "Papyrus", + "Parrot", + "Parrot Assembly", + "Parrot Internal Representation", + "Pascal", + "Pawn", + "Pep8", + "Perl", + "Pic", + "Pickle", + "PicoLisp", + "PigLatin", + "Pike", + "PlantUML", + "Pod", + "Pod 6", + "PogoScript", + "Polar", + "Pony", + "Portugol", + "PostCSS", + "PostScript", + "PowerBuilder", + "PowerShell", + "Praat", + "Prisma", + "Processing", + "Procfile", + "Proguard", + "Prolog", + "Promela", + "Propeller Spin", + "Protocol Buffer", + "Protocol Buffer Text Format", + "Protocol Buffers", + "Public Key", + "Pug", + "Puppet", + "Pure Data", + "PureBasic", + "PureScript", + "Pyret", + "Python", + "Python console", + "Python traceback", + "Q#", + "QML", + "QMake", + "Qt Script", + "Quake", + "R", + "RAML", + "RBS", + "RDoc", + "REALbasic", + "REXX", + "RMarkdown", + "RPC", + "RPGLE", + "RPM Spec", + "RUNOFF", + "Racket", + "Ragel", + "Raku", + "Rascal", + "Raw token data", + "ReScript", + "Readline Config", + "Reason", + "ReasonLIGO", + "Rebol", + "Record Jar", + "Red", + "Redcode", + "Redirect Rules", + "Regular Expression", + "Ren'Py", + "RenderScript", + "Rez", + "Rich Text Format", + "Ring", + "Riot", + "RobotFramework", + "Roff", + "Roff Manpage", + "Rouge", + "RouterOS Script", + "Rscript", + "Ruby", + "Rust", + "SAS", + "SCSS", + "SELinux Kernel Policy Language", + "SELinux Policy", + "SMT", + "SPARQL", + "SQF", + "SQL", + "SQLPL", + "SRecode Template", + "SSH Config", + "STAR", + "STL", + "STON", + "SVG", + "SWIG", + "Sage", + "SaltStack", + "Sass", + "Scala", + "Scaml", + "Scenic", + "Scheme", + "Scilab", + "Self", + "ShaderLab", + "Shell", + "ShellCheck Config", + "ShellSession", + "Shen", + "Sieve", + "Simple File Verification", + "Singularity", + "Slash", + "Slice", + "Slim", + "SmPL", + "Smali", + "Smalltalk", + "Smarty", + "Smithy", + "Snakemake", + "SnipMate", + "Solidity", + "Soong", + "SourcePawn", + "Spline Font Database", + "Squirrel", + "Stan", + "Standard ML", + "Starlark", + "Stata", + "StringTemplate", + "Stylus", + "SubRip Text", + "SugarSS", + "SuperCollider", + "Svelte", + "Sway", + "Sweave", + "Swift", + "SystemVerilog", + "TI Program", + "TL-Verilog", + "TLA", + "TOML", + "TSQL", + "TSV", + "TSX", + "TXL", + "Talon", + "Tcl", + "Tcsh", + "TeX", + "Tea", + "Terra", + "Terraform Template", + "Texinfo", + "Text", + "TextMate Properties", + "Textile", + "Thrift", + "Toit", + "Turing", + "Turtle", + "Twig", + "Type Language", + "TypeScript", + "UltiSnip", + "UltiSnips", + "Unified Parallel C", + "Unity3D Asset", + "Unix Assembly", + "Uno", + "UnrealScript", + "Ur", + "Ur/Web", + "UrWeb", + "V", + "VBA", + "VBScript", + "VCL", + "VHDL", + "Vala", + "Valve Data Format", + "Velocity Template Language", + "Verilog", + "Vim Help File", + "Vim Script", + "Vim Snippet", + "Visual Basic .NET", + "Visual Basic 6.0", + "Volt", + "Vue", + "Vyper", + "WDL", + "WGSL", + "Wavefront Material", + "Wavefront Object", + "Web Ontology Language", + "WebAssembly", + "WebAssembly Interface Type", + "WebIDL", + "WebVTT", + "Wget Config", + "Whiley", + "Wikitext", + "Win32 Message File", + "Windows Registry Entries", + "Witcher Script", + "Wollok", + "Workflow Description Language", + "World of Warcraft Addon Data", + "Wren", + "X BitMap", + "X Font Directory Index", + "X PixMap", + "X10", + "XC", + "XCompose", + "XML", + "XML Property List", + "XPages", + "XProc", + "XQuery", + "XS", + "XSLT", + "Xojo", + "Xonsh", + "Xtend", + "YAML", + "YANG", + "YARA", + "YASnippet", + "Yacc", + "Yul", + "ZAP", + "ZIL", + "Zeek", + "ZenScript", + "Zephir", + "Zig", + "Zimpl", + "abap", + "abap cds", + "abl", + "abnf", + "abuild", + "acfm", + "ackrc", + "aconf", + "actionscript", + "actionscript 3", + "actionscript3", + "ad block", + "ad block filters", + "ada", + "ada2005", + "ada95", + "adb", + "adblock", + "adblock filter list", + "adobe composite font metrics", + "adobe font metrics", + "adobe multiple font metrics", + "advpl", + "agda", + "ags", + "ags script", + "ahk", + "aidl", + "al", + "alloy", + "alpine abuild", + "altium", + "altium designer", + "amfm", + "ampl", + "amusewiki", + "angelscript", + "ant build system", + "antlers", + "antlr", + "apache", + "apacheconf", + "apex", + "api blueprint", + "apkbuild", + "apl", + "apollo guidance computer", + "applescript", + "arc", + "arexx", + "as3", + "ascii stl", + "asciidoc", + "asl", + "asm", + "asn.1", + "asp", + "asp.net", + "aspectj", + "aspx", + "aspx-vb", + "assembly", + "astro", + "asymptote", + "ats", + "ats2", + "au3", + "augeas", + "autoconf", + "autohotkey", + "autoit", + "avro idl", + "awk", + "b3d", + "ballerina", + "bash", + "bash session", + "basic", + "bat", + "batch", + "batchfile", + "bazel", + "be", + "beef", + "befunge", + "berry", + "bh", + "bibtex", + "bicep", + "bikeshed", + "bison", + "bitbake", + "blade", + "blitz3d", + "blitzbasic", + "blitzmax", + "blitzplus", + "bluespec", + "bluespec bh", + "bluespec bsv", + "bluespec classic", + "bmax", + "boo", + "boogie", + "bplus", + "brainfuck", + "brighterscript", + "brightscript", + "bro", + "browserslist", + "bsdmake", + "bsv", + "byond", + "bzl", + "c", + "c#", + "c++", + "c++-objdump", + "c-objdump", + "c2hs", + "c2hs haskell", + "cURL Config", + "cabal config", + "cadence", + "cairo", + "cake", + "cakescript", + "cameligo", + "cap cds", + "cap'n proto", + "cartocss", + "cds", + "ceylon", + "cfc", + "cfm", + "cfml", + "chapel", + "charity", + "checksum", + "checksums", + "chpl", + "chuck", + "cil", + "circom", + "cirru", + "clarion", + "clarity", + "classic asp", + "classic visual basic", + "clean", + "click", + "clipper", + "clips", + "clojure", + "closure templates", + "cloud firestore security rules", + "cmake", + "cobol", + "coccinelle", + "codeowners", + "codeql", + "coffee", + "coffee-script", + "coffeescript", + "coldfusion", + "coldfusion cfc", + "coldfusion html", + "collada", + "common lisp", + "common workflow language", + "component pascal", + "conll-u", + "console", + "cool", + "coq", + "cperl", + "cpp", + "cpp-objdump", + "creole", + "crystal", + "csharp", + "cson", + "csound", + "csound document", + "csound score", + "csound-csd", + "csound-orc", + "csound-sco", + "css", + "csv", + "cucumber", + "cuda", + "cue", + "cue sheet", + "curl config", + "curlrc", + "curry", + "cweb", + "cwl", + "cycript", + "cypher", + "cython", + "d", + "d-objdump", + "d2", + "d2lang", + "dafny", + "darcs patch", + "dart", + "dataweave", + "dcl", + "debian package control file", + "delphi", + "denizenscript", + "desktop", + "dhall", + "diff", + "digital command language", + "dircolors", + "directx 3d file", + "django", + "dm", + "dns zone", + "dockerfile", + "dogescript", + "dosbatch", + "dosini", + "dotenv", + "dpatch", + "dtrace", + "dtrace-script", + "dylan", + "e", + "e-mail", + "eC", + "eagle", + "earthly", + "easybuild", + "ebnf", + "ec", + "ecere projects", + "ecl", + "eclipse", + "ecmarkdown", + "ecmarkup", + "ecr", + "edgeql", + "editor-config", + "editorconfig", + "edje data collection", + "edn", + "eeschema schematic", + "eex", + "eiffel", + "ejs", + "elisp", + "elixir", + "elm", + "elvish", + "elvish transcript", + "emacs", + "emacs lisp", + "emacs muse", + "email", + "emberscript", + "eml", + "eq", + "erb", + "erlang", + "esdl", + "euphoria", + "f#", + "f*", + "factor", + "fancy", + "fantom", + "faust", + "fb", + "fennel", + "figlet font", + "filebench wml", + "filterscript", + "fish", + "flex", + "fluent", + "flux", + "formatted", + "forth", + "fortran", + "fortran free form", + "foxpro", + "freebasic", + "freemarker", + "frege", + "fsharp", + "fstar", + "ftl", + "fundamental", + "futhark", + "g-code", + "game maker language", + "gaml", + "gams", + "gap", + "gas", + "gcc machine description", + "gdb", + "gdscript", + "gedcom", + "gemfile.lock", + "gemini", + "gemtext", + "genero 4gl", + "genero per", + "genie", + "genshi", + "gentoo ebuild", + "gentoo eclass", + "geojson", + "gerber image", + "gettext catalog", + "gf", + "gherkin", + "git attributes", + "git config", + "git revision list", + "git-ignore", + "gitattributes", + "gitconfig", + "gitignore", + "gitmodules", + "gleam", + "glimmer js", + "glsl", + "glyph", + "glyph bitmap distribution format", + "gn", + "gnu asm", + "gnuplot", + "go", + "go checksums", + "go mod", + "go module", + "go sum", + "go work", + "go work sum", + "go workspace", + "go.mod", + "go.sum", + "go.work", + "go.work.sum", + "godot resource", + "golang", + "golo", + "gosu", + "grace", + "gradle", + "gradle kotlin dsl", + "grammatical framework", + "graph modeling language", + "graphql", + "graphviz (dot)", + "groff", + "groovy", + "groovy server pages", + "gsc", + "gsp", + "hack", + "haml", + "handlebars", + "haproxy", + "harbour", + "hash", + "hashes", + "haskell", + "haxe", + "hbs", + "hcl", + "heex", + "help", + "hiveql", + "hlsl", + "hocon", + "holyc", + "hoon", + "hosts", + "hosts file", + "html", + "html+django", + "html+ecr", + "html+eex", + "html+erb", + "html+jinja", + "html+php", + "html+razor", + "html+ruby", + "htmlbars", + "htmldjango", + "http", + "hxml", + "hy", + "hylang", + "hyphy", + "i7", + "idl", + "idris", + "ignore", + "ignore list", + "igor", + "igor pro", + "igorpro", + "ijm", + "ile rpg", + "imagej macro", + "imba", + "inc", + "inform 7", + "inform7", + "ini", + "ink", + "inno setup", + "inputrc", + "io", + "ioke", + "irc", + "irc log", + "irc logs", + "isabelle", + "isabelle root", + "j", + "janet", + "jar manifest", + "jasmin", + "java", + "java properties", + "java server page", + "java server pages", + "javascript", + "javascript+erb", + "jcl", + "jest snapshot", + "jetbrains mps", + "jflex", + "jinja", + "jison", + "jison lex", + "jolie", + "jq", + "jruby", + "js", + "json", + "json with comments", + "json5", + "jsonc", + "jsoniq", + "jsonl", + "jsonld", + "jsonnet", + "jsp", + "julia", + "jupyter notebook", + "just", + "kaitai struct", + "kak", + "kakounescript", + "kakscript", + "kerboscript", + "keyvalues", + "kicad layout", + "kicad legacy layout", + "kicad schematic", + "kickstart", + "kit", + "kotlin", + "krl", + "ksy", + "kusto", + "kvlang", + "labview", + "lark", + "lasso", + "lassoscript", + "latex", + "latte", + "lean", + "lean 4", + "leex", + "less", + "less-css", + "lex", + "lfe", + "lhaskell", + "lhs", + "ligolang", + "lilypond", + "limbo", + "linker script", + "linux kernel module", + "liquid", + "lisp", + "litcoffee", + "literate agda", + "literate coffeescript", + "literate haskell", + "live-script", + "livescript", + "llvm", + "logos", + "logtalk", + "lolcode", + "lookml", + "loomscript", + "ls", + "lsl", + "ltspice symbol", + "lua", + "m", + "m2", + "m4", + "m4sugar", + "m68k", + "mIRC Script", + "macaulay2", + "macruby", + "mail", + "make", + "makefile", + "mako", + "man", + "man page", + "man-page", + "manpage", + "markdown", + "marko", + "markojs", + "mask", + "mathematica", + "matlab", + "maven pom", + "max", + "max/msp", + "maxmsp", + "maxscript", + "mbox", + "mcfunction", + "md", + "mdoc", + "mdx", + "mediawiki", + "mercury", + "mermaid", + "mermaid example", + "meson", + "metal", + "mf", + "microsoft developer studio project", + "microsoft visual studio solution", + "minid", + "miniyaml", + "mint", + "mirah", + "mirc script", + "mlir", + "mma", + "modelica", + "modula-2", + "modula-3", + "module management system", + "monkey", + "monkey c", + "moocode", + "moonscript", + "motoko", + "motorola 68k assembly", + "move", + "mps", + "mql4", + "mql5", + "mtml", + "muf", + "mumps", + "mupad", + "muse", + "mustache", + "myghty", + "nanorc", + "nasal", + "nasl", + "nasm", + "ncl", + "ne-on", + "nearley", + "nemerle", + "neon", + "nesC", + "nesc", + "netlinx", + "netlinx+erb", + "netlogo", + "nette object notation", + "newlisp", + "nextflow", + "nginx", + "nginx configuration file", + "nim", + "ninja", + "nit", + "nix", + "nixos", + "njk", + "nl", + "node", + "npm config", + "npmrc", + "nroff", + "nsis", + "nu", + "nu-script", + "numpy", + "nunjucks", + "nush", + "nushell", + "nushell-script", + "nvim", + "nwscript", + "oasv2", + "oasv2-json", + "oasv2-yaml", + "oasv3", + "oasv3-json", + "oasv3-yaml", + "obj-c", + "obj-c++", + "obj-j", + "objc", + "objc++", + "objdump", + "object data instance notation", + "objective-c", + "objective-c++", + "objective-j", + "objectivec", + "objectivec++", + "objectivej", + "objectpascal", + "objectscript", + "objj", + "ocaml", + "octave", + "odin", + "odin-lang", + "odinlang", + "omgrofl", + "oncrpc", + "ooc", + "opa", + "opal", + "open policy agent", + "openapi specification v2", + "openapi specification v3", + "opencl", + "openedge", + "openedge abl", + "openqasm", + "openrc", + "openrc runscript", + "openscad", + "openstep property list", + "opentype feature file", + "option list", + "opts", + "org", + "osascript", + "ox", + "oxygene", + "oz", + "p4", + "pact", + "pan", + "pandoc", + "papyrus", + "parrot", + "parrot assembly", + "parrot internal representation", + "pascal", + "pasm", + "pawn", + "pcbnew", + "pddl", + "peg.js", + "pep8", + "perl", + "perl-6", + "perl6", + "php", + "pic", + "pickle", + "picolisp", + "piglatin", + "pikchr", + "pike", + "pir", + "plain text", + "plantuml", + "plpgsql", + "plsql", + "pod", + "pod 6", + "pogoscript", + "polar", + "pony", + "portugol", + "posh", + "postcss", + "postscr", + "postscript", + "pot", + "pov-ray", + "pov-ray sdl", + "povray", + "powerbuilder", + "powershell", + "praat", + "prisma", + "processing", + "procfile", + "progress", + "proguard", + "prolog", + "promela", + "propeller spin", + "proto", + "protobuf", + "protobuf text format", + "protocol buffer", + "protocol buffer text format", + "public key", + "pug", + "puppet", + "pure data", + "purebasic", + "purescript", + "pwsh", + "pycon", + "pyret", + "pyrex", + "python", + "python console", + "python traceback", + "python3", + "q", + "q#", + "ql", + "qmake", + "qml", + "qsharp", + "qt script", + "quake", + "r", + "racket", + "ragel", + "ragel-rb", + "ragel-ruby", + "rake", + "raku", + "raml", + "rascal", + "raw", + "raw token data", + "razor", + "rb", + "rbs", + "rbx", + "rdoc", + "reStructuredText", + "readline", + "readline config", + "realbasic", + "reason", + "reasonligo", + "rebol", + "record jar", + "red", + "red/system", + "redcode", + "redirect rules", + "redirects", + "regex", + "regexp", + "regular expression", + "ren'py", + "renderscript", + "renpy", + "rescript", + "restructuredtext", + "rexx", + "rez", + "rhtml", + "rich text format", + "ring", + "riot", + "rmarkdown", + "robotframework", + "robots", + "robots txt", + "robots.txt", + "roff", + "roff manpage", + "rouge", + "routeros script", + "rpc", + "rpcgen", + "rpgle", + "rpm spec", + "rs", + "rs-274x", + "rss", + "rst", + "ruby", + "runoff", + "rust", + "rusthon", + "sage", + "salt", + "saltstack", + "saltstate", + "sas", + "sass", + "scala", + "scaml", + "scenic", + "scheme", + "scilab", + "scss", + "sdc", + "sed", + "self", + "selinux policy", + "sepolicy", + "sfv", + "sh", + "shaderlab", + "shell", + "shell-script", + "shellcheck config", + "shellcheckrc", + "shellsession", + "shen", + "sieve", + "simple file verification", + "singularity", + "slash", + "slice", + "slim", + "smali", + "smalltalk", + "smarty", + "smithy", + "sml", + "smpl", + "smt", + "snakefile", + "snakemake", + "snippet", + "solidity", + "soong", + "sourcemod", + "sourcepawn", + "soy", + "sparql", + "specfile", + "spline font database", + "splus", + "sqf", + "sql", + "sqlpl", + "sqlrpgle", + "squeak", + "squirrel", + "srecode template", + "ssh config", + "stan", + "standard ml", + "star", + "starlark", + "stata", + "stl", + "stla", + "ston", + "stringtemplate", + "stylus", + "subrip text", + "sugarss", + "sum", + "sums", + "supercollider", + "svelte", + "svg", + "sway", + "sweave", + "swift", + "swig", + "systemverilog", + "talon", + "tcl", + "tcsh", + "tea", + "terra", + "terraform", + "terraform template", + "tex", + "texinfo", + "text", + "text proto", + "textile", + "textmate properties", + "thrift", + "ti program", + "tl", + "tl-verilog", + "tla", + "tm-properties", + "toit", + "toml", + "topojson", + "troff", + "ts", + "tsql", + "tsv", + "tsx", + "turing", + "turtle", + "twig", + "txl", + "typ", + "type language", + "typescript", + "udiff", + "unified parallel c", + "unity3d asset", + "unix asm", + "unix assembly", + "uno", + "unrealscript", + "urweb", + "v", + "vala", + "valve data format", + "vb .net", + "vb 6", + "vb.net", + "vb6", + "vba", + "vbnet", + "vbscript", + "vcl", + "vdf", + "velocity", + "velocity template language", + "verilog", + "vhdl", + "vim", + "vim help file", + "vim script", + "vim snippet", + "vimhelp", + "viml", + "visual basic", + "visual basic .net", + "visual basic 6", + "visual basic 6.0", + "visual basic classic", + "visual basic for applications", + "vlang", + "volt", + "vtl", + "vtt", + "vue", + "vyper", + "wasm", + "wast", + "wavefront material", + "wavefront object", + "wdl", + "web ontology language", + "webassembly", + "webassembly interface type", + "webidl", + "webvtt", + "wget config", + "wgetrc", + "wgsl", + "whiley", + "wiki", + "wikitext", + "win32 message file", + "winbatch", + "windows registry entries", + "wisp", + "wit", + "witcher script", + "wl", + "wolfram", + "wolfram lang", + "wolfram language", + "wollok", + "world of warcraft addon data", + "wren", + "wrenlang", + "wsdl", + "x bitmap", + "x font directory index", + "x pixmap", + "x10", + "xBase", + "xbase", + "xbm", + "xc", + "xcompose", + "xdc", + "xdr", + "xhtml", + "xml", + "xml property list", + "xml+genshi", + "xml+kid", + "xojo", + "xonsh", + "xpages", + "xpm", + "xproc", + "xquery", + "xs", + "xsd", + "xsl", + "xslt", + "xten", + "xtend", + "yacc", + "yaml", + "yang", + "yara", + "yas", + "yasnippet", + "yml", + "yul", + "zap", + "zeek", + "zenscript", + "zephir", + "zig", + "zil", + "zimpl", + "zsh" + ] + } + }, + "additionalProperties": false + }, + "validations": { + "$ref": "#/definitions/validations", + "title": "textarea validations", + "description": "Textarea validations\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#validations" + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "input" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "input", + "description": "Input\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#input", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "An input id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "input attributes", + "description": "Input attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2", + "type": "object", + "required": ["label"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short input description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long input description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + }, + "placeholder": { + "$ref": "#/definitions/placeholder", + "description": "An input placeholder\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + }, + "value": { + "$ref": "#/definitions/value", + "description": "An input value\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-2" + } + }, + "additionalProperties": false + }, + "validations": { + "$ref": "#/definitions/validations", + "title": "input validations", + "description": "Input validations\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#validations-1" + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "dropdown" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "dropdown", + "description": "dropdown\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#dropdown", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "A dropdown id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "dropdown attributes", + "description": "Dropdown attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "object", + "required": ["label", "options"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short dropdown description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long dropdown description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3" + }, + "multiple": { + "description": "Specify whether allow a multiple choices\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "boolean", + "default": false + }, + "options": { + "description": "Dropdown choices\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": ["Sample choice"] + } + }, + "default": { + "description": "Index of the default option\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-3", + "type": "integer", + "examples": [0] + } + }, + "additionalProperties": false + }, + "validations": { + "$ref": "#/definitions/validations", + "title": "dropdown validations", + "description": "Dropdown validations\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#validations-2" + } + }, + "additionalProperties": false + } + }, + { + "if": { + "properties": { + "type": { + "const": "checkboxes" + } + } + }, + "then": { + "$comment": "For `additionalProperties` to work `type` must also be present here.", + "title": "checkboxes", + "description": "Checkboxes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#checkboxes", + "type": "object", + "required": ["type", "attributes"], + "properties": { + "type": { + "$ref": "#/definitions/type" + }, + "id": { + "$ref": "#/definitions/id", + "description": "Checkbox list id\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#keys" + }, + "attributes": { + "title": "checkbox list attributes", + "description": "Checkbox list attributes\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "object", + "required": ["label", "options"], + "properties": { + "label": { + "$ref": "#/definitions/label", + "description": "A short checkbox list description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4" + }, + "description": { + "$ref": "#/definitions/description", + "description": "A long checkbox list description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4" + }, + "options": { + "description": "Checkbox list choices\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "array", + "minItems": 1, + "items": { + "title": "checkbox list choice", + "description": "Checkbox list choice\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "object", + "required": ["label"], + "properties": { + "label": { + "description": "A short checkbox list choice description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "string", + "minLength": 1, + "examples": ["Sample label"] + }, + "required": { + "description": "Specify whether a choice is required\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema#attributes-4", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + } + ] + } + }, + "properties": { + "name": { + "description": "An issue template name\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "string", + "minLength": 1, + "examples": ["Sample name"] + }, + "description": { + "description": "An issue template description\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "string", + "minLength": 1, + "examples": ["Sample description"] + }, + "title": { + "description": "An issue template title\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "string", + "minLength": 1, + "examples": ["Sample title", "Bug: ", "Feature: "] + }, + "labels": { + "description": "An issue template labels\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "oneOf": [ + { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "examples": [ + "Sample label", + "bug", + "documentation", + "duplicate", + "enhancement", + "good first issue", + "help wanted", + "invalid", + "question", + "wontfix" + ] + } + }, + { + "description": "Comma-delimited labels", + "type": "string", + "minLength": 1, + "examples": ["Sample label", "bug,documentation,duplicate"] + } + ] + }, + "projects": { + "description": "Projects that any issues created with this template will automatically be added to.", + "type": "array", + "items": { + "type": "string" + } + }, + "assignees": { + "description": "An issue template assignees\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "oneOf": [ + { + "$ref": "#/definitions/assignee" + }, + { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/assignee" + } + } + ] + }, + "type": { + "description": "An issue type, currently in beta\nhttps://github.com/orgs/community/discussions/139933", + "type": "string", + "minLength": 1, + "examples": ["Bug", "Enhancement"] + }, + "body": { + "description": "An issue template body\nhttps://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#top-level-syntax", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/form_item" + } + } + }, + "required": ["name", "description", "body"], + "title": "GitHub issue forms config file schema", + "type": "object" +} diff --git a/tests/testdata/json_schemastore_launchsettings_scalar/expected.json b/tests/testdata/json_schemastore_launchsettings_scalar/expected.json new file mode 100644 index 0000000..3cd52f3 --- /dev/null +++ b/tests/testdata/json_schemastore_launchsettings_scalar/expected.json @@ -0,0 +1,1027 @@ +{ + "version": "v1", + "actions": [ + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 4, + 1, + 0, + 1, + 0, + 1, + 2, + 1, + 9 + ], + "type": "string", + "label": "\"WSL\"", + "start_byte": 2288, + "end_byte": 2293 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 2, + 1, + 4, + 1, + 0, + 1, + 0, + 1, + 2, + 1 + ], + "type": "array", + "start_byte": 2038, + "end_byte": 2325 + }, + "position": 9 + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": -1, + "right_line": 85 + }, + { + "left_line": 85, + "right_line": 86 + }, + { + "left_line": 86, + "right_line": 87 + }, + { + "left_line": 87, + "right_line": 88 + }, + { + "left_line": 88, + "right_line": 89 + }, + { + "left_line": 89, + "right_line": 90 + }, + { + "left_line": 90, + "right_line": 91 + }, + { + "left_line": 91, + "right_line": 92 + }, + { + "left_line": 92, + "right_line": 93 + }, + { + "left_line": 93, + "right_line": 94 + }, + { + "left_line": 94, + "right_line": 95 + }, + { + "left_line": 95, + "right_line": 96 + }, + { + "left_line": 96, + "right_line": 97 + }, + { + "left_line": 97, + "right_line": 98 + }, + { + "left_line": 98, + "right_line": 99 + }, + { + "left_line": 99, + "right_line": 100 + }, + { + "left_line": 100, + "right_line": 101 + }, + { + "left_line": 101, + "right_line": 102 + }, + { + "left_line": 102, + "right_line": 103 + }, + { + "left_line": 103, + "right_line": 104 + }, + { + "left_line": 104, + "right_line": 105 + }, + { + "left_line": 105, + "right_line": 106 + }, + { + "left_line": 106, + "right_line": 107 + }, + { + "left_line": 107, + "right_line": 108 + }, + { + "left_line": 108, + "right_line": 109 + }, + { + "left_line": 109, + "right_line": 110 + }, + { + "left_line": 110, + "right_line": 111 + }, + { + "left_line": 111, + "right_line": 112 + }, + { + "left_line": 112, + "right_line": 113 + }, + { + "left_line": 113, + "right_line": 114 + }, + { + "left_line": 114, + "right_line": 115 + }, + { + "left_line": 115, + "right_line": 116 + }, + { + "left_line": 116, + "right_line": 117 + }, + { + "left_line": 117, + "right_line": 118 + }, + { + "left_line": 118, + "right_line": 119 + }, + { + "left_line": 119, + "right_line": 120 + }, + { + "left_line": 120, + "right_line": 121 + }, + { + "left_line": 121, + "right_line": 122 + }, + { + "left_line": 122, + "right_line": 123 + }, + { + "left_line": 123, + "right_line": 124 + }, + { + "left_line": 124, + "right_line": 125 + }, + { + "left_line": 125, + "right_line": 126 + }, + { + "left_line": 126, + "right_line": 127 + }, + { + "left_line": 127, + "right_line": 128 + }, + { + "left_line": 128, + "right_line": 129 + }, + { + "left_line": 129, + "right_line": 130 + }, + { + "left_line": 130, + "right_line": 131 + }, + { + "left_line": 131, + "right_line": 132 + }, + { + "left_line": 132, + "right_line": 133 + }, + { + "left_line": 133, + "right_line": 134 + }, + { + "left_line": 134, + "right_line": 135 + }, + { + "left_line": 135, + "right_line": 136 + }, + { + "left_line": 136, + "right_line": 137 + }, + { + "left_line": 137, + "right_line": 138 + }, + { + "left_line": 138, + "right_line": 139 + }, + { + "left_line": 139, + "right_line": 140 + }, + { + "left_line": 140, + "right_line": 141 + }, + { + "left_line": 141, + "right_line": 142 + }, + { + "left_line": 142, + "right_line": 143 + }, + { + "left_line": 143, + "right_line": 144 + }, + { + "left_line": 144, + "right_line": 145 + }, + { + "left_line": 145, + "right_line": 146 + }, + { + "left_line": 146, + "right_line": 147 + }, + { + "left_line": 147, + "right_line": 148 + }, + { + "left_line": 148, + "right_line": 149 + }, + { + "left_line": 149, + "right_line": 150 + }, + { + "left_line": 150, + "right_line": 151 + }, + { + "left_line": 151, + "right_line": 152 + }, + { + "left_line": 152, + "right_line": 153 + }, + { + "left_line": 153, + "right_line": 154 + }, + { + "left_line": 154, + "right_line": 155 + }, + { + "left_line": 155, + "right_line": 156 + }, + { + "left_line": 156, + "right_line": 157 + }, + { + "left_line": 157, + "right_line": 158 + }, + { + "left_line": 158, + "right_line": 159 + }, + { + "left_line": 159, + "right_line": 160 + }, + { + "left_line": 160, + "right_line": 161 + }, + { + "left_line": 161, + "right_line": 162 + }, + { + "left_line": 162, + "right_line": 163 + }, + { + "left_line": 163, + "right_line": 164 + }, + { + "left_line": 164, + "right_line": 165 + }, + { + "left_line": 165, + "right_line": 166 + }, + { + "left_line": 166, + "right_line": 167 + }, + { + "left_line": 167, + "right_line": 168 + }, + { + "left_line": 168, + "right_line": 169 + }, + { + "left_line": 169, + "right_line": 170 + }, + { + "left_line": 170, + "right_line": 171 + }, + { + "left_line": 171, + "right_line": 172 + }, + { + "left_line": 172, + "right_line": 173 + }, + { + "left_line": 173, + "right_line": 174 + }, + { + "left_line": 174, + "right_line": 175 + }, + { + "left_line": 175, + "right_line": 176 + }, + { + "left_line": 176, + "right_line": 177 + }, + { + "left_line": 177, + "right_line": 178 + }, + { + "left_line": 178, + "right_line": 179 + }, + { + "left_line": 179, + "right_line": 180 + }, + { + "left_line": 180, + "right_line": 181 + }, + { + "left_line": 181, + "right_line": 182 + }, + { + "left_line": 182, + "right_line": 183 + }, + { + "left_line": 183, + "right_line": 184 + }, + { + "left_line": 184, + "right_line": 185 + }, + { + "left_line": 185, + "right_line": 186 + }, + { + "left_line": 186, + "right_line": 187 + }, + { + "left_line": 187, + "right_line": 188 + }, + { + "left_line": 188, + "right_line": 189 + }, + { + "left_line": 189, + "right_line": 190 + }, + { + "left_line": 190, + "right_line": 191 + }, + { + "left_line": 191, + "right_line": 192 + }, + { + "left_line": 192, + "right_line": 193 + }, + { + "left_line": 193, + "right_line": 194 + }, + { + "left_line": 194, + "right_line": 195 + }, + { + "left_line": 195, + "right_line": 196 + }, + { + "left_line": 196, + "right_line": 197 + }, + { + "left_line": 197, + "right_line": 198 + }, + { + "left_line": 198, + "right_line": 199 + }, + { + "left_line": 199, + "right_line": 200 + }, + { + "left_line": 200, + "right_line": 201 + }, + { + "left_line": 201, + "right_line": 202 + }, + { + "left_line": 202, + "right_line": 203 + }, + { + "left_line": 203, + "right_line": 204 + }, + { + "left_line": 204, + "right_line": 205 + }, + { + "left_line": 205, + "right_line": 206 + }, + { + "left_line": 206, + "right_line": 207 + }, + { + "left_line": 207, + "right_line": 208 + }, + { + "left_line": 208, + "right_line": 209 + }, + { + "left_line": 209, + "right_line": 210 + }, + { + "left_line": 210, + "right_line": 211 + }, + { + "left_line": 211, + "right_line": 212 + }, + { + "left_line": 212, + "right_line": 213 + }, + { + "left_line": 213, + "right_line": 214 + }, + { + "left_line": 214, + "right_line": 215 + }, + { + "left_line": 215, + "right_line": 216 + }, + { + "left_line": 216, + "right_line": 217 + }, + { + "left_line": 217, + "right_line": 218 + }, + { + "left_line": 218, + "right_line": 219 + }, + { + "left_line": 219, + "right_line": 220 + }, + { + "left_line": 220, + "right_line": 221 + }, + { + "left_line": 221, + "right_line": 222 + }, + { + "left_line": 222, + "right_line": 223 + }, + { + "left_line": 223, + "right_line": 224 + }, + { + "left_line": 224, + "right_line": 225 + }, + { + "left_line": 225, + "right_line": 226 + }, + { + "left_line": 226, + "right_line": 227 + }, + { + "left_line": 227, + "right_line": 228 + }, + { + "left_line": 228, + "right_line": 229 + }, + { + "left_line": 229, + "right_line": 230 + }, + { + "left_line": 230, + "right_line": 231 + }, + { + "left_line": 231, + "right_line": 232 + }, + { + "left_line": 232, + "right_line": 233 + }, + { + "left_line": 233, + "right_line": 234 + }, + { + "left_line": 234, + "right_line": 235 + }, + { + "left_line": 235, + "right_line": 236 + }, + { + "left_line": 236, + "right_line": 237 + }, + { + "left_line": 237, + "right_line": 238 + }, + { + "left_line": 238, + "right_line": 239 + }, + { + "left_line": 239, + "right_line": 240 + }, + { + "left_line": 240, + "right_line": 241 + }, + { + "left_line": 241, + "right_line": 242 + }, + { + "left_line": 242, + "right_line": 243 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_launchsettings_scalar/metadata.json b/tests/testdata/json_schemastore_launchsettings_scalar/metadata.json new file mode 100644 index 0000000..2944700 --- /dev/null +++ b/tests/testdata/json_schemastore_launchsettings_scalar/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "00e9d3a735ffddbb541e7cef9aeecc0582d3114b", + "description": "Update launchsettings scalar property", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_launchsettings_scalar/new.json b/tests/testdata/json_schemastore_launchsettings_scalar/new.json new file mode 100644 index 0000000..1b23724 --- /dev/null +++ b/tests/testdata/json_schemastore_launchsettings_scalar/new.json @@ -0,0 +1,243 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "allowTrailingCommas": true, + "definitions": { + "profile": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/profileContent" + } + ], + "required": ["commandName"] + }, + "iisSetting": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/iisSettingContent" + } + ] + }, + "iisSettingContent": { + "properties": { + "windowsAuthentication": { + "type": "boolean", + "description": "Set to true to enable windows authentication for your site in IIS and IIS Express.", + "default": false + }, + "anonymousAuthentication": { + "type": "boolean", + "description": "Set to true to enable anonymous authentication for your site in IIS and IIS Express.", + "default": true + }, + "iisExpress": { + "type": "object", + "description": "Site settings to use with IISExpress profiles.", + "allOf": [ + { + "$ref": "#/definitions/iisBindingContent" + } + ] + }, + "iis": { + "type": "object", + "description": "Site settings to use with IIS profiles.", + "allOf": [ + { + "$ref": "#/definitions/iisBindingContent" + } + ] + } + } + }, + "iisBindingContent": { + "properties": { + "applicationUrl": { + "type": "string", + "format": "uri", + "description": "The URL of the web site.", + "default": "" + }, + "sslPort": { + "type": "integer", + "maximum": 65535, + "minimum": 0, + "description": "The SSL port to use for the web site.", + "default": 0 + } + } + }, + "profileContent": { + "properties": { + "commandName": { + "type": "string", + "description": "Identifies the debug target to run.", + "enum": [ + "Executable", + "Project", + "IIS", + "IISExpress", + "DebugRoslynComponent", + "Docker", + "DockerCompose", + "MsixPackage", + "SdkContainer", + "WSL", + "WSL2" + ], + "default": "", + "minLength": 1 + }, + "commandLineArgs": { + "type": "string", + "description": "The arguments to pass to the target being run.", + "default": "" + }, + "executablePath": { + "type": "string", + "description": "An absolute or relative path to the executable.", + "default": "" + }, + "workingDirectory": { + "type": "string", + "description": "Sets the working directory of the command." + }, + "launchBrowser": { + "type": "boolean", + "description": "Set to true if the browser should be launched.", + "default": false + }, + "launchUrl": { + "type": "string", + "description": "The relative URL to launch in the browser." + }, + "environmentVariables": { + "type": "object", + "description": "Set the environment variables as key/value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "applicationUrl": { + "type": "string", + "description": "A semi-colon delimited list of URL(s) to configure for the web server." + }, + "nativeDebugging": { + "type": "boolean", + "description": "Set to true to enable native code debugging.", + "default": false + }, + "externalUrlConfiguration": { + "type": "boolean", + "description": "Set to true to disable configuration of the site when running the Asp.Net Core Project profile.", + "default": false + }, + "use64Bit": { + "type": "boolean", + "description": "Set to true to run the 64 bit version of IIS Express, false to run the x86 version.", + "default": true + }, + "ancmHostingModel": { + "enum": ["InProcess", "OutOfProcess"], + "description": "Specifies the hosting model to use when running ASP.NET core projects in IIS and IIS Express.", + "default": false + }, + "sqlDebugging": { + "type": "boolean", + "description": "Set to true to enable debugging of SQL scripts and stored procedures.", + "default": false + }, + "jsWebView2Debugging": { + "type": "boolean", + "description": "Set to true to enable the JavaScript debugger for Microsoft Edge (Chromium) based WebView2.", + "default": false + }, + "leaveRunningOnClose": { + "type": "boolean", + "description": "Set to true to leave the IIS application pool running when the project is closed.", + "default": false + }, + "remoteDebugEnabled": { + "type": "boolean", + "description": "Set to true to have the debugger attach to a process on a remote computer.", + "default": false + }, + "remoteDebugMachine": { + "type": "string", + "description": "The name and port number of the remote machine in name:port format." + }, + "authenticationMode": { + "enum": ["None", "Windows"], + "description": "The authentication scheme to use when connecting to the remote computer.", + "default": "None" + }, + "hotReloadEnabled": { + "type": "boolean", + "description": "Set to true to enable applying code changes to the running application.", + "default": true + }, + "publishAllPorts": { + "type": "boolean", + "description": "Publish all exposed ports to random ports in Docker (-P).", + "default": true + }, + "useSSL": { + "type": "boolean", + "description": "Set to true to bind the SSL port.", + "default": true + }, + "sslPort": { + "type": "integer", + "maximum": 65535, + "minimum": 0, + "description": "The SSL port to use for the web site.", + "default": 0 + }, + "httpPort": { + "type": "integer", + "maximum": 65535, + "minimum": 0, + "description": "The HTTP port to use for the web site.", + "default": 0 + }, + "dotnetRunMessages": { + "type": "boolean", + "description": "Set to true to display a message when the project is building.", + "default": true + }, + "inspectUri": { + "type": "string", + "description": "The url to enable debugging on a Blazor WebAssembly application.", + "default": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}" + }, + "targetProject": { + "type": "string", + "description": "A relative or absolute path to the .NET project file on which Roslyn component should be executed. Relative to the current project's folder.", + "default": "" + } + } + } + }, + "id": "https://json.schemastore.org/launchsettings.json", + "properties": { + "profiles": { + "type": "object", + "description": "A list of debug profiles", + "additionalProperties": { + "$ref": "#/definitions/profile" + } + }, + "iisSettings": { + "type": "object", + "description": "IIS and IIS Express settings", + "allOf": [ + { + "$ref": "#/definitions/iisSettingContent" + } + ] + } + }, + "title": "JSON schema for the Visual Studio LaunchSettings.json file.", + "type": "object" +} diff --git a/tests/testdata/json_schemastore_launchsettings_scalar/old.json b/tests/testdata/json_schemastore_launchsettings_scalar/old.json new file mode 100644 index 0000000..cdd0850 --- /dev/null +++ b/tests/testdata/json_schemastore_launchsettings_scalar/old.json @@ -0,0 +1,242 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "allowTrailingCommas": true, + "definitions": { + "profile": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/profileContent" + } + ], + "required": ["commandName"] + }, + "iisSetting": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/iisSettingContent" + } + ] + }, + "iisSettingContent": { + "properties": { + "windowsAuthentication": { + "type": "boolean", + "description": "Set to true to enable windows authentication for your site in IIS and IIS Express.", + "default": false + }, + "anonymousAuthentication": { + "type": "boolean", + "description": "Set to true to enable anonymous authentication for your site in IIS and IIS Express.", + "default": true + }, + "iisExpress": { + "type": "object", + "description": "Site settings to use with IISExpress profiles.", + "allOf": [ + { + "$ref": "#/definitions/iisBindingContent" + } + ] + }, + "iis": { + "type": "object", + "description": "Site settings to use with IIS profiles.", + "allOf": [ + { + "$ref": "#/definitions/iisBindingContent" + } + ] + } + } + }, + "iisBindingContent": { + "properties": { + "applicationUrl": { + "type": "string", + "format": "uri", + "description": "The URL of the web site.", + "default": "" + }, + "sslPort": { + "type": "integer", + "maximum": 65535, + "minimum": 0, + "description": "The SSL port to use for the web site.", + "default": 0 + } + } + }, + "profileContent": { + "properties": { + "commandName": { + "type": "string", + "description": "Identifies the debug target to run.", + "enum": [ + "Executable", + "Project", + "IIS", + "IISExpress", + "DebugRoslynComponent", + "Docker", + "DockerCompose", + "MsixPackage", + "SdkContainer", + "WSL2" + ], + "default": "", + "minLength": 1 + }, + "commandLineArgs": { + "type": "string", + "description": "The arguments to pass to the target being run.", + "default": "" + }, + "executablePath": { + "type": "string", + "description": "An absolute or relative path to the executable.", + "default": "" + }, + "workingDirectory": { + "type": "string", + "description": "Sets the working directory of the command." + }, + "launchBrowser": { + "type": "boolean", + "description": "Set to true if the browser should be launched.", + "default": false + }, + "launchUrl": { + "type": "string", + "description": "The relative URL to launch in the browser." + }, + "environmentVariables": { + "type": "object", + "description": "Set the environment variables as key/value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "applicationUrl": { + "type": "string", + "description": "A semi-colon delimited list of URL(s) to configure for the web server." + }, + "nativeDebugging": { + "type": "boolean", + "description": "Set to true to enable native code debugging.", + "default": false + }, + "externalUrlConfiguration": { + "type": "boolean", + "description": "Set to true to disable configuration of the site when running the Asp.Net Core Project profile.", + "default": false + }, + "use64Bit": { + "type": "boolean", + "description": "Set to true to run the 64 bit version of IIS Express, false to run the x86 version.", + "default": true + }, + "ancmHostingModel": { + "enum": ["InProcess", "OutOfProcess"], + "description": "Specifies the hosting model to use when running ASP.NET core projects in IIS and IIS Express.", + "default": false + }, + "sqlDebugging": { + "type": "boolean", + "description": "Set to true to enable debugging of SQL scripts and stored procedures.", + "default": false + }, + "jsWebView2Debugging": { + "type": "boolean", + "description": "Set to true to enable the JavaScript debugger for Microsoft Edge (Chromium) based WebView2.", + "default": false + }, + "leaveRunningOnClose": { + "type": "boolean", + "description": "Set to true to leave the IIS application pool running when the project is closed.", + "default": false + }, + "remoteDebugEnabled": { + "type": "boolean", + "description": "Set to true to have the debugger attach to a process on a remote computer.", + "default": false + }, + "remoteDebugMachine": { + "type": "string", + "description": "The name and port number of the remote machine in name:port format." + }, + "authenticationMode": { + "enum": ["None", "Windows"], + "description": "The authentication scheme to use when connecting to the remote computer.", + "default": "None" + }, + "hotReloadEnabled": { + "type": "boolean", + "description": "Set to true to enable applying code changes to the running application.", + "default": true + }, + "publishAllPorts": { + "type": "boolean", + "description": "Publish all exposed ports to random ports in Docker (-P).", + "default": true + }, + "useSSL": { + "type": "boolean", + "description": "Set to true to bind the SSL port.", + "default": true + }, + "sslPort": { + "type": "integer", + "maximum": 65535, + "minimum": 0, + "description": "The SSL port to use for the web site.", + "default": 0 + }, + "httpPort": { + "type": "integer", + "maximum": 65535, + "minimum": 0, + "description": "The HTTP port to use for the web site.", + "default": 0 + }, + "dotnetRunMessages": { + "type": "boolean", + "description": "Set to true to display a message when the project is building.", + "default": true + }, + "inspectUri": { + "type": "string", + "description": "The url to enable debugging on a Blazor WebAssembly application.", + "default": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}" + }, + "targetProject": { + "type": "string", + "description": "A relative or absolute path to the .NET project file on which Roslyn component should be executed. Relative to the current project's folder.", + "default": "" + } + } + } + }, + "id": "https://json.schemastore.org/launchsettings.json", + "properties": { + "profiles": { + "type": "object", + "description": "A list of debug profiles", + "additionalProperties": { + "$ref": "#/definitions/profile" + } + }, + "iisSettings": { + "type": "object", + "description": "IIS and IIS Express settings", + "allOf": [ + { + "$ref": "#/definitions/iisSettingContent" + } + ] + } + }, + "title": "JSON schema for the Visual Studio LaunchSettings.json file.", + "type": "object" +} diff --git a/tests/testdata/json_schemastore_pyproject_schema_key/expected.json b/tests/testdata/json_schemastore_pyproject_schema_key/expected.json new file mode 100644 index 0000000..f477b67 --- /dev/null +++ b/tests/testdata/json_schemastore_pyproject_schema_key/expected.json @@ -0,0 +1,4388 @@ +{ + "version": "v1", + "actions": [ + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 8, + 1, + 3, + 1, + 9, + 1, + 18, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://json.schemastore.org/partial-tox.json\"", + "start_byte": 53210, + "end_byte": 53257 + }, + "old_value": "\"https://json.schemastore.org/partial-tox.json\"", + "new_value": "\"https://json.schemastore.org/tox.json\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 8, + 1, + 3, + 1, + 9, + 1, + 18, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://json.schemastore.org/tox.json\"", + "start_byte": 53210, + "end_byte": 53249 + } + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": 334, + "right_line": 334 + }, + { + "left_line": 335, + "right_line": 335 + }, + { + "left_line": 336, + "right_line": 336 + }, + { + "left_line": 337, + "right_line": 337 + }, + { + "left_line": 338, + "right_line": 338 + }, + { + "left_line": 339, + "right_line": 339 + }, + { + "left_line": 340, + "right_line": 340 + }, + { + "left_line": 341, + "right_line": 341 + }, + { + "left_line": 342, + "right_line": 342 + }, + { + "left_line": 343, + "right_line": 343 + }, + { + "left_line": 344, + "right_line": 344 + }, + { + "left_line": 345, + "right_line": 345 + }, + { + "left_line": 346, + "right_line": 346 + }, + { + "left_line": 347, + "right_line": 347 + }, + { + "left_line": 348, + "right_line": 348 + }, + { + "left_line": 349, + "right_line": 349 + }, + { + "left_line": 350, + "right_line": 350 + }, + { + "left_line": 351, + "right_line": 351 + }, + { + "left_line": 352, + "right_line": 352 + }, + { + "left_line": 353, + "right_line": 353 + }, + { + "left_line": 354, + "right_line": 354 + }, + { + "left_line": 355, + "right_line": 355 + }, + { + "left_line": 356, + "right_line": 356 + }, + { + "left_line": 357, + "right_line": 357 + }, + { + "left_line": 358, + "right_line": 358 + }, + { + "left_line": 359, + "right_line": 359 + }, + { + "left_line": 360, + "right_line": 360 + }, + { + "left_line": 361, + "right_line": 361 + }, + { + "left_line": 362, + "right_line": 362 + }, + { + "left_line": 363, + "right_line": 363 + }, + { + "left_line": 364, + "right_line": 364 + }, + { + "left_line": 365, + "right_line": 365 + }, + { + "left_line": 366, + "right_line": 366 + }, + { + "left_line": 367, + "right_line": 367 + }, + { + "left_line": 368, + "right_line": 368 + }, + { + "left_line": 369, + "right_line": 369 + }, + { + "left_line": 370, + "right_line": 370 + }, + { + "left_line": 371, + "right_line": 371 + }, + { + "left_line": 372, + "right_line": 372 + }, + { + "left_line": 373, + "right_line": 373 + }, + { + "left_line": 374, + "right_line": 374 + }, + { + "left_line": 375, + "right_line": 375 + }, + { + "left_line": 376, + "right_line": 376 + }, + { + "left_line": 377, + "right_line": 377 + }, + { + "left_line": 378, + "right_line": 378 + }, + { + "left_line": 379, + "right_line": 379 + }, + { + "left_line": 380, + "right_line": 380 + }, + { + "left_line": 381, + "right_line": 381 + }, + { + "left_line": 382, + "right_line": 382 + }, + { + "left_line": 383, + "right_line": 383 + }, + { + "left_line": 384, + "right_line": 384 + }, + { + "left_line": 385, + "right_line": 385 + }, + { + "left_line": 386, + "right_line": 386 + }, + { + "left_line": 387, + "right_line": 387 + }, + { + "left_line": 388, + "right_line": 388 + }, + { + "left_line": 389, + "right_line": 389 + }, + { + "left_line": 390, + "right_line": 390 + }, + { + "left_line": 391, + "right_line": 391 + }, + { + "left_line": 392, + "right_line": 392 + }, + { + "left_line": 393, + "right_line": 393 + }, + { + "left_line": 394, + "right_line": 394 + }, + { + "left_line": 395, + "right_line": 395 + }, + { + "left_line": 396, + "right_line": 396 + }, + { + "left_line": 397, + "right_line": 397 + }, + { + "left_line": 398, + "right_line": 398 + }, + { + "left_line": 399, + "right_line": 399 + }, + { + "left_line": 400, + "right_line": 400 + }, + { + "left_line": 401, + "right_line": 401 + }, + { + "left_line": 402, + "right_line": 402 + }, + { + "left_line": 403, + "right_line": 403 + }, + { + "left_line": 404, + "right_line": 404 + }, + { + "left_line": 405, + "right_line": 405 + }, + { + "left_line": 406, + "right_line": 406 + }, + { + "left_line": 407, + "right_line": 407 + }, + { + "left_line": 408, + "right_line": 408 + }, + { + "left_line": 409, + "right_line": 409 + }, + { + "left_line": 410, + "right_line": 410 + }, + { + "left_line": 411, + "right_line": 411 + }, + { + "left_line": 412, + "right_line": 412 + }, + { + "left_line": 413, + "right_line": 413 + }, + { + "left_line": 414, + "right_line": 414 + }, + { + "left_line": 415, + "right_line": 415 + }, + { + "left_line": 416, + "right_line": 416 + }, + { + "left_line": 417, + "right_line": 417 + }, + { + "left_line": 418, + "right_line": 418 + }, + { + "left_line": 419, + "right_line": 419 + }, + { + "left_line": 420, + "right_line": 420 + }, + { + "left_line": 421, + "right_line": 421 + }, + { + "left_line": 422, + "right_line": 422 + }, + { + "left_line": 423, + "right_line": 423 + }, + { + "left_line": 424, + "right_line": 424 + }, + { + "left_line": 425, + "right_line": 425 + }, + { + "left_line": 426, + "right_line": 426 + }, + { + "left_line": 427, + "right_line": 427 + }, + { + "left_line": 428, + "right_line": 428 + }, + { + "left_line": 429, + "right_line": 429 + }, + { + "left_line": 430, + "right_line": 430 + }, + { + "left_line": 431, + "right_line": 431 + }, + { + "left_line": 432, + "right_line": 432 + }, + { + "left_line": 433, + "right_line": 433 + }, + { + "left_line": 434, + "right_line": 434 + }, + { + "left_line": 435, + "right_line": 435 + }, + { + "left_line": 436, + "right_line": 436 + }, + { + "left_line": 437, + "right_line": 437 + }, + { + "left_line": 438, + "right_line": 438 + }, + { + "left_line": 439, + "right_line": 439 + }, + { + "left_line": 440, + "right_line": 440 + }, + { + "left_line": 441, + "right_line": 441 + }, + { + "left_line": 442, + "right_line": 442 + }, + { + "left_line": 443, + "right_line": 443 + }, + { + "left_line": 444, + "right_line": 444 + }, + { + "left_line": 445, + "right_line": 445 + }, + { + "left_line": 446, + "right_line": 446 + }, + { + "left_line": 447, + "right_line": 447 + }, + { + "left_line": 448, + "right_line": 448 + }, + { + "left_line": 449, + "right_line": 449 + }, + { + "left_line": 450, + "right_line": 450 + }, + { + "left_line": 451, + "right_line": 451 + }, + { + "left_line": 452, + "right_line": 452 + }, + { + "left_line": 453, + "right_line": 453 + }, + { + "left_line": 454, + "right_line": 454 + }, + { + "left_line": 455, + "right_line": 455 + }, + { + "left_line": 456, + "right_line": 456 + }, + { + "left_line": 457, + "right_line": 457 + }, + { + "left_line": 458, + "right_line": 458 + }, + { + "left_line": 459, + "right_line": 459 + }, + { + "left_line": 460, + "right_line": 460 + }, + { + "left_line": 461, + "right_line": 461 + }, + { + "left_line": 462, + "right_line": 462 + }, + { + "left_line": 463, + "right_line": 463 + }, + { + "left_line": 464, + "right_line": 464 + }, + { + "left_line": 465, + "right_line": 465 + }, + { + "left_line": 466, + "right_line": 466 + }, + { + "left_line": 467, + "right_line": 467 + }, + { + "left_line": 468, + "right_line": 468 + }, + { + "left_line": 469, + "right_line": 469 + }, + { + "left_line": 470, + "right_line": 470 + }, + { + "left_line": 471, + "right_line": 471 + }, + { + "left_line": 472, + "right_line": 472 + }, + { + "left_line": 473, + "right_line": 473 + }, + { + "left_line": 474, + "right_line": 474 + }, + { + "left_line": 475, + "right_line": 475 + }, + { + "left_line": 476, + "right_line": 476 + }, + { + "left_line": 477, + "right_line": 477 + }, + { + "left_line": 478, + "right_line": 478 + }, + { + "left_line": 479, + "right_line": 479 + }, + { + "left_line": 480, + "right_line": 480 + }, + { + "left_line": 481, + "right_line": 481 + }, + { + "left_line": 482, + "right_line": 482 + }, + { + "left_line": 483, + "right_line": 483 + }, + { + "left_line": 484, + "right_line": 484 + }, + { + "left_line": 485, + "right_line": 485 + }, + { + "left_line": 486, + "right_line": 486 + }, + { + "left_line": 487, + "right_line": 487 + }, + { + "left_line": 488, + "right_line": 488 + }, + { + "left_line": 489, + "right_line": 489 + }, + { + "left_line": 490, + "right_line": 490 + }, + { + "left_line": 491, + "right_line": 491 + }, + { + "left_line": 492, + "right_line": 492 + }, + { + "left_line": 493, + "right_line": 493 + }, + { + "left_line": 494, + "right_line": 494 + }, + { + "left_line": 495, + "right_line": 495 + }, + { + "left_line": 496, + "right_line": 496 + }, + { + "left_line": 497, + "right_line": 497 + }, + { + "left_line": 498, + "right_line": 498 + }, + { + "left_line": 499, + "right_line": 499 + }, + { + "left_line": 500, + "right_line": 500 + }, + { + "left_line": 501, + "right_line": 501 + }, + { + "left_line": 502, + "right_line": 502 + }, + { + "left_line": 503, + "right_line": 503 + }, + { + "left_line": 504, + "right_line": 504 + }, + { + "left_line": 505, + "right_line": 505 + }, + { + "left_line": 506, + "right_line": 506 + }, + { + "left_line": 507, + "right_line": 507 + }, + { + "left_line": 508, + "right_line": 508 + }, + { + "left_line": 509, + "right_line": 509 + }, + { + "left_line": 510, + "right_line": 510 + }, + { + "left_line": 511, + "right_line": 511 + }, + { + "left_line": 512, + "right_line": 512 + }, + { + "left_line": 513, + "right_line": 513 + }, + { + "left_line": 514, + "right_line": 514 + }, + { + "left_line": 515, + "right_line": 515 + }, + { + "left_line": 516, + "right_line": 516 + }, + { + "left_line": 517, + "right_line": 517 + }, + { + "left_line": 518, + "right_line": 518 + }, + { + "left_line": 519, + "right_line": 519 + }, + { + "left_line": 520, + "right_line": 520 + }, + { + "left_line": 521, + "right_line": 521 + }, + { + "left_line": 522, + "right_line": 522 + }, + { + "left_line": 523, + "right_line": 523 + }, + { + "left_line": 524, + "right_line": 524 + }, + { + "left_line": 525, + "right_line": 525 + }, + { + "left_line": 526, + "right_line": 526 + }, + { + "left_line": 527, + "right_line": 527 + }, + { + "left_line": 528, + "right_line": 528 + }, + { + "left_line": 529, + "right_line": 529 + }, + { + "left_line": 530, + "right_line": 530 + }, + { + "left_line": 531, + "right_line": 531 + }, + { + "left_line": 532, + "right_line": 532 + }, + { + "left_line": 533, + "right_line": 533 + }, + { + "left_line": 534, + "right_line": 534 + }, + { + "left_line": 535, + "right_line": 535 + }, + { + "left_line": 536, + "right_line": 536 + }, + { + "left_line": 537, + "right_line": 537 + }, + { + "left_line": 538, + "right_line": 538 + }, + { + "left_line": 539, + "right_line": 539 + }, + { + "left_line": 540, + "right_line": 540 + }, + { + "left_line": 541, + "right_line": 541 + }, + { + "left_line": 542, + "right_line": 542 + }, + { + "left_line": 543, + "right_line": 543 + }, + { + "left_line": 544, + "right_line": 544 + }, + { + "left_line": 545, + "right_line": 545 + }, + { + "left_line": 546, + "right_line": 546 + }, + { + "left_line": 547, + "right_line": 547 + }, + { + "left_line": 548, + "right_line": 548 + }, + { + "left_line": 549, + "right_line": 549 + }, + { + "left_line": 550, + "right_line": 550 + }, + { + "left_line": 551, + "right_line": 551 + }, + { + "left_line": 552, + "right_line": 552 + }, + { + "left_line": 553, + "right_line": 553 + }, + { + "left_line": 554, + "right_line": 554 + }, + { + "left_line": 555, + "right_line": 555 + }, + { + "left_line": 556, + "right_line": 556 + }, + { + "left_line": 557, + "right_line": 557 + }, + { + "left_line": 558, + "right_line": 558 + }, + { + "left_line": 559, + "right_line": 559 + }, + { + "left_line": 560, + "right_line": 560 + }, + { + "left_line": 561, + "right_line": 561 + }, + { + "left_line": 562, + "right_line": 562 + }, + { + "left_line": 563, + "right_line": 563 + }, + { + "left_line": 564, + "right_line": 564 + }, + { + "left_line": 565, + "right_line": 565 + }, + { + "left_line": 566, + "right_line": 566 + }, + { + "left_line": 567, + "right_line": 567 + }, + { + "left_line": 568, + "right_line": 568 + }, + { + "left_line": 569, + "right_line": 569 + }, + { + "left_line": 570, + "right_line": 570 + }, + { + "left_line": 571, + "right_line": 571 + }, + { + "left_line": 572, + "right_line": 572 + }, + { + "left_line": 573, + "right_line": 573 + }, + { + "left_line": 574, + "right_line": 574 + }, + { + "left_line": 575, + "right_line": 575 + }, + { + "left_line": 576, + "right_line": 576 + }, + { + "left_line": 577, + "right_line": 577 + }, + { + "left_line": 578, + "right_line": 578 + }, + { + "left_line": 579, + "right_line": 579 + }, + { + "left_line": 580, + "right_line": 580 + }, + { + "left_line": 581, + "right_line": 581 + }, + { + "left_line": 582, + "right_line": 582 + }, + { + "left_line": 583, + "right_line": 583 + }, + { + "left_line": 584, + "right_line": 584 + }, + { + "left_line": 585, + "right_line": 585 + }, + { + "left_line": 586, + "right_line": 586 + }, + { + "left_line": 587, + "right_line": 587 + }, + { + "left_line": 588, + "right_line": 588 + }, + { + "left_line": 589, + "right_line": 589 + }, + { + "left_line": 590, + "right_line": 590 + }, + { + "left_line": 591, + "right_line": 591 + }, + { + "left_line": 592, + "right_line": 592 + }, + { + "left_line": 593, + "right_line": 593 + }, + { + "left_line": 594, + "right_line": 594 + }, + { + "left_line": 595, + "right_line": 595 + }, + { + "left_line": 596, + "right_line": 596 + }, + { + "left_line": 597, + "right_line": 597 + }, + { + "left_line": 598, + "right_line": 598 + }, + { + "left_line": 599, + "right_line": 599 + }, + { + "left_line": 600, + "right_line": 600 + }, + { + "left_line": 601, + "right_line": 601 + }, + { + "left_line": 602, + "right_line": 602 + }, + { + "left_line": 603, + "right_line": 603 + }, + { + "left_line": 604, + "right_line": 604 + }, + { + "left_line": 605, + "right_line": 605 + }, + { + "left_line": 606, + "right_line": 606 + }, + { + "left_line": 607, + "right_line": 607 + }, + { + "left_line": 608, + "right_line": 608 + }, + { + "left_line": 609, + "right_line": 609 + }, + { + "left_line": 610, + "right_line": 610 + }, + { + "left_line": 611, + "right_line": 611 + }, + { + "left_line": 612, + "right_line": 612 + }, + { + "left_line": 613, + "right_line": 613 + }, + { + "left_line": 614, + "right_line": 614 + }, + { + "left_line": 615, + "right_line": 615 + }, + { + "left_line": 616, + "right_line": 616 + }, + { + "left_line": 617, + "right_line": 617 + }, + { + "left_line": 618, + "right_line": 618 + }, + { + "left_line": 619, + "right_line": 619 + }, + { + "left_line": 620, + "right_line": 620 + }, + { + "left_line": 621, + "right_line": 621 + }, + { + "left_line": 622, + "right_line": 622 + }, + { + "left_line": 623, + "right_line": 623 + }, + { + "left_line": 624, + "right_line": 624 + }, + { + "left_line": 625, + "right_line": 625 + }, + { + "left_line": 626, + "right_line": 626 + }, + { + "left_line": 627, + "right_line": 627 + }, + { + "left_line": 628, + "right_line": 628 + }, + { + "left_line": 629, + "right_line": 629 + }, + { + "left_line": 630, + "right_line": 630 + }, + { + "left_line": 631, + "right_line": 631 + }, + { + "left_line": 632, + "right_line": 632 + }, + { + "left_line": 633, + "right_line": 633 + }, + { + "left_line": 634, + "right_line": 634 + }, + { + "left_line": 635, + "right_line": 635 + }, + { + "left_line": 636, + "right_line": 636 + }, + { + "left_line": 637, + "right_line": 637 + }, + { + "left_line": 638, + "right_line": 638 + }, + { + "left_line": 639, + "right_line": 639 + }, + { + "left_line": 640, + "right_line": 640 + }, + { + "left_line": 641, + "right_line": 641 + }, + { + "left_line": 642, + "right_line": 642 + }, + { + "left_line": 643, + "right_line": 643 + }, + { + "left_line": 644, + "right_line": 644 + }, + { + "left_line": 645, + "right_line": 645 + }, + { + "left_line": 646, + "right_line": 646 + }, + { + "left_line": 647, + "right_line": 647 + }, + { + "left_line": 648, + "right_line": 648 + }, + { + "left_line": 649, + "right_line": 649 + }, + { + "left_line": 650, + "right_line": 650 + }, + { + "left_line": 651, + "right_line": 651 + }, + { + "left_line": 652, + "right_line": 652 + }, + { + "left_line": 653, + "right_line": 653 + }, + { + "left_line": 654, + "right_line": 654 + }, + { + "left_line": 655, + "right_line": 655 + }, + { + "left_line": 656, + "right_line": 656 + }, + { + "left_line": 657, + "right_line": 657 + }, + { + "left_line": 658, + "right_line": 658 + }, + { + "left_line": 659, + "right_line": 659 + }, + { + "left_line": 660, + "right_line": 660 + }, + { + "left_line": 661, + "right_line": 661 + }, + { + "left_line": 662, + "right_line": 662 + }, + { + "left_line": 663, + "right_line": 663 + }, + { + "left_line": 664, + "right_line": 664 + }, + { + "left_line": 665, + "right_line": 665 + }, + { + "left_line": 666, + "right_line": 666 + }, + { + "left_line": 667, + "right_line": 667 + }, + { + "left_line": 668, + "right_line": 668 + }, + { + "left_line": 669, + "right_line": 669 + }, + { + "left_line": 670, + "right_line": 670 + }, + { + "left_line": 671, + "right_line": 671 + }, + { + "left_line": 672, + "right_line": 672 + }, + { + "left_line": 673, + "right_line": 673 + }, + { + "left_line": 674, + "right_line": 674 + }, + { + "left_line": 675, + "right_line": 675 + }, + { + "left_line": 676, + "right_line": 676 + }, + { + "left_line": 677, + "right_line": 677 + }, + { + "left_line": 678, + "right_line": 678 + }, + { + "left_line": 679, + "right_line": 679 + }, + { + "left_line": 680, + "right_line": 680 + }, + { + "left_line": 681, + "right_line": 681 + }, + { + "left_line": 682, + "right_line": 682 + }, + { + "left_line": 683, + "right_line": 683 + }, + { + "left_line": 684, + "right_line": 684 + }, + { + "left_line": 685, + "right_line": 685 + }, + { + "left_line": 686, + "right_line": 686 + }, + { + "left_line": 687, + "right_line": 687 + }, + { + "left_line": 688, + "right_line": 688 + }, + { + "left_line": 689, + "right_line": 689 + }, + { + "left_line": 690, + "right_line": 690 + }, + { + "left_line": 691, + "right_line": 691 + }, + { + "left_line": 692, + "right_line": 692 + }, + { + "left_line": 693, + "right_line": 693 + }, + { + "left_line": 694, + "right_line": 694 + }, + { + "left_line": 695, + "right_line": 695 + }, + { + "left_line": 696, + "right_line": 696 + }, + { + "left_line": 697, + "right_line": 697 + }, + { + "left_line": 698, + "right_line": 698 + }, + { + "left_line": 699, + "right_line": 699 + }, + { + "left_line": 700, + "right_line": 700 + }, + { + "left_line": 701, + "right_line": 701 + }, + { + "left_line": 702, + "right_line": 702 + }, + { + "left_line": 703, + "right_line": 703 + }, + { + "left_line": 704, + "right_line": 704 + }, + { + "left_line": 705, + "right_line": 705 + }, + { + "left_line": 706, + "right_line": 706 + }, + { + "left_line": 707, + "right_line": 707 + }, + { + "left_line": 708, + "right_line": 708 + }, + { + "left_line": 709, + "right_line": 709 + }, + { + "left_line": 710, + "right_line": 710 + }, + { + "left_line": 711, + "right_line": 711 + }, + { + "left_line": 712, + "right_line": 712 + }, + { + "left_line": 713, + "right_line": 713 + }, + { + "left_line": 714, + "right_line": 714 + }, + { + "left_line": 715, + "right_line": 715 + }, + { + "left_line": 716, + "right_line": 716 + }, + { + "left_line": 717, + "right_line": 717 + }, + { + "left_line": 718, + "right_line": 718 + }, + { + "left_line": 719, + "right_line": 719 + }, + { + "left_line": 720, + "right_line": 720 + }, + { + "left_line": 721, + "right_line": 721 + }, + { + "left_line": 722, + "right_line": 722 + }, + { + "left_line": 723, + "right_line": 723 + }, + { + "left_line": 724, + "right_line": 724 + }, + { + "left_line": 725, + "right_line": 725 + }, + { + "left_line": 726, + "right_line": 726 + }, + { + "left_line": 727, + "right_line": 727 + }, + { + "left_line": 728, + "right_line": 728 + }, + { + "left_line": 729, + "right_line": 729 + }, + { + "left_line": 730, + "right_line": 730 + }, + { + "left_line": 731, + "right_line": 731 + }, + { + "left_line": 732, + "right_line": 732 + }, + { + "left_line": 733, + "right_line": 733 + }, + { + "left_line": 734, + "right_line": 734 + }, + { + "left_line": 735, + "right_line": 735 + }, + { + "left_line": 736, + "right_line": 736 + }, + { + "left_line": 737, + "right_line": 737 + }, + { + "left_line": 738, + "right_line": 738 + }, + { + "left_line": 739, + "right_line": 739 + }, + { + "left_line": 740, + "right_line": 740 + }, + { + "left_line": 741, + "right_line": 741 + }, + { + "left_line": 742, + "right_line": 742 + }, + { + "left_line": 743, + "right_line": 743 + }, + { + "left_line": 744, + "right_line": 744 + }, + { + "left_line": 745, + "right_line": 745 + }, + { + "left_line": 746, + "right_line": 746 + }, + { + "left_line": 747, + "right_line": 747 + }, + { + "left_line": 748, + "right_line": 748 + }, + { + "left_line": 749, + "right_line": 749 + }, + { + "left_line": 750, + "right_line": 750 + }, + { + "left_line": 751, + "right_line": 751 + }, + { + "left_line": 752, + "right_line": 752 + }, + { + "left_line": 753, + "right_line": 753 + }, + { + "left_line": 754, + "right_line": 754 + }, + { + "left_line": 755, + "right_line": 755 + }, + { + "left_line": 756, + "right_line": 756 + }, + { + "left_line": 757, + "right_line": 757 + }, + { + "left_line": 758, + "right_line": 758 + }, + { + "left_line": 759, + "right_line": 759 + }, + { + "left_line": 760, + "right_line": 760 + }, + { + "left_line": 761, + "right_line": 761 + }, + { + "left_line": 762, + "right_line": 762 + }, + { + "left_line": 763, + "right_line": 763 + }, + { + "left_line": 764, + "right_line": 764 + }, + { + "left_line": 765, + "right_line": 765 + }, + { + "left_line": 766, + "right_line": 766 + }, + { + "left_line": 767, + "right_line": 767 + }, + { + "left_line": 768, + "right_line": 768 + }, + { + "left_line": 769, + "right_line": 769 + }, + { + "left_line": 770, + "right_line": 770 + }, + { + "left_line": 771, + "right_line": 771 + }, + { + "left_line": 772, + "right_line": 772 + }, + { + "left_line": 773, + "right_line": 773 + }, + { + "left_line": 774, + "right_line": 774 + }, + { + "left_line": 775, + "right_line": 775 + }, + { + "left_line": 776, + "right_line": 776 + }, + { + "left_line": 777, + "right_line": 777 + }, + { + "left_line": 778, + "right_line": 778 + }, + { + "left_line": 779, + "right_line": 779 + }, + { + "left_line": 780, + "right_line": 780 + }, + { + "left_line": 781, + "right_line": 781 + }, + { + "left_line": 782, + "right_line": 782 + }, + { + "left_line": 783, + "right_line": 783 + }, + { + "left_line": 784, + "right_line": 784 + }, + { + "left_line": 785, + "right_line": 785 + }, + { + "left_line": 786, + "right_line": 786 + }, + { + "left_line": 787, + "right_line": 787 + }, + { + "left_line": 788, + "right_line": 788 + }, + { + "left_line": 789, + "right_line": 789 + }, + { + "left_line": 790, + "right_line": 790 + }, + { + "left_line": 791, + "right_line": 791 + }, + { + "left_line": 792, + "right_line": 792 + }, + { + "left_line": 793, + "right_line": 793 + }, + { + "left_line": 794, + "right_line": 794 + }, + { + "left_line": 795, + "right_line": 795 + }, + { + "left_line": 796, + "right_line": 796 + }, + { + "left_line": 797, + "right_line": 797 + }, + { + "left_line": 798, + "right_line": 798 + }, + { + "left_line": 799, + "right_line": 799 + }, + { + "left_line": 800, + "right_line": 800 + }, + { + "left_line": 801, + "right_line": 801 + }, + { + "left_line": 802, + "right_line": 802 + }, + { + "left_line": 803, + "right_line": 803 + }, + { + "left_line": 804, + "right_line": 804 + }, + { + "left_line": 805, + "right_line": 805 + }, + { + "left_line": 806, + "right_line": 806 + }, + { + "left_line": 807, + "right_line": 807 + }, + { + "left_line": 808, + "right_line": 808 + }, + { + "left_line": 809, + "right_line": 809 + }, + { + "left_line": 810, + "right_line": 810 + }, + { + "left_line": 811, + "right_line": 811 + }, + { + "left_line": 812, + "right_line": 812 + }, + { + "left_line": 813, + "right_line": 813 + }, + { + "left_line": 814, + "right_line": 814 + }, + { + "left_line": 815, + "right_line": 815 + }, + { + "left_line": 816, + "right_line": 816 + }, + { + "left_line": 817, + "right_line": 817 + }, + { + "left_line": 818, + "right_line": 818 + }, + { + "left_line": 819, + "right_line": 819 + }, + { + "left_line": 820, + "right_line": 820 + }, + { + "left_line": 821, + "right_line": 821 + }, + { + "left_line": 822, + "right_line": 822 + }, + { + "left_line": 823, + "right_line": 823 + }, + { + "left_line": 824, + "right_line": 824 + }, + { + "left_line": 825, + "right_line": 825 + }, + { + "left_line": 826, + "right_line": 826 + }, + { + "left_line": 827, + "right_line": 827 + }, + { + "left_line": 828, + "right_line": 828 + }, + { + "left_line": 829, + "right_line": 829 + }, + { + "left_line": 830, + "right_line": 830 + }, + { + "left_line": 831, + "right_line": 831 + }, + { + "left_line": 832, + "right_line": 832 + }, + { + "left_line": 833, + "right_line": 833 + }, + { + "left_line": 834, + "right_line": 834 + }, + { + "left_line": 835, + "right_line": 835 + }, + { + "left_line": 836, + "right_line": 836 + }, + { + "left_line": 837, + "right_line": 837 + }, + { + "left_line": 838, + "right_line": 838 + }, + { + "left_line": 839, + "right_line": 839 + }, + { + "left_line": 840, + "right_line": 840 + }, + { + "left_line": 841, + "right_line": 841 + }, + { + "left_line": 842, + "right_line": 842 + }, + { + "left_line": 843, + "right_line": 843 + }, + { + "left_line": 844, + "right_line": 844 + }, + { + "left_line": 845, + "right_line": 845 + }, + { + "left_line": 846, + "right_line": 846 + }, + { + "left_line": 847, + "right_line": 847 + }, + { + "left_line": 848, + "right_line": 848 + }, + { + "left_line": 849, + "right_line": 849 + }, + { + "left_line": 850, + "right_line": 850 + }, + { + "left_line": 851, + "right_line": 851 + }, + { + "left_line": 852, + "right_line": 852 + }, + { + "left_line": 853, + "right_line": 853 + }, + { + "left_line": 854, + "right_line": 854 + }, + { + "left_line": 855, + "right_line": 855 + }, + { + "left_line": 856, + "right_line": 856 + }, + { + "left_line": 857, + "right_line": 857 + }, + { + "left_line": 858, + "right_line": 858 + }, + { + "left_line": 859, + "right_line": 859 + }, + { + "left_line": 860, + "right_line": 860 + }, + { + "left_line": 861, + "right_line": 861 + }, + { + "left_line": 862, + "right_line": 862 + }, + { + "left_line": 863, + "right_line": 863 + }, + { + "left_line": 864, + "right_line": 864 + }, + { + "left_line": 865, + "right_line": 865 + }, + { + "left_line": 866, + "right_line": 866 + }, + { + "left_line": 867, + "right_line": 867 + }, + { + "left_line": 868, + "right_line": 868 + }, + { + "left_line": 869, + "right_line": 869 + }, + { + "left_line": 870, + "right_line": 870 + }, + { + "left_line": 871, + "right_line": 871 + }, + { + "left_line": 872, + "right_line": 872 + }, + { + "left_line": 873, + "right_line": 873 + }, + { + "left_line": 874, + "right_line": 874 + }, + { + "left_line": 875, + "right_line": 875 + }, + { + "left_line": 876, + "right_line": 876 + }, + { + "left_line": 877, + "right_line": 877 + }, + { + "left_line": 878, + "right_line": 878 + }, + { + "left_line": 879, + "right_line": 879 + }, + { + "left_line": 880, + "right_line": 880 + }, + { + "left_line": 881, + "right_line": 881 + }, + { + "left_line": 882, + "right_line": 882 + }, + { + "left_line": 883, + "right_line": 883 + }, + { + "left_line": 884, + "right_line": 884 + }, + { + "left_line": 885, + "right_line": 885 + }, + { + "left_line": 886, + "right_line": 886 + }, + { + "left_line": 887, + "right_line": 887 + }, + { + "left_line": 888, + "right_line": 888 + }, + { + "left_line": 889, + "right_line": 889 + }, + { + "left_line": 890, + "right_line": 890 + }, + { + "left_line": 891, + "right_line": 891 + }, + { + "left_line": 892, + "right_line": 892 + }, + { + "left_line": 893, + "right_line": 893 + }, + { + "left_line": 894, + "right_line": 894 + }, + { + "left_line": 895, + "right_line": 895 + }, + { + "left_line": 896, + "right_line": 896 + }, + { + "left_line": 897, + "right_line": 897 + }, + { + "left_line": 898, + "right_line": 898 + }, + { + "left_line": 899, + "right_line": 899 + }, + { + "left_line": 900, + "right_line": 900 + }, + { + "left_line": 901, + "right_line": 901 + }, + { + "left_line": 902, + "right_line": 902 + }, + { + "left_line": 903, + "right_line": 903 + }, + { + "left_line": 904, + "right_line": 904 + }, + { + "left_line": 905, + "right_line": 905 + }, + { + "left_line": 906, + "right_line": 906 + }, + { + "left_line": 907, + "right_line": 907 + }, + { + "left_line": 908, + "right_line": 908 + }, + { + "left_line": 909, + "right_line": 909 + }, + { + "left_line": 910, + "right_line": 910 + }, + { + "left_line": 911, + "right_line": 911 + }, + { + "left_line": 912, + "right_line": 912 + }, + { + "left_line": 913, + "right_line": 913 + }, + { + "left_line": 914, + "right_line": 914 + }, + { + "left_line": 915, + "right_line": 915 + }, + { + "left_line": 916, + "right_line": 916 + }, + { + "left_line": 917, + "right_line": 917 + }, + { + "left_line": 918, + "right_line": 918 + }, + { + "left_line": 919, + "right_line": 919 + }, + { + "left_line": 920, + "right_line": 920 + }, + { + "left_line": 921, + "right_line": 921 + }, + { + "left_line": 922, + "right_line": 922 + }, + { + "left_line": 923, + "right_line": 923 + }, + { + "left_line": 924, + "right_line": 924 + }, + { + "left_line": 925, + "right_line": 925 + }, + { + "left_line": 926, + "right_line": 926 + }, + { + "left_line": 927, + "right_line": 927 + }, + { + "left_line": 928, + "right_line": 928 + }, + { + "left_line": 929, + "right_line": 929 + }, + { + "left_line": 930, + "right_line": 930 + }, + { + "left_line": 931, + "right_line": 931 + }, + { + "left_line": 932, + "right_line": 932 + }, + { + "left_line": 933, + "right_line": 933 + }, + { + "left_line": 934, + "right_line": 934 + }, + { + "left_line": 935, + "right_line": 935 + }, + { + "left_line": 936, + "right_line": 936 + }, + { + "left_line": 937, + "right_line": 937 + }, + { + "left_line": 938, + "right_line": 938 + }, + { + "left_line": 939, + "right_line": 939 + }, + { + "left_line": 940, + "right_line": 940 + }, + { + "left_line": 941, + "right_line": 941 + }, + { + "left_line": 942, + "right_line": 942 + }, + { + "left_line": 943, + "right_line": 943 + }, + { + "left_line": 944, + "right_line": 944 + }, + { + "left_line": 945, + "right_line": 945 + }, + { + "left_line": 946, + "right_line": 946 + }, + { + "left_line": 947, + "right_line": 947 + }, + { + "left_line": 948, + "right_line": 948 + }, + { + "left_line": 949, + "right_line": 949 + }, + { + "left_line": 950, + "right_line": 950 + }, + { + "left_line": 951, + "right_line": 951 + }, + { + "left_line": 952, + "right_line": 952 + }, + { + "left_line": 953, + "right_line": 953 + }, + { + "left_line": 954, + "right_line": 954 + }, + { + "left_line": 955, + "right_line": 955 + }, + { + "left_line": 956, + "right_line": 956 + }, + { + "left_line": 957, + "right_line": 957 + }, + { + "left_line": 958, + "right_line": 958 + }, + { + "left_line": 959, + "right_line": 959 + }, + { + "left_line": 960, + "right_line": 960 + }, + { + "left_line": 961, + "right_line": 961 + }, + { + "left_line": 962, + "right_line": 962 + }, + { + "left_line": 963, + "right_line": 963 + }, + { + "left_line": 964, + "right_line": 964 + }, + { + "left_line": 965, + "right_line": 965 + }, + { + "left_line": 966, + "right_line": 966 + }, + { + "left_line": 967, + "right_line": 967 + }, + { + "left_line": 968, + "right_line": 968 + }, + { + "left_line": 969, + "right_line": 969 + }, + { + "left_line": 970, + "right_line": 970 + }, + { + "left_line": 971, + "right_line": 971 + }, + { + "left_line": 972, + "right_line": 972 + }, + { + "left_line": 973, + "right_line": 973 + }, + { + "left_line": 974, + "right_line": 974 + }, + { + "left_line": 975, + "right_line": 975 + }, + { + "left_line": 976, + "right_line": 976 + }, + { + "left_line": 977, + "right_line": 977 + }, + { + "left_line": 978, + "right_line": 978 + }, + { + "left_line": 979, + "right_line": 979 + }, + { + "left_line": 980, + "right_line": 980 + }, + { + "left_line": 981, + "right_line": 981 + }, + { + "left_line": 982, + "right_line": 982 + }, + { + "left_line": 983, + "right_line": 983 + }, + { + "left_line": 984, + "right_line": 984 + }, + { + "left_line": 985, + "right_line": 985 + }, + { + "left_line": 986, + "right_line": 986 + }, + { + "left_line": 987, + "right_line": 987 + }, + { + "left_line": 988, + "right_line": 988 + }, + { + "left_line": 989, + "right_line": 989 + }, + { + "left_line": 990, + "right_line": 990 + }, + { + "left_line": 991, + "right_line": 991 + }, + { + "left_line": 992, + "right_line": 992 + }, + { + "left_line": 993, + "right_line": 993 + }, + { + "left_line": 994, + "right_line": 994 + }, + { + "left_line": 995, + "right_line": 995 + }, + { + "left_line": 996, + "right_line": 996 + }, + { + "left_line": 997, + "right_line": 997 + }, + { + "left_line": 998, + "right_line": 998 + }, + { + "left_line": 999, + "right_line": 999 + }, + { + "left_line": 1000, + "right_line": 1000 + }, + { + "left_line": 1001, + "right_line": 1001 + }, + { + "left_line": 1002, + "right_line": 1002 + }, + { + "left_line": 1003, + "right_line": 1003 + }, + { + "left_line": 1004, + "right_line": 1004 + }, + { + "left_line": 1005, + "right_line": 1005 + }, + { + "left_line": 1006, + "right_line": 1006 + }, + { + "left_line": 1007, + "right_line": 1007 + }, + { + "left_line": 1008, + "right_line": 1008 + }, + { + "left_line": 1009, + "right_line": 1009 + }, + { + "left_line": 1010, + "right_line": 1010 + }, + { + "left_line": 1011, + "right_line": 1011 + }, + { + "left_line": 1012, + "right_line": 1012 + }, + { + "left_line": 1013, + "right_line": 1013 + }, + { + "left_line": 1014, + "right_line": 1014 + }, + { + "left_line": 1015, + "right_line": 1015 + }, + { + "left_line": 1016, + "right_line": 1016 + }, + { + "left_line": 1017, + "right_line": 1017 + }, + { + "left_line": 1018, + "right_line": 1018 + }, + { + "left_line": 1019, + "right_line": 1019 + }, + { + "left_line": 1020, + "right_line": 1020 + }, + { + "left_line": 1021, + "right_line": 1021 + }, + { + "left_line": 1022, + "right_line": 1022 + }, + { + "left_line": 1023, + "right_line": 1023 + }, + { + "left_line": 1024, + "right_line": 1024 + }, + { + "left_line": 1025, + "right_line": 1025 + }, + { + "left_line": 1026, + "right_line": 1026 + }, + { + "left_line": 1027, + "right_line": 1027 + }, + { + "left_line": 1028, + "right_line": 1028 + }, + { + "left_line": 1029, + "right_line": 1029 + }, + { + "left_line": 1030, + "right_line": 1030 + }, + { + "left_line": 1031, + "right_line": 1031 + }, + { + "left_line": 1032, + "right_line": 1032 + }, + { + "left_line": 1033, + "right_line": 1033 + }, + { + "left_line": 1034, + "right_line": 1034 + }, + { + "left_line": 1035, + "right_line": 1035 + }, + { + "left_line": 1036, + "right_line": 1036 + }, + { + "left_line": 1037, + "right_line": 1037 + }, + { + "left_line": 1038, + "right_line": 1038 + }, + { + "left_line": 1039, + "right_line": 1039 + }, + { + "left_line": 1040, + "right_line": 1040 + }, + { + "left_line": 1041, + "right_line": 1041 + }, + { + "left_line": 1042, + "right_line": 1042 + }, + { + "left_line": 1043, + "right_line": 1043 + }, + { + "left_line": 1044, + "right_line": 1044 + }, + { + "left_line": 1045, + "right_line": 1045 + }, + { + "left_line": 1046, + "right_line": 1046 + }, + { + "left_line": 1047, + "right_line": 1047 + }, + { + "left_line": 1048, + "right_line": 1048 + }, + { + "left_line": 1049, + "right_line": 1049 + }, + { + "left_line": 1050, + "right_line": 1050 + }, + { + "left_line": 1051, + "right_line": 1051 + }, + { + "left_line": 1052, + "right_line": 1052 + }, + { + "left_line": 1053, + "right_line": 1053 + }, + { + "left_line": 1054, + "right_line": 1054 + }, + { + "left_line": 1055, + "right_line": 1055 + }, + { + "left_line": 1056, + "right_line": 1056 + }, + { + "left_line": 1057, + "right_line": 1057 + }, + { + "left_line": 1058, + "right_line": 1058 + }, + { + "left_line": 1059, + "right_line": 1059 + }, + { + "left_line": 1060, + "right_line": 1060 + }, + { + "left_line": 1061, + "right_line": 1061 + }, + { + "left_line": 1062, + "right_line": 1062 + }, + { + "left_line": 1063, + "right_line": 1063 + }, + { + "left_line": 1064, + "right_line": 1064 + }, + { + "left_line": 1065, + "right_line": 1065 + }, + { + "left_line": 1066, + "right_line": 1066 + }, + { + "left_line": 1067, + "right_line": 1067 + }, + { + "left_line": 1068, + "right_line": 1068 + }, + { + "left_line": 1069, + "right_line": 1069 + }, + { + "left_line": 1070, + "right_line": 1070 + }, + { + "left_line": 1071, + "right_line": 1071 + }, + { + "left_line": 1072, + "right_line": 1072 + }, + { + "left_line": 1073, + "right_line": 1073 + }, + { + "left_line": 1074, + "right_line": 1074 + }, + { + "left_line": 1075, + "right_line": 1075 + }, + { + "left_line": 1076, + "right_line": 1076 + }, + { + "left_line": 1077, + "right_line": 1077 + }, + { + "left_line": 1078, + "right_line": 1078 + }, + { + "left_line": 1079, + "right_line": 1079 + }, + { + "left_line": 1080, + "right_line": 1080 + }, + { + "left_line": 1081, + "right_line": 1081 + }, + { + "left_line": 1082, + "right_line": 1082 + }, + { + "left_line": 1083, + "right_line": 1083 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_pyproject_schema_key/metadata.json b/tests/testdata/json_schemastore_pyproject_schema_key/metadata.json new file mode 100644 index 0000000..c03888b --- /dev/null +++ b/tests/testdata/json_schemastore_pyproject_schema_key/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "c103323db817eaa643d0d6c6e0c9b0abf5878dc7", + "description": "Update pyproject schema reference key", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_pyproject_schema_key/new.json b/tests/testdata/json_schemastore_pyproject_schema_key/new.json new file mode 100644 index 0000000..7c10dd3 --- /dev/null +++ b/tests/testdata/json_schemastore_pyproject_schema_key/new.json @@ -0,0 +1,1083 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/pyproject.json", + "$comment": "there are multiple resources describing pyproject.toml. The canonical reference is at https://packaging.python.org/en/latest/specifications/declaring-project-metadata/, which refers to multiple proposals such as PEP 517, PEP 518 and PEP 621", + "x-tombi-toml-version": "v1.0.0", + "x-tombi-table-keys-order": "schema", + "x-tombi-string-formats": ["email", "uri"], + "additionalProperties": false, + "definitions": { + "importNames": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z_0-9]*(?:\\.[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*;\\s*private)?$" + }, + "x-tombi-array-values-order": "version-sort" + }, + "projectAuthor": { + "type": "object", + "additionalProperties": false, + "anyOf": [ + { + "required": ["name"], + "properties": { + "name": true + } + }, + { + "required": ["email"], + "properties": { + "email": true + } + } + ], + "properties": { + "name": { + "type": "string" + }, + "email": { + "type": "string", + "format": "email" + } + }, + "x-tombi-table-keys-order": "schema" + }, + "BuildSystem": { + "type": "object", + "additionalProperties": false, + "required": ["requires"], + "title": "Project build system configuration", + "description": "Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.", + "markdownDescription": "Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.", + "x-intellij-html-description": "

Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-build-system-dependencies-the-build-system-table" + } + }, + "x-tombi-table-keys-order": "schema", + "properties": { + "requires": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Build system dependencies", + "description": "List of strings following the version specifier specification, representing dependencies required to execute the build system.", + "markdownDescription": "List of strings following the [version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/#version-specifiers), representing dependencies required to execute the build system.", + "x-intellij-html-description": "

List of strings following the version specifier specification, representing dependencies required to execute the build system.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-build-system-dependencies-the-build-system-table" + } + }, + "x-tombi-array-values-order": "version-sort", + "examples": ["setuptools >= 64.0"] + }, + "build-backend": { + "type": "string", + "title": "Name of Python object used to perform the build", + "description": "String is formatted following the same `module:object` syntax as a `setuptools` entry point. It’s also legal to leave out the `:object` part.", + "markdownDescription": "String is formatted following the same `module:object` syntax as a `setuptools` entry point. It’s also legal to leave out the `:object` part.", + "x-intellij-html-description": "

String is formatted following the same module:object syntax as a setuptools entry point. It’s also legal to leave out the :object part.

", + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0517/#source-trees" + } + }, + "examples": ["setuptools.build_meta", "my_build_backend:backend"] + }, + "backend-path": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Build backend directories", + "description": "list of directories to prepend to `sys.path` when loading the build backend, relative to project root", + "markdownDescription": "list of directoriesrepend to `sys.path` when loading the build backend, relative to project root", + "x-intellij-html-description": "

list of directories to prepend to sys.path when loading the build backend, relative to project root

", + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0517/#in-tree-build-backends" + } + }, + "x-tombi-table-keys-order": "version-sort" + } + } + }, + "DependencyGroup": { + "type": "array", + "title": "Dependency specifiers or include groups", + "description": "Each list item should be either:\n- [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/), or\n- table with a single key `include-group` which specifies another group name to include into this one", + "markdownDescription": "Each list item should be either:\n- [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/), or\n- table with a single key `include-group` which specifies another group name to include into this one", + "x-intellij-html-description": "

Each list item should be either:

  • dependency specifiers, or
  • table with a single key include-group which specifies another group name to include into this one
", + "x-tombi-array-values-order": { + "oneOf": ["version-sort", "ascending"] + }, + "uniqueItems": true, + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "include-group": { + "type": "string", + "pattern": "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$" + } + }, + "x-tombi-array-values-order-by": "include-group" + } + ] + } + } + }, + "properties": { + "project": { + "type": "object", + "additionalProperties": false, + "required": ["name"], + "title": "Project core metadata", + "description": "There are two kinds of metadata: _static_ and _dynamic_.\n- Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.\n- Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.", + "markdownDescription": "There are two kinds of metadata: _static_ and _dynamic_.\n- Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.\n- Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.", + "x-intellij-html-description": "

There are two kinds of metadata: static and dynamic.

  • Static metadata is listed in the [project] table directly and cannot be specified or changed by a tool.
  • Dynamic metadata key names are listed inside the dynamic key and represents metadata that a tool will later provide.
", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-project-metadata-the-project-table", + "initKeys": [ + "name", + "version", + "description", + "readme", + "license", + "authors", + "classifiers", + "urls", + "dependencies" + ] + } + }, + "x-tombi-table-keys-order": "schema", + "properties": { + "name": { + "title": "Project name", + "description": "Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.", + "markdownDescription": "Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.", + "x-intellij-html-description": "

Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#name" + } + }, + "type": "string", + "pattern": "^([a-zA-Z\\d]|[a-zA-Z\\d][\\w.-]*[a-zA-Z\\d])$" + }, + "version": { + "type": "string", + "pattern": "^v?((([0-9]+)!)?([0-9]+(\\.[0-9]+)*)([-_\\.]?(alpha|a|beta|b|preview|pre|c|rc)[-_\\.]?([0-9]+)?)?((-([0-9]+))|([-_\\.]?(post|rev|r)[-_\\.]?([0-9]+)?))?([-_\\.]?(dev)[-_\\.]?([0-9]+)?)?)(\\+([a-zA-Z0-9]+([-_\\.][a-zA-Z0-9]+)*))?$", + "title": "Project version", + "description": "Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).", + "markdownDescription": "Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).", + "x-intellij-html-description": "

Version of the project, as defined in the Version specifier specification, and preferably already normalized.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#version" + } + }, + "examples": ["42.0.1", "0.3.9rc7.post0.dev5"] + }, + "description": { + "type": "string", + "title": "Project summary description", + "description": "Summary description of the project in one line. Tools may not accept multiple lines.", + "markdownDescription": "Summary description of the project in one line. Tools may not accept multiple lines.", + "x-intellij-html-description": "

Summary description of the project in one line. Tools may not accept multiple lines.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#description" + } + } + }, + "readme": { + "title": "Project full description", + "description": "Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:\n- `file` key containing path of aforementioned readme file, or\n- `text` key containing the full readme text embedded inside `pyproject.toml`.", + "markdownDescription": "Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:\n- `file` key containing path of aforementioned readme file, or\n- `text` key containing the full readme text embedded inside `pyproject.toml`.", + "x-intellij-html-description": "

Value can be a relative path to text / markdown (.md suffix) / reStructuredText (.rst suffix) readme file, or a table with either:

  • file key containing path of aforementioned readme file, or
  • text key containing the full readme text embedded inside pyproject.toml.
", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#readme" + } + }, + "oneOf": [ + { + "title": "README file path", + "type": "string" + }, + { + "additionalProperties": false, + "type": "object", + "required": ["file"], + "properties": { + "file": { + "title": "README file path", + "type": "string" + }, + "content-type": { + "title": "README content-type", + "description": "RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)", + "type": "string" + } + }, + "x-tombi-table-keys-order": "schema" + }, + { + "additionalProperties": false, + "type": "object", + "required": ["text"], + "properties": { + "text": { + "title": "README text", + "type": "string" + }, + "content-type": { + "title": "README content-type", + "description": "RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)", + "type": "string" + } + }, + "x-tombi-table-keys-order": "schema" + }, + { + "additionalProperties": false, + "type": "object", + "required": ["content-type"], + "properties": { + "content-type": { + "title": "README content-type", + "description": "RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)", + "type": "string" + } + }, + "x-tombi-table-keys-order": "schema" + } + ], + "examples": [ + "README.md", + { + "file": "README.txt", + "content-type": "text/plain" + }, + { + "text": "# Example project\n\nSome readme content", + "content-type": "text/markdown" + } + ] + }, + "requires-python": { + "type": "string", + "title": "Python version compatibility", + "description": "Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).", + "markdownDescription": "Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).", + "x-intellij-html-description": "

Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in Version specifiers.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#requires-python" + } + }, + "examples": [">= 3.7"] + }, + "license": { + "$comment": "PEP 639 specifies current behavior (text / file subkey) will be deprecated, but this PEP is still under provisional status.", + "title": "Project license", + "description": "For now it is a table with either:\n- `file` key specifying a relative path to a license file, or\n- `text` key containing full license content\n\nNewer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.", + "markdownDescription": "For now it is a table with either:\n- `file` key specifying a relative path to a license file, or\n- `text` key containing full license content\n\nNewer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.", + "x-intellij-html-description": "

For now it is a table with either:

  • file key specifying a relative path to a license file, or
  • text key containing full license content

Newer tool may accept a single SPDX license expression string instead of a table.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#license" + } + }, + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["file"], + "properties": { + "file": { + "title": "License file path", + "type": "string" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["text"], + "properties": { + "text": { + "title": "License text", + "type": "string" + } + } + }, + { + "$comment": "Maybe add 'deprecated' keyword to table usage when SPDX license expression usage is finalized. But that requires 2019-09 draft.", + "type": "string" + } + ], + "examples": [ + { + "text": "To the extent possible under law, the author(s) who associated this software with CC0 have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty." + }, + { + "file": "LICENSE" + }, + "MIT", + "BSD-2-Clause OR Apache-2.0", + "LicenseRef-Proprietary" + ] + }, + "license-files": { + "$comment": "Still provisional under PEP 639", + "type": "array", + "items": { + "type": "string" + }, + "title": "License files", + "description": "Relative paths or globs to paths of license files. Can be an empty list.", + "markdownDescription": "Relative paths or globs to paths of license files. Can be an empty list.", + "x-intellij-html-description": "

Relative paths or globs to paths of license files. Can be an empty list.

", + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0639/#add-license-files-key" + } + }, + "x-tombi-array-values-order": "version-sort" + }, + "authors": { + "type": "array", + "items": { + "$ref": "#/definitions/projectAuthor" + }, + "title": "Project authors", + "description": "People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.", + "markdownDescription": "People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.", + "x-intellij-html-description": "

People or organizations considered as 'authors' of the project. Each author is a table with name key, email key, or both.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#authors-maintainers" + } + } + }, + "maintainers": { + "type": "array", + "items": { + "$ref": "#/definitions/projectAuthor" + }, + "title": "Project maintainers", + "description": "People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.", + "markdownDescription": "People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.", + "x-intellij-html-description": "

People or organizations considered as 'maintainers' of the project. Each maintainer is a table with name key, email key, or both.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#authors-maintainers" + } + } + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Project keywords", + "description": "List of keywords or tags that describe the project. They could be used by search engines to categorize the project.", + "markdownDescription": "List of keywords or tags that describe the project. They could be used by search engines to categorize the project.", + "x-intellij-html-description": "

List of keywords or tags that describe the project. They could be used by search engines to categorize the project.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#keywords" + } + }, + "x-tombi-array-values-order": "version-sort" + }, + "classifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Applicable Trove classifiers", + "description": "List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.", + "markdownDescription": "List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.", + "x-intellij-html-description": "

List of Trove classifiers that describe the project. PyPI use the classifiers to categorize projects.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#classifiers" + } + }, + "x-tombi-array-values-order": "version-sort" + }, + "urls": { + "type": "object", + "additionalProperties": { + "type": "string", + "format": "uri" + }, + "title": "Project URLs", + "description": "Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.", + "markdownDescription": "Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.", + "x-intellij-html-description": "

Table consisting one or multiple label: URL pairs. Common indexes like PyPI uses well-known Project URLs when presenting project pages.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#urls" + } + }, + "x-tombi-additional-key-label": "url_label", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "homepage": "https://example.com/example-project" + }, + { + "\"home page\"": "https://example.com/example-project", + "documentation": "https://doc.example.com/example-project/stable", + "repository": "https://git.example.com/some/repo.git" + } + ] + }, + "scripts": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Console scripts", + "description": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.", + "markdownDescription": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.", + "x-intellij-html-description": "

Table of entry points that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats console_scripts specially in that they are wrapped in a console executable, so they are attached to a console and can use sys.stdin, sys.stdout and sys.stderr for I/O.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts" + } + }, + "x-tombi-additional-key-label": "script_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "mycmd": "package.module:object.function" + } + ] + }, + "gui-scripts": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "GUI scripts", + "description": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.", + "markdownDescription": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.", + "x-intellij-html-description": "

Table of entry points that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats gui_scripts specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts" + } + }, + "x-tombi-additional-key-label": "script_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "mycmd": "package.module:object.function" + } + ] + }, + "entry-points": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^\\w+(\\.\\w+)*$": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-tombi-additional-key-label": "entry_point_name" + } + }, + "propertyNames": { + "not": { + "anyOf": [ + { + "const": "console_scripts" + }, + { + "const": "gui_scripts" + } + ] + } + }, + "title": "Other entry-point groups", + "description": "Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points.\"pygments.styles\"]`. Each key is the name of the entry-point group, and each value is a table of entry points.", + "markdownDescription": "Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points.\"pygments.styles\"]`. Each key is the name of the entry-point group, and each value is a table of entry points.", + "x-intellij-html-description": "

Extra entry point groups that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through [project.entry-points.\"pygments.styles\"]. Each key is the name of the entry-point group, and each value is a table of entry points.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/entry-points/#use-for-plugins" + } + }, + "x-tombi-additional-key-label": "entry_point_group_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "pygments.styles": { + "monokai": "package.module:object.attribute" + } + } + ] + }, + "dependencies": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Project mandatory dependency requirements", + "description": "An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.", + "markdownDescription": "An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.", + "x-intellij-html-description": "

An array of dependency specifier strings, each representing a mandatory dependent package of the project.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#dependencies-optional-dependencies" + } + }, + "x-tombi-array-values-order": "version-sort", + "examples": [["attrs", "requests ~= 2.28"]] + }, + "optional-dependencies": { + "type": "object", + "patternProperties": { + "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "Project extra dependency requirements", + "description": "Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.", + "markdownDescription": "Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.", + "x-intellij-html-description": "

Each entry is a key/value pair, with the key specifying extra feature name (such as socks in requests[socks]), and value is an array of dependency specifier strings.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#dependencies-optional-dependencies" + } + }, + "x-tombi-additional-key-label": "package_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "typing": ["boto3-stubs", "typing-extensions ~= 4.1"] + } + ] + }, + "import-names": { + "$ref": "#/definitions/importNames", + "description": "An array of strings specifying the import names that the project exclusively provides when installed.", + "markdownDescription": "An array of strings specifying the import names that the project exclusively provides when installed.", + "x-intellij-html-description": "An array of strings specifying the import names that the project exclusively provides when installed.", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#import-names" + } + }, + "examples": [["my_package", "_internal ; private"]] + }, + "import-namespaces": { + "$ref": "#/definitions/importNames", + "description": "An array of strings specifying the import names that the project provides when installed, but not exclusively.", + "markdownDescription": "An array of strings specifying the import names that the project provides when installed, but not exclusively.", + "x-intellij-html-description": "An array of strings specifying the import names that the project provides when installed, but not exclusively.", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#import-namespaces" + } + }, + "examples": [["my_package", "_internal ; private"]] + }, + "dynamic": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "version", + "description", + "readme", + "requires-python", + "license", + "license-files", + "authors", + "maintainers", + "keywords", + "classifiers", + "urls", + "scripts", + "gui-scripts", + "entry-points", + "dependencies", + "optional-dependencies", + "import-names", + "import-namespaces" + ] + }, + "uniqueItems": true, + "title": "Dynamic metadata values", + "description": "Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.\nOne of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.", + "markdownDescription": "Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.\nOne of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.", + "x-tombi-array-values-order": "version-sort", + "x-intellij-html-description": "

Specifies which keys are intentionally unspecified under [project] table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in dynamic and use the key directly in [project].

One of the most common usage is version, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in pyproject.toml.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#dynamic" + } + }, + "examples": [["version"]] + } + }, + "oneOf": [ + { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "version" + } + } + } + }, + { + "required": ["version"], + "properties": { + "version": true + } + } + ], + "dependencies": { + "version": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "version" + } + } + } + } + }, + "description": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "description" + } + } + } + } + }, + "readme": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "readme" + } + } + } + } + }, + "requires-python": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "requires-python" + } + } + } + } + }, + "license": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "license" + } + } + } + } + }, + "license-files": { + "allOf": [ + { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "license-files" + } + } + } + } + }, + { + "properties": { + "license": { + "type": "string" + } + } + } + ] + }, + "authors": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "authors" + } + } + } + } + }, + "maintainers": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "maintainers" + } + } + } + } + }, + "keywords": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "keywords" + } + } + } + } + }, + "classifiers": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "classifiers" + } + } + } + } + }, + "urls": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "urls" + } + } + } + } + }, + "scripts": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "scripts" + } + } + } + } + }, + "gui-scripts": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "gui-scripts" + } + } + } + } + }, + "entry-points": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "entry-points" + } + } + } + } + }, + "dependencies": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "dependencies" + } + } + } + } + }, + "optional-dependencies": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "optional-dependencies" + } + } + } + } + }, + "import-names": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "import-names" + } + } + } + } + }, + "import-namespaces": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "import-namespaces" + } + } + } + } + } + } + }, + "dependency-groups": { + "title": "PEP 735 dependency groups", + "description": "Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).", + "markdownDescription": "Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).", + "type": "object", + "properties": { + "dev": { + "$ref": "#/definitions/DependencyGroup" + } + }, + "patternProperties": { + "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$": { + "$ref": "#/definitions/DependencyGroup" + } + }, + "additionalProperties": false, + "x-intellij-html-description": "

Named groups of dependencies, similar to requirements.txt files, which launchers, IDEs, and other tools can find and identify by name. Each item in [dependency-groups] is defined as mapping of group name to list of dependency specifiers.

", + "x-tombi-additional-key-label": "group_name", + "x-tombi-table-keys-order": { + "properties": "version-sort", + "patternProperties": "version-sort" + }, + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0735/" + } + } + }, + "build-system": { + "$ref": "#/definitions/BuildSystem" + }, + "tool": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": true + }, + "title": "Tool-specific configuration", + "description": "Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.", + "markdownDescription": "Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.", + "x-intellij-html-description": "

Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within [tool]. Generally a project can use the subtable tool.$NAME if, and only if, they own the entry for $NAME in the Cheeseshop/PyPI.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#arbitrary-tool-configuration-the-tool-table" + } + }, + "x-tombi-additional-key-label": "tool_name", + "x-tombi-table-keys-order": "version-sort", + "properties": { + "black": { + "$ref": "https://json.schemastore.org/partial-black.json", + "title": "Code Formatter", + "description": "The uncompromising Python code formatter." + }, + "cibuildwheel": { + "$ref": "https://json.schemastore.org/partial-cibuildwheel.json", + "title": "Wheel Builder", + "description": "Build Python wheels for all platforms." + }, + "mypy": { + "$ref": "https://json.schemastore.org/partial-mypy.json", + "title": "Static Type Checker", + "description": "Optional static typing for Python." + }, + "ruff": { + "$ref": "https://json.schemastore.org/ruff.json", + "title": "Linter and Formatter", + "description": "An extremely fast Python linter and formatter, written in Rust." + }, + "ty": { + "$ref": "https://json.schemastore.org/ty.json", + "title": "Type checker", + "description": "An extremely fast Python type checker, written in Rust." + }, + "hatch": { + "$ref": "https://json.schemastore.org/hatch.json", + "title": "Project Manager", + "description": "Modern, extensible Python project management." + }, + "maturin": { + "$ref": "https://json.schemastore.org/maturin.json", + "title": "Rust-Python Package Builder", + "description": "Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages" + }, + "scikit-build": { + "$ref": "https://json.schemastore.org/partial-scikit-build.json", + "title": "Build System Generator", + "description": "Improved build system generator for Python C/C++/Fortran extensions" + }, + "setuptools": { + "$ref": "https://json.schemastore.org/partial-setuptools.json", + "title": "Package Manager", + "description": "Easily download, build, install, upgrade, and uninstall Python packages." + }, + "setuptools_scm": { + "$ref": "https://json.schemastore.org/partial-setuptools-scm.json", + "title": "Version Manager", + "description": "Manage Python package versions using SCM (e.g. Git)." + }, + "poe": { + "$ref": "https://json.schemastore.org/partial-poe.json", + "title": "Task Runner", + "description": "A task runner that works well with pyproject.toml files." + }, + "poetry": { + "$ref": "https://json.schemastore.org/partial-poetry.json", + "title": "Package Manager", + "description": "Python dependency management and packaging made easy." + }, + "pdm": { + "$ref": "https://json.schemastore.org/partial-pdm.json", + "title": "Package Manager", + "description": "A modern Python package manager with PEP 621 support." + }, + "pyright": { + "$ref": "https://json.schemastore.org/partial-pyright.json", + "title": "Static Type Checker", + "description": "Static type checker for Python." + }, + "pytest": { + "$ref": "https://json.schemastore.org/partial-pytest.json", + "title": "Testing Framework", + "description": "Standardized automated testing of Python packages" + }, + "repo-review": { + "$ref": "https://json.schemastore.org/partial-repo-review.json", + "title": "Repository Reviewer", + "description": "Review a repository for best practices." + }, + "taskipy": { + "$ref": "https://json.schemastore.org/partial-taskipy.json", + "title": "Task Runner", + "description": "The complementary task runner for python." + }, + "tombi": { + "$ref": "https://www.schemastore.org/tombi.json", + "title": "TOML Toolkit", + "description": "Tombi is a toolkit for TOML; providing a formatter/linter and language server" + }, + "tox": { + "$ref": "https://json.schemastore.org/tox.json", + "title": "Testing Framework", + "description": "Standardized automated testing of Python packages" + }, + "uv": { + "$ref": "https://json.schemastore.org/uv.json", + "title": "Package Manager", + "description": "An extremely fast Python package installer and resolver, written in Rust." + } + }, + "examples": [ + { + "tool": { + "isort": { + "profile": "black" + } + } + } + ] + } + }, + "title": "JSON schema for Python project metadata and configuration", + "type": "object", + "x-taplo-info": { + "authors": ["zevisert (https://github.com/zevisert)"], + "pattern": ["^(.*(/|\\\\)pyproject\\.toml|pyproject\\.toml)$"] + } +} diff --git a/tests/testdata/json_schemastore_pyproject_schema_key/old.json b/tests/testdata/json_schemastore_pyproject_schema_key/old.json new file mode 100644 index 0000000..75dcf41 --- /dev/null +++ b/tests/testdata/json_schemastore_pyproject_schema_key/old.json @@ -0,0 +1,1083 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/pyproject.json", + "$comment": "there are multiple resources describing pyproject.toml. The canonical reference is at https://packaging.python.org/en/latest/specifications/declaring-project-metadata/, which refers to multiple proposals such as PEP 517, PEP 518 and PEP 621", + "x-tombi-toml-version": "v1.0.0", + "x-tombi-table-keys-order": "schema", + "x-tombi-string-formats": ["email", "uri"], + "additionalProperties": false, + "definitions": { + "importNames": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z_][A-Za-z_0-9]*(?:\\.[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*;\\s*private)?$" + }, + "x-tombi-array-values-order": "version-sort" + }, + "projectAuthor": { + "type": "object", + "additionalProperties": false, + "anyOf": [ + { + "required": ["name"], + "properties": { + "name": true + } + }, + { + "required": ["email"], + "properties": { + "email": true + } + } + ], + "properties": { + "name": { + "type": "string" + }, + "email": { + "type": "string", + "format": "email" + } + }, + "x-tombi-table-keys-order": "schema" + }, + "BuildSystem": { + "type": "object", + "additionalProperties": false, + "required": ["requires"], + "title": "Project build system configuration", + "description": "Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.", + "markdownDescription": "Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.", + "x-intellij-html-description": "

Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-build-system-dependencies-the-build-system-table" + } + }, + "x-tombi-table-keys-order": "schema", + "properties": { + "requires": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Build system dependencies", + "description": "List of strings following the version specifier specification, representing dependencies required to execute the build system.", + "markdownDescription": "List of strings following the [version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/#version-specifiers), representing dependencies required to execute the build system.", + "x-intellij-html-description": "

List of strings following the version specifier specification, representing dependencies required to execute the build system.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-build-system-dependencies-the-build-system-table" + } + }, + "x-tombi-array-values-order": "version-sort", + "examples": ["setuptools >= 64.0"] + }, + "build-backend": { + "type": "string", + "title": "Name of Python object used to perform the build", + "description": "String is formatted following the same `module:object` syntax as a `setuptools` entry point. It’s also legal to leave out the `:object` part.", + "markdownDescription": "String is formatted following the same `module:object` syntax as a `setuptools` entry point. It’s also legal to leave out the `:object` part.", + "x-intellij-html-description": "

String is formatted following the same module:object syntax as a setuptools entry point. It’s also legal to leave out the :object part.

", + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0517/#source-trees" + } + }, + "examples": ["setuptools.build_meta", "my_build_backend:backend"] + }, + "backend-path": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Build backend directories", + "description": "list of directories to prepend to `sys.path` when loading the build backend, relative to project root", + "markdownDescription": "list of directoriesrepend to `sys.path` when loading the build backend, relative to project root", + "x-intellij-html-description": "

list of directories to prepend to sys.path when loading the build backend, relative to project root

", + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0517/#in-tree-build-backends" + } + }, + "x-tombi-table-keys-order": "version-sort" + } + } + }, + "DependencyGroup": { + "type": "array", + "title": "Dependency specifiers or include groups", + "description": "Each list item should be either:\n- [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/), or\n- table with a single key `include-group` which specifies another group name to include into this one", + "markdownDescription": "Each list item should be either:\n- [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/), or\n- table with a single key `include-group` which specifies another group name to include into this one", + "x-intellij-html-description": "

Each list item should be either:

  • dependency specifiers, or
  • table with a single key include-group which specifies another group name to include into this one
", + "x-tombi-array-values-order": { + "oneOf": ["version-sort", "ascending"] + }, + "uniqueItems": true, + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "include-group": { + "type": "string", + "pattern": "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$" + } + }, + "x-tombi-array-values-order-by": "include-group" + } + ] + } + } + }, + "properties": { + "project": { + "type": "object", + "additionalProperties": false, + "required": ["name"], + "title": "Project core metadata", + "description": "There are two kinds of metadata: _static_ and _dynamic_.\n- Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.\n- Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.", + "markdownDescription": "There are two kinds of metadata: _static_ and _dynamic_.\n- Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.\n- Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.", + "x-intellij-html-description": "

There are two kinds of metadata: static and dynamic.

  • Static metadata is listed in the [project] table directly and cannot be specified or changed by a tool.
  • Dynamic metadata key names are listed inside the dynamic key and represents metadata that a tool will later provide.
", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-project-metadata-the-project-table", + "initKeys": [ + "name", + "version", + "description", + "readme", + "license", + "authors", + "classifiers", + "urls", + "dependencies" + ] + } + }, + "x-tombi-table-keys-order": "schema", + "properties": { + "name": { + "title": "Project name", + "description": "Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.", + "markdownDescription": "Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.", + "x-intellij-html-description": "

Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#name" + } + }, + "type": "string", + "pattern": "^([a-zA-Z\\d]|[a-zA-Z\\d][\\w.-]*[a-zA-Z\\d])$" + }, + "version": { + "type": "string", + "pattern": "^v?((([0-9]+)!)?([0-9]+(\\.[0-9]+)*)([-_\\.]?(alpha|a|beta|b|preview|pre|c|rc)[-_\\.]?([0-9]+)?)?((-([0-9]+))|([-_\\.]?(post|rev|r)[-_\\.]?([0-9]+)?))?([-_\\.]?(dev)[-_\\.]?([0-9]+)?)?)(\\+([a-zA-Z0-9]+([-_\\.][a-zA-Z0-9]+)*))?$", + "title": "Project version", + "description": "Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).", + "markdownDescription": "Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).", + "x-intellij-html-description": "

Version of the project, as defined in the Version specifier specification, and preferably already normalized.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#version" + } + }, + "examples": ["42.0.1", "0.3.9rc7.post0.dev5"] + }, + "description": { + "type": "string", + "title": "Project summary description", + "description": "Summary description of the project in one line. Tools may not accept multiple lines.", + "markdownDescription": "Summary description of the project in one line. Tools may not accept multiple lines.", + "x-intellij-html-description": "

Summary description of the project in one line. Tools may not accept multiple lines.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#description" + } + } + }, + "readme": { + "title": "Project full description", + "description": "Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:\n- `file` key containing path of aforementioned readme file, or\n- `text` key containing the full readme text embedded inside `pyproject.toml`.", + "markdownDescription": "Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:\n- `file` key containing path of aforementioned readme file, or\n- `text` key containing the full readme text embedded inside `pyproject.toml`.", + "x-intellij-html-description": "

Value can be a relative path to text / markdown (.md suffix) / reStructuredText (.rst suffix) readme file, or a table with either:

  • file key containing path of aforementioned readme file, or
  • text key containing the full readme text embedded inside pyproject.toml.
", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#readme" + } + }, + "oneOf": [ + { + "title": "README file path", + "type": "string" + }, + { + "additionalProperties": false, + "type": "object", + "required": ["file"], + "properties": { + "file": { + "title": "README file path", + "type": "string" + }, + "content-type": { + "title": "README content-type", + "description": "RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)", + "type": "string" + } + }, + "x-tombi-table-keys-order": "schema" + }, + { + "additionalProperties": false, + "type": "object", + "required": ["text"], + "properties": { + "text": { + "title": "README text", + "type": "string" + }, + "content-type": { + "title": "README content-type", + "description": "RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)", + "type": "string" + } + }, + "x-tombi-table-keys-order": "schema" + }, + { + "additionalProperties": false, + "type": "object", + "required": ["content-type"], + "properties": { + "content-type": { + "title": "README content-type", + "description": "RFC 1341 compliant content-type (with optional charset, defaulting to UTF-8)", + "type": "string" + } + }, + "x-tombi-table-keys-order": "schema" + } + ], + "examples": [ + "README.md", + { + "file": "README.txt", + "content-type": "text/plain" + }, + { + "text": "# Example project\n\nSome readme content", + "content-type": "text/markdown" + } + ] + }, + "requires-python": { + "type": "string", + "title": "Python version compatibility", + "description": "Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).", + "markdownDescription": "Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).", + "x-intellij-html-description": "

Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in Version specifiers.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#requires-python" + } + }, + "examples": [">= 3.7"] + }, + "license": { + "$comment": "PEP 639 specifies current behavior (text / file subkey) will be deprecated, but this PEP is still under provisional status.", + "title": "Project license", + "description": "For now it is a table with either:\n- `file` key specifying a relative path to a license file, or\n- `text` key containing full license content\n\nNewer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.", + "markdownDescription": "For now it is a table with either:\n- `file` key specifying a relative path to a license file, or\n- `text` key containing full license content\n\nNewer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.", + "x-intellij-html-description": "

For now it is a table with either:

  • file key specifying a relative path to a license file, or
  • text key containing full license content

Newer tool may accept a single SPDX license expression string instead of a table.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#license" + } + }, + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["file"], + "properties": { + "file": { + "title": "License file path", + "type": "string" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["text"], + "properties": { + "text": { + "title": "License text", + "type": "string" + } + } + }, + { + "$comment": "Maybe add 'deprecated' keyword to table usage when SPDX license expression usage is finalized. But that requires 2019-09 draft.", + "type": "string" + } + ], + "examples": [ + { + "text": "To the extent possible under law, the author(s) who associated this software with CC0 have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty." + }, + { + "file": "LICENSE" + }, + "MIT", + "BSD-2-Clause OR Apache-2.0", + "LicenseRef-Proprietary" + ] + }, + "license-files": { + "$comment": "Still provisional under PEP 639", + "type": "array", + "items": { + "type": "string" + }, + "title": "License files", + "description": "Relative paths or globs to paths of license files. Can be an empty list.", + "markdownDescription": "Relative paths or globs to paths of license files. Can be an empty list.", + "x-intellij-html-description": "

Relative paths or globs to paths of license files. Can be an empty list.

", + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0639/#add-license-files-key" + } + }, + "x-tombi-array-values-order": "version-sort" + }, + "authors": { + "type": "array", + "items": { + "$ref": "#/definitions/projectAuthor" + }, + "title": "Project authors", + "description": "People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.", + "markdownDescription": "People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.", + "x-intellij-html-description": "

People or organizations considered as 'authors' of the project. Each author is a table with name key, email key, or both.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#authors-maintainers" + } + } + }, + "maintainers": { + "type": "array", + "items": { + "$ref": "#/definitions/projectAuthor" + }, + "title": "Project maintainers", + "description": "People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.", + "markdownDescription": "People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.", + "x-intellij-html-description": "

People or organizations considered as 'maintainers' of the project. Each maintainer is a table with name key, email key, or both.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#authors-maintainers" + } + } + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Project keywords", + "description": "List of keywords or tags that describe the project. They could be used by search engines to categorize the project.", + "markdownDescription": "List of keywords or tags that describe the project. They could be used by search engines to categorize the project.", + "x-intellij-html-description": "

List of keywords or tags that describe the project. They could be used by search engines to categorize the project.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#keywords" + } + }, + "x-tombi-array-values-order": "version-sort" + }, + "classifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Applicable Trove classifiers", + "description": "List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.", + "markdownDescription": "List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.", + "x-intellij-html-description": "

List of Trove classifiers that describe the project. PyPI use the classifiers to categorize projects.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#classifiers" + } + }, + "x-tombi-array-values-order": "version-sort" + }, + "urls": { + "type": "object", + "additionalProperties": { + "type": "string", + "format": "uri" + }, + "title": "Project URLs", + "description": "Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.", + "markdownDescription": "Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.", + "x-intellij-html-description": "

Table consisting one or multiple label: URL pairs. Common indexes like PyPI uses well-known Project URLs when presenting project pages.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#urls" + } + }, + "x-tombi-additional-key-label": "url_label", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "homepage": "https://example.com/example-project" + }, + { + "\"home page\"": "https://example.com/example-project", + "documentation": "https://doc.example.com/example-project/stable", + "repository": "https://git.example.com/some/repo.git" + } + ] + }, + "scripts": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Console scripts", + "description": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.", + "markdownDescription": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.", + "x-intellij-html-description": "

Table of entry points that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats console_scripts specially in that they are wrapped in a console executable, so they are attached to a console and can use sys.stdin, sys.stdout and sys.stderr for I/O.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts" + } + }, + "x-tombi-additional-key-label": "script_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "mycmd": "package.module:object.function" + } + ] + }, + "gui-scripts": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "GUI scripts", + "description": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.", + "markdownDescription": "Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.", + "x-intellij-html-description": "

Table of entry points that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either importable.module or importable.module:object.attr. Windows platform treats gui_scripts specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/entry-points/#use-for-scripts" + } + }, + "x-tombi-additional-key-label": "script_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "mycmd": "package.module:object.function" + } + ] + }, + "entry-points": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^\\w+(\\.\\w+)*$": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-tombi-additional-key-label": "entry_point_name" + } + }, + "propertyNames": { + "not": { + "anyOf": [ + { + "const": "console_scripts" + }, + { + "const": "gui_scripts" + } + ] + } + }, + "title": "Other entry-point groups", + "description": "Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points.\"pygments.styles\"]`. Each key is the name of the entry-point group, and each value is a table of entry points.", + "markdownDescription": "Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points.\"pygments.styles\"]`. Each key is the name of the entry-point group, and each value is a table of entry points.", + "x-intellij-html-description": "

Extra entry point groups that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through [project.entry-points.\"pygments.styles\"]. Each key is the name of the entry-point group, and each value is a table of entry points.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/entry-points/#use-for-plugins" + } + }, + "x-tombi-additional-key-label": "entry_point_group_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "pygments.styles": { + "monokai": "package.module:object.attribute" + } + } + ] + }, + "dependencies": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "title": "Project mandatory dependency requirements", + "description": "An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.", + "markdownDescription": "An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.", + "x-intellij-html-description": "

An array of dependency specifier strings, each representing a mandatory dependent package of the project.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#dependencies-optional-dependencies" + } + }, + "x-tombi-array-values-order": "version-sort", + "examples": [["attrs", "requests ~= 2.28"]] + }, + "optional-dependencies": { + "type": "object", + "patternProperties": { + "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "Project extra dependency requirements", + "description": "Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.", + "markdownDescription": "Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.", + "x-intellij-html-description": "

Each entry is a key/value pair, with the key specifying extra feature name (such as socks in requests[socks]), and value is an array of dependency specifier strings.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#dependencies-optional-dependencies" + } + }, + "x-tombi-additional-key-label": "package_name", + "x-tombi-table-keys-order": "version-sort", + "examples": [ + { + "typing": ["boto3-stubs", "typing-extensions ~= 4.1"] + } + ] + }, + "import-names": { + "$ref": "#/definitions/importNames", + "description": "An array of strings specifying the import names that the project exclusively provides when installed.", + "markdownDescription": "An array of strings specifying the import names that the project exclusively provides when installed.", + "x-intellij-html-description": "An array of strings specifying the import names that the project exclusively provides when installed.", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#import-names" + } + }, + "examples": [["my_package", "_internal ; private"]] + }, + "import-namespaces": { + "$ref": "#/definitions/importNames", + "description": "An array of strings specifying the import names that the project provides when installed, but not exclusively.", + "markdownDescription": "An array of strings specifying the import names that the project provides when installed, but not exclusively.", + "x-intellij-html-description": "An array of strings specifying the import names that the project provides when installed, but not exclusively.", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#import-namespaces" + } + }, + "examples": [["my_package", "_internal ; private"]] + }, + "dynamic": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "version", + "description", + "readme", + "requires-python", + "license", + "license-files", + "authors", + "maintainers", + "keywords", + "classifiers", + "urls", + "scripts", + "gui-scripts", + "entry-points", + "dependencies", + "optional-dependencies", + "import-names", + "import-namespaces" + ] + }, + "uniqueItems": true, + "title": "Dynamic metadata values", + "description": "Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.\nOne of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.", + "markdownDescription": "Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.\nOne of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.", + "x-tombi-array-values-order": "version-sort", + "x-intellij-html-description": "

Specifies which keys are intentionally unspecified under [project] table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in dynamic and use the key directly in [project].

One of the most common usage is version, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in pyproject.toml.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#dynamic" + } + }, + "examples": [["version"]] + } + }, + "oneOf": [ + { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "version" + } + } + } + }, + { + "required": ["version"], + "properties": { + "version": true + } + } + ], + "dependencies": { + "version": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "version" + } + } + } + } + }, + "description": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "description" + } + } + } + } + }, + "readme": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "readme" + } + } + } + } + }, + "requires-python": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "requires-python" + } + } + } + } + }, + "license": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "license" + } + } + } + } + }, + "license-files": { + "allOf": [ + { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "license-files" + } + } + } + } + }, + { + "properties": { + "license": { + "type": "string" + } + } + } + ] + }, + "authors": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "authors" + } + } + } + } + }, + "maintainers": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "maintainers" + } + } + } + } + }, + "keywords": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "keywords" + } + } + } + } + }, + "classifiers": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "classifiers" + } + } + } + } + }, + "urls": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "urls" + } + } + } + } + }, + "scripts": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "scripts" + } + } + } + } + }, + "gui-scripts": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "gui-scripts" + } + } + } + } + }, + "entry-points": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "entry-points" + } + } + } + } + }, + "dependencies": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "dependencies" + } + } + } + } + }, + "optional-dependencies": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "optional-dependencies" + } + } + } + } + }, + "import-names": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "import-names" + } + } + } + } + }, + "import-namespaces": { + "not": { + "required": ["dynamic"], + "properties": { + "dynamic": { + "type": "array", + "contains": { + "const": "import-namespaces" + } + } + } + } + } + } + }, + "dependency-groups": { + "title": "PEP 735 dependency groups", + "description": "Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).", + "markdownDescription": "Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).", + "type": "object", + "properties": { + "dev": { + "$ref": "#/definitions/DependencyGroup" + } + }, + "patternProperties": { + "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])$": { + "$ref": "#/definitions/DependencyGroup" + } + }, + "additionalProperties": false, + "x-intellij-html-description": "

Named groups of dependencies, similar to requirements.txt files, which launchers, IDEs, and other tools can find and identify by name. Each item in [dependency-groups] is defined as mapping of group name to list of dependency specifiers.

", + "x-tombi-additional-key-label": "group_name", + "x-tombi-table-keys-order": { + "properties": "version-sort", + "patternProperties": "version-sort" + }, + "x-taplo": { + "links": { + "key": "https://peps.python.org/pep-0735/" + } + } + }, + "build-system": { + "$ref": "#/definitions/BuildSystem" + }, + "tool": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": true + }, + "title": "Tool-specific configuration", + "description": "Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.", + "markdownDescription": "Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.", + "x-intellij-html-description": "

Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within [tool]. Generally a project can use the subtable tool.$NAME if, and only if, they own the entry for $NAME in the Cheeseshop/PyPI.

", + "x-taplo": { + "links": { + "key": "https://packaging.python.org/en/latest/specifications/pyproject-toml/#arbitrary-tool-configuration-the-tool-table" + } + }, + "x-tombi-additional-key-label": "tool_name", + "x-tombi-table-keys-order": "version-sort", + "properties": { + "black": { + "$ref": "https://json.schemastore.org/partial-black.json", + "title": "Code Formatter", + "description": "The uncompromising Python code formatter." + }, + "cibuildwheel": { + "$ref": "https://json.schemastore.org/partial-cibuildwheel.json", + "title": "Wheel Builder", + "description": "Build Python wheels for all platforms." + }, + "mypy": { + "$ref": "https://json.schemastore.org/partial-mypy.json", + "title": "Static Type Checker", + "description": "Optional static typing for Python." + }, + "ruff": { + "$ref": "https://json.schemastore.org/ruff.json", + "title": "Linter and Formatter", + "description": "An extremely fast Python linter and formatter, written in Rust." + }, + "ty": { + "$ref": "https://json.schemastore.org/ty.json", + "title": "Type checker", + "description": "An extremely fast Python type checker, written in Rust." + }, + "hatch": { + "$ref": "https://json.schemastore.org/hatch.json", + "title": "Project Manager", + "description": "Modern, extensible Python project management." + }, + "maturin": { + "$ref": "https://json.schemastore.org/maturin.json", + "title": "Rust-Python Package Builder", + "description": "Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages" + }, + "scikit-build": { + "$ref": "https://json.schemastore.org/partial-scikit-build.json", + "title": "Build System Generator", + "description": "Improved build system generator for Python C/C++/Fortran extensions" + }, + "setuptools": { + "$ref": "https://json.schemastore.org/partial-setuptools.json", + "title": "Package Manager", + "description": "Easily download, build, install, upgrade, and uninstall Python packages." + }, + "setuptools_scm": { + "$ref": "https://json.schemastore.org/partial-setuptools-scm.json", + "title": "Version Manager", + "description": "Manage Python package versions using SCM (e.g. Git)." + }, + "poe": { + "$ref": "https://json.schemastore.org/partial-poe.json", + "title": "Task Runner", + "description": "A task runner that works well with pyproject.toml files." + }, + "poetry": { + "$ref": "https://json.schemastore.org/partial-poetry.json", + "title": "Package Manager", + "description": "Python dependency management and packaging made easy." + }, + "pdm": { + "$ref": "https://json.schemastore.org/partial-pdm.json", + "title": "Package Manager", + "description": "A modern Python package manager with PEP 621 support." + }, + "pyright": { + "$ref": "https://json.schemastore.org/partial-pyright.json", + "title": "Static Type Checker", + "description": "Static type checker for Python." + }, + "pytest": { + "$ref": "https://json.schemastore.org/partial-pytest.json", + "title": "Testing Framework", + "description": "Standardized automated testing of Python packages" + }, + "repo-review": { + "$ref": "https://json.schemastore.org/partial-repo-review.json", + "title": "Repository Reviewer", + "description": "Review a repository for best practices." + }, + "taskipy": { + "$ref": "https://json.schemastore.org/partial-taskipy.json", + "title": "Task Runner", + "description": "The complementary task runner for python." + }, + "tombi": { + "$ref": "https://www.schemastore.org/tombi.json", + "title": "TOML Toolkit", + "description": "Tombi is a toolkit for TOML; providing a formatter/linter and language server" + }, + "tox": { + "$ref": "https://json.schemastore.org/partial-tox.json", + "title": "Testing Framework", + "description": "Standardized automated testing of Python packages" + }, + "uv": { + "$ref": "https://json.schemastore.org/uv.json", + "title": "Package Manager", + "description": "An extremely fast Python package installer and resolver, written in Rust." + } + }, + "examples": [ + { + "tool": { + "isort": { + "profile": "black" + } + } + } + ] + } + }, + "title": "JSON schema for Python project metadata and configuration", + "type": "object", + "x-taplo-info": { + "authors": ["zevisert (https://github.com/zevisert)"], + "pattern": ["^(.*(/|\\\\)pyproject\\.toml|pyproject\\.toml)$"] + } +} diff --git a/tests/testdata/json_schemastore_pytest_options_refactor/expected.json b/tests/testdata/json_schemastore_pytest_options_refactor/expected.json new file mode 100644 index 0000000..f63dba2 --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_options_refactor/expected.json @@ -0,0 +1,4696 @@ +{ + "version": "v1", + "actions": [ + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 0, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"Legacy configuration using ini_options table (pytest \u003c9)\"", + "start_byte": 412, + "end_byte": 470 + }, + "old_value": "\"Legacy configuration using ini_options table (pytest \u003c9)\"", + "new_value": "\"INI-style configuration using the ini_options table (pytest \u003e=6)\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 0, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"INI-style configuration using the ini_options table (pytest \u003e=6)\"", + "start_byte": 412, + "end_byte": 478 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 0, + 1, + 3, + 1, + 0, + 1, + 1, + 1 + ], + "type": "string", + "label": "\"Bridge Configuration Options for `pytest.ini` File\"", + "start_byte": 790, + "end_byte": 842 + }, + "old_value": "\"Bridge Configuration Options for `pytest.ini` File\"", + "new_value": "\"INI-style pytest Configuration Options\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 1, + 1 + ], + "type": "string", + "label": "\"INI-style pytest Configuration Options\"", + "start_byte": 772, + "end_byte": 812 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 0, + 1, + 3, + 1, + 0, + 1, + 2, + 1 + ], + "type": "string", + "label": "\"The `ini_options` table is used as a bridge between the existing `pytest.ini` configuration system and future configuration formats. `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`.\"", + "start_byte": 869, + "end_byte": 1087 + }, + "old_value": "\"The `ini_options` table is used as a bridge between the existing `pytest.ini` configuration system and future configuration formats. `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`.\"", + "new_value": "\"Use `[tool.pytest.ini_options]` for INI-style pytest configuration in `pyproject.toml` (supported since pytest 6.0). `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`.\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 0, + 1, + 2, + 1, + 0, + 1, + 2, + 1 + ], + "type": "string", + "label": "\"Use `[tool.pytest.ini_options]` for INI-style pytest configuration in `pyproject.toml` (supported since pytest 6.0). `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`.\"", + "start_byte": 839, + "end_byte": 1041 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 0, + 1, + 2 + ], + "type": "pair", + "start_byte": 502, + "end_byte": 520 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 1, + 1, + 1 + ], + "type": "pair", + "start_byte": 1284, + "end_byte": 1302 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 2, + 1, + 1 + ], + "type": "pair", + "start_byte": 22782, + "end_byte": 22918 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 2, + 1, + 3 + ], + "type": "pair", + "start_byte": 22950, + "end_byte": 22968 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 7, + 1, + 1 + ], + "type": "pair", + "start_byte": 42584, + "end_byte": 42720 + }, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": -1 + }, + { + "left_line": 17, + "right_line": 16 + }, + { + "left_line": 18, + "right_line": 17 + }, + { + "left_line": 19, + "right_line": 18 + }, + { + "left_line": 20, + "right_line": 19 + }, + { + "left_line": 21, + "right_line": 20 + }, + { + "left_line": 22, + "right_line": 21 + }, + { + "left_line": 23, + "right_line": 22 + }, + { + "left_line": 24, + "right_line": 23 + }, + { + "left_line": 25, + "right_line": 24 + }, + { + "left_line": 26, + "right_line": 25 + }, + { + "left_line": 27, + "right_line": 26 + }, + { + "left_line": 28, + "right_line": 27 + }, + { + "left_line": 29, + "right_line": 28 + }, + { + "left_line": 30, + "right_line": 29 + }, + { + "left_line": 31, + "right_line": 30 + }, + { + "left_line": 32, + "right_line": 31 + }, + { + "left_line": 33, + "right_line": 32 + }, + { + "left_line": 34, + "right_line": 33 + }, + { + "left_line": 35, + "right_line": 34 + }, + { + "left_line": 36, + "right_line": 35 + }, + { + "left_line": 37, + "right_line": -1 + }, + { + "left_line": 38, + "right_line": 36 + }, + { + "left_line": 39, + "right_line": 37 + }, + { + "left_line": 40, + "right_line": 38 + }, + { + "left_line": 41, + "right_line": 39 + }, + { + "left_line": 42, + "right_line": 40 + }, + { + "left_line": 43, + "right_line": 41 + }, + { + "left_line": 44, + "right_line": 42 + }, + { + "left_line": 45, + "right_line": 43 + }, + { + "left_line": 46, + "right_line": 44 + }, + { + "left_line": 47, + "right_line": 45 + }, + { + "left_line": 48, + "right_line": 46 + }, + { + "left_line": 49, + "right_line": 47 + }, + { + "left_line": 50, + "right_line": 48 + }, + { + "left_line": 51, + "right_line": 49 + }, + { + "left_line": 52, + "right_line": 50 + }, + { + "left_line": 53, + "right_line": 51 + }, + { + "left_line": 54, + "right_line": 52 + }, + { + "left_line": 55, + "right_line": 53 + }, + { + "left_line": 56, + "right_line": 54 + }, + { + "left_line": 57, + "right_line": 55 + }, + { + "left_line": 58, + "right_line": 56 + }, + { + "left_line": 59, + "right_line": 57 + }, + { + "left_line": 60, + "right_line": 58 + }, + { + "left_line": 61, + "right_line": 59 + }, + { + "left_line": 62, + "right_line": 60 + }, + { + "left_line": 63, + "right_line": 61 + }, + { + "left_line": 64, + "right_line": 62 + }, + { + "left_line": 65, + "right_line": 63 + }, + { + "left_line": 66, + "right_line": 64 + }, + { + "left_line": 67, + "right_line": 65 + }, + { + "left_line": 68, + "right_line": 66 + }, + { + "left_line": 69, + "right_line": 67 + }, + { + "left_line": 70, + "right_line": 68 + }, + { + "left_line": 71, + "right_line": 69 + }, + { + "left_line": 72, + "right_line": 70 + }, + { + "left_line": 73, + "right_line": 71 + }, + { + "left_line": 74, + "right_line": 72 + }, + { + "left_line": 75, + "right_line": 73 + }, + { + "left_line": 76, + "right_line": 74 + }, + { + "left_line": 77, + "right_line": 75 + }, + { + "left_line": 78, + "right_line": 76 + }, + { + "left_line": 79, + "right_line": 77 + }, + { + "left_line": 80, + "right_line": 78 + }, + { + "left_line": 81, + "right_line": 79 + }, + { + "left_line": 82, + "right_line": 80 + }, + { + "left_line": 83, + "right_line": 81 + }, + { + "left_line": 84, + "right_line": 82 + }, + { + "left_line": 85, + "right_line": 83 + }, + { + "left_line": 86, + "right_line": 84 + }, + { + "left_line": 87, + "right_line": 85 + }, + { + "left_line": 88, + "right_line": 86 + }, + { + "left_line": 89, + "right_line": 87 + }, + { + "left_line": 90, + "right_line": 88 + }, + { + "left_line": 91, + "right_line": 89 + }, + { + "left_line": 92, + "right_line": 90 + }, + { + "left_line": 93, + "right_line": 91 + }, + { + "left_line": 94, + "right_line": 92 + }, + { + "left_line": 95, + "right_line": 93 + }, + { + "left_line": 96, + "right_line": 94 + }, + { + "left_line": 97, + "right_line": 95 + }, + { + "left_line": 98, + "right_line": 96 + }, + { + "left_line": 99, + "right_line": 97 + }, + { + "left_line": 100, + "right_line": 98 + }, + { + "left_line": 101, + "right_line": 99 + }, + { + "left_line": 102, + "right_line": 100 + }, + { + "left_line": 103, + "right_line": 101 + }, + { + "left_line": 104, + "right_line": 102 + }, + { + "left_line": 105, + "right_line": 103 + }, + { + "left_line": 106, + "right_line": 104 + }, + { + "left_line": 107, + "right_line": 105 + }, + { + "left_line": 108, + "right_line": 106 + }, + { + "left_line": 109, + "right_line": 107 + }, + { + "left_line": 110, + "right_line": 108 + }, + { + "left_line": 111, + "right_line": 109 + }, + { + "left_line": 112, + "right_line": 110 + }, + { + "left_line": 113, + "right_line": 111 + }, + { + "left_line": 114, + "right_line": 112 + }, + { + "left_line": 115, + "right_line": 113 + }, + { + "left_line": 116, + "right_line": 114 + }, + { + "left_line": 117, + "right_line": 115 + }, + { + "left_line": 118, + "right_line": 116 + }, + { + "left_line": 119, + "right_line": 117 + }, + { + "left_line": 120, + "right_line": 118 + }, + { + "left_line": 121, + "right_line": 119 + }, + { + "left_line": 122, + "right_line": 120 + }, + { + "left_line": 123, + "right_line": 121 + }, + { + "left_line": 124, + "right_line": 122 + }, + { + "left_line": 125, + "right_line": 123 + }, + { + "left_line": 126, + "right_line": 124 + }, + { + "left_line": 127, + "right_line": 125 + }, + { + "left_line": 128, + "right_line": 126 + }, + { + "left_line": 129, + "right_line": 127 + }, + { + "left_line": 130, + "right_line": 128 + }, + { + "left_line": 131, + "right_line": 129 + }, + { + "left_line": 132, + "right_line": 130 + }, + { + "left_line": 133, + "right_line": 131 + }, + { + "left_line": 134, + "right_line": 132 + }, + { + "left_line": 135, + "right_line": 133 + }, + { + "left_line": 136, + "right_line": 134 + }, + { + "left_line": 137, + "right_line": 135 + }, + { + "left_line": 138, + "right_line": 136 + }, + { + "left_line": 139, + "right_line": 137 + }, + { + "left_line": 140, + "right_line": 138 + }, + { + "left_line": 141, + "right_line": 139 + }, + { + "left_line": 142, + "right_line": 140 + }, + { + "left_line": 143, + "right_line": 141 + }, + { + "left_line": 144, + "right_line": 142 + }, + { + "left_line": 145, + "right_line": 143 + }, + { + "left_line": 146, + "right_line": 144 + }, + { + "left_line": 147, + "right_line": 145 + }, + { + "left_line": 148, + "right_line": 146 + }, + { + "left_line": 149, + "right_line": 147 + }, + { + "left_line": 150, + "right_line": 148 + }, + { + "left_line": 151, + "right_line": 149 + }, + { + "left_line": 152, + "right_line": 150 + }, + { + "left_line": 153, + "right_line": 151 + }, + { + "left_line": 154, + "right_line": 152 + }, + { + "left_line": 155, + "right_line": 153 + }, + { + "left_line": 156, + "right_line": 154 + }, + { + "left_line": 157, + "right_line": 155 + }, + { + "left_line": 158, + "right_line": 156 + }, + { + "left_line": 159, + "right_line": 157 + }, + { + "left_line": 160, + "right_line": 158 + }, + { + "left_line": 161, + "right_line": 159 + }, + { + "left_line": 162, + "right_line": 160 + }, + { + "left_line": 163, + "right_line": 161 + }, + { + "left_line": 164, + "right_line": 162 + }, + { + "left_line": 165, + "right_line": 163 + }, + { + "left_line": 166, + "right_line": 164 + }, + { + "left_line": 167, + "right_line": 165 + }, + { + "left_line": 168, + "right_line": 166 + }, + { + "left_line": 169, + "right_line": 167 + }, + { + "left_line": 170, + "right_line": 168 + }, + { + "left_line": 171, + "right_line": 169 + }, + { + "left_line": 172, + "right_line": 170 + }, + { + "left_line": 173, + "right_line": 171 + }, + { + "left_line": 174, + "right_line": 172 + }, + { + "left_line": 175, + "right_line": 173 + }, + { + "left_line": 176, + "right_line": 174 + }, + { + "left_line": 177, + "right_line": 175 + }, + { + "left_line": 178, + "right_line": 176 + }, + { + "left_line": 179, + "right_line": 177 + }, + { + "left_line": 180, + "right_line": 178 + }, + { + "left_line": 181, + "right_line": 179 + }, + { + "left_line": 182, + "right_line": 180 + }, + { + "left_line": 183, + "right_line": 181 + }, + { + "left_line": 184, + "right_line": 182 + }, + { + "left_line": 185, + "right_line": 183 + }, + { + "left_line": 186, + "right_line": 184 + }, + { + "left_line": 187, + "right_line": 185 + }, + { + "left_line": 188, + "right_line": 186 + }, + { + "left_line": 189, + "right_line": 187 + }, + { + "left_line": 190, + "right_line": 188 + }, + { + "left_line": 191, + "right_line": 189 + }, + { + "left_line": 192, + "right_line": 190 + }, + { + "left_line": 193, + "right_line": 191 + }, + { + "left_line": 194, + "right_line": 192 + }, + { + "left_line": 195, + "right_line": 193 + }, + { + "left_line": 196, + "right_line": 194 + }, + { + "left_line": 197, + "right_line": 195 + }, + { + "left_line": 198, + "right_line": 196 + }, + { + "left_line": 199, + "right_line": 197 + }, + { + "left_line": 200, + "right_line": 198 + }, + { + "left_line": 201, + "right_line": 199 + }, + { + "left_line": 202, + "right_line": 200 + }, + { + "left_line": 203, + "right_line": 201 + }, + { + "left_line": 204, + "right_line": 202 + }, + { + "left_line": 205, + "right_line": 203 + }, + { + "left_line": 206, + "right_line": 204 + }, + { + "left_line": 207, + "right_line": 205 + }, + { + "left_line": 208, + "right_line": 206 + }, + { + "left_line": 209, + "right_line": 207 + }, + { + "left_line": 210, + "right_line": 208 + }, + { + "left_line": 211, + "right_line": 209 + }, + { + "left_line": 212, + "right_line": 210 + }, + { + "left_line": 213, + "right_line": 211 + }, + { + "left_line": 214, + "right_line": 212 + }, + { + "left_line": 215, + "right_line": 213 + }, + { + "left_line": 216, + "right_line": 214 + }, + { + "left_line": 217, + "right_line": 215 + }, + { + "left_line": 218, + "right_line": 216 + }, + { + "left_line": 219, + "right_line": 217 + }, + { + "left_line": 220, + "right_line": 218 + }, + { + "left_line": 221, + "right_line": 219 + }, + { + "left_line": 222, + "right_line": 220 + }, + { + "left_line": 223, + "right_line": 221 + }, + { + "left_line": 224, + "right_line": 222 + }, + { + "left_line": 225, + "right_line": 223 + }, + { + "left_line": 226, + "right_line": 224 + }, + { + "left_line": 227, + "right_line": 225 + }, + { + "left_line": 228, + "right_line": 226 + }, + { + "left_line": 229, + "right_line": 227 + }, + { + "left_line": 230, + "right_line": 228 + }, + { + "left_line": 231, + "right_line": 229 + }, + { + "left_line": 232, + "right_line": 230 + }, + { + "left_line": 233, + "right_line": 231 + }, + { + "left_line": 234, + "right_line": 232 + }, + { + "left_line": 235, + "right_line": 233 + }, + { + "left_line": 236, + "right_line": 234 + }, + { + "left_line": 237, + "right_line": 235 + }, + { + "left_line": 238, + "right_line": 236 + }, + { + "left_line": 239, + "right_line": 237 + }, + { + "left_line": 240, + "right_line": 238 + }, + { + "left_line": 241, + "right_line": 239 + }, + { + "left_line": 242, + "right_line": 240 + }, + { + "left_line": 243, + "right_line": 241 + }, + { + "left_line": 244, + "right_line": 242 + }, + { + "left_line": 245, + "right_line": 243 + }, + { + "left_line": 246, + "right_line": 244 + }, + { + "left_line": 247, + "right_line": 245 + }, + { + "left_line": 248, + "right_line": 246 + }, + { + "left_line": 249, + "right_line": 247 + }, + { + "left_line": 250, + "right_line": 248 + }, + { + "left_line": 251, + "right_line": 249 + }, + { + "left_line": 252, + "right_line": 250 + }, + { + "left_line": 253, + "right_line": 251 + }, + { + "left_line": 254, + "right_line": 252 + }, + { + "left_line": 255, + "right_line": 253 + }, + { + "left_line": 256, + "right_line": 254 + }, + { + "left_line": 257, + "right_line": 255 + }, + { + "left_line": 258, + "right_line": 256 + }, + { + "left_line": 259, + "right_line": 257 + }, + { + "left_line": 260, + "right_line": 258 + }, + { + "left_line": 261, + "right_line": 259 + }, + { + "left_line": 262, + "right_line": 260 + }, + { + "left_line": 263, + "right_line": 261 + }, + { + "left_line": 264, + "right_line": 262 + }, + { + "left_line": 265, + "right_line": 263 + }, + { + "left_line": 266, + "right_line": 264 + }, + { + "left_line": 267, + "right_line": 265 + }, + { + "left_line": 268, + "right_line": 266 + }, + { + "left_line": 269, + "right_line": 267 + }, + { + "left_line": 270, + "right_line": 268 + }, + { + "left_line": 271, + "right_line": 269 + }, + { + "left_line": 272, + "right_line": 270 + }, + { + "left_line": 273, + "right_line": 271 + }, + { + "left_line": 274, + "right_line": 272 + }, + { + "left_line": 275, + "right_line": 273 + }, + { + "left_line": 276, + "right_line": 274 + }, + { + "left_line": 277, + "right_line": 275 + }, + { + "left_line": 278, + "right_line": 276 + }, + { + "left_line": 279, + "right_line": 277 + }, + { + "left_line": 280, + "right_line": 278 + }, + { + "left_line": 281, + "right_line": 279 + }, + { + "left_line": 282, + "right_line": 280 + }, + { + "left_line": 283, + "right_line": 281 + }, + { + "left_line": 284, + "right_line": 282 + }, + { + "left_line": 285, + "right_line": 283 + }, + { + "left_line": 286, + "right_line": 284 + }, + { + "left_line": 287, + "right_line": 285 + }, + { + "left_line": 288, + "right_line": 286 + }, + { + "left_line": 289, + "right_line": 287 + }, + { + "left_line": 290, + "right_line": 288 + }, + { + "left_line": 291, + "right_line": 289 + }, + { + "left_line": 292, + "right_line": 290 + }, + { + "left_line": 293, + "right_line": 291 + }, + { + "left_line": 294, + "right_line": 292 + }, + { + "left_line": 295, + "right_line": 293 + }, + { + "left_line": 296, + "right_line": 294 + }, + { + "left_line": 297, + "right_line": 295 + }, + { + "left_line": 298, + "right_line": 296 + }, + { + "left_line": 299, + "right_line": 297 + }, + { + "left_line": 300, + "right_line": 298 + }, + { + "left_line": 301, + "right_line": 299 + }, + { + "left_line": 302, + "right_line": 300 + }, + { + "left_line": 303, + "right_line": 301 + }, + { + "left_line": 304, + "right_line": 302 + }, + { + "left_line": 305, + "right_line": 303 + }, + { + "left_line": 306, + "right_line": 304 + }, + { + "left_line": 307, + "right_line": 305 + }, + { + "left_line": 308, + "right_line": 306 + }, + { + "left_line": 309, + "right_line": 307 + }, + { + "left_line": 310, + "right_line": 308 + }, + { + "left_line": 311, + "right_line": 309 + }, + { + "left_line": 312, + "right_line": 310 + }, + { + "left_line": 313, + "right_line": 311 + }, + { + "left_line": 314, + "right_line": 312 + }, + { + "left_line": 315, + "right_line": 313 + }, + { + "left_line": 316, + "right_line": 314 + }, + { + "left_line": 317, + "right_line": 315 + }, + { + "left_line": 318, + "right_line": 316 + }, + { + "left_line": 319, + "right_line": 317 + }, + { + "left_line": 320, + "right_line": 318 + }, + { + "left_line": 321, + "right_line": 319 + }, + { + "left_line": 322, + "right_line": 320 + }, + { + "left_line": 323, + "right_line": 321 + }, + { + "left_line": 324, + "right_line": 322 + }, + { + "left_line": 325, + "right_line": 323 + }, + { + "left_line": 326, + "right_line": 324 + }, + { + "left_line": 327, + "right_line": 325 + }, + { + "left_line": 328, + "right_line": 326 + }, + { + "left_line": 329, + "right_line": 327 + }, + { + "left_line": 330, + "right_line": 328 + }, + { + "left_line": 331, + "right_line": 329 + }, + { + "left_line": 332, + "right_line": 330 + }, + { + "left_line": 333, + "right_line": 331 + }, + { + "left_line": 334, + "right_line": 332 + }, + { + "left_line": 335, + "right_line": 333 + }, + { + "left_line": 336, + "right_line": 334 + }, + { + "left_line": 337, + "right_line": 335 + }, + { + "left_line": 338, + "right_line": 336 + }, + { + "left_line": 339, + "right_line": 337 + }, + { + "left_line": 340, + "right_line": 338 + }, + { + "left_line": 341, + "right_line": 339 + }, + { + "left_line": 342, + "right_line": 340 + }, + { + "left_line": 343, + "right_line": 341 + }, + { + "left_line": 344, + "right_line": 342 + }, + { + "left_line": 345, + "right_line": 343 + }, + { + "left_line": 346, + "right_line": 344 + }, + { + "left_line": 347, + "right_line": 345 + }, + { + "left_line": 348, + "right_line": 346 + }, + { + "left_line": 349, + "right_line": 347 + }, + { + "left_line": 350, + "right_line": 348 + }, + { + "left_line": 351, + "right_line": 349 + }, + { + "left_line": 352, + "right_line": 350 + }, + { + "left_line": 353, + "right_line": 351 + }, + { + "left_line": 354, + "right_line": 352 + }, + { + "left_line": 355, + "right_line": 353 + }, + { + "left_line": 356, + "right_line": 354 + }, + { + "left_line": 357, + "right_line": 355 + }, + { + "left_line": 358, + "right_line": 356 + }, + { + "left_line": 359, + "right_line": 357 + }, + { + "left_line": 360, + "right_line": 358 + }, + { + "left_line": 361, + "right_line": 359 + }, + { + "left_line": 362, + "right_line": 360 + }, + { + "left_line": 363, + "right_line": 361 + }, + { + "left_line": 364, + "right_line": 362 + }, + { + "left_line": 365, + "right_line": 363 + }, + { + "left_line": 366, + "right_line": 364 + }, + { + "left_line": 367, + "right_line": 365 + }, + { + "left_line": 368, + "right_line": 366 + }, + { + "left_line": 369, + "right_line": 367 + }, + { + "left_line": 370, + "right_line": 368 + }, + { + "left_line": 371, + "right_line": 369 + }, + { + "left_line": 372, + "right_line": 370 + }, + { + "left_line": 373, + "right_line": 371 + }, + { + "left_line": 374, + "right_line": 372 + }, + { + "left_line": 375, + "right_line": 373 + }, + { + "left_line": 376, + "right_line": 374 + }, + { + "left_line": 377, + "right_line": 375 + }, + { + "left_line": 378, + "right_line": 376 + }, + { + "left_line": 379, + "right_line": 377 + }, + { + "left_line": 380, + "right_line": 378 + }, + { + "left_line": 381, + "right_line": 379 + }, + { + "left_line": 382, + "right_line": 380 + }, + { + "left_line": 383, + "right_line": 381 + }, + { + "left_line": 384, + "right_line": 382 + }, + { + "left_line": 385, + "right_line": 383 + }, + { + "left_line": 386, + "right_line": 384 + }, + { + "left_line": 387, + "right_line": 385 + }, + { + "left_line": 388, + "right_line": 386 + }, + { + "left_line": 389, + "right_line": 387 + }, + { + "left_line": 390, + "right_line": 388 + }, + { + "left_line": 391, + "right_line": 389 + }, + { + "left_line": 392, + "right_line": 390 + }, + { + "left_line": 393, + "right_line": 391 + }, + { + "left_line": 394, + "right_line": 392 + }, + { + "left_line": 395, + "right_line": 393 + }, + { + "left_line": 396, + "right_line": 394 + }, + { + "left_line": 397, + "right_line": 395 + }, + { + "left_line": 398, + "right_line": 396 + }, + { + "left_line": 399, + "right_line": 397 + }, + { + "left_line": 400, + "right_line": 398 + }, + { + "left_line": 401, + "right_line": 399 + }, + { + "left_line": 402, + "right_line": 400 + }, + { + "left_line": 403, + "right_line": 401 + }, + { + "left_line": 404, + "right_line": 402 + }, + { + "left_line": 405, + "right_line": 403 + }, + { + "left_line": 406, + "right_line": 404 + }, + { + "left_line": 407, + "right_line": 405 + }, + { + "left_line": 408, + "right_line": 406 + }, + { + "left_line": 409, + "right_line": 407 + }, + { + "left_line": 410, + "right_line": 408 + }, + { + "left_line": 411, + "right_line": 409 + }, + { + "left_line": 412, + "right_line": 410 + }, + { + "left_line": 413, + "right_line": 411 + }, + { + "left_line": 414, + "right_line": 412 + }, + { + "left_line": 415, + "right_line": 413 + }, + { + "left_line": 416, + "right_line": 414 + }, + { + "left_line": 417, + "right_line": 415 + }, + { + "left_line": 418, + "right_line": 416 + }, + { + "left_line": 419, + "right_line": 417 + }, + { + "left_line": 420, + "right_line": 418 + }, + { + "left_line": 421, + "right_line": 419 + }, + { + "left_line": 422, + "right_line": 420 + }, + { + "left_line": 423, + "right_line": 421 + }, + { + "left_line": 424, + "right_line": 422 + }, + { + "left_line": 425, + "right_line": 423 + }, + { + "left_line": 426, + "right_line": 424 + }, + { + "left_line": 427, + "right_line": 425 + }, + { + "left_line": 428, + "right_line": 426 + }, + { + "left_line": 429, + "right_line": 427 + }, + { + "left_line": 430, + "right_line": 428 + }, + { + "left_line": 431, + "right_line": 429 + }, + { + "left_line": 432, + "right_line": 430 + }, + { + "left_line": 433, + "right_line": 431 + }, + { + "left_line": 434, + "right_line": 432 + }, + { + "left_line": 435, + "right_line": 433 + }, + { + "left_line": 436, + "right_line": 434 + }, + { + "left_line": 437, + "right_line": 435 + }, + { + "left_line": 438, + "right_line": 436 + }, + { + "left_line": 439, + "right_line": 437 + }, + { + "left_line": 440, + "right_line": 438 + }, + { + "left_line": 441, + "right_line": 439 + }, + { + "left_line": 442, + "right_line": 440 + }, + { + "left_line": 443, + "right_line": 441 + }, + { + "left_line": 444, + "right_line": 442 + }, + { + "left_line": 445, + "right_line": 443 + }, + { + "left_line": 446, + "right_line": 444 + }, + { + "left_line": 447, + "right_line": 445 + }, + { + "left_line": 448, + "right_line": 446 + }, + { + "left_line": 449, + "right_line": 447 + }, + { + "left_line": 450, + "right_line": 448 + }, + { + "left_line": 451, + "right_line": 449 + }, + { + "left_line": 452, + "right_line": 450 + }, + { + "left_line": 453, + "right_line": 451 + }, + { + "left_line": 454, + "right_line": 452 + }, + { + "left_line": 455, + "right_line": 453 + }, + { + "left_line": 456, + "right_line": 454 + }, + { + "left_line": 457, + "right_line": 455 + }, + { + "left_line": 458, + "right_line": 456 + }, + { + "left_line": 459, + "right_line": 457 + }, + { + "left_line": 460, + "right_line": 458 + }, + { + "left_line": 461, + "right_line": 459 + }, + { + "left_line": 462, + "right_line": 460 + }, + { + "left_line": 463, + "right_line": 461 + }, + { + "left_line": 464, + "right_line": 462 + }, + { + "left_line": 465, + "right_line": 463 + }, + { + "left_line": 466, + "right_line": 464 + }, + { + "left_line": 467, + "right_line": 465 + }, + { + "left_line": 468, + "right_line": 466 + }, + { + "left_line": 469, + "right_line": 467 + }, + { + "left_line": 470, + "right_line": 468 + }, + { + "left_line": 471, + "right_line": 469 + }, + { + "left_line": 472, + "right_line": 470 + }, + { + "left_line": 473, + "right_line": 471 + }, + { + "left_line": 474, + "right_line": 472 + }, + { + "left_line": 475, + "right_line": 473 + }, + { + "left_line": 476, + "right_line": 474 + }, + { + "left_line": 477, + "right_line": 475 + }, + { + "left_line": 478, + "right_line": 476 + }, + { + "left_line": 479, + "right_line": 477 + }, + { + "left_line": 480, + "right_line": 478 + }, + { + "left_line": 481, + "right_line": 479 + }, + { + "left_line": 482, + "right_line": 480 + }, + { + "left_line": 483, + "right_line": 481 + }, + { + "left_line": 484, + "right_line": 482 + }, + { + "left_line": 485, + "right_line": 483 + }, + { + "left_line": 486, + "right_line": 484 + }, + { + "left_line": 487, + "right_line": 485 + }, + { + "left_line": 488, + "right_line": 486 + }, + { + "left_line": 489, + "right_line": 487 + }, + { + "left_line": 490, + "right_line": 488 + }, + { + "left_line": 491, + "right_line": 489 + }, + { + "left_line": 492, + "right_line": 490 + }, + { + "left_line": 493, + "right_line": 491 + }, + { + "left_line": 494, + "right_line": 492 + }, + { + "left_line": 495, + "right_line": 493 + }, + { + "left_line": 496, + "right_line": 494 + }, + { + "left_line": 497, + "right_line": 495 + }, + { + "left_line": 498, + "right_line": 496 + }, + { + "left_line": 499, + "right_line": 497 + }, + { + "left_line": 500, + "right_line": 498 + }, + { + "left_line": 501, + "right_line": 499 + }, + { + "left_line": 502, + "right_line": 500 + }, + { + "left_line": 503, + "right_line": 501 + }, + { + "left_line": 504, + "right_line": 502 + }, + { + "left_line": 505, + "right_line": 503 + }, + { + "left_line": 506, + "right_line": 504 + }, + { + "left_line": 507, + "right_line": 505 + }, + { + "left_line": 508, + "right_line": 506 + }, + { + "left_line": 509, + "right_line": 507 + }, + { + "left_line": 510, + "right_line": 508 + }, + { + "left_line": 511, + "right_line": 509 + }, + { + "left_line": 512, + "right_line": 510 + }, + { + "left_line": 513, + "right_line": 511 + }, + { + "left_line": 514, + "right_line": 512 + }, + { + "left_line": 515, + "right_line": 513 + }, + { + "left_line": 516, + "right_line": 514 + }, + { + "left_line": 517, + "right_line": 515 + }, + { + "left_line": 518, + "right_line": 516 + }, + { + "left_line": 519, + "right_line": 517 + }, + { + "left_line": 520, + "right_line": 518 + }, + { + "left_line": 521, + "right_line": 519 + }, + { + "left_line": 522, + "right_line": 520 + }, + { + "left_line": 523, + "right_line": 521 + }, + { + "left_line": 524, + "right_line": 522 + }, + { + "left_line": 525, + "right_line": 523 + }, + { + "left_line": 526, + "right_line": 524 + }, + { + "left_line": 527, + "right_line": 525 + }, + { + "left_line": 528, + "right_line": 526 + }, + { + "left_line": 529, + "right_line": 527 + }, + { + "left_line": 530, + "right_line": 528 + }, + { + "left_line": 531, + "right_line": 529 + }, + { + "left_line": 532, + "right_line": 530 + }, + { + "left_line": 533, + "right_line": 531 + }, + { + "left_line": 534, + "right_line": 532 + }, + { + "left_line": 535, + "right_line": 533 + }, + { + "left_line": 536, + "right_line": 534 + }, + { + "left_line": 537, + "right_line": 535 + }, + { + "left_line": 538, + "right_line": 536 + }, + { + "left_line": 539, + "right_line": 537 + }, + { + "left_line": 540, + "right_line": 538 + }, + { + "left_line": 541, + "right_line": 539 + }, + { + "left_line": 542, + "right_line": 540 + }, + { + "left_line": 543, + "right_line": 541 + }, + { + "left_line": 544, + "right_line": 542 + }, + { + "left_line": 545, + "right_line": 543 + }, + { + "left_line": 546, + "right_line": 544 + }, + { + "left_line": 547, + "right_line": 545 + }, + { + "left_line": 548, + "right_line": 546 + }, + { + "left_line": 549, + "right_line": 547 + }, + { + "left_line": 550, + "right_line": 548 + }, + { + "left_line": 551, + "right_line": 549 + }, + { + "left_line": 552, + "right_line": 550 + }, + { + "left_line": 553, + "right_line": 551 + }, + { + "left_line": 554, + "right_line": 552 + }, + { + "left_line": 555, + "right_line": 553 + }, + { + "left_line": 556, + "right_line": 554 + }, + { + "left_line": 557, + "right_line": 555 + }, + { + "left_line": 558, + "right_line": 556 + }, + { + "left_line": 559, + "right_line": 557 + }, + { + "left_line": 560, + "right_line": 558 + }, + { + "left_line": 561, + "right_line": 559 + }, + { + "left_line": 562, + "right_line": 560 + }, + { + "left_line": 563, + "right_line": 561 + }, + { + "left_line": 564, + "right_line": 562 + }, + { + "left_line": 565, + "right_line": 563 + }, + { + "left_line": 566, + "right_line": 564 + }, + { + "left_line": 567, + "right_line": 565 + }, + { + "left_line": 568, + "right_line": 566 + }, + { + "left_line": 569, + "right_line": 567 + }, + { + "left_line": 570, + "right_line": 568 + }, + { + "left_line": 571, + "right_line": 569 + }, + { + "left_line": 572, + "right_line": 570 + }, + { + "left_line": 573, + "right_line": 571 + }, + { + "left_line": 574, + "right_line": 572 + }, + { + "left_line": 575, + "right_line": 573 + }, + { + "left_line": 576, + "right_line": 574 + }, + { + "left_line": 577, + "right_line": 575 + }, + { + "left_line": 578, + "right_line": 576 + }, + { + "left_line": 579, + "right_line": 577 + }, + { + "left_line": 580, + "right_line": 578 + }, + { + "left_line": 581, + "right_line": 579 + }, + { + "left_line": 582, + "right_line": 580 + }, + { + "left_line": 583, + "right_line": 581 + }, + { + "left_line": 584, + "right_line": 582 + }, + { + "left_line": 585, + "right_line": 583 + }, + { + "left_line": 586, + "right_line": 584 + }, + { + "left_line": 587, + "right_line": 585 + }, + { + "left_line": 588, + "right_line": 586 + }, + { + "left_line": 589, + "right_line": 587 + }, + { + "left_line": 590, + "right_line": 588 + }, + { + "left_line": 591, + "right_line": 589 + }, + { + "left_line": 592, + "right_line": 590 + }, + { + "left_line": 593, + "right_line": 591 + }, + { + "left_line": 594, + "right_line": 592 + }, + { + "left_line": 595, + "right_line": 593 + }, + { + "left_line": 596, + "right_line": 594 + }, + { + "left_line": 597, + "right_line": 595 + }, + { + "left_line": 598, + "right_line": 596 + }, + { + "left_line": 599, + "right_line": 597 + }, + { + "left_line": 600, + "right_line": 598 + }, + { + "left_line": 601, + "right_line": 599 + }, + { + "left_line": 602, + "right_line": 600 + }, + { + "left_line": 603, + "right_line": 601 + }, + { + "left_line": 604, + "right_line": 602 + }, + { + "left_line": 605, + "right_line": 603 + }, + { + "left_line": 606, + "right_line": 604 + }, + { + "left_line": 607, + "right_line": 605 + }, + { + "left_line": 608, + "right_line": 606 + }, + { + "left_line": 609, + "right_line": 607 + }, + { + "left_line": 610, + "right_line": 608 + }, + { + "left_line": 611, + "right_line": 609 + }, + { + "left_line": 612, + "right_line": 610 + }, + { + "left_line": 613, + "right_line": 611 + }, + { + "left_line": 614, + "right_line": 612 + }, + { + "left_line": 615, + "right_line": 613 + }, + { + "left_line": 616, + "right_line": 614 + }, + { + "left_line": 617, + "right_line": 615 + }, + { + "left_line": 618, + "right_line": 616 + }, + { + "left_line": 619, + "right_line": 617 + }, + { + "left_line": 620, + "right_line": 618 + }, + { + "left_line": 621, + "right_line": 619 + }, + { + "left_line": 622, + "right_line": 620 + }, + { + "left_line": 623, + "right_line": 621 + }, + { + "left_line": 624, + "right_line": 622 + }, + { + "left_line": 625, + "right_line": 623 + }, + { + "left_line": 626, + "right_line": -1 + }, + { + "left_line": 627, + "right_line": 624 + }, + { + "left_line": 628, + "right_line": -1 + }, + { + "left_line": 629, + "right_line": 625 + }, + { + "left_line": 630, + "right_line": 626 + }, + { + "left_line": 631, + "right_line": 627 + }, + { + "left_line": 632, + "right_line": 628 + }, + { + "left_line": 633, + "right_line": 629 + }, + { + "left_line": 634, + "right_line": 630 + }, + { + "left_line": 635, + "right_line": 631 + }, + { + "left_line": 636, + "right_line": 632 + }, + { + "left_line": 637, + "right_line": 633 + }, + { + "left_line": 638, + "right_line": 634 + }, + { + "left_line": 639, + "right_line": 635 + }, + { + "left_line": 640, + "right_line": 636 + }, + { + "left_line": 641, + "right_line": 637 + }, + { + "left_line": 642, + "right_line": 638 + }, + { + "left_line": 643, + "right_line": 639 + }, + { + "left_line": 644, + "right_line": 640 + }, + { + "left_line": 645, + "right_line": 641 + }, + { + "left_line": 646, + "right_line": 642 + }, + { + "left_line": 647, + "right_line": 643 + }, + { + "left_line": 648, + "right_line": 644 + }, + { + "left_line": 649, + "right_line": 645 + }, + { + "left_line": 650, + "right_line": 646 + }, + { + "left_line": 651, + "right_line": 647 + }, + { + "left_line": 652, + "right_line": 648 + }, + { + "left_line": 653, + "right_line": 649 + }, + { + "left_line": 654, + "right_line": 650 + }, + { + "left_line": 655, + "right_line": 651 + }, + { + "left_line": 656, + "right_line": 652 + }, + { + "left_line": 657, + "right_line": 653 + }, + { + "left_line": 658, + "right_line": 654 + }, + { + "left_line": 659, + "right_line": 655 + }, + { + "left_line": 660, + "right_line": 656 + }, + { + "left_line": 661, + "right_line": 657 + }, + { + "left_line": 662, + "right_line": 658 + }, + { + "left_line": 663, + "right_line": 659 + }, + { + "left_line": 664, + "right_line": 660 + }, + { + "left_line": 665, + "right_line": 661 + }, + { + "left_line": 666, + "right_line": 662 + }, + { + "left_line": 667, + "right_line": 663 + }, + { + "left_line": 668, + "right_line": 664 + }, + { + "left_line": 669, + "right_line": 665 + }, + { + "left_line": 670, + "right_line": 666 + }, + { + "left_line": 671, + "right_line": 667 + }, + { + "left_line": 672, + "right_line": 668 + }, + { + "left_line": 673, + "right_line": 669 + }, + { + "left_line": 674, + "right_line": 670 + }, + { + "left_line": 675, + "right_line": 671 + }, + { + "left_line": 676, + "right_line": 672 + }, + { + "left_line": 677, + "right_line": 673 + }, + { + "left_line": 678, + "right_line": 674 + }, + { + "left_line": 679, + "right_line": 675 + }, + { + "left_line": 680, + "right_line": 676 + }, + { + "left_line": 681, + "right_line": 677 + }, + { + "left_line": 682, + "right_line": 678 + }, + { + "left_line": 683, + "right_line": 679 + }, + { + "left_line": 684, + "right_line": 680 + }, + { + "left_line": 685, + "right_line": 681 + }, + { + "left_line": 686, + "right_line": 682 + }, + { + "left_line": 687, + "right_line": 683 + }, + { + "left_line": 688, + "right_line": 684 + }, + { + "left_line": 689, + "right_line": 685 + }, + { + "left_line": 690, + "right_line": 686 + }, + { + "left_line": 691, + "right_line": 687 + }, + { + "left_line": 692, + "right_line": 688 + }, + { + "left_line": 693, + "right_line": 689 + }, + { + "left_line": 694, + "right_line": 690 + }, + { + "left_line": 695, + "right_line": 691 + }, + { + "left_line": 696, + "right_line": 692 + }, + { + "left_line": 697, + "right_line": 693 + }, + { + "left_line": 698, + "right_line": 694 + }, + { + "left_line": 699, + "right_line": 695 + }, + { + "left_line": 700, + "right_line": 696 + }, + { + "left_line": 701, + "right_line": 697 + }, + { + "left_line": 702, + "right_line": 698 + }, + { + "left_line": 703, + "right_line": 699 + }, + { + "left_line": 704, + "right_line": 700 + }, + { + "left_line": 705, + "right_line": 701 + }, + { + "left_line": 706, + "right_line": 702 + }, + { + "left_line": 707, + "right_line": 703 + }, + { + "left_line": 708, + "right_line": 704 + }, + { + "left_line": 709, + "right_line": 705 + }, + { + "left_line": 710, + "right_line": 706 + }, + { + "left_line": 711, + "right_line": 707 + }, + { + "left_line": 712, + "right_line": 708 + }, + { + "left_line": 713, + "right_line": 709 + }, + { + "left_line": 714, + "right_line": 710 + }, + { + "left_line": 715, + "right_line": 711 + }, + { + "left_line": 716, + "right_line": 712 + }, + { + "left_line": 717, + "right_line": 713 + }, + { + "left_line": 718, + "right_line": 714 + }, + { + "left_line": 719, + "right_line": 715 + }, + { + "left_line": 720, + "right_line": 716 + }, + { + "left_line": 721, + "right_line": 717 + }, + { + "left_line": 722, + "right_line": 718 + }, + { + "left_line": 723, + "right_line": 719 + }, + { + "left_line": 724, + "right_line": 720 + }, + { + "left_line": 725, + "right_line": 721 + }, + { + "left_line": 726, + "right_line": 722 + }, + { + "left_line": 727, + "right_line": 723 + }, + { + "left_line": 728, + "right_line": 724 + }, + { + "left_line": 729, + "right_line": 725 + }, + { + "left_line": 730, + "right_line": 726 + }, + { + "left_line": 731, + "right_line": 727 + }, + { + "left_line": 732, + "right_line": 728 + }, + { + "left_line": 733, + "right_line": 729 + }, + { + "left_line": 734, + "right_line": 730 + }, + { + "left_line": 735, + "right_line": 731 + }, + { + "left_line": 736, + "right_line": 732 + }, + { + "left_line": 737, + "right_line": 733 + }, + { + "left_line": 738, + "right_line": 734 + }, + { + "left_line": 739, + "right_line": 735 + }, + { + "left_line": 740, + "right_line": 736 + }, + { + "left_line": 741, + "right_line": 737 + }, + { + "left_line": 742, + "right_line": 738 + }, + { + "left_line": 743, + "right_line": 739 + }, + { + "left_line": 744, + "right_line": 740 + }, + { + "left_line": 745, + "right_line": 741 + }, + { + "left_line": 746, + "right_line": 742 + }, + { + "left_line": 747, + "right_line": 743 + }, + { + "left_line": 748, + "right_line": 744 + }, + { + "left_line": 749, + "right_line": 745 + }, + { + "left_line": 750, + "right_line": 746 + }, + { + "left_line": 751, + "right_line": 747 + }, + { + "left_line": 752, + "right_line": 748 + }, + { + "left_line": 753, + "right_line": 749 + }, + { + "left_line": 754, + "right_line": 750 + }, + { + "left_line": 755, + "right_line": 751 + }, + { + "left_line": 756, + "right_line": 752 + }, + { + "left_line": 757, + "right_line": 753 + }, + { + "left_line": 758, + "right_line": 754 + }, + { + "left_line": 759, + "right_line": 755 + }, + { + "left_line": 760, + "right_line": 756 + }, + { + "left_line": 761, + "right_line": 757 + }, + { + "left_line": 762, + "right_line": 758 + }, + { + "left_line": 763, + "right_line": 759 + }, + { + "left_line": 764, + "right_line": 760 + }, + { + "left_line": 765, + "right_line": 761 + }, + { + "left_line": 766, + "right_line": 762 + }, + { + "left_line": 767, + "right_line": 763 + }, + { + "left_line": 768, + "right_line": 764 + }, + { + "left_line": 769, + "right_line": 765 + }, + { + "left_line": 770, + "right_line": 766 + }, + { + "left_line": 771, + "right_line": 767 + }, + { + "left_line": 772, + "right_line": 768 + }, + { + "left_line": 773, + "right_line": 769 + }, + { + "left_line": 774, + "right_line": 770 + }, + { + "left_line": 775, + "right_line": 771 + }, + { + "left_line": 776, + "right_line": 772 + }, + { + "left_line": 777, + "right_line": 773 + }, + { + "left_line": 778, + "right_line": 774 + }, + { + "left_line": 779, + "right_line": 775 + }, + { + "left_line": 780, + "right_line": 776 + }, + { + "left_line": 781, + "right_line": 777 + }, + { + "left_line": 782, + "right_line": 778 + }, + { + "left_line": 783, + "right_line": 779 + }, + { + "left_line": 784, + "right_line": 780 + }, + { + "left_line": 785, + "right_line": 781 + }, + { + "left_line": 786, + "right_line": 782 + }, + { + "left_line": 787, + "right_line": 783 + }, + { + "left_line": 788, + "right_line": 784 + }, + { + "left_line": 789, + "right_line": 785 + }, + { + "left_line": 790, + "right_line": 786 + }, + { + "left_line": 791, + "right_line": 787 + }, + { + "left_line": 792, + "right_line": 788 + }, + { + "left_line": 793, + "right_line": 789 + }, + { + "left_line": 794, + "right_line": 790 + }, + { + "left_line": 795, + "right_line": 791 + }, + { + "left_line": 796, + "right_line": 792 + }, + { + "left_line": 797, + "right_line": 793 + }, + { + "left_line": 798, + "right_line": 794 + }, + { + "left_line": 799, + "right_line": 795 + }, + { + "left_line": 800, + "right_line": 796 + }, + { + "left_line": 801, + "right_line": 797 + }, + { + "left_line": 802, + "right_line": 798 + }, + { + "left_line": 803, + "right_line": 799 + }, + { + "left_line": 804, + "right_line": 800 + }, + { + "left_line": 805, + "right_line": 801 + }, + { + "left_line": 806, + "right_line": 802 + }, + { + "left_line": 807, + "right_line": 803 + }, + { + "left_line": 808, + "right_line": 804 + }, + { + "left_line": 809, + "right_line": 805 + }, + { + "left_line": 810, + "right_line": 806 + }, + { + "left_line": 811, + "right_line": 807 + }, + { + "left_line": 812, + "right_line": 808 + }, + { + "left_line": 813, + "right_line": 809 + }, + { + "left_line": 814, + "right_line": 810 + }, + { + "left_line": 815, + "right_line": 811 + }, + { + "left_line": 816, + "right_line": 812 + }, + { + "left_line": 817, + "right_line": 813 + }, + { + "left_line": 818, + "right_line": 814 + }, + { + "left_line": 819, + "right_line": 815 + }, + { + "left_line": 820, + "right_line": 816 + }, + { + "left_line": 821, + "right_line": 817 + }, + { + "left_line": 822, + "right_line": 818 + }, + { + "left_line": 823, + "right_line": 819 + }, + { + "left_line": 824, + "right_line": 820 + }, + { + "left_line": 825, + "right_line": 821 + }, + { + "left_line": 826, + "right_line": 822 + }, + { + "left_line": 827, + "right_line": 823 + }, + { + "left_line": 828, + "right_line": 824 + }, + { + "left_line": 829, + "right_line": 825 + }, + { + "left_line": 830, + "right_line": 826 + }, + { + "left_line": 831, + "right_line": 827 + }, + { + "left_line": 832, + "right_line": 828 + }, + { + "left_line": 833, + "right_line": 829 + }, + { + "left_line": 834, + "right_line": 830 + }, + { + "left_line": 835, + "right_line": 831 + }, + { + "left_line": 836, + "right_line": 832 + }, + { + "left_line": 837, + "right_line": 833 + }, + { + "left_line": 838, + "right_line": 834 + }, + { + "left_line": 839, + "right_line": 835 + }, + { + "left_line": 840, + "right_line": 836 + }, + { + "left_line": 841, + "right_line": 837 + }, + { + "left_line": 842, + "right_line": 838 + }, + { + "left_line": 843, + "right_line": 839 + }, + { + "left_line": 844, + "right_line": 840 + }, + { + "left_line": 845, + "right_line": 841 + }, + { + "left_line": 846, + "right_line": 842 + }, + { + "left_line": 847, + "right_line": 843 + }, + { + "left_line": 848, + "right_line": 844 + }, + { + "left_line": 849, + "right_line": 845 + }, + { + "left_line": 850, + "right_line": 846 + }, + { + "left_line": 851, + "right_line": 847 + }, + { + "left_line": 852, + "right_line": 848 + }, + { + "left_line": 853, + "right_line": 849 + }, + { + "left_line": 854, + "right_line": 850 + }, + { + "left_line": 855, + "right_line": 851 + }, + { + "left_line": 856, + "right_line": 852 + }, + { + "left_line": 857, + "right_line": 853 + }, + { + "left_line": 858, + "right_line": 854 + }, + { + "left_line": 859, + "right_line": 855 + }, + { + "left_line": 860, + "right_line": 856 + }, + { + "left_line": 861, + "right_line": 857 + }, + { + "left_line": 862, + "right_line": 858 + }, + { + "left_line": 863, + "right_line": 859 + }, + { + "left_line": 864, + "right_line": 860 + }, + { + "left_line": 865, + "right_line": 861 + }, + { + "left_line": 866, + "right_line": 862 + }, + { + "left_line": 867, + "right_line": 863 + }, + { + "left_line": 868, + "right_line": 864 + }, + { + "left_line": 869, + "right_line": 865 + }, + { + "left_line": 870, + "right_line": 866 + }, + { + "left_line": 871, + "right_line": 867 + }, + { + "left_line": 872, + "right_line": 868 + }, + { + "left_line": 873, + "right_line": 869 + }, + { + "left_line": 874, + "right_line": 870 + }, + { + "left_line": 875, + "right_line": 871 + }, + { + "left_line": 876, + "right_line": 872 + }, + { + "left_line": 877, + "right_line": 873 + }, + { + "left_line": 878, + "right_line": 874 + }, + { + "left_line": 879, + "right_line": 875 + }, + { + "left_line": 880, + "right_line": 876 + }, + { + "left_line": 881, + "right_line": 877 + }, + { + "left_line": 882, + "right_line": 878 + }, + { + "left_line": 883, + "right_line": 879 + }, + { + "left_line": 884, + "right_line": 880 + }, + { + "left_line": 885, + "right_line": 881 + }, + { + "left_line": 886, + "right_line": 882 + }, + { + "left_line": 887, + "right_line": 883 + }, + { + "left_line": 888, + "right_line": 884 + }, + { + "left_line": 889, + "right_line": 885 + }, + { + "left_line": 890, + "right_line": 886 + }, + { + "left_line": 891, + "right_line": 887 + }, + { + "left_line": 892, + "right_line": 888 + }, + { + "left_line": 893, + "right_line": 889 + }, + { + "left_line": 894, + "right_line": 890 + }, + { + "left_line": 895, + "right_line": 891 + }, + { + "left_line": 896, + "right_line": 892 + }, + { + "left_line": 897, + "right_line": 893 + }, + { + "left_line": 898, + "right_line": 894 + }, + { + "left_line": 899, + "right_line": 895 + }, + { + "left_line": 900, + "right_line": 896 + }, + { + "left_line": 901, + "right_line": 897 + }, + { + "left_line": 902, + "right_line": 898 + }, + { + "left_line": 903, + "right_line": 899 + }, + { + "left_line": 904, + "right_line": 900 + }, + { + "left_line": 905, + "right_line": 901 + }, + { + "left_line": 906, + "right_line": 902 + }, + { + "left_line": 907, + "right_line": 903 + }, + { + "left_line": 908, + "right_line": 904 + }, + { + "left_line": 909, + "right_line": 905 + }, + { + "left_line": 910, + "right_line": 906 + }, + { + "left_line": 911, + "right_line": 907 + }, + { + "left_line": 912, + "right_line": 908 + }, + { + "left_line": 913, + "right_line": 909 + }, + { + "left_line": 914, + "right_line": 910 + }, + { + "left_line": 915, + "right_line": 911 + }, + { + "left_line": 916, + "right_line": 912 + }, + { + "left_line": 917, + "right_line": 913 + }, + { + "left_line": 918, + "right_line": 914 + }, + { + "left_line": 919, + "right_line": 915 + }, + { + "left_line": 920, + "right_line": 916 + }, + { + "left_line": 921, + "right_line": 917 + }, + { + "left_line": 922, + "right_line": 918 + }, + { + "left_line": 923, + "right_line": 919 + }, + { + "left_line": 924, + "right_line": 920 + }, + { + "left_line": 925, + "right_line": 921 + }, + { + "left_line": 926, + "right_line": 922 + }, + { + "left_line": 927, + "right_line": 923 + }, + { + "left_line": 928, + "right_line": 924 + }, + { + "left_line": 929, + "right_line": 925 + }, + { + "left_line": 930, + "right_line": 926 + }, + { + "left_line": 931, + "right_line": 927 + }, + { + "left_line": 932, + "right_line": 928 + }, + { + "left_line": 933, + "right_line": 929 + }, + { + "left_line": 934, + "right_line": 930 + }, + { + "left_line": 935, + "right_line": 931 + }, + { + "left_line": 936, + "right_line": 932 + }, + { + "left_line": 937, + "right_line": 933 + }, + { + "left_line": 938, + "right_line": 934 + }, + { + "left_line": 939, + "right_line": 935 + }, + { + "left_line": 940, + "right_line": 936 + }, + { + "left_line": 941, + "right_line": 937 + }, + { + "left_line": 942, + "right_line": 938 + }, + { + "left_line": 943, + "right_line": 939 + }, + { + "left_line": 944, + "right_line": 940 + }, + { + "left_line": 945, + "right_line": 941 + }, + { + "left_line": 946, + "right_line": 942 + }, + { + "left_line": 947, + "right_line": 943 + }, + { + "left_line": 948, + "right_line": 944 + }, + { + "left_line": 949, + "right_line": 945 + }, + { + "left_line": 950, + "right_line": 946 + }, + { + "left_line": 951, + "right_line": 947 + }, + { + "left_line": 952, + "right_line": 948 + }, + { + "left_line": 953, + "right_line": 949 + }, + { + "left_line": 954, + "right_line": 950 + }, + { + "left_line": 955, + "right_line": 951 + }, + { + "left_line": 956, + "right_line": 952 + }, + { + "left_line": 957, + "right_line": 953 + }, + { + "left_line": 958, + "right_line": 954 + }, + { + "left_line": 959, + "right_line": 955 + }, + { + "left_line": 960, + "right_line": 956 + }, + { + "left_line": 961, + "right_line": 957 + }, + { + "left_line": 962, + "right_line": 958 + }, + { + "left_line": 963, + "right_line": 959 + }, + { + "left_line": 964, + "right_line": 960 + }, + { + "left_line": 965, + "right_line": 961 + }, + { + "left_line": 966, + "right_line": 962 + }, + { + "left_line": 967, + "right_line": 963 + }, + { + "left_line": 968, + "right_line": 964 + }, + { + "left_line": 969, + "right_line": 965 + }, + { + "left_line": 970, + "right_line": 966 + }, + { + "left_line": 971, + "right_line": 967 + }, + { + "left_line": 972, + "right_line": 968 + }, + { + "left_line": 973, + "right_line": 969 + }, + { + "left_line": 974, + "right_line": 970 + }, + { + "left_line": 975, + "right_line": 971 + }, + { + "left_line": 976, + "right_line": 972 + }, + { + "left_line": 977, + "right_line": 973 + }, + { + "left_line": 978, + "right_line": 974 + }, + { + "left_line": 979, + "right_line": 975 + }, + { + "left_line": 980, + "right_line": 976 + }, + { + "left_line": 981, + "right_line": 977 + }, + { + "left_line": 982, + "right_line": 978 + }, + { + "left_line": 983, + "right_line": 979 + }, + { + "left_line": 984, + "right_line": 980 + }, + { + "left_line": 985, + "right_line": 981 + }, + { + "left_line": 986, + "right_line": 982 + }, + { + "left_line": 987, + "right_line": 983 + }, + { + "left_line": 988, + "right_line": 984 + }, + { + "left_line": 989, + "right_line": 985 + }, + { + "left_line": 990, + "right_line": 986 + }, + { + "left_line": 991, + "right_line": 987 + }, + { + "left_line": 992, + "right_line": 988 + }, + { + "left_line": 993, + "right_line": 989 + }, + { + "left_line": 994, + "right_line": 990 + }, + { + "left_line": 995, + "right_line": 991 + }, + { + "left_line": 996, + "right_line": 992 + }, + { + "left_line": 997, + "right_line": 993 + }, + { + "left_line": 998, + "right_line": 994 + }, + { + "left_line": 999, + "right_line": 995 + }, + { + "left_line": 1000, + "right_line": 996 + }, + { + "left_line": 1001, + "right_line": 997 + }, + { + "left_line": 1002, + "right_line": 998 + }, + { + "left_line": 1003, + "right_line": 999 + }, + { + "left_line": 1004, + "right_line": 1000 + }, + { + "left_line": 1005, + "right_line": 1001 + }, + { + "left_line": 1006, + "right_line": 1002 + }, + { + "left_line": 1007, + "right_line": 1003 + }, + { + "left_line": 1008, + "right_line": 1004 + }, + { + "left_line": 1009, + "right_line": 1005 + }, + { + "left_line": 1010, + "right_line": 1006 + }, + { + "left_line": 1011, + "right_line": 1007 + }, + { + "left_line": 1012, + "right_line": 1008 + }, + { + "left_line": 1013, + "right_line": 1009 + }, + { + "left_line": 1014, + "right_line": 1010 + }, + { + "left_line": 1015, + "right_line": 1011 + }, + { + "left_line": 1016, + "right_line": 1012 + }, + { + "left_line": 1017, + "right_line": 1013 + }, + { + "left_line": 1018, + "right_line": 1014 + }, + { + "left_line": 1019, + "right_line": 1015 + }, + { + "left_line": 1020, + "right_line": 1016 + }, + { + "left_line": 1021, + "right_line": 1017 + }, + { + "left_line": 1022, + "right_line": 1018 + }, + { + "left_line": 1023, + "right_line": 1019 + }, + { + "left_line": 1024, + "right_line": 1020 + }, + { + "left_line": 1025, + "right_line": 1021 + }, + { + "left_line": 1026, + "right_line": 1022 + }, + { + "left_line": 1027, + "right_line": 1023 + }, + { + "left_line": 1028, + "right_line": 1024 + }, + { + "left_line": 1029, + "right_line": 1025 + }, + { + "left_line": 1030, + "right_line": 1026 + }, + { + "left_line": 1031, + "right_line": 1027 + }, + { + "left_line": 1032, + "right_line": 1028 + }, + { + "left_line": 1033, + "right_line": 1029 + }, + { + "left_line": 1034, + "right_line": 1030 + }, + { + "left_line": 1035, + "right_line": 1031 + }, + { + "left_line": 1036, + "right_line": 1032 + }, + { + "left_line": 1037, + "right_line": 1033 + }, + { + "left_line": 1038, + "right_line": 1034 + }, + { + "left_line": 1039, + "right_line": 1035 + }, + { + "left_line": 1040, + "right_line": 1036 + }, + { + "left_line": 1041, + "right_line": 1037 + }, + { + "left_line": 1042, + "right_line": 1038 + }, + { + "left_line": 1043, + "right_line": 1039 + }, + { + "left_line": 1044, + "right_line": 1040 + }, + { + "left_line": 1045, + "right_line": 1041 + }, + { + "left_line": 1046, + "right_line": 1042 + }, + { + "left_line": 1047, + "right_line": 1043 + }, + { + "left_line": 1048, + "right_line": 1044 + }, + { + "left_line": 1049, + "right_line": 1045 + }, + { + "left_line": 1050, + "right_line": 1046 + }, + { + "left_line": 1051, + "right_line": 1047 + }, + { + "left_line": 1052, + "right_line": 1048 + }, + { + "left_line": 1053, + "right_line": 1049 + }, + { + "left_line": 1054, + "right_line": 1050 + }, + { + "left_line": 1055, + "right_line": 1051 + }, + { + "left_line": 1056, + "right_line": 1052 + }, + { + "left_line": 1057, + "right_line": 1053 + }, + { + "left_line": 1058, + "right_line": 1054 + }, + { + "left_line": 1059, + "right_line": 1055 + }, + { + "left_line": 1060, + "right_line": 1056 + }, + { + "left_line": 1061, + "right_line": 1057 + }, + { + "left_line": 1062, + "right_line": 1058 + }, + { + "left_line": 1063, + "right_line": 1059 + }, + { + "left_line": 1064, + "right_line": 1060 + }, + { + "left_line": 1065, + "right_line": 1061 + }, + { + "left_line": 1066, + "right_line": 1062 + }, + { + "left_line": 1067, + "right_line": 1063 + }, + { + "left_line": 1068, + "right_line": 1064 + }, + { + "left_line": 1069, + "right_line": 1065 + }, + { + "left_line": 1070, + "right_line": 1066 + }, + { + "left_line": 1071, + "right_line": 1067 + }, + { + "left_line": 1072, + "right_line": 1068 + }, + { + "left_line": 1073, + "right_line": 1069 + }, + { + "left_line": 1074, + "right_line": 1070 + }, + { + "left_line": 1075, + "right_line": 1071 + }, + { + "left_line": 1076, + "right_line": 1072 + }, + { + "left_line": 1077, + "right_line": 1073 + }, + { + "left_line": 1078, + "right_line": -1 + }, + { + "left_line": 1079, + "right_line": 1074 + }, + { + "left_line": 1080, + "right_line": 1075 + }, + { + "left_line": 1081, + "right_line": 1076 + }, + { + "left_line": 1082, + "right_line": 1077 + }, + { + "left_line": 1083, + "right_line": 1078 + }, + { + "left_line": 1084, + "right_line": 1079 + }, + { + "left_line": 1085, + "right_line": 1080 + }, + { + "left_line": 1086, + "right_line": 1081 + }, + { + "left_line": 1087, + "right_line": 1082 + }, + { + "left_line": 1088, + "right_line": 1083 + }, + { + "left_line": 1089, + "right_line": 1084 + }, + { + "left_line": 1090, + "right_line": 1085 + }, + { + "left_line": 1091, + "right_line": 1086 + }, + { + "left_line": 1092, + "right_line": 1087 + }, + { + "left_line": 1093, + "right_line": 1088 + }, + { + "left_line": 1094, + "right_line": 1089 + }, + { + "left_line": 1095, + "right_line": 1090 + }, + { + "left_line": 1096, + "right_line": 1091 + }, + { + "left_line": 1097, + "right_line": 1092 + }, + { + "left_line": 1098, + "right_line": 1093 + }, + { + "left_line": 1099, + "right_line": 1094 + }, + { + "left_line": 1100, + "right_line": 1095 + }, + { + "left_line": 1101, + "right_line": 1096 + }, + { + "left_line": 1102, + "right_line": 1097 + }, + { + "left_line": 1103, + "right_line": 1098 + }, + { + "left_line": 1104, + "right_line": 1099 + }, + { + "left_line": 1105, + "right_line": 1100 + }, + { + "left_line": 1106, + "right_line": 1101 + }, + { + "left_line": 1107, + "right_line": 1102 + }, + { + "left_line": 1108, + "right_line": 1103 + }, + { + "left_line": 1109, + "right_line": 1104 + }, + { + "left_line": 1110, + "right_line": 1105 + }, + { + "left_line": 1111, + "right_line": 1106 + }, + { + "left_line": 1112, + "right_line": 1107 + }, + { + "left_line": 1113, + "right_line": 1108 + }, + { + "left_line": 1114, + "right_line": 1109 + }, + { + "left_line": 1115, + "right_line": 1110 + }, + { + "left_line": 1116, + "right_line": 1111 + }, + { + "left_line": 1117, + "right_line": 1112 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_pytest_options_refactor/metadata.json b/tests/testdata/json_schemastore_pytest_options_refactor/metadata.json new file mode 100644 index 0000000..8e2349a --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_options_refactor/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "b5a375a88d99238fc36347c51144d2d8032a56e9", + "description": "Refactor pytest schema options", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_pytest_options_refactor/new.json b/tests/testdata/json_schemastore_pytest_options_refactor/new.json new file mode 100644 index 0000000..ae4b01e --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_options_refactor/new.json @@ -0,0 +1,1112 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/partial-pytest.json", + "description": "JSON schema for pytest configuration options under `[tool.pytest]` in `pyproject.toml`.", + "oneOf": [ + { + "$ref": "#/definitions/LegacyConfig" + }, + { + "$ref": "#/definitions/Config" + } + ], + "definitions": { + "LegacyConfig": { + "description": "INI-style configuration using the ini_options table (pytest >=6)", + "type": "object", + "properties": { + "ini_options": { + "allOf": [ + { + "$ref": "#/definitions/IniOptionsPytest" + }, + { + "$ref": "#/definitions/IniOptionsAsyncio" + } + ], + "title": "INI-style pytest Configuration Options", + "description": "Use `[tool.pytest.ini_options]` for INI-style pytest configuration in `pyproject.toml` (supported since pytest 6.0). `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`." + } + }, + "required": ["ini_options"], + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsPytest": { + "type": "object", + "properties": { + "addopts": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin's content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": "true" + }, + "consider_namespace_packages": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": "false" + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": "false" + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": "false" + }, + "faulthandler_exit_on_timeout": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": "false" + }, + "faulthandler_timeout": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": "true" + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "string", + "enum": ["true", "false", "On", "Off"] + }, + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ] + }, + "log_cli": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enable log display during test run (also known as \"live logging\").", + "default": "false" + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": "*.egg .* _darcs build CVS dist node_modules venv {arch}", + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": "false" + }, + "strict_config": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": "false" + }, + "strict_markers": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": "false" + }, + "strict_parametrization_ids": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": "false" + }, + "strict_xfail": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": "false" + }, + "testpaths": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": "640" + }, + "truncation_limit_lines": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": "8" + }, + "usefixtures": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": "false" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsAsyncio": { + "$comment": "additionalProperties is true because the schema is merged with other schemas", + "type": "object", + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": "false" + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "AsyncioScope": { + "type": "string", + "enum": ["function", "class", "module", "package", "session"] + }, + "LogLevel": { + "description": "A minimum log level. Can be level name or integer value.", + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"] + }, + { + "type": "string", + "deprecated": true, + "enum": ["FATAL", "WARN"] + } + ] + }, + "Config": { + "description": "Direct key configuration with proper TOML types (pytest >=9)\nhttps://docs.pytest.org/en/stable/reference/reference.html#configuration-options", + "allOf": [ + { + "$ref": "#/definitions/ConfigOptionsPytest" + }, + { + "$ref": "#/definitions/ConfigOptionsAsyncio" + } + ], + "not": { + "type": "object", + "properties": { + "ini_options": {} + }, + "additionalProperties": true, + "required": ["ini_options"] + } + }, + "ConfigOptionsPytest": { + "type": "object", + "properties": { + "addopts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin’s content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "type": "boolean", + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": true + }, + "consider_namespace_packages": { + "type": "boolean", + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": false + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "type": "boolean", + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": false + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "type": "boolean", + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": false + }, + "faulthandler_exit_on_timeout": { + "type": "boolean", + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": false + }, + "faulthandler_timeout": { + "type": "integer", + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "type": "boolean", + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": true + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["On", "Off"] + } + ] + }, + "log_cli": { + "type": "boolean", + "description": "Enable log display during test run (also known as “live logging”).", + "default": false + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "*.egg", + ".*", + "_darcs", + "build", + "CVS", + "dist", + "node_modules", + "venv", + "{arch}" + ], + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "type": "boolean", + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": false + }, + "strict_config": { + "type": "boolean", + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": false + }, + "strict_markers": { + "type": "boolean", + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": false + }, + "strict_parametrization_ids": { + "type": "boolean", + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": false + }, + "strict_xfail": { + "type": "boolean", + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": false + }, + "testpaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "type": "string", + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "type": "integer", + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": 640 + }, + "truncation_limit_lines": { + "type": "integer", + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": 8 + }, + "usefixtures": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "type": "boolean", + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": false + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "ConfigOptionsAsyncio": { + "type": "object", + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "type": "boolean", + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": false + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + } + } +} diff --git a/tests/testdata/json_schemastore_pytest_options_refactor/old.json b/tests/testdata/json_schemastore_pytest_options_refactor/old.json new file mode 100644 index 0000000..4c15849 --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_options_refactor/old.json @@ -0,0 +1,1117 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/partial-pytest.json", + "description": "JSON schema for pytest configuration options under `[tool.pytest]` in `pyproject.toml`.", + "oneOf": [ + { + "$ref": "#/definitions/LegacyConfig" + }, + { + "$ref": "#/definitions/Config" + } + ], + "definitions": { + "LegacyConfig": { + "description": "Legacy configuration using ini_options table (pytest <9)", + "type": "object", + "deprecated": true, + "properties": { + "ini_options": { + "allOf": [ + { + "$ref": "#/definitions/IniOptionsPytest" + }, + { + "$ref": "#/definitions/IniOptionsAsyncio" + } + ], + "title": "Bridge Configuration Options for `pytest.ini` File", + "description": "The `ini_options` table is used as a bridge between the existing `pytest.ini` configuration system and future configuration formats. `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`." + } + }, + "required": ["ini_options"], + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsPytest": { + "type": "object", + "deprecated": true, + "properties": { + "addopts": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin's content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": "true" + }, + "consider_namespace_packages": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": "false" + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": "false" + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": "false" + }, + "faulthandler_exit_on_timeout": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": "false" + }, + "faulthandler_timeout": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": "true" + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "string", + "enum": ["true", "false", "On", "Off"] + }, + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ] + }, + "log_cli": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enable log display during test run (also known as \"live logging\").", + "default": "false" + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": "*.egg .* _darcs build CVS dist node_modules venv {arch}", + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": "false" + }, + "strict_config": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": "false" + }, + "strict_markers": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": "false" + }, + "strict_parametrization_ids": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": "false" + }, + "strict_xfail": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": "false" + }, + "testpaths": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": "640" + }, + "truncation_limit_lines": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": "8" + }, + "usefixtures": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": "false" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsAsyncio": { + "$comment": "additionalProperties is true because the schema is merged with other schemas", + "description": "Configuration options for pytest-asyncio.\nhttps://pytest-asyncio.readthedocs.io/en/latest/reference/configuration.html", + "type": "object", + "deprecated": true, + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": "false" + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "AsyncioScope": { + "type": "string", + "enum": ["function", "class", "module", "package", "session"] + }, + "LogLevel": { + "description": "A minimum log level. Can be level name or integer value.", + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"] + }, + { + "type": "string", + "deprecated": true, + "enum": ["FATAL", "WARN"] + } + ] + }, + "Config": { + "description": "Direct key configuration with proper TOML types (pytest >=9)\nhttps://docs.pytest.org/en/stable/reference/reference.html#configuration-options", + "allOf": [ + { + "$ref": "#/definitions/ConfigOptionsPytest" + }, + { + "$ref": "#/definitions/ConfigOptionsAsyncio" + } + ], + "not": { + "type": "object", + "properties": { + "ini_options": {} + }, + "additionalProperties": true, + "required": ["ini_options"] + } + }, + "ConfigOptionsPytest": { + "type": "object", + "properties": { + "addopts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin’s content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "type": "boolean", + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": true + }, + "consider_namespace_packages": { + "type": "boolean", + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": false + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "type": "boolean", + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": false + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "type": "boolean", + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": false + }, + "faulthandler_exit_on_timeout": { + "type": "boolean", + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": false + }, + "faulthandler_timeout": { + "type": "integer", + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "type": "boolean", + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": true + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["On", "Off"] + } + ] + }, + "log_cli": { + "type": "boolean", + "description": "Enable log display during test run (also known as “live logging”).", + "default": false + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "*.egg", + ".*", + "_darcs", + "build", + "CVS", + "dist", + "node_modules", + "venv", + "{arch}" + ], + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "type": "boolean", + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": false + }, + "strict_config": { + "type": "boolean", + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": false + }, + "strict_markers": { + "type": "boolean", + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": false + }, + "strict_parametrization_ids": { + "type": "boolean", + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": false + }, + "strict_xfail": { + "type": "boolean", + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": false + }, + "testpaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "type": "string", + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "type": "integer", + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": 640 + }, + "truncation_limit_lines": { + "type": "integer", + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": 8 + }, + "usefixtures": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "type": "boolean", + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": false + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "ConfigOptionsAsyncio": { + "type": "object", + "description": "Configuration options for pytest-asyncio.\nhttps://pytest-asyncio.readthedocs.io/en/latest/reference/configuration.html", + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "type": "boolean", + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": false + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + } + } +} diff --git a/tests/testdata/json_schemastore_pytest_override_opts/expected.json b/tests/testdata/json_schemastore_pytest_override_opts/expected.json new file mode 100644 index 0000000..1f9eae7 --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_override_opts/expected.json @@ -0,0 +1,4655 @@ +{ + "version": "v1", + "actions": [ + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 6, + 1, + 1, + 1, + 50, + 1, + 0, + 1, + 0, + 0, + 1 + ], + "type": "string", + "label": "\"integer\"", + "start_byte": 40897, + "end_byte": 40906 + }, + "old_value": "\"integer\"", + "new_value": "\"string\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 6, + 1, + 1, + 1, + 50, + 1, + 0, + 1, + 0, + 0, + 1 + ], + "type": "string", + "label": "\"string\"", + "start_byte": 40897, + "end_byte": 40905 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 6, + 1, + 1, + 1, + 50, + 1, + 0, + 1, + 0, + 1, + 0 + ], + "type": "string", + "label": "\"minimum\"", + "start_byte": 40922, + "end_byte": 40931 + }, + "old_value": "\"minimum\"", + "new_value": "\"pattern\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 6, + 1, + 1, + 1, + 50, + 1, + 0, + 1, + 0, + 1, + 0 + ], + "type": "string", + "label": "\"pattern\"", + "start_byte": 40921, + "end_byte": 40930 + } + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 6, + 1, + 1, + 1, + 50, + 1, + 0, + 1, + 0, + 1, + 1 + ], + "type": "string", + "label": "\"^[0-9]+$\"", + "start_byte": 40932, + "end_byte": 40942 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 6, + 1, + 1, + 1, + 50, + 1, + 0, + 1, + 0, + 1 + ], + "type": "pair", + "start_byte": 40921, + "end_byte": 40942 + }, + "position": 1 + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 6, + 1, + 1, + 1, + 50, + 1, + 0, + 1, + 0, + 1, + 1 + ], + "type": "number", + "label": "0", + "start_byte": 40933, + "end_byte": 40934 + } + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": 334, + "right_line": 334 + }, + { + "left_line": 335, + "right_line": 335 + }, + { + "left_line": 336, + "right_line": 336 + }, + { + "left_line": 337, + "right_line": 337 + }, + { + "left_line": 338, + "right_line": 338 + }, + { + "left_line": 339, + "right_line": 339 + }, + { + "left_line": 340, + "right_line": 340 + }, + { + "left_line": 341, + "right_line": 341 + }, + { + "left_line": 342, + "right_line": 342 + }, + { + "left_line": 343, + "right_line": 343 + }, + { + "left_line": 344, + "right_line": 344 + }, + { + "left_line": 345, + "right_line": 345 + }, + { + "left_line": 346, + "right_line": 346 + }, + { + "left_line": 347, + "right_line": 347 + }, + { + "left_line": 348, + "right_line": 348 + }, + { + "left_line": 349, + "right_line": 349 + }, + { + "left_line": 350, + "right_line": 350 + }, + { + "left_line": 351, + "right_line": 351 + }, + { + "left_line": 352, + "right_line": 352 + }, + { + "left_line": 353, + "right_line": 353 + }, + { + "left_line": 354, + "right_line": 354 + }, + { + "left_line": 355, + "right_line": 355 + }, + { + "left_line": 356, + "right_line": 356 + }, + { + "left_line": 357, + "right_line": 357 + }, + { + "left_line": 358, + "right_line": 358 + }, + { + "left_line": 359, + "right_line": 359 + }, + { + "left_line": 360, + "right_line": 360 + }, + { + "left_line": 361, + "right_line": 361 + }, + { + "left_line": 362, + "right_line": 362 + }, + { + "left_line": 363, + "right_line": 363 + }, + { + "left_line": 364, + "right_line": 364 + }, + { + "left_line": 365, + "right_line": 365 + }, + { + "left_line": 366, + "right_line": 366 + }, + { + "left_line": 367, + "right_line": 367 + }, + { + "left_line": 368, + "right_line": 368 + }, + { + "left_line": 369, + "right_line": 369 + }, + { + "left_line": 370, + "right_line": 370 + }, + { + "left_line": 371, + "right_line": 371 + }, + { + "left_line": 372, + "right_line": 372 + }, + { + "left_line": 373, + "right_line": 373 + }, + { + "left_line": 374, + "right_line": 374 + }, + { + "left_line": 375, + "right_line": 375 + }, + { + "left_line": 376, + "right_line": 376 + }, + { + "left_line": 377, + "right_line": 377 + }, + { + "left_line": 378, + "right_line": 378 + }, + { + "left_line": 379, + "right_line": 379 + }, + { + "left_line": 380, + "right_line": 380 + }, + { + "left_line": 381, + "right_line": 381 + }, + { + "left_line": 382, + "right_line": 382 + }, + { + "left_line": 383, + "right_line": 383 + }, + { + "left_line": 384, + "right_line": 384 + }, + { + "left_line": 385, + "right_line": 385 + }, + { + "left_line": 386, + "right_line": 386 + }, + { + "left_line": 387, + "right_line": 387 + }, + { + "left_line": 388, + "right_line": 388 + }, + { + "left_line": 389, + "right_line": 389 + }, + { + "left_line": 390, + "right_line": 390 + }, + { + "left_line": 391, + "right_line": 391 + }, + { + "left_line": 392, + "right_line": 392 + }, + { + "left_line": 393, + "right_line": 393 + }, + { + "left_line": 394, + "right_line": 394 + }, + { + "left_line": 395, + "right_line": 395 + }, + { + "left_line": 396, + "right_line": 396 + }, + { + "left_line": 397, + "right_line": 397 + }, + { + "left_line": 398, + "right_line": 398 + }, + { + "left_line": 399, + "right_line": 399 + }, + { + "left_line": 400, + "right_line": 400 + }, + { + "left_line": 401, + "right_line": 401 + }, + { + "left_line": 402, + "right_line": 402 + }, + { + "left_line": 403, + "right_line": 403 + }, + { + "left_line": 404, + "right_line": 404 + }, + { + "left_line": 405, + "right_line": 405 + }, + { + "left_line": 406, + "right_line": 406 + }, + { + "left_line": 407, + "right_line": 407 + }, + { + "left_line": 408, + "right_line": 408 + }, + { + "left_line": 409, + "right_line": 409 + }, + { + "left_line": 410, + "right_line": 410 + }, + { + "left_line": 411, + "right_line": 411 + }, + { + "left_line": 412, + "right_line": 412 + }, + { + "left_line": 413, + "right_line": 413 + }, + { + "left_line": 414, + "right_line": 414 + }, + { + "left_line": 415, + "right_line": 415 + }, + { + "left_line": 416, + "right_line": 416 + }, + { + "left_line": 417, + "right_line": 417 + }, + { + "left_line": 418, + "right_line": 418 + }, + { + "left_line": 419, + "right_line": 419 + }, + { + "left_line": 420, + "right_line": 420 + }, + { + "left_line": 421, + "right_line": 421 + }, + { + "left_line": 422, + "right_line": 422 + }, + { + "left_line": 423, + "right_line": 423 + }, + { + "left_line": 424, + "right_line": 424 + }, + { + "left_line": 425, + "right_line": 425 + }, + { + "left_line": 426, + "right_line": 426 + }, + { + "left_line": 427, + "right_line": 427 + }, + { + "left_line": 428, + "right_line": 428 + }, + { + "left_line": 429, + "right_line": 429 + }, + { + "left_line": 430, + "right_line": 430 + }, + { + "left_line": 431, + "right_line": 431 + }, + { + "left_line": 432, + "right_line": 432 + }, + { + "left_line": 433, + "right_line": 433 + }, + { + "left_line": 434, + "right_line": 434 + }, + { + "left_line": 435, + "right_line": 435 + }, + { + "left_line": 436, + "right_line": 436 + }, + { + "left_line": 437, + "right_line": 437 + }, + { + "left_line": 438, + "right_line": 438 + }, + { + "left_line": 439, + "right_line": 439 + }, + { + "left_line": 440, + "right_line": 440 + }, + { + "left_line": 441, + "right_line": 441 + }, + { + "left_line": 442, + "right_line": 442 + }, + { + "left_line": 443, + "right_line": 443 + }, + { + "left_line": 444, + "right_line": 444 + }, + { + "left_line": 445, + "right_line": 445 + }, + { + "left_line": 446, + "right_line": 446 + }, + { + "left_line": 447, + "right_line": 447 + }, + { + "left_line": 448, + "right_line": 448 + }, + { + "left_line": 449, + "right_line": 449 + }, + { + "left_line": 450, + "right_line": 450 + }, + { + "left_line": 451, + "right_line": 451 + }, + { + "left_line": 452, + "right_line": 452 + }, + { + "left_line": 453, + "right_line": 453 + }, + { + "left_line": 454, + "right_line": 454 + }, + { + "left_line": 455, + "right_line": 455 + }, + { + "left_line": 456, + "right_line": 456 + }, + { + "left_line": 457, + "right_line": 457 + }, + { + "left_line": 458, + "right_line": 458 + }, + { + "left_line": 459, + "right_line": 459 + }, + { + "left_line": 460, + "right_line": 460 + }, + { + "left_line": 461, + "right_line": 461 + }, + { + "left_line": 462, + "right_line": 462 + }, + { + "left_line": 463, + "right_line": 463 + }, + { + "left_line": 464, + "right_line": 464 + }, + { + "left_line": 465, + "right_line": 465 + }, + { + "left_line": 466, + "right_line": 466 + }, + { + "left_line": 467, + "right_line": 467 + }, + { + "left_line": 468, + "right_line": 468 + }, + { + "left_line": 469, + "right_line": 469 + }, + { + "left_line": 470, + "right_line": 470 + }, + { + "left_line": 471, + "right_line": 471 + }, + { + "left_line": 472, + "right_line": 472 + }, + { + "left_line": 473, + "right_line": 473 + }, + { + "left_line": 474, + "right_line": 474 + }, + { + "left_line": 475, + "right_line": 475 + }, + { + "left_line": 476, + "right_line": 476 + }, + { + "left_line": 477, + "right_line": 477 + }, + { + "left_line": 478, + "right_line": 478 + }, + { + "left_line": 479, + "right_line": 479 + }, + { + "left_line": 480, + "right_line": 480 + }, + { + "left_line": 481, + "right_line": 481 + }, + { + "left_line": 482, + "right_line": 482 + }, + { + "left_line": 483, + "right_line": 483 + }, + { + "left_line": 484, + "right_line": 484 + }, + { + "left_line": 485, + "right_line": 485 + }, + { + "left_line": 486, + "right_line": 486 + }, + { + "left_line": 487, + "right_line": 487 + }, + { + "left_line": 488, + "right_line": 488 + }, + { + "left_line": 489, + "right_line": 489 + }, + { + "left_line": 490, + "right_line": 490 + }, + { + "left_line": 491, + "right_line": 491 + }, + { + "left_line": 492, + "right_line": 492 + }, + { + "left_line": 493, + "right_line": 493 + }, + { + "left_line": 494, + "right_line": 494 + }, + { + "left_line": 495, + "right_line": 495 + }, + { + "left_line": 496, + "right_line": 496 + }, + { + "left_line": 497, + "right_line": 497 + }, + { + "left_line": 498, + "right_line": 498 + }, + { + "left_line": 499, + "right_line": 499 + }, + { + "left_line": 500, + "right_line": 500 + }, + { + "left_line": 501, + "right_line": 501 + }, + { + "left_line": 502, + "right_line": 502 + }, + { + "left_line": 503, + "right_line": 503 + }, + { + "left_line": 504, + "right_line": 504 + }, + { + "left_line": 505, + "right_line": 505 + }, + { + "left_line": 506, + "right_line": 506 + }, + { + "left_line": 507, + "right_line": 507 + }, + { + "left_line": 508, + "right_line": 508 + }, + { + "left_line": 509, + "right_line": 509 + }, + { + "left_line": 510, + "right_line": 510 + }, + { + "left_line": 511, + "right_line": 511 + }, + { + "left_line": 512, + "right_line": 512 + }, + { + "left_line": 513, + "right_line": 513 + }, + { + "left_line": 514, + "right_line": 514 + }, + { + "left_line": 515, + "right_line": 515 + }, + { + "left_line": 516, + "right_line": 516 + }, + { + "left_line": 517, + "right_line": 517 + }, + { + "left_line": 518, + "right_line": 518 + }, + { + "left_line": 519, + "right_line": 519 + }, + { + "left_line": 520, + "right_line": 520 + }, + { + "left_line": 521, + "right_line": 521 + }, + { + "left_line": 522, + "right_line": 522 + }, + { + "left_line": 523, + "right_line": 523 + }, + { + "left_line": 524, + "right_line": 524 + }, + { + "left_line": 525, + "right_line": 525 + }, + { + "left_line": 526, + "right_line": 526 + }, + { + "left_line": 527, + "right_line": 527 + }, + { + "left_line": 528, + "right_line": 528 + }, + { + "left_line": 529, + "right_line": 529 + }, + { + "left_line": 530, + "right_line": 530 + }, + { + "left_line": 531, + "right_line": 531 + }, + { + "left_line": 532, + "right_line": 532 + }, + { + "left_line": 533, + "right_line": 533 + }, + { + "left_line": 534, + "right_line": 534 + }, + { + "left_line": 535, + "right_line": 535 + }, + { + "left_line": 536, + "right_line": 536 + }, + { + "left_line": 537, + "right_line": 537 + }, + { + "left_line": 538, + "right_line": 538 + }, + { + "left_line": 539, + "right_line": 539 + }, + { + "left_line": 540, + "right_line": 540 + }, + { + "left_line": 541, + "right_line": 541 + }, + { + "left_line": 542, + "right_line": 542 + }, + { + "left_line": 543, + "right_line": 543 + }, + { + "left_line": 544, + "right_line": 544 + }, + { + "left_line": 545, + "right_line": 545 + }, + { + "left_line": 546, + "right_line": 546 + }, + { + "left_line": 547, + "right_line": 547 + }, + { + "left_line": 548, + "right_line": 548 + }, + { + "left_line": 549, + "right_line": 549 + }, + { + "left_line": 550, + "right_line": 550 + }, + { + "left_line": 551, + "right_line": 551 + }, + { + "left_line": 552, + "right_line": 552 + }, + { + "left_line": 553, + "right_line": 553 + }, + { + "left_line": 554, + "right_line": 554 + }, + { + "left_line": 555, + "right_line": 555 + }, + { + "left_line": 556, + "right_line": 556 + }, + { + "left_line": 557, + "right_line": 557 + }, + { + "left_line": 558, + "right_line": 558 + }, + { + "left_line": 559, + "right_line": 559 + }, + { + "left_line": 560, + "right_line": 560 + }, + { + "left_line": 561, + "right_line": 561 + }, + { + "left_line": 562, + "right_line": 562 + }, + { + "left_line": 563, + "right_line": 563 + }, + { + "left_line": 564, + "right_line": 564 + }, + { + "left_line": 565, + "right_line": 565 + }, + { + "left_line": 566, + "right_line": 566 + }, + { + "left_line": 567, + "right_line": 567 + }, + { + "left_line": 568, + "right_line": 568 + }, + { + "left_line": 569, + "right_line": 569 + }, + { + "left_line": 570, + "right_line": 570 + }, + { + "left_line": 571, + "right_line": 571 + }, + { + "left_line": 572, + "right_line": 572 + }, + { + "left_line": 573, + "right_line": 573 + }, + { + "left_line": 574, + "right_line": 574 + }, + { + "left_line": 575, + "right_line": 575 + }, + { + "left_line": 576, + "right_line": 576 + }, + { + "left_line": 577, + "right_line": 577 + }, + { + "left_line": 578, + "right_line": 578 + }, + { + "left_line": 579, + "right_line": 579 + }, + { + "left_line": 580, + "right_line": 580 + }, + { + "left_line": 581, + "right_line": 581 + }, + { + "left_line": 582, + "right_line": 582 + }, + { + "left_line": 583, + "right_line": 583 + }, + { + "left_line": 584, + "right_line": 584 + }, + { + "left_line": 585, + "right_line": 585 + }, + { + "left_line": 586, + "right_line": 586 + }, + { + "left_line": 587, + "right_line": 587 + }, + { + "left_line": 588, + "right_line": 588 + }, + { + "left_line": 589, + "right_line": 589 + }, + { + "left_line": 590, + "right_line": 590 + }, + { + "left_line": 591, + "right_line": 591 + }, + { + "left_line": 592, + "right_line": 592 + }, + { + "left_line": 593, + "right_line": 593 + }, + { + "left_line": 594, + "right_line": 594 + }, + { + "left_line": 595, + "right_line": 595 + }, + { + "left_line": 596, + "right_line": 596 + }, + { + "left_line": 597, + "right_line": 597 + }, + { + "left_line": 598, + "right_line": 598 + }, + { + "left_line": 599, + "right_line": 599 + }, + { + "left_line": 600, + "right_line": 600 + }, + { + "left_line": 601, + "right_line": 601 + }, + { + "left_line": 602, + "right_line": 602 + }, + { + "left_line": 603, + "right_line": 603 + }, + { + "left_line": 604, + "right_line": 604 + }, + { + "left_line": 605, + "right_line": 605 + }, + { + "left_line": 606, + "right_line": 606 + }, + { + "left_line": 607, + "right_line": 607 + }, + { + "left_line": 608, + "right_line": 608 + }, + { + "left_line": 609, + "right_line": 609 + }, + { + "left_line": 610, + "right_line": 610 + }, + { + "left_line": 611, + "right_line": 611 + }, + { + "left_line": 612, + "right_line": 612 + }, + { + "left_line": 613, + "right_line": 613 + }, + { + "left_line": 614, + "right_line": 614 + }, + { + "left_line": 615, + "right_line": 615 + }, + { + "left_line": 616, + "right_line": 616 + }, + { + "left_line": 617, + "right_line": 617 + }, + { + "left_line": 618, + "right_line": 618 + }, + { + "left_line": 619, + "right_line": 619 + }, + { + "left_line": 620, + "right_line": 620 + }, + { + "left_line": 621, + "right_line": 621 + }, + { + "left_line": 622, + "right_line": 622 + }, + { + "left_line": 623, + "right_line": 623 + }, + { + "left_line": 624, + "right_line": 624 + }, + { + "left_line": 625, + "right_line": 625 + }, + { + "left_line": 626, + "right_line": 626 + }, + { + "left_line": 627, + "right_line": 627 + }, + { + "left_line": 628, + "right_line": 628 + }, + { + "left_line": 629, + "right_line": 629 + }, + { + "left_line": 630, + "right_line": 630 + }, + { + "left_line": 631, + "right_line": 631 + }, + { + "left_line": 632, + "right_line": 632 + }, + { + "left_line": 633, + "right_line": 633 + }, + { + "left_line": 634, + "right_line": 634 + }, + { + "left_line": 635, + "right_line": 635 + }, + { + "left_line": 636, + "right_line": 636 + }, + { + "left_line": 637, + "right_line": 637 + }, + { + "left_line": 638, + "right_line": 638 + }, + { + "left_line": 639, + "right_line": 639 + }, + { + "left_line": 640, + "right_line": 640 + }, + { + "left_line": 641, + "right_line": 641 + }, + { + "left_line": 642, + "right_line": 642 + }, + { + "left_line": 643, + "right_line": 643 + }, + { + "left_line": 644, + "right_line": 644 + }, + { + "left_line": 645, + "right_line": 645 + }, + { + "left_line": 646, + "right_line": 646 + }, + { + "left_line": 647, + "right_line": 647 + }, + { + "left_line": 648, + "right_line": 648 + }, + { + "left_line": 649, + "right_line": 649 + }, + { + "left_line": 650, + "right_line": 650 + }, + { + "left_line": 651, + "right_line": 651 + }, + { + "left_line": 652, + "right_line": 652 + }, + { + "left_line": 653, + "right_line": 653 + }, + { + "left_line": 654, + "right_line": 654 + }, + { + "left_line": 655, + "right_line": 655 + }, + { + "left_line": 656, + "right_line": 656 + }, + { + "left_line": 657, + "right_line": 657 + }, + { + "left_line": 658, + "right_line": 658 + }, + { + "left_line": 659, + "right_line": 659 + }, + { + "left_line": 660, + "right_line": 660 + }, + { + "left_line": 661, + "right_line": 661 + }, + { + "left_line": 662, + "right_line": 662 + }, + { + "left_line": 663, + "right_line": 663 + }, + { + "left_line": 664, + "right_line": 664 + }, + { + "left_line": 665, + "right_line": 665 + }, + { + "left_line": 666, + "right_line": 666 + }, + { + "left_line": 667, + "right_line": 667 + }, + { + "left_line": 668, + "right_line": 668 + }, + { + "left_line": 669, + "right_line": 669 + }, + { + "left_line": 670, + "right_line": 670 + }, + { + "left_line": 671, + "right_line": 671 + }, + { + "left_line": 672, + "right_line": 672 + }, + { + "left_line": 673, + "right_line": 673 + }, + { + "left_line": 674, + "right_line": 674 + }, + { + "left_line": 675, + "right_line": 675 + }, + { + "left_line": 676, + "right_line": 676 + }, + { + "left_line": 677, + "right_line": 677 + }, + { + "left_line": 678, + "right_line": 678 + }, + { + "left_line": 679, + "right_line": 679 + }, + { + "left_line": 680, + "right_line": 680 + }, + { + "left_line": 681, + "right_line": 681 + }, + { + "left_line": 682, + "right_line": 682 + }, + { + "left_line": 683, + "right_line": 683 + }, + { + "left_line": 684, + "right_line": 684 + }, + { + "left_line": 685, + "right_line": 685 + }, + { + "left_line": 686, + "right_line": 686 + }, + { + "left_line": 687, + "right_line": 687 + }, + { + "left_line": 688, + "right_line": 688 + }, + { + "left_line": 689, + "right_line": 689 + }, + { + "left_line": 690, + "right_line": 690 + }, + { + "left_line": 691, + "right_line": 691 + }, + { + "left_line": 692, + "right_line": 692 + }, + { + "left_line": 693, + "right_line": 693 + }, + { + "left_line": 694, + "right_line": 694 + }, + { + "left_line": 695, + "right_line": 695 + }, + { + "left_line": 696, + "right_line": 696 + }, + { + "left_line": 697, + "right_line": 697 + }, + { + "left_line": 698, + "right_line": 698 + }, + { + "left_line": 699, + "right_line": 699 + }, + { + "left_line": 700, + "right_line": 700 + }, + { + "left_line": 701, + "right_line": 701 + }, + { + "left_line": 702, + "right_line": 702 + }, + { + "left_line": 703, + "right_line": 703 + }, + { + "left_line": 704, + "right_line": 704 + }, + { + "left_line": 705, + "right_line": 705 + }, + { + "left_line": 706, + "right_line": 706 + }, + { + "left_line": 707, + "right_line": 707 + }, + { + "left_line": 708, + "right_line": 708 + }, + { + "left_line": 709, + "right_line": 709 + }, + { + "left_line": 710, + "right_line": 710 + }, + { + "left_line": 711, + "right_line": 711 + }, + { + "left_line": 712, + "right_line": 712 + }, + { + "left_line": 713, + "right_line": 713 + }, + { + "left_line": 714, + "right_line": 714 + }, + { + "left_line": 715, + "right_line": 715 + }, + { + "left_line": 716, + "right_line": 716 + }, + { + "left_line": 717, + "right_line": 717 + }, + { + "left_line": 718, + "right_line": 718 + }, + { + "left_line": 719, + "right_line": 719 + }, + { + "left_line": 720, + "right_line": 720 + }, + { + "left_line": 721, + "right_line": 721 + }, + { + "left_line": 722, + "right_line": 722 + }, + { + "left_line": 723, + "right_line": 723 + }, + { + "left_line": 724, + "right_line": 724 + }, + { + "left_line": 725, + "right_line": 725 + }, + { + "left_line": 726, + "right_line": 726 + }, + { + "left_line": 727, + "right_line": 727 + }, + { + "left_line": 728, + "right_line": 728 + }, + { + "left_line": 729, + "right_line": 729 + }, + { + "left_line": 730, + "right_line": 730 + }, + { + "left_line": 731, + "right_line": 731 + }, + { + "left_line": 732, + "right_line": 732 + }, + { + "left_line": 733, + "right_line": 733 + }, + { + "left_line": 734, + "right_line": 734 + }, + { + "left_line": 735, + "right_line": 735 + }, + { + "left_line": 736, + "right_line": 736 + }, + { + "left_line": 737, + "right_line": 737 + }, + { + "left_line": 738, + "right_line": 738 + }, + { + "left_line": 739, + "right_line": 739 + }, + { + "left_line": 740, + "right_line": 740 + }, + { + "left_line": 741, + "right_line": 741 + }, + { + "left_line": 742, + "right_line": 742 + }, + { + "left_line": 743, + "right_line": 743 + }, + { + "left_line": 744, + "right_line": 744 + }, + { + "left_line": 745, + "right_line": 745 + }, + { + "left_line": 746, + "right_line": 746 + }, + { + "left_line": 747, + "right_line": 747 + }, + { + "left_line": 748, + "right_line": 748 + }, + { + "left_line": 749, + "right_line": 749 + }, + { + "left_line": 750, + "right_line": 750 + }, + { + "left_line": 751, + "right_line": 751 + }, + { + "left_line": 752, + "right_line": 752 + }, + { + "left_line": 753, + "right_line": 753 + }, + { + "left_line": 754, + "right_line": 754 + }, + { + "left_line": 755, + "right_line": 755 + }, + { + "left_line": 756, + "right_line": 756 + }, + { + "left_line": 757, + "right_line": 757 + }, + { + "left_line": 758, + "right_line": 758 + }, + { + "left_line": 759, + "right_line": 759 + }, + { + "left_line": 760, + "right_line": 760 + }, + { + "left_line": 761, + "right_line": 761 + }, + { + "left_line": 762, + "right_line": 762 + }, + { + "left_line": 763, + "right_line": 763 + }, + { + "left_line": 764, + "right_line": 764 + }, + { + "left_line": 765, + "right_line": 765 + }, + { + "left_line": 766, + "right_line": 766 + }, + { + "left_line": 767, + "right_line": 767 + }, + { + "left_line": 768, + "right_line": 768 + }, + { + "left_line": 769, + "right_line": 769 + }, + { + "left_line": 770, + "right_line": 770 + }, + { + "left_line": 771, + "right_line": 771 + }, + { + "left_line": 772, + "right_line": 772 + }, + { + "left_line": 773, + "right_line": 773 + }, + { + "left_line": 774, + "right_line": 774 + }, + { + "left_line": 775, + "right_line": 775 + }, + { + "left_line": 776, + "right_line": 776 + }, + { + "left_line": 777, + "right_line": 777 + }, + { + "left_line": 778, + "right_line": 778 + }, + { + "left_line": 779, + "right_line": 779 + }, + { + "left_line": 780, + "right_line": 780 + }, + { + "left_line": 781, + "right_line": 781 + }, + { + "left_line": 782, + "right_line": 782 + }, + { + "left_line": 783, + "right_line": 783 + }, + { + "left_line": 784, + "right_line": 784 + }, + { + "left_line": 785, + "right_line": 785 + }, + { + "left_line": 786, + "right_line": 786 + }, + { + "left_line": 787, + "right_line": 787 + }, + { + "left_line": 788, + "right_line": 788 + }, + { + "left_line": 789, + "right_line": 789 + }, + { + "left_line": 790, + "right_line": 790 + }, + { + "left_line": 791, + "right_line": 791 + }, + { + "left_line": 792, + "right_line": 792 + }, + { + "left_line": 793, + "right_line": 793 + }, + { + "left_line": 794, + "right_line": 794 + }, + { + "left_line": 795, + "right_line": 795 + }, + { + "left_line": 796, + "right_line": 796 + }, + { + "left_line": 797, + "right_line": 797 + }, + { + "left_line": 798, + "right_line": 798 + }, + { + "left_line": 799, + "right_line": 799 + }, + { + "left_line": 800, + "right_line": 800 + }, + { + "left_line": 801, + "right_line": 801 + }, + { + "left_line": 802, + "right_line": 802 + }, + { + "left_line": 803, + "right_line": 803 + }, + { + "left_line": 804, + "right_line": 804 + }, + { + "left_line": 805, + "right_line": 805 + }, + { + "left_line": 806, + "right_line": 806 + }, + { + "left_line": 807, + "right_line": 807 + }, + { + "left_line": 808, + "right_line": 808 + }, + { + "left_line": 809, + "right_line": 809 + }, + { + "left_line": 810, + "right_line": 810 + }, + { + "left_line": 811, + "right_line": 811 + }, + { + "left_line": 812, + "right_line": 812 + }, + { + "left_line": 813, + "right_line": 813 + }, + { + "left_line": 814, + "right_line": 814 + }, + { + "left_line": 815, + "right_line": 815 + }, + { + "left_line": 816, + "right_line": 816 + }, + { + "left_line": 817, + "right_line": 817 + }, + { + "left_line": 818, + "right_line": 818 + }, + { + "left_line": 819, + "right_line": 819 + }, + { + "left_line": 820, + "right_line": 820 + }, + { + "left_line": 821, + "right_line": 821 + }, + { + "left_line": 822, + "right_line": 822 + }, + { + "left_line": 823, + "right_line": 823 + }, + { + "left_line": 824, + "right_line": 824 + }, + { + "left_line": 825, + "right_line": 825 + }, + { + "left_line": 826, + "right_line": 826 + }, + { + "left_line": 827, + "right_line": 827 + }, + { + "left_line": 828, + "right_line": 828 + }, + { + "left_line": 829, + "right_line": 829 + }, + { + "left_line": 830, + "right_line": 830 + }, + { + "left_line": 831, + "right_line": 831 + }, + { + "left_line": 832, + "right_line": 832 + }, + { + "left_line": 833, + "right_line": 833 + }, + { + "left_line": 834, + "right_line": 834 + }, + { + "left_line": 835, + "right_line": 835 + }, + { + "left_line": 836, + "right_line": 836 + }, + { + "left_line": 837, + "right_line": 837 + }, + { + "left_line": 838, + "right_line": 838 + }, + { + "left_line": 839, + "right_line": 839 + }, + { + "left_line": 840, + "right_line": 840 + }, + { + "left_line": 841, + "right_line": 841 + }, + { + "left_line": 842, + "right_line": 842 + }, + { + "left_line": 843, + "right_line": 843 + }, + { + "left_line": 844, + "right_line": 844 + }, + { + "left_line": 845, + "right_line": 845 + }, + { + "left_line": 846, + "right_line": 846 + }, + { + "left_line": 847, + "right_line": 847 + }, + { + "left_line": 848, + "right_line": 848 + }, + { + "left_line": 849, + "right_line": 849 + }, + { + "left_line": 850, + "right_line": 850 + }, + { + "left_line": 851, + "right_line": 851 + }, + { + "left_line": 852, + "right_line": 852 + }, + { + "left_line": 853, + "right_line": 853 + }, + { + "left_line": 854, + "right_line": 854 + }, + { + "left_line": 855, + "right_line": 855 + }, + { + "left_line": 856, + "right_line": 856 + }, + { + "left_line": 857, + "right_line": 857 + }, + { + "left_line": 858, + "right_line": 858 + }, + { + "left_line": 859, + "right_line": 859 + }, + { + "left_line": 860, + "right_line": 860 + }, + { + "left_line": 861, + "right_line": 861 + }, + { + "left_line": 862, + "right_line": 862 + }, + { + "left_line": 863, + "right_line": 863 + }, + { + "left_line": 864, + "right_line": 864 + }, + { + "left_line": 865, + "right_line": 865 + }, + { + "left_line": 866, + "right_line": 866 + }, + { + "left_line": 867, + "right_line": 867 + }, + { + "left_line": 868, + "right_line": 868 + }, + { + "left_line": 869, + "right_line": 869 + }, + { + "left_line": 870, + "right_line": 870 + }, + { + "left_line": 871, + "right_line": 871 + }, + { + "left_line": 872, + "right_line": 872 + }, + { + "left_line": 873, + "right_line": 873 + }, + { + "left_line": 874, + "right_line": 874 + }, + { + "left_line": 875, + "right_line": 875 + }, + { + "left_line": 876, + "right_line": 876 + }, + { + "left_line": 877, + "right_line": 877 + }, + { + "left_line": 878, + "right_line": 878 + }, + { + "left_line": 879, + "right_line": 879 + }, + { + "left_line": 880, + "right_line": 880 + }, + { + "left_line": 881, + "right_line": 881 + }, + { + "left_line": 882, + "right_line": 882 + }, + { + "left_line": 883, + "right_line": 883 + }, + { + "left_line": 884, + "right_line": 884 + }, + { + "left_line": 885, + "right_line": 885 + }, + { + "left_line": 886, + "right_line": 886 + }, + { + "left_line": 887, + "right_line": 887 + }, + { + "left_line": 888, + "right_line": 888 + }, + { + "left_line": 889, + "right_line": 889 + }, + { + "left_line": 890, + "right_line": 890 + }, + { + "left_line": 891, + "right_line": 891 + }, + { + "left_line": 892, + "right_line": 892 + }, + { + "left_line": 893, + "right_line": 893 + }, + { + "left_line": 894, + "right_line": 894 + }, + { + "left_line": 895, + "right_line": 895 + }, + { + "left_line": 896, + "right_line": 896 + }, + { + "left_line": 897, + "right_line": 897 + }, + { + "left_line": 898, + "right_line": 898 + }, + { + "left_line": 899, + "right_line": 899 + }, + { + "left_line": 900, + "right_line": 900 + }, + { + "left_line": 901, + "right_line": 901 + }, + { + "left_line": 902, + "right_line": 902 + }, + { + "left_line": 903, + "right_line": 903 + }, + { + "left_line": 904, + "right_line": 904 + }, + { + "left_line": 905, + "right_line": 905 + }, + { + "left_line": 906, + "right_line": 906 + }, + { + "left_line": 907, + "right_line": 907 + }, + { + "left_line": 908, + "right_line": 908 + }, + { + "left_line": 909, + "right_line": 909 + }, + { + "left_line": 910, + "right_line": 910 + }, + { + "left_line": 911, + "right_line": 911 + }, + { + "left_line": 912, + "right_line": 912 + }, + { + "left_line": 913, + "right_line": 913 + }, + { + "left_line": 914, + "right_line": 914 + }, + { + "left_line": 915, + "right_line": 915 + }, + { + "left_line": 916, + "right_line": 916 + }, + { + "left_line": 917, + "right_line": 917 + }, + { + "left_line": 918, + "right_line": 918 + }, + { + "left_line": 919, + "right_line": 919 + }, + { + "left_line": 920, + "right_line": 920 + }, + { + "left_line": 921, + "right_line": 921 + }, + { + "left_line": 922, + "right_line": 922 + }, + { + "left_line": 923, + "right_line": 923 + }, + { + "left_line": 924, + "right_line": 924 + }, + { + "left_line": 925, + "right_line": 925 + }, + { + "left_line": 926, + "right_line": 926 + }, + { + "left_line": 927, + "right_line": 927 + }, + { + "left_line": 928, + "right_line": 928 + }, + { + "left_line": 929, + "right_line": 929 + }, + { + "left_line": 930, + "right_line": 930 + }, + { + "left_line": 931, + "right_line": 931 + }, + { + "left_line": 932, + "right_line": 932 + }, + { + "left_line": 933, + "right_line": 933 + }, + { + "left_line": 934, + "right_line": 934 + }, + { + "left_line": 935, + "right_line": 935 + }, + { + "left_line": 936, + "right_line": 936 + }, + { + "left_line": 937, + "right_line": 937 + }, + { + "left_line": 938, + "right_line": 938 + }, + { + "left_line": 939, + "right_line": 939 + }, + { + "left_line": 940, + "right_line": 940 + }, + { + "left_line": 941, + "right_line": 941 + }, + { + "left_line": 942, + "right_line": 942 + }, + { + "left_line": 943, + "right_line": 943 + }, + { + "left_line": 944, + "right_line": 944 + }, + { + "left_line": 945, + "right_line": 945 + }, + { + "left_line": 946, + "right_line": 946 + }, + { + "left_line": 947, + "right_line": 947 + }, + { + "left_line": 948, + "right_line": 948 + }, + { + "left_line": 949, + "right_line": 949 + }, + { + "left_line": 950, + "right_line": 950 + }, + { + "left_line": 951, + "right_line": 951 + }, + { + "left_line": 952, + "right_line": 952 + }, + { + "left_line": 953, + "right_line": 953 + }, + { + "left_line": 954, + "right_line": 954 + }, + { + "left_line": 955, + "right_line": 955 + }, + { + "left_line": 956, + "right_line": 956 + }, + { + "left_line": 957, + "right_line": 957 + }, + { + "left_line": 958, + "right_line": 958 + }, + { + "left_line": 959, + "right_line": 959 + }, + { + "left_line": 960, + "right_line": 960 + }, + { + "left_line": 961, + "right_line": 961 + }, + { + "left_line": 962, + "right_line": 962 + }, + { + "left_line": 963, + "right_line": 963 + }, + { + "left_line": 964, + "right_line": 964 + }, + { + "left_line": 965, + "right_line": 965 + }, + { + "left_line": 966, + "right_line": 966 + }, + { + "left_line": 967, + "right_line": 967 + }, + { + "left_line": 968, + "right_line": 968 + }, + { + "left_line": 969, + "right_line": 969 + }, + { + "left_line": 970, + "right_line": 970 + }, + { + "left_line": 971, + "right_line": 971 + }, + { + "left_line": 972, + "right_line": 972 + }, + { + "left_line": 973, + "right_line": 973 + }, + { + "left_line": 974, + "right_line": 974 + }, + { + "left_line": 975, + "right_line": 975 + }, + { + "left_line": 976, + "right_line": 976 + }, + { + "left_line": 977, + "right_line": 977 + }, + { + "left_line": 978, + "right_line": 978 + }, + { + "left_line": 979, + "right_line": 979 + }, + { + "left_line": 980, + "right_line": 980 + }, + { + "left_line": 981, + "right_line": 981 + }, + { + "left_line": 982, + "right_line": 982 + }, + { + "left_line": 983, + "right_line": 983 + }, + { + "left_line": 984, + "right_line": 984 + }, + { + "left_line": 985, + "right_line": 985 + }, + { + "left_line": 986, + "right_line": 986 + }, + { + "left_line": 987, + "right_line": 987 + }, + { + "left_line": 988, + "right_line": 988 + }, + { + "left_line": 989, + "right_line": 989 + }, + { + "left_line": 990, + "right_line": 990 + }, + { + "left_line": 991, + "right_line": 991 + }, + { + "left_line": 992, + "right_line": 992 + }, + { + "left_line": 993, + "right_line": 993 + }, + { + "left_line": 994, + "right_line": 994 + }, + { + "left_line": 995, + "right_line": 995 + }, + { + "left_line": 996, + "right_line": 996 + }, + { + "left_line": 997, + "right_line": 997 + }, + { + "left_line": 998, + "right_line": 998 + }, + { + "left_line": 999, + "right_line": 999 + }, + { + "left_line": 1000, + "right_line": 1000 + }, + { + "left_line": 1001, + "right_line": 1001 + }, + { + "left_line": 1002, + "right_line": 1002 + }, + { + "left_line": 1003, + "right_line": 1003 + }, + { + "left_line": 1004, + "right_line": 1004 + }, + { + "left_line": 1005, + "right_line": 1005 + }, + { + "left_line": 1006, + "right_line": 1006 + }, + { + "left_line": 1007, + "right_line": 1007 + }, + { + "left_line": 1008, + "right_line": 1008 + }, + { + "left_line": 1009, + "right_line": 1009 + }, + { + "left_line": 1010, + "right_line": 1010 + }, + { + "left_line": 1011, + "right_line": 1011 + }, + { + "left_line": 1012, + "right_line": 1012 + }, + { + "left_line": 1013, + "right_line": 1013 + }, + { + "left_line": 1014, + "right_line": 1014 + }, + { + "left_line": 1015, + "right_line": 1015 + }, + { + "left_line": 1016, + "right_line": 1016 + }, + { + "left_line": 1017, + "right_line": 1017 + }, + { + "left_line": 1018, + "right_line": 1018 + }, + { + "left_line": 1019, + "right_line": 1019 + }, + { + "left_line": 1020, + "right_line": 1020 + }, + { + "left_line": 1021, + "right_line": 1021 + }, + { + "left_line": 1022, + "right_line": 1022 + }, + { + "left_line": 1023, + "right_line": 1023 + }, + { + "left_line": 1024, + "right_line": 1024 + }, + { + "left_line": 1025, + "right_line": 1025 + }, + { + "left_line": 1026, + "right_line": 1026 + }, + { + "left_line": 1027, + "right_line": 1027 + }, + { + "left_line": 1028, + "right_line": 1028 + }, + { + "left_line": 1029, + "right_line": 1029 + }, + { + "left_line": 1030, + "right_line": 1030 + }, + { + "left_line": 1031, + "right_line": 1031 + }, + { + "left_line": 1032, + "right_line": 1032 + }, + { + "left_line": 1033, + "right_line": 1033 + }, + { + "left_line": 1034, + "right_line": 1034 + }, + { + "left_line": 1035, + "right_line": 1035 + }, + { + "left_line": 1036, + "right_line": 1036 + }, + { + "left_line": 1037, + "right_line": 1037 + }, + { + "left_line": 1038, + "right_line": 1038 + }, + { + "left_line": 1039, + "right_line": 1039 + }, + { + "left_line": 1040, + "right_line": 1040 + }, + { + "left_line": 1041, + "right_line": 1041 + }, + { + "left_line": 1042, + "right_line": 1042 + }, + { + "left_line": 1043, + "right_line": 1043 + }, + { + "left_line": 1044, + "right_line": 1044 + }, + { + "left_line": 1045, + "right_line": 1045 + }, + { + "left_line": 1046, + "right_line": 1046 + }, + { + "left_line": 1047, + "right_line": 1047 + }, + { + "left_line": 1048, + "right_line": 1048 + }, + { + "left_line": 1049, + "right_line": 1049 + }, + { + "left_line": 1050, + "right_line": 1050 + }, + { + "left_line": 1051, + "right_line": 1051 + }, + { + "left_line": 1052, + "right_line": 1052 + }, + { + "left_line": 1053, + "right_line": 1053 + }, + { + "left_line": 1054, + "right_line": 1054 + }, + { + "left_line": 1055, + "right_line": 1055 + }, + { + "left_line": 1056, + "right_line": 1056 + }, + { + "left_line": 1057, + "right_line": 1057 + }, + { + "left_line": 1058, + "right_line": 1058 + }, + { + "left_line": 1059, + "right_line": 1059 + }, + { + "left_line": 1060, + "right_line": 1060 + }, + { + "left_line": 1061, + "right_line": 1061 + }, + { + "left_line": 1062, + "right_line": 1062 + }, + { + "left_line": 1063, + "right_line": 1063 + }, + { + "left_line": 1064, + "right_line": 1064 + }, + { + "left_line": 1065, + "right_line": 1065 + }, + { + "left_line": 1066, + "right_line": 1066 + }, + { + "left_line": 1067, + "right_line": 1067 + }, + { + "left_line": 1068, + "right_line": 1068 + }, + { + "left_line": 1069, + "right_line": 1069 + }, + { + "left_line": 1070, + "right_line": 1070 + }, + { + "left_line": 1071, + "right_line": 1071 + }, + { + "left_line": 1072, + "right_line": 1072 + }, + { + "left_line": 1073, + "right_line": 1073 + }, + { + "left_line": 1074, + "right_line": 1074 + }, + { + "left_line": 1075, + "right_line": 1075 + }, + { + "left_line": 1076, + "right_line": 1076 + }, + { + "left_line": 1077, + "right_line": 1077 + }, + { + "left_line": 1078, + "right_line": 1078 + }, + { + "left_line": 1079, + "right_line": 1079 + }, + { + "left_line": 1080, + "right_line": 1080 + }, + { + "left_line": 1081, + "right_line": 1081 + }, + { + "left_line": 1082, + "right_line": 1082 + }, + { + "left_line": 1083, + "right_line": 1083 + }, + { + "left_line": 1084, + "right_line": 1084 + }, + { + "left_line": 1085, + "right_line": 1085 + }, + { + "left_line": 1086, + "right_line": 1086 + }, + { + "left_line": 1087, + "right_line": 1087 + }, + { + "left_line": 1088, + "right_line": 1088 + }, + { + "left_line": 1089, + "right_line": 1089 + }, + { + "left_line": 1090, + "right_line": 1090 + }, + { + "left_line": 1091, + "right_line": 1091 + }, + { + "left_line": 1092, + "right_line": 1092 + }, + { + "left_line": 1093, + "right_line": 1093 + }, + { + "left_line": 1094, + "right_line": 1094 + }, + { + "left_line": 1095, + "right_line": 1095 + }, + { + "left_line": 1096, + "right_line": 1096 + }, + { + "left_line": 1097, + "right_line": 1097 + }, + { + "left_line": 1098, + "right_line": 1098 + }, + { + "left_line": 1099, + "right_line": 1099 + }, + { + "left_line": 1100, + "right_line": 1100 + }, + { + "left_line": 1101, + "right_line": 1101 + }, + { + "left_line": 1102, + "right_line": 1102 + }, + { + "left_line": 1103, + "right_line": 1103 + }, + { + "left_line": 1104, + "right_line": 1104 + }, + { + "left_line": 1105, + "right_line": 1105 + }, + { + "left_line": 1106, + "right_line": 1106 + }, + { + "left_line": 1107, + "right_line": 1107 + }, + { + "left_line": 1108, + "right_line": 1108 + }, + { + "left_line": 1109, + "right_line": 1109 + }, + { + "left_line": 1110, + "right_line": 1110 + }, + { + "left_line": 1111, + "right_line": 1111 + }, + { + "left_line": 1112, + "right_line": 1112 + }, + { + "left_line": 1113, + "right_line": 1113 + }, + { + "left_line": 1114, + "right_line": 1114 + }, + { + "left_line": 1115, + "right_line": 1115 + }, + { + "left_line": 1116, + "right_line": 1116 + }, + { + "left_line": 1117, + "right_line": 1117 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_pytest_override_opts/metadata.json b/tests/testdata/json_schemastore_pytest_override_opts/metadata.json new file mode 100644 index 0000000..cb506da --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_override_opts/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "85cecd8092a1ddbbf42998b9c5d1d2c311ba4dff", + "description": "Update pytest override options", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_pytest_override_opts/new.json b/tests/testdata/json_schemastore_pytest_override_opts/new.json new file mode 100644 index 0000000..4c15849 --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_override_opts/new.json @@ -0,0 +1,1117 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/partial-pytest.json", + "description": "JSON schema for pytest configuration options under `[tool.pytest]` in `pyproject.toml`.", + "oneOf": [ + { + "$ref": "#/definitions/LegacyConfig" + }, + { + "$ref": "#/definitions/Config" + } + ], + "definitions": { + "LegacyConfig": { + "description": "Legacy configuration using ini_options table (pytest <9)", + "type": "object", + "deprecated": true, + "properties": { + "ini_options": { + "allOf": [ + { + "$ref": "#/definitions/IniOptionsPytest" + }, + { + "$ref": "#/definitions/IniOptionsAsyncio" + } + ], + "title": "Bridge Configuration Options for `pytest.ini` File", + "description": "The `ini_options` table is used as a bridge between the existing `pytest.ini` configuration system and future configuration formats. `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`." + } + }, + "required": ["ini_options"], + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsPytest": { + "type": "object", + "deprecated": true, + "properties": { + "addopts": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin's content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": "true" + }, + "consider_namespace_packages": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": "false" + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": "false" + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": "false" + }, + "faulthandler_exit_on_timeout": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": "false" + }, + "faulthandler_timeout": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": "true" + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "string", + "enum": ["true", "false", "On", "Off"] + }, + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ] + }, + "log_cli": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enable log display during test run (also known as \"live logging\").", + "default": "false" + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": "*.egg .* _darcs build CVS dist node_modules venv {arch}", + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": "false" + }, + "strict_config": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": "false" + }, + "strict_markers": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": "false" + }, + "strict_parametrization_ids": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": "false" + }, + "strict_xfail": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": "false" + }, + "testpaths": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": "640" + }, + "truncation_limit_lines": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": "8" + }, + "usefixtures": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": "false" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsAsyncio": { + "$comment": "additionalProperties is true because the schema is merged with other schemas", + "description": "Configuration options for pytest-asyncio.\nhttps://pytest-asyncio.readthedocs.io/en/latest/reference/configuration.html", + "type": "object", + "deprecated": true, + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": "false" + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "AsyncioScope": { + "type": "string", + "enum": ["function", "class", "module", "package", "session"] + }, + "LogLevel": { + "description": "A minimum log level. Can be level name or integer value.", + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"] + }, + { + "type": "string", + "deprecated": true, + "enum": ["FATAL", "WARN"] + } + ] + }, + "Config": { + "description": "Direct key configuration with proper TOML types (pytest >=9)\nhttps://docs.pytest.org/en/stable/reference/reference.html#configuration-options", + "allOf": [ + { + "$ref": "#/definitions/ConfigOptionsPytest" + }, + { + "$ref": "#/definitions/ConfigOptionsAsyncio" + } + ], + "not": { + "type": "object", + "properties": { + "ini_options": {} + }, + "additionalProperties": true, + "required": ["ini_options"] + } + }, + "ConfigOptionsPytest": { + "type": "object", + "properties": { + "addopts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin’s content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "type": "boolean", + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": true + }, + "consider_namespace_packages": { + "type": "boolean", + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": false + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "type": "boolean", + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": false + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "type": "boolean", + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": false + }, + "faulthandler_exit_on_timeout": { + "type": "boolean", + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": false + }, + "faulthandler_timeout": { + "type": "integer", + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "type": "boolean", + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": true + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["On", "Off"] + } + ] + }, + "log_cli": { + "type": "boolean", + "description": "Enable log display during test run (also known as “live logging”).", + "default": false + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "*.egg", + ".*", + "_darcs", + "build", + "CVS", + "dist", + "node_modules", + "venv", + "{arch}" + ], + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "type": "boolean", + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": false + }, + "strict_config": { + "type": "boolean", + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": false + }, + "strict_markers": { + "type": "boolean", + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": false + }, + "strict_parametrization_ids": { + "type": "boolean", + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": false + }, + "strict_xfail": { + "type": "boolean", + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": false + }, + "testpaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "type": "string", + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "type": "integer", + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": 640 + }, + "truncation_limit_lines": { + "type": "integer", + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": 8 + }, + "usefixtures": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "type": "boolean", + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": false + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "ConfigOptionsAsyncio": { + "type": "object", + "description": "Configuration options for pytest-asyncio.\nhttps://pytest-asyncio.readthedocs.io/en/latest/reference/configuration.html", + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "type": "boolean", + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": false + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + } + } +} diff --git a/tests/testdata/json_schemastore_pytest_override_opts/old.json b/tests/testdata/json_schemastore_pytest_override_opts/old.json new file mode 100644 index 0000000..a947bf6 --- /dev/null +++ b/tests/testdata/json_schemastore_pytest_override_opts/old.json @@ -0,0 +1,1117 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/partial-pytest.json", + "description": "JSON schema for pytest configuration options under `[tool.pytest]` in `pyproject.toml`.", + "oneOf": [ + { + "$ref": "#/definitions/LegacyConfig" + }, + { + "$ref": "#/definitions/Config" + } + ], + "definitions": { + "LegacyConfig": { + "description": "Legacy configuration using ini_options table (pytest <9)", + "type": "object", + "deprecated": true, + "properties": { + "ini_options": { + "allOf": [ + { + "$ref": "#/definitions/IniOptionsPytest" + }, + { + "$ref": "#/definitions/IniOptionsAsyncio" + } + ], + "title": "Bridge Configuration Options for `pytest.ini` File", + "description": "The `ini_options` table is used as a bridge between the existing `pytest.ini` configuration system and future configuration formats. `pytest.ini` takes precedence over `[tool.pytest.ini_options]` in `pyproject.toml`." + } + }, + "required": ["ini_options"], + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsPytest": { + "type": "object", + "deprecated": true, + "properties": { + "addopts": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin's content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": "true" + }, + "consider_namespace_packages": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": "false" + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": "false" + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": "false" + }, + "faulthandler_exit_on_timeout": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": "false" + }, + "faulthandler_timeout": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": "true" + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "string", + "enum": ["true", "false", "On", "Off"] + }, + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ] + }, + "log_cli": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enable log display during test run (also known as \"live logging\").", + "default": "false" + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "default": "*.egg .* _darcs build CVS dist node_modules venv {arch}", + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": "false" + }, + "strict_config": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": "false" + }, + "strict_markers": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": "false" + }, + "strict_parametrization_ids": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": "false" + }, + "strict_xfail": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": "false" + }, + "testpaths": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": "640" + }, + "truncation_limit_lines": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": "8" + }, + "usefixtures": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ], + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9]+$" + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": "false" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "IniOptionsAsyncio": { + "$comment": "additionalProperties is true because the schema is merged with other schemas", + "description": "Configuration options for pytest-asyncio.\nhttps://pytest-asyncio.readthedocs.io/en/latest/reference/configuration.html", + "type": "object", + "deprecated": true, + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "oneOf": [ + { + "type": "string", + "enum": ["true", "false"] + }, + { + "type": "boolean" + } + ], + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": "false" + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "AsyncioScope": { + "type": "string", + "enum": ["function", "class", "module", "package", "session"] + }, + "LogLevel": { + "description": "A minimum log level. Can be level name or integer value.", + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"] + }, + { + "type": "string", + "deprecated": true, + "enum": ["FATAL", "WARN"] + } + ] + }, + "Config": { + "description": "Direct key configuration with proper TOML types (pytest >=9)\nhttps://docs.pytest.org/en/stable/reference/reference.html#configuration-options", + "allOf": [ + { + "$ref": "#/definitions/ConfigOptionsPytest" + }, + { + "$ref": "#/definitions/ConfigOptionsAsyncio" + } + ], + "not": { + "type": "object", + "properties": { + "ini_options": {} + }, + "additionalProperties": true, + "required": ["ini_options"] + } + }, + "ConfigOptionsPytest": { + "type": "object", + "properties": { + "addopts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Add the specified OPTS to the set of command line arguments as if they had been specified by the user.", + "x-tombi-array-values-order": "ascending" + }, + "cache_dir": { + "type": "string", + "description": "Sets the directory where the cache plugin’s content is stored.", + "default": ".pytest_cache" + }, + "collect_imported_tests": { + "type": "boolean", + "description": "Settings this to false will make pytest collect classes/functions from test files _only_ if they are defined in that file (as opposed to imported there).", + "default": true + }, + "consider_namespace_packages": { + "type": "boolean", + "description": "Controls if pytest should attempt to identify namespace packages when collecting Python modules.", + "default": false + }, + "console_output_style": { + "type": "string", + "enum": [ + "classic", + "progress", + "progress-even-when-capture-no", + "count", + "times" + ], + "description": "Sets console output style during test execution.", + "default": "progress" + }, + "disable_test_id_escaping_and_forfeit_all_rights_to_community_support": { + "type": "boolean", + "description": "pytest by default escapes any non-ascii characters used in unicode strings for the parametrization because it has several downsides. If however you would like to use unicode strings in parametrization and see them in the terminal as is (non-escaped), use this option in your configuration file", + "default": false + }, + "doctest_encoding": { + "type": "string", + "description": "Default encoding to use to decode text files with docstrings." + }, + "doctest_optionflags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more doctest flag names from the standard doctest module.", + "x-tombi-array-values-order": "ascending" + }, + "empty_parameter_set_mark": { + "type": "string", + "enum": ["skip", "xfail", "fail_at_collect"], + "description": "Allows to pick the action for empty parametersets in parameterization.", + "default": "skip" + }, + "enable_assertion_pass_hook": { + "type": "boolean", + "description": "Enables the pytest_assertion_pass hook. Make sure to delete any previously generated .pyc cache files.", + "default": false + }, + "faulthandler_exit_on_timeout": { + "type": "boolean", + "description": "Exit the pytest process after the per-test timeout is reached by passing exit=True to the faulthandler.dump_traceback_later() function. This is particularly useful to avoid wasting CI resources for test suites that are prone to putting the main Python interpreter into a deadlock state.", + "default": false + }, + "faulthandler_timeout": { + "type": "integer", + "description": "Dumps the tracebacks of all threads if a test takes longer than X seconds to run (including fixture setup and teardown). Implemented using the faulthandler.dump_traceback_later() function, so all caveats there apply." + }, + "filterwarnings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets a list of filters and actions that should be taken for matched warnings. By default all warnings emitted during the test session will be displayed in a summary at the end of the test session.", + "x-tombi-array-values-order": "ascending" + }, + "junit_duration_report": { + "type": "string", + "enum": ["total", "call"], + "description": "Configures how durations are recorded into the JUnit XML report:", + "default": "total" + }, + "junit_family": { + "type": "string", + "enum": ["legacy", "xunit1", "xunit2"], + "description": "Configures the format of the generated JUnit XML file.", + "default": "xunit2" + }, + "junit_log_passing_tests": { + "type": "boolean", + "description": "If junit_logging is enabled, configures if the captured output should be written to the JUnit XML file for passing tests.", + "default": true + }, + "junit_logging": { + "type": "string", + "enum": ["no", "log", "system-out", "system-err", "out-err", "all"], + "description": "Configures if captured output should be written to the JUnit XML file.", + "default": "no" + }, + "junit_suite_name": { + "type": "string", + "description": "To set the name of the root test suite xml item, you can configure the junit_suite_name option in your config file." + }, + "log_auto_indent": { + "description": "Allow selective auto-indentation of multiline log messages.", + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["On", "Off"] + } + ] + }, + "log_cli": { + "type": "boolean", + "description": "Enable log display during test run (also known as “live logging”).", + "default": false + }, + "log_cli_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for live logging." + }, + "log_cli_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format live logging messages." + }, + "log_cli_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for live logging. The integer value or the names of the levels can be used." + }, + "log_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for logging capture." + }, + "log_file": { + "type": "string", + "description": "Sets a file name relative to the current working directory where log messages should be written to, in addition to the other logging facilities that are active." + }, + "log_file_date_format": { + "type": "string", + "description": "Sets a time.strftime()-compatible string that will be used when formatting dates for the logging file." + }, + "log_file_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format logging messages redirected to the logging file." + }, + "log_file_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for the logging file. The integer value or the names of the levels can be used." + }, + "log_file_mode": { + "type": "string", + "enum": ["a", "w"], + "description": "Sets the mode that the logging file is opened with. The options are 'w' to recreate the file (the default) or 'a' to append to the file.", + "default": "a" + }, + "log_format": { + "type": "string", + "description": "Sets a logging-compatible string used to format captured logging messages." + }, + "log_level": { + "$ref": "#/definitions/LogLevel", + "description": "Sets the minimum log message level that should be captured for logging capture. The integer value or the names of the levels can be used." + }, + "markers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "When the strict_markers configuration option is set, only known markers - defined in code by core pytest or some plugin - are allowed. You can list additional markers in this setting to add them to the whitelist, in which case you probably want to set strict_markers to true to avoid future regressions.", + "x-tombi-array-values-order": "ascending" + }, + "minversion": { + "type": "string", + "description": "Specifies a minimal pytest version required for running tests." + }, + "norecursedirs": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "*.egg", + ".*", + "_darcs", + "build", + "CVS", + "dist", + "node_modules", + "venv", + "{arch}" + ], + "description": "Set the directory basename patterns to avoid when recursing for test discovery. The individual (fnmatch-style) patterns are applied to the basename of a directory to decide if to recurse into it.", + "x-tombi-array-values-order": "ascending" + }, + "python_classes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-style patterns determining which classes are considered for test collection. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any class prefixed with Test as a test collection.", + "x-tombi-array-values-order": "ascending" + }, + "python_files": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more Glob-style file patterns determining which python files are considered as test modules.", + "default": ["test_*.py", "*_test.py"], + "x-tombi-array-values-order": "ascending" + }, + "python_functions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more name prefixes or glob-patterns determining which test functions and methods are considered tests. Search for multiple glob patterns by adding a space between patterns. By default, pytest will consider any function prefixed with test as a test.", + "default": ["test_*"], + "x-tombi-array-values-order": "ascending" + }, + "pythonpath": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be added to the python search path. Directories will be added to the head of sys.path. Similar to the PYTHONPATH environment variable, the directories will be included in where Python will look for imported modules. Paths are relative to the rootdir directory.", + "x-tombi-array-values-order": "ascending" + }, + "required_plugins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of plugins that must be present for pytest to run. Plugins can be listed with or without version specifiers directly following their name.", + "x-tombi-array-values-order": "ascending" + }, + "strict": { + "type": "boolean", + "description": "If set to true, enable 'strict mode', which enables a number of other strict options.", + "default": false + }, + "strict_config": { + "type": "boolean", + "description": "If set to true, any warnings encountered while parsing the pytest section of the configuration file will raise errors.", + "default": false + }, + "strict_markers": { + "type": "boolean", + "description": "If set to true, markers not registered in the markers section of the configuration file will raise errors.", + "default": false + }, + "strict_parametrization_ids": { + "type": "boolean", + "description": "If set to true, pytest emits an error if it detects non-unique parameter set IDs. If not set (the default), pytest automatically handles this by adding 0, 1, … to duplicate IDs, making them unique.", + "default": false + }, + "strict_xfail": { + "type": "boolean", + "description": "If set to true, tests marked with @pytest.mark.xfail that actually succeed will by default fail the test suite.", + "default": false + }, + "testpaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sets list of directories that should be searched for tests when no specific directories, files or test ids are given in the command line when executing pytest from the rootdir directory. File system paths may use shell-style wildcards, including the recursive ** pattern. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident.", + "x-tombi-array-values-order": "ascending" + }, + "tmp_path_retention_count": { + "type": "string", + "description": "How many sessions should we keep the tmp_path directories, according to tmp_path_retention_policy.", + "default": "3" + }, + "tmp_path_retention_policy": { + "type": "string", + "enum": ["all", "failed", "none"], + "description": "Controls which directories created by the tmp_path fixture are kept around, based on test outcome.", + "default": "all" + }, + "truncation_limit_chars": { + "type": "integer", + "description": "Controls maximum number of characters to truncate assertion message contents. Setting value to 0 disables the character limit for truncation.", + "default": 640 + }, + "truncation_limit_lines": { + "type": "integer", + "description": "Controls maximum number of linesto truncate assertion message contents. Setting value to 0 disables the lines limit for truncation.", + "default": 8 + }, + "usefixtures": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of fixtures that will be applied to all test functions; this is semantically the same to apply the @pytest.mark.usefixtures marker to all test functions.", + "x-tombi-array-values-order": "ascending" + }, + "verbosity_assertions": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for assertion related output, overriding the application wide level." + }, + "verbosity_subtests": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set the verbosity level specifically for passed subtests. A value of 1 or higher will show output for passed subtests (failed subtests are always reported). Passed subtests output can be suppressed with the value 0, which overwrites the -v command-line option." + }, + "verbosity_test_cases": { + "oneOf": [ + { + "type": "integer", + "minimum": 0 + }, + { + "type": "string", + "enum": ["auto"] + } + ], + "description": "Set a verbosity level specifically for test case execution related output, overriding the application wide level." + }, + "xfail_strict": { + "type": "boolean", + "description": "DEPRECATED. Alias for strict_xfail. If true, test suite will fail if a test marked with `@pytest.mark.xfail` unexpectedly passes.", + "deprecated": true, + "default": false + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + }, + "ConfigOptionsAsyncio": { + "type": "object", + "description": "Configuration options for pytest-asyncio.\nhttps://pytest-asyncio.readthedocs.io/en/latest/reference/configuration.html", + "properties": { + "asyncio_default_fixture_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous fixtures. When this configuration option is unset, it defaults to the fixture scope. In future versions of pytest-asyncio, the value will default to function when unset" + }, + "asyncio_default_test_loop_scope": { + "$ref": "#/definitions/AsyncioScope", + "type": "string", + "description": "Default event loop scope of asynchronous tests. When this configuration option is unset, it default to function scope", + "default": "function" + }, + "asyncio_debug": { + "type": "boolean", + "description": "Enables asyncio debug mode for the default event loop used by asynchronous tests and fixtures.", + "default": false + }, + "asyncio_mode": { + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Automatically handling all async functions by the plugin" + }, + { + "const": "strict", + "description": "Auto processing disabling (useful if different async frameworks should be tested together, e.g. both pytest-asyncio and pytest-trio are used in the same project" + } + ], + "description": "Sets the asyncio mode for pytest-asyncio.", + "default": "strict" + } + }, + "additionalProperties": true, + "x-tombi-table-keys-order": "schema" + } + } +} diff --git a/tests/testdata/json_schemastore_tox_env_configuration/expected.json b/tests/testdata/json_schemastore_tox_env_configuration/expected.json new file mode 100644 index 0000000..6a9217f --- /dev/null +++ b/tests/testdata/json_schemastore_tox_env_configuration/expected.json @@ -0,0 +1,3433 @@ +{ + "version": "v1", + "actions": [ + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1 + ], + "type": "object", + "start_byte": 19778, + "end_byte": 20133 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45 + ], + "type": "pair", + "start_byte": 19770, + "end_byte": 20133 + }, + "position": 1 + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1, + 1 + ], + "type": "pair", + "start_byte": 19818, + "end_byte": 19912 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1 + ], + "type": "object", + "start_byte": 19778, + "end_byte": 20133 + }, + "position": 1, + "old_parent": { + "tree": "before", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1 + ], + "type": "object", + "start_byte": 19778, + "end_byte": 19922 + }, + "old_position": 1, + "subtree": true, + "dest_start_byte": 20029, + "dest_end_byte": 20123 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1, + 0, + 0 + ], + "type": "string", + "label": "\"oneOf\"", + "start_byte": 19790, + "end_byte": 19797 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1, + 0 + ], + "type": "pair", + "start_byte": 19790, + "end_byte": 20017 + }, + "position": 0 + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1, + 0 + ], + "type": "pair", + "start_byte": 19790, + "end_byte": 19806 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1, + 0, + 1, + 0 + ], + "type": "object", + "start_byte": 19813, + "end_byte": 19859 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1 + ], + "type": "object", + "start_byte": 19778, + "end_byte": 19922 + }, + "old_position": 0, + "subtree": true, + "dest_start_byte": 19829, + "dest_end_byte": 19845 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1, + 0, + 1, + 1 + ], + "type": "object", + "start_byte": 19873, + "end_byte": 20005 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 6, + 1, + 22, + 1, + 3, + 1, + 45, + 1, + 0, + 1 + ], + "type": "array", + "start_byte": 19799, + "end_byte": 20017 + }, + "position": 1, + "subtree": true + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": 334, + "right_line": 334 + }, + { + "left_line": 335, + "right_line": 335 + }, + { + "left_line": 336, + "right_line": 336 + }, + { + "left_line": 337, + "right_line": 337 + }, + { + "left_line": 338, + "right_line": 338 + }, + { + "left_line": 339, + "right_line": 339 + }, + { + "left_line": 340, + "right_line": 340 + }, + { + "left_line": 341, + "right_line": 341 + }, + { + "left_line": 342, + "right_line": 342 + }, + { + "left_line": 343, + "right_line": 343 + }, + { + "left_line": 344, + "right_line": 344 + }, + { + "left_line": 345, + "right_line": 345 + }, + { + "left_line": 346, + "right_line": 346 + }, + { + "left_line": 347, + "right_line": 347 + }, + { + "left_line": 348, + "right_line": 348 + }, + { + "left_line": 349, + "right_line": 349 + }, + { + "left_line": 350, + "right_line": 350 + }, + { + "left_line": 351, + "right_line": 351 + }, + { + "left_line": 352, + "right_line": 352 + }, + { + "left_line": 353, + "right_line": 353 + }, + { + "left_line": 354, + "right_line": 354 + }, + { + "left_line": 355, + "right_line": 355 + }, + { + "left_line": 356, + "right_line": 356 + }, + { + "left_line": 357, + "right_line": 357 + }, + { + "left_line": 358, + "right_line": 358 + }, + { + "left_line": 359, + "right_line": 359 + }, + { + "left_line": 360, + "right_line": 360 + }, + { + "left_line": 361, + "right_line": 361 + }, + { + "left_line": 362, + "right_line": 362 + }, + { + "left_line": 363, + "right_line": 363 + }, + { + "left_line": 364, + "right_line": 364 + }, + { + "left_line": 365, + "right_line": 365 + }, + { + "left_line": 366, + "right_line": 366 + }, + { + "left_line": 367, + "right_line": 367 + }, + { + "left_line": 368, + "right_line": 368 + }, + { + "left_line": 369, + "right_line": 369 + }, + { + "left_line": 370, + "right_line": 370 + }, + { + "left_line": 371, + "right_line": 371 + }, + { + "left_line": 372, + "right_line": 372 + }, + { + "left_line": 373, + "right_line": 373 + }, + { + "left_line": 374, + "right_line": 374 + }, + { + "left_line": 375, + "right_line": 375 + }, + { + "left_line": 376, + "right_line": 376 + }, + { + "left_line": 377, + "right_line": 377 + }, + { + "left_line": 378, + "right_line": 378 + }, + { + "left_line": 379, + "right_line": 379 + }, + { + "left_line": 380, + "right_line": 380 + }, + { + "left_line": 381, + "right_line": 381 + }, + { + "left_line": 382, + "right_line": 382 + }, + { + "left_line": 383, + "right_line": 383 + }, + { + "left_line": 384, + "right_line": 384 + }, + { + "left_line": 385, + "right_line": 385 + }, + { + "left_line": 386, + "right_line": 386 + }, + { + "left_line": 387, + "right_line": 387 + }, + { + "left_line": 388, + "right_line": 388 + }, + { + "left_line": 389, + "right_line": 389 + }, + { + "left_line": 390, + "right_line": 390 + }, + { + "left_line": 391, + "right_line": 391 + }, + { + "left_line": 392, + "right_line": 392 + }, + { + "left_line": 393, + "right_line": 393 + }, + { + "left_line": 394, + "right_line": 394 + }, + { + "left_line": 395, + "right_line": 395 + }, + { + "left_line": 396, + "right_line": 396 + }, + { + "left_line": 397, + "right_line": 397 + }, + { + "left_line": 398, + "right_line": 398 + }, + { + "left_line": 399, + "right_line": 399 + }, + { + "left_line": 400, + "right_line": 400 + }, + { + "left_line": 401, + "right_line": 401 + }, + { + "left_line": 402, + "right_line": 402 + }, + { + "left_line": 403, + "right_line": 403 + }, + { + "left_line": 404, + "right_line": 404 + }, + { + "left_line": 405, + "right_line": 405 + }, + { + "left_line": 406, + "right_line": 406 + }, + { + "left_line": 407, + "right_line": 407 + }, + { + "left_line": 408, + "right_line": 408 + }, + { + "left_line": 409, + "right_line": 409 + }, + { + "left_line": 410, + "right_line": 410 + }, + { + "left_line": 411, + "right_line": 411 + }, + { + "left_line": 412, + "right_line": 412 + }, + { + "left_line": 413, + "right_line": 413 + }, + { + "left_line": 414, + "right_line": 414 + }, + { + "left_line": 415, + "right_line": 415 + }, + { + "left_line": 416, + "right_line": 416 + }, + { + "left_line": 417, + "right_line": 417 + }, + { + "left_line": 418, + "right_line": 418 + }, + { + "left_line": 419, + "right_line": 419 + }, + { + "left_line": 420, + "right_line": 420 + }, + { + "left_line": 421, + "right_line": 421 + }, + { + "left_line": 422, + "right_line": 422 + }, + { + "left_line": 423, + "right_line": 423 + }, + { + "left_line": 424, + "right_line": 424 + }, + { + "left_line": 425, + "right_line": 425 + }, + { + "left_line": 426, + "right_line": 426 + }, + { + "left_line": 427, + "right_line": 427 + }, + { + "left_line": 428, + "right_line": 428 + }, + { + "left_line": 429, + "right_line": 429 + }, + { + "left_line": 430, + "right_line": 430 + }, + { + "left_line": 431, + "right_line": 431 + }, + { + "left_line": 432, + "right_line": 432 + }, + { + "left_line": 433, + "right_line": 433 + }, + { + "left_line": 434, + "right_line": 434 + }, + { + "left_line": 435, + "right_line": 435 + }, + { + "left_line": 436, + "right_line": 436 + }, + { + "left_line": 437, + "right_line": 437 + }, + { + "left_line": 438, + "right_line": 438 + }, + { + "left_line": 439, + "right_line": 439 + }, + { + "left_line": 440, + "right_line": 440 + }, + { + "left_line": 441, + "right_line": 441 + }, + { + "left_line": 442, + "right_line": 442 + }, + { + "left_line": 443, + "right_line": 443 + }, + { + "left_line": 444, + "right_line": 444 + }, + { + "left_line": 445, + "right_line": 445 + }, + { + "left_line": 446, + "right_line": 446 + }, + { + "left_line": 447, + "right_line": 447 + }, + { + "left_line": 448, + "right_line": 448 + }, + { + "left_line": 449, + "right_line": 449 + }, + { + "left_line": 450, + "right_line": 450 + }, + { + "left_line": 451, + "right_line": 451 + }, + { + "left_line": 452, + "right_line": 452 + }, + { + "left_line": 453, + "right_line": 453 + }, + { + "left_line": 454, + "right_line": 454 + }, + { + "left_line": 455, + "right_line": 455 + }, + { + "left_line": 456, + "right_line": 456 + }, + { + "left_line": 457, + "right_line": 457 + }, + { + "left_line": 458, + "right_line": 458 + }, + { + "left_line": 459, + "right_line": 459 + }, + { + "left_line": 460, + "right_line": 460 + }, + { + "left_line": 461, + "right_line": 461 + }, + { + "left_line": 462, + "right_line": 462 + }, + { + "left_line": 463, + "right_line": 463 + }, + { + "left_line": 464, + "right_line": 464 + }, + { + "left_line": 465, + "right_line": 465 + }, + { + "left_line": 466, + "right_line": 466 + }, + { + "left_line": 467, + "right_line": 467 + }, + { + "left_line": 468, + "right_line": 468 + }, + { + "left_line": 469, + "right_line": 469 + }, + { + "left_line": 470, + "right_line": 470 + }, + { + "left_line": 471, + "right_line": 471 + }, + { + "left_line": 472, + "right_line": 472 + }, + { + "left_line": 473, + "right_line": 473 + }, + { + "left_line": 474, + "right_line": 474 + }, + { + "left_line": 475, + "right_line": 475 + }, + { + "left_line": 476, + "right_line": 476 + }, + { + "left_line": 477, + "right_line": 477 + }, + { + "left_line": 478, + "right_line": 478 + }, + { + "left_line": 479, + "right_line": 479 + }, + { + "left_line": 480, + "right_line": 480 + }, + { + "left_line": 481, + "right_line": 481 + }, + { + "left_line": 482, + "right_line": 482 + }, + { + "left_line": 483, + "right_line": 483 + }, + { + "left_line": 484, + "right_line": 484 + }, + { + "left_line": 485, + "right_line": 485 + }, + { + "left_line": 486, + "right_line": 486 + }, + { + "left_line": 487, + "right_line": 487 + }, + { + "left_line": 488, + "right_line": 488 + }, + { + "left_line": 489, + "right_line": 489 + }, + { + "left_line": 490, + "right_line": 490 + }, + { + "left_line": 491, + "right_line": 491 + }, + { + "left_line": 492, + "right_line": 492 + }, + { + "left_line": 493, + "right_line": 493 + }, + { + "left_line": 494, + "right_line": 494 + }, + { + "left_line": 495, + "right_line": 495 + }, + { + "left_line": 496, + "right_line": 496 + }, + { + "left_line": 497, + "right_line": 497 + }, + { + "left_line": 498, + "right_line": 498 + }, + { + "left_line": 499, + "right_line": 499 + }, + { + "left_line": 500, + "right_line": 500 + }, + { + "left_line": 501, + "right_line": 501 + }, + { + "left_line": 502, + "right_line": 502 + }, + { + "left_line": 503, + "right_line": 503 + }, + { + "left_line": 504, + "right_line": 504 + }, + { + "left_line": 505, + "right_line": 505 + }, + { + "left_line": 506, + "right_line": 506 + }, + { + "left_line": 507, + "right_line": 507 + }, + { + "left_line": 508, + "right_line": 508 + }, + { + "left_line": 509, + "right_line": 509 + }, + { + "left_line": 510, + "right_line": 510 + }, + { + "left_line": 511, + "right_line": 511 + }, + { + "left_line": 512, + "right_line": 512 + }, + { + "left_line": 513, + "right_line": 513 + }, + { + "left_line": 514, + "right_line": 514 + }, + { + "left_line": 515, + "right_line": 515 + }, + { + "left_line": 516, + "right_line": 516 + }, + { + "left_line": 517, + "right_line": 517 + }, + { + "left_line": 518, + "right_line": 518 + }, + { + "left_line": 519, + "right_line": 519 + }, + { + "left_line": 520, + "right_line": 520 + }, + { + "left_line": 521, + "right_line": 521 + }, + { + "left_line": 522, + "right_line": 522 + }, + { + "left_line": 523, + "right_line": 523 + }, + { + "left_line": 524, + "right_line": 524 + }, + { + "left_line": 525, + "right_line": 525 + }, + { + "left_line": 526, + "right_line": 526 + }, + { + "left_line": 527, + "right_line": 527 + }, + { + "left_line": 528, + "right_line": 528 + }, + { + "left_line": 529, + "right_line": 529 + }, + { + "left_line": 530, + "right_line": 530 + }, + { + "left_line": 531, + "right_line": 531 + }, + { + "left_line": 532, + "right_line": 532 + }, + { + "left_line": 533, + "right_line": 533 + }, + { + "left_line": 534, + "right_line": 534 + }, + { + "left_line": 535, + "right_line": 535 + }, + { + "left_line": 536, + "right_line": 536 + }, + { + "left_line": 537, + "right_line": 537 + }, + { + "left_line": 538, + "right_line": 538 + }, + { + "left_line": 539, + "right_line": 539 + }, + { + "left_line": 540, + "right_line": 540 + }, + { + "left_line": 541, + "right_line": 541 + }, + { + "left_line": 542, + "right_line": 542 + }, + { + "left_line": 543, + "right_line": 543 + }, + { + "left_line": 544, + "right_line": 544 + }, + { + "left_line": 545, + "right_line": 545 + }, + { + "left_line": 546, + "right_line": 546 + }, + { + "left_line": 547, + "right_line": 547 + }, + { + "left_line": 548, + "right_line": 548 + }, + { + "left_line": 549, + "right_line": 549 + }, + { + "left_line": 550, + "right_line": 550 + }, + { + "left_line": 551, + "right_line": 551 + }, + { + "left_line": 552, + "right_line": 552 + }, + { + "left_line": 553, + "right_line": 553 + }, + { + "left_line": 554, + "right_line": 554 + }, + { + "left_line": 555, + "right_line": 555 + }, + { + "left_line": 556, + "right_line": 556 + }, + { + "left_line": 557, + "right_line": 557 + }, + { + "left_line": 558, + "right_line": 558 + }, + { + "left_line": 559, + "right_line": 559 + }, + { + "left_line": 560, + "right_line": 560 + }, + { + "left_line": 561, + "right_line": 561 + }, + { + "left_line": 562, + "right_line": 562 + }, + { + "left_line": 563, + "right_line": 563 + }, + { + "left_line": 564, + "right_line": 564 + }, + { + "left_line": 565, + "right_line": 565 + }, + { + "left_line": 566, + "right_line": 566 + }, + { + "left_line": 567, + "right_line": 567 + }, + { + "left_line": 568, + "right_line": 568 + }, + { + "left_line": 569, + "right_line": 569 + }, + { + "left_line": 570, + "right_line": 570 + }, + { + "left_line": 571, + "right_line": 571 + }, + { + "left_line": 572, + "right_line": 572 + }, + { + "left_line": 573, + "right_line": 573 + }, + { + "left_line": 574, + "right_line": 574 + }, + { + "left_line": 575, + "right_line": 575 + }, + { + "left_line": 576, + "right_line": 576 + }, + { + "left_line": 577, + "right_line": 577 + }, + { + "left_line": 578, + "right_line": 578 + }, + { + "left_line": 579, + "right_line": 579 + }, + { + "left_line": 580, + "right_line": 580 + }, + { + "left_line": 581, + "right_line": 581 + }, + { + "left_line": 582, + "right_line": 582 + }, + { + "left_line": 583, + "right_line": 583 + }, + { + "left_line": 584, + "right_line": 584 + }, + { + "left_line": 585, + "right_line": 585 + }, + { + "left_line": 586, + "right_line": 586 + }, + { + "left_line": 587, + "right_line": 587 + }, + { + "left_line": 588, + "right_line": 588 + }, + { + "left_line": 589, + "right_line": 589 + }, + { + "left_line": 590, + "right_line": 590 + }, + { + "left_line": -1, + "right_line": 591 + }, + { + "left_line": -1, + "right_line": 592 + }, + { + "left_line": 591, + "right_line": 593 + }, + { + "left_line": 592, + "right_line": -1 + }, + { + "left_line": -1, + "right_line": 594 + }, + { + "left_line": -1, + "right_line": 595 + }, + { + "left_line": -1, + "right_line": 596 + }, + { + "left_line": -1, + "right_line": 597 + }, + { + "left_line": -1, + "right_line": 598 + }, + { + "left_line": -1, + "right_line": 599 + }, + { + "left_line": -1, + "right_line": 600 + }, + { + "left_line": -1, + "right_line": 601 + }, + { + "left_line": -1, + "right_line": 602 + }, + { + "left_line": 593, + "right_line": 603 + }, + { + "left_line": 594, + "right_line": 604 + }, + { + "left_line": 595, + "right_line": 605 + }, + { + "left_line": 596, + "right_line": 606 + }, + { + "left_line": 597, + "right_line": 607 + }, + { + "left_line": 598, + "right_line": 608 + }, + { + "left_line": 599, + "right_line": 609 + }, + { + "left_line": 600, + "right_line": 610 + }, + { + "left_line": 601, + "right_line": 611 + }, + { + "left_line": 602, + "right_line": 612 + }, + { + "left_line": 603, + "right_line": 613 + }, + { + "left_line": 604, + "right_line": 614 + }, + { + "left_line": 605, + "right_line": 615 + }, + { + "left_line": 606, + "right_line": 616 + }, + { + "left_line": 607, + "right_line": 617 + }, + { + "left_line": 608, + "right_line": 618 + }, + { + "left_line": 609, + "right_line": 619 + }, + { + "left_line": 610, + "right_line": 620 + }, + { + "left_line": 611, + "right_line": 621 + }, + { + "left_line": 612, + "right_line": 622 + }, + { + "left_line": 613, + "right_line": 623 + }, + { + "left_line": 614, + "right_line": 624 + }, + { + "left_line": 615, + "right_line": 625 + }, + { + "left_line": 616, + "right_line": 626 + }, + { + "left_line": 617, + "right_line": 627 + }, + { + "left_line": 618, + "right_line": 628 + }, + { + "left_line": 619, + "right_line": 629 + }, + { + "left_line": 620, + "right_line": 630 + }, + { + "left_line": 621, + "right_line": 631 + }, + { + "left_line": 622, + "right_line": 632 + }, + { + "left_line": 623, + "right_line": 633 + }, + { + "left_line": 624, + "right_line": 634 + }, + { + "left_line": 625, + "right_line": 635 + }, + { + "left_line": 626, + "right_line": 636 + }, + { + "left_line": 627, + "right_line": 637 + }, + { + "left_line": 628, + "right_line": 638 + }, + { + "left_line": 629, + "right_line": 639 + }, + { + "left_line": 630, + "right_line": 640 + }, + { + "left_line": 631, + "right_line": 641 + }, + { + "left_line": 632, + "right_line": 642 + }, + { + "left_line": 633, + "right_line": 643 + }, + { + "left_line": 634, + "right_line": 644 + }, + { + "left_line": 635, + "right_line": 645 + }, + { + "left_line": 636, + "right_line": 646 + }, + { + "left_line": 637, + "right_line": 647 + }, + { + "left_line": 638, + "right_line": 648 + }, + { + "left_line": 639, + "right_line": 649 + }, + { + "left_line": 640, + "right_line": 650 + }, + { + "left_line": 641, + "right_line": 651 + }, + { + "left_line": 642, + "right_line": 652 + }, + { + "left_line": 643, + "right_line": 653 + }, + { + "left_line": 644, + "right_line": 654 + }, + { + "left_line": 645, + "right_line": 655 + }, + { + "left_line": 646, + "right_line": 656 + }, + { + "left_line": 647, + "right_line": 657 + }, + { + "left_line": 648, + "right_line": 658 + }, + { + "left_line": 649, + "right_line": 659 + }, + { + "left_line": 650, + "right_line": 660 + }, + { + "left_line": 651, + "right_line": 661 + }, + { + "left_line": 652, + "right_line": 662 + }, + { + "left_line": 653, + "right_line": 663 + }, + { + "left_line": 654, + "right_line": 664 + }, + { + "left_line": 655, + "right_line": 665 + }, + { + "left_line": 656, + "right_line": 666 + }, + { + "left_line": 657, + "right_line": 667 + }, + { + "left_line": 658, + "right_line": 668 + }, + { + "left_line": 659, + "right_line": 669 + }, + { + "left_line": 660, + "right_line": 670 + }, + { + "left_line": 661, + "right_line": 671 + }, + { + "left_line": 662, + "right_line": 672 + }, + { + "left_line": 663, + "right_line": 673 + }, + { + "left_line": 664, + "right_line": 674 + }, + { + "left_line": 665, + "right_line": 675 + }, + { + "left_line": 666, + "right_line": 676 + }, + { + "left_line": 667, + "right_line": 677 + }, + { + "left_line": 668, + "right_line": 678 + }, + { + "left_line": 669, + "right_line": 679 + }, + { + "left_line": 670, + "right_line": 680 + }, + { + "left_line": 671, + "right_line": 681 + }, + { + "left_line": 672, + "right_line": 682 + }, + { + "left_line": 673, + "right_line": 683 + }, + { + "left_line": 674, + "right_line": 684 + }, + { + "left_line": 675, + "right_line": 685 + }, + { + "left_line": 676, + "right_line": 686 + }, + { + "left_line": 677, + "right_line": 687 + }, + { + "left_line": 678, + "right_line": 688 + }, + { + "left_line": 679, + "right_line": 689 + }, + { + "left_line": 680, + "right_line": 690 + }, + { + "left_line": 681, + "right_line": 691 + }, + { + "left_line": 682, + "right_line": 692 + }, + { + "left_line": 683, + "right_line": 693 + }, + { + "left_line": 684, + "right_line": 694 + }, + { + "left_line": 685, + "right_line": 695 + }, + { + "left_line": 686, + "right_line": 696 + }, + { + "left_line": 687, + "right_line": 697 + }, + { + "left_line": 688, + "right_line": 698 + }, + { + "left_line": 689, + "right_line": 699 + }, + { + "left_line": 690, + "right_line": 700 + }, + { + "left_line": 691, + "right_line": 701 + }, + { + "left_line": 692, + "right_line": 702 + }, + { + "left_line": 693, + "right_line": 703 + }, + { + "left_line": 694, + "right_line": 704 + }, + { + "left_line": 695, + "right_line": 705 + }, + { + "left_line": 696, + "right_line": 706 + }, + { + "left_line": 697, + "right_line": 707 + }, + { + "left_line": 698, + "right_line": 708 + }, + { + "left_line": 699, + "right_line": 709 + }, + { + "left_line": 700, + "right_line": 710 + }, + { + "left_line": 701, + "right_line": 711 + }, + { + "left_line": 702, + "right_line": 712 + }, + { + "left_line": 703, + "right_line": 713 + }, + { + "left_line": 704, + "right_line": 714 + }, + { + "left_line": 705, + "right_line": 715 + }, + { + "left_line": 706, + "right_line": 716 + }, + { + "left_line": 707, + "right_line": 717 + }, + { + "left_line": 708, + "right_line": 718 + }, + { + "left_line": 709, + "right_line": 719 + }, + { + "left_line": 710, + "right_line": 720 + }, + { + "left_line": 711, + "right_line": 721 + }, + { + "left_line": 712, + "right_line": 722 + }, + { + "left_line": 713, + "right_line": 723 + }, + { + "left_line": 714, + "right_line": 724 + }, + { + "left_line": 715, + "right_line": 725 + }, + { + "left_line": 716, + "right_line": 726 + }, + { + "left_line": 717, + "right_line": 727 + }, + { + "left_line": 718, + "right_line": 728 + }, + { + "left_line": 719, + "right_line": 729 + }, + { + "left_line": 720, + "right_line": 730 + }, + { + "left_line": 721, + "right_line": 731 + }, + { + "left_line": 722, + "right_line": 732 + }, + { + "left_line": 723, + "right_line": 733 + }, + { + "left_line": 724, + "right_line": 734 + }, + { + "left_line": 725, + "right_line": 735 + }, + { + "left_line": 726, + "right_line": 736 + }, + { + "left_line": 727, + "right_line": 737 + }, + { + "left_line": 728, + "right_line": 738 + }, + { + "left_line": 729, + "right_line": 739 + }, + { + "left_line": 730, + "right_line": 740 + }, + { + "left_line": 731, + "right_line": 741 + }, + { + "left_line": 732, + "right_line": 742 + }, + { + "left_line": 733, + "right_line": 743 + }, + { + "left_line": 734, + "right_line": 744 + }, + { + "left_line": 735, + "right_line": 745 + }, + { + "left_line": 736, + "right_line": 746 + }, + { + "left_line": 737, + "right_line": 747 + }, + { + "left_line": 738, + "right_line": 748 + }, + { + "left_line": 739, + "right_line": 749 + }, + { + "left_line": 740, + "right_line": 750 + }, + { + "left_line": 741, + "right_line": 751 + }, + { + "left_line": 742, + "right_line": 752 + }, + { + "left_line": 743, + "right_line": 753 + }, + { + "left_line": 744, + "right_line": 754 + }, + { + "left_line": 745, + "right_line": 755 + }, + { + "left_line": 746, + "right_line": 756 + }, + { + "left_line": 747, + "right_line": 757 + }, + { + "left_line": 748, + "right_line": 758 + }, + { + "left_line": 749, + "right_line": 759 + }, + { + "left_line": 750, + "right_line": 760 + }, + { + "left_line": 751, + "right_line": 761 + }, + { + "left_line": 752, + "right_line": 762 + }, + { + "left_line": 753, + "right_line": 763 + }, + { + "left_line": 754, + "right_line": 764 + }, + { + "left_line": 755, + "right_line": 765 + }, + { + "left_line": 756, + "right_line": 766 + }, + { + "left_line": 757, + "right_line": 767 + }, + { + "left_line": 758, + "right_line": 768 + }, + { + "left_line": 759, + "right_line": 769 + }, + { + "left_line": 760, + "right_line": 770 + }, + { + "left_line": 761, + "right_line": 771 + }, + { + "left_line": 762, + "right_line": 772 + }, + { + "left_line": 763, + "right_line": 773 + }, + { + "left_line": 764, + "right_line": 774 + }, + { + "left_line": 765, + "right_line": 775 + }, + { + "left_line": 766, + "right_line": 776 + }, + { + "left_line": 767, + "right_line": 777 + }, + { + "left_line": 768, + "right_line": 778 + }, + { + "left_line": 769, + "right_line": 779 + }, + { + "left_line": 770, + "right_line": 780 + }, + { + "left_line": 771, + "right_line": 781 + }, + { + "left_line": 772, + "right_line": 782 + }, + { + "left_line": 773, + "right_line": 783 + }, + { + "left_line": 774, + "right_line": 784 + }, + { + "left_line": 775, + "right_line": 785 + }, + { + "left_line": 776, + "right_line": 786 + }, + { + "left_line": 777, + "right_line": 787 + }, + { + "left_line": 778, + "right_line": 788 + }, + { + "left_line": 779, + "right_line": 789 + }, + { + "left_line": 780, + "right_line": 790 + }, + { + "left_line": 781, + "right_line": 791 + }, + { + "left_line": 782, + "right_line": 792 + }, + { + "left_line": 783, + "right_line": 793 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_tox_env_configuration/metadata.json b/tests/testdata/json_schemastore_tox_env_configuration/metadata.json new file mode 100644 index 0000000..c09bbe3 --- /dev/null +++ b/tests/testdata/json_schemastore_tox_env_configuration/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "71b24fdd7330c25962ca46c03d1adb046395fe80", + "description": "Update tox environment configuration", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_tox_env_configuration/new.json b/tests/testdata/json_schemastore_tox_env_configuration/new.json new file mode 100644 index 0000000..dc59b9f --- /dev/null +++ b/tests/testdata/json_schemastore_tox_env_configuration/new.json @@ -0,0 +1,793 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/tox.json", + "title": "tox configuration", + "description": "tox configuration file (tox.toml or [tool.tox] in pyproject.toml)", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html" + } + }, + "type": "object", + "properties": { + "tox_root": { + "type": "string", + "description": "the root directory (where the configuration file is found)" + }, + "toxinidir": { + "$ref": "#/properties/tox_root", + "description": "Deprecated: use 'tox_root' instead", + "deprecated": true + }, + "work_dir": { + "type": "string", + "description": "working directory" + }, + "toxworkdir": { + "$ref": "#/properties/work_dir", + "description": "Deprecated: use 'work_dir' instead", + "deprecated": true + }, + "temp_dir": { + "type": "string", + "description": "a folder for temporary files (is not cleaned at start)" + }, + "env_list": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/subs" + }, + { + "type": "object", + "required": ["product"], + "properties": { + "product": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "required": ["prefix"], + "properties": { + "prefix": { + "type": "string" + }, + "start": { + "type": "integer" + }, + "stop": { + "type": "integer" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "not": { + "required": ["prefix"] + }, + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "labeled factor group for {factor:label} substitution" + } + ] + }, + "description": "factor groups for cartesian product expansion" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + }, + "description": "environment names to exclude from product" + } + }, + "additionalProperties": false + } + ] + }, + "description": "define environments to automatically run" + }, + "envlist": { + "$ref": "#/properties/env_list", + "description": "Deprecated: use 'env_list' instead", + "deprecated": true + }, + "base": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "inherit missing keys from these sections" + }, + "min_version": { + "type": "string", + "description": "Define the minimal tox version required to run" + }, + "minversion": { + "$ref": "#/properties/min_version", + "description": "Deprecated: use 'min_version' instead", + "deprecated": true + }, + "provision_tox_env": { + "type": "string", + "description": "Name of the virtual environment used to provision a tox." + }, + "requires": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "Name of the virtual environment used to provision a tox." + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/subs" + }, + { + "type": "object", + "required": ["product"], + "properties": { + "product": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "required": ["prefix"], + "properties": { + "prefix": { + "type": "string" + }, + "start": { + "type": "integer" + }, + "stop": { + "type": "integer" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "not": { + "required": ["prefix"] + }, + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "labeled factor group for {factor:label} substitution" + } + ] + }, + "description": "factor groups for cartesian product expansion" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + }, + "description": "environment names to exclude from product" + } + }, + "additionalProperties": false + } + ] + } + }, + "description": "core labels" + }, + "ignore_base_python_conflict": { + "type": "boolean", + "description": "do not raise error if the environment name conflicts with base python" + }, + "ignore_basepython_conflict": { + "$ref": "#/properties/ignore_base_python_conflict", + "description": "Deprecated: use 'ignore_base_python_conflict' instead", + "deprecated": true + }, + "skip_missing_interpreters": { + "type": "boolean", + "description": "skip running missing interpreters" + }, + "no_package": { + "type": "boolean", + "description": "is there any packaging involved in this project" + }, + "skipsdist": { + "$ref": "#/properties/no_package", + "description": "Deprecated: use 'no_package' instead", + "deprecated": true + }, + "package_env": { + "type": "string", + "description": "tox environment used to package" + }, + "isolated_build_env": { + "$ref": "#/properties/package_env", + "description": "Deprecated: use 'package_env' instead", + "deprecated": true + }, + "package_root": { + "type": "string", + "description": "indicates where the packaging root file exists (historically setup.py file or pyproject.toml now)" + }, + "setupdir": { + "$ref": "#/properties/package_root", + "description": "Deprecated: use 'package_root' instead", + "deprecated": true + }, + "env_run_base": { + "type": "object", + "description": "base configuration for run environments", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#run-environment" + } + }, + "properties": { + "set_env": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/subs" + }, + "description": "environment variables to set when running commands in the tox environment" + }, + "setenv": { + "$ref": "#/properties/env_run_base/properties/set_env", + "description": "Deprecated: use 'set_env' instead", + "deprecated": true + }, + "base": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "inherit missing keys from these sections" + }, + "runner": { + "type": "string", + "description": "the tox execute used to evaluate this environment" + }, + "description": { + "type": "string", + "description": "description attached to the tox environment" + }, + "depends": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/subs" + }, + { + "type": "object", + "required": ["product"], + "properties": { + "product": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "required": ["prefix"], + "properties": { + "prefix": { + "type": "string" + }, + "start": { + "type": "integer" + }, + "stop": { + "type": "integer" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "not": { + "required": ["prefix"] + }, + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "labeled factor group for {factor:label} substitution" + } + ] + }, + "description": "factor groups for cartesian product expansion" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + }, + "description": "environment names to exclude from product" + } + }, + "additionalProperties": false + } + ] + }, + "description": "tox environments that this environment depends on (must be run after those)" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "labels attached to the tox environment" + }, + "env_dir": { + "type": "string", + "description": "directory assigned to the tox environment" + }, + "envdir": { + "$ref": "#/properties/env_run_base/properties/env_dir", + "description": "Deprecated: use 'env_dir' instead", + "deprecated": true + }, + "env_tmp_dir": { + "type": "string", + "description": "a folder that is always reset at the start of the run" + }, + "envtmpdir": { + "$ref": "#/properties/env_run_base/properties/env_tmp_dir", + "description": "Deprecated: use 'env_tmp_dir' instead", + "deprecated": true + }, + "env_log_dir": { + "type": "string", + "description": "a folder for logging where tox will put logs of tool invocation" + }, + "envlogdir": { + "$ref": "#/properties/env_run_base/properties/env_log_dir", + "description": "Deprecated: use 'env_log_dir' instead", + "deprecated": true + }, + "suicide_timeout": { + "type": "number", + "description": "timeout to allow process to exit before sending SIGINT" + }, + "interrupt_timeout": { + "type": "number", + "description": "timeout before sending SIGTERM after SIGINT" + }, + "terminate_timeout": { + "type": "number", + "description": "timeout before sending SIGKILL after SIGTERM" + }, + "platform": { + "type": "string", + "description": "run on platforms that match this regular expression (empty means any platform)" + }, + "pass_env": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "environment variables to pass on to the tox environment" + }, + "passenv": { + "$ref": "#/properties/env_run_base/properties/pass_env", + "description": "Deprecated: use 'pass_env' instead", + "deprecated": true + }, + "disallow_pass_env": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "environment variable patterns to exclude after pass_env glob expansion" + }, + "parallel_show_output": { + "type": "boolean", + "description": "if set to True the content of the output will always be shown when running in parallel mode" + }, + "recreate": { + "type": "boolean", + "description": "always recreate virtual environment if this option is true, otherwise leave it up to tox" + }, + "allowlist_externals": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "external command glob to allow calling" + }, + "list_dependencies_command": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "command used to list installed packages" + }, + "pip_pre": { + "type": "boolean", + "description": "install the latest available pre-release (alpha/beta/rc) of dependencies without a specified version" + }, + "install_command": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "command used to install packages" + }, + "constraints": { + "type": "string", + "description": "constraints to apply to installed python dependencies" + }, + "constrain_package_deps": { + "type": "boolean", + "description": "If true, apply constraints during install_package_deps." + }, + "use_frozen_constraints": { + "type": "boolean", + "description": "Use the exact versions of installed deps as constraints, otherwise use the listed deps." + }, + "commands_pre": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "the commands to be called before testing" + }, + "commands": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "the commands to be called for testing" + }, + "commands_post": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "the commands to be called after testing" + }, + "interrupt_post_commands": { + "type": "boolean", + "description": "run commands_post even after interrupt (SIGINT), allow second interrupt to cancel" + }, + "recreate_commands": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "commands to run before the environment is removed during recreation (e.g. cache cleanup)" + }, + "change_dir": { + "type": "string", + "description": "change to this working directory when executing the test command" + }, + "changedir": { + "$ref": "#/properties/env_run_base/properties/change_dir", + "description": "Deprecated: use 'change_dir' instead", + "deprecated": true + }, + "args_are_paths": { + "type": "boolean", + "description": "if True rewrite relative posargs paths from cwd to change_dir" + }, + "ignore_errors": { + "type": "boolean", + "description": "when executing the commands keep going even if a sub-command exits with non-zero exit code" + }, + "commands_retry": { + "type": "integer", + "minimum": 0, + "description": "number of times to retry a failed command (0 means no retries)" + }, + "ignore_outcome": { + "type": "boolean", + "description": "if set to true a failing result of this testenv will not make tox fail (instead just warn)" + }, + "fail_fast": { + "type": "boolean", + "description": "if set to true, tox will stop executing remaining environments when this environment fails" + }, + "default_base_python": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + { + "type": "string" + } + ], + "description": "fallback python interpreter used when no factor or explicit base_python is defined" + }, + "base_python_file": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + { + "type": "string" + } + ], + "description": "file(s) containing the Python version to use (e.g. .python-version), first one found wins; used when base_python is not explicitly set and the env name has no Python factor" + }, + "base_python": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + { + "type": "string" + } + ], + "description": "environment identifier for python, first one found wins" + }, + "basepython": { + "$ref": "#/properties/env_run_base/properties/base_python", + "description": "Deprecated: use 'base_python' instead", + "deprecated": true + }, + "deps": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + } + ], + "description": "python dependencies with optional version specifiers, as specified by PEP-440" + }, + "dependency_groups": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "dependency groups to install of the target package" + }, + "extras": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "extras to install of the target package" + }, + "pylock": { + "type": "string", + "description": "PEP 751 pylock.toml lock file path to install locked dependencies from" + }, + "extra_setup_commands": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "commands to execute after setup (deps and package install) but before test commands" + }, + "skip_missing_interpreters": { + "type": "boolean", + "description": "override core skip_missing_interpreters for this environment" + }, + "system_site_packages": { + "type": "boolean", + "description": "create virtual environments that also have access to globally installed packages." + }, + "sitepackages": { + "$ref": "#/properties/env_run_base/properties/system_site_packages", + "description": "Deprecated: use 'system_site_packages' instead", + "deprecated": true + }, + "always_copy": { + "type": "boolean", + "description": "force virtualenv to always copy rather than symlink" + }, + "alwayscopy": { + "$ref": "#/properties/env_run_base/properties/always_copy", + "description": "Deprecated: use 'always_copy' instead", + "deprecated": true + }, + "download": { + "type": "boolean", + "description": "true if you want virtualenv to upgrade pip/wheel/setuptools to the latest version" + }, + "virtualenv_spec": { + "type": "string", + "description": "PEP 440 version spec for virtualenv (e.g. virtualenv<20.22.0). When set, tox bootstraps this version in an isolated environment and runs it via subprocess, enabling Python versions incompatible with the installed virtualenv." + }, + "skip_install": { + "type": "boolean", + "description": "skip installation" + }, + "use_develop": { + "type": "boolean", + "description": "use develop mode" + }, + "usedevelop": { + "$ref": "#/properties/env_run_base/properties/use_develop", + "description": "Deprecated: use 'use_develop' instead", + "deprecated": true + }, + "package": { + "type": "string", + "description": "package installation mode - wheel | sdist | sdist-wheel | editable | editable-legacy | deps-only | skip | external " + }, + "package_env": { + "type": "string", + "description": "tox environment used to package" + } + }, + "additionalProperties": true + }, + "env_pkg_base": { + "$ref": "#/properties/env_run_base", + "type": "object", + "description": "base configuration for packaging environments", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#packaging-environment" + } + }, + "additionalProperties": true + }, + "env": { + "type": "object", + "description": "per-environment overrides (keyed by environment name)", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#run-environment" + } + }, + "patternProperties": { + "^.*$": { + "$ref": "#/properties/env_run_base" + } + } + }, + "legacy_tox_ini": { + "type": "string", + "description": "tox configuration in INI format embedded in a TOML file", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#pyproject-toml-ini" + } + } + } + }, + "additionalProperties": true, + "definitions": { + "subs": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string" + }, + "name": { + "type": "string" + }, + "default": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + } + ] + }, + "extend": { + "type": "boolean" + } + }, + "required": ["replace"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string" + }, + "of": { + "type": "array", + "items": { + "type": "string" + } + }, + "default": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + } + ] + }, + "extend": { + "type": "boolean" + } + }, + "required": ["replace", "of"], + "additionalProperties": false + } + ] + } + } +} diff --git a/tests/testdata/json_schemastore_tox_env_configuration/old.json b/tests/testdata/json_schemastore_tox_env_configuration/old.json new file mode 100644 index 0000000..588bcd7 --- /dev/null +++ b/tests/testdata/json_schemastore_tox_env_configuration/old.json @@ -0,0 +1,783 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/tox.json", + "title": "tox configuration", + "description": "tox configuration file (tox.toml or [tool.tox] in pyproject.toml)", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html" + } + }, + "type": "object", + "properties": { + "tox_root": { + "type": "string", + "description": "the root directory (where the configuration file is found)" + }, + "toxinidir": { + "$ref": "#/properties/tox_root", + "description": "Deprecated: use 'tox_root' instead", + "deprecated": true + }, + "work_dir": { + "type": "string", + "description": "working directory" + }, + "toxworkdir": { + "$ref": "#/properties/work_dir", + "description": "Deprecated: use 'work_dir' instead", + "deprecated": true + }, + "temp_dir": { + "type": "string", + "description": "a folder for temporary files (is not cleaned at start)" + }, + "env_list": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/subs" + }, + { + "type": "object", + "required": ["product"], + "properties": { + "product": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "required": ["prefix"], + "properties": { + "prefix": { + "type": "string" + }, + "start": { + "type": "integer" + }, + "stop": { + "type": "integer" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "not": { + "required": ["prefix"] + }, + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "labeled factor group for {factor:label} substitution" + } + ] + }, + "description": "factor groups for cartesian product expansion" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + }, + "description": "environment names to exclude from product" + } + }, + "additionalProperties": false + } + ] + }, + "description": "define environments to automatically run" + }, + "envlist": { + "$ref": "#/properties/env_list", + "description": "Deprecated: use 'env_list' instead", + "deprecated": true + }, + "base": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "inherit missing keys from these sections" + }, + "min_version": { + "type": "string", + "description": "Define the minimal tox version required to run" + }, + "minversion": { + "$ref": "#/properties/min_version", + "description": "Deprecated: use 'min_version' instead", + "deprecated": true + }, + "provision_tox_env": { + "type": "string", + "description": "Name of the virtual environment used to provision a tox." + }, + "requires": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "Name of the virtual environment used to provision a tox." + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/subs" + }, + { + "type": "object", + "required": ["product"], + "properties": { + "product": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "required": ["prefix"], + "properties": { + "prefix": { + "type": "string" + }, + "start": { + "type": "integer" + }, + "stop": { + "type": "integer" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "not": { + "required": ["prefix"] + }, + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "labeled factor group for {factor:label} substitution" + } + ] + }, + "description": "factor groups for cartesian product expansion" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + }, + "description": "environment names to exclude from product" + } + }, + "additionalProperties": false + } + ] + } + }, + "description": "core labels" + }, + "ignore_base_python_conflict": { + "type": "boolean", + "description": "do not raise error if the environment name conflicts with base python" + }, + "ignore_basepython_conflict": { + "$ref": "#/properties/ignore_base_python_conflict", + "description": "Deprecated: use 'ignore_base_python_conflict' instead", + "deprecated": true + }, + "skip_missing_interpreters": { + "type": "boolean", + "description": "skip running missing interpreters" + }, + "no_package": { + "type": "boolean", + "description": "is there any packaging involved in this project" + }, + "skipsdist": { + "$ref": "#/properties/no_package", + "description": "Deprecated: use 'no_package' instead", + "deprecated": true + }, + "package_env": { + "type": "string", + "description": "tox environment used to package" + }, + "isolated_build_env": { + "$ref": "#/properties/package_env", + "description": "Deprecated: use 'package_env' instead", + "deprecated": true + }, + "package_root": { + "type": "string", + "description": "indicates where the packaging root file exists (historically setup.py file or pyproject.toml now)" + }, + "setupdir": { + "$ref": "#/properties/package_root", + "description": "Deprecated: use 'package_root' instead", + "deprecated": true + }, + "env_run_base": { + "type": "object", + "description": "base configuration for run environments", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#run-environment" + } + }, + "properties": { + "set_env": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/subs" + }, + "description": "environment variables to set when running commands in the tox environment" + }, + "setenv": { + "$ref": "#/properties/env_run_base/properties/set_env", + "description": "Deprecated: use 'set_env' instead", + "deprecated": true + }, + "base": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "inherit missing keys from these sections" + }, + "runner": { + "type": "string", + "description": "the tox execute used to evaluate this environment" + }, + "description": { + "type": "string", + "description": "description attached to the tox environment" + }, + "depends": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/subs" + }, + { + "type": "object", + "required": ["product"], + "properties": { + "product": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "required": ["prefix"], + "properties": { + "prefix": { + "type": "string" + }, + "start": { + "type": "integer" + }, + "stop": { + "type": "integer" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "not": { + "required": ["prefix"] + }, + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "labeled factor group for {factor:label} substitution" + } + ] + }, + "description": "factor groups for cartesian product expansion" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + }, + "description": "environment names to exclude from product" + } + }, + "additionalProperties": false + } + ] + }, + "description": "tox environments that this environment depends on (must be run after those)" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "labels attached to the tox environment" + }, + "env_dir": { + "type": "string", + "description": "directory assigned to the tox environment" + }, + "envdir": { + "$ref": "#/properties/env_run_base/properties/env_dir", + "description": "Deprecated: use 'env_dir' instead", + "deprecated": true + }, + "env_tmp_dir": { + "type": "string", + "description": "a folder that is always reset at the start of the run" + }, + "envtmpdir": { + "$ref": "#/properties/env_run_base/properties/env_tmp_dir", + "description": "Deprecated: use 'env_tmp_dir' instead", + "deprecated": true + }, + "env_log_dir": { + "type": "string", + "description": "a folder for logging where tox will put logs of tool invocation" + }, + "envlogdir": { + "$ref": "#/properties/env_run_base/properties/env_log_dir", + "description": "Deprecated: use 'env_log_dir' instead", + "deprecated": true + }, + "suicide_timeout": { + "type": "number", + "description": "timeout to allow process to exit before sending SIGINT" + }, + "interrupt_timeout": { + "type": "number", + "description": "timeout before sending SIGTERM after SIGINT" + }, + "terminate_timeout": { + "type": "number", + "description": "timeout before sending SIGKILL after SIGTERM" + }, + "platform": { + "type": "string", + "description": "run on platforms that match this regular expression (empty means any platform)" + }, + "pass_env": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "environment variables to pass on to the tox environment" + }, + "passenv": { + "$ref": "#/properties/env_run_base/properties/pass_env", + "description": "Deprecated: use 'pass_env' instead", + "deprecated": true + }, + "disallow_pass_env": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "environment variable patterns to exclude after pass_env glob expansion" + }, + "parallel_show_output": { + "type": "boolean", + "description": "if set to True the content of the output will always be shown when running in parallel mode" + }, + "recreate": { + "type": "boolean", + "description": "always recreate virtual environment if this option is true, otherwise leave it up to tox" + }, + "allowlist_externals": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "external command glob to allow calling" + }, + "list_dependencies_command": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "command used to list installed packages" + }, + "pip_pre": { + "type": "boolean", + "description": "install the latest available pre-release (alpha/beta/rc) of dependencies without a specified version" + }, + "install_command": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "command used to install packages" + }, + "constraints": { + "type": "string", + "description": "constraints to apply to installed python dependencies" + }, + "constrain_package_deps": { + "type": "boolean", + "description": "If true, apply constraints during install_package_deps." + }, + "use_frozen_constraints": { + "type": "boolean", + "description": "Use the exact versions of installed deps as constraints, otherwise use the listed deps." + }, + "commands_pre": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "the commands to be called before testing" + }, + "commands": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "the commands to be called for testing" + }, + "commands_post": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "the commands to be called after testing" + }, + "interrupt_post_commands": { + "type": "boolean", + "description": "run commands_post even after interrupt (SIGINT), allow second interrupt to cancel" + }, + "recreate_commands": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "commands to run before the environment is removed during recreation (e.g. cache cleanup)" + }, + "change_dir": { + "type": "string", + "description": "change to this working directory when executing the test command" + }, + "changedir": { + "$ref": "#/properties/env_run_base/properties/change_dir", + "description": "Deprecated: use 'change_dir' instead", + "deprecated": true + }, + "args_are_paths": { + "type": "boolean", + "description": "if True rewrite relative posargs paths from cwd to change_dir" + }, + "ignore_errors": { + "type": "boolean", + "description": "when executing the commands keep going even if a sub-command exits with non-zero exit code" + }, + "commands_retry": { + "type": "integer", + "minimum": 0, + "description": "number of times to retry a failed command (0 means no retries)" + }, + "ignore_outcome": { + "type": "boolean", + "description": "if set to true a failing result of this testenv will not make tox fail (instead just warn)" + }, + "fail_fast": { + "type": "boolean", + "description": "if set to true, tox will stop executing remaining environments when this environment fails" + }, + "default_base_python": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + { + "type": "string" + } + ], + "description": "fallback python interpreter used when no factor or explicit base_python is defined" + }, + "base_python_file": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + { + "type": "string" + } + ], + "description": "file(s) containing the Python version to use (e.g. .python-version), first one found wins; used when base_python is not explicitly set and the env name has no Python factor" + }, + "base_python": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + { + "type": "string" + } + ], + "description": "environment identifier for python, first one found wins" + }, + "basepython": { + "$ref": "#/properties/env_run_base/properties/base_python", + "description": "Deprecated: use 'base_python' instead", + "deprecated": true + }, + "deps": { + "type": "string", + "description": "python dependencies with optional version specifiers, as specified by PEP-440" + }, + "dependency_groups": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "dependency groups to install of the target package" + }, + "extras": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + }, + "description": "extras to install of the target package" + }, + "pylock": { + "type": "string", + "description": "PEP 751 pylock.toml lock file path to install locked dependencies from" + }, + "extra_setup_commands": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + }, + "description": "commands to execute after setup (deps and package install) but before test commands" + }, + "skip_missing_interpreters": { + "type": "boolean", + "description": "override core skip_missing_interpreters for this environment" + }, + "system_site_packages": { + "type": "boolean", + "description": "create virtual environments that also have access to globally installed packages." + }, + "sitepackages": { + "$ref": "#/properties/env_run_base/properties/system_site_packages", + "description": "Deprecated: use 'system_site_packages' instead", + "deprecated": true + }, + "always_copy": { + "type": "boolean", + "description": "force virtualenv to always copy rather than symlink" + }, + "alwayscopy": { + "$ref": "#/properties/env_run_base/properties/always_copy", + "description": "Deprecated: use 'always_copy' instead", + "deprecated": true + }, + "download": { + "type": "boolean", + "description": "true if you want virtualenv to upgrade pip/wheel/setuptools to the latest version" + }, + "virtualenv_spec": { + "type": "string", + "description": "PEP 440 version spec for virtualenv (e.g. virtualenv<20.22.0). When set, tox bootstraps this version in an isolated environment and runs it via subprocess, enabling Python versions incompatible with the installed virtualenv." + }, + "skip_install": { + "type": "boolean", + "description": "skip installation" + }, + "use_develop": { + "type": "boolean", + "description": "use develop mode" + }, + "usedevelop": { + "$ref": "#/properties/env_run_base/properties/use_develop", + "description": "Deprecated: use 'use_develop' instead", + "deprecated": true + }, + "package": { + "type": "string", + "description": "package installation mode - wheel | sdist | sdist-wheel | editable | editable-legacy | deps-only | skip | external " + }, + "package_env": { + "type": "string", + "description": "tox environment used to package" + } + }, + "additionalProperties": true + }, + "env_pkg_base": { + "$ref": "#/properties/env_run_base", + "type": "object", + "description": "base configuration for packaging environments", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#packaging-environment" + } + }, + "additionalProperties": true + }, + "env": { + "type": "object", + "description": "per-environment overrides (keyed by environment name)", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#run-environment" + } + }, + "patternProperties": { + "^.*$": { + "$ref": "#/properties/env_run_base" + } + } + }, + "legacy_tox_ini": { + "type": "string", + "description": "tox configuration in INI format embedded in a TOML file", + "x-taplo": { + "links": { + "key": "https://tox.wiki/en/stable/config.html#pyproject-toml-ini" + } + } + } + }, + "additionalProperties": true, + "definitions": { + "subs": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string" + }, + "name": { + "type": "string" + }, + "default": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + } + ] + }, + "extend": { + "type": "boolean" + } + }, + "required": ["replace"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string" + }, + "of": { + "type": "array", + "items": { + "type": "string" + } + }, + "default": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/subs" + } + } + ] + }, + "extend": { + "type": "boolean" + } + }, + "required": ["replace", "of"], + "additionalProperties": false + } + ] + } + } +} diff --git a/tests/testdata/json_schemastore_uv_pip_settings/expected.json b/tests/testdata/json_schemastore_uv_pip_settings/expected.json new file mode 100644 index 0000000..8813732 --- /dev/null +++ b/tests/testdata/json_schemastore_uv_pip_settings/expected.json @@ -0,0 +1,10465 @@ +{ + "version": "v1", + "actions": [ + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0 + ], + "type": "string", + "label": "\"List\"", + "start_byte": 39842, + "end_byte": 39848 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1 + ], + "type": "pair", + "start_byte": 39583, + "end_byte": 39899 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "type": "pair", + "start_byte": 39842, + "end_byte": 39987 + }, + "old_position": 0, + "dest_start_byte": 39583, + "dest_end_byte": 39590 + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 0 + ], + "type": "pair", + "start_byte": 39512, + "end_byte": 39575 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 7, + 1, + 7, + 1 + ], + "type": "object", + "start_byte": 39504, + "end_byte": 39905 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1 + ], + "type": "object", + "start_byte": 39504, + "end_byte": 40096 + }, + "old_position": 0, + "subtree": true, + "dest_start_byte": 39512, + "dest_end_byte": 39575 + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 0 + ], + "type": "string", + "label": "\"List\"", + "start_byte": 39842, + "end_byte": 39848 + }, + "old_value": "\"List\"", + "new_value": "\"oneOf\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 0 + ], + "type": "string", + "label": "\"oneOf\"", + "start_byte": 39583, + "end_byte": 39590 + } + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 0 + ], + "type": "object", + "start_byte": 39602, + "end_byte": 39719 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1 + ], + "type": "array", + "start_byte": 39592, + "end_byte": 39899 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1 + ], + "type": "array", + "start_byte": 39592, + "end_byte": 40090 + }, + "old_position": 0, + "subtree": true, + "dest_start_byte": 39602, + "dest_end_byte": 39719 + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 0 + ], + "type": "pair", + "start_byte": 39741, + "end_byte": 39774 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 39729, + "end_byte": 39891 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 39729, + "end_byte": 40082 + }, + "old_position": 0, + "subtree": true, + "dest_start_byte": 39741, + "dest_end_byte": 39774 + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 0 + ], + "type": "pair", + "start_byte": 39866, + "end_byte": 39881 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 39729, + "end_byte": 39891 + }, + "position": 1, + "old_parent": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1 + ], + "type": "object", + "start_byte": 39850, + "end_byte": 39987 + }, + "old_position": 0, + "subtree": true, + "dest_start_byte": 39786, + "dest_end_byte": 39801, + "group_id": "group-1" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 1 + ], + "type": "pair", + "start_byte": 39897, + "end_byte": 39973 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 39729, + "end_byte": 39891 + }, + "position": 2, + "old_parent": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1 + ], + "type": "object", + "start_byte": 39850, + "end_byte": 39987 + }, + "old_position": 1, + "subtree": true, + "dest_start_byte": 39813, + "dest_end_byte": 39881, + "group_id": "group-1" + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 1 + ], + "type": "pair", + "start_byte": 39786, + "end_byte": 39802 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "type": "string", + "label": "\"properties\"", + "start_byte": 39814, + "end_byte": 39826 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2 + ], + "type": "pair", + "start_byte": 39814, + "end_byte": 39999 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 3 + ], + "type": "pair", + "start_byte": 40011, + "end_byte": 40040 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 4 + ], + "type": "pair", + "start_byte": 40052, + "end_byte": 40072 + }, + "subtree": true + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 1 + ], + "type": "object", + "start_byte": 39850, + "end_byte": 39987 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1, + 0 + ], + "type": "string", + "label": "\"oneOf\"", + "start_byte": 39583, + "end_byte": 39590 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1, + 1 + ], + "type": "pair", + "start_byte": 39583, + "end_byte": 40090 + } + }, + { + "action": "delete", + "node": { + "tree": "before", + "path": [ + 0, + 7, + 1, + 7, + 1 + ], + "type": "object", + "start_byte": 39504, + "end_byte": 40096 + } + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": 106, + "right_line": 106 + }, + { + "left_line": 107, + "right_line": 107 + }, + { + "left_line": 108, + "right_line": 108 + }, + { + "left_line": 109, + "right_line": 109 + }, + { + "left_line": 110, + "right_line": 110 + }, + { + "left_line": 111, + "right_line": 111 + }, + { + "left_line": 112, + "right_line": 112 + }, + { + "left_line": 113, + "right_line": 113 + }, + { + "left_line": 114, + "right_line": 114 + }, + { + "left_line": 115, + "right_line": 115 + }, + { + "left_line": 116, + "right_line": 116 + }, + { + "left_line": 117, + "right_line": 117 + }, + { + "left_line": 118, + "right_line": 118 + }, + { + "left_line": 119, + "right_line": 119 + }, + { + "left_line": 120, + "right_line": 120 + }, + { + "left_line": 121, + "right_line": 121 + }, + { + "left_line": 122, + "right_line": 122 + }, + { + "left_line": 123, + "right_line": 123 + }, + { + "left_line": 124, + "right_line": 124 + }, + { + "left_line": 125, + "right_line": 125 + }, + { + "left_line": 126, + "right_line": 126 + }, + { + "left_line": 127, + "right_line": 127 + }, + { + "left_line": 128, + "right_line": 128 + }, + { + "left_line": 129, + "right_line": 129 + }, + { + "left_line": 130, + "right_line": 130 + }, + { + "left_line": 131, + "right_line": 131 + }, + { + "left_line": 132, + "right_line": 132 + }, + { + "left_line": 133, + "right_line": 133 + }, + { + "left_line": 134, + "right_line": 134 + }, + { + "left_line": 135, + "right_line": 135 + }, + { + "left_line": 136, + "right_line": 136 + }, + { + "left_line": 137, + "right_line": 137 + }, + { + "left_line": 138, + "right_line": 138 + }, + { + "left_line": 139, + "right_line": 139 + }, + { + "left_line": 140, + "right_line": 140 + }, + { + "left_line": 141, + "right_line": 141 + }, + { + "left_line": 142, + "right_line": 142 + }, + { + "left_line": 143, + "right_line": 143 + }, + { + "left_line": 144, + "right_line": 144 + }, + { + "left_line": 145, + "right_line": 145 + }, + { + "left_line": 146, + "right_line": 146 + }, + { + "left_line": 147, + "right_line": 147 + }, + { + "left_line": 148, + "right_line": 148 + }, + { + "left_line": 149, + "right_line": 149 + }, + { + "left_line": 150, + "right_line": 150 + }, + { + "left_line": 151, + "right_line": 151 + }, + { + "left_line": 152, + "right_line": 152 + }, + { + "left_line": 153, + "right_line": 153 + }, + { + "left_line": 154, + "right_line": 154 + }, + { + "left_line": 155, + "right_line": 155 + }, + { + "left_line": 156, + "right_line": 156 + }, + { + "left_line": 157, + "right_line": 157 + }, + { + "left_line": 158, + "right_line": 158 + }, + { + "left_line": 159, + "right_line": 159 + }, + { + "left_line": 160, + "right_line": 160 + }, + { + "left_line": 161, + "right_line": 161 + }, + { + "left_line": 162, + "right_line": 162 + }, + { + "left_line": 163, + "right_line": 163 + }, + { + "left_line": 164, + "right_line": 164 + }, + { + "left_line": 165, + "right_line": 165 + }, + { + "left_line": 166, + "right_line": 166 + }, + { + "left_line": 167, + "right_line": 167 + }, + { + "left_line": 168, + "right_line": 168 + }, + { + "left_line": 169, + "right_line": 169 + }, + { + "left_line": 170, + "right_line": 170 + }, + { + "left_line": 171, + "right_line": 171 + }, + { + "left_line": 172, + "right_line": 172 + }, + { + "left_line": 173, + "right_line": 173 + }, + { + "left_line": 174, + "right_line": 174 + }, + { + "left_line": 175, + "right_line": 175 + }, + { + "left_line": 176, + "right_line": 176 + }, + { + "left_line": 177, + "right_line": 177 + }, + { + "left_line": 178, + "right_line": 178 + }, + { + "left_line": 179, + "right_line": 179 + }, + { + "left_line": 180, + "right_line": 180 + }, + { + "left_line": 181, + "right_line": 181 + }, + { + "left_line": 182, + "right_line": 182 + }, + { + "left_line": 183, + "right_line": 183 + }, + { + "left_line": 184, + "right_line": 184 + }, + { + "left_line": 185, + "right_line": 185 + }, + { + "left_line": 186, + "right_line": 186 + }, + { + "left_line": 187, + "right_line": 187 + }, + { + "left_line": 188, + "right_line": 188 + }, + { + "left_line": 189, + "right_line": 189 + }, + { + "left_line": 190, + "right_line": 190 + }, + { + "left_line": 191, + "right_line": 191 + }, + { + "left_line": 192, + "right_line": 192 + }, + { + "left_line": 193, + "right_line": 193 + }, + { + "left_line": 194, + "right_line": 194 + }, + { + "left_line": 195, + "right_line": 195 + }, + { + "left_line": 196, + "right_line": 196 + }, + { + "left_line": 197, + "right_line": 197 + }, + { + "left_line": 198, + "right_line": 198 + }, + { + "left_line": 199, + "right_line": 199 + }, + { + "left_line": 200, + "right_line": 200 + }, + { + "left_line": 201, + "right_line": 201 + }, + { + "left_line": 202, + "right_line": 202 + }, + { + "left_line": 203, + "right_line": 203 + }, + { + "left_line": 204, + "right_line": 204 + }, + { + "left_line": 205, + "right_line": 205 + }, + { + "left_line": 206, + "right_line": 206 + }, + { + "left_line": 207, + "right_line": 207 + }, + { + "left_line": 208, + "right_line": 208 + }, + { + "left_line": 209, + "right_line": 209 + }, + { + "left_line": 210, + "right_line": 210 + }, + { + "left_line": 211, + "right_line": 211 + }, + { + "left_line": 212, + "right_line": 212 + }, + { + "left_line": 213, + "right_line": 213 + }, + { + "left_line": 214, + "right_line": 214 + }, + { + "left_line": 215, + "right_line": 215 + }, + { + "left_line": 216, + "right_line": 216 + }, + { + "left_line": 217, + "right_line": 217 + }, + { + "left_line": 218, + "right_line": 218 + }, + { + "left_line": 219, + "right_line": 219 + }, + { + "left_line": 220, + "right_line": 220 + }, + { + "left_line": 221, + "right_line": 221 + }, + { + "left_line": 222, + "right_line": 222 + }, + { + "left_line": 223, + "right_line": 223 + }, + { + "left_line": 224, + "right_line": 224 + }, + { + "left_line": 225, + "right_line": 225 + }, + { + "left_line": 226, + "right_line": 226 + }, + { + "left_line": 227, + "right_line": 227 + }, + { + "left_line": 228, + "right_line": 228 + }, + { + "left_line": 229, + "right_line": 229 + }, + { + "left_line": 230, + "right_line": 230 + }, + { + "left_line": 231, + "right_line": 231 + }, + { + "left_line": 232, + "right_line": 232 + }, + { + "left_line": 233, + "right_line": 233 + }, + { + "left_line": 234, + "right_line": 234 + }, + { + "left_line": 235, + "right_line": 235 + }, + { + "left_line": 236, + "right_line": 236 + }, + { + "left_line": 237, + "right_line": 237 + }, + { + "left_line": 238, + "right_line": 238 + }, + { + "left_line": 239, + "right_line": 239 + }, + { + "left_line": 240, + "right_line": 240 + }, + { + "left_line": 241, + "right_line": 241 + }, + { + "left_line": 242, + "right_line": 242 + }, + { + "left_line": 243, + "right_line": 243 + }, + { + "left_line": 244, + "right_line": 244 + }, + { + "left_line": 245, + "right_line": 245 + }, + { + "left_line": 246, + "right_line": 246 + }, + { + "left_line": 247, + "right_line": 247 + }, + { + "left_line": 248, + "right_line": 248 + }, + { + "left_line": 249, + "right_line": 249 + }, + { + "left_line": 250, + "right_line": 250 + }, + { + "left_line": 251, + "right_line": 251 + }, + { + "left_line": 252, + "right_line": 252 + }, + { + "left_line": 253, + "right_line": 253 + }, + { + "left_line": 254, + "right_line": 254 + }, + { + "left_line": 255, + "right_line": 255 + }, + { + "left_line": 256, + "right_line": 256 + }, + { + "left_line": 257, + "right_line": 257 + }, + { + "left_line": 258, + "right_line": 258 + }, + { + "left_line": 259, + "right_line": 259 + }, + { + "left_line": 260, + "right_line": 260 + }, + { + "left_line": 261, + "right_line": 261 + }, + { + "left_line": 262, + "right_line": 262 + }, + { + "left_line": 263, + "right_line": 263 + }, + { + "left_line": 264, + "right_line": 264 + }, + { + "left_line": 265, + "right_line": 265 + }, + { + "left_line": 266, + "right_line": 266 + }, + { + "left_line": 267, + "right_line": 267 + }, + { + "left_line": 268, + "right_line": 268 + }, + { + "left_line": 269, + "right_line": 269 + }, + { + "left_line": 270, + "right_line": 270 + }, + { + "left_line": 271, + "right_line": 271 + }, + { + "left_line": 272, + "right_line": 272 + }, + { + "left_line": 273, + "right_line": 273 + }, + { + "left_line": 274, + "right_line": 274 + }, + { + "left_line": 275, + "right_line": 275 + }, + { + "left_line": 276, + "right_line": 276 + }, + { + "left_line": 277, + "right_line": 277 + }, + { + "left_line": 278, + "right_line": 278 + }, + { + "left_line": 279, + "right_line": 279 + }, + { + "left_line": 280, + "right_line": 280 + }, + { + "left_line": 281, + "right_line": 281 + }, + { + "left_line": 282, + "right_line": 282 + }, + { + "left_line": 283, + "right_line": 283 + }, + { + "left_line": 284, + "right_line": 284 + }, + { + "left_line": 285, + "right_line": 285 + }, + { + "left_line": 286, + "right_line": 286 + }, + { + "left_line": 287, + "right_line": 287 + }, + { + "left_line": 288, + "right_line": 288 + }, + { + "left_line": 289, + "right_line": 289 + }, + { + "left_line": 290, + "right_line": 290 + }, + { + "left_line": 291, + "right_line": 291 + }, + { + "left_line": 292, + "right_line": 292 + }, + { + "left_line": 293, + "right_line": 293 + }, + { + "left_line": 294, + "right_line": 294 + }, + { + "left_line": 295, + "right_line": 295 + }, + { + "left_line": 296, + "right_line": 296 + }, + { + "left_line": 297, + "right_line": 297 + }, + { + "left_line": 298, + "right_line": 298 + }, + { + "left_line": 299, + "right_line": 299 + }, + { + "left_line": 300, + "right_line": 300 + }, + { + "left_line": 301, + "right_line": 301 + }, + { + "left_line": 302, + "right_line": 302 + }, + { + "left_line": 303, + "right_line": 303 + }, + { + "left_line": 304, + "right_line": 304 + }, + { + "left_line": 305, + "right_line": 305 + }, + { + "left_line": 306, + "right_line": 306 + }, + { + "left_line": 307, + "right_line": 307 + }, + { + "left_line": 308, + "right_line": 308 + }, + { + "left_line": 309, + "right_line": 309 + }, + { + "left_line": 310, + "right_line": 310 + }, + { + "left_line": 311, + "right_line": 311 + }, + { + "left_line": 312, + "right_line": 312 + }, + { + "left_line": 313, + "right_line": 313 + }, + { + "left_line": 314, + "right_line": 314 + }, + { + "left_line": 315, + "right_line": 315 + }, + { + "left_line": 316, + "right_line": 316 + }, + { + "left_line": 317, + "right_line": 317 + }, + { + "left_line": 318, + "right_line": 318 + }, + { + "left_line": 319, + "right_line": 319 + }, + { + "left_line": 320, + "right_line": 320 + }, + { + "left_line": 321, + "right_line": 321 + }, + { + "left_line": 322, + "right_line": 322 + }, + { + "left_line": 323, + "right_line": 323 + }, + { + "left_line": 324, + "right_line": 324 + }, + { + "left_line": 325, + "right_line": 325 + }, + { + "left_line": 326, + "right_line": 326 + }, + { + "left_line": 327, + "right_line": 327 + }, + { + "left_line": 328, + "right_line": 328 + }, + { + "left_line": 329, + "right_line": 329 + }, + { + "left_line": 330, + "right_line": 330 + }, + { + "left_line": 331, + "right_line": 331 + }, + { + "left_line": 332, + "right_line": 332 + }, + { + "left_line": 333, + "right_line": 333 + }, + { + "left_line": 334, + "right_line": 334 + }, + { + "left_line": 335, + "right_line": 335 + }, + { + "left_line": 336, + "right_line": 336 + }, + { + "left_line": 337, + "right_line": 337 + }, + { + "left_line": 338, + "right_line": 338 + }, + { + "left_line": 339, + "right_line": 339 + }, + { + "left_line": 340, + "right_line": 340 + }, + { + "left_line": 341, + "right_line": 341 + }, + { + "left_line": 342, + "right_line": 342 + }, + { + "left_line": 343, + "right_line": 343 + }, + { + "left_line": 344, + "right_line": 344 + }, + { + "left_line": 345, + "right_line": 345 + }, + { + "left_line": 346, + "right_line": 346 + }, + { + "left_line": 347, + "right_line": 347 + }, + { + "left_line": 348, + "right_line": 348 + }, + { + "left_line": 349, + "right_line": 349 + }, + { + "left_line": 350, + "right_line": 350 + }, + { + "left_line": 351, + "right_line": 351 + }, + { + "left_line": 352, + "right_line": 352 + }, + { + "left_line": 353, + "right_line": 353 + }, + { + "left_line": 354, + "right_line": 354 + }, + { + "left_line": 355, + "right_line": 355 + }, + { + "left_line": 356, + "right_line": 356 + }, + { + "left_line": 357, + "right_line": 357 + }, + { + "left_line": 358, + "right_line": 358 + }, + { + "left_line": 359, + "right_line": 359 + }, + { + "left_line": 360, + "right_line": 360 + }, + { + "left_line": 361, + "right_line": 361 + }, + { + "left_line": 362, + "right_line": 362 + }, + { + "left_line": 363, + "right_line": 363 + }, + { + "left_line": 364, + "right_line": 364 + }, + { + "left_line": 365, + "right_line": 365 + }, + { + "left_line": 366, + "right_line": 366 + }, + { + "left_line": 367, + "right_line": 367 + }, + { + "left_line": 368, + "right_line": 368 + }, + { + "left_line": 369, + "right_line": 369 + }, + { + "left_line": 370, + "right_line": 370 + }, + { + "left_line": 371, + "right_line": 371 + }, + { + "left_line": 372, + "right_line": 372 + }, + { + "left_line": 373, + "right_line": 373 + }, + { + "left_line": 374, + "right_line": 374 + }, + { + "left_line": 375, + "right_line": 375 + }, + { + "left_line": 376, + "right_line": 376 + }, + { + "left_line": 377, + "right_line": 377 + }, + { + "left_line": 378, + "right_line": 378 + }, + { + "left_line": 379, + "right_line": 379 + }, + { + "left_line": 380, + "right_line": 380 + }, + { + "left_line": 381, + "right_line": 381 + }, + { + "left_line": 382, + "right_line": 382 + }, + { + "left_line": 383, + "right_line": 383 + }, + { + "left_line": 384, + "right_line": 384 + }, + { + "left_line": 385, + "right_line": 385 + }, + { + "left_line": 386, + "right_line": 386 + }, + { + "left_line": 387, + "right_line": 387 + }, + { + "left_line": 388, + "right_line": 388 + }, + { + "left_line": 389, + "right_line": 389 + }, + { + "left_line": 390, + "right_line": 390 + }, + { + "left_line": 391, + "right_line": 391 + }, + { + "left_line": 392, + "right_line": 392 + }, + { + "left_line": 393, + "right_line": 393 + }, + { + "left_line": 394, + "right_line": 394 + }, + { + "left_line": 395, + "right_line": 395 + }, + { + "left_line": 396, + "right_line": 396 + }, + { + "left_line": 397, + "right_line": 397 + }, + { + "left_line": 398, + "right_line": 398 + }, + { + "left_line": 399, + "right_line": 399 + }, + { + "left_line": 400, + "right_line": 400 + }, + { + "left_line": 401, + "right_line": 401 + }, + { + "left_line": 402, + "right_line": 402 + }, + { + "left_line": 403, + "right_line": 403 + }, + { + "left_line": 404, + "right_line": 404 + }, + { + "left_line": 405, + "right_line": 405 + }, + { + "left_line": 406, + "right_line": 406 + }, + { + "left_line": 407, + "right_line": 407 + }, + { + "left_line": 408, + "right_line": 408 + }, + { + "left_line": 409, + "right_line": 409 + }, + { + "left_line": 410, + "right_line": 410 + }, + { + "left_line": 411, + "right_line": 411 + }, + { + "left_line": 412, + "right_line": 412 + }, + { + "left_line": 413, + "right_line": 413 + }, + { + "left_line": 414, + "right_line": 414 + }, + { + "left_line": 415, + "right_line": 415 + }, + { + "left_line": 416, + "right_line": 416 + }, + { + "left_line": 417, + "right_line": 417 + }, + { + "left_line": 418, + "right_line": 418 + }, + { + "left_line": 419, + "right_line": 419 + }, + { + "left_line": 420, + "right_line": 420 + }, + { + "left_line": 421, + "right_line": 421 + }, + { + "left_line": 422, + "right_line": 422 + }, + { + "left_line": 423, + "right_line": 423 + }, + { + "left_line": 424, + "right_line": 424 + }, + { + "left_line": 425, + "right_line": 425 + }, + { + "left_line": 426, + "right_line": 426 + }, + { + "left_line": 427, + "right_line": 427 + }, + { + "left_line": 428, + "right_line": 428 + }, + { + "left_line": 429, + "right_line": 429 + }, + { + "left_line": 430, + "right_line": 430 + }, + { + "left_line": 431, + "right_line": 431 + }, + { + "left_line": 432, + "right_line": 432 + }, + { + "left_line": 433, + "right_line": 433 + }, + { + "left_line": 434, + "right_line": 434 + }, + { + "left_line": 435, + "right_line": 435 + }, + { + "left_line": 436, + "right_line": 436 + }, + { + "left_line": 437, + "right_line": 437 + }, + { + "left_line": 438, + "right_line": 438 + }, + { + "left_line": 439, + "right_line": 439 + }, + { + "left_line": 440, + "right_line": 440 + }, + { + "left_line": 441, + "right_line": 441 + }, + { + "left_line": 442, + "right_line": 442 + }, + { + "left_line": 443, + "right_line": 443 + }, + { + "left_line": 444, + "right_line": 444 + }, + { + "left_line": 445, + "right_line": 445 + }, + { + "left_line": 446, + "right_line": 446 + }, + { + "left_line": 447, + "right_line": 447 + }, + { + "left_line": 448, + "right_line": 448 + }, + { + "left_line": 449, + "right_line": 449 + }, + { + "left_line": 450, + "right_line": 450 + }, + { + "left_line": 451, + "right_line": 451 + }, + { + "left_line": 452, + "right_line": 452 + }, + { + "left_line": 453, + "right_line": 453 + }, + { + "left_line": 454, + "right_line": 454 + }, + { + "left_line": 455, + "right_line": 455 + }, + { + "left_line": 456, + "right_line": 456 + }, + { + "left_line": 457, + "right_line": 457 + }, + { + "left_line": 458, + "right_line": 458 + }, + { + "left_line": 459, + "right_line": 459 + }, + { + "left_line": 460, + "right_line": 460 + }, + { + "left_line": 461, + "right_line": 461 + }, + { + "left_line": 462, + "right_line": 462 + }, + { + "left_line": 463, + "right_line": 463 + }, + { + "left_line": 464, + "right_line": 464 + }, + { + "left_line": 465, + "right_line": 465 + }, + { + "left_line": 466, + "right_line": 466 + }, + { + "left_line": 467, + "right_line": 467 + }, + { + "left_line": 468, + "right_line": 468 + }, + { + "left_line": 469, + "right_line": 469 + }, + { + "left_line": 470, + "right_line": 470 + }, + { + "left_line": 471, + "right_line": 471 + }, + { + "left_line": 472, + "right_line": 472 + }, + { + "left_line": 473, + "right_line": 473 + }, + { + "left_line": 474, + "right_line": 474 + }, + { + "left_line": 475, + "right_line": 475 + }, + { + "left_line": 476, + "right_line": 476 + }, + { + "left_line": 477, + "right_line": 477 + }, + { + "left_line": 478, + "right_line": 478 + }, + { + "left_line": 479, + "right_line": 479 + }, + { + "left_line": 480, + "right_line": 480 + }, + { + "left_line": 481, + "right_line": 481 + }, + { + "left_line": 482, + "right_line": 482 + }, + { + "left_line": 483, + "right_line": 483 + }, + { + "left_line": 484, + "right_line": 484 + }, + { + "left_line": 485, + "right_line": 485 + }, + { + "left_line": 486, + "right_line": 486 + }, + { + "left_line": 487, + "right_line": 487 + }, + { + "left_line": 488, + "right_line": 488 + }, + { + "left_line": 489, + "right_line": 489 + }, + { + "left_line": 490, + "right_line": 490 + }, + { + "left_line": 491, + "right_line": 491 + }, + { + "left_line": 492, + "right_line": 492 + }, + { + "left_line": 493, + "right_line": 493 + }, + { + "left_line": 494, + "right_line": 494 + }, + { + "left_line": 495, + "right_line": 495 + }, + { + "left_line": 496, + "right_line": 496 + }, + { + "left_line": 497, + "right_line": 497 + }, + { + "left_line": 498, + "right_line": 498 + }, + { + "left_line": 499, + "right_line": 499 + }, + { + "left_line": 500, + "right_line": 500 + }, + { + "left_line": 501, + "right_line": 501 + }, + { + "left_line": 502, + "right_line": 502 + }, + { + "left_line": 503, + "right_line": 503 + }, + { + "left_line": 504, + "right_line": 504 + }, + { + "left_line": 505, + "right_line": 505 + }, + { + "left_line": 506, + "right_line": 506 + }, + { + "left_line": 507, + "right_line": 507 + }, + { + "left_line": 508, + "right_line": 508 + }, + { + "left_line": 509, + "right_line": 509 + }, + { + "left_line": 510, + "right_line": 510 + }, + { + "left_line": 511, + "right_line": 511 + }, + { + "left_line": 512, + "right_line": 512 + }, + { + "left_line": 513, + "right_line": 513 + }, + { + "left_line": 514, + "right_line": 514 + }, + { + "left_line": 515, + "right_line": 515 + }, + { + "left_line": 516, + "right_line": 516 + }, + { + "left_line": 517, + "right_line": 517 + }, + { + "left_line": 518, + "right_line": 518 + }, + { + "left_line": 519, + "right_line": 519 + }, + { + "left_line": 520, + "right_line": 520 + }, + { + "left_line": 521, + "right_line": 521 + }, + { + "left_line": 522, + "right_line": 522 + }, + { + "left_line": 523, + "right_line": 523 + }, + { + "left_line": 524, + "right_line": 524 + }, + { + "left_line": 525, + "right_line": 525 + }, + { + "left_line": 526, + "right_line": 526 + }, + { + "left_line": 527, + "right_line": 527 + }, + { + "left_line": 528, + "right_line": 528 + }, + { + "left_line": 529, + "right_line": 529 + }, + { + "left_line": 530, + "right_line": 530 + }, + { + "left_line": 531, + "right_line": 531 + }, + { + "left_line": 532, + "right_line": 532 + }, + { + "left_line": 533, + "right_line": 533 + }, + { + "left_line": 534, + "right_line": 534 + }, + { + "left_line": 535, + "right_line": 535 + }, + { + "left_line": 536, + "right_line": 536 + }, + { + "left_line": 537, + "right_line": 537 + }, + { + "left_line": 538, + "right_line": 538 + }, + { + "left_line": 539, + "right_line": 539 + }, + { + "left_line": 540, + "right_line": 540 + }, + { + "left_line": 541, + "right_line": 541 + }, + { + "left_line": 542, + "right_line": 542 + }, + { + "left_line": 543, + "right_line": 543 + }, + { + "left_line": 544, + "right_line": 544 + }, + { + "left_line": 545, + "right_line": 545 + }, + { + "left_line": 546, + "right_line": 546 + }, + { + "left_line": 547, + "right_line": 547 + }, + { + "left_line": 548, + "right_line": 548 + }, + { + "left_line": 549, + "right_line": 549 + }, + { + "left_line": 550, + "right_line": 550 + }, + { + "left_line": 551, + "right_line": 551 + }, + { + "left_line": 552, + "right_line": 552 + }, + { + "left_line": 553, + "right_line": 553 + }, + { + "left_line": 554, + "right_line": 554 + }, + { + "left_line": 555, + "right_line": 555 + }, + { + "left_line": 556, + "right_line": 556 + }, + { + "left_line": 557, + "right_line": 557 + }, + { + "left_line": 558, + "right_line": 558 + }, + { + "left_line": 559, + "right_line": 559 + }, + { + "left_line": 560, + "right_line": 560 + }, + { + "left_line": 561, + "right_line": 561 + }, + { + "left_line": 562, + "right_line": 562 + }, + { + "left_line": 563, + "right_line": 563 + }, + { + "left_line": 564, + "right_line": 564 + }, + { + "left_line": 565, + "right_line": 565 + }, + { + "left_line": 566, + "right_line": 566 + }, + { + "left_line": 567, + "right_line": 567 + }, + { + "left_line": 568, + "right_line": 568 + }, + { + "left_line": 569, + "right_line": 569 + }, + { + "left_line": 570, + "right_line": 570 + }, + { + "left_line": 571, + "right_line": 571 + }, + { + "left_line": 572, + "right_line": 572 + }, + { + "left_line": 573, + "right_line": 573 + }, + { + "left_line": 574, + "right_line": 574 + }, + { + "left_line": 575, + "right_line": 575 + }, + { + "left_line": 576, + "right_line": 576 + }, + { + "left_line": 577, + "right_line": 577 + }, + { + "left_line": 578, + "right_line": 578 + }, + { + "left_line": 579, + "right_line": 579 + }, + { + "left_line": 580, + "right_line": 580 + }, + { + "left_line": 581, + "right_line": 581 + }, + { + "left_line": 582, + "right_line": 582 + }, + { + "left_line": 583, + "right_line": 583 + }, + { + "left_line": 584, + "right_line": 584 + }, + { + "left_line": 585, + "right_line": 585 + }, + { + "left_line": 586, + "right_line": 586 + }, + { + "left_line": 587, + "right_line": 587 + }, + { + "left_line": 588, + "right_line": 588 + }, + { + "left_line": 589, + "right_line": 589 + }, + { + "left_line": 590, + "right_line": 590 + }, + { + "left_line": 591, + "right_line": 591 + }, + { + "left_line": 592, + "right_line": 592 + }, + { + "left_line": 593, + "right_line": 593 + }, + { + "left_line": 594, + "right_line": 594 + }, + { + "left_line": 595, + "right_line": 595 + }, + { + "left_line": 596, + "right_line": 596 + }, + { + "left_line": 597, + "right_line": 597 + }, + { + "left_line": 598, + "right_line": 598 + }, + { + "left_line": 599, + "right_line": 599 + }, + { + "left_line": 600, + "right_line": 600 + }, + { + "left_line": 601, + "right_line": 601 + }, + { + "left_line": 602, + "right_line": 602 + }, + { + "left_line": 603, + "right_line": 603 + }, + { + "left_line": 604, + "right_line": 604 + }, + { + "left_line": 605, + "right_line": 605 + }, + { + "left_line": 606, + "right_line": 606 + }, + { + "left_line": 607, + "right_line": 607 + }, + { + "left_line": 608, + "right_line": 608 + }, + { + "left_line": 609, + "right_line": 609 + }, + { + "left_line": 610, + "right_line": 610 + }, + { + "left_line": 611, + "right_line": 611 + }, + { + "left_line": 612, + "right_line": 612 + }, + { + "left_line": 613, + "right_line": 613 + }, + { + "left_line": 614, + "right_line": 614 + }, + { + "left_line": 615, + "right_line": 615 + }, + { + "left_line": 616, + "right_line": 616 + }, + { + "left_line": 617, + "right_line": 617 + }, + { + "left_line": 618, + "right_line": 618 + }, + { + "left_line": 619, + "right_line": 619 + }, + { + "left_line": 620, + "right_line": 620 + }, + { + "left_line": 621, + "right_line": 621 + }, + { + "left_line": 622, + "right_line": 622 + }, + { + "left_line": 623, + "right_line": 623 + }, + { + "left_line": 624, + "right_line": 624 + }, + { + "left_line": 625, + "right_line": 625 + }, + { + "left_line": 626, + "right_line": 626 + }, + { + "left_line": 627, + "right_line": 627 + }, + { + "left_line": 628, + "right_line": 628 + }, + { + "left_line": 629, + "right_line": 629 + }, + { + "left_line": 630, + "right_line": 630 + }, + { + "left_line": 631, + "right_line": 631 + }, + { + "left_line": 632, + "right_line": 632 + }, + { + "left_line": 633, + "right_line": 633 + }, + { + "left_line": 634, + "right_line": 634 + }, + { + "left_line": 635, + "right_line": 635 + }, + { + "left_line": 636, + "right_line": 636 + }, + { + "left_line": 637, + "right_line": 637 + }, + { + "left_line": 638, + "right_line": 638 + }, + { + "left_line": 639, + "right_line": 639 + }, + { + "left_line": 640, + "right_line": 640 + }, + { + "left_line": 641, + "right_line": 641 + }, + { + "left_line": 642, + "right_line": 642 + }, + { + "left_line": 643, + "right_line": 643 + }, + { + "left_line": 644, + "right_line": 644 + }, + { + "left_line": 645, + "right_line": 645 + }, + { + "left_line": 646, + "right_line": 646 + }, + { + "left_line": 647, + "right_line": 647 + }, + { + "left_line": 648, + "right_line": 648 + }, + { + "left_line": 649, + "right_line": 649 + }, + { + "left_line": 650, + "right_line": 650 + }, + { + "left_line": 651, + "right_line": 651 + }, + { + "left_line": 652, + "right_line": 652 + }, + { + "left_line": 653, + "right_line": 653 + }, + { + "left_line": 654, + "right_line": 654 + }, + { + "left_line": 655, + "right_line": 655 + }, + { + "left_line": 656, + "right_line": 656 + }, + { + "left_line": 657, + "right_line": 657 + }, + { + "left_line": 658, + "right_line": 658 + }, + { + "left_line": 659, + "right_line": 659 + }, + { + "left_line": 660, + "right_line": 660 + }, + { + "left_line": 661, + "right_line": 661 + }, + { + "left_line": 662, + "right_line": 662 + }, + { + "left_line": 663, + "right_line": 663 + }, + { + "left_line": 664, + "right_line": 664 + }, + { + "left_line": 665, + "right_line": 665 + }, + { + "left_line": 666, + "right_line": 666 + }, + { + "left_line": 667, + "right_line": 667 + }, + { + "left_line": 668, + "right_line": 668 + }, + { + "left_line": 669, + "right_line": 669 + }, + { + "left_line": 670, + "right_line": 670 + }, + { + "left_line": 671, + "right_line": 671 + }, + { + "left_line": 672, + "right_line": 672 + }, + { + "left_line": 673, + "right_line": 673 + }, + { + "left_line": 674, + "right_line": 674 + }, + { + "left_line": 675, + "right_line": 675 + }, + { + "left_line": 676, + "right_line": 676 + }, + { + "left_line": 677, + "right_line": 677 + }, + { + "left_line": 678, + "right_line": 678 + }, + { + "left_line": 679, + "right_line": 679 + }, + { + "left_line": 680, + "right_line": 680 + }, + { + "left_line": 681, + "right_line": 681 + }, + { + "left_line": 682, + "right_line": 682 + }, + { + "left_line": 683, + "right_line": 683 + }, + { + "left_line": 684, + "right_line": 684 + }, + { + "left_line": 685, + "right_line": 685 + }, + { + "left_line": 686, + "right_line": 686 + }, + { + "left_line": 687, + "right_line": 687 + }, + { + "left_line": 688, + "right_line": 688 + }, + { + "left_line": 689, + "right_line": 689 + }, + { + "left_line": 690, + "right_line": 690 + }, + { + "left_line": 691, + "right_line": 691 + }, + { + "left_line": 692, + "right_line": 692 + }, + { + "left_line": 693, + "right_line": 693 + }, + { + "left_line": 694, + "right_line": 694 + }, + { + "left_line": 695, + "right_line": 695 + }, + { + "left_line": 696, + "right_line": 696 + }, + { + "left_line": 697, + "right_line": 697 + }, + { + "left_line": 698, + "right_line": 698 + }, + { + "left_line": 699, + "right_line": 699 + }, + { + "left_line": 700, + "right_line": 700 + }, + { + "left_line": 701, + "right_line": 701 + }, + { + "left_line": 702, + "right_line": 702 + }, + { + "left_line": 703, + "right_line": 703 + }, + { + "left_line": 704, + "right_line": 704 + }, + { + "left_line": 705, + "right_line": 705 + }, + { + "left_line": 706, + "right_line": 706 + }, + { + "left_line": 707, + "right_line": 707 + }, + { + "left_line": 708, + "right_line": 708 + }, + { + "left_line": 709, + "right_line": 709 + }, + { + "left_line": 710, + "right_line": 710 + }, + { + "left_line": 711, + "right_line": 711 + }, + { + "left_line": 712, + "right_line": 712 + }, + { + "left_line": 713, + "right_line": 713 + }, + { + "left_line": 714, + "right_line": 714 + }, + { + "left_line": 715, + "right_line": 715 + }, + { + "left_line": 716, + "right_line": 716 + }, + { + "left_line": 717, + "right_line": 717 + }, + { + "left_line": 718, + "right_line": 718 + }, + { + "left_line": 719, + "right_line": 719 + }, + { + "left_line": 720, + "right_line": 720 + }, + { + "left_line": 721, + "right_line": 721 + }, + { + "left_line": 722, + "right_line": 722 + }, + { + "left_line": 723, + "right_line": 723 + }, + { + "left_line": 724, + "right_line": 724 + }, + { + "left_line": 725, + "right_line": 725 + }, + { + "left_line": 726, + "right_line": 726 + }, + { + "left_line": 727, + "right_line": 727 + }, + { + "left_line": 728, + "right_line": 728 + }, + { + "left_line": 729, + "right_line": 729 + }, + { + "left_line": 730, + "right_line": 730 + }, + { + "left_line": 731, + "right_line": 731 + }, + { + "left_line": 732, + "right_line": 732 + }, + { + "left_line": 733, + "right_line": 733 + }, + { + "left_line": 734, + "right_line": 734 + }, + { + "left_line": 735, + "right_line": 735 + }, + { + "left_line": 736, + "right_line": 736 + }, + { + "left_line": 737, + "right_line": 737 + }, + { + "left_line": 738, + "right_line": 738 + }, + { + "left_line": 739, + "right_line": -1 + }, + { + "left_line": 740, + "right_line": -1 + }, + { + "left_line": 741, + "right_line": -1 + }, + { + "left_line": 742, + "right_line": -1 + }, + { + "left_line": 743, + "right_line": -1 + }, + { + "left_line": 744, + "right_line": -1 + }, + { + "left_line": 745, + "right_line": -1 + }, + { + "left_line": 746, + "right_line": -1 + }, + { + "left_line": 747, + "right_line": -1 + }, + { + "left_line": 748, + "right_line": -1 + }, + { + "left_line": 749, + "right_line": -1 + }, + { + "left_line": -1, + "right_line": 739 + }, + { + "left_line": -1, + "right_line": 740 + }, + { + "left_line": -1, + "right_line": 741 + }, + { + "left_line": -1, + "right_line": 742 + }, + { + "left_line": 750, + "right_line": 743 + }, + { + "left_line": 751, + "right_line": 744 + }, + { + "left_line": 752, + "right_line": 745 + }, + { + "left_line": 753, + "right_line": 746 + }, + { + "left_line": 754, + "right_line": 747 + }, + { + "left_line": 755, + "right_line": 748 + }, + { + "left_line": 756, + "right_line": 749 + }, + { + "left_line": 757, + "right_line": 750 + }, + { + "left_line": 758, + "right_line": 751 + }, + { + "left_line": 759, + "right_line": 752 + }, + { + "left_line": 760, + "right_line": 753 + }, + { + "left_line": 761, + "right_line": 754 + }, + { + "left_line": 762, + "right_line": 755 + }, + { + "left_line": 763, + "right_line": 756 + }, + { + "left_line": 764, + "right_line": 757 + }, + { + "left_line": 765, + "right_line": 758 + }, + { + "left_line": 766, + "right_line": 759 + }, + { + "left_line": 767, + "right_line": 760 + }, + { + "left_line": 768, + "right_line": 761 + }, + { + "left_line": 769, + "right_line": 762 + }, + { + "left_line": 770, + "right_line": 763 + }, + { + "left_line": 771, + "right_line": 764 + }, + { + "left_line": 772, + "right_line": 765 + }, + { + "left_line": 773, + "right_line": 766 + }, + { + "left_line": 774, + "right_line": 767 + }, + { + "left_line": 775, + "right_line": 768 + }, + { + "left_line": 776, + "right_line": 769 + }, + { + "left_line": 777, + "right_line": 770 + }, + { + "left_line": 778, + "right_line": 771 + }, + { + "left_line": 779, + "right_line": 772 + }, + { + "left_line": 780, + "right_line": 773 + }, + { + "left_line": 781, + "right_line": 774 + }, + { + "left_line": 782, + "right_line": 775 + }, + { + "left_line": 783, + "right_line": 776 + }, + { + "left_line": 784, + "right_line": 777 + }, + { + "left_line": 785, + "right_line": 778 + }, + { + "left_line": 786, + "right_line": 779 + }, + { + "left_line": 787, + "right_line": 780 + }, + { + "left_line": 788, + "right_line": 781 + }, + { + "left_line": 789, + "right_line": 782 + }, + { + "left_line": 790, + "right_line": 783 + }, + { + "left_line": 791, + "right_line": 784 + }, + { + "left_line": 792, + "right_line": 785 + }, + { + "left_line": 793, + "right_line": 786 + }, + { + "left_line": 794, + "right_line": 787 + }, + { + "left_line": 795, + "right_line": 788 + }, + { + "left_line": 796, + "right_line": 789 + }, + { + "left_line": 797, + "right_line": 790 + }, + { + "left_line": 798, + "right_line": 791 + }, + { + "left_line": 799, + "right_line": 792 + }, + { + "left_line": 800, + "right_line": 793 + }, + { + "left_line": 801, + "right_line": 794 + }, + { + "left_line": 802, + "right_line": 795 + }, + { + "left_line": 803, + "right_line": 796 + }, + { + "left_line": 804, + "right_line": 797 + }, + { + "left_line": 805, + "right_line": 798 + }, + { + "left_line": 806, + "right_line": 799 + }, + { + "left_line": 807, + "right_line": 800 + }, + { + "left_line": 808, + "right_line": 801 + }, + { + "left_line": 809, + "right_line": 802 + }, + { + "left_line": 810, + "right_line": 803 + }, + { + "left_line": 811, + "right_line": 804 + }, + { + "left_line": 812, + "right_line": 805 + }, + { + "left_line": 813, + "right_line": 806 + }, + { + "left_line": 814, + "right_line": 807 + }, + { + "left_line": 815, + "right_line": 808 + }, + { + "left_line": 816, + "right_line": 809 + }, + { + "left_line": 817, + "right_line": 810 + }, + { + "left_line": 818, + "right_line": 811 + }, + { + "left_line": 819, + "right_line": 812 + }, + { + "left_line": 820, + "right_line": 813 + }, + { + "left_line": 821, + "right_line": 814 + }, + { + "left_line": 822, + "right_line": 815 + }, + { + "left_line": 823, + "right_line": 816 + }, + { + "left_line": 824, + "right_line": 817 + }, + { + "left_line": 825, + "right_line": 818 + }, + { + "left_line": 826, + "right_line": 819 + }, + { + "left_line": 827, + "right_line": 820 + }, + { + "left_line": 828, + "right_line": 821 + }, + { + "left_line": 829, + "right_line": 822 + }, + { + "left_line": 830, + "right_line": 823 + }, + { + "left_line": 831, + "right_line": 824 + }, + { + "left_line": 832, + "right_line": 825 + }, + { + "left_line": 833, + "right_line": 826 + }, + { + "left_line": 834, + "right_line": 827 + }, + { + "left_line": 835, + "right_line": 828 + }, + { + "left_line": 836, + "right_line": 829 + }, + { + "left_line": 837, + "right_line": 830 + }, + { + "left_line": 838, + "right_line": 831 + }, + { + "left_line": 839, + "right_line": 832 + }, + { + "left_line": 840, + "right_line": 833 + }, + { + "left_line": 841, + "right_line": 834 + }, + { + "left_line": 842, + "right_line": 835 + }, + { + "left_line": 843, + "right_line": 836 + }, + { + "left_line": 844, + "right_line": 837 + }, + { + "left_line": 845, + "right_line": 838 + }, + { + "left_line": 846, + "right_line": 839 + }, + { + "left_line": 847, + "right_line": 840 + }, + { + "left_line": 848, + "right_line": 841 + }, + { + "left_line": 849, + "right_line": 842 + }, + { + "left_line": 850, + "right_line": 843 + }, + { + "left_line": 851, + "right_line": 844 + }, + { + "left_line": 852, + "right_line": 845 + }, + { + "left_line": 853, + "right_line": 846 + }, + { + "left_line": 854, + "right_line": 847 + }, + { + "left_line": 855, + "right_line": 848 + }, + { + "left_line": 856, + "right_line": 849 + }, + { + "left_line": 857, + "right_line": 850 + }, + { + "left_line": 858, + "right_line": 851 + }, + { + "left_line": 859, + "right_line": 852 + }, + { + "left_line": 860, + "right_line": 853 + }, + { + "left_line": 861, + "right_line": 854 + }, + { + "left_line": 862, + "right_line": 855 + }, + { + "left_line": 863, + "right_line": 856 + }, + { + "left_line": 864, + "right_line": 857 + }, + { + "left_line": 865, + "right_line": 858 + }, + { + "left_line": 866, + "right_line": 859 + }, + { + "left_line": 867, + "right_line": 860 + }, + { + "left_line": 868, + "right_line": 861 + }, + { + "left_line": 869, + "right_line": 862 + }, + { + "left_line": 870, + "right_line": 863 + }, + { + "left_line": 871, + "right_line": 864 + }, + { + "left_line": 872, + "right_line": 865 + }, + { + "left_line": 873, + "right_line": 866 + }, + { + "left_line": 874, + "right_line": 867 + }, + { + "left_line": 875, + "right_line": 868 + }, + { + "left_line": 876, + "right_line": 869 + }, + { + "left_line": 877, + "right_line": 870 + }, + { + "left_line": 878, + "right_line": 871 + }, + { + "left_line": 879, + "right_line": 872 + }, + { + "left_line": 880, + "right_line": 873 + }, + { + "left_line": 881, + "right_line": 874 + }, + { + "left_line": 882, + "right_line": 875 + }, + { + "left_line": 883, + "right_line": 876 + }, + { + "left_line": 884, + "right_line": 877 + }, + { + "left_line": 885, + "right_line": 878 + }, + { + "left_line": 886, + "right_line": 879 + }, + { + "left_line": 887, + "right_line": 880 + }, + { + "left_line": 888, + "right_line": 881 + }, + { + "left_line": 889, + "right_line": 882 + }, + { + "left_line": 890, + "right_line": 883 + }, + { + "left_line": 891, + "right_line": 884 + }, + { + "left_line": 892, + "right_line": 885 + }, + { + "left_line": 893, + "right_line": 886 + }, + { + "left_line": 894, + "right_line": 887 + }, + { + "left_line": 895, + "right_line": 888 + }, + { + "left_line": 896, + "right_line": 889 + }, + { + "left_line": 897, + "right_line": 890 + }, + { + "left_line": 898, + "right_line": 891 + }, + { + "left_line": 899, + "right_line": 892 + }, + { + "left_line": 900, + "right_line": 893 + }, + { + "left_line": 901, + "right_line": 894 + }, + { + "left_line": 902, + "right_line": 895 + }, + { + "left_line": 903, + "right_line": 896 + }, + { + "left_line": 904, + "right_line": 897 + }, + { + "left_line": 905, + "right_line": 898 + }, + { + "left_line": 906, + "right_line": 899 + }, + { + "left_line": 907, + "right_line": 900 + }, + { + "left_line": 908, + "right_line": 901 + }, + { + "left_line": 909, + "right_line": 902 + }, + { + "left_line": 910, + "right_line": 903 + }, + { + "left_line": 911, + "right_line": 904 + }, + { + "left_line": 912, + "right_line": 905 + }, + { + "left_line": 913, + "right_line": 906 + }, + { + "left_line": 914, + "right_line": 907 + }, + { + "left_line": 915, + "right_line": 908 + }, + { + "left_line": 916, + "right_line": 909 + }, + { + "left_line": 917, + "right_line": 910 + }, + { + "left_line": 918, + "right_line": 911 + }, + { + "left_line": 919, + "right_line": 912 + }, + { + "left_line": 920, + "right_line": 913 + }, + { + "left_line": 921, + "right_line": 914 + }, + { + "left_line": 922, + "right_line": 915 + }, + { + "left_line": 923, + "right_line": 916 + }, + { + "left_line": 924, + "right_line": 917 + }, + { + "left_line": 925, + "right_line": 918 + }, + { + "left_line": 926, + "right_line": 919 + }, + { + "left_line": 927, + "right_line": 920 + }, + { + "left_line": 928, + "right_line": 921 + }, + { + "left_line": 929, + "right_line": 922 + }, + { + "left_line": 930, + "right_line": 923 + }, + { + "left_line": 931, + "right_line": 924 + }, + { + "left_line": 932, + "right_line": 925 + }, + { + "left_line": 933, + "right_line": 926 + }, + { + "left_line": 934, + "right_line": 927 + }, + { + "left_line": 935, + "right_line": 928 + }, + { + "left_line": 936, + "right_line": 929 + }, + { + "left_line": 937, + "right_line": 930 + }, + { + "left_line": 938, + "right_line": 931 + }, + { + "left_line": 939, + "right_line": 932 + }, + { + "left_line": 940, + "right_line": 933 + }, + { + "left_line": 941, + "right_line": 934 + }, + { + "left_line": 942, + "right_line": 935 + }, + { + "left_line": 943, + "right_line": 936 + }, + { + "left_line": 944, + "right_line": 937 + }, + { + "left_line": 945, + "right_line": 938 + }, + { + "left_line": 946, + "right_line": 939 + }, + { + "left_line": 947, + "right_line": 940 + }, + { + "left_line": 948, + "right_line": 941 + }, + { + "left_line": 949, + "right_line": 942 + }, + { + "left_line": 950, + "right_line": 943 + }, + { + "left_line": 951, + "right_line": 944 + }, + { + "left_line": 952, + "right_line": 945 + }, + { + "left_line": 953, + "right_line": 946 + }, + { + "left_line": 954, + "right_line": 947 + }, + { + "left_line": 955, + "right_line": 948 + }, + { + "left_line": 956, + "right_line": 949 + }, + { + "left_line": 957, + "right_line": 950 + }, + { + "left_line": 958, + "right_line": 951 + }, + { + "left_line": 959, + "right_line": 952 + }, + { + "left_line": 960, + "right_line": 953 + }, + { + "left_line": 961, + "right_line": 954 + }, + { + "left_line": 962, + "right_line": 955 + }, + { + "left_line": 963, + "right_line": 956 + }, + { + "left_line": 964, + "right_line": 957 + }, + { + "left_line": 965, + "right_line": 958 + }, + { + "left_line": 966, + "right_line": 959 + }, + { + "left_line": 967, + "right_line": 960 + }, + { + "left_line": 968, + "right_line": 961 + }, + { + "left_line": 969, + "right_line": 962 + }, + { + "left_line": 970, + "right_line": 963 + }, + { + "left_line": 971, + "right_line": 964 + }, + { + "left_line": 972, + "right_line": 965 + }, + { + "left_line": 973, + "right_line": 966 + }, + { + "left_line": 974, + "right_line": 967 + }, + { + "left_line": 975, + "right_line": 968 + }, + { + "left_line": 976, + "right_line": 969 + }, + { + "left_line": 977, + "right_line": 970 + }, + { + "left_line": 978, + "right_line": 971 + }, + { + "left_line": 979, + "right_line": 972 + }, + { + "left_line": 980, + "right_line": 973 + }, + { + "left_line": 981, + "right_line": 974 + }, + { + "left_line": 982, + "right_line": 975 + }, + { + "left_line": 983, + "right_line": 976 + }, + { + "left_line": 984, + "right_line": 977 + }, + { + "left_line": 985, + "right_line": 978 + }, + { + "left_line": 986, + "right_line": 979 + }, + { + "left_line": 987, + "right_line": 980 + }, + { + "left_line": 988, + "right_line": 981 + }, + { + "left_line": 989, + "right_line": 982 + }, + { + "left_line": 990, + "right_line": 983 + }, + { + "left_line": 991, + "right_line": 984 + }, + { + "left_line": 992, + "right_line": 985 + }, + { + "left_line": 993, + "right_line": 986 + }, + { + "left_line": 994, + "right_line": 987 + }, + { + "left_line": 995, + "right_line": 988 + }, + { + "left_line": 996, + "right_line": 989 + }, + { + "left_line": 997, + "right_line": 990 + }, + { + "left_line": 998, + "right_line": 991 + }, + { + "left_line": 999, + "right_line": 992 + }, + { + "left_line": 1000, + "right_line": 993 + }, + { + "left_line": 1001, + "right_line": 994 + }, + { + "left_line": 1002, + "right_line": 995 + }, + { + "left_line": 1003, + "right_line": 996 + }, + { + "left_line": 1004, + "right_line": 997 + }, + { + "left_line": 1005, + "right_line": 998 + }, + { + "left_line": 1006, + "right_line": 999 + }, + { + "left_line": 1007, + "right_line": 1000 + }, + { + "left_line": 1008, + "right_line": 1001 + }, + { + "left_line": 1009, + "right_line": 1002 + }, + { + "left_line": 1010, + "right_line": 1003 + }, + { + "left_line": 1011, + "right_line": 1004 + }, + { + "left_line": 1012, + "right_line": 1005 + }, + { + "left_line": 1013, + "right_line": 1006 + }, + { + "left_line": 1014, + "right_line": 1007 + }, + { + "left_line": 1015, + "right_line": 1008 + }, + { + "left_line": 1016, + "right_line": 1009 + }, + { + "left_line": 1017, + "right_line": 1010 + }, + { + "left_line": 1018, + "right_line": 1011 + }, + { + "left_line": 1019, + "right_line": 1012 + }, + { + "left_line": 1020, + "right_line": 1013 + }, + { + "left_line": 1021, + "right_line": 1014 + }, + { + "left_line": 1022, + "right_line": 1015 + }, + { + "left_line": 1023, + "right_line": 1016 + }, + { + "left_line": 1024, + "right_line": 1017 + }, + { + "left_line": 1025, + "right_line": 1018 + }, + { + "left_line": 1026, + "right_line": 1019 + }, + { + "left_line": 1027, + "right_line": 1020 + }, + { + "left_line": 1028, + "right_line": 1021 + }, + { + "left_line": 1029, + "right_line": 1022 + }, + { + "left_line": 1030, + "right_line": 1023 + }, + { + "left_line": 1031, + "right_line": 1024 + }, + { + "left_line": 1032, + "right_line": 1025 + }, + { + "left_line": 1033, + "right_line": 1026 + }, + { + "left_line": 1034, + "right_line": 1027 + }, + { + "left_line": 1035, + "right_line": 1028 + }, + { + "left_line": 1036, + "right_line": 1029 + }, + { + "left_line": 1037, + "right_line": 1030 + }, + { + "left_line": 1038, + "right_line": 1031 + }, + { + "left_line": 1039, + "right_line": 1032 + }, + { + "left_line": 1040, + "right_line": 1033 + }, + { + "left_line": 1041, + "right_line": 1034 + }, + { + "left_line": 1042, + "right_line": 1035 + }, + { + "left_line": 1043, + "right_line": 1036 + }, + { + "left_line": 1044, + "right_line": 1037 + }, + { + "left_line": 1045, + "right_line": 1038 + }, + { + "left_line": 1046, + "right_line": 1039 + }, + { + "left_line": 1047, + "right_line": 1040 + }, + { + "left_line": 1048, + "right_line": 1041 + }, + { + "left_line": 1049, + "right_line": 1042 + }, + { + "left_line": 1050, + "right_line": 1043 + }, + { + "left_line": 1051, + "right_line": 1044 + }, + { + "left_line": 1052, + "right_line": 1045 + }, + { + "left_line": 1053, + "right_line": 1046 + }, + { + "left_line": 1054, + "right_line": 1047 + }, + { + "left_line": 1055, + "right_line": 1048 + }, + { + "left_line": 1056, + "right_line": 1049 + }, + { + "left_line": 1057, + "right_line": 1050 + }, + { + "left_line": 1058, + "right_line": 1051 + }, + { + "left_line": 1059, + "right_line": 1052 + }, + { + "left_line": 1060, + "right_line": 1053 + }, + { + "left_line": 1061, + "right_line": 1054 + }, + { + "left_line": 1062, + "right_line": 1055 + }, + { + "left_line": 1063, + "right_line": 1056 + }, + { + "left_line": 1064, + "right_line": 1057 + }, + { + "left_line": 1065, + "right_line": 1058 + }, + { + "left_line": 1066, + "right_line": 1059 + }, + { + "left_line": 1067, + "right_line": 1060 + }, + { + "left_line": 1068, + "right_line": 1061 + }, + { + "left_line": 1069, + "right_line": 1062 + }, + { + "left_line": 1070, + "right_line": 1063 + }, + { + "left_line": 1071, + "right_line": 1064 + }, + { + "left_line": 1072, + "right_line": 1065 + }, + { + "left_line": 1073, + "right_line": 1066 + }, + { + "left_line": 1074, + "right_line": 1067 + }, + { + "left_line": 1075, + "right_line": 1068 + }, + { + "left_line": 1076, + "right_line": 1069 + }, + { + "left_line": 1077, + "right_line": 1070 + }, + { + "left_line": 1078, + "right_line": 1071 + }, + { + "left_line": 1079, + "right_line": 1072 + }, + { + "left_line": 1080, + "right_line": 1073 + }, + { + "left_line": 1081, + "right_line": 1074 + }, + { + "left_line": 1082, + "right_line": 1075 + }, + { + "left_line": 1083, + "right_line": 1076 + }, + { + "left_line": 1084, + "right_line": 1077 + }, + { + "left_line": 1085, + "right_line": 1078 + }, + { + "left_line": 1086, + "right_line": 1079 + }, + { + "left_line": 1087, + "right_line": 1080 + }, + { + "left_line": 1088, + "right_line": 1081 + }, + { + "left_line": 1089, + "right_line": 1082 + }, + { + "left_line": 1090, + "right_line": 1083 + }, + { + "left_line": 1091, + "right_line": 1084 + }, + { + "left_line": 1092, + "right_line": 1085 + }, + { + "left_line": 1093, + "right_line": 1086 + }, + { + "left_line": 1094, + "right_line": 1087 + }, + { + "left_line": 1095, + "right_line": 1088 + }, + { + "left_line": 1096, + "right_line": 1089 + }, + { + "left_line": 1097, + "right_line": 1090 + }, + { + "left_line": 1098, + "right_line": 1091 + }, + { + "left_line": 1099, + "right_line": 1092 + }, + { + "left_line": 1100, + "right_line": 1093 + }, + { + "left_line": 1101, + "right_line": 1094 + }, + { + "left_line": 1102, + "right_line": 1095 + }, + { + "left_line": 1103, + "right_line": 1096 + }, + { + "left_line": 1104, + "right_line": 1097 + }, + { + "left_line": 1105, + "right_line": 1098 + }, + { + "left_line": 1106, + "right_line": 1099 + }, + { + "left_line": 1107, + "right_line": 1100 + }, + { + "left_line": 1108, + "right_line": 1101 + }, + { + "left_line": 1109, + "right_line": 1102 + }, + { + "left_line": 1110, + "right_line": 1103 + }, + { + "left_line": 1111, + "right_line": 1104 + }, + { + "left_line": 1112, + "right_line": 1105 + }, + { + "left_line": 1113, + "right_line": 1106 + }, + { + "left_line": 1114, + "right_line": 1107 + }, + { + "left_line": 1115, + "right_line": 1108 + }, + { + "left_line": 1116, + "right_line": 1109 + }, + { + "left_line": 1117, + "right_line": 1110 + }, + { + "left_line": 1118, + "right_line": 1111 + }, + { + "left_line": 1119, + "right_line": 1112 + }, + { + "left_line": 1120, + "right_line": 1113 + }, + { + "left_line": 1121, + "right_line": 1114 + }, + { + "left_line": 1122, + "right_line": 1115 + }, + { + "left_line": 1123, + "right_line": 1116 + }, + { + "left_line": 1124, + "right_line": 1117 + }, + { + "left_line": 1125, + "right_line": 1118 + }, + { + "left_line": 1126, + "right_line": 1119 + }, + { + "left_line": 1127, + "right_line": 1120 + }, + { + "left_line": 1128, + "right_line": 1121 + }, + { + "left_line": 1129, + "right_line": 1122 + }, + { + "left_line": 1130, + "right_line": 1123 + }, + { + "left_line": 1131, + "right_line": 1124 + }, + { + "left_line": 1132, + "right_line": 1125 + }, + { + "left_line": 1133, + "right_line": 1126 + }, + { + "left_line": 1134, + "right_line": 1127 + }, + { + "left_line": 1135, + "right_line": 1128 + }, + { + "left_line": 1136, + "right_line": 1129 + }, + { + "left_line": 1137, + "right_line": 1130 + }, + { + "left_line": 1138, + "right_line": 1131 + }, + { + "left_line": 1139, + "right_line": 1132 + }, + { + "left_line": 1140, + "right_line": 1133 + }, + { + "left_line": 1141, + "right_line": 1134 + }, + { + "left_line": 1142, + "right_line": 1135 + }, + { + "left_line": 1143, + "right_line": 1136 + }, + { + "left_line": 1144, + "right_line": 1137 + }, + { + "left_line": 1145, + "right_line": 1138 + }, + { + "left_line": 1146, + "right_line": 1139 + }, + { + "left_line": 1147, + "right_line": 1140 + }, + { + "left_line": 1148, + "right_line": 1141 + }, + { + "left_line": 1149, + "right_line": 1142 + }, + { + "left_line": 1150, + "right_line": 1143 + }, + { + "left_line": 1151, + "right_line": 1144 + }, + { + "left_line": 1152, + "right_line": 1145 + }, + { + "left_line": 1153, + "right_line": 1146 + }, + { + "left_line": 1154, + "right_line": 1147 + }, + { + "left_line": 1155, + "right_line": 1148 + }, + { + "left_line": 1156, + "right_line": 1149 + }, + { + "left_line": 1157, + "right_line": 1150 + }, + { + "left_line": 1158, + "right_line": 1151 + }, + { + "left_line": 1159, + "right_line": 1152 + }, + { + "left_line": 1160, + "right_line": 1153 + }, + { + "left_line": 1161, + "right_line": 1154 + }, + { + "left_line": 1162, + "right_line": 1155 + }, + { + "left_line": 1163, + "right_line": 1156 + }, + { + "left_line": 1164, + "right_line": 1157 + }, + { + "left_line": 1165, + "right_line": 1158 + }, + { + "left_line": 1166, + "right_line": 1159 + }, + { + "left_line": 1167, + "right_line": 1160 + }, + { + "left_line": 1168, + "right_line": 1161 + }, + { + "left_line": 1169, + "right_line": 1162 + }, + { + "left_line": 1170, + "right_line": 1163 + }, + { + "left_line": 1171, + "right_line": 1164 + }, + { + "left_line": 1172, + "right_line": 1165 + }, + { + "left_line": 1173, + "right_line": 1166 + }, + { + "left_line": 1174, + "right_line": 1167 + }, + { + "left_line": 1175, + "right_line": 1168 + }, + { + "left_line": 1176, + "right_line": 1169 + }, + { + "left_line": 1177, + "right_line": 1170 + }, + { + "left_line": 1178, + "right_line": 1171 + }, + { + "left_line": 1179, + "right_line": 1172 + }, + { + "left_line": 1180, + "right_line": 1173 + }, + { + "left_line": 1181, + "right_line": 1174 + }, + { + "left_line": 1182, + "right_line": 1175 + }, + { + "left_line": 1183, + "right_line": 1176 + }, + { + "left_line": 1184, + "right_line": 1177 + }, + { + "left_line": 1185, + "right_line": 1178 + }, + { + "left_line": 1186, + "right_line": 1179 + }, + { + "left_line": 1187, + "right_line": 1180 + }, + { + "left_line": 1188, + "right_line": 1181 + }, + { + "left_line": 1189, + "right_line": 1182 + }, + { + "left_line": 1190, + "right_line": 1183 + }, + { + "left_line": 1191, + "right_line": 1184 + }, + { + "left_line": 1192, + "right_line": 1185 + }, + { + "left_line": 1193, + "right_line": 1186 + }, + { + "left_line": 1194, + "right_line": 1187 + }, + { + "left_line": 1195, + "right_line": 1188 + }, + { + "left_line": 1196, + "right_line": 1189 + }, + { + "left_line": 1197, + "right_line": 1190 + }, + { + "left_line": 1198, + "right_line": 1191 + }, + { + "left_line": 1199, + "right_line": 1192 + }, + { + "left_line": 1200, + "right_line": 1193 + }, + { + "left_line": 1201, + "right_line": 1194 + }, + { + "left_line": 1202, + "right_line": 1195 + }, + { + "left_line": 1203, + "right_line": 1196 + }, + { + "left_line": 1204, + "right_line": 1197 + }, + { + "left_line": 1205, + "right_line": 1198 + }, + { + "left_line": 1206, + "right_line": 1199 + }, + { + "left_line": 1207, + "right_line": 1200 + }, + { + "left_line": 1208, + "right_line": 1201 + }, + { + "left_line": 1209, + "right_line": 1202 + }, + { + "left_line": 1210, + "right_line": 1203 + }, + { + "left_line": 1211, + "right_line": 1204 + }, + { + "left_line": 1212, + "right_line": 1205 + }, + { + "left_line": 1213, + "right_line": 1206 + }, + { + "left_line": 1214, + "right_line": 1207 + }, + { + "left_line": 1215, + "right_line": 1208 + }, + { + "left_line": 1216, + "right_line": 1209 + }, + { + "left_line": 1217, + "right_line": 1210 + }, + { + "left_line": 1218, + "right_line": 1211 + }, + { + "left_line": 1219, + "right_line": 1212 + }, + { + "left_line": 1220, + "right_line": 1213 + }, + { + "left_line": 1221, + "right_line": 1214 + }, + { + "left_line": 1222, + "right_line": 1215 + }, + { + "left_line": 1223, + "right_line": 1216 + }, + { + "left_line": 1224, + "right_line": 1217 + }, + { + "left_line": 1225, + "right_line": 1218 + }, + { + "left_line": 1226, + "right_line": 1219 + }, + { + "left_line": 1227, + "right_line": 1220 + }, + { + "left_line": 1228, + "right_line": 1221 + }, + { + "left_line": 1229, + "right_line": 1222 + }, + { + "left_line": 1230, + "right_line": 1223 + }, + { + "left_line": 1231, + "right_line": 1224 + }, + { + "left_line": 1232, + "right_line": 1225 + }, + { + "left_line": 1233, + "right_line": 1226 + }, + { + "left_line": 1234, + "right_line": 1227 + }, + { + "left_line": 1235, + "right_line": 1228 + }, + { + "left_line": 1236, + "right_line": 1229 + }, + { + "left_line": 1237, + "right_line": 1230 + }, + { + "left_line": 1238, + "right_line": 1231 + }, + { + "left_line": 1239, + "right_line": 1232 + }, + { + "left_line": 1240, + "right_line": 1233 + }, + { + "left_line": 1241, + "right_line": 1234 + }, + { + "left_line": 1242, + "right_line": 1235 + }, + { + "left_line": 1243, + "right_line": 1236 + }, + { + "left_line": 1244, + "right_line": 1237 + }, + { + "left_line": 1245, + "right_line": 1238 + }, + { + "left_line": 1246, + "right_line": 1239 + }, + { + "left_line": 1247, + "right_line": 1240 + }, + { + "left_line": 1248, + "right_line": 1241 + }, + { + "left_line": 1249, + "right_line": 1242 + }, + { + "left_line": 1250, + "right_line": 1243 + }, + { + "left_line": 1251, + "right_line": 1244 + }, + { + "left_line": 1252, + "right_line": 1245 + }, + { + "left_line": 1253, + "right_line": 1246 + }, + { + "left_line": 1254, + "right_line": 1247 + }, + { + "left_line": 1255, + "right_line": 1248 + }, + { + "left_line": 1256, + "right_line": 1249 + }, + { + "left_line": 1257, + "right_line": 1250 + }, + { + "left_line": 1258, + "right_line": 1251 + }, + { + "left_line": 1259, + "right_line": 1252 + }, + { + "left_line": 1260, + "right_line": 1253 + }, + { + "left_line": 1261, + "right_line": 1254 + }, + { + "left_line": 1262, + "right_line": 1255 + }, + { + "left_line": 1263, + "right_line": 1256 + }, + { + "left_line": 1264, + "right_line": 1257 + }, + { + "left_line": 1265, + "right_line": 1258 + }, + { + "left_line": 1266, + "right_line": 1259 + }, + { + "left_line": 1267, + "right_line": 1260 + }, + { + "left_line": 1268, + "right_line": 1261 + }, + { + "left_line": 1269, + "right_line": 1262 + }, + { + "left_line": 1270, + "right_line": 1263 + }, + { + "left_line": 1271, + "right_line": 1264 + }, + { + "left_line": 1272, + "right_line": 1265 + }, + { + "left_line": 1273, + "right_line": 1266 + }, + { + "left_line": 1274, + "right_line": 1267 + }, + { + "left_line": 1275, + "right_line": 1268 + }, + { + "left_line": 1276, + "right_line": 1269 + }, + { + "left_line": 1277, + "right_line": 1270 + }, + { + "left_line": 1278, + "right_line": 1271 + }, + { + "left_line": 1279, + "right_line": 1272 + }, + { + "left_line": 1280, + "right_line": 1273 + }, + { + "left_line": 1281, + "right_line": 1274 + }, + { + "left_line": 1282, + "right_line": 1275 + }, + { + "left_line": 1283, + "right_line": 1276 + }, + { + "left_line": 1284, + "right_line": 1277 + }, + { + "left_line": 1285, + "right_line": 1278 + }, + { + "left_line": 1286, + "right_line": 1279 + }, + { + "left_line": 1287, + "right_line": 1280 + }, + { + "left_line": 1288, + "right_line": 1281 + }, + { + "left_line": 1289, + "right_line": 1282 + }, + { + "left_line": 1290, + "right_line": 1283 + }, + { + "left_line": 1291, + "right_line": 1284 + }, + { + "left_line": 1292, + "right_line": 1285 + }, + { + "left_line": 1293, + "right_line": 1286 + }, + { + "left_line": 1294, + "right_line": 1287 + }, + { + "left_line": 1295, + "right_line": 1288 + }, + { + "left_line": 1296, + "right_line": 1289 + }, + { + "left_line": 1297, + "right_line": 1290 + }, + { + "left_line": 1298, + "right_line": 1291 + }, + { + "left_line": 1299, + "right_line": 1292 + }, + { + "left_line": 1300, + "right_line": 1293 + }, + { + "left_line": 1301, + "right_line": 1294 + }, + { + "left_line": 1302, + "right_line": 1295 + }, + { + "left_line": 1303, + "right_line": 1296 + }, + { + "left_line": 1304, + "right_line": 1297 + }, + { + "left_line": 1305, + "right_line": 1298 + }, + { + "left_line": 1306, + "right_line": 1299 + }, + { + "left_line": 1307, + "right_line": 1300 + }, + { + "left_line": 1308, + "right_line": 1301 + }, + { + "left_line": 1309, + "right_line": 1302 + }, + { + "left_line": 1310, + "right_line": 1303 + }, + { + "left_line": 1311, + "right_line": 1304 + }, + { + "left_line": 1312, + "right_line": 1305 + }, + { + "left_line": 1313, + "right_line": 1306 + }, + { + "left_line": 1314, + "right_line": 1307 + }, + { + "left_line": 1315, + "right_line": 1308 + }, + { + "left_line": 1316, + "right_line": 1309 + }, + { + "left_line": 1317, + "right_line": 1310 + }, + { + "left_line": 1318, + "right_line": 1311 + }, + { + "left_line": 1319, + "right_line": 1312 + }, + { + "left_line": 1320, + "right_line": 1313 + }, + { + "left_line": 1321, + "right_line": 1314 + }, + { + "left_line": 1322, + "right_line": 1315 + }, + { + "left_line": 1323, + "right_line": 1316 + }, + { + "left_line": 1324, + "right_line": 1317 + }, + { + "left_line": 1325, + "right_line": 1318 + }, + { + "left_line": 1326, + "right_line": 1319 + }, + { + "left_line": 1327, + "right_line": 1320 + }, + { + "left_line": 1328, + "right_line": 1321 + }, + { + "left_line": 1329, + "right_line": 1322 + }, + { + "left_line": 1330, + "right_line": 1323 + }, + { + "left_line": 1331, + "right_line": 1324 + }, + { + "left_line": 1332, + "right_line": 1325 + }, + { + "left_line": 1333, + "right_line": 1326 + }, + { + "left_line": 1334, + "right_line": 1327 + }, + { + "left_line": 1335, + "right_line": 1328 + }, + { + "left_line": 1336, + "right_line": 1329 + }, + { + "left_line": 1337, + "right_line": 1330 + }, + { + "left_line": 1338, + "right_line": 1331 + }, + { + "left_line": 1339, + "right_line": 1332 + }, + { + "left_line": 1340, + "right_line": 1333 + }, + { + "left_line": 1341, + "right_line": 1334 + }, + { + "left_line": 1342, + "right_line": 1335 + }, + { + "left_line": 1343, + "right_line": 1336 + }, + { + "left_line": 1344, + "right_line": 1337 + }, + { + "left_line": 1345, + "right_line": 1338 + }, + { + "left_line": 1346, + "right_line": 1339 + }, + { + "left_line": 1347, + "right_line": 1340 + }, + { + "left_line": 1348, + "right_line": 1341 + }, + { + "left_line": 1349, + "right_line": 1342 + }, + { + "left_line": 1350, + "right_line": 1343 + }, + { + "left_line": 1351, + "right_line": 1344 + }, + { + "left_line": 1352, + "right_line": 1345 + }, + { + "left_line": 1353, + "right_line": 1346 + }, + { + "left_line": 1354, + "right_line": 1347 + }, + { + "left_line": 1355, + "right_line": 1348 + }, + { + "left_line": 1356, + "right_line": 1349 + }, + { + "left_line": 1357, + "right_line": 1350 + }, + { + "left_line": 1358, + "right_line": 1351 + }, + { + "left_line": 1359, + "right_line": 1352 + }, + { + "left_line": 1360, + "right_line": 1353 + }, + { + "left_line": 1361, + "right_line": 1354 + }, + { + "left_line": 1362, + "right_line": 1355 + }, + { + "left_line": 1363, + "right_line": 1356 + }, + { + "left_line": 1364, + "right_line": 1357 + }, + { + "left_line": 1365, + "right_line": 1358 + }, + { + "left_line": 1366, + "right_line": 1359 + }, + { + "left_line": 1367, + "right_line": 1360 + }, + { + "left_line": 1368, + "right_line": 1361 + }, + { + "left_line": 1369, + "right_line": 1362 + }, + { + "left_line": 1370, + "right_line": 1363 + }, + { + "left_line": 1371, + "right_line": 1364 + }, + { + "left_line": 1372, + "right_line": 1365 + }, + { + "left_line": 1373, + "right_line": 1366 + }, + { + "left_line": 1374, + "right_line": 1367 + }, + { + "left_line": 1375, + "right_line": 1368 + }, + { + "left_line": 1376, + "right_line": 1369 + }, + { + "left_line": 1377, + "right_line": 1370 + }, + { + "left_line": 1378, + "right_line": 1371 + }, + { + "left_line": 1379, + "right_line": 1372 + }, + { + "left_line": 1380, + "right_line": 1373 + }, + { + "left_line": 1381, + "right_line": 1374 + }, + { + "left_line": 1382, + "right_line": 1375 + }, + { + "left_line": 1383, + "right_line": 1376 + }, + { + "left_line": 1384, + "right_line": 1377 + }, + { + "left_line": 1385, + "right_line": 1378 + }, + { + "left_line": 1386, + "right_line": 1379 + }, + { + "left_line": 1387, + "right_line": 1380 + }, + { + "left_line": 1388, + "right_line": 1381 + }, + { + "left_line": 1389, + "right_line": 1382 + }, + { + "left_line": 1390, + "right_line": 1383 + }, + { + "left_line": 1391, + "right_line": 1384 + }, + { + "left_line": 1392, + "right_line": 1385 + }, + { + "left_line": 1393, + "right_line": 1386 + }, + { + "left_line": 1394, + "right_line": 1387 + }, + { + "left_line": 1395, + "right_line": 1388 + }, + { + "left_line": 1396, + "right_line": 1389 + }, + { + "left_line": 1397, + "right_line": 1390 + }, + { + "left_line": 1398, + "right_line": 1391 + }, + { + "left_line": 1399, + "right_line": 1392 + }, + { + "left_line": 1400, + "right_line": 1393 + }, + { + "left_line": 1401, + "right_line": 1394 + }, + { + "left_line": 1402, + "right_line": 1395 + }, + { + "left_line": 1403, + "right_line": 1396 + }, + { + "left_line": 1404, + "right_line": 1397 + }, + { + "left_line": 1405, + "right_line": 1398 + }, + { + "left_line": 1406, + "right_line": 1399 + }, + { + "left_line": 1407, + "right_line": 1400 + }, + { + "left_line": 1408, + "right_line": 1401 + }, + { + "left_line": 1409, + "right_line": 1402 + }, + { + "left_line": 1410, + "right_line": 1403 + }, + { + "left_line": 1411, + "right_line": 1404 + }, + { + "left_line": 1412, + "right_line": 1405 + }, + { + "left_line": 1413, + "right_line": 1406 + }, + { + "left_line": 1414, + "right_line": 1407 + }, + { + "left_line": 1415, + "right_line": 1408 + }, + { + "left_line": 1416, + "right_line": 1409 + }, + { + "left_line": 1417, + "right_line": 1410 + }, + { + "left_line": 1418, + "right_line": 1411 + }, + { + "left_line": 1419, + "right_line": 1412 + }, + { + "left_line": 1420, + "right_line": 1413 + }, + { + "left_line": 1421, + "right_line": 1414 + }, + { + "left_line": 1422, + "right_line": 1415 + }, + { + "left_line": 1423, + "right_line": 1416 + }, + { + "left_line": 1424, + "right_line": 1417 + }, + { + "left_line": 1425, + "right_line": 1418 + }, + { + "left_line": 1426, + "right_line": 1419 + }, + { + "left_line": 1427, + "right_line": 1420 + }, + { + "left_line": 1428, + "right_line": 1421 + }, + { + "left_line": 1429, + "right_line": 1422 + }, + { + "left_line": 1430, + "right_line": 1423 + }, + { + "left_line": 1431, + "right_line": 1424 + }, + { + "left_line": 1432, + "right_line": 1425 + }, + { + "left_line": 1433, + "right_line": 1426 + }, + { + "left_line": 1434, + "right_line": 1427 + }, + { + "left_line": 1435, + "right_line": 1428 + }, + { + "left_line": 1436, + "right_line": 1429 + }, + { + "left_line": 1437, + "right_line": 1430 + }, + { + "left_line": 1438, + "right_line": 1431 + }, + { + "left_line": 1439, + "right_line": 1432 + }, + { + "left_line": 1440, + "right_line": 1433 + }, + { + "left_line": 1441, + "right_line": 1434 + }, + { + "left_line": 1442, + "right_line": 1435 + }, + { + "left_line": 1443, + "right_line": 1436 + }, + { + "left_line": 1444, + "right_line": 1437 + }, + { + "left_line": 1445, + "right_line": 1438 + }, + { + "left_line": 1446, + "right_line": 1439 + }, + { + "left_line": 1447, + "right_line": 1440 + }, + { + "left_line": 1448, + "right_line": 1441 + }, + { + "left_line": 1449, + "right_line": 1442 + }, + { + "left_line": 1450, + "right_line": 1443 + }, + { + "left_line": 1451, + "right_line": 1444 + }, + { + "left_line": 1452, + "right_line": 1445 + }, + { + "left_line": 1453, + "right_line": 1446 + }, + { + "left_line": 1454, + "right_line": 1447 + }, + { + "left_line": 1455, + "right_line": 1448 + }, + { + "left_line": 1456, + "right_line": 1449 + }, + { + "left_line": 1457, + "right_line": 1450 + }, + { + "left_line": 1458, + "right_line": 1451 + }, + { + "left_line": 1459, + "right_line": 1452 + }, + { + "left_line": 1460, + "right_line": 1453 + }, + { + "left_line": 1461, + "right_line": 1454 + }, + { + "left_line": 1462, + "right_line": 1455 + }, + { + "left_line": 1463, + "right_line": 1456 + }, + { + "left_line": 1464, + "right_line": 1457 + }, + { + "left_line": 1465, + "right_line": 1458 + }, + { + "left_line": 1466, + "right_line": 1459 + }, + { + "left_line": 1467, + "right_line": 1460 + }, + { + "left_line": 1468, + "right_line": 1461 + }, + { + "left_line": 1469, + "right_line": 1462 + }, + { + "left_line": 1470, + "right_line": 1463 + }, + { + "left_line": 1471, + "right_line": 1464 + }, + { + "left_line": 1472, + "right_line": 1465 + }, + { + "left_line": 1473, + "right_line": 1466 + }, + { + "left_line": 1474, + "right_line": 1467 + }, + { + "left_line": 1475, + "right_line": 1468 + }, + { + "left_line": 1476, + "right_line": 1469 + }, + { + "left_line": 1477, + "right_line": 1470 + }, + { + "left_line": 1478, + "right_line": 1471 + }, + { + "left_line": 1479, + "right_line": 1472 + }, + { + "left_line": 1480, + "right_line": 1473 + }, + { + "left_line": 1481, + "right_line": 1474 + }, + { + "left_line": 1482, + "right_line": 1475 + }, + { + "left_line": 1483, + "right_line": 1476 + }, + { + "left_line": 1484, + "right_line": 1477 + }, + { + "left_line": 1485, + "right_line": 1478 + }, + { + "left_line": 1486, + "right_line": 1479 + }, + { + "left_line": 1487, + "right_line": 1480 + }, + { + "left_line": 1488, + "right_line": 1481 + }, + { + "left_line": 1489, + "right_line": 1482 + }, + { + "left_line": 1490, + "right_line": 1483 + }, + { + "left_line": 1491, + "right_line": 1484 + }, + { + "left_line": 1492, + "right_line": 1485 + }, + { + "left_line": 1493, + "right_line": 1486 + }, + { + "left_line": 1494, + "right_line": 1487 + }, + { + "left_line": 1495, + "right_line": 1488 + }, + { + "left_line": 1496, + "right_line": 1489 + }, + { + "left_line": 1497, + "right_line": 1490 + }, + { + "left_line": 1498, + "right_line": 1491 + }, + { + "left_line": 1499, + "right_line": 1492 + }, + { + "left_line": 1500, + "right_line": 1493 + }, + { + "left_line": 1501, + "right_line": 1494 + }, + { + "left_line": 1502, + "right_line": 1495 + }, + { + "left_line": 1503, + "right_line": 1496 + }, + { + "left_line": 1504, + "right_line": 1497 + }, + { + "left_line": 1505, + "right_line": 1498 + }, + { + "left_line": 1506, + "right_line": 1499 + }, + { + "left_line": 1507, + "right_line": 1500 + }, + { + "left_line": 1508, + "right_line": 1501 + }, + { + "left_line": 1509, + "right_line": 1502 + }, + { + "left_line": 1510, + "right_line": 1503 + }, + { + "left_line": 1511, + "right_line": 1504 + }, + { + "left_line": 1512, + "right_line": 1505 + }, + { + "left_line": 1513, + "right_line": 1506 + }, + { + "left_line": 1514, + "right_line": 1507 + }, + { + "left_line": 1515, + "right_line": 1508 + }, + { + "left_line": 1516, + "right_line": 1509 + }, + { + "left_line": 1517, + "right_line": 1510 + }, + { + "left_line": 1518, + "right_line": 1511 + }, + { + "left_line": 1519, + "right_line": 1512 + }, + { + "left_line": 1520, + "right_line": 1513 + }, + { + "left_line": 1521, + "right_line": 1514 + }, + { + "left_line": 1522, + "right_line": 1515 + }, + { + "left_line": 1523, + "right_line": 1516 + }, + { + "left_line": 1524, + "right_line": 1517 + }, + { + "left_line": 1525, + "right_line": 1518 + }, + { + "left_line": 1526, + "right_line": 1519 + }, + { + "left_line": 1527, + "right_line": 1520 + }, + { + "left_line": 1528, + "right_line": 1521 + }, + { + "left_line": 1529, + "right_line": 1522 + }, + { + "left_line": 1530, + "right_line": 1523 + }, + { + "left_line": 1531, + "right_line": 1524 + }, + { + "left_line": 1532, + "right_line": 1525 + }, + { + "left_line": 1533, + "right_line": 1526 + }, + { + "left_line": 1534, + "right_line": 1527 + }, + { + "left_line": 1535, + "right_line": 1528 + }, + { + "left_line": 1536, + "right_line": 1529 + }, + { + "left_line": 1537, + "right_line": 1530 + }, + { + "left_line": 1538, + "right_line": 1531 + }, + { + "left_line": 1539, + "right_line": 1532 + }, + { + "left_line": 1540, + "right_line": 1533 + }, + { + "left_line": 1541, + "right_line": 1534 + }, + { + "left_line": 1542, + "right_line": 1535 + }, + { + "left_line": 1543, + "right_line": 1536 + }, + { + "left_line": 1544, + "right_line": 1537 + }, + { + "left_line": 1545, + "right_line": 1538 + }, + { + "left_line": 1546, + "right_line": 1539 + }, + { + "left_line": 1547, + "right_line": 1540 + }, + { + "left_line": 1548, + "right_line": 1541 + }, + { + "left_line": 1549, + "right_line": 1542 + }, + { + "left_line": 1550, + "right_line": 1543 + }, + { + "left_line": 1551, + "right_line": 1544 + }, + { + "left_line": 1552, + "right_line": 1545 + }, + { + "left_line": 1553, + "right_line": 1546 + }, + { + "left_line": 1554, + "right_line": 1547 + }, + { + "left_line": 1555, + "right_line": 1548 + }, + { + "left_line": 1556, + "right_line": 1549 + }, + { + "left_line": 1557, + "right_line": 1550 + }, + { + "left_line": 1558, + "right_line": 1551 + }, + { + "left_line": 1559, + "right_line": 1552 + }, + { + "left_line": 1560, + "right_line": 1553 + }, + { + "left_line": 1561, + "right_line": 1554 + }, + { + "left_line": 1562, + "right_line": 1555 + }, + { + "left_line": 1563, + "right_line": 1556 + }, + { + "left_line": 1564, + "right_line": 1557 + }, + { + "left_line": 1565, + "right_line": 1558 + }, + { + "left_line": 1566, + "right_line": 1559 + }, + { + "left_line": 1567, + "right_line": 1560 + }, + { + "left_line": 1568, + "right_line": 1561 + }, + { + "left_line": 1569, + "right_line": 1562 + }, + { + "left_line": 1570, + "right_line": 1563 + }, + { + "left_line": 1571, + "right_line": 1564 + }, + { + "left_line": 1572, + "right_line": 1565 + }, + { + "left_line": 1573, + "right_line": 1566 + }, + { + "left_line": 1574, + "right_line": 1567 + }, + { + "left_line": 1575, + "right_line": 1568 + }, + { + "left_line": 1576, + "right_line": 1569 + }, + { + "left_line": 1577, + "right_line": 1570 + }, + { + "left_line": 1578, + "right_line": 1571 + }, + { + "left_line": 1579, + "right_line": 1572 + }, + { + "left_line": 1580, + "right_line": 1573 + }, + { + "left_line": 1581, + "right_line": 1574 + }, + { + "left_line": 1582, + "right_line": 1575 + }, + { + "left_line": 1583, + "right_line": 1576 + }, + { + "left_line": 1584, + "right_line": 1577 + }, + { + "left_line": 1585, + "right_line": 1578 + }, + { + "left_line": 1586, + "right_line": 1579 + }, + { + "left_line": 1587, + "right_line": 1580 + }, + { + "left_line": 1588, + "right_line": 1581 + }, + { + "left_line": 1589, + "right_line": 1582 + }, + { + "left_line": 1590, + "right_line": 1583 + }, + { + "left_line": 1591, + "right_line": 1584 + }, + { + "left_line": 1592, + "right_line": 1585 + }, + { + "left_line": 1593, + "right_line": 1586 + }, + { + "left_line": 1594, + "right_line": 1587 + }, + { + "left_line": 1595, + "right_line": 1588 + }, + { + "left_line": 1596, + "right_line": 1589 + }, + { + "left_line": 1597, + "right_line": 1590 + }, + { + "left_line": 1598, + "right_line": 1591 + }, + { + "left_line": 1599, + "right_line": 1592 + }, + { + "left_line": 1600, + "right_line": 1593 + }, + { + "left_line": 1601, + "right_line": 1594 + }, + { + "left_line": 1602, + "right_line": 1595 + }, + { + "left_line": 1603, + "right_line": 1596 + }, + { + "left_line": 1604, + "right_line": 1597 + }, + { + "left_line": 1605, + "right_line": 1598 + }, + { + "left_line": 1606, + "right_line": 1599 + }, + { + "left_line": 1607, + "right_line": 1600 + }, + { + "left_line": 1608, + "right_line": 1601 + }, + { + "left_line": 1609, + "right_line": 1602 + }, + { + "left_line": 1610, + "right_line": 1603 + }, + { + "left_line": 1611, + "right_line": 1604 + }, + { + "left_line": 1612, + "right_line": 1605 + }, + { + "left_line": 1613, + "right_line": 1606 + }, + { + "left_line": 1614, + "right_line": 1607 + }, + { + "left_line": 1615, + "right_line": 1608 + }, + { + "left_line": 1616, + "right_line": 1609 + }, + { + "left_line": 1617, + "right_line": 1610 + }, + { + "left_line": 1618, + "right_line": 1611 + }, + { + "left_line": 1619, + "right_line": 1612 + }, + { + "left_line": 1620, + "right_line": 1613 + }, + { + "left_line": 1621, + "right_line": 1614 + }, + { + "left_line": 1622, + "right_line": 1615 + }, + { + "left_line": 1623, + "right_line": 1616 + }, + { + "left_line": 1624, + "right_line": 1617 + }, + { + "left_line": 1625, + "right_line": 1618 + }, + { + "left_line": 1626, + "right_line": 1619 + }, + { + "left_line": 1627, + "right_line": 1620 + }, + { + "left_line": 1628, + "right_line": 1621 + }, + { + "left_line": 1629, + "right_line": 1622 + }, + { + "left_line": 1630, + "right_line": 1623 + }, + { + "left_line": 1631, + "right_line": 1624 + }, + { + "left_line": 1632, + "right_line": 1625 + }, + { + "left_line": 1633, + "right_line": 1626 + }, + { + "left_line": 1634, + "right_line": 1627 + }, + { + "left_line": 1635, + "right_line": 1628 + }, + { + "left_line": 1636, + "right_line": 1629 + }, + { + "left_line": 1637, + "right_line": 1630 + }, + { + "left_line": 1638, + "right_line": 1631 + }, + { + "left_line": 1639, + "right_line": 1632 + }, + { + "left_line": 1640, + "right_line": 1633 + }, + { + "left_line": 1641, + "right_line": 1634 + }, + { + "left_line": 1642, + "right_line": 1635 + }, + { + "left_line": 1643, + "right_line": 1636 + }, + { + "left_line": 1644, + "right_line": 1637 + }, + { + "left_line": 1645, + "right_line": 1638 + }, + { + "left_line": 1646, + "right_line": 1639 + }, + { + "left_line": 1647, + "right_line": 1640 + }, + { + "left_line": 1648, + "right_line": 1641 + }, + { + "left_line": 1649, + "right_line": 1642 + }, + { + "left_line": 1650, + "right_line": 1643 + }, + { + "left_line": 1651, + "right_line": 1644 + }, + { + "left_line": 1652, + "right_line": 1645 + }, + { + "left_line": 1653, + "right_line": 1646 + }, + { + "left_line": 1654, + "right_line": 1647 + }, + { + "left_line": 1655, + "right_line": 1648 + }, + { + "left_line": 1656, + "right_line": 1649 + }, + { + "left_line": 1657, + "right_line": 1650 + }, + { + "left_line": 1658, + "right_line": 1651 + }, + { + "left_line": 1659, + "right_line": 1652 + }, + { + "left_line": 1660, + "right_line": 1653 + }, + { + "left_line": 1661, + "right_line": 1654 + }, + { + "left_line": 1662, + "right_line": 1655 + }, + { + "left_line": 1663, + "right_line": 1656 + }, + { + "left_line": 1664, + "right_line": 1657 + }, + { + "left_line": 1665, + "right_line": 1658 + }, + { + "left_line": 1666, + "right_line": 1659 + }, + { + "left_line": 1667, + "right_line": 1660 + }, + { + "left_line": 1668, + "right_line": 1661 + }, + { + "left_line": 1669, + "right_line": 1662 + }, + { + "left_line": 1670, + "right_line": 1663 + }, + { + "left_line": 1671, + "right_line": 1664 + }, + { + "left_line": 1672, + "right_line": 1665 + }, + { + "left_line": 1673, + "right_line": 1666 + }, + { + "left_line": 1674, + "right_line": 1667 + }, + { + "left_line": 1675, + "right_line": 1668 + }, + { + "left_line": 1676, + "right_line": 1669 + }, + { + "left_line": 1677, + "right_line": 1670 + }, + { + "left_line": 1678, + "right_line": 1671 + }, + { + "left_line": 1679, + "right_line": 1672 + }, + { + "left_line": 1680, + "right_line": 1673 + }, + { + "left_line": 1681, + "right_line": 1674 + }, + { + "left_line": 1682, + "right_line": 1675 + }, + { + "left_line": 1683, + "right_line": 1676 + }, + { + "left_line": 1684, + "right_line": 1677 + }, + { + "left_line": 1685, + "right_line": 1678 + }, + { + "left_line": 1686, + "right_line": 1679 + }, + { + "left_line": 1687, + "right_line": 1680 + }, + { + "left_line": 1688, + "right_line": 1681 + }, + { + "left_line": 1689, + "right_line": 1682 + }, + { + "left_line": 1690, + "right_line": 1683 + }, + { + "left_line": 1691, + "right_line": 1684 + }, + { + "left_line": 1692, + "right_line": 1685 + }, + { + "left_line": 1693, + "right_line": 1686 + }, + { + "left_line": 1694, + "right_line": 1687 + }, + { + "left_line": 1695, + "right_line": 1688 + }, + { + "left_line": 1696, + "right_line": 1689 + }, + { + "left_line": 1697, + "right_line": 1690 + }, + { + "left_line": 1698, + "right_line": 1691 + }, + { + "left_line": 1699, + "right_line": 1692 + }, + { + "left_line": 1700, + "right_line": 1693 + }, + { + "left_line": 1701, + "right_line": 1694 + }, + { + "left_line": 1702, + "right_line": 1695 + }, + { + "left_line": 1703, + "right_line": 1696 + }, + { + "left_line": 1704, + "right_line": 1697 + }, + { + "left_line": 1705, + "right_line": 1698 + }, + { + "left_line": 1706, + "right_line": 1699 + }, + { + "left_line": 1707, + "right_line": 1700 + }, + { + "left_line": 1708, + "right_line": 1701 + }, + { + "left_line": 1709, + "right_line": 1702 + }, + { + "left_line": 1710, + "right_line": 1703 + }, + { + "left_line": 1711, + "right_line": 1704 + }, + { + "left_line": 1712, + "right_line": 1705 + }, + { + "left_line": 1713, + "right_line": 1706 + }, + { + "left_line": 1714, + "right_line": 1707 + }, + { + "left_line": 1715, + "right_line": 1708 + }, + { + "left_line": 1716, + "right_line": 1709 + }, + { + "left_line": 1717, + "right_line": 1710 + }, + { + "left_line": 1718, + "right_line": 1711 + }, + { + "left_line": 1719, + "right_line": 1712 + }, + { + "left_line": 1720, + "right_line": 1713 + }, + { + "left_line": 1721, + "right_line": 1714 + }, + { + "left_line": 1722, + "right_line": 1715 + }, + { + "left_line": 1723, + "right_line": 1716 + }, + { + "left_line": 1724, + "right_line": 1717 + }, + { + "left_line": 1725, + "right_line": 1718 + }, + { + "left_line": 1726, + "right_line": 1719 + }, + { + "left_line": 1727, + "right_line": 1720 + }, + { + "left_line": 1728, + "right_line": 1721 + }, + { + "left_line": 1729, + "right_line": 1722 + }, + { + "left_line": 1730, + "right_line": 1723 + }, + { + "left_line": 1731, + "right_line": 1724 + }, + { + "left_line": 1732, + "right_line": 1725 + }, + { + "left_line": 1733, + "right_line": 1726 + }, + { + "left_line": 1734, + "right_line": 1727 + }, + { + "left_line": 1735, + "right_line": 1728 + }, + { + "left_line": 1736, + "right_line": 1729 + }, + { + "left_line": 1737, + "right_line": 1730 + }, + { + "left_line": 1738, + "right_line": 1731 + }, + { + "left_line": 1739, + "right_line": 1732 + }, + { + "left_line": 1740, + "right_line": 1733 + }, + { + "left_line": 1741, + "right_line": 1734 + }, + { + "left_line": 1742, + "right_line": 1735 + }, + { + "left_line": 1743, + "right_line": 1736 + }, + { + "left_line": 1744, + "right_line": 1737 + }, + { + "left_line": 1745, + "right_line": 1738 + }, + { + "left_line": 1746, + "right_line": 1739 + }, + { + "left_line": 1747, + "right_line": 1740 + }, + { + "left_line": 1748, + "right_line": 1741 + }, + { + "left_line": 1749, + "right_line": 1742 + }, + { + "left_line": 1750, + "right_line": 1743 + }, + { + "left_line": 1751, + "right_line": 1744 + }, + { + "left_line": 1752, + "right_line": 1745 + }, + { + "left_line": 1753, + "right_line": 1746 + }, + { + "left_line": 1754, + "right_line": 1747 + }, + { + "left_line": 1755, + "right_line": 1748 + }, + { + "left_line": 1756, + "right_line": 1749 + }, + { + "left_line": 1757, + "right_line": 1750 + }, + { + "left_line": 1758, + "right_line": 1751 + }, + { + "left_line": 1759, + "right_line": 1752 + }, + { + "left_line": 1760, + "right_line": 1753 + }, + { + "left_line": 1761, + "right_line": 1754 + }, + { + "left_line": 1762, + "right_line": 1755 + }, + { + "left_line": 1763, + "right_line": 1756 + }, + { + "left_line": 1764, + "right_line": 1757 + }, + { + "left_line": 1765, + "right_line": 1758 + }, + { + "left_line": 1766, + "right_line": 1759 + }, + { + "left_line": 1767, + "right_line": 1760 + }, + { + "left_line": 1768, + "right_line": 1761 + }, + { + "left_line": 1769, + "right_line": 1762 + }, + { + "left_line": 1770, + "right_line": 1763 + }, + { + "left_line": 1771, + "right_line": 1764 + }, + { + "left_line": 1772, + "right_line": 1765 + }, + { + "left_line": 1773, + "right_line": 1766 + }, + { + "left_line": 1774, + "right_line": 1767 + }, + { + "left_line": 1775, + "right_line": 1768 + }, + { + "left_line": 1776, + "right_line": 1769 + }, + { + "left_line": 1777, + "right_line": 1770 + }, + { + "left_line": 1778, + "right_line": 1771 + }, + { + "left_line": 1779, + "right_line": 1772 + }, + { + "left_line": 1780, + "right_line": 1773 + }, + { + "left_line": 1781, + "right_line": 1774 + }, + { + "left_line": 1782, + "right_line": 1775 + }, + { + "left_line": 1783, + "right_line": 1776 + }, + { + "left_line": 1784, + "right_line": 1777 + }, + { + "left_line": 1785, + "right_line": 1778 + }, + { + "left_line": 1786, + "right_line": 1779 + }, + { + "left_line": 1787, + "right_line": 1780 + }, + { + "left_line": 1788, + "right_line": 1781 + }, + { + "left_line": 1789, + "right_line": 1782 + }, + { + "left_line": 1790, + "right_line": 1783 + }, + { + "left_line": 1791, + "right_line": 1784 + }, + { + "left_line": 1792, + "right_line": 1785 + }, + { + "left_line": 1793, + "right_line": 1786 + }, + { + "left_line": 1794, + "right_line": 1787 + }, + { + "left_line": 1795, + "right_line": 1788 + }, + { + "left_line": 1796, + "right_line": 1789 + }, + { + "left_line": 1797, + "right_line": 1790 + }, + { + "left_line": 1798, + "right_line": 1791 + }, + { + "left_line": 1799, + "right_line": 1792 + }, + { + "left_line": 1800, + "right_line": 1793 + }, + { + "left_line": 1801, + "right_line": 1794 + }, + { + "left_line": 1802, + "right_line": 1795 + }, + { + "left_line": 1803, + "right_line": 1796 + }, + { + "left_line": 1804, + "right_line": 1797 + }, + { + "left_line": 1805, + "right_line": 1798 + }, + { + "left_line": 1806, + "right_line": 1799 + }, + { + "left_line": 1807, + "right_line": 1800 + }, + { + "left_line": 1808, + "right_line": 1801 + }, + { + "left_line": 1809, + "right_line": 1802 + }, + { + "left_line": 1810, + "right_line": 1803 + }, + { + "left_line": 1811, + "right_line": 1804 + }, + { + "left_line": 1812, + "right_line": 1805 + }, + { + "left_line": 1813, + "right_line": 1806 + }, + { + "left_line": 1814, + "right_line": 1807 + }, + { + "left_line": 1815, + "right_line": 1808 + }, + { + "left_line": 1816, + "right_line": 1809 + }, + { + "left_line": 1817, + "right_line": 1810 + }, + { + "left_line": 1818, + "right_line": 1811 + }, + { + "left_line": 1819, + "right_line": 1812 + }, + { + "left_line": 1820, + "right_line": 1813 + }, + { + "left_line": 1821, + "right_line": 1814 + }, + { + "left_line": 1822, + "right_line": 1815 + }, + { + "left_line": 1823, + "right_line": 1816 + }, + { + "left_line": 1824, + "right_line": 1817 + }, + { + "left_line": 1825, + "right_line": 1818 + }, + { + "left_line": 1826, + "right_line": 1819 + }, + { + "left_line": 1827, + "right_line": 1820 + }, + { + "left_line": 1828, + "right_line": 1821 + }, + { + "left_line": 1829, + "right_line": 1822 + }, + { + "left_line": 1830, + "right_line": 1823 + }, + { + "left_line": 1831, + "right_line": 1824 + }, + { + "left_line": 1832, + "right_line": 1825 + }, + { + "left_line": 1833, + "right_line": 1826 + }, + { + "left_line": 1834, + "right_line": 1827 + }, + { + "left_line": 1835, + "right_line": 1828 + }, + { + "left_line": 1836, + "right_line": 1829 + }, + { + "left_line": 1837, + "right_line": 1830 + }, + { + "left_line": 1838, + "right_line": 1831 + }, + { + "left_line": 1839, + "right_line": 1832 + }, + { + "left_line": 1840, + "right_line": 1833 + }, + { + "left_line": 1841, + "right_line": 1834 + }, + { + "left_line": 1842, + "right_line": 1835 + }, + { + "left_line": 1843, + "right_line": 1836 + }, + { + "left_line": 1844, + "right_line": 1837 + }, + { + "left_line": 1845, + "right_line": 1838 + }, + { + "left_line": 1846, + "right_line": 1839 + }, + { + "left_line": 1847, + "right_line": 1840 + }, + { + "left_line": 1848, + "right_line": 1841 + }, + { + "left_line": 1849, + "right_line": 1842 + }, + { + "left_line": 1850, + "right_line": 1843 + }, + { + "left_line": 1851, + "right_line": 1844 + }, + { + "left_line": 1852, + "right_line": 1845 + }, + { + "left_line": 1853, + "right_line": 1846 + }, + { + "left_line": 1854, + "right_line": 1847 + }, + { + "left_line": 1855, + "right_line": 1848 + }, + { + "left_line": 1856, + "right_line": 1849 + }, + { + "left_line": 1857, + "right_line": 1850 + }, + { + "left_line": 1858, + "right_line": 1851 + }, + { + "left_line": 1859, + "right_line": 1852 + }, + { + "left_line": 1860, + "right_line": 1853 + }, + { + "left_line": 1861, + "right_line": 1854 + }, + { + "left_line": 1862, + "right_line": 1855 + }, + { + "left_line": 1863, + "right_line": 1856 + }, + { + "left_line": 1864, + "right_line": 1857 + }, + { + "left_line": 1865, + "right_line": 1858 + }, + { + "left_line": 1866, + "right_line": 1859 + }, + { + "left_line": 1867, + "right_line": 1860 + }, + { + "left_line": 1868, + "right_line": 1861 + }, + { + "left_line": 1869, + "right_line": 1862 + }, + { + "left_line": 1870, + "right_line": 1863 + }, + { + "left_line": 1871, + "right_line": 1864 + }, + { + "left_line": 1872, + "right_line": 1865 + }, + { + "left_line": 1873, + "right_line": 1866 + }, + { + "left_line": 1874, + "right_line": 1867 + }, + { + "left_line": 1875, + "right_line": 1868 + }, + { + "left_line": 1876, + "right_line": 1869 + }, + { + "left_line": 1877, + "right_line": 1870 + }, + { + "left_line": 1878, + "right_line": 1871 + }, + { + "left_line": 1879, + "right_line": 1872 + }, + { + "left_line": 1880, + "right_line": 1873 + }, + { + "left_line": 1881, + "right_line": 1874 + }, + { + "left_line": 1882, + "right_line": 1875 + }, + { + "left_line": 1883, + "right_line": 1876 + }, + { + "left_line": 1884, + "right_line": 1877 + }, + { + "left_line": 1885, + "right_line": 1878 + }, + { + "left_line": 1886, + "right_line": 1879 + }, + { + "left_line": 1887, + "right_line": 1880 + }, + { + "left_line": 1888, + "right_line": 1881 + }, + { + "left_line": 1889, + "right_line": 1882 + }, + { + "left_line": 1890, + "right_line": 1883 + }, + { + "left_line": 1891, + "right_line": 1884 + }, + { + "left_line": 1892, + "right_line": 1885 + }, + { + "left_line": 1893, + "right_line": 1886 + }, + { + "left_line": 1894, + "right_line": 1887 + }, + { + "left_line": 1895, + "right_line": 1888 + }, + { + "left_line": 1896, + "right_line": 1889 + }, + { + "left_line": 1897, + "right_line": 1890 + }, + { + "left_line": 1898, + "right_line": 1891 + }, + { + "left_line": 1899, + "right_line": 1892 + }, + { + "left_line": 1900, + "right_line": 1893 + }, + { + "left_line": 1901, + "right_line": 1894 + }, + { + "left_line": 1902, + "right_line": 1895 + }, + { + "left_line": 1903, + "right_line": 1896 + }, + { + "left_line": 1904, + "right_line": 1897 + }, + { + "left_line": 1905, + "right_line": 1898 + }, + { + "left_line": 1906, + "right_line": 1899 + }, + { + "left_line": 1907, + "right_line": 1900 + }, + { + "left_line": 1908, + "right_line": 1901 + }, + { + "left_line": 1909, + "right_line": 1902 + }, + { + "left_line": 1910, + "right_line": 1903 + }, + { + "left_line": 1911, + "right_line": 1904 + }, + { + "left_line": 1912, + "right_line": 1905 + }, + { + "left_line": 1913, + "right_line": 1906 + }, + { + "left_line": 1914, + "right_line": 1907 + }, + { + "left_line": 1915, + "right_line": 1908 + }, + { + "left_line": 1916, + "right_line": 1909 + }, + { + "left_line": 1917, + "right_line": 1910 + }, + { + "left_line": 1918, + "right_line": 1911 + }, + { + "left_line": 1919, + "right_line": 1912 + }, + { + "left_line": 1920, + "right_line": 1913 + }, + { + "left_line": 1921, + "right_line": 1914 + }, + { + "left_line": 1922, + "right_line": 1915 + }, + { + "left_line": 1923, + "right_line": 1916 + }, + { + "left_line": 1924, + "right_line": 1917 + }, + { + "left_line": 1925, + "right_line": 1918 + }, + { + "left_line": 1926, + "right_line": 1919 + }, + { + "left_line": 1927, + "right_line": 1920 + }, + { + "left_line": 1928, + "right_line": 1921 + }, + { + "left_line": 1929, + "right_line": 1922 + }, + { + "left_line": 1930, + "right_line": 1923 + }, + { + "left_line": 1931, + "right_line": 1924 + }, + { + "left_line": 1932, + "right_line": 1925 + }, + { + "left_line": 1933, + "right_line": 1926 + }, + { + "left_line": 1934, + "right_line": 1927 + }, + { + "left_line": 1935, + "right_line": 1928 + }, + { + "left_line": 1936, + "right_line": 1929 + }, + { + "left_line": 1937, + "right_line": 1930 + }, + { + "left_line": 1938, + "right_line": 1931 + }, + { + "left_line": 1939, + "right_line": 1932 + }, + { + "left_line": 1940, + "right_line": 1933 + }, + { + "left_line": 1941, + "right_line": 1934 + }, + { + "left_line": 1942, + "right_line": 1935 + }, + { + "left_line": 1943, + "right_line": 1936 + }, + { + "left_line": 1944, + "right_line": 1937 + }, + { + "left_line": 1945, + "right_line": 1938 + }, + { + "left_line": 1946, + "right_line": 1939 + }, + { + "left_line": 1947, + "right_line": 1940 + }, + { + "left_line": 1948, + "right_line": 1941 + }, + { + "left_line": 1949, + "right_line": 1942 + }, + { + "left_line": 1950, + "right_line": 1943 + }, + { + "left_line": 1951, + "right_line": 1944 + }, + { + "left_line": 1952, + "right_line": 1945 + }, + { + "left_line": 1953, + "right_line": 1946 + }, + { + "left_line": 1954, + "right_line": 1947 + }, + { + "left_line": 1955, + "right_line": 1948 + }, + { + "left_line": 1956, + "right_line": 1949 + }, + { + "left_line": 1957, + "right_line": 1950 + }, + { + "left_line": 1958, + "right_line": 1951 + }, + { + "left_line": 1959, + "right_line": 1952 + }, + { + "left_line": 1960, + "right_line": 1953 + }, + { + "left_line": 1961, + "right_line": 1954 + }, + { + "left_line": 1962, + "right_line": 1955 + }, + { + "left_line": 1963, + "right_line": 1956 + }, + { + "left_line": 1964, + "right_line": 1957 + }, + { + "left_line": 1965, + "right_line": 1958 + }, + { + "left_line": 1966, + "right_line": 1959 + }, + { + "left_line": 1967, + "right_line": 1960 + }, + { + "left_line": 1968, + "right_line": 1961 + }, + { + "left_line": 1969, + "right_line": 1962 + }, + { + "left_line": 1970, + "right_line": 1963 + }, + { + "left_line": 1971, + "right_line": 1964 + }, + { + "left_line": 1972, + "right_line": 1965 + }, + { + "left_line": 1973, + "right_line": 1966 + }, + { + "left_line": 1974, + "right_line": 1967 + }, + { + "left_line": 1975, + "right_line": 1968 + }, + { + "left_line": 1976, + "right_line": 1969 + }, + { + "left_line": 1977, + "right_line": 1970 + }, + { + "left_line": 1978, + "right_line": 1971 + }, + { + "left_line": 1979, + "right_line": 1972 + }, + { + "left_line": 1980, + "right_line": 1973 + }, + { + "left_line": 1981, + "right_line": 1974 + }, + { + "left_line": 1982, + "right_line": 1975 + }, + { + "left_line": 1983, + "right_line": 1976 + }, + { + "left_line": 1984, + "right_line": 1977 + }, + { + "left_line": 1985, + "right_line": 1978 + }, + { + "left_line": 1986, + "right_line": 1979 + }, + { + "left_line": 1987, + "right_line": 1980 + }, + { + "left_line": 1988, + "right_line": 1981 + }, + { + "left_line": 1989, + "right_line": 1982 + }, + { + "left_line": 1990, + "right_line": 1983 + }, + { + "left_line": 1991, + "right_line": 1984 + }, + { + "left_line": 1992, + "right_line": 1985 + }, + { + "left_line": 1993, + "right_line": 1986 + }, + { + "left_line": 1994, + "right_line": 1987 + }, + { + "left_line": 1995, + "right_line": 1988 + }, + { + "left_line": 1996, + "right_line": 1989 + }, + { + "left_line": 1997, + "right_line": 1990 + }, + { + "left_line": 1998, + "right_line": 1991 + }, + { + "left_line": 1999, + "right_line": 1992 + }, + { + "left_line": 2000, + "right_line": 1993 + }, + { + "left_line": 2001, + "right_line": 1994 + }, + { + "left_line": 2002, + "right_line": 1995 + }, + { + "left_line": 2003, + "right_line": 1996 + }, + { + "left_line": 2004, + "right_line": 1997 + }, + { + "left_line": 2005, + "right_line": 1998 + }, + { + "left_line": 2006, + "right_line": 1999 + }, + { + "left_line": 2007, + "right_line": 2000 + }, + { + "left_line": 2008, + "right_line": 2001 + }, + { + "left_line": 2009, + "right_line": 2002 + }, + { + "left_line": 2010, + "right_line": 2003 + }, + { + "left_line": 2011, + "right_line": 2004 + }, + { + "left_line": 2012, + "right_line": 2005 + }, + { + "left_line": 2013, + "right_line": 2006 + }, + { + "left_line": 2014, + "right_line": 2007 + }, + { + "left_line": 2015, + "right_line": 2008 + }, + { + "left_line": 2016, + "right_line": 2009 + }, + { + "left_line": 2017, + "right_line": 2010 + }, + { + "left_line": 2018, + "right_line": 2011 + }, + { + "left_line": 2019, + "right_line": 2012 + }, + { + "left_line": 2020, + "right_line": 2013 + }, + { + "left_line": 2021, + "right_line": 2014 + }, + { + "left_line": 2022, + "right_line": 2015 + }, + { + "left_line": 2023, + "right_line": 2016 + }, + { + "left_line": 2024, + "right_line": 2017 + }, + { + "left_line": 2025, + "right_line": 2018 + }, + { + "left_line": 2026, + "right_line": 2019 + }, + { + "left_line": 2027, + "right_line": 2020 + }, + { + "left_line": 2028, + "right_line": 2021 + }, + { + "left_line": 2029, + "right_line": 2022 + }, + { + "left_line": 2030, + "right_line": 2023 + }, + { + "left_line": 2031, + "right_line": 2024 + }, + { + "left_line": 2032, + "right_line": 2025 + }, + { + "left_line": 2033, + "right_line": 2026 + }, + { + "left_line": 2034, + "right_line": 2027 + }, + { + "left_line": 2035, + "right_line": 2028 + }, + { + "left_line": 2036, + "right_line": 2029 + }, + { + "left_line": 2037, + "right_line": 2030 + }, + { + "left_line": 2038, + "right_line": 2031 + }, + { + "left_line": 2039, + "right_line": 2032 + }, + { + "left_line": 2040, + "right_line": 2033 + }, + { + "left_line": 2041, + "right_line": 2034 + }, + { + "left_line": 2042, + "right_line": 2035 + }, + { + "left_line": 2043, + "right_line": 2036 + }, + { + "left_line": 2044, + "right_line": 2037 + }, + { + "left_line": 2045, + "right_line": 2038 + }, + { + "left_line": 2046, + "right_line": 2039 + }, + { + "left_line": 2047, + "right_line": 2040 + }, + { + "left_line": 2048, + "right_line": 2041 + }, + { + "left_line": 2049, + "right_line": 2042 + }, + { + "left_line": 2050, + "right_line": 2043 + }, + { + "left_line": 2051, + "right_line": 2044 + }, + { + "left_line": 2052, + "right_line": 2045 + }, + { + "left_line": 2053, + "right_line": 2046 + }, + { + "left_line": 2054, + "right_line": 2047 + }, + { + "left_line": 2055, + "right_line": 2048 + }, + { + "left_line": 2056, + "right_line": 2049 + }, + { + "left_line": 2057, + "right_line": 2050 + }, + { + "left_line": 2058, + "right_line": 2051 + }, + { + "left_line": 2059, + "right_line": 2052 + }, + { + "left_line": 2060, + "right_line": 2053 + }, + { + "left_line": 2061, + "right_line": 2054 + }, + { + "left_line": 2062, + "right_line": 2055 + }, + { + "left_line": 2063, + "right_line": 2056 + }, + { + "left_line": 2064, + "right_line": 2057 + }, + { + "left_line": 2065, + "right_line": 2058 + }, + { + "left_line": 2066, + "right_line": 2059 + }, + { + "left_line": 2067, + "right_line": 2060 + }, + { + "left_line": 2068, + "right_line": 2061 + }, + { + "left_line": 2069, + "right_line": 2062 + }, + { + "left_line": 2070, + "right_line": 2063 + }, + { + "left_line": 2071, + "right_line": 2064 + }, + { + "left_line": 2072, + "right_line": 2065 + }, + { + "left_line": 2073, + "right_line": 2066 + }, + { + "left_line": 2074, + "right_line": 2067 + }, + { + "left_line": 2075, + "right_line": 2068 + }, + { + "left_line": 2076, + "right_line": 2069 + }, + { + "left_line": 2077, + "right_line": 2070 + }, + { + "left_line": 2078, + "right_line": 2071 + }, + { + "left_line": 2079, + "right_line": 2072 + }, + { + "left_line": 2080, + "right_line": 2073 + }, + { + "left_line": 2081, + "right_line": 2074 + }, + { + "left_line": 2082, + "right_line": 2075 + }, + { + "left_line": 2083, + "right_line": 2076 + }, + { + "left_line": 2084, + "right_line": 2077 + }, + { + "left_line": 2085, + "right_line": 2078 + }, + { + "left_line": 2086, + "right_line": 2079 + }, + { + "left_line": 2087, + "right_line": 2080 + }, + { + "left_line": 2088, + "right_line": 2081 + }, + { + "left_line": 2089, + "right_line": 2082 + }, + { + "left_line": 2090, + "right_line": 2083 + }, + { + "left_line": 2091, + "right_line": 2084 + }, + { + "left_line": 2092, + "right_line": 2085 + }, + { + "left_line": 2093, + "right_line": 2086 + }, + { + "left_line": 2094, + "right_line": 2087 + }, + { + "left_line": 2095, + "right_line": 2088 + }, + { + "left_line": 2096, + "right_line": 2089 + }, + { + "left_line": 2097, + "right_line": 2090 + }, + { + "left_line": 2098, + "right_line": 2091 + }, + { + "left_line": 2099, + "right_line": 2092 + }, + { + "left_line": 2100, + "right_line": 2093 + }, + { + "left_line": 2101, + "right_line": 2094 + }, + { + "left_line": 2102, + "right_line": 2095 + }, + { + "left_line": 2103, + "right_line": 2096 + }, + { + "left_line": 2104, + "right_line": 2097 + }, + { + "left_line": 2105, + "right_line": 2098 + }, + { + "left_line": 2106, + "right_line": 2099 + }, + { + "left_line": 2107, + "right_line": 2100 + }, + { + "left_line": 2108, + "right_line": 2101 + }, + { + "left_line": 2109, + "right_line": 2102 + }, + { + "left_line": 2110, + "right_line": 2103 + }, + { + "left_line": 2111, + "right_line": 2104 + }, + { + "left_line": 2112, + "right_line": 2105 + }, + { + "left_line": 2113, + "right_line": 2106 + }, + { + "left_line": 2114, + "right_line": 2107 + }, + { + "left_line": 2115, + "right_line": 2108 + }, + { + "left_line": 2116, + "right_line": 2109 + }, + { + "left_line": 2117, + "right_line": 2110 + }, + { + "left_line": 2118, + "right_line": 2111 + }, + { + "left_line": 2119, + "right_line": 2112 + }, + { + "left_line": 2120, + "right_line": 2113 + }, + { + "left_line": 2121, + "right_line": 2114 + }, + { + "left_line": 2122, + "right_line": 2115 + }, + { + "left_line": 2123, + "right_line": 2116 + }, + { + "left_line": 2124, + "right_line": 2117 + }, + { + "left_line": 2125, + "right_line": 2118 + }, + { + "left_line": 2126, + "right_line": 2119 + }, + { + "left_line": 2127, + "right_line": 2120 + }, + { + "left_line": 2128, + "right_line": 2121 + }, + { + "left_line": 2129, + "right_line": 2122 + }, + { + "left_line": 2130, + "right_line": 2123 + }, + { + "left_line": 2131, + "right_line": 2124 + }, + { + "left_line": 2132, + "right_line": 2125 + }, + { + "left_line": 2133, + "right_line": 2126 + }, + { + "left_line": 2134, + "right_line": 2127 + }, + { + "left_line": 2135, + "right_line": 2128 + }, + { + "left_line": 2136, + "right_line": 2129 + }, + { + "left_line": 2137, + "right_line": 2130 + }, + { + "left_line": 2138, + "right_line": 2131 + }, + { + "left_line": 2139, + "right_line": 2132 + }, + { + "left_line": 2140, + "right_line": 2133 + }, + { + "left_line": 2141, + "right_line": 2134 + }, + { + "left_line": 2142, + "right_line": 2135 + }, + { + "left_line": 2143, + "right_line": 2136 + }, + { + "left_line": 2144, + "right_line": 2137 + }, + { + "left_line": 2145, + "right_line": 2138 + }, + { + "left_line": 2146, + "right_line": 2139 + }, + { + "left_line": 2147, + "right_line": 2140 + }, + { + "left_line": 2148, + "right_line": 2141 + }, + { + "left_line": 2149, + "right_line": 2142 + }, + { + "left_line": 2150, + "right_line": 2143 + }, + { + "left_line": 2151, + "right_line": 2144 + }, + { + "left_line": 2152, + "right_line": 2145 + }, + { + "left_line": 2153, + "right_line": 2146 + }, + { + "left_line": 2154, + "right_line": 2147 + }, + { + "left_line": 2155, + "right_line": 2148 + }, + { + "left_line": 2156, + "right_line": 2149 + }, + { + "left_line": 2157, + "right_line": 2150 + }, + { + "left_line": 2158, + "right_line": 2151 + }, + { + "left_line": 2159, + "right_line": 2152 + }, + { + "left_line": 2160, + "right_line": 2153 + }, + { + "left_line": 2161, + "right_line": 2154 + }, + { + "left_line": 2162, + "right_line": 2155 + }, + { + "left_line": 2163, + "right_line": 2156 + }, + { + "left_line": 2164, + "right_line": 2157 + }, + { + "left_line": 2165, + "right_line": 2158 + }, + { + "left_line": 2166, + "right_line": 2159 + }, + { + "left_line": 2167, + "right_line": 2160 + }, + { + "left_line": 2168, + "right_line": 2161 + }, + { + "left_line": 2169, + "right_line": 2162 + }, + { + "left_line": 2170, + "right_line": 2163 + }, + { + "left_line": 2171, + "right_line": 2164 + }, + { + "left_line": 2172, + "right_line": 2165 + }, + { + "left_line": 2173, + "right_line": 2166 + }, + { + "left_line": 2174, + "right_line": 2167 + }, + { + "left_line": 2175, + "right_line": 2168 + }, + { + "left_line": 2176, + "right_line": 2169 + }, + { + "left_line": 2177, + "right_line": 2170 + }, + { + "left_line": 2178, + "right_line": 2171 + }, + { + "left_line": 2179, + "right_line": 2172 + }, + { + "left_line": 2180, + "right_line": 2173 + }, + { + "left_line": 2181, + "right_line": 2174 + }, + { + "left_line": 2182, + "right_line": 2175 + }, + { + "left_line": 2183, + "right_line": 2176 + }, + { + "left_line": 2184, + "right_line": 2177 + }, + { + "left_line": 2185, + "right_line": 2178 + }, + { + "left_line": 2186, + "right_line": 2179 + }, + { + "left_line": 2187, + "right_line": 2180 + }, + { + "left_line": 2188, + "right_line": 2181 + }, + { + "left_line": 2189, + "right_line": 2182 + }, + { + "left_line": 2190, + "right_line": 2183 + }, + { + "left_line": 2191, + "right_line": 2184 + }, + { + "left_line": 2192, + "right_line": 2185 + }, + { + "left_line": 2193, + "right_line": 2186 + }, + { + "left_line": 2194, + "right_line": 2187 + }, + { + "left_line": 2195, + "right_line": 2188 + }, + { + "left_line": 2196, + "right_line": 2189 + }, + { + "left_line": 2197, + "right_line": 2190 + }, + { + "left_line": 2198, + "right_line": 2191 + }, + { + "left_line": 2199, + "right_line": 2192 + }, + { + "left_line": 2200, + "right_line": 2193 + }, + { + "left_line": 2201, + "right_line": 2194 + }, + { + "left_line": 2202, + "right_line": 2195 + }, + { + "left_line": 2203, + "right_line": 2196 + }, + { + "left_line": 2204, + "right_line": 2197 + }, + { + "left_line": 2205, + "right_line": 2198 + }, + { + "left_line": 2206, + "right_line": 2199 + }, + { + "left_line": 2207, + "right_line": 2200 + }, + { + "left_line": 2208, + "right_line": 2201 + }, + { + "left_line": 2209, + "right_line": 2202 + }, + { + "left_line": 2210, + "right_line": 2203 + }, + { + "left_line": 2211, + "right_line": 2204 + }, + { + "left_line": 2212, + "right_line": 2205 + }, + { + "left_line": 2213, + "right_line": 2206 + }, + { + "left_line": 2214, + "right_line": 2207 + }, + { + "left_line": 2215, + "right_line": 2208 + }, + { + "left_line": 2216, + "right_line": 2209 + }, + { + "left_line": 2217, + "right_line": 2210 + }, + { + "left_line": 2218, + "right_line": 2211 + }, + { + "left_line": 2219, + "right_line": 2212 + }, + { + "left_line": 2220, + "right_line": 2213 + }, + { + "left_line": 2221, + "right_line": 2214 + }, + { + "left_line": 2222, + "right_line": 2215 + }, + { + "left_line": 2223, + "right_line": 2216 + }, + { + "left_line": 2224, + "right_line": 2217 + }, + { + "left_line": 2225, + "right_line": 2218 + }, + { + "left_line": 2226, + "right_line": 2219 + }, + { + "left_line": 2227, + "right_line": 2220 + }, + { + "left_line": 2228, + "right_line": 2221 + }, + { + "left_line": 2229, + "right_line": 2222 + }, + { + "left_line": 2230, + "right_line": 2223 + }, + { + "left_line": 2231, + "right_line": 2224 + }, + { + "left_line": 2232, + "right_line": 2225 + }, + { + "left_line": 2233, + "right_line": 2226 + }, + { + "left_line": 2234, + "right_line": 2227 + }, + { + "left_line": 2235, + "right_line": 2228 + }, + { + "left_line": 2236, + "right_line": 2229 + }, + { + "left_line": 2237, + "right_line": 2230 + }, + { + "left_line": 2238, + "right_line": 2231 + }, + { + "left_line": 2239, + "right_line": 2232 + }, + { + "left_line": 2240, + "right_line": 2233 + }, + { + "left_line": 2241, + "right_line": 2234 + }, + { + "left_line": 2242, + "right_line": 2235 + }, + { + "left_line": 2243, + "right_line": 2236 + }, + { + "left_line": 2244, + "right_line": 2237 + }, + { + "left_line": 2245, + "right_line": 2238 + }, + { + "left_line": 2246, + "right_line": 2239 + }, + { + "left_line": 2247, + "right_line": 2240 + }, + { + "left_line": 2248, + "right_line": 2241 + }, + { + "left_line": 2249, + "right_line": 2242 + }, + { + "left_line": 2250, + "right_line": 2243 + }, + { + "left_line": 2251, + "right_line": 2244 + }, + { + "left_line": 2252, + "right_line": 2245 + }, + { + "left_line": 2253, + "right_line": 2246 + }, + { + "left_line": 2254, + "right_line": 2247 + }, + { + "left_line": 2255, + "right_line": 2248 + }, + { + "left_line": 2256, + "right_line": 2249 + }, + { + "left_line": 2257, + "right_line": 2250 + }, + { + "left_line": 2258, + "right_line": 2251 + }, + { + "left_line": 2259, + "right_line": 2252 + }, + { + "left_line": 2260, + "right_line": 2253 + }, + { + "left_line": 2261, + "right_line": 2254 + }, + { + "left_line": 2262, + "right_line": 2255 + }, + { + "left_line": 2263, + "right_line": 2256 + }, + { + "left_line": 2264, + "right_line": 2257 + }, + { + "left_line": 2265, + "right_line": 2258 + }, + { + "left_line": 2266, + "right_line": 2259 + }, + { + "left_line": 2267, + "right_line": 2260 + }, + { + "left_line": 2268, + "right_line": 2261 + }, + { + "left_line": 2269, + "right_line": 2262 + }, + { + "left_line": 2270, + "right_line": 2263 + }, + { + "left_line": 2271, + "right_line": 2264 + }, + { + "left_line": 2272, + "right_line": 2265 + }, + { + "left_line": 2273, + "right_line": 2266 + }, + { + "left_line": 2274, + "right_line": 2267 + }, + { + "left_line": 2275, + "right_line": 2268 + }, + { + "left_line": 2276, + "right_line": 2269 + }, + { + "left_line": 2277, + "right_line": 2270 + }, + { + "left_line": 2278, + "right_line": 2271 + }, + { + "left_line": 2279, + "right_line": 2272 + }, + { + "left_line": 2280, + "right_line": 2273 + }, + { + "left_line": 2281, + "right_line": 2274 + }, + { + "left_line": 2282, + "right_line": 2275 + }, + { + "left_line": 2283, + "right_line": 2276 + }, + { + "left_line": 2284, + "right_line": 2277 + }, + { + "left_line": 2285, + "right_line": 2278 + }, + { + "left_line": 2286, + "right_line": 2279 + }, + { + "left_line": 2287, + "right_line": 2280 + }, + { + "left_line": 2288, + "right_line": 2281 + }, + { + "left_line": 2289, + "right_line": 2282 + }, + { + "left_line": 2290, + "right_line": 2283 + }, + { + "left_line": 2291, + "right_line": 2284 + }, + { + "left_line": 2292, + "right_line": 2285 + }, + { + "left_line": 2293, + "right_line": 2286 + }, + { + "left_line": 2294, + "right_line": 2287 + }, + { + "left_line": 2295, + "right_line": 2288 + }, + { + "left_line": 2296, + "right_line": 2289 + }, + { + "left_line": 2297, + "right_line": 2290 + }, + { + "left_line": 2298, + "right_line": 2291 + }, + { + "left_line": 2299, + "right_line": 2292 + }, + { + "left_line": 2300, + "right_line": 2293 + }, + { + "left_line": 2301, + "right_line": 2294 + }, + { + "left_line": 2302, + "right_line": 2295 + }, + { + "left_line": 2303, + "right_line": 2296 + }, + { + "left_line": 2304, + "right_line": 2297 + }, + { + "left_line": 2305, + "right_line": 2298 + }, + { + "left_line": 2306, + "right_line": 2299 + }, + { + "left_line": 2307, + "right_line": 2300 + }, + { + "left_line": 2308, + "right_line": 2301 + }, + { + "left_line": 2309, + "right_line": 2302 + }, + { + "left_line": 2310, + "right_line": 2303 + }, + { + "left_line": 2311, + "right_line": 2304 + }, + { + "left_line": 2312, + "right_line": 2305 + }, + { + "left_line": 2313, + "right_line": 2306 + }, + { + "left_line": 2314, + "right_line": 2307 + }, + { + "left_line": 2315, + "right_line": 2308 + }, + { + "left_line": 2316, + "right_line": 2309 + }, + { + "left_line": 2317, + "right_line": 2310 + }, + { + "left_line": 2318, + "right_line": 2311 + }, + { + "left_line": 2319, + "right_line": 2312 + }, + { + "left_line": 2320, + "right_line": 2313 + }, + { + "left_line": 2321, + "right_line": 2314 + }, + { + "left_line": 2322, + "right_line": 2315 + }, + { + "left_line": 2323, + "right_line": 2316 + }, + { + "left_line": 2324, + "right_line": 2317 + }, + { + "left_line": 2325, + "right_line": 2318 + }, + { + "left_line": 2326, + "right_line": 2319 + }, + { + "left_line": 2327, + "right_line": 2320 + }, + { + "left_line": 2328, + "right_line": 2321 + }, + { + "left_line": 2329, + "right_line": 2322 + }, + { + "left_line": 2330, + "right_line": 2323 + }, + { + "left_line": 2331, + "right_line": 2324 + }, + { + "left_line": 2332, + "right_line": 2325 + }, + { + "left_line": 2333, + "right_line": 2326 + }, + { + "left_line": 2334, + "right_line": 2327 + }, + { + "left_line": 2335, + "right_line": 2328 + }, + { + "left_line": 2336, + "right_line": 2329 + }, + { + "left_line": 2337, + "right_line": 2330 + }, + { + "left_line": 2338, + "right_line": 2331 + }, + { + "left_line": 2339, + "right_line": 2332 + }, + { + "left_line": 2340, + "right_line": 2333 + }, + { + "left_line": 2341, + "right_line": 2334 + }, + { + "left_line": 2342, + "right_line": 2335 + }, + { + "left_line": 2343, + "right_line": 2336 + }, + { + "left_line": 2344, + "right_line": 2337 + }, + { + "left_line": 2345, + "right_line": 2338 + }, + { + "left_line": 2346, + "right_line": 2339 + }, + { + "left_line": 2347, + "right_line": 2340 + }, + { + "left_line": 2348, + "right_line": 2341 + }, + { + "left_line": 2349, + "right_line": 2342 + }, + { + "left_line": 2350, + "right_line": 2343 + }, + { + "left_line": 2351, + "right_line": 2344 + }, + { + "left_line": 2352, + "right_line": 2345 + }, + { + "left_line": 2353, + "right_line": 2346 + }, + { + "left_line": 2354, + "right_line": 2347 + }, + { + "left_line": 2355, + "right_line": 2348 + }, + { + "left_line": 2356, + "right_line": 2349 + }, + { + "left_line": 2357, + "right_line": 2350 + }, + { + "left_line": 2358, + "right_line": 2351 + }, + { + "left_line": 2359, + "right_line": 2352 + }, + { + "left_line": 2360, + "right_line": 2353 + }, + { + "left_line": 2361, + "right_line": 2354 + }, + { + "left_line": 2362, + "right_line": 2355 + }, + { + "left_line": 2363, + "right_line": 2356 + }, + { + "left_line": 2364, + "right_line": 2357 + }, + { + "left_line": 2365, + "right_line": 2358 + }, + { + "left_line": 2366, + "right_line": 2359 + }, + { + "left_line": 2367, + "right_line": 2360 + }, + { + "left_line": 2368, + "right_line": 2361 + }, + { + "left_line": 2369, + "right_line": 2362 + }, + { + "left_line": 2370, + "right_line": 2363 + }, + { + "left_line": 2371, + "right_line": 2364 + }, + { + "left_line": 2372, + "right_line": 2365 + }, + { + "left_line": 2373, + "right_line": 2366 + }, + { + "left_line": 2374, + "right_line": 2367 + }, + { + "left_line": 2375, + "right_line": 2368 + }, + { + "left_line": 2376, + "right_line": 2369 + }, + { + "left_line": 2377, + "right_line": 2370 + }, + { + "left_line": 2378, + "right_line": 2371 + }, + { + "left_line": 2379, + "right_line": 2372 + }, + { + "left_line": 2380, + "right_line": 2373 + }, + { + "left_line": 2381, + "right_line": 2374 + }, + { + "left_line": 2382, + "right_line": 2375 + }, + { + "left_line": 2383, + "right_line": 2376 + }, + { + "left_line": 2384, + "right_line": 2377 + }, + { + "left_line": 2385, + "right_line": 2378 + }, + { + "left_line": 2386, + "right_line": 2379 + }, + { + "left_line": 2387, + "right_line": 2380 + }, + { + "left_line": 2388, + "right_line": 2381 + }, + { + "left_line": 2389, + "right_line": 2382 + }, + { + "left_line": 2390, + "right_line": 2383 + }, + { + "left_line": 2391, + "right_line": 2384 + }, + { + "left_line": 2392, + "right_line": 2385 + }, + { + "left_line": 2393, + "right_line": 2386 + }, + { + "left_line": 2394, + "right_line": 2387 + }, + { + "left_line": 2395, + "right_line": 2388 + }, + { + "left_line": 2396, + "right_line": 2389 + }, + { + "left_line": 2397, + "right_line": 2390 + }, + { + "left_line": 2398, + "right_line": 2391 + }, + { + "left_line": 2399, + "right_line": 2392 + }, + { + "left_line": 2400, + "right_line": 2393 + }, + { + "left_line": 2401, + "right_line": 2394 + }, + { + "left_line": 2402, + "right_line": 2395 + }, + { + "left_line": 2403, + "right_line": 2396 + }, + { + "left_line": 2404, + "right_line": 2397 + }, + { + "left_line": 2405, + "right_line": 2398 + }, + { + "left_line": 2406, + "right_line": 2399 + }, + { + "left_line": 2407, + "right_line": 2400 + }, + { + "left_line": 2408, + "right_line": 2401 + }, + { + "left_line": 2409, + "right_line": 2402 + }, + { + "left_line": 2410, + "right_line": 2403 + }, + { + "left_line": 2411, + "right_line": 2404 + }, + { + "left_line": 2412, + "right_line": 2405 + }, + { + "left_line": 2413, + "right_line": 2406 + }, + { + "left_line": 2414, + "right_line": 2407 + }, + { + "left_line": 2415, + "right_line": 2408 + }, + { + "left_line": 2416, + "right_line": 2409 + }, + { + "left_line": 2417, + "right_line": 2410 + }, + { + "left_line": 2418, + "right_line": 2411 + }, + { + "left_line": 2419, + "right_line": 2412 + }, + { + "left_line": 2420, + "right_line": 2413 + }, + { + "left_line": 2421, + "right_line": 2414 + }, + { + "left_line": 2422, + "right_line": 2415 + }, + { + "left_line": 2423, + "right_line": 2416 + }, + { + "left_line": 2424, + "right_line": 2417 + }, + { + "left_line": 2425, + "right_line": 2418 + }, + { + "left_line": 2426, + "right_line": 2419 + }, + { + "left_line": 2427, + "right_line": 2420 + }, + { + "left_line": 2428, + "right_line": 2421 + }, + { + "left_line": 2429, + "right_line": 2422 + }, + { + "left_line": 2430, + "right_line": 2423 + }, + { + "left_line": 2431, + "right_line": 2424 + }, + { + "left_line": 2432, + "right_line": 2425 + }, + { + "left_line": 2433, + "right_line": 2426 + }, + { + "left_line": 2434, + "right_line": 2427 + }, + { + "left_line": 2435, + "right_line": 2428 + }, + { + "left_line": 2436, + "right_line": 2429 + }, + { + "left_line": 2437, + "right_line": 2430 + }, + { + "left_line": 2438, + "right_line": 2431 + }, + { + "left_line": 2439, + "right_line": 2432 + }, + { + "left_line": 2440, + "right_line": 2433 + }, + { + "left_line": 2441, + "right_line": 2434 + }, + { + "left_line": 2442, + "right_line": 2435 + }, + { + "left_line": 2443, + "right_line": 2436 + }, + { + "left_line": 2444, + "right_line": 2437 + }, + { + "left_line": 2445, + "right_line": 2438 + }, + { + "left_line": 2446, + "right_line": 2439 + }, + { + "left_line": 2447, + "right_line": 2440 + }, + { + "left_line": 2448, + "right_line": 2441 + }, + { + "left_line": 2449, + "right_line": 2442 + }, + { + "left_line": 2450, + "right_line": 2443 + }, + { + "left_line": 2451, + "right_line": 2444 + }, + { + "left_line": 2452, + "right_line": 2445 + }, + { + "left_line": 2453, + "right_line": 2446 + }, + { + "left_line": 2454, + "right_line": 2447 + }, + { + "left_line": 2455, + "right_line": 2448 + }, + { + "left_line": 2456, + "right_line": 2449 + }, + { + "left_line": 2457, + "right_line": 2450 + }, + { + "left_line": 2458, + "right_line": 2451 + }, + { + "left_line": 2459, + "right_line": 2452 + }, + { + "left_line": 2460, + "right_line": 2453 + }, + { + "left_line": 2461, + "right_line": 2454 + }, + { + "left_line": 2462, + "right_line": 2455 + }, + { + "left_line": 2463, + "right_line": 2456 + }, + { + "left_line": 2464, + "right_line": 2457 + }, + { + "left_line": 2465, + "right_line": 2458 + }, + { + "left_line": 2466, + "right_line": 2459 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_uv_pip_settings/metadata.json b/tests/testdata/json_schemastore_uv_pip_settings/metadata.json new file mode 100644 index 0000000..72638af --- /dev/null +++ b/tests/testdata/json_schemastore_uv_pip_settings/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "c4691f3e8bfa6a9bd17d5268812c14a43a981d16", + "description": "Update uv pip settings schema", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_uv_pip_settings/new.json b/tests/testdata/json_schemastore_uv_pip_settings/new.json new file mode 100644 index 0000000..7e6359d --- /dev/null +++ b/tests/testdata/json_schemastore_uv_pip_settings/new.json @@ -0,0 +1,2459 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/uv.json", + "title": "CombinedOptions", + "description": "Metadata and configuration for uv.", + "type": "object", + "properties": { + "add-bounds": { + "description": "The default version specifier when adding a dependency.\n\nWhen adding a dependency to the project, if no constraint or URL is provided, a constraint\nis added based on the latest compatible version of the package. By default, a lower bound\nconstraint is used, e.g., `>=1.2.3`.\n\nWhen `--frozen` is provided, no resolution is performed, and dependencies are always added\nwithout constraints.\n\nThis option is in preview and may change in any future release.", + "anyOf": [ + { + "$ref": "#/definitions/AddBoundsKind" + }, + { + "type": "null" + } + ] + }, + "allow-insecure-host": { + "description": "Allow insecure connections to host.\n\nExpects to receive either a hostname (e.g., `localhost`), a host-port pair (e.g.,\n`localhost:8080`), or a URL (e.g., `https://localhost`).\n\nWARNING: Hosts included in this list will not be verified against the system's certificate\nstore. Only use `--allow-insecure-host` in a secure network with verified sources, as it\nbypasses SSL verification and could expose you to MITM attacks.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/TrustedHost" + } + }, + "build-backend": { + "description": "Configuration for the uv build backend.\n\nNote that those settings only apply when using the `uv_build` backend, other build backends\n(such as hatchling) have their own configuration.", + "anyOf": [ + { + "$ref": "#/definitions/BuildBackendSettings" + }, + { + "type": "null" + } + ] + }, + "build-constraint-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "cache-dir": { + "description": "Path to the cache directory.\n\nDefaults to `$XDG_CACHE_HOME/uv` or `$HOME/.cache/uv` on Linux and macOS, and\n`%LOCALAPPDATA%\\uv\\cache` on Windows.", + "type": ["string", "null"] + }, + "cache-keys": { + "description": "The keys to consider when caching builds for the project.\n\nCache keys enable you to specify the files or directories that should trigger a rebuild when\nmodified. By default, uv will rebuild a project whenever the `pyproject.toml`, `setup.py`,\nor `setup.cfg` files in the project directory are modified, or if a `src` directory is\nadded or removed, i.e.:\n\n```toml\ncache-keys = [{ file = \"pyproject.toml\" }, { file = \"setup.py\" }, { file = \"setup.cfg\" }, { dir = \"src\" }]\n```\n\nAs an example: if a project uses dynamic metadata to read its dependencies from a\n`requirements.txt` file, you can specify `cache-keys = [{ file = \"requirements.txt\" }, { file = \"pyproject.toml\" }]`\nto ensure that the project is rebuilt whenever the `requirements.txt` file is modified (in\naddition to watching the `pyproject.toml`).\n\nGlobs are supported, following the syntax of the [`glob`](https://docs.rs/glob/0.3.1/glob/struct.Pattern.html)\ncrate. For example, to invalidate the cache whenever a `.toml` file in the project directory\nor any of its subdirectories is modified, you can specify `cache-keys = [{ file = \"**/*.toml\" }]`.\nNote that the use of globs can be expensive, as uv may need to walk the filesystem to\ndetermine whether any files have changed.\n\nCache keys can also include version control information. For example, if a project uses\n`setuptools_scm` to read its version from a Git commit, you can specify `cache-keys = [{ git = { commit = true }, { file = \"pyproject.toml\" }]`\nto include the current Git commit hash in the cache key (in addition to the\n`pyproject.toml`). Git tags are also supported via `cache-keys = [{ git = { commit = true, tags = true } }]`.\n\nCache keys can also include environment variables. For example, if a project relies on\n`MACOSX_DEPLOYMENT_TARGET` or other environment variables to determine its behavior, you can\nspecify `cache-keys = [{ env = \"MACOSX_DEPLOYMENT_TARGET\" }]` to invalidate the cache\nwhenever the environment variable changes.\n\nCache keys only affect the project defined by the `pyproject.toml` in which they're\nspecified (as opposed to, e.g., affecting all members in a workspace), and all paths and\nglobs are interpreted as relative to the project directory.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/CacheKey" + } + }, + "check-url": { + "description": "Check an index URL for existing files to skip duplicate uploads.\n\nThis option allows retrying publishing that failed after only some, but not all files have\nbeen uploaded, and handles error due to parallel uploads of the same file.\n\nBefore uploading, the index is checked. If the exact same file already exists in the index,\nthe file will not be uploaded. If an error occurred during the upload, the index is checked\nagain, to handle cases where the identical file was uploaded twice in parallel.\n\nThe exact behavior will vary based on the index. When uploading to PyPI, uploading the same\nfile succeeds even without `--check-url`, while most other indexes error.\n\nThe index must provide one of the supported hashes (SHA-256, SHA-384, or SHA-512).", + "anyOf": [ + { + "$ref": "#/definitions/IndexUrl" + }, + { + "type": "null" + } + ] + }, + "compile-bytecode": { + "description": "Compile Python files to bytecode after installation.\n\nBy default, uv does not compile Python (`.py`) files to bytecode (`__pycache__/*.pyc`);\ninstead, compilation is performed lazily the first time a module is imported. For use-cases\nin which start time is critical, such as CLI applications and Docker containers, this option\ncan be enabled to trade longer installation times for faster start times.\n\nWhen enabled, uv will process the entire site-packages directory (including packages that\nare not being modified by the current operation) for consistency. Like pip, it will also\nignore errors.", + "type": ["boolean", "null"] + }, + "concurrent-builds": { + "description": "The maximum number of source distributions that uv will build concurrently at any given\ntime.\n\nDefaults to the number of available CPU cores.", + "type": ["integer", "null"], + "format": "uint", + "minimum": 1 + }, + "concurrent-downloads": { + "description": "The maximum number of in-flight concurrent downloads that uv will perform at any given\ntime.", + "type": ["integer", "null"], + "format": "uint", + "minimum": 1 + }, + "concurrent-installs": { + "description": "The number of threads used when installing and unzipping packages.\n\nDefaults to the number of available CPU cores.", + "type": ["integer", "null"], + "format": "uint", + "minimum": 1 + }, + "config-settings": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend,\nspecified as `KEY=VALUE` pairs.", + "anyOf": [ + { + "$ref": "#/definitions/ConfigSettings" + }, + { + "type": "null" + } + ] + }, + "config-settings-package": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend for specific packages,\nspecified as `KEY=VALUE` pairs.\n\nAccepts a map from package names to string key-value pairs.", + "anyOf": [ + { + "$ref": "#/definitions/PackageConfigSettings" + }, + { + "type": "null" + } + ] + }, + "conflicts": { + "description": "A list of sets of conflicting groups or extras.", + "anyOf": [ + { + "$ref": "#/definitions/SchemaConflicts" + }, + { + "type": "null" + } + ] + }, + "constraint-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "default-groups": { + "description": "The list of `dependency-groups` to install by default.\n\nCan also be the literal `\"all\"` to default enable all groups.", + "anyOf": [ + { + "$ref": "#/definitions/DefaultGroups" + }, + { + "type": "null" + } + ] + }, + "dependency-groups": { + "description": "Additional settings for `dependency-groups`.\n\nCurrently this can only be used to add `requires-python` constraints\nto dependency groups (typically to inform uv that your dev tooling\nhas a higher python requirement than your actual project).\n\nThis cannot be used to define dependency groups, use the top-level\n`[dependency-groups]` table for that.", + "anyOf": [ + { + "$ref": "#/definitions/ToolUvDependencyGroups" + }, + { + "type": "null" + } + ] + }, + "dependency-metadata": { + "description": "Pre-defined static metadata for dependencies of the project (direct or transitive). When\nprovided, enables the resolver to use the specified metadata instead of querying the\nregistry or building the relevant package from source.\n\nMetadata should be provided in adherence with the [Metadata 2.3](https://packaging.python.org/en/latest/specifications/core-metadata/)\nstandard, though only the following fields are respected:\n\n- `name`: The name of the package.\n- (Optional) `version`: The version of the package. If omitted, the metadata will be applied\n to all versions of the package.\n- (Optional) `requires-dist`: The dependencies of the package (e.g., `werkzeug>=0.14`).\n- (Optional) `requires-python`: The Python version required by the package (e.g., `>=3.10`).\n- (Optional) `provides-extra`: The extras provided by the package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/StaticMetadata" + } + }, + "dev-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "environments": { + "description": "A list of environment markers, e.g., `python_version >= '3.6'`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "exclude-dependencies": { + "description": "Package names to exclude, e.g., `werkzeug`, `numpy`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "exclude-newer": { + "description": "Limit candidate packages to those that were uploaded prior to a given point in time.\n\nAccepts a superset of [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html) (e.g.,\n`2006-12-02T02:07:43Z`). A full timestamp is required to ensure that the resolver will\nbehave consistently across timezones.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerTimestamp" + }, + { + "type": "null" + } + ] + }, + "exclude-newer-package": { + "description": "Limit candidate packages for specific packages to those that were uploaded prior to the given date.\n\nAccepts package-date pairs in a dictionary format.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerPackage" + }, + { + "type": "null" + } + ] + }, + "extra-build-dependencies": { + "description": "Additional build dependencies for packages.\n\nThis allows extending the PEP 517 build environment for the project's dependencies with\nadditional packages. This is useful for packages that assume the presence of packages like\n`pip`, and do not declare them as build dependencies.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildDependencies" + }, + { + "type": "null" + } + ] + }, + "extra-build-variables": { + "description": "Extra environment variables to set when building certain packages.\n\nEnvironment variables will be added to the environment when building the\nspecified packages.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildVariables" + }, + { + "type": "null" + } + ] + }, + "extra-index-url": { + "description": "Extra URLs of package indexes to use, in addition to `--index-url`.\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nAll indexes provided via this flag take priority over the index specified by\n[`index_url`](#index-url) or [`index`](#index) with `default = true`. When multiple indexes\nare provided, earlier values take priority.\n\nTo control uv's resolution strategy when multiple indexes are present, see\n[`index_strategy`](#index-strategy).\n\n(Deprecated: use `index` instead.)", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "find-links": { + "description": "Locations to search for candidate distributions, in addition to those found in the registry\nindexes.\n\nIf a path, the target must be a directory that contains packages as wheel files (`.whl`) or\nsource distributions (e.g., `.tar.gz` or `.zip`) at the top level.\n\nIf a URL, the page must contain a flat list of links to package files adhering to the\nformats described above.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "fork-strategy": { + "description": "The strategy to use when selecting multiple versions of a given package across Python\nversions and platforms.\n\nBy default, uv will optimize for selecting the latest version of each package for each\nsupported Python version (`requires-python`), while minimizing the number of selected\nversions across platforms.\n\nUnder `fewest`, uv will minimize the number of selected versions for each package,\npreferring older versions that are compatible with a wider range of supported Python\nversions or platforms.", + "anyOf": [ + { + "$ref": "#/definitions/ForkStrategy" + }, + { + "type": "null" + } + ] + }, + "index": { + "description": "The indexes to use when resolving dependencies.\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nIndexes are considered in the order in which they're defined, such that the first-defined\nindex has the highest priority. Further, the indexes provided by this setting are given\nhigher priority than any indexes specified via [`index_url`](#index-url) or\n[`extra_index_url`](#extra-index-url). uv will only consider the first index that contains\na given package, unless an alternative [index strategy](#index-strategy) is specified.\n\nIf an index is marked as `explicit = true`, it will be used exclusively for the\ndependencies that select it explicitly via `[tool.uv.sources]`, as in:\n\n```toml\n[[tool.uv.index]]\nname = \"pytorch\"\nurl = \"https://download.pytorch.org/whl/cu121\"\nexplicit = true\n\n[tool.uv.sources]\ntorch = { index = \"pytorch\" }\n```\n\nIf an index is marked as `default = true`, it will be moved to the end of the prioritized list, such that it is\ngiven the lowest priority when resolving packages. Additionally, marking an index as default will disable the\nPyPI default index.", + "type": ["array", "null"], + "default": null, + "items": { + "$ref": "#/definitions/Index" + } + }, + "index-strategy": { + "description": "The strategy to use when resolving against multiple index URLs.\n\nBy default, uv will stop at the first index on which a given package is available, and\nlimit resolutions to those present on that first index (`first-index`). This prevents\n\"dependency confusion\" attacks, whereby an attacker can upload a malicious package under the\nsame name to an alternate index.", + "anyOf": [ + { + "$ref": "#/definitions/IndexStrategy" + }, + { + "type": "null" + } + ] + }, + "index-url": { + "description": "The URL of the Python package index (by default: ).\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nThe index provided by this setting is given lower priority than any indexes specified via\n[`extra_index_url`](#extra-index-url) or [`index`](#index).\n\n(Deprecated: use `index` instead.)", + "anyOf": [ + { + "$ref": "#/definitions/IndexUrl" + }, + { + "type": "null" + } + ] + }, + "keyring-provider": { + "description": "Attempt to use `keyring` for authentication for index URLs.\n\nAt present, only `--keyring-provider subprocess` is supported, which configures uv to\nuse the `keyring` CLI to handle authentication.", + "anyOf": [ + { + "$ref": "#/definitions/KeyringProviderType" + }, + { + "type": "null" + } + ] + }, + "link-mode": { + "description": "The method to use when installing packages from the global cache.\n\nDefaults to `clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and\nWindows.\n\nWARNING: The use of symlink link mode is discouraged, as they create tight coupling between\nthe cache and the target environment. For example, clearing the cache (`uv cache clean`)\nwill break all installed packages by way of removing the underlying source files. Use\nsymlinks with caution.", + "anyOf": [ + { + "$ref": "#/definitions/LinkMode" + }, + { + "type": "null" + } + ] + }, + "managed": { + "description": "Whether the project is managed by uv. If `false`, uv will ignore the project when\n`uv run` is invoked.", + "type": ["boolean", "null"] + }, + "native-tls": { + "description": "Whether to load TLS certificates from the platform's native certificate store.\n\nBy default, uv loads certificates from the bundled `webpki-roots` crate. The\n`webpki-roots` are a reliable set of trust roots from Mozilla, and including them in uv\nimproves portability and performance (especially on macOS).\n\nHowever, in some cases, you may want to use the platform's native certificate store,\nespecially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's\nincluded in your system's certificate store.", + "type": ["boolean", "null"] + }, + "no-binary": { + "description": "Don't install pre-built wheels.\n\nThe given packages will be built and installed from source. The resolver will still use\npre-built wheels to extract package metadata, if available.", + "type": ["boolean", "null"] + }, + "no-binary-package": { + "description": "Don't install pre-built wheels for a specific package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-build": { + "description": "Don't build source distributions.\n\nWhen enabled, resolving will not run arbitrary Python code. The cached wheels of\nalready-built source distributions will be reused, but operations that require building\ndistributions will exit with an error.", + "type": ["boolean", "null"] + }, + "no-build-isolation": { + "description": "Disable isolation when building source distributions.\n\nAssumes that build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["boolean", "null"] + }, + "no-build-isolation-package": { + "description": "Disable isolation when building source distributions for a specific package.\n\nAssumes that the packages' build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-build-package": { + "description": "Don't build source distributions for a specific package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-cache": { + "description": "Avoid reading from or writing to the cache, instead using a temporary directory for the\nduration of the operation.", + "type": ["boolean", "null"] + }, + "no-index": { + "description": "Ignore all registry indexes (e.g., PyPI), instead relying on direct URL dependencies and\nthose provided via `--find-links`.", + "type": ["boolean", "null"] + }, + "no-sources": { + "description": "Ignore the `tool.uv.sources` table when resolving dependencies. Used to lock against the\nstandards-compliant, publishable package metadata, as opposed to using any local or Git\nsources.", + "type": ["boolean", "null"] + }, + "offline": { + "description": "Disable network access, relying only on locally cached data and locally available files.", + "type": ["boolean", "null"] + }, + "override-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "package": { + "description": "Whether the project should be considered a Python package, or a non-package (\"virtual\")\nproject.\n\nPackages are built and installed into the virtual environment in editable mode and thus\nrequire a build backend, while virtual projects are _not_ built or installed; instead, only\ntheir dependencies are included in the virtual environment.\n\nCreating a package requires that a `build-system` is present in the `pyproject.toml`, and\nthat the project adheres to a structure that adheres to the build backend's expectations\n(e.g., a `src` layout).", + "type": ["boolean", "null"] + }, + "pip": { + "anyOf": [ + { + "$ref": "#/definitions/PipOptions" + }, + { + "type": "null" + } + ] + }, + "prerelease": { + "description": "The strategy to use when considering pre-release versions.\n\nBy default, uv will accept pre-releases for packages that _only_ publish pre-releases,\nalong with first-party requirements that contain an explicit pre-release marker in the\ndeclared specifiers (`if-necessary-or-explicit`).", + "anyOf": [ + { + "$ref": "#/definitions/PrereleaseMode" + }, + { + "type": "null" + } + ] + }, + "preview": { + "description": "Whether to enable experimental, preview features.", + "type": ["boolean", "null"] + }, + "publish-url": { + "description": "The URL for publishing packages to the Python package index (by default:\n).", + "anyOf": [ + { + "$ref": "#/definitions/DisplaySafeUrl" + }, + { + "type": "null" + } + ] + }, + "pypy-install-mirror": { + "description": "Mirror URL to use for downloading managed PyPy installations.\n\nBy default, managed PyPy installations are downloaded from [downloads.python.org](https://downloads.python.org/).\nThis variable can be set to a mirror URL to use a different source for PyPy installations.\nThe provided URL will replace `https://downloads.python.org/pypy` in, e.g., `https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2`.\n\nDistributions can be read from a\nlocal directory by using the `file://` URL scheme.", + "type": ["string", "null"] + }, + "python-downloads": { + "description": "Whether to allow Python downloads.", + "anyOf": [ + { + "$ref": "#/definitions/PythonDownloads" + }, + { + "type": "null" + } + ] + }, + "python-downloads-json-url": { + "description": "URL pointing to JSON of custom Python installations.\n\nNote that currently, only local paths are supported.", + "type": ["string", "null"] + }, + "python-install-mirror": { + "description": "Mirror URL for downloading managed Python installations.\n\nBy default, managed Python installations are downloaded from [`python-build-standalone`](https://github.com/astral-sh/python-build-standalone).\nThis variable can be set to a mirror URL to use a different source for Python installations.\nThe provided URL will replace `https://github.com/astral-sh/python-build-standalone/releases/download` in, e.g., `https://github.com/astral-sh/python-build-standalone/releases/download/20240713/cpython-3.12.4%2B20240713-aarch64-apple-darwin-install_only.tar.gz`.\n\nDistributions can be read from a local directory by using the `file://` URL scheme.", + "type": ["string", "null"] + }, + "python-preference": { + "description": "Whether to prefer using Python installations that are already present on the system, or\nthose that are downloaded and installed by uv.", + "anyOf": [ + { + "$ref": "#/definitions/PythonPreference" + }, + { + "type": "null" + } + ] + }, + "reinstall": { + "description": "Reinstall all packages, regardless of whether they're already installed. Implies `refresh`.", + "type": ["boolean", "null"] + }, + "reinstall-package": { + "description": "Reinstall a specific package, regardless of whether it's already installed. Implies\n`refresh-package`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "required-environments": { + "description": "A list of environment markers, e.g., `sys_platform == 'darwin'.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "required-version": { + "description": "Enforce a requirement on the version of uv.\n\nIf the version of uv does not meet the requirement at runtime, uv will exit\nwith an error.\n\nAccepts a [PEP 440](https://peps.python.org/pep-0440/) specifier, like `==0.5.0` or `>=0.5.0`.", + "anyOf": [ + { + "$ref": "#/definitions/RequiredVersion" + }, + { + "type": "null" + } + ] + }, + "resolution": { + "description": "The strategy to use when selecting between the different compatible versions for a given\npackage requirement.\n\nBy default, uv will use the latest compatible version of each package (`highest`).", + "anyOf": [ + { + "$ref": "#/definitions/ResolutionMode" + }, + { + "type": "null" + } + ] + }, + "sources": { + "description": "The sources to use when resolving dependencies.\n\n`tool.uv.sources` enriches the dependency metadata with additional sources, incorporated\nduring development. A dependency source can be a Git repository, a URL, a local path, or an\nalternative registry.\n\nSee [Dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/) for more.", + "anyOf": [ + { + "$ref": "#/definitions/ToolUvSources" + }, + { + "type": "null" + } + ] + }, + "trusted-publishing": { + "description": "Configure trusted publishing.\n\nBy default, uv checks for trusted publishing when running in a supported environment, but\nignores it if it isn't configured.\n\nuv's supported environments for trusted publishing include GitHub Actions and GitLab CI/CD.", + "anyOf": [ + { + "$ref": "#/definitions/TrustedPublishing" + }, + { + "type": "null" + } + ] + }, + "upgrade": { + "description": "Allow package upgrades, ignoring pinned versions in any existing output file.", + "type": ["boolean", "null"] + }, + "upgrade-package": { + "description": "Allow upgrades for a specific package, ignoring pinned versions in any existing output\nfile.\n\nAccepts both standalone package names (`ruff`) and version specifiers (`ruff<0.5.0`).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/Requirement" + } + }, + "workspace": { + "description": "The workspace definition for the project, if any.", + "anyOf": [ + { + "$ref": "#/definitions/ToolUvWorkspace" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "AddBoundsKind": { + "description": "The default version specifier when adding a dependency.", + "oneOf": [ + { + "description": "Only a lower bound, e.g., `>=1.2.3`.", + "type": "string", + "const": "lower" + }, + { + "description": "Allow the same major version, similar to the semver caret, e.g., `>=1.2.3, <2.0.0`.\n\nLeading zeroes are skipped, e.g. `>=0.1.2, <0.2.0`.", + "type": "string", + "const": "major" + }, + { + "description": "Allow the same minor version, similar to the semver tilde, e.g., `>=1.2.3, <1.3.0`.\n\nLeading zeroes are skipped, e.g. `>=0.1.2, <0.1.3`.", + "type": "string", + "const": "minor" + }, + { + "description": "Pin the exact version, e.g., `==1.2.3`.\n\nThis option is not recommended, as versions are already pinned in the uv lockfile.", + "type": "string", + "const": "exact" + } + ] + }, + "AnnotationStyle": { + "description": "Indicate the style of annotation comments, used to indicate the dependencies that requested each\npackage.", + "oneOf": [ + { + "description": "Render the annotations on a single, comma-separated line.", + "type": "string", + "const": "line" + }, + { + "description": "Render each annotation on its own line.", + "type": "string", + "const": "split" + } + ] + }, + "AuthPolicy": { + "description": "When to use authentication.", + "oneOf": [ + { + "description": "Authenticate when necessary.\n\nIf credentials are provided, they will be used. Otherwise, an unauthenticated request will\nbe attempted first. If the request fails, uv will search for credentials. If credentials are\nfound, an authenticated request will be attempted.", + "type": "string", + "const": "auto" + }, + { + "description": "Always authenticate.\n\nIf credentials are not provided, uv will eagerly search for credentials. If credentials\ncannot be found, uv will error instead of attempting an unauthenticated request.", + "type": "string", + "const": "always" + }, + { + "description": "Never authenticate.\n\nIf credentials are provided, uv will error. uv will not search for credentials.", + "type": "string", + "const": "never" + } + ] + }, + "BuildBackendSettings": { + "description": "Settings for the uv build backend (`uv_build`).\n\nNote that those settings only apply when using the `uv_build` backend, other build backends\n(such as hatchling) have their own configuration.\n\nAll options that accept globs use the portable glob patterns from\n[PEP 639](https://packaging.python.org/en/latest/specifications/glob-patterns/).", + "type": "object", + "properties": { + "data": { + "description": "Data includes for wheels.\n\nEach entry is a directory, whose contents are copied to the matching directory in the wheel\nin `-.data/(purelib|platlib|headers|scripts|data)`. Upon installation, this\ndata is moved to its target location, as defined by\n. Usually, small\ndata files are included by placing them in the Python module instead of using data includes.\n\n- `scripts`: Installed to the directory for executables, `/bin` on Unix or\n `\\Scripts` on Windows. This directory is added to `PATH` when the virtual\n environment is activated or when using `uv run`, so this data type can be used to install\n additional binaries. Consider using `project.scripts` instead for Python entrypoints.\n- `data`: Installed over the virtualenv environment root.\n\n Warning: This may override existing files!\n\n- `headers`: Installed to the include directory. Compilers building Python packages\n with this package as build requirement use the include directory to find additional header\n files.\n- `purelib` and `platlib`: Installed to the `site-packages` directory. It is not recommended\n to use these two options.", + "allOf": [ + { + "$ref": "#/definitions/WheelDataIncludes" + } + ], + "default": { + "data": null, + "headers": null, + "platlib": null, + "purelib": null, + "scripts": null + } + }, + "default-excludes": { + "description": "If set to `false`, the default excludes aren't applied.\n\nDefault excludes: `__pycache__`, `*.pyc`, and `*.pyo`.", + "type": "boolean", + "default": true + }, + "module-name": { + "description": "The name of the module directory inside `module-root`.\n\nThe default module name is the package name with dots and dashes replaced by underscores.\n\nPackage names need to be valid Python identifiers, and the directory needs to contain a\n`__init__.py`. An exception are stubs packages, whose name ends with `-stubs`, with the stem\nbeing the module name, and which contain a `__init__.pyi` file.\n\nFor namespace packages with a single module, the path can be dotted, e.g., `foo.bar` or\n`foo-stubs.bar`.\n\nFor namespace packages with multiple modules, the path can be a list, e.g.,\n`[\"foo\", \"bar\"]`. We recommend using a single module per package, splitting multiple\npackages into a workspace.\n\nNote that using this option runs the risk of creating two packages with different names but\nthe same module names. Installing such packages together leads to unspecified behavior,\noften with corrupted files or directory trees.", + "anyOf": [ + { + "$ref": "#/definitions/ModuleName" + }, + { + "type": "null" + } + ], + "default": null + }, + "module-root": { + "description": "The directory that contains the module directory.\n\nCommon values are `src` (src layout, the default) or an empty path (flat layout).", + "type": "string", + "default": "src" + }, + "namespace": { + "description": "Build a namespace package.\n\nBuild a PEP 420 implicit namespace package, allowing more than one root `__init__.py`.\n\nUse this option when the namespace package contains multiple root `__init__.py`, for\nnamespace packages with a single root `__init__.py` use a dotted `module-name` instead.\n\nTo compare dotted `module-name` and `namespace = true`, the first example below can be\nexpressed with `module-name = \"cloud.database\"`: There is one root `__init__.py` `database`.\nIn the second example, we have three roots (`cloud.database`, `cloud.database_pro`,\n`billing.modules.database_pro`), so `namespace = true` is required.\n\n```text\nsrc\n└── cloud\n └── database\n ├── __init__.py\n ├── query_builder\n │ └── __init__.py\n └── sql\n ├── parser.py\n └── __init__.py\n```\n\n```text\nsrc\n├── cloud\n│ ├── database\n│ │ ├── __init__.py\n│ │ ├── query_builder\n│ │ │ └── __init__.py\n│ │ └── sql\n│ │ ├── __init__.py\n│ │ └── parser.py\n│ └── database_pro\n│ ├── __init__.py\n│ └── query_builder.py\n└── billing\n └── modules\n └── database_pro\n ├── __init__.py\n └── sql.py\n```", + "type": "boolean", + "default": false + }, + "source-exclude": { + "description": "Glob expressions which files and directories to exclude from the source distribution.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "source-include": { + "description": "Glob expressions which files and directories to additionally include in the source\ndistribution.\n\n`pyproject.toml` and the contents of the module directory are always included.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "wheel-exclude": { + "description": "Glob expressions which files and directories to exclude from the wheel.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + }, + "CacheKey": { + "anyOf": [ + { + "description": "Ex) `\"Cargo.lock\"` or `\"**/*.toml\"`", + "type": "string" + }, + { + "description": "Ex) `{ file = \"Cargo.lock\" }` or `{ file = \"**/*.toml\" }`", + "type": "object", + "properties": { + "file": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["file"] + }, + { + "description": "Ex) `{ dir = \"src\" }`", + "type": "object", + "properties": { + "dir": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["dir"] + }, + { + "description": "Ex) `{ git = true }` or `{ git = { commit = true, tags = false } }`", + "type": "object", + "properties": { + "git": { + "$ref": "#/definitions/GitPattern" + } + }, + "additionalProperties": false, + "required": ["git"] + }, + { + "description": "Ex) `{ env = \"UV_CACHE_INFO\" }`", + "type": "object", + "properties": { + "env": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["env"] + } + ] + }, + "ConfigSettingValue": { + "anyOf": [ + { + "description": "The value consists of a single string.", + "type": "string" + }, + { + "description": "The value consists of a list of strings.", + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "ConfigSettings": { + "description": "Settings to pass to a PEP 517 build backend, structured as a map from (string) key to string or\nlist of strings.\n\nSee: ", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ConfigSettingValue" + } + }, + "DefaultGroups": { + "description": "Either the literal \"all\" or a list of groups", + "oneOf": [ + { + "description": "All groups are defaulted", + "type": "string", + "const": "all" + }, + { + "description": "A list of groups", + "type": "array", + "items": { + "$ref": "#/definitions/GroupName" + } + } + ] + }, + "DependencyGroupSettings": { + "type": "object", + "properties": { + "requires-python": { + "description": "Version of python to require when installing this group", + "type": ["string", "null"] + } + } + }, + "DisplaySafeUrl": { + "description": "A [`Url`] wrapper that redacts credentials when displaying the URL.\n\n`DisplaySafeUrl` wraps the standard [`url::Url`] type, providing functionality to mask\nsecrets by default when the URL is displayed or logged. This helps prevent accidental\nexposure of sensitive information in logs and debug output.\n\n# Examples\n\n```\nuse uv_redacted::DisplaySafeUrl;\nuse std::str::FromStr;\n\n// Create a `DisplaySafeUrl` from a `&str`\nlet mut url = DisplaySafeUrl::parse(\"https://user:password@example.com\").unwrap();\n\n// Display will mask secrets\nassert_eq!(url.to_string(), \"https://user:****@example.com/\");\n\n// You can still access the username and password\nassert_eq!(url.username(), \"user\");\nassert_eq!(url.password(), Some(\"password\"));\n\n// And you can still update the username and password\nlet _ = url.set_username(\"new_user\");\nlet _ = url.set_password(Some(\"new_password\"));\nassert_eq!(url.username(), \"new_user\");\nassert_eq!(url.password(), Some(\"new_password\"));\n\n// It is also possible to remove the credentials entirely\nurl.remove_credentials();\nassert_eq!(url.username(), \"\");\nassert_eq!(url.password(), None);\n```", + "type": "string", + "format": "uri" + }, + "ExcludeNewerPackage": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ExcludeNewerTimestamp" + } + }, + "ExcludeNewerTimestamp": { + "description": "Exclude distributions uploaded after the given timestamp.\n\nAccepts both RFC 3339 timestamps (e.g., `2006-12-02T02:07:43Z`) and local dates in the same format (e.g., `2006-12-02`).", + "type": "string", + "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(Z|[+-]\\d{2}:\\d{2}))?$" + }, + "ExtraBuildDependencies": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtraBuildDependency" + } + } + }, + "ExtraBuildDependency": { + "anyOf": [ + { + "$ref": "#/definitions/Requirement" + }, + { + "type": "object", + "properties": { + "match-runtime": { + "type": "boolean" + }, + "requirement": { + "$ref": "#/definitions/Requirement" + } + }, + "required": ["requirement", "match-runtime"] + } + ] + }, + "ExtraBuildVariables": { + "description": "Extra environment variables to set during builds, on a per-package basis.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "ExtraName": { + "description": "The normalized name of an extra dependency.\n\nConverts the name to lowercase and collapses runs of `-`, `_`, and `.` down to a single `-`.\nFor example, `---`, `.`, and `__` are all converted to a single `-`.\n\nSee:\n- \n- ", + "type": "string" + }, + "ForkStrategy": { + "oneOf": [ + { + "description": "Optimize for selecting the fewest number of versions for each package. Older versions may\nbe preferred if they are compatible with a wider range of supported Python versions or\nplatforms.", + "type": "string", + "const": "fewest" + }, + { + "description": "Optimize for selecting latest supported version of each package, for each supported Python\nversion.", + "type": "string", + "const": "requires-python" + } + ] + }, + "GitPattern": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/GitSet" + } + ] + }, + "GitSet": { + "type": "object", + "properties": { + "commit": { + "type": ["boolean", "null"] + }, + "tags": { + "type": ["boolean", "null"] + } + }, + "additionalProperties": false + }, + "GroupName": { + "description": "The normalized name of a dependency group.\n\nSee:\n- \n- ", + "type": "string" + }, + "Index": { + "type": "object", + "properties": { + "authenticate": { + "description": "When uv should use authentication for requests to the index.\n\n```toml\n[[tool.uv.index]]\nname = \"my-index\"\nurl = \"https:///simple\"\nauthenticate = \"always\"\n```", + "allOf": [ + { + "$ref": "#/definitions/AuthPolicy" + } + ], + "default": "auto" + }, + "cache-control": { + "description": "Cache control configuration for this index.\n\nWhen set, these headers will override the server's cache control headers\nfor both package metadata requests and artifact downloads.\n\n```toml\n[[tool.uv.index]]\nname = \"my-index\"\nurl = \"https:///simple\"\ncache-control = { api = \"max-age=600\", files = \"max-age=3600\" }\n```", + "anyOf": [ + { + "$ref": "#/definitions/IndexCacheControl" + }, + { + "type": "null" + } + ], + "default": null + }, + "default": { + "description": "Mark the index as the default index.\n\nBy default, uv uses PyPI as the default index, such that even if additional indexes are\ndefined via `[[tool.uv.index]]`, PyPI will still be used as a fallback for packages that\naren't found elsewhere. To disable the PyPI default, set `default = true` on at least one\nother index.\n\nMarking an index as default will move it to the front of the list of indexes, such that it\nis given the highest priority when resolving packages.", + "type": "boolean", + "default": false + }, + "explicit": { + "description": "Mark the index as explicit.\n\nExplicit indexes will _only_ be used when explicitly requested via a `[tool.uv.sources]`\ndefinition, as in:\n\n```toml\n[[tool.uv.index]]\nname = \"pytorch\"\nurl = \"https://download.pytorch.org/whl/cu121\"\nexplicit = true\n\n[tool.uv.sources]\ntorch = { index = \"pytorch\" }\n```", + "type": "boolean", + "default": false + }, + "format": { + "description": "The format used by the index.\n\nIndexes can either be PEP 503-compliant (i.e., a PyPI-style registry implementing the Simple\nAPI) or structured as a flat list of distributions (e.g., `--find-links`). In both cases,\nindexes can point to either local or remote resources.", + "allOf": [ + { + "$ref": "#/definitions/IndexFormat" + } + ], + "default": "simple" + }, + "ignore-error-codes": { + "description": "Status codes that uv should ignore when deciding whether\nto continue searching in the next index after a failure.\n\n```toml\n[[tool.uv.index]]\nname = \"my-index\"\nurl = \"https:///simple\"\nignore-error-codes = [401, 403]\n```", + "type": ["array", "null"], + "default": null, + "items": { + "$ref": "#/definitions/StatusCode" + } + }, + "name": { + "description": "The name of the index.\n\nIndex names can be used to reference indexes elsewhere in the configuration. For example,\nyou can pin a package to a specific index by name:\n\n```toml\n[[tool.uv.index]]\nname = \"pytorch\"\nurl = \"https://download.pytorch.org/whl/cu121\"\n\n[tool.uv.sources]\ntorch = { index = \"pytorch\" }\n```", + "anyOf": [ + { + "$ref": "#/definitions/IndexName" + }, + { + "type": "null" + } + ] + }, + "publish-url": { + "description": "The URL of the upload endpoint.\n\nWhen using `uv publish --index `, this URL is used for publishing.\n\nA configuration for the default index PyPI would look as follows:\n\n```toml\n[[tool.uv.index]]\nname = \"pypi\"\nurl = \"https://pypi.org/simple\"\npublish-url = \"https://upload.pypi.org/legacy/\"\n```", + "anyOf": [ + { + "$ref": "#/definitions/DisplaySafeUrl" + }, + { + "type": "null" + } + ] + }, + "url": { + "description": "The URL of the index.\n\nExpects to receive a URL (e.g., `https://pypi.org/simple`) or a local path.", + "allOf": [ + { + "$ref": "#/definitions/IndexUrl" + } + ] + } + }, + "required": ["url"] + }, + "IndexCacheControl": { + "description": "Cache control configuration for an index.", + "type": "object", + "properties": { + "api": { + "description": "Cache control header for Simple API requests.", + "type": ["string", "null"] + }, + "files": { + "description": "Cache control header for file downloads.", + "type": ["string", "null"] + } + } + }, + "IndexFormat": { + "oneOf": [ + { + "description": "A PyPI-style index implementing the Simple Repository API.", + "type": "string", + "const": "simple" + }, + { + "description": "A `--find-links`-style index containing a flat list of wheels and source distributions.", + "type": "string", + "const": "flat" + } + ] + }, + "IndexName": { + "description": "The normalized name of an index.\n\nIndex names may contain letters, digits, hyphens, underscores, and periods, and must be ASCII.", + "type": "string" + }, + "IndexStrategy": { + "oneOf": [ + { + "description": "Only use results from the first index that returns a match for a given package name.\n\nWhile this differs from pip's behavior, it's the default index strategy as it's the most\nsecure.", + "type": "string", + "const": "first-index" + }, + { + "description": "Search for every package name across all indexes, exhausting the versions from the first\nindex before moving on to the next.\n\nIn this strategy, we look for every package across all indexes. When resolving, we attempt\nto use versions from the indexes in order, such that we exhaust all available versions from\nthe first index before moving on to the next. Further, if a version is found to be\nincompatible in the first index, we do not reconsider that version in subsequent indexes,\neven if the secondary index might contain compatible versions (e.g., variants of the same\nversions with different ABI tags or Python version constraints).\n\nSee: ", + "type": "string", + "const": "unsafe-first-match" + }, + { + "description": "Search for every package name across all indexes, preferring the \"best\" version found. If a\npackage version is in multiple indexes, only look at the entry for the first index.\n\nIn this strategy, we look for every package across all indexes. When resolving, we consider\nall versions from all indexes, choosing the \"best\" version found (typically, the highest\ncompatible version).\n\nThis most closely matches pip's behavior, but exposes the resolver to \"dependency confusion\"\nattacks whereby malicious actors can publish packages to public indexes with the same name\nas internal packages, causing the resolver to install the malicious package in lieu of\nthe intended internal package.\n\nSee: ", + "type": "string", + "const": "unsafe-best-match" + } + ] + }, + "IndexUrl": { + "description": "The URL of an index to use for fetching packages (e.g., `https://pypi.org/simple`), or a local path.", + "type": "string" + }, + "KeyringProviderType": { + "description": "Keyring provider type to use for credential lookup.", + "oneOf": [ + { + "description": "Do not use keyring for credential lookup.", + "type": "string", + "const": "disabled" + }, + { + "description": "Use the `keyring` command for credential lookup.", + "type": "string", + "const": "subprocess" + } + ] + }, + "LinkMode": { + "oneOf": [ + { + "description": "Clone (i.e., copy-on-write) packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "clone" + }, + { + "description": "Copy packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "copy" + }, + { + "description": "Hard link packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "hardlink" + }, + { + "description": "Symbolically link packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "symlink" + } + ] + }, + "MarkerTree": { + "description": "A PEP 508-compliant marker expression, e.g., `sys_platform == 'Darwin'`", + "type": "string" + }, + "ModuleName": { + "description": "Whether to include a single module or multiple modules.", + "anyOf": [ + { + "description": "A single module name.", + "type": "string" + }, + { + "description": "Multiple module names, which are all included.", + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "PackageConfigSettings": { + "description": "Settings to pass to PEP 517 build backends on a per-package basis.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ConfigSettings" + } + }, + "PackageName": { + "description": "The normalized name of a package.\n\nConverts the name to lowercase and collapses runs of `-`, `_`, and `.` down to a single `-`.\nFor example, `---`, `.`, and `__` are all converted to a single `-`.\n\nSee: ", + "type": "string" + }, + "PackageNameSpecifier": { + "description": "The name of a package, or `:all:` or `:none:` to select or omit all packages, respectively.", + "type": "string", + "pattern": "^(:none:|:all:|([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]))$" + }, + "PipGroupName": { + "description": "The pip-compatible variant of a [`GroupName`].\n\nEither or :.\nIf is omitted it defaults to \"pyproject.toml\".", + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/GroupName" + }, + "path": { + "type": ["string", "null"] + } + }, + "required": ["name"] + }, + "PipOptions": { + "description": "Settings that are specific to the `uv pip` command-line interface.\n\nThese values will be ignored when running commands outside the `uv pip` namespace (e.g.,\n`uv lock`, `uvx`).", + "type": "object", + "properties": { + "all-extras": { + "description": "Include all optional dependencies.\n\nOnly applies to `pyproject.toml`, `setup.py`, and `setup.cfg` sources.", + "type": ["boolean", "null"] + }, + "allow-empty-requirements": { + "description": "Allow `uv pip sync` with empty requirements, which will clear the environment of all\npackages.", + "type": ["boolean", "null"] + }, + "annotation-style": { + "description": "The style of the annotation comments included in the output file, used to indicate the\nsource of each package.", + "anyOf": [ + { + "$ref": "#/definitions/AnnotationStyle" + }, + { + "type": "null" + } + ] + }, + "break-system-packages": { + "description": "Allow uv to modify an `EXTERNALLY-MANAGED` Python installation.\n\nWARNING: `--break-system-packages` is intended for use in continuous integration (CI)\nenvironments, when installing into Python installations that are managed by an external\npackage manager, like `apt`. It should be used with caution, as such Python installations\nexplicitly recommend against modifications by other package managers (like uv or pip).", + "type": ["boolean", "null"] + }, + "compile-bytecode": { + "description": "Compile Python files to bytecode after installation.\n\nBy default, uv does not compile Python (`.py`) files to bytecode (`__pycache__/*.pyc`);\ninstead, compilation is performed lazily the first time a module is imported. For use-cases\nin which start time is critical, such as CLI applications and Docker containers, this option\ncan be enabled to trade longer installation times for faster start times.\n\nWhen enabled, uv will process the entire site-packages directory (including packages that\nare not being modified by the current operation) for consistency. Like pip, it will also\nignore errors.", + "type": ["boolean", "null"] + }, + "config-settings": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend,\nspecified as `KEY=VALUE` pairs.", + "anyOf": [ + { + "$ref": "#/definitions/ConfigSettings" + }, + { + "type": "null" + } + ] + }, + "config-settings-package": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend for specific packages,\nspecified as `KEY=VALUE` pairs.", + "anyOf": [ + { + "$ref": "#/definitions/PackageConfigSettings" + }, + { + "type": "null" + } + ] + }, + "custom-compile-command": { + "description": "The header comment to include at the top of the output file generated by `uv pip compile`.\n\nUsed to reflect custom build scripts and commands that wrap `uv pip compile`.", + "type": ["string", "null"] + }, + "dependency-metadata": { + "description": "Pre-defined static metadata for dependencies of the project (direct or transitive). When\nprovided, enables the resolver to use the specified metadata instead of querying the\nregistry or building the relevant package from source.\n\nMetadata should be provided in adherence with the [Metadata 2.3](https://packaging.python.org/en/latest/specifications/core-metadata/)\nstandard, though only the following fields are respected:\n\n- `name`: The name of the package.\n- (Optional) `version`: The version of the package. If omitted, the metadata will be applied\n to all versions of the package.\n- (Optional) `requires-dist`: The dependencies of the package (e.g., `werkzeug>=0.14`).\n- (Optional) `requires-python`: The Python version required by the package (e.g., `>=3.10`).\n- (Optional) `provides-extra`: The extras provided by the package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/StaticMetadata" + } + }, + "emit-build-options": { + "description": "Include `--no-binary` and `--only-binary` entries in the output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "emit-find-links": { + "description": "Include `--find-links` entries in the output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "emit-index-annotation": { + "description": "Include comment annotations indicating the index used to resolve each package (e.g.,\n`# from https://pypi.org/simple`).", + "type": ["boolean", "null"] + }, + "emit-index-url": { + "description": "Include `--index-url` and `--extra-index-url` entries in the output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "emit-marker-expression": { + "description": "Whether to emit a marker string indicating the conditions under which the set of pinned\ndependencies is valid.\n\nThe pinned dependencies may be valid even when the marker expression is\nfalse, but when the expression is true, the requirements are known to\nbe correct.", + "type": ["boolean", "null"] + }, + "exclude-newer": { + "description": "Limit candidate packages to those that were uploaded prior to a given point in time.\n\nAccepts a superset of [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html) (e.g.,\n`2006-12-02T02:07:43Z`). A full timestamp is required to ensure that the resolver will\nbehave consistently across timezones.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerTimestamp" + }, + { + "type": "null" + } + ] + }, + "exclude-newer-package": { + "description": "Limit candidate packages for specific packages to those that were uploaded prior to the given date.\n\nAccepts package-date pairs in a dictionary format.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerPackage" + }, + { + "type": "null" + } + ] + }, + "extra": { + "description": "Include optional dependencies from the specified extra; may be provided more than once.\n\nOnly applies to `pyproject.toml`, `setup.py`, and `setup.cfg` sources.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/ExtraName" + } + }, + "extra-build-dependencies": { + "description": "Additional build dependencies for packages.\n\nThis allows extending the PEP 517 build environment for the project's dependencies with\nadditional packages. This is useful for packages that assume the presence of packages like\n`pip`, and do not declare them as build dependencies.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildDependencies" + }, + { + "type": "null" + } + ] + }, + "extra-build-variables": { + "description": "Extra environment variables to set when building certain packages.\n\nEnvironment variables will be added to the environment when building the\nspecified packages.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildVariables" + }, + { + "type": "null" + } + ] + }, + "extra-index-url": { + "description": "Extra URLs of package indexes to use, in addition to `--index-url`.\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nAll indexes provided via this flag take priority over the index specified by\n[`index_url`](#index-url). When multiple indexes are provided, earlier values take priority.\n\nTo control uv's resolution strategy when multiple indexes are present, see\n[`index_strategy`](#index-strategy).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "find-links": { + "description": "Locations to search for candidate distributions, in addition to those found in the registry\nindexes.\n\nIf a path, the target must be a directory that contains packages as wheel files (`.whl`) or\nsource distributions (e.g., `.tar.gz` or `.zip`) at the top level.\n\nIf a URL, the page must contain a flat list of links to package files adhering to the\nformats described above.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "fork-strategy": { + "description": "The strategy to use when selecting multiple versions of a given package across Python\nversions and platforms.\n\nBy default, uv will optimize for selecting the latest version of each package for each\nsupported Python version (`requires-python`), while minimizing the number of selected\nversions across platforms.\n\nUnder `fewest`, uv will minimize the number of selected versions for each package,\npreferring older versions that are compatible with a wider range of supported Python\nversions or platforms.", + "anyOf": [ + { + "$ref": "#/definitions/ForkStrategy" + }, + { + "type": "null" + } + ] + }, + "generate-hashes": { + "description": "Include distribution hashes in the output file.", + "type": ["boolean", "null"] + }, + "group": { + "description": "Include the following dependency groups.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PipGroupName" + } + }, + "index-strategy": { + "description": "The strategy to use when resolving against multiple index URLs.\n\nBy default, uv will stop at the first index on which a given package is available, and\nlimit resolutions to those present on that first index (`first-index`). This prevents\n\"dependency confusion\" attacks, whereby an attacker can upload a malicious package under the\nsame name to an alternate index.", + "anyOf": [ + { + "$ref": "#/definitions/IndexStrategy" + }, + { + "type": "null" + } + ] + }, + "index-url": { + "description": "The URL of the Python package index (by default: ).\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nThe index provided by this setting is given lower priority than any indexes specified via\n[`extra_index_url`](#extra-index-url).", + "anyOf": [ + { + "$ref": "#/definitions/IndexUrl" + }, + { + "type": "null" + } + ] + }, + "keyring-provider": { + "description": "Attempt to use `keyring` for authentication for index URLs.\n\nAt present, only `--keyring-provider subprocess` is supported, which configures uv to\nuse the `keyring` CLI to handle authentication.", + "anyOf": [ + { + "$ref": "#/definitions/KeyringProviderType" + }, + { + "type": "null" + } + ] + }, + "link-mode": { + "description": "The method to use when installing packages from the global cache.\n\nDefaults to `clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and\nWindows.\n\nWARNING: The use of symlink link mode is discouraged, as they create tight coupling between\nthe cache and the target environment. For example, clearing the cache (`uv cache clean`)\nwill break all installed packages by way of removing the underlying source files. Use\nsymlinks with caution.", + "anyOf": [ + { + "$ref": "#/definitions/LinkMode" + }, + { + "type": "null" + } + ] + }, + "no-annotate": { + "description": "Exclude comment annotations indicating the source of each package from the output file\ngenerated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "no-binary": { + "description": "Don't install pre-built wheels.\n\nThe given packages will be built and installed from source. The resolver will still use\npre-built wheels to extract package metadata, if available.\n\nMultiple packages may be provided. Disable binaries for all packages with `:all:`.\nClear previously specified packages with `:none:`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageNameSpecifier" + } + }, + "no-build": { + "description": "Don't build source distributions.\n\nWhen enabled, resolving will not run arbitrary Python code. The cached wheels of\nalready-built source distributions will be reused, but operations that require building\ndistributions will exit with an error.\n\nAlias for `--only-binary :all:`.", + "type": ["boolean", "null"] + }, + "no-build-isolation": { + "description": "Disable isolation when building source distributions.\n\nAssumes that build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["boolean", "null"] + }, + "no-build-isolation-package": { + "description": "Disable isolation when building source distributions for a specific package.\n\nAssumes that the packages' build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-deps": { + "description": "Ignore package dependencies, instead only add those packages explicitly listed\non the command line to the resulting requirements file.", + "type": ["boolean", "null"] + }, + "no-emit-package": { + "description": "Specify a package to omit from the output resolution. Its dependencies will still be\nincluded in the resolution. Equivalent to pip-compile's `--unsafe-package` option.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-extra": { + "description": "Exclude the specified optional dependencies if `all-extras` is supplied.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/ExtraName" + } + }, + "no-header": { + "description": "Exclude the comment header at the top of output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "no-index": { + "description": "Ignore all registry indexes (e.g., PyPI), instead relying on direct URL dependencies and\nthose provided via `--find-links`.", + "type": ["boolean", "null"] + }, + "no-sources": { + "description": "Ignore the `tool.uv.sources` table when resolving dependencies. Used to lock against the\nstandards-compliant, publishable package metadata, as opposed to using any local or Git\nsources.", + "type": ["boolean", "null"] + }, + "no-strip-extras": { + "description": "Include extras in the output file.\n\nBy default, uv strips extras, as any packages pulled in by the extras are already included\nas dependencies in the output file directly. Further, output files generated with\n`--no-strip-extras` cannot be used as constraints files in `install` and `sync` invocations.", + "type": ["boolean", "null"] + }, + "no-strip-markers": { + "description": "Include environment markers in the output file generated by `uv pip compile`.\n\nBy default, uv strips environment markers, as the resolution generated by `compile` is\nonly guaranteed to be correct for the target environment.", + "type": ["boolean", "null"] + }, + "only-binary": { + "description": "Only use pre-built wheels; don't build source distributions.\n\nWhen enabled, resolving will not run code from the given packages. The cached wheels of already-built\nsource distributions will be reused, but operations that require building distributions will\nexit with an error.\n\nMultiple packages may be provided. Disable binaries for all packages with `:all:`.\nClear previously specified packages with `:none:`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageNameSpecifier" + } + }, + "output-file": { + "description": "Write the requirements generated by `uv pip compile` to the given `requirements.txt` file.\n\nIf the file already exists, the existing versions will be preferred when resolving\ndependencies, unless `--upgrade` is also specified.", + "type": ["string", "null"] + }, + "prefix": { + "description": "Install packages into `lib`, `bin`, and other top-level folders under the specified\ndirectory, as if a virtual environment were present at that location.\n\nIn general, prefer the use of `--python` to install into an alternate environment, as\nscripts and other artifacts installed via `--prefix` will reference the installing\ninterpreter, rather than any interpreter added to the `--prefix` directory, rendering them\nnon-portable.", + "type": ["string", "null"] + }, + "prerelease": { + "description": "The strategy to use when considering pre-release versions.\n\nBy default, uv will accept pre-releases for packages that _only_ publish pre-releases,\nalong with first-party requirements that contain an explicit pre-release marker in the\ndeclared specifiers (`if-necessary-or-explicit`).", + "anyOf": [ + { + "$ref": "#/definitions/PrereleaseMode" + }, + { + "type": "null" + } + ] + }, + "python": { + "description": "The Python interpreter into which packages should be installed.\n\nBy default, uv installs into the virtual environment in the current working directory or\nany parent directory. The `--python` option allows you to specify a different interpreter,\nwhich is intended for use in continuous integration (CI) environments or other automated\nworkflows.\n\nSupported formats:\n- `3.10` looks for an installed Python 3.10 in the registry on Windows (see\n `py --list-paths`), or `python3.10` on Linux and macOS.\n- `python3.10` or `python.exe` looks for a binary with the given name in `PATH`.\n- `/home/ferris/.local/bin/python3.10` uses the exact Python at the given path.", + "type": ["string", "null"] + }, + "python-platform": { + "description": "The platform for which requirements should be resolved.\n\nRepresented as a \"target triple\", a string that describes the target platform in terms of\nits CPU, vendor, and operating system name, like `x86_64-unknown-linux-gnu` or\n`aarch64-apple-darwin`.", + "anyOf": [ + { + "$ref": "#/definitions/TargetTriple" + }, + { + "type": "null" + } + ] + }, + "python-version": { + "description": "The minimum Python version that should be supported by the resolved requirements (e.g.,\n`3.8` or `3.8.17`).\n\nIf a patch version is omitted, the minimum patch version is assumed. For example, `3.8` is\nmapped to `3.8.0`.", + "anyOf": [ + { + "$ref": "#/definitions/PythonVersion" + }, + { + "type": "null" + } + ] + }, + "reinstall": { + "description": "Reinstall all packages, regardless of whether they're already installed. Implies `refresh`.", + "type": ["boolean", "null"] + }, + "reinstall-package": { + "description": "Reinstall a specific package, regardless of whether it's already installed. Implies\n`refresh-package`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "require-hashes": { + "description": "Require a matching hash for each requirement.\n\nHash-checking mode is all or nothing. If enabled, _all_ requirements must be provided\nwith a corresponding hash or set of hashes. Additionally, if enabled, _all_ requirements\nmust either be pinned to exact versions (e.g., `==1.0.0`), or be specified via direct URL.\n\nHash-checking mode introduces a number of additional constraints:\n\n- Git dependencies are not supported.\n- Editable installations are not supported.\n- Local dependencies are not supported, unless they point to a specific wheel (`.whl`) or\n source archive (`.zip`, `.tar.gz`), as opposed to a directory.", + "type": ["boolean", "null"] + }, + "resolution": { + "description": "The strategy to use when selecting between the different compatible versions for a given\npackage requirement.\n\nBy default, uv will use the latest compatible version of each package (`highest`).", + "anyOf": [ + { + "$ref": "#/definitions/ResolutionMode" + }, + { + "type": "null" + } + ] + }, + "strict": { + "description": "Validate the Python environment, to detect packages with missing dependencies and other\nissues.", + "type": ["boolean", "null"] + }, + "system": { + "description": "Install packages into the system Python environment.\n\nBy default, uv installs into the virtual environment in the current working directory or\nany parent directory. The `--system` option instructs uv to instead use the first Python\nfound in the system `PATH`.\n\nWARNING: `--system` is intended for use in continuous integration (CI) environments and\nshould be used with caution, as it can modify the system Python installation.", + "type": ["boolean", "null"] + }, + "target": { + "description": "Install packages into the specified directory, rather than into the virtual or system Python\nenvironment. The packages will be installed at the top-level of the directory.", + "type": ["string", "null"] + }, + "torch-backend": { + "description": "The backend to use when fetching packages in the PyTorch ecosystem.\n\nWhen set, uv will ignore the configured index URLs for packages in the PyTorch ecosystem,\nand will instead use the defined backend.\n\nFor example, when set to `cpu`, uv will use the CPU-only PyTorch index; when set to `cu126`,\nuv will use the PyTorch index for CUDA 12.6.\n\nThe `auto` mode will attempt to detect the appropriate PyTorch index based on the currently\ninstalled CUDA drivers.\n\nThis option is in preview and may change in any future release.", + "anyOf": [ + { + "$ref": "#/definitions/TorchMode" + }, + { + "type": "null" + } + ] + }, + "universal": { + "description": "Perform a universal resolution, attempting to generate a single `requirements.txt` output\nfile that is compatible with all operating systems, architectures, and Python\nimplementations.\n\nIn universal mode, the current Python version (or user-provided `--python-version`) will be\ntreated as a lower bound. For example, `--universal --python-version 3.7` would produce a\nuniversal resolution for Python 3.7 and later.", + "type": ["boolean", "null"] + }, + "upgrade": { + "description": "Allow package upgrades, ignoring pinned versions in any existing output file.", + "type": ["boolean", "null"] + }, + "upgrade-package": { + "description": "Allow upgrades for a specific package, ignoring pinned versions in any existing output\nfile.\n\nAccepts both standalone package names (`ruff`) and version specifiers (`ruff<0.5.0`).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/Requirement" + } + }, + "verify-hashes": { + "description": "Validate any hashes provided in the requirements file.\n\nUnlike `--require-hashes`, `--verify-hashes` does not require that all requirements have\nhashes; instead, it will limit itself to verifying the hashes of those requirements that do\ninclude them.", + "type": ["boolean", "null"] + } + }, + "additionalProperties": false + }, + "PortablePathBuf": { + "type": "string" + }, + "PrereleaseMode": { + "oneOf": [ + { + "description": "Disallow all pre-release versions.", + "type": "string", + "const": "disallow" + }, + { + "description": "Allow all pre-release versions.", + "type": "string", + "const": "allow" + }, + { + "description": "Allow pre-release versions if all versions of a package are pre-release.", + "type": "string", + "const": "if-necessary" + }, + { + "description": "Allow pre-release versions for first-party packages with explicit pre-release markers in\ntheir version requirements.", + "type": "string", + "const": "explicit" + }, + { + "description": "Allow pre-release versions if all versions of a package are pre-release, or if the package\nhas an explicit pre-release marker in its version requirements.", + "type": "string", + "const": "if-necessary-or-explicit" + } + ] + }, + "PythonDownloads": { + "oneOf": [ + { + "description": "Automatically download managed Python installations when needed.", + "type": "string", + "const": "automatic" + }, + { + "description": "Do not automatically download managed Python installations; require explicit installation.", + "type": "string", + "const": "manual" + }, + { + "description": "Do not ever allow Python downloads.", + "type": "string", + "const": "never" + } + ] + }, + "PythonPreference": { + "oneOf": [ + { + "description": "Only use managed Python installations; never use system Python installations.", + "type": "string", + "const": "only-managed" + }, + { + "description": "Prefer managed Python installations over system Python installations.\n\nSystem Python installations are still preferred over downloading managed Python versions.\nUse `only-managed` to always fetch a managed Python version.", + "type": "string", + "const": "managed" + }, + { + "description": "Prefer system Python installations over managed Python installations.\n\nIf a system Python installation cannot be found, a managed Python installation can be used.", + "type": "string", + "const": "system" + }, + { + "description": "Only use system Python installations; never use managed Python installations.", + "type": "string", + "const": "only-system" + } + ] + }, + "PythonVersion": { + "description": "A Python version specifier, e.g. `3.11` or `3.12.4`.", + "type": "string", + "pattern": "^3\\.\\d+(\\.\\d+)?$" + }, + "RequiredVersion": { + "description": "A version specifier, e.g. `>=0.5.0` or `==0.5.0`.", + "type": "string" + }, + "Requirement": { + "description": "A PEP 508 dependency specifier, e.g., `ruff >= 0.6.0`", + "type": "string" + }, + "ResolutionMode": { + "oneOf": [ + { + "description": "Resolve the highest compatible version of each package.", + "type": "string", + "const": "highest" + }, + { + "description": "Resolve the lowest compatible version of each package.", + "type": "string", + "const": "lowest" + }, + { + "description": "Resolve the lowest compatible version of any direct dependencies, and the highest\ncompatible version of any transitive dependencies.", + "type": "string", + "const": "lowest-direct" + } + ] + }, + "SchemaConflictItem": { + "description": "A single item in a conflicting set.\n\nEach item is a pair of an (optional) package and a corresponding extra or group name for that\npackage.", + "type": "object", + "properties": { + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ], + "default": null + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ], + "default": null + }, + "package": { + "anyOf": [ + { + "$ref": "#/definitions/PackageName" + }, + { + "type": "null" + } + ], + "default": null + } + } + }, + "SchemaConflictSet": { + "description": "Like [`ConflictSet`], but for deserialization in `pyproject.toml`.\n\nThe schema format is different from the in-memory format. Specifically, the\nschema format does not allow specifying the package name (or will make it\noptional in the future), where as the in-memory format needs the package\nname.", + "type": "array", + "items": { + "$ref": "#/definitions/SchemaConflictItem" + } + }, + "SchemaConflicts": { + "description": "Like [`Conflicts`], but for deserialization in `pyproject.toml`.\n\nThe schema format is different from the in-memory format. Specifically, the\nschema format does not allow specifying the package name (or will make it\noptional in the future), where as the in-memory format needs the package\nname.\n\nN.B. `Conflicts` is still used for (de)serialization. Specifically, in the\nlock file, where the package name is required.", + "type": "array", + "items": { + "$ref": "#/definitions/SchemaConflictSet" + } + }, + "SerdePattern": { + "type": "string" + }, + "Source": { + "description": "A `tool.uv.sources` value.", + "anyOf": [ + { + "description": "A remote Git repository, available over HTTPS or SSH.\n\nExample:\n```toml\nflask = { git = \"https://github.com/pallets/flask\", tag = \"3.0.0\" }\n```", + "type": "object", + "properties": { + "branch": { + "type": ["string", "null"] + }, + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "git": { + "description": "The repository URL (without the `git+` prefix).", + "allOf": [ + { + "$ref": "#/definitions/DisplaySafeUrl" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "rev": { + "type": ["string", "null"] + }, + "subdirectory": { + "description": "The path to the directory with the `pyproject.toml`, if it's not in the archive root.", + "anyOf": [ + { + "$ref": "#/definitions/PortablePathBuf" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": ["string", "null"] + } + }, + "additionalProperties": false, + "required": ["git"] + }, + { + "description": "A remote `http://` or `https://` URL, either a wheel (`.whl`) or a source distribution\n(`.zip`, `.tar.gz`).\n\nExample:\n```toml\nflask = { url = \"https://files.pythonhosted.org/packages/61/80/ffe1da13ad9300f87c93af113edd0638c75138c42a0994becfacac078c06/flask-3.0.3-py3-none-any.whl\" }\n```", + "type": "object", + "properties": { + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "subdirectory": { + "description": "For source distributions, the path to the directory with the `pyproject.toml`, if it's\nnot in the archive root.", + "anyOf": [ + { + "$ref": "#/definitions/PortablePathBuf" + }, + { + "type": "null" + } + ] + }, + "url": { + "$ref": "#/definitions/DisplaySafeUrl" + } + }, + "additionalProperties": false, + "required": ["url"] + }, + { + "description": "The path to a dependency, either a wheel (a `.whl` file), source distribution (a `.zip` or\n`.tar.gz` file), or source tree (i.e., a directory containing a `pyproject.toml` or\n`setup.py` file in the root).", + "type": "object", + "properties": { + "editable": { + "description": "`false` by default.", + "type": ["boolean", "null"] + }, + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "package": { + "description": "Whether to treat the dependency as a buildable Python package (`true`) or as a virtual\npackage (`false`). If `false`, the package will not be built or installed, but its\ndependencies will be included in the virtual environment.\n\nWhen omitted, the package status is inferred based on the presence of a `[build-system]`\nin the project's `pyproject.toml`.", + "type": ["boolean", "null"] + }, + "path": { + "$ref": "#/definitions/PortablePathBuf" + } + }, + "additionalProperties": false, + "required": ["path"] + }, + { + "description": "A dependency pinned to a specific index, e.g., `torch` after setting `torch` to `https://download.pytorch.org/whl/cu118`.", + "type": "object", + "properties": { + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "index": { + "$ref": "#/definitions/IndexName" + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + } + }, + "additionalProperties": false, + "required": ["index"] + }, + { + "description": "A dependency on another package in the workspace.", + "type": "object", + "properties": { + "editable": { + "description": "Whether the package should be installed as editable. Defaults to `true`.", + "type": ["boolean", "null"] + }, + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "workspace": { + "description": "When set to `false`, the package will be fetched from the remote index, rather than\nincluded as a workspace package.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": ["workspace"] + } + ] + }, + "Sources": { + "anyOf": [ + { + "$ref": "#/definitions/Source" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/Source" + } + } + ] + }, + "StaticMetadata": { + "description": "A subset of the Python Package Metadata 2.3 standard as specified in\n.", + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/PackageName" + }, + "provides-extra": { + "type": "array", + "default": [], + "items": { + "$ref": "#/definitions/ExtraName" + } + }, + "requires-dist": { + "type": "array", + "default": [], + "items": { + "$ref": "#/definitions/Requirement" + } + }, + "requires-python": { + "description": "PEP 508-style Python requirement, e.g., `>=3.10`", + "type": ["string", "null"] + }, + "version": { + "description": "PEP 440-style package version, e.g., `1.2.3`", + "type": ["string", "null"] + } + }, + "additionalProperties": false, + "required": ["name"] + }, + "StatusCode": { + "description": "HTTP status code (100-599)", + "type": "number", + "maximum": 599, + "minimum": 100 + }, + "TargetTriple": { + "description": "The supported target triples. Each triple consists of an architecture, vendor, and operating\nsystem.\n\nSee: ", + "oneOf": [ + { + "description": "An alias for `x86_64-pc-windows-msvc`, the default target for Windows.", + "type": "string", + "const": "windows" + }, + { + "description": "An alias for `x86_64-unknown-linux-gnu`, the default target for Linux.", + "type": "string", + "const": "linux" + }, + { + "description": "An alias for `aarch64-apple-darwin`, the default target for macOS.", + "type": "string", + "const": "macos" + }, + { + "description": "A 64-bit x86 Windows target.", + "type": "string", + "const": "x86_64-pc-windows-msvc" + }, + { + "description": "An ARM64 Windows target.", + "type": "string", + "const": "aarch64-pc-windows-msvc" + }, + { + "description": "A 32-bit x86 Windows target.", + "type": "string", + "const": "i686-pc-windows-msvc" + }, + { + "description": "An x86 Linux target. Equivalent to `x86_64-manylinux_2_28`.", + "type": "string", + "const": "x86_64-unknown-linux-gnu" + }, + { + "description": "An ARM-based macOS target, as seen on Apple Silicon devices\n\nBy default, assumes the least-recent, non-EOL macOS version (13.0), but respects\nthe `MACOSX_DEPLOYMENT_TARGET` environment variable if set.", + "type": "string", + "const": "aarch64-apple-darwin" + }, + { + "description": "An x86 macOS target.\n\nBy default, assumes the least-recent, non-EOL macOS version (13.0), but respects\nthe `MACOSX_DEPLOYMENT_TARGET` environment variable if set.", + "type": "string", + "const": "x86_64-apple-darwin" + }, + { + "description": "An ARM64 Linux target. Equivalent to `aarch64-manylinux_2_28`.", + "type": "string", + "const": "aarch64-unknown-linux-gnu" + }, + { + "description": "An ARM64 Linux target.", + "type": "string", + "const": "aarch64-unknown-linux-musl" + }, + { + "description": "An `x86_64` Linux target.", + "type": "string", + "const": "x86_64-unknown-linux-musl" + }, + { + "description": "A RISCV64 Linux target.", + "type": "string", + "const": "riscv64-unknown-linux" + }, + { + "description": "An `x86_64` target for the `manylinux2014` platform. Equivalent to `x86_64-manylinux_2_17`.", + "type": "string", + "const": "x86_64-manylinux2014" + }, + { + "description": "An `x86_64` target for the `manylinux_2_17` platform.", + "type": "string", + "const": "x86_64-manylinux_2_17" + }, + { + "description": "An `x86_64` target for the `manylinux_2_28` platform.", + "type": "string", + "const": "x86_64-manylinux_2_28" + }, + { + "description": "An `x86_64` target for the `manylinux_2_31` platform.", + "type": "string", + "const": "x86_64-manylinux_2_31" + }, + { + "description": "An `x86_64` target for the `manylinux_2_32` platform.", + "type": "string", + "const": "x86_64-manylinux_2_32" + }, + { + "description": "An `x86_64` target for the `manylinux_2_33` platform.", + "type": "string", + "const": "x86_64-manylinux_2_33" + }, + { + "description": "An `x86_64` target for the `manylinux_2_34` platform.", + "type": "string", + "const": "x86_64-manylinux_2_34" + }, + { + "description": "An `x86_64` target for the `manylinux_2_35` platform.", + "type": "string", + "const": "x86_64-manylinux_2_35" + }, + { + "description": "An `x86_64` target for the `manylinux_2_36` platform.", + "type": "string", + "const": "x86_64-manylinux_2_36" + }, + { + "description": "An `x86_64` target for the `manylinux_2_37` platform.", + "type": "string", + "const": "x86_64-manylinux_2_37" + }, + { + "description": "An `x86_64` target for the `manylinux_2_38` platform.", + "type": "string", + "const": "x86_64-manylinux_2_38" + }, + { + "description": "An `x86_64` target for the `manylinux_2_39` platform.", + "type": "string", + "const": "x86_64-manylinux_2_39" + }, + { + "description": "An `x86_64` target for the `manylinux_2_40` platform.", + "type": "string", + "const": "x86_64-manylinux_2_40" + }, + { + "description": "An ARM64 target for the `manylinux2014` platform. Equivalent to `aarch64-manylinux_2_17`.", + "type": "string", + "const": "aarch64-manylinux2014" + }, + { + "description": "An ARM64 target for the `manylinux_2_17` platform.", + "type": "string", + "const": "aarch64-manylinux_2_17" + }, + { + "description": "An ARM64 target for the `manylinux_2_28` platform.", + "type": "string", + "const": "aarch64-manylinux_2_28" + }, + { + "description": "An ARM64 target for the `manylinux_2_31` platform.", + "type": "string", + "const": "aarch64-manylinux_2_31" + }, + { + "description": "An ARM64 target for the `manylinux_2_32` platform.", + "type": "string", + "const": "aarch64-manylinux_2_32" + }, + { + "description": "An ARM64 target for the `manylinux_2_33` platform.", + "type": "string", + "const": "aarch64-manylinux_2_33" + }, + { + "description": "An ARM64 target for the `manylinux_2_34` platform.", + "type": "string", + "const": "aarch64-manylinux_2_34" + }, + { + "description": "An ARM64 target for the `manylinux_2_35` platform.", + "type": "string", + "const": "aarch64-manylinux_2_35" + }, + { + "description": "An ARM64 target for the `manylinux_2_36` platform.", + "type": "string", + "const": "aarch64-manylinux_2_36" + }, + { + "description": "An ARM64 target for the `manylinux_2_37` platform.", + "type": "string", + "const": "aarch64-manylinux_2_37" + }, + { + "description": "An ARM64 target for the `manylinux_2_38` platform.", + "type": "string", + "const": "aarch64-manylinux_2_38" + }, + { + "description": "An ARM64 target for the `manylinux_2_39` platform.", + "type": "string", + "const": "aarch64-manylinux_2_39" + }, + { + "description": "An ARM64 target for the `manylinux_2_40` platform.", + "type": "string", + "const": "aarch64-manylinux_2_40" + }, + { + "description": "An ARM64 Android target.\n\nBy default uses Android API level 24, but respects\nthe `ANDROID_API_LEVEL` environment variable if set.", + "type": "string", + "const": "aarch64-linux-android" + }, + { + "description": "An `x86_64` Android target.\n\nBy default uses Android API level 24, but respects\nthe `ANDROID_API_LEVEL` environment variable if set.", + "type": "string", + "const": "x86_64-linux-android" + }, + { + "description": "A wasm32 target using the Pyodide 2024 platform. Meant for use with Python 3.12.", + "type": "string", + "const": "wasm32-pyodide2024" + }, + { + "description": "An ARM64 target for iOS device\n\nBy default, iOS 13.0 is used, but respects the `IPHONEOS_DEPLOYMENT_TARGET`\nenvironment variable if set.", + "type": "string", + "const": "arm64-apple-ios" + }, + { + "description": "An ARM64 target for iOS simulator\n\nBy default, iOS 13.0 is used, but respects the `IPHONEOS_DEPLOYMENT_TARGET`\nenvironment variable if set.", + "type": "string", + "const": "arm64-apple-ios-simulator" + }, + { + "description": "An `x86_64` target for iOS simulator\n\nBy default, iOS 13.0 is used, but respects the `IPHONEOS_DEPLOYMENT_TARGET`\nenvironment variable if set.", + "type": "string", + "const": "x86_64-apple-ios-simulator" + } + ] + }, + "ToolUvDependencyGroups": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DependencyGroupSettings" + } + }, + "ToolUvSources": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Sources" + } + }, + "ToolUvWorkspace": { + "type": "object", + "properties": { + "exclude": { + "description": "Packages to exclude as workspace members. If a package matches both `members` and\n`exclude`, it will be excluded.\n\nSupports both globs and explicit paths.\n\nFor more information on the glob syntax, refer to the [`glob` documentation](https://docs.rs/glob/latest/glob/struct.Pattern.html).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/SerdePattern" + } + }, + "members": { + "description": "Packages to include as workspace members.\n\nSupports both globs and explicit paths.\n\nFor more information on the glob syntax, refer to the [`glob` documentation](https://docs.rs/glob/latest/glob/struct.Pattern.html).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/SerdePattern" + } + } + }, + "additionalProperties": false + }, + "TorchMode": { + "description": "The strategy to use when determining the appropriate PyTorch index.", + "oneOf": [ + { + "description": "Select the appropriate PyTorch index based on the operating system and CUDA driver version.", + "type": "string", + "const": "auto" + }, + { + "description": "Use the CPU-only PyTorch index.", + "type": "string", + "const": "cpu" + }, + { + "description": "Use the PyTorch index for CUDA 13.0.", + "type": "string", + "const": "cu130" + }, + { + "description": "Use the PyTorch index for CUDA 12.9.", + "type": "string", + "const": "cu129" + }, + { + "description": "Use the PyTorch index for CUDA 12.8.", + "type": "string", + "const": "cu128" + }, + { + "description": "Use the PyTorch index for CUDA 12.6.", + "type": "string", + "const": "cu126" + }, + { + "description": "Use the PyTorch index for CUDA 12.5.", + "type": "string", + "const": "cu125" + }, + { + "description": "Use the PyTorch index for CUDA 12.4.", + "type": "string", + "const": "cu124" + }, + { + "description": "Use the PyTorch index for CUDA 12.3.", + "type": "string", + "const": "cu123" + }, + { + "description": "Use the PyTorch index for CUDA 12.2.", + "type": "string", + "const": "cu122" + }, + { + "description": "Use the PyTorch index for CUDA 12.1.", + "type": "string", + "const": "cu121" + }, + { + "description": "Use the PyTorch index for CUDA 12.0.", + "type": "string", + "const": "cu120" + }, + { + "description": "Use the PyTorch index for CUDA 11.8.", + "type": "string", + "const": "cu118" + }, + { + "description": "Use the PyTorch index for CUDA 11.7.", + "type": "string", + "const": "cu117" + }, + { + "description": "Use the PyTorch index for CUDA 11.6.", + "type": "string", + "const": "cu116" + }, + { + "description": "Use the PyTorch index for CUDA 11.5.", + "type": "string", + "const": "cu115" + }, + { + "description": "Use the PyTorch index for CUDA 11.4.", + "type": "string", + "const": "cu114" + }, + { + "description": "Use the PyTorch index for CUDA 11.3.", + "type": "string", + "const": "cu113" + }, + { + "description": "Use the PyTorch index for CUDA 11.2.", + "type": "string", + "const": "cu112" + }, + { + "description": "Use the PyTorch index for CUDA 11.1.", + "type": "string", + "const": "cu111" + }, + { + "description": "Use the PyTorch index for CUDA 11.0.", + "type": "string", + "const": "cu110" + }, + { + "description": "Use the PyTorch index for CUDA 10.2.", + "type": "string", + "const": "cu102" + }, + { + "description": "Use the PyTorch index for CUDA 10.1.", + "type": "string", + "const": "cu101" + }, + { + "description": "Use the PyTorch index for CUDA 10.0.", + "type": "string", + "const": "cu100" + }, + { + "description": "Use the PyTorch index for CUDA 9.2.", + "type": "string", + "const": "cu92" + }, + { + "description": "Use the PyTorch index for CUDA 9.1.", + "type": "string", + "const": "cu91" + }, + { + "description": "Use the PyTorch index for CUDA 9.0.", + "type": "string", + "const": "cu90" + }, + { + "description": "Use the PyTorch index for CUDA 8.0.", + "type": "string", + "const": "cu80" + }, + { + "description": "Use the PyTorch index for ROCm 6.3.", + "type": "string", + "const": "rocm6.3" + }, + { + "description": "Use the PyTorch index for ROCm 6.2.4.", + "type": "string", + "const": "rocm6.2.4" + }, + { + "description": "Use the PyTorch index for ROCm 6.2.", + "type": "string", + "const": "rocm6.2" + }, + { + "description": "Use the PyTorch index for ROCm 6.1.", + "type": "string", + "const": "rocm6.1" + }, + { + "description": "Use the PyTorch index for ROCm 6.0.", + "type": "string", + "const": "rocm6.0" + }, + { + "description": "Use the PyTorch index for ROCm 5.7.", + "type": "string", + "const": "rocm5.7" + }, + { + "description": "Use the PyTorch index for ROCm 5.6.", + "type": "string", + "const": "rocm5.6" + }, + { + "description": "Use the PyTorch index for ROCm 5.5.", + "type": "string", + "const": "rocm5.5" + }, + { + "description": "Use the PyTorch index for ROCm 5.4.2.", + "type": "string", + "const": "rocm5.4.2" + }, + { + "description": "Use the PyTorch index for ROCm 5.4.", + "type": "string", + "const": "rocm5.4" + }, + { + "description": "Use the PyTorch index for ROCm 5.3.", + "type": "string", + "const": "rocm5.3" + }, + { + "description": "Use the PyTorch index for ROCm 5.2.", + "type": "string", + "const": "rocm5.2" + }, + { + "description": "Use the PyTorch index for ROCm 5.1.1.", + "type": "string", + "const": "rocm5.1.1" + }, + { + "description": "Use the PyTorch index for ROCm 4.2.", + "type": "string", + "const": "rocm4.2" + }, + { + "description": "Use the PyTorch index for ROCm 4.1.", + "type": "string", + "const": "rocm4.1" + }, + { + "description": "Use the PyTorch index for ROCm 4.0.1.", + "type": "string", + "const": "rocm4.0.1" + }, + { + "description": "Use the PyTorch index for Intel XPU.", + "type": "string", + "const": "xpu" + } + ] + }, + "TrustedHost": { + "description": "A host or host-port pair.", + "type": "string" + }, + "TrustedPublishing": { + "oneOf": [ + { + "type": "string", + "enum": ["always", "never"] + }, + { + "description": "Attempt trusted publishing when we're in a supported environment, continue if that fails.\n\nSupported environments include GitHub Actions and GitLab CI/CD.", + "type": "string", + "const": "automatic" + } + ] + }, + "WheelDataIncludes": { + "description": "Data includes for wheels.\n\nSee `BuildBackendSettings::data`.", + "type": "object", + "properties": { + "data": { + "type": ["string", "null"], + "default": null + }, + "headers": { + "type": ["string", "null"], + "default": null + }, + "platlib": { + "type": ["string", "null"], + "default": null + }, + "purelib": { + "type": ["string", "null"], + "default": null + }, + "scripts": { + "type": ["string", "null"], + "default": null + } + }, + "additionalProperties": false + } + } +} diff --git a/tests/testdata/json_schemastore_uv_pip_settings/old.json b/tests/testdata/json_schemastore_uv_pip_settings/old.json new file mode 100644 index 0000000..cc91a9f --- /dev/null +++ b/tests/testdata/json_schemastore_uv_pip_settings/old.json @@ -0,0 +1,2466 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/uv.json", + "title": "CombinedOptions", + "description": "Metadata and configuration for uv.", + "type": "object", + "properties": { + "add-bounds": { + "description": "The default version specifier when adding a dependency.\n\nWhen adding a dependency to the project, if no constraint or URL is provided, a constraint\nis added based on the latest compatible version of the package. By default, a lower bound\nconstraint is used, e.g., `>=1.2.3`.\n\nWhen `--frozen` is provided, no resolution is performed, and dependencies are always added\nwithout constraints.\n\nThis option is in preview and may change in any future release.", + "anyOf": [ + { + "$ref": "#/definitions/AddBoundsKind" + }, + { + "type": "null" + } + ] + }, + "allow-insecure-host": { + "description": "Allow insecure connections to host.\n\nExpects to receive either a hostname (e.g., `localhost`), a host-port pair (e.g.,\n`localhost:8080`), or a URL (e.g., `https://localhost`).\n\nWARNING: Hosts included in this list will not be verified against the system's certificate\nstore. Only use `--allow-insecure-host` in a secure network with verified sources, as it\nbypasses SSL verification and could expose you to MITM attacks.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/TrustedHost" + } + }, + "build-backend": { + "description": "Configuration for the uv build backend.\n\nNote that those settings only apply when using the `uv_build` backend, other build backends\n(such as hatchling) have their own configuration.", + "anyOf": [ + { + "$ref": "#/definitions/BuildBackendSettings" + }, + { + "type": "null" + } + ] + }, + "build-constraint-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "cache-dir": { + "description": "Path to the cache directory.\n\nDefaults to `$XDG_CACHE_HOME/uv` or `$HOME/.cache/uv` on Linux and macOS, and\n`%LOCALAPPDATA%\\uv\\cache` on Windows.", + "type": ["string", "null"] + }, + "cache-keys": { + "description": "The keys to consider when caching builds for the project.\n\nCache keys enable you to specify the files or directories that should trigger a rebuild when\nmodified. By default, uv will rebuild a project whenever the `pyproject.toml`, `setup.py`,\nor `setup.cfg` files in the project directory are modified, or if a `src` directory is\nadded or removed, i.e.:\n\n```toml\ncache-keys = [{ file = \"pyproject.toml\" }, { file = \"setup.py\" }, { file = \"setup.cfg\" }, { dir = \"src\" }]\n```\n\nAs an example: if a project uses dynamic metadata to read its dependencies from a\n`requirements.txt` file, you can specify `cache-keys = [{ file = \"requirements.txt\" }, { file = \"pyproject.toml\" }]`\nto ensure that the project is rebuilt whenever the `requirements.txt` file is modified (in\naddition to watching the `pyproject.toml`).\n\nGlobs are supported, following the syntax of the [`glob`](https://docs.rs/glob/0.3.1/glob/struct.Pattern.html)\ncrate. For example, to invalidate the cache whenever a `.toml` file in the project directory\nor any of its subdirectories is modified, you can specify `cache-keys = [{ file = \"**/*.toml\" }]`.\nNote that the use of globs can be expensive, as uv may need to walk the filesystem to\ndetermine whether any files have changed.\n\nCache keys can also include version control information. For example, if a project uses\n`setuptools_scm` to read its version from a Git commit, you can specify `cache-keys = [{ git = { commit = true }, { file = \"pyproject.toml\" }]`\nto include the current Git commit hash in the cache key (in addition to the\n`pyproject.toml`). Git tags are also supported via `cache-keys = [{ git = { commit = true, tags = true } }]`.\n\nCache keys can also include environment variables. For example, if a project relies on\n`MACOSX_DEPLOYMENT_TARGET` or other environment variables to determine its behavior, you can\nspecify `cache-keys = [{ env = \"MACOSX_DEPLOYMENT_TARGET\" }]` to invalidate the cache\nwhenever the environment variable changes.\n\nCache keys only affect the project defined by the `pyproject.toml` in which they're\nspecified (as opposed to, e.g., affecting all members in a workspace), and all paths and\nglobs are interpreted as relative to the project directory.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/CacheKey" + } + }, + "check-url": { + "description": "Check an index URL for existing files to skip duplicate uploads.\n\nThis option allows retrying publishing that failed after only some, but not all files have\nbeen uploaded, and handles error due to parallel uploads of the same file.\n\nBefore uploading, the index is checked. If the exact same file already exists in the index,\nthe file will not be uploaded. If an error occurred during the upload, the index is checked\nagain, to handle cases where the identical file was uploaded twice in parallel.\n\nThe exact behavior will vary based on the index. When uploading to PyPI, uploading the same\nfile succeeds even without `--check-url`, while most other indexes error.\n\nThe index must provide one of the supported hashes (SHA-256, SHA-384, or SHA-512).", + "anyOf": [ + { + "$ref": "#/definitions/IndexUrl" + }, + { + "type": "null" + } + ] + }, + "compile-bytecode": { + "description": "Compile Python files to bytecode after installation.\n\nBy default, uv does not compile Python (`.py`) files to bytecode (`__pycache__/*.pyc`);\ninstead, compilation is performed lazily the first time a module is imported. For use-cases\nin which start time is critical, such as CLI applications and Docker containers, this option\ncan be enabled to trade longer installation times for faster start times.\n\nWhen enabled, uv will process the entire site-packages directory (including packages that\nare not being modified by the current operation) for consistency. Like pip, it will also\nignore errors.", + "type": ["boolean", "null"] + }, + "concurrent-builds": { + "description": "The maximum number of source distributions that uv will build concurrently at any given\ntime.\n\nDefaults to the number of available CPU cores.", + "type": ["integer", "null"], + "format": "uint", + "minimum": 1 + }, + "concurrent-downloads": { + "description": "The maximum number of in-flight concurrent downloads that uv will perform at any given\ntime.", + "type": ["integer", "null"], + "format": "uint", + "minimum": 1 + }, + "concurrent-installs": { + "description": "The number of threads used when installing and unzipping packages.\n\nDefaults to the number of available CPU cores.", + "type": ["integer", "null"], + "format": "uint", + "minimum": 1 + }, + "config-settings": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend,\nspecified as `KEY=VALUE` pairs.", + "anyOf": [ + { + "$ref": "#/definitions/ConfigSettings" + }, + { + "type": "null" + } + ] + }, + "config-settings-package": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend for specific packages,\nspecified as `KEY=VALUE` pairs.\n\nAccepts a map from package names to string key-value pairs.", + "anyOf": [ + { + "$ref": "#/definitions/PackageConfigSettings" + }, + { + "type": "null" + } + ] + }, + "conflicts": { + "description": "A list of sets of conflicting groups or extras.", + "anyOf": [ + { + "$ref": "#/definitions/SchemaConflicts" + }, + { + "type": "null" + } + ] + }, + "constraint-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "default-groups": { + "description": "The list of `dependency-groups` to install by default.\n\nCan also be the literal `\"all\"` to default enable all groups.", + "anyOf": [ + { + "$ref": "#/definitions/DefaultGroups" + }, + { + "type": "null" + } + ] + }, + "dependency-groups": { + "description": "Additional settings for `dependency-groups`.\n\nCurrently this can only be used to add `requires-python` constraints\nto dependency groups (typically to inform uv that your dev tooling\nhas a higher python requirement than your actual project).\n\nThis cannot be used to define dependency groups, use the top-level\n`[dependency-groups]` table for that.", + "anyOf": [ + { + "$ref": "#/definitions/ToolUvDependencyGroups" + }, + { + "type": "null" + } + ] + }, + "dependency-metadata": { + "description": "Pre-defined static metadata for dependencies of the project (direct or transitive). When\nprovided, enables the resolver to use the specified metadata instead of querying the\nregistry or building the relevant package from source.\n\nMetadata should be provided in adherence with the [Metadata 2.3](https://packaging.python.org/en/latest/specifications/core-metadata/)\nstandard, though only the following fields are respected:\n\n- `name`: The name of the package.\n- (Optional) `version`: The version of the package. If omitted, the metadata will be applied\n to all versions of the package.\n- (Optional) `requires-dist`: The dependencies of the package (e.g., `werkzeug>=0.14`).\n- (Optional) `requires-python`: The Python version required by the package (e.g., `>=3.10`).\n- (Optional) `provides-extra`: The extras provided by the package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/StaticMetadata" + } + }, + "dev-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "environments": { + "description": "A list of environment markers, e.g., `python_version >= '3.6'`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "exclude-dependencies": { + "description": "Package names to exclude, e.g., `werkzeug`, `numpy`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "exclude-newer": { + "description": "Limit candidate packages to those that were uploaded prior to a given point in time.\n\nAccepts a superset of [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html) (e.g.,\n`2006-12-02T02:07:43Z`). A full timestamp is required to ensure that the resolver will\nbehave consistently across timezones.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerTimestamp" + }, + { + "type": "null" + } + ] + }, + "exclude-newer-package": { + "description": "Limit candidate packages for specific packages to those that were uploaded prior to the given date.\n\nAccepts package-date pairs in a dictionary format.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerPackage" + }, + { + "type": "null" + } + ] + }, + "extra-build-dependencies": { + "description": "Additional build dependencies for packages.\n\nThis allows extending the PEP 517 build environment for the project's dependencies with\nadditional packages. This is useful for packages that assume the presence of packages like\n`pip`, and do not declare them as build dependencies.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildDependencies" + }, + { + "type": "null" + } + ] + }, + "extra-build-variables": { + "description": "Extra environment variables to set when building certain packages.\n\nEnvironment variables will be added to the environment when building the\nspecified packages.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildVariables" + }, + { + "type": "null" + } + ] + }, + "extra-index-url": { + "description": "Extra URLs of package indexes to use, in addition to `--index-url`.\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nAll indexes provided via this flag take priority over the index specified by\n[`index_url`](#index-url) or [`index`](#index) with `default = true`. When multiple indexes\nare provided, earlier values take priority.\n\nTo control uv's resolution strategy when multiple indexes are present, see\n[`index_strategy`](#index-strategy).\n\n(Deprecated: use `index` instead.)", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "find-links": { + "description": "Locations to search for candidate distributions, in addition to those found in the registry\nindexes.\n\nIf a path, the target must be a directory that contains packages as wheel files (`.whl`) or\nsource distributions (e.g., `.tar.gz` or `.zip`) at the top level.\n\nIf a URL, the page must contain a flat list of links to package files adhering to the\nformats described above.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "fork-strategy": { + "description": "The strategy to use when selecting multiple versions of a given package across Python\nversions and platforms.\n\nBy default, uv will optimize for selecting the latest version of each package for each\nsupported Python version (`requires-python`), while minimizing the number of selected\nversions across platforms.\n\nUnder `fewest`, uv will minimize the number of selected versions for each package,\npreferring older versions that are compatible with a wider range of supported Python\nversions or platforms.", + "anyOf": [ + { + "$ref": "#/definitions/ForkStrategy" + }, + { + "type": "null" + } + ] + }, + "index": { + "description": "The indexes to use when resolving dependencies.\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nIndexes are considered in the order in which they're defined, such that the first-defined\nindex has the highest priority. Further, the indexes provided by this setting are given\nhigher priority than any indexes specified via [`index_url`](#index-url) or\n[`extra_index_url`](#extra-index-url). uv will only consider the first index that contains\na given package, unless an alternative [index strategy](#index-strategy) is specified.\n\nIf an index is marked as `explicit = true`, it will be used exclusively for the\ndependencies that select it explicitly via `[tool.uv.sources]`, as in:\n\n```toml\n[[tool.uv.index]]\nname = \"pytorch\"\nurl = \"https://download.pytorch.org/whl/cu121\"\nexplicit = true\n\n[tool.uv.sources]\ntorch = { index = \"pytorch\" }\n```\n\nIf an index is marked as `default = true`, it will be moved to the end of the prioritized list, such that it is\ngiven the lowest priority when resolving packages. Additionally, marking an index as default will disable the\nPyPI default index.", + "type": ["array", "null"], + "default": null, + "items": { + "$ref": "#/definitions/Index" + } + }, + "index-strategy": { + "description": "The strategy to use when resolving against multiple index URLs.\n\nBy default, uv will stop at the first index on which a given package is available, and\nlimit resolutions to those present on that first index (`first-index`). This prevents\n\"dependency confusion\" attacks, whereby an attacker can upload a malicious package under the\nsame name to an alternate index.", + "anyOf": [ + { + "$ref": "#/definitions/IndexStrategy" + }, + { + "type": "null" + } + ] + }, + "index-url": { + "description": "The URL of the Python package index (by default: ).\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nThe index provided by this setting is given lower priority than any indexes specified via\n[`extra_index_url`](#extra-index-url) or [`index`](#index).\n\n(Deprecated: use `index` instead.)", + "anyOf": [ + { + "$ref": "#/definitions/IndexUrl" + }, + { + "type": "null" + } + ] + }, + "keyring-provider": { + "description": "Attempt to use `keyring` for authentication for index URLs.\n\nAt present, only `--keyring-provider subprocess` is supported, which configures uv to\nuse the `keyring` CLI to handle authentication.", + "anyOf": [ + { + "$ref": "#/definitions/KeyringProviderType" + }, + { + "type": "null" + } + ] + }, + "link-mode": { + "description": "The method to use when installing packages from the global cache.\n\nDefaults to `clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and\nWindows.\n\nWARNING: The use of symlink link mode is discouraged, as they create tight coupling between\nthe cache and the target environment. For example, clearing the cache (`uv cache clean`)\nwill break all installed packages by way of removing the underlying source files. Use\nsymlinks with caution.", + "anyOf": [ + { + "$ref": "#/definitions/LinkMode" + }, + { + "type": "null" + } + ] + }, + "managed": { + "description": "Whether the project is managed by uv. If `false`, uv will ignore the project when\n`uv run` is invoked.", + "type": ["boolean", "null"] + }, + "native-tls": { + "description": "Whether to load TLS certificates from the platform's native certificate store.\n\nBy default, uv loads certificates from the bundled `webpki-roots` crate. The\n`webpki-roots` are a reliable set of trust roots from Mozilla, and including them in uv\nimproves portability and performance (especially on macOS).\n\nHowever, in some cases, you may want to use the platform's native certificate store,\nespecially if you're relying on a corporate trust root (e.g., for a mandatory proxy) that's\nincluded in your system's certificate store.", + "type": ["boolean", "null"] + }, + "no-binary": { + "description": "Don't install pre-built wheels.\n\nThe given packages will be built and installed from source. The resolver will still use\npre-built wheels to extract package metadata, if available.", + "type": ["boolean", "null"] + }, + "no-binary-package": { + "description": "Don't install pre-built wheels for a specific package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-build": { + "description": "Don't build source distributions.\n\nWhen enabled, resolving will not run arbitrary Python code. The cached wheels of\nalready-built source distributions will be reused, but operations that require building\ndistributions will exit with an error.", + "type": ["boolean", "null"] + }, + "no-build-isolation": { + "description": "Disable isolation when building source distributions.\n\nAssumes that build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["boolean", "null"] + }, + "no-build-isolation-package": { + "description": "Disable isolation when building source distributions for a specific package.\n\nAssumes that the packages' build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-build-package": { + "description": "Don't build source distributions for a specific package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-cache": { + "description": "Avoid reading from or writing to the cache, instead using a temporary directory for the\nduration of the operation.", + "type": ["boolean", "null"] + }, + "no-index": { + "description": "Ignore all registry indexes (e.g., PyPI), instead relying on direct URL dependencies and\nthose provided via `--find-links`.", + "type": ["boolean", "null"] + }, + "no-sources": { + "description": "Ignore the `tool.uv.sources` table when resolving dependencies. Used to lock against the\nstandards-compliant, publishable package metadata, as opposed to using any local or Git\nsources.", + "type": ["boolean", "null"] + }, + "offline": { + "description": "Disable network access, relying only on locally cached data and locally available files.", + "type": ["boolean", "null"] + }, + "override-dependencies": { + "description": "PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "package": { + "description": "Whether the project should be considered a Python package, or a non-package (\"virtual\")\nproject.\n\nPackages are built and installed into the virtual environment in editable mode and thus\nrequire a build backend, while virtual projects are _not_ built or installed; instead, only\ntheir dependencies are included in the virtual environment.\n\nCreating a package requires that a `build-system` is present in the `pyproject.toml`, and\nthat the project adheres to a structure that adheres to the build backend's expectations\n(e.g., a `src` layout).", + "type": ["boolean", "null"] + }, + "pip": { + "anyOf": [ + { + "$ref": "#/definitions/PipOptions" + }, + { + "type": "null" + } + ] + }, + "prerelease": { + "description": "The strategy to use when considering pre-release versions.\n\nBy default, uv will accept pre-releases for packages that _only_ publish pre-releases,\nalong with first-party requirements that contain an explicit pre-release marker in the\ndeclared specifiers (`if-necessary-or-explicit`).", + "anyOf": [ + { + "$ref": "#/definitions/PrereleaseMode" + }, + { + "type": "null" + } + ] + }, + "preview": { + "description": "Whether to enable experimental, preview features.", + "type": ["boolean", "null"] + }, + "publish-url": { + "description": "The URL for publishing packages to the Python package index (by default:\n).", + "anyOf": [ + { + "$ref": "#/definitions/DisplaySafeUrl" + }, + { + "type": "null" + } + ] + }, + "pypy-install-mirror": { + "description": "Mirror URL to use for downloading managed PyPy installations.\n\nBy default, managed PyPy installations are downloaded from [downloads.python.org](https://downloads.python.org/).\nThis variable can be set to a mirror URL to use a different source for PyPy installations.\nThe provided URL will replace `https://downloads.python.org/pypy` in, e.g., `https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2`.\n\nDistributions can be read from a\nlocal directory by using the `file://` URL scheme.", + "type": ["string", "null"] + }, + "python-downloads": { + "description": "Whether to allow Python downloads.", + "anyOf": [ + { + "$ref": "#/definitions/PythonDownloads" + }, + { + "type": "null" + } + ] + }, + "python-downloads-json-url": { + "description": "URL pointing to JSON of custom Python installations.\n\nNote that currently, only local paths are supported.", + "type": ["string", "null"] + }, + "python-install-mirror": { + "description": "Mirror URL for downloading managed Python installations.\n\nBy default, managed Python installations are downloaded from [`python-build-standalone`](https://github.com/astral-sh/python-build-standalone).\nThis variable can be set to a mirror URL to use a different source for Python installations.\nThe provided URL will replace `https://github.com/astral-sh/python-build-standalone/releases/download` in, e.g., `https://github.com/astral-sh/python-build-standalone/releases/download/20240713/cpython-3.12.4%2B20240713-aarch64-apple-darwin-install_only.tar.gz`.\n\nDistributions can be read from a local directory by using the `file://` URL scheme.", + "type": ["string", "null"] + }, + "python-preference": { + "description": "Whether to prefer using Python installations that are already present on the system, or\nthose that are downloaded and installed by uv.", + "anyOf": [ + { + "$ref": "#/definitions/PythonPreference" + }, + { + "type": "null" + } + ] + }, + "reinstall": { + "description": "Reinstall all packages, regardless of whether they're already installed. Implies `refresh`.", + "type": ["boolean", "null"] + }, + "reinstall-package": { + "description": "Reinstall a specific package, regardless of whether it's already installed. Implies\n`refresh-package`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "required-environments": { + "description": "A list of environment markers, e.g., `sys_platform == 'darwin'.", + "type": ["array", "null"], + "items": { + "type": "string" + } + }, + "required-version": { + "description": "Enforce a requirement on the version of uv.\n\nIf the version of uv does not meet the requirement at runtime, uv will exit\nwith an error.\n\nAccepts a [PEP 440](https://peps.python.org/pep-0440/) specifier, like `==0.5.0` or `>=0.5.0`.", + "anyOf": [ + { + "$ref": "#/definitions/RequiredVersion" + }, + { + "type": "null" + } + ] + }, + "resolution": { + "description": "The strategy to use when selecting between the different compatible versions for a given\npackage requirement.\n\nBy default, uv will use the latest compatible version of each package (`highest`).", + "anyOf": [ + { + "$ref": "#/definitions/ResolutionMode" + }, + { + "type": "null" + } + ] + }, + "sources": { + "description": "The sources to use when resolving dependencies.\n\n`tool.uv.sources` enriches the dependency metadata with additional sources, incorporated\nduring development. A dependency source can be a Git repository, a URL, a local path, or an\nalternative registry.\n\nSee [Dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/) for more.", + "anyOf": [ + { + "$ref": "#/definitions/ToolUvSources" + }, + { + "type": "null" + } + ] + }, + "trusted-publishing": { + "description": "Configure trusted publishing.\n\nBy default, uv checks for trusted publishing when running in a supported environment, but\nignores it if it isn't configured.\n\nuv's supported environments for trusted publishing include GitHub Actions and GitLab CI/CD.", + "anyOf": [ + { + "$ref": "#/definitions/TrustedPublishing" + }, + { + "type": "null" + } + ] + }, + "upgrade": { + "description": "Allow package upgrades, ignoring pinned versions in any existing output file.", + "type": ["boolean", "null"] + }, + "upgrade-package": { + "description": "Allow upgrades for a specific package, ignoring pinned versions in any existing output\nfile.\n\nAccepts both standalone package names (`ruff`) and version specifiers (`ruff<0.5.0`).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/Requirement" + } + }, + "workspace": { + "description": "The workspace definition for the project, if any.", + "anyOf": [ + { + "$ref": "#/definitions/ToolUvWorkspace" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "AddBoundsKind": { + "description": "The default version specifier when adding a dependency.", + "oneOf": [ + { + "description": "Only a lower bound, e.g., `>=1.2.3`.", + "type": "string", + "const": "lower" + }, + { + "description": "Allow the same major version, similar to the semver caret, e.g., `>=1.2.3, <2.0.0`.\n\nLeading zeroes are skipped, e.g. `>=0.1.2, <0.2.0`.", + "type": "string", + "const": "major" + }, + { + "description": "Allow the same minor version, similar to the semver tilde, e.g., `>=1.2.3, <1.3.0`.\n\nLeading zeroes are skipped, e.g. `>=0.1.2, <0.1.3`.", + "type": "string", + "const": "minor" + }, + { + "description": "Pin the exact version, e.g., `==1.2.3`.\n\nThis option is not recommended, as versions are already pinned in the uv lockfile.", + "type": "string", + "const": "exact" + } + ] + }, + "AnnotationStyle": { + "description": "Indicate the style of annotation comments, used to indicate the dependencies that requested each\npackage.", + "oneOf": [ + { + "description": "Render the annotations on a single, comma-separated line.", + "type": "string", + "const": "line" + }, + { + "description": "Render each annotation on its own line.", + "type": "string", + "const": "split" + } + ] + }, + "AuthPolicy": { + "description": "When to use authentication.", + "oneOf": [ + { + "description": "Authenticate when necessary.\n\nIf credentials are provided, they will be used. Otherwise, an unauthenticated request will\nbe attempted first. If the request fails, uv will search for credentials. If credentials are\nfound, an authenticated request will be attempted.", + "type": "string", + "const": "auto" + }, + { + "description": "Always authenticate.\n\nIf credentials are not provided, uv will eagerly search for credentials. If credentials\ncannot be found, uv will error instead of attempting an unauthenticated request.", + "type": "string", + "const": "always" + }, + { + "description": "Never authenticate.\n\nIf credentials are provided, uv will error. uv will not search for credentials.", + "type": "string", + "const": "never" + } + ] + }, + "BuildBackendSettings": { + "description": "Settings for the uv build backend (`uv_build`).\n\nNote that those settings only apply when using the `uv_build` backend, other build backends\n(such as hatchling) have their own configuration.\n\nAll options that accept globs use the portable glob patterns from\n[PEP 639](https://packaging.python.org/en/latest/specifications/glob-patterns/).", + "type": "object", + "properties": { + "data": { + "description": "Data includes for wheels.\n\nEach entry is a directory, whose contents are copied to the matching directory in the wheel\nin `-.data/(purelib|platlib|headers|scripts|data)`. Upon installation, this\ndata is moved to its target location, as defined by\n. Usually, small\ndata files are included by placing them in the Python module instead of using data includes.\n\n- `scripts`: Installed to the directory for executables, `/bin` on Unix or\n `\\Scripts` on Windows. This directory is added to `PATH` when the virtual\n environment is activated or when using `uv run`, so this data type can be used to install\n additional binaries. Consider using `project.scripts` instead for Python entrypoints.\n- `data`: Installed over the virtualenv environment root.\n\n Warning: This may override existing files!\n\n- `headers`: Installed to the include directory. Compilers building Python packages\n with this package as build requirement use the include directory to find additional header\n files.\n- `purelib` and `platlib`: Installed to the `site-packages` directory. It is not recommended\n to use these two options.", + "allOf": [ + { + "$ref": "#/definitions/WheelDataIncludes" + } + ], + "default": { + "data": null, + "headers": null, + "platlib": null, + "purelib": null, + "scripts": null + } + }, + "default-excludes": { + "description": "If set to `false`, the default excludes aren't applied.\n\nDefault excludes: `__pycache__`, `*.pyc`, and `*.pyo`.", + "type": "boolean", + "default": true + }, + "module-name": { + "description": "The name of the module directory inside `module-root`.\n\nThe default module name is the package name with dots and dashes replaced by underscores.\n\nPackage names need to be valid Python identifiers, and the directory needs to contain a\n`__init__.py`. An exception are stubs packages, whose name ends with `-stubs`, with the stem\nbeing the module name, and which contain a `__init__.pyi` file.\n\nFor namespace packages with a single module, the path can be dotted, e.g., `foo.bar` or\n`foo-stubs.bar`.\n\nFor namespace packages with multiple modules, the path can be a list, e.g.,\n`[\"foo\", \"bar\"]`. We recommend using a single module per package, splitting multiple\npackages into a workspace.\n\nNote that using this option runs the risk of creating two packages with different names but\nthe same module names. Installing such packages together leads to unspecified behavior,\noften with corrupted files or directory trees.", + "anyOf": [ + { + "$ref": "#/definitions/ModuleName" + }, + { + "type": "null" + } + ], + "default": null + }, + "module-root": { + "description": "The directory that contains the module directory.\n\nCommon values are `src` (src layout, the default) or an empty path (flat layout).", + "type": "string", + "default": "src" + }, + "namespace": { + "description": "Build a namespace package.\n\nBuild a PEP 420 implicit namespace package, allowing more than one root `__init__.py`.\n\nUse this option when the namespace package contains multiple root `__init__.py`, for\nnamespace packages with a single root `__init__.py` use a dotted `module-name` instead.\n\nTo compare dotted `module-name` and `namespace = true`, the first example below can be\nexpressed with `module-name = \"cloud.database\"`: There is one root `__init__.py` `database`.\nIn the second example, we have three roots (`cloud.database`, `cloud.database_pro`,\n`billing.modules.database_pro`), so `namespace = true` is required.\n\n```text\nsrc\n└── cloud\n └── database\n ├── __init__.py\n ├── query_builder\n │ └── __init__.py\n └── sql\n ├── parser.py\n └── __init__.py\n```\n\n```text\nsrc\n├── cloud\n│ ├── database\n│ │ ├── __init__.py\n│ │ ├── query_builder\n│ │ │ └── __init__.py\n│ │ └── sql\n│ │ ├── __init__.py\n│ │ └── parser.py\n│ └── database_pro\n│ ├── __init__.py\n│ └── query_builder.py\n└── billing\n └── modules\n └── database_pro\n ├── __init__.py\n └── sql.py\n```", + "type": "boolean", + "default": false + }, + "source-exclude": { + "description": "Glob expressions which files and directories to exclude from the source distribution.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "source-include": { + "description": "Glob expressions which files and directories to additionally include in the source\ndistribution.\n\n`pyproject.toml` and the contents of the module directory are always included.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "wheel-exclude": { + "description": "Glob expressions which files and directories to exclude from the wheel.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + }, + "CacheKey": { + "anyOf": [ + { + "description": "Ex) `\"Cargo.lock\"` or `\"**/*.toml\"`", + "type": "string" + }, + { + "description": "Ex) `{ file = \"Cargo.lock\" }` or `{ file = \"**/*.toml\" }`", + "type": "object", + "properties": { + "file": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["file"] + }, + { + "description": "Ex) `{ dir = \"src\" }`", + "type": "object", + "properties": { + "dir": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["dir"] + }, + { + "description": "Ex) `{ git = true }` or `{ git = { commit = true, tags = false } }`", + "type": "object", + "properties": { + "git": { + "$ref": "#/definitions/GitPattern" + } + }, + "additionalProperties": false, + "required": ["git"] + }, + { + "description": "Ex) `{ env = \"UV_CACHE_INFO\" }`", + "type": "object", + "properties": { + "env": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["env"] + } + ] + }, + "ConfigSettingValue": { + "anyOf": [ + { + "description": "The value consists of a single string.", + "type": "string" + }, + { + "description": "The value consists of a list of strings.", + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "ConfigSettings": { + "description": "Settings to pass to a PEP 517 build backend, structured as a map from (string) key to string or\nlist of strings.\n\nSee: ", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ConfigSettingValue" + } + }, + "DefaultGroups": { + "description": "Either the literal \"all\" or a list of groups", + "oneOf": [ + { + "description": "All groups are defaulted", + "type": "string", + "const": "all" + }, + { + "description": "A list of groups", + "type": "object", + "properties": { + "List": { + "type": "array", + "items": { + "$ref": "#/definitions/GroupName" + } + } + }, + "additionalProperties": false, + "required": ["List"] + } + ] + }, + "DependencyGroupSettings": { + "type": "object", + "properties": { + "requires-python": { + "description": "Version of python to require when installing this group", + "type": ["string", "null"] + } + } + }, + "DisplaySafeUrl": { + "description": "A [`Url`] wrapper that redacts credentials when displaying the URL.\n\n`DisplaySafeUrl` wraps the standard [`url::Url`] type, providing functionality to mask\nsecrets by default when the URL is displayed or logged. This helps prevent accidental\nexposure of sensitive information in logs and debug output.\n\n# Examples\n\n```\nuse uv_redacted::DisplaySafeUrl;\nuse std::str::FromStr;\n\n// Create a `DisplaySafeUrl` from a `&str`\nlet mut url = DisplaySafeUrl::parse(\"https://user:password@example.com\").unwrap();\n\n// Display will mask secrets\nassert_eq!(url.to_string(), \"https://user:****@example.com/\");\n\n// You can still access the username and password\nassert_eq!(url.username(), \"user\");\nassert_eq!(url.password(), Some(\"password\"));\n\n// And you can still update the username and password\nlet _ = url.set_username(\"new_user\");\nlet _ = url.set_password(Some(\"new_password\"));\nassert_eq!(url.username(), \"new_user\");\nassert_eq!(url.password(), Some(\"new_password\"));\n\n// It is also possible to remove the credentials entirely\nurl.remove_credentials();\nassert_eq!(url.username(), \"\");\nassert_eq!(url.password(), None);\n```", + "type": "string", + "format": "uri" + }, + "ExcludeNewerPackage": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ExcludeNewerTimestamp" + } + }, + "ExcludeNewerTimestamp": { + "description": "Exclude distributions uploaded after the given timestamp.\n\nAccepts both RFC 3339 timestamps (e.g., `2006-12-02T02:07:43Z`) and local dates in the same format (e.g., `2006-12-02`).", + "type": "string", + "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(Z|[+-]\\d{2}:\\d{2}))?$" + }, + "ExtraBuildDependencies": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtraBuildDependency" + } + } + }, + "ExtraBuildDependency": { + "anyOf": [ + { + "$ref": "#/definitions/Requirement" + }, + { + "type": "object", + "properties": { + "match-runtime": { + "type": "boolean" + }, + "requirement": { + "$ref": "#/definitions/Requirement" + } + }, + "required": ["requirement", "match-runtime"] + } + ] + }, + "ExtraBuildVariables": { + "description": "Extra environment variables to set during builds, on a per-package basis.", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "ExtraName": { + "description": "The normalized name of an extra dependency.\n\nConverts the name to lowercase and collapses runs of `-`, `_`, and `.` down to a single `-`.\nFor example, `---`, `.`, and `__` are all converted to a single `-`.\n\nSee:\n- \n- ", + "type": "string" + }, + "ForkStrategy": { + "oneOf": [ + { + "description": "Optimize for selecting the fewest number of versions for each package. Older versions may\nbe preferred if they are compatible with a wider range of supported Python versions or\nplatforms.", + "type": "string", + "const": "fewest" + }, + { + "description": "Optimize for selecting latest supported version of each package, for each supported Python\nversion.", + "type": "string", + "const": "requires-python" + } + ] + }, + "GitPattern": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/GitSet" + } + ] + }, + "GitSet": { + "type": "object", + "properties": { + "commit": { + "type": ["boolean", "null"] + }, + "tags": { + "type": ["boolean", "null"] + } + }, + "additionalProperties": false + }, + "GroupName": { + "description": "The normalized name of a dependency group.\n\nSee:\n- \n- ", + "type": "string" + }, + "Index": { + "type": "object", + "properties": { + "authenticate": { + "description": "When uv should use authentication for requests to the index.\n\n```toml\n[[tool.uv.index]]\nname = \"my-index\"\nurl = \"https:///simple\"\nauthenticate = \"always\"\n```", + "allOf": [ + { + "$ref": "#/definitions/AuthPolicy" + } + ], + "default": "auto" + }, + "cache-control": { + "description": "Cache control configuration for this index.\n\nWhen set, these headers will override the server's cache control headers\nfor both package metadata requests and artifact downloads.\n\n```toml\n[[tool.uv.index]]\nname = \"my-index\"\nurl = \"https:///simple\"\ncache-control = { api = \"max-age=600\", files = \"max-age=3600\" }\n```", + "anyOf": [ + { + "$ref": "#/definitions/IndexCacheControl" + }, + { + "type": "null" + } + ], + "default": null + }, + "default": { + "description": "Mark the index as the default index.\n\nBy default, uv uses PyPI as the default index, such that even if additional indexes are\ndefined via `[[tool.uv.index]]`, PyPI will still be used as a fallback for packages that\naren't found elsewhere. To disable the PyPI default, set `default = true` on at least one\nother index.\n\nMarking an index as default will move it to the front of the list of indexes, such that it\nis given the highest priority when resolving packages.", + "type": "boolean", + "default": false + }, + "explicit": { + "description": "Mark the index as explicit.\n\nExplicit indexes will _only_ be used when explicitly requested via a `[tool.uv.sources]`\ndefinition, as in:\n\n```toml\n[[tool.uv.index]]\nname = \"pytorch\"\nurl = \"https://download.pytorch.org/whl/cu121\"\nexplicit = true\n\n[tool.uv.sources]\ntorch = { index = \"pytorch\" }\n```", + "type": "boolean", + "default": false + }, + "format": { + "description": "The format used by the index.\n\nIndexes can either be PEP 503-compliant (i.e., a PyPI-style registry implementing the Simple\nAPI) or structured as a flat list of distributions (e.g., `--find-links`). In both cases,\nindexes can point to either local or remote resources.", + "allOf": [ + { + "$ref": "#/definitions/IndexFormat" + } + ], + "default": "simple" + }, + "ignore-error-codes": { + "description": "Status codes that uv should ignore when deciding whether\nto continue searching in the next index after a failure.\n\n```toml\n[[tool.uv.index]]\nname = \"my-index\"\nurl = \"https:///simple\"\nignore-error-codes = [401, 403]\n```", + "type": ["array", "null"], + "default": null, + "items": { + "$ref": "#/definitions/StatusCode" + } + }, + "name": { + "description": "The name of the index.\n\nIndex names can be used to reference indexes elsewhere in the configuration. For example,\nyou can pin a package to a specific index by name:\n\n```toml\n[[tool.uv.index]]\nname = \"pytorch\"\nurl = \"https://download.pytorch.org/whl/cu121\"\n\n[tool.uv.sources]\ntorch = { index = \"pytorch\" }\n```", + "anyOf": [ + { + "$ref": "#/definitions/IndexName" + }, + { + "type": "null" + } + ] + }, + "publish-url": { + "description": "The URL of the upload endpoint.\n\nWhen using `uv publish --index `, this URL is used for publishing.\n\nA configuration for the default index PyPI would look as follows:\n\n```toml\n[[tool.uv.index]]\nname = \"pypi\"\nurl = \"https://pypi.org/simple\"\npublish-url = \"https://upload.pypi.org/legacy/\"\n```", + "anyOf": [ + { + "$ref": "#/definitions/DisplaySafeUrl" + }, + { + "type": "null" + } + ] + }, + "url": { + "description": "The URL of the index.\n\nExpects to receive a URL (e.g., `https://pypi.org/simple`) or a local path.", + "allOf": [ + { + "$ref": "#/definitions/IndexUrl" + } + ] + } + }, + "required": ["url"] + }, + "IndexCacheControl": { + "description": "Cache control configuration for an index.", + "type": "object", + "properties": { + "api": { + "description": "Cache control header for Simple API requests.", + "type": ["string", "null"] + }, + "files": { + "description": "Cache control header for file downloads.", + "type": ["string", "null"] + } + } + }, + "IndexFormat": { + "oneOf": [ + { + "description": "A PyPI-style index implementing the Simple Repository API.", + "type": "string", + "const": "simple" + }, + { + "description": "A `--find-links`-style index containing a flat list of wheels and source distributions.", + "type": "string", + "const": "flat" + } + ] + }, + "IndexName": { + "description": "The normalized name of an index.\n\nIndex names may contain letters, digits, hyphens, underscores, and periods, and must be ASCII.", + "type": "string" + }, + "IndexStrategy": { + "oneOf": [ + { + "description": "Only use results from the first index that returns a match for a given package name.\n\nWhile this differs from pip's behavior, it's the default index strategy as it's the most\nsecure.", + "type": "string", + "const": "first-index" + }, + { + "description": "Search for every package name across all indexes, exhausting the versions from the first\nindex before moving on to the next.\n\nIn this strategy, we look for every package across all indexes. When resolving, we attempt\nto use versions from the indexes in order, such that we exhaust all available versions from\nthe first index before moving on to the next. Further, if a version is found to be\nincompatible in the first index, we do not reconsider that version in subsequent indexes,\neven if the secondary index might contain compatible versions (e.g., variants of the same\nversions with different ABI tags or Python version constraints).\n\nSee: ", + "type": "string", + "const": "unsafe-first-match" + }, + { + "description": "Search for every package name across all indexes, preferring the \"best\" version found. If a\npackage version is in multiple indexes, only look at the entry for the first index.\n\nIn this strategy, we look for every package across all indexes. When resolving, we consider\nall versions from all indexes, choosing the \"best\" version found (typically, the highest\ncompatible version).\n\nThis most closely matches pip's behavior, but exposes the resolver to \"dependency confusion\"\nattacks whereby malicious actors can publish packages to public indexes with the same name\nas internal packages, causing the resolver to install the malicious package in lieu of\nthe intended internal package.\n\nSee: ", + "type": "string", + "const": "unsafe-best-match" + } + ] + }, + "IndexUrl": { + "description": "The URL of an index to use for fetching packages (e.g., `https://pypi.org/simple`), or a local path.", + "type": "string" + }, + "KeyringProviderType": { + "description": "Keyring provider type to use for credential lookup.", + "oneOf": [ + { + "description": "Do not use keyring for credential lookup.", + "type": "string", + "const": "disabled" + }, + { + "description": "Use the `keyring` command for credential lookup.", + "type": "string", + "const": "subprocess" + } + ] + }, + "LinkMode": { + "oneOf": [ + { + "description": "Clone (i.e., copy-on-write) packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "clone" + }, + { + "description": "Copy packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "copy" + }, + { + "description": "Hard link packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "hardlink" + }, + { + "description": "Symbolically link packages from the wheel into the `site-packages` directory.", + "type": "string", + "const": "symlink" + } + ] + }, + "MarkerTree": { + "description": "A PEP 508-compliant marker expression, e.g., `sys_platform == 'Darwin'`", + "type": "string" + }, + "ModuleName": { + "description": "Whether to include a single module or multiple modules.", + "anyOf": [ + { + "description": "A single module name.", + "type": "string" + }, + { + "description": "Multiple module names, which are all included.", + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "PackageConfigSettings": { + "description": "Settings to pass to PEP 517 build backends on a per-package basis.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ConfigSettings" + } + }, + "PackageName": { + "description": "The normalized name of a package.\n\nConverts the name to lowercase and collapses runs of `-`, `_`, and `.` down to a single `-`.\nFor example, `---`, `.`, and `__` are all converted to a single `-`.\n\nSee: ", + "type": "string" + }, + "PackageNameSpecifier": { + "description": "The name of a package, or `:all:` or `:none:` to select or omit all packages, respectively.", + "type": "string", + "pattern": "^(:none:|:all:|([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]))$" + }, + "PipGroupName": { + "description": "The pip-compatible variant of a [`GroupName`].\n\nEither or :.\nIf is omitted it defaults to \"pyproject.toml\".", + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/GroupName" + }, + "path": { + "type": ["string", "null"] + } + }, + "required": ["name"] + }, + "PipOptions": { + "description": "Settings that are specific to the `uv pip` command-line interface.\n\nThese values will be ignored when running commands outside the `uv pip` namespace (e.g.,\n`uv lock`, `uvx`).", + "type": "object", + "properties": { + "all-extras": { + "description": "Include all optional dependencies.\n\nOnly applies to `pyproject.toml`, `setup.py`, and `setup.cfg` sources.", + "type": ["boolean", "null"] + }, + "allow-empty-requirements": { + "description": "Allow `uv pip sync` with empty requirements, which will clear the environment of all\npackages.", + "type": ["boolean", "null"] + }, + "annotation-style": { + "description": "The style of the annotation comments included in the output file, used to indicate the\nsource of each package.", + "anyOf": [ + { + "$ref": "#/definitions/AnnotationStyle" + }, + { + "type": "null" + } + ] + }, + "break-system-packages": { + "description": "Allow uv to modify an `EXTERNALLY-MANAGED` Python installation.\n\nWARNING: `--break-system-packages` is intended for use in continuous integration (CI)\nenvironments, when installing into Python installations that are managed by an external\npackage manager, like `apt`. It should be used with caution, as such Python installations\nexplicitly recommend against modifications by other package managers (like uv or pip).", + "type": ["boolean", "null"] + }, + "compile-bytecode": { + "description": "Compile Python files to bytecode after installation.\n\nBy default, uv does not compile Python (`.py`) files to bytecode (`__pycache__/*.pyc`);\ninstead, compilation is performed lazily the first time a module is imported. For use-cases\nin which start time is critical, such as CLI applications and Docker containers, this option\ncan be enabled to trade longer installation times for faster start times.\n\nWhen enabled, uv will process the entire site-packages directory (including packages that\nare not being modified by the current operation) for consistency. Like pip, it will also\nignore errors.", + "type": ["boolean", "null"] + }, + "config-settings": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend,\nspecified as `KEY=VALUE` pairs.", + "anyOf": [ + { + "$ref": "#/definitions/ConfigSettings" + }, + { + "type": "null" + } + ] + }, + "config-settings-package": { + "description": "Settings to pass to the [PEP 517](https://peps.python.org/pep-0517/) build backend for specific packages,\nspecified as `KEY=VALUE` pairs.", + "anyOf": [ + { + "$ref": "#/definitions/PackageConfigSettings" + }, + { + "type": "null" + } + ] + }, + "custom-compile-command": { + "description": "The header comment to include at the top of the output file generated by `uv pip compile`.\n\nUsed to reflect custom build scripts and commands that wrap `uv pip compile`.", + "type": ["string", "null"] + }, + "dependency-metadata": { + "description": "Pre-defined static metadata for dependencies of the project (direct or transitive). When\nprovided, enables the resolver to use the specified metadata instead of querying the\nregistry or building the relevant package from source.\n\nMetadata should be provided in adherence with the [Metadata 2.3](https://packaging.python.org/en/latest/specifications/core-metadata/)\nstandard, though only the following fields are respected:\n\n- `name`: The name of the package.\n- (Optional) `version`: The version of the package. If omitted, the metadata will be applied\n to all versions of the package.\n- (Optional) `requires-dist`: The dependencies of the package (e.g., `werkzeug>=0.14`).\n- (Optional) `requires-python`: The Python version required by the package (e.g., `>=3.10`).\n- (Optional) `provides-extra`: The extras provided by the package.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/StaticMetadata" + } + }, + "emit-build-options": { + "description": "Include `--no-binary` and `--only-binary` entries in the output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "emit-find-links": { + "description": "Include `--find-links` entries in the output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "emit-index-annotation": { + "description": "Include comment annotations indicating the index used to resolve each package (e.g.,\n`# from https://pypi.org/simple`).", + "type": ["boolean", "null"] + }, + "emit-index-url": { + "description": "Include `--index-url` and `--extra-index-url` entries in the output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "emit-marker-expression": { + "description": "Whether to emit a marker string indicating the conditions under which the set of pinned\ndependencies is valid.\n\nThe pinned dependencies may be valid even when the marker expression is\nfalse, but when the expression is true, the requirements are known to\nbe correct.", + "type": ["boolean", "null"] + }, + "exclude-newer": { + "description": "Limit candidate packages to those that were uploaded prior to a given point in time.\n\nAccepts a superset of [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html) (e.g.,\n`2006-12-02T02:07:43Z`). A full timestamp is required to ensure that the resolver will\nbehave consistently across timezones.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerTimestamp" + }, + { + "type": "null" + } + ] + }, + "exclude-newer-package": { + "description": "Limit candidate packages for specific packages to those that were uploaded prior to the given date.\n\nAccepts package-date pairs in a dictionary format.", + "anyOf": [ + { + "$ref": "#/definitions/ExcludeNewerPackage" + }, + { + "type": "null" + } + ] + }, + "extra": { + "description": "Include optional dependencies from the specified extra; may be provided more than once.\n\nOnly applies to `pyproject.toml`, `setup.py`, and `setup.cfg` sources.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/ExtraName" + } + }, + "extra-build-dependencies": { + "description": "Additional build dependencies for packages.\n\nThis allows extending the PEP 517 build environment for the project's dependencies with\nadditional packages. This is useful for packages that assume the presence of packages like\n`pip`, and do not declare them as build dependencies.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildDependencies" + }, + { + "type": "null" + } + ] + }, + "extra-build-variables": { + "description": "Extra environment variables to set when building certain packages.\n\nEnvironment variables will be added to the environment when building the\nspecified packages.", + "anyOf": [ + { + "$ref": "#/definitions/ExtraBuildVariables" + }, + { + "type": "null" + } + ] + }, + "extra-index-url": { + "description": "Extra URLs of package indexes to use, in addition to `--index-url`.\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nAll indexes provided via this flag take priority over the index specified by\n[`index_url`](#index-url). When multiple indexes are provided, earlier values take priority.\n\nTo control uv's resolution strategy when multiple indexes are present, see\n[`index_strategy`](#index-strategy).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "find-links": { + "description": "Locations to search for candidate distributions, in addition to those found in the registry\nindexes.\n\nIf a path, the target must be a directory that contains packages as wheel files (`.whl`) or\nsource distributions (e.g., `.tar.gz` or `.zip`) at the top level.\n\nIf a URL, the page must contain a flat list of links to package files adhering to the\nformats described above.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/IndexUrl" + } + }, + "fork-strategy": { + "description": "The strategy to use when selecting multiple versions of a given package across Python\nversions and platforms.\n\nBy default, uv will optimize for selecting the latest version of each package for each\nsupported Python version (`requires-python`), while minimizing the number of selected\nversions across platforms.\n\nUnder `fewest`, uv will minimize the number of selected versions for each package,\npreferring older versions that are compatible with a wider range of supported Python\nversions or platforms.", + "anyOf": [ + { + "$ref": "#/definitions/ForkStrategy" + }, + { + "type": "null" + } + ] + }, + "generate-hashes": { + "description": "Include distribution hashes in the output file.", + "type": ["boolean", "null"] + }, + "group": { + "description": "Include the following dependency groups.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PipGroupName" + } + }, + "index-strategy": { + "description": "The strategy to use when resolving against multiple index URLs.\n\nBy default, uv will stop at the first index on which a given package is available, and\nlimit resolutions to those present on that first index (`first-index`). This prevents\n\"dependency confusion\" attacks, whereby an attacker can upload a malicious package under the\nsame name to an alternate index.", + "anyOf": [ + { + "$ref": "#/definitions/IndexStrategy" + }, + { + "type": "null" + } + ] + }, + "index-url": { + "description": "The URL of the Python package index (by default: ).\n\nAccepts either a repository compliant with [PEP 503](https://peps.python.org/pep-0503/)\n(the simple repository API), or a local directory laid out in the same format.\n\nThe index provided by this setting is given lower priority than any indexes specified via\n[`extra_index_url`](#extra-index-url).", + "anyOf": [ + { + "$ref": "#/definitions/IndexUrl" + }, + { + "type": "null" + } + ] + }, + "keyring-provider": { + "description": "Attempt to use `keyring` for authentication for index URLs.\n\nAt present, only `--keyring-provider subprocess` is supported, which configures uv to\nuse the `keyring` CLI to handle authentication.", + "anyOf": [ + { + "$ref": "#/definitions/KeyringProviderType" + }, + { + "type": "null" + } + ] + }, + "link-mode": { + "description": "The method to use when installing packages from the global cache.\n\nDefaults to `clone` (also known as Copy-on-Write) on macOS, and `hardlink` on Linux and\nWindows.\n\nWARNING: The use of symlink link mode is discouraged, as they create tight coupling between\nthe cache and the target environment. For example, clearing the cache (`uv cache clean`)\nwill break all installed packages by way of removing the underlying source files. Use\nsymlinks with caution.", + "anyOf": [ + { + "$ref": "#/definitions/LinkMode" + }, + { + "type": "null" + } + ] + }, + "no-annotate": { + "description": "Exclude comment annotations indicating the source of each package from the output file\ngenerated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "no-binary": { + "description": "Don't install pre-built wheels.\n\nThe given packages will be built and installed from source. The resolver will still use\npre-built wheels to extract package metadata, if available.\n\nMultiple packages may be provided. Disable binaries for all packages with `:all:`.\nClear previously specified packages with `:none:`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageNameSpecifier" + } + }, + "no-build": { + "description": "Don't build source distributions.\n\nWhen enabled, resolving will not run arbitrary Python code. The cached wheels of\nalready-built source distributions will be reused, but operations that require building\ndistributions will exit with an error.\n\nAlias for `--only-binary :all:`.", + "type": ["boolean", "null"] + }, + "no-build-isolation": { + "description": "Disable isolation when building source distributions.\n\nAssumes that build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["boolean", "null"] + }, + "no-build-isolation-package": { + "description": "Disable isolation when building source distributions for a specific package.\n\nAssumes that the packages' build dependencies specified by [PEP 518](https://peps.python.org/pep-0518/)\nare already installed.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-deps": { + "description": "Ignore package dependencies, instead only add those packages explicitly listed\non the command line to the resulting requirements file.", + "type": ["boolean", "null"] + }, + "no-emit-package": { + "description": "Specify a package to omit from the output resolution. Its dependencies will still be\nincluded in the resolution. Equivalent to pip-compile's `--unsafe-package` option.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "no-extra": { + "description": "Exclude the specified optional dependencies if `all-extras` is supplied.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/ExtraName" + } + }, + "no-header": { + "description": "Exclude the comment header at the top of output file generated by `uv pip compile`.", + "type": ["boolean", "null"] + }, + "no-index": { + "description": "Ignore all registry indexes (e.g., PyPI), instead relying on direct URL dependencies and\nthose provided via `--find-links`.", + "type": ["boolean", "null"] + }, + "no-sources": { + "description": "Ignore the `tool.uv.sources` table when resolving dependencies. Used to lock against the\nstandards-compliant, publishable package metadata, as opposed to using any local or Git\nsources.", + "type": ["boolean", "null"] + }, + "no-strip-extras": { + "description": "Include extras in the output file.\n\nBy default, uv strips extras, as any packages pulled in by the extras are already included\nas dependencies in the output file directly. Further, output files generated with\n`--no-strip-extras` cannot be used as constraints files in `install` and `sync` invocations.", + "type": ["boolean", "null"] + }, + "no-strip-markers": { + "description": "Include environment markers in the output file generated by `uv pip compile`.\n\nBy default, uv strips environment markers, as the resolution generated by `compile` is\nonly guaranteed to be correct for the target environment.", + "type": ["boolean", "null"] + }, + "only-binary": { + "description": "Only use pre-built wheels; don't build source distributions.\n\nWhen enabled, resolving will not run code from the given packages. The cached wheels of already-built\nsource distributions will be reused, but operations that require building distributions will\nexit with an error.\n\nMultiple packages may be provided. Disable binaries for all packages with `:all:`.\nClear previously specified packages with `:none:`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageNameSpecifier" + } + }, + "output-file": { + "description": "Write the requirements generated by `uv pip compile` to the given `requirements.txt` file.\n\nIf the file already exists, the existing versions will be preferred when resolving\ndependencies, unless `--upgrade` is also specified.", + "type": ["string", "null"] + }, + "prefix": { + "description": "Install packages into `lib`, `bin`, and other top-level folders under the specified\ndirectory, as if a virtual environment were present at that location.\n\nIn general, prefer the use of `--python` to install into an alternate environment, as\nscripts and other artifacts installed via `--prefix` will reference the installing\ninterpreter, rather than any interpreter added to the `--prefix` directory, rendering them\nnon-portable.", + "type": ["string", "null"] + }, + "prerelease": { + "description": "The strategy to use when considering pre-release versions.\n\nBy default, uv will accept pre-releases for packages that _only_ publish pre-releases,\nalong with first-party requirements that contain an explicit pre-release marker in the\ndeclared specifiers (`if-necessary-or-explicit`).", + "anyOf": [ + { + "$ref": "#/definitions/PrereleaseMode" + }, + { + "type": "null" + } + ] + }, + "python": { + "description": "The Python interpreter into which packages should be installed.\n\nBy default, uv installs into the virtual environment in the current working directory or\nany parent directory. The `--python` option allows you to specify a different interpreter,\nwhich is intended for use in continuous integration (CI) environments or other automated\nworkflows.\n\nSupported formats:\n- `3.10` looks for an installed Python 3.10 in the registry on Windows (see\n `py --list-paths`), or `python3.10` on Linux and macOS.\n- `python3.10` or `python.exe` looks for a binary with the given name in `PATH`.\n- `/home/ferris/.local/bin/python3.10` uses the exact Python at the given path.", + "type": ["string", "null"] + }, + "python-platform": { + "description": "The platform for which requirements should be resolved.\n\nRepresented as a \"target triple\", a string that describes the target platform in terms of\nits CPU, vendor, and operating system name, like `x86_64-unknown-linux-gnu` or\n`aarch64-apple-darwin`.", + "anyOf": [ + { + "$ref": "#/definitions/TargetTriple" + }, + { + "type": "null" + } + ] + }, + "python-version": { + "description": "The minimum Python version that should be supported by the resolved requirements (e.g.,\n`3.8` or `3.8.17`).\n\nIf a patch version is omitted, the minimum patch version is assumed. For example, `3.8` is\nmapped to `3.8.0`.", + "anyOf": [ + { + "$ref": "#/definitions/PythonVersion" + }, + { + "type": "null" + } + ] + }, + "reinstall": { + "description": "Reinstall all packages, regardless of whether they're already installed. Implies `refresh`.", + "type": ["boolean", "null"] + }, + "reinstall-package": { + "description": "Reinstall a specific package, regardless of whether it's already installed. Implies\n`refresh-package`.", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/PackageName" + } + }, + "require-hashes": { + "description": "Require a matching hash for each requirement.\n\nHash-checking mode is all or nothing. If enabled, _all_ requirements must be provided\nwith a corresponding hash or set of hashes. Additionally, if enabled, _all_ requirements\nmust either be pinned to exact versions (e.g., `==1.0.0`), or be specified via direct URL.\n\nHash-checking mode introduces a number of additional constraints:\n\n- Git dependencies are not supported.\n- Editable installations are not supported.\n- Local dependencies are not supported, unless they point to a specific wheel (`.whl`) or\n source archive (`.zip`, `.tar.gz`), as opposed to a directory.", + "type": ["boolean", "null"] + }, + "resolution": { + "description": "The strategy to use when selecting between the different compatible versions for a given\npackage requirement.\n\nBy default, uv will use the latest compatible version of each package (`highest`).", + "anyOf": [ + { + "$ref": "#/definitions/ResolutionMode" + }, + { + "type": "null" + } + ] + }, + "strict": { + "description": "Validate the Python environment, to detect packages with missing dependencies and other\nissues.", + "type": ["boolean", "null"] + }, + "system": { + "description": "Install packages into the system Python environment.\n\nBy default, uv installs into the virtual environment in the current working directory or\nany parent directory. The `--system` option instructs uv to instead use the first Python\nfound in the system `PATH`.\n\nWARNING: `--system` is intended for use in continuous integration (CI) environments and\nshould be used with caution, as it can modify the system Python installation.", + "type": ["boolean", "null"] + }, + "target": { + "description": "Install packages into the specified directory, rather than into the virtual or system Python\nenvironment. The packages will be installed at the top-level of the directory.", + "type": ["string", "null"] + }, + "torch-backend": { + "description": "The backend to use when fetching packages in the PyTorch ecosystem.\n\nWhen set, uv will ignore the configured index URLs for packages in the PyTorch ecosystem,\nand will instead use the defined backend.\n\nFor example, when set to `cpu`, uv will use the CPU-only PyTorch index; when set to `cu126`,\nuv will use the PyTorch index for CUDA 12.6.\n\nThe `auto` mode will attempt to detect the appropriate PyTorch index based on the currently\ninstalled CUDA drivers.\n\nThis option is in preview and may change in any future release.", + "anyOf": [ + { + "$ref": "#/definitions/TorchMode" + }, + { + "type": "null" + } + ] + }, + "universal": { + "description": "Perform a universal resolution, attempting to generate a single `requirements.txt` output\nfile that is compatible with all operating systems, architectures, and Python\nimplementations.\n\nIn universal mode, the current Python version (or user-provided `--python-version`) will be\ntreated as a lower bound. For example, `--universal --python-version 3.7` would produce a\nuniversal resolution for Python 3.7 and later.", + "type": ["boolean", "null"] + }, + "upgrade": { + "description": "Allow package upgrades, ignoring pinned versions in any existing output file.", + "type": ["boolean", "null"] + }, + "upgrade-package": { + "description": "Allow upgrades for a specific package, ignoring pinned versions in any existing output\nfile.\n\nAccepts both standalone package names (`ruff`) and version specifiers (`ruff<0.5.0`).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/Requirement" + } + }, + "verify-hashes": { + "description": "Validate any hashes provided in the requirements file.\n\nUnlike `--require-hashes`, `--verify-hashes` does not require that all requirements have\nhashes; instead, it will limit itself to verifying the hashes of those requirements that do\ninclude them.", + "type": ["boolean", "null"] + } + }, + "additionalProperties": false + }, + "PortablePathBuf": { + "type": "string" + }, + "PrereleaseMode": { + "oneOf": [ + { + "description": "Disallow all pre-release versions.", + "type": "string", + "const": "disallow" + }, + { + "description": "Allow all pre-release versions.", + "type": "string", + "const": "allow" + }, + { + "description": "Allow pre-release versions if all versions of a package are pre-release.", + "type": "string", + "const": "if-necessary" + }, + { + "description": "Allow pre-release versions for first-party packages with explicit pre-release markers in\ntheir version requirements.", + "type": "string", + "const": "explicit" + }, + { + "description": "Allow pre-release versions if all versions of a package are pre-release, or if the package\nhas an explicit pre-release marker in its version requirements.", + "type": "string", + "const": "if-necessary-or-explicit" + } + ] + }, + "PythonDownloads": { + "oneOf": [ + { + "description": "Automatically download managed Python installations when needed.", + "type": "string", + "const": "automatic" + }, + { + "description": "Do not automatically download managed Python installations; require explicit installation.", + "type": "string", + "const": "manual" + }, + { + "description": "Do not ever allow Python downloads.", + "type": "string", + "const": "never" + } + ] + }, + "PythonPreference": { + "oneOf": [ + { + "description": "Only use managed Python installations; never use system Python installations.", + "type": "string", + "const": "only-managed" + }, + { + "description": "Prefer managed Python installations over system Python installations.\n\nSystem Python installations are still preferred over downloading managed Python versions.\nUse `only-managed` to always fetch a managed Python version.", + "type": "string", + "const": "managed" + }, + { + "description": "Prefer system Python installations over managed Python installations.\n\nIf a system Python installation cannot be found, a managed Python installation can be used.", + "type": "string", + "const": "system" + }, + { + "description": "Only use system Python installations; never use managed Python installations.", + "type": "string", + "const": "only-system" + } + ] + }, + "PythonVersion": { + "description": "A Python version specifier, e.g. `3.11` or `3.12.4`.", + "type": "string", + "pattern": "^3\\.\\d+(\\.\\d+)?$" + }, + "RequiredVersion": { + "description": "A version specifier, e.g. `>=0.5.0` or `==0.5.0`.", + "type": "string" + }, + "Requirement": { + "description": "A PEP 508 dependency specifier, e.g., `ruff >= 0.6.0`", + "type": "string" + }, + "ResolutionMode": { + "oneOf": [ + { + "description": "Resolve the highest compatible version of each package.", + "type": "string", + "const": "highest" + }, + { + "description": "Resolve the lowest compatible version of each package.", + "type": "string", + "const": "lowest" + }, + { + "description": "Resolve the lowest compatible version of any direct dependencies, and the highest\ncompatible version of any transitive dependencies.", + "type": "string", + "const": "lowest-direct" + } + ] + }, + "SchemaConflictItem": { + "description": "A single item in a conflicting set.\n\nEach item is a pair of an (optional) package and a corresponding extra or group name for that\npackage.", + "type": "object", + "properties": { + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ], + "default": null + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ], + "default": null + }, + "package": { + "anyOf": [ + { + "$ref": "#/definitions/PackageName" + }, + { + "type": "null" + } + ], + "default": null + } + } + }, + "SchemaConflictSet": { + "description": "Like [`ConflictSet`], but for deserialization in `pyproject.toml`.\n\nThe schema format is different from the in-memory format. Specifically, the\nschema format does not allow specifying the package name (or will make it\noptional in the future), where as the in-memory format needs the package\nname.", + "type": "array", + "items": { + "$ref": "#/definitions/SchemaConflictItem" + } + }, + "SchemaConflicts": { + "description": "Like [`Conflicts`], but for deserialization in `pyproject.toml`.\n\nThe schema format is different from the in-memory format. Specifically, the\nschema format does not allow specifying the package name (or will make it\noptional in the future), where as the in-memory format needs the package\nname.\n\nN.B. `Conflicts` is still used for (de)serialization. Specifically, in the\nlock file, where the package name is required.", + "type": "array", + "items": { + "$ref": "#/definitions/SchemaConflictSet" + } + }, + "SerdePattern": { + "type": "string" + }, + "Source": { + "description": "A `tool.uv.sources` value.", + "anyOf": [ + { + "description": "A remote Git repository, available over HTTPS or SSH.\n\nExample:\n```toml\nflask = { git = \"https://github.com/pallets/flask\", tag = \"3.0.0\" }\n```", + "type": "object", + "properties": { + "branch": { + "type": ["string", "null"] + }, + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "git": { + "description": "The repository URL (without the `git+` prefix).", + "allOf": [ + { + "$ref": "#/definitions/DisplaySafeUrl" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "rev": { + "type": ["string", "null"] + }, + "subdirectory": { + "description": "The path to the directory with the `pyproject.toml`, if it's not in the archive root.", + "anyOf": [ + { + "$ref": "#/definitions/PortablePathBuf" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": ["string", "null"] + } + }, + "additionalProperties": false, + "required": ["git"] + }, + { + "description": "A remote `http://` or `https://` URL, either a wheel (`.whl`) or a source distribution\n(`.zip`, `.tar.gz`).\n\nExample:\n```toml\nflask = { url = \"https://files.pythonhosted.org/packages/61/80/ffe1da13ad9300f87c93af113edd0638c75138c42a0994becfacac078c06/flask-3.0.3-py3-none-any.whl\" }\n```", + "type": "object", + "properties": { + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "subdirectory": { + "description": "For source distributions, the path to the directory with the `pyproject.toml`, if it's\nnot in the archive root.", + "anyOf": [ + { + "$ref": "#/definitions/PortablePathBuf" + }, + { + "type": "null" + } + ] + }, + "url": { + "$ref": "#/definitions/DisplaySafeUrl" + } + }, + "additionalProperties": false, + "required": ["url"] + }, + { + "description": "The path to a dependency, either a wheel (a `.whl` file), source distribution (a `.zip` or\n`.tar.gz` file), or source tree (i.e., a directory containing a `pyproject.toml` or\n`setup.py` file in the root).", + "type": "object", + "properties": { + "editable": { + "description": "`false` by default.", + "type": ["boolean", "null"] + }, + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "package": { + "description": "Whether to treat the dependency as a buildable Python package (`true`) or as a virtual\npackage (`false`). If `false`, the package will not be built or installed, but its\ndependencies will be included in the virtual environment.\n\nWhen omitted, the package status is inferred based on the presence of a `[build-system]`\nin the project's `pyproject.toml`.", + "type": ["boolean", "null"] + }, + "path": { + "$ref": "#/definitions/PortablePathBuf" + } + }, + "additionalProperties": false, + "required": ["path"] + }, + { + "description": "A dependency pinned to a specific index, e.g., `torch` after setting `torch` to `https://download.pytorch.org/whl/cu118`.", + "type": "object", + "properties": { + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "index": { + "$ref": "#/definitions/IndexName" + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + } + }, + "additionalProperties": false, + "required": ["index"] + }, + { + "description": "A dependency on another package in the workspace.", + "type": "object", + "properties": { + "editable": { + "description": "Whether the package should be installed as editable. Defaults to `true`.", + "type": ["boolean", "null"] + }, + "extra": { + "anyOf": [ + { + "$ref": "#/definitions/ExtraName" + }, + { + "type": "null" + } + ] + }, + "group": { + "anyOf": [ + { + "$ref": "#/definitions/GroupName" + }, + { + "type": "null" + } + ] + }, + "marker": { + "$ref": "#/definitions/MarkerTree" + }, + "workspace": { + "description": "When set to `false`, the package will be fetched from the remote index, rather than\nincluded as a workspace package.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": ["workspace"] + } + ] + }, + "Sources": { + "anyOf": [ + { + "$ref": "#/definitions/Source" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/Source" + } + } + ] + }, + "StaticMetadata": { + "description": "A subset of the Python Package Metadata 2.3 standard as specified in\n.", + "type": "object", + "properties": { + "name": { + "$ref": "#/definitions/PackageName" + }, + "provides-extra": { + "type": "array", + "default": [], + "items": { + "$ref": "#/definitions/ExtraName" + } + }, + "requires-dist": { + "type": "array", + "default": [], + "items": { + "$ref": "#/definitions/Requirement" + } + }, + "requires-python": { + "description": "PEP 508-style Python requirement, e.g., `>=3.10`", + "type": ["string", "null"] + }, + "version": { + "description": "PEP 440-style package version, e.g., `1.2.3`", + "type": ["string", "null"] + } + }, + "additionalProperties": false, + "required": ["name"] + }, + "StatusCode": { + "description": "HTTP status code (100-599)", + "type": "number", + "maximum": 599, + "minimum": 100 + }, + "TargetTriple": { + "description": "The supported target triples. Each triple consists of an architecture, vendor, and operating\nsystem.\n\nSee: ", + "oneOf": [ + { + "description": "An alias for `x86_64-pc-windows-msvc`, the default target for Windows.", + "type": "string", + "const": "windows" + }, + { + "description": "An alias for `x86_64-unknown-linux-gnu`, the default target for Linux.", + "type": "string", + "const": "linux" + }, + { + "description": "An alias for `aarch64-apple-darwin`, the default target for macOS.", + "type": "string", + "const": "macos" + }, + { + "description": "A 64-bit x86 Windows target.", + "type": "string", + "const": "x86_64-pc-windows-msvc" + }, + { + "description": "An ARM64 Windows target.", + "type": "string", + "const": "aarch64-pc-windows-msvc" + }, + { + "description": "A 32-bit x86 Windows target.", + "type": "string", + "const": "i686-pc-windows-msvc" + }, + { + "description": "An x86 Linux target. Equivalent to `x86_64-manylinux_2_28`.", + "type": "string", + "const": "x86_64-unknown-linux-gnu" + }, + { + "description": "An ARM-based macOS target, as seen on Apple Silicon devices\n\nBy default, assumes the least-recent, non-EOL macOS version (13.0), but respects\nthe `MACOSX_DEPLOYMENT_TARGET` environment variable if set.", + "type": "string", + "const": "aarch64-apple-darwin" + }, + { + "description": "An x86 macOS target.\n\nBy default, assumes the least-recent, non-EOL macOS version (13.0), but respects\nthe `MACOSX_DEPLOYMENT_TARGET` environment variable if set.", + "type": "string", + "const": "x86_64-apple-darwin" + }, + { + "description": "An ARM64 Linux target. Equivalent to `aarch64-manylinux_2_28`.", + "type": "string", + "const": "aarch64-unknown-linux-gnu" + }, + { + "description": "An ARM64 Linux target.", + "type": "string", + "const": "aarch64-unknown-linux-musl" + }, + { + "description": "An `x86_64` Linux target.", + "type": "string", + "const": "x86_64-unknown-linux-musl" + }, + { + "description": "A RISCV64 Linux target.", + "type": "string", + "const": "riscv64-unknown-linux" + }, + { + "description": "An `x86_64` target for the `manylinux2014` platform. Equivalent to `x86_64-manylinux_2_17`.", + "type": "string", + "const": "x86_64-manylinux2014" + }, + { + "description": "An `x86_64` target for the `manylinux_2_17` platform.", + "type": "string", + "const": "x86_64-manylinux_2_17" + }, + { + "description": "An `x86_64` target for the `manylinux_2_28` platform.", + "type": "string", + "const": "x86_64-manylinux_2_28" + }, + { + "description": "An `x86_64` target for the `manylinux_2_31` platform.", + "type": "string", + "const": "x86_64-manylinux_2_31" + }, + { + "description": "An `x86_64` target for the `manylinux_2_32` platform.", + "type": "string", + "const": "x86_64-manylinux_2_32" + }, + { + "description": "An `x86_64` target for the `manylinux_2_33` platform.", + "type": "string", + "const": "x86_64-manylinux_2_33" + }, + { + "description": "An `x86_64` target for the `manylinux_2_34` platform.", + "type": "string", + "const": "x86_64-manylinux_2_34" + }, + { + "description": "An `x86_64` target for the `manylinux_2_35` platform.", + "type": "string", + "const": "x86_64-manylinux_2_35" + }, + { + "description": "An `x86_64` target for the `manylinux_2_36` platform.", + "type": "string", + "const": "x86_64-manylinux_2_36" + }, + { + "description": "An `x86_64` target for the `manylinux_2_37` platform.", + "type": "string", + "const": "x86_64-manylinux_2_37" + }, + { + "description": "An `x86_64` target for the `manylinux_2_38` platform.", + "type": "string", + "const": "x86_64-manylinux_2_38" + }, + { + "description": "An `x86_64` target for the `manylinux_2_39` platform.", + "type": "string", + "const": "x86_64-manylinux_2_39" + }, + { + "description": "An `x86_64` target for the `manylinux_2_40` platform.", + "type": "string", + "const": "x86_64-manylinux_2_40" + }, + { + "description": "An ARM64 target for the `manylinux2014` platform. Equivalent to `aarch64-manylinux_2_17`.", + "type": "string", + "const": "aarch64-manylinux2014" + }, + { + "description": "An ARM64 target for the `manylinux_2_17` platform.", + "type": "string", + "const": "aarch64-manylinux_2_17" + }, + { + "description": "An ARM64 target for the `manylinux_2_28` platform.", + "type": "string", + "const": "aarch64-manylinux_2_28" + }, + { + "description": "An ARM64 target for the `manylinux_2_31` platform.", + "type": "string", + "const": "aarch64-manylinux_2_31" + }, + { + "description": "An ARM64 target for the `manylinux_2_32` platform.", + "type": "string", + "const": "aarch64-manylinux_2_32" + }, + { + "description": "An ARM64 target for the `manylinux_2_33` platform.", + "type": "string", + "const": "aarch64-manylinux_2_33" + }, + { + "description": "An ARM64 target for the `manylinux_2_34` platform.", + "type": "string", + "const": "aarch64-manylinux_2_34" + }, + { + "description": "An ARM64 target for the `manylinux_2_35` platform.", + "type": "string", + "const": "aarch64-manylinux_2_35" + }, + { + "description": "An ARM64 target for the `manylinux_2_36` platform.", + "type": "string", + "const": "aarch64-manylinux_2_36" + }, + { + "description": "An ARM64 target for the `manylinux_2_37` platform.", + "type": "string", + "const": "aarch64-manylinux_2_37" + }, + { + "description": "An ARM64 target for the `manylinux_2_38` platform.", + "type": "string", + "const": "aarch64-manylinux_2_38" + }, + { + "description": "An ARM64 target for the `manylinux_2_39` platform.", + "type": "string", + "const": "aarch64-manylinux_2_39" + }, + { + "description": "An ARM64 target for the `manylinux_2_40` platform.", + "type": "string", + "const": "aarch64-manylinux_2_40" + }, + { + "description": "An ARM64 Android target.\n\nBy default uses Android API level 24, but respects\nthe `ANDROID_API_LEVEL` environment variable if set.", + "type": "string", + "const": "aarch64-linux-android" + }, + { + "description": "An `x86_64` Android target.\n\nBy default uses Android API level 24, but respects\nthe `ANDROID_API_LEVEL` environment variable if set.", + "type": "string", + "const": "x86_64-linux-android" + }, + { + "description": "A wasm32 target using the Pyodide 2024 platform. Meant for use with Python 3.12.", + "type": "string", + "const": "wasm32-pyodide2024" + }, + { + "description": "An ARM64 target for iOS device\n\nBy default, iOS 13.0 is used, but respects the `IPHONEOS_DEPLOYMENT_TARGET`\nenvironment variable if set.", + "type": "string", + "const": "arm64-apple-ios" + }, + { + "description": "An ARM64 target for iOS simulator\n\nBy default, iOS 13.0 is used, but respects the `IPHONEOS_DEPLOYMENT_TARGET`\nenvironment variable if set.", + "type": "string", + "const": "arm64-apple-ios-simulator" + }, + { + "description": "An `x86_64` target for iOS simulator\n\nBy default, iOS 13.0 is used, but respects the `IPHONEOS_DEPLOYMENT_TARGET`\nenvironment variable if set.", + "type": "string", + "const": "x86_64-apple-ios-simulator" + } + ] + }, + "ToolUvDependencyGroups": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DependencyGroupSettings" + } + }, + "ToolUvSources": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Sources" + } + }, + "ToolUvWorkspace": { + "type": "object", + "properties": { + "exclude": { + "description": "Packages to exclude as workspace members. If a package matches both `members` and\n`exclude`, it will be excluded.\n\nSupports both globs and explicit paths.\n\nFor more information on the glob syntax, refer to the [`glob` documentation](https://docs.rs/glob/latest/glob/struct.Pattern.html).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/SerdePattern" + } + }, + "members": { + "description": "Packages to include as workspace members.\n\nSupports both globs and explicit paths.\n\nFor more information on the glob syntax, refer to the [`glob` documentation](https://docs.rs/glob/latest/glob/struct.Pattern.html).", + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/SerdePattern" + } + } + }, + "additionalProperties": false + }, + "TorchMode": { + "description": "The strategy to use when determining the appropriate PyTorch index.", + "oneOf": [ + { + "description": "Select the appropriate PyTorch index based on the operating system and CUDA driver version.", + "type": "string", + "const": "auto" + }, + { + "description": "Use the CPU-only PyTorch index.", + "type": "string", + "const": "cpu" + }, + { + "description": "Use the PyTorch index for CUDA 13.0.", + "type": "string", + "const": "cu130" + }, + { + "description": "Use the PyTorch index for CUDA 12.9.", + "type": "string", + "const": "cu129" + }, + { + "description": "Use the PyTorch index for CUDA 12.8.", + "type": "string", + "const": "cu128" + }, + { + "description": "Use the PyTorch index for CUDA 12.6.", + "type": "string", + "const": "cu126" + }, + { + "description": "Use the PyTorch index for CUDA 12.5.", + "type": "string", + "const": "cu125" + }, + { + "description": "Use the PyTorch index for CUDA 12.4.", + "type": "string", + "const": "cu124" + }, + { + "description": "Use the PyTorch index for CUDA 12.3.", + "type": "string", + "const": "cu123" + }, + { + "description": "Use the PyTorch index for CUDA 12.2.", + "type": "string", + "const": "cu122" + }, + { + "description": "Use the PyTorch index for CUDA 12.1.", + "type": "string", + "const": "cu121" + }, + { + "description": "Use the PyTorch index for CUDA 12.0.", + "type": "string", + "const": "cu120" + }, + { + "description": "Use the PyTorch index for CUDA 11.8.", + "type": "string", + "const": "cu118" + }, + { + "description": "Use the PyTorch index for CUDA 11.7.", + "type": "string", + "const": "cu117" + }, + { + "description": "Use the PyTorch index for CUDA 11.6.", + "type": "string", + "const": "cu116" + }, + { + "description": "Use the PyTorch index for CUDA 11.5.", + "type": "string", + "const": "cu115" + }, + { + "description": "Use the PyTorch index for CUDA 11.4.", + "type": "string", + "const": "cu114" + }, + { + "description": "Use the PyTorch index for CUDA 11.3.", + "type": "string", + "const": "cu113" + }, + { + "description": "Use the PyTorch index for CUDA 11.2.", + "type": "string", + "const": "cu112" + }, + { + "description": "Use the PyTorch index for CUDA 11.1.", + "type": "string", + "const": "cu111" + }, + { + "description": "Use the PyTorch index for CUDA 11.0.", + "type": "string", + "const": "cu110" + }, + { + "description": "Use the PyTorch index for CUDA 10.2.", + "type": "string", + "const": "cu102" + }, + { + "description": "Use the PyTorch index for CUDA 10.1.", + "type": "string", + "const": "cu101" + }, + { + "description": "Use the PyTorch index for CUDA 10.0.", + "type": "string", + "const": "cu100" + }, + { + "description": "Use the PyTorch index for CUDA 9.2.", + "type": "string", + "const": "cu92" + }, + { + "description": "Use the PyTorch index for CUDA 9.1.", + "type": "string", + "const": "cu91" + }, + { + "description": "Use the PyTorch index for CUDA 9.0.", + "type": "string", + "const": "cu90" + }, + { + "description": "Use the PyTorch index for CUDA 8.0.", + "type": "string", + "const": "cu80" + }, + { + "description": "Use the PyTorch index for ROCm 6.3.", + "type": "string", + "const": "rocm6.3" + }, + { + "description": "Use the PyTorch index for ROCm 6.2.4.", + "type": "string", + "const": "rocm6.2.4" + }, + { + "description": "Use the PyTorch index for ROCm 6.2.", + "type": "string", + "const": "rocm6.2" + }, + { + "description": "Use the PyTorch index for ROCm 6.1.", + "type": "string", + "const": "rocm6.1" + }, + { + "description": "Use the PyTorch index for ROCm 6.0.", + "type": "string", + "const": "rocm6.0" + }, + { + "description": "Use the PyTorch index for ROCm 5.7.", + "type": "string", + "const": "rocm5.7" + }, + { + "description": "Use the PyTorch index for ROCm 5.6.", + "type": "string", + "const": "rocm5.6" + }, + { + "description": "Use the PyTorch index for ROCm 5.5.", + "type": "string", + "const": "rocm5.5" + }, + { + "description": "Use the PyTorch index for ROCm 5.4.2.", + "type": "string", + "const": "rocm5.4.2" + }, + { + "description": "Use the PyTorch index for ROCm 5.4.", + "type": "string", + "const": "rocm5.4" + }, + { + "description": "Use the PyTorch index for ROCm 5.3.", + "type": "string", + "const": "rocm5.3" + }, + { + "description": "Use the PyTorch index for ROCm 5.2.", + "type": "string", + "const": "rocm5.2" + }, + { + "description": "Use the PyTorch index for ROCm 5.1.1.", + "type": "string", + "const": "rocm5.1.1" + }, + { + "description": "Use the PyTorch index for ROCm 4.2.", + "type": "string", + "const": "rocm4.2" + }, + { + "description": "Use the PyTorch index for ROCm 4.1.", + "type": "string", + "const": "rocm4.1" + }, + { + "description": "Use the PyTorch index for ROCm 4.0.1.", + "type": "string", + "const": "rocm4.0.1" + }, + { + "description": "Use the PyTorch index for Intel XPU.", + "type": "string", + "const": "xpu" + } + ] + }, + "TrustedHost": { + "description": "A host or host-port pair.", + "type": "string" + }, + "TrustedPublishing": { + "oneOf": [ + { + "type": "string", + "enum": ["always", "never"] + }, + { + "description": "Attempt trusted publishing when we're in a supported environment, continue if that fails.\n\nSupported environments include GitHub Actions and GitLab CI/CD.", + "type": "string", + "const": "automatic" + } + ] + }, + "WheelDataIncludes": { + "description": "Data includes for wheels.\n\nSee `BuildBackendSettings::data`.", + "type": "object", + "properties": { + "data": { + "type": ["string", "null"], + "default": null + }, + "headers": { + "type": ["string", "null"], + "default": null + }, + "platlib": { + "type": ["string", "null"], + "default": null + }, + "purelib": { + "type": ["string", "null"], + "default": null + }, + "scripts": { + "type": ["string", "null"], + "default": null + } + }, + "additionalProperties": false + } + } +} diff --git a/tests/testdata/json_schemastore_valid_full_properties/expected.json b/tests/testdata/json_schemastore_valid_full_properties/expected.json new file mode 100644 index 0000000..af7683a --- /dev/null +++ b/tests/testdata/json_schemastore_valid_full_properties/expected.json @@ -0,0 +1,386 @@ +{ + "version": "v1", + "actions": [ + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 18, + 1 + ], + "type": "string", + "label": "\"ku-oldversion1234\"", + "start_byte": 1987, + "end_byte": 2006 + }, + "old_value": "\"ku-oldversion1234\"", + "new_value": "\"ku-oldversion12\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 18, + 1 + ], + "type": "string", + "label": "\"ku-oldversion12\"", + "start_byte": 1986, + "end_byte": 2003 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 14, + 1, + 0, + 2, + 1 + ], + "type": "string", + "label": "\"ku-oldversion1234\"", + "start_byte": 1610, + "end_byte": 1629 + }, + "old_value": "\"ku-oldversion1234\"", + "new_value": "\"ku-oldversion12\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 14, + 1, + 0, + 2, + 1 + ], + "type": "string", + "label": "\"ku-oldversion12\"", + "start_byte": 1610, + "end_byte": 1627 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 16, + 1, + 0, + 0, + 1 + ], + "type": "string", + "label": "\"sha256:a3f8c91e4d7b2c6f8e9d0a1b3c5e7f9a2b4d6e8f0a2c4e6a8b0c2d4e6f8a0b2\"", + "start_byte": 1718, + "end_byte": 1790 + }, + "old_value": "\"sha256:a3f8c91e4d7b2c6f8e9d0a1b3c5e7f9a2b4d6e8f0a2c4e6a8b0c2d4e6f8a0b2\"", + "new_value": "\"sha256:a3f8c91e4d7b2c6f8e9d0a1b3c5e7f9a2b4d6e8f0a2c4e6a8b0c2d4e6f8a0b2c\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 16, + 1, + 0, + 0, + 1 + ], + "type": "string", + "label": "\"sha256:a3f8c91e4d7b2c6f8e9d0a1b3c5e7f9a2b4d6e8f0a2c4e6a8b0c2d4e6f8a0b2c\"", + "start_byte": 1716, + "end_byte": 1789 + } + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_valid_full_properties/metadata.json b/tests/testdata/json_schemastore_valid_full_properties/metadata.json new file mode 100644 index 0000000..451b9cb --- /dev/null +++ b/tests/testdata/json_schemastore_valid_full_properties/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "6e80534d12806aa3aa45af40a6ea39efe9f612b9", + "description": "Add valid-full properties schema", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_valid_full_properties/new.json b/tests/testdata/json_schemastore_valid_full_properties/new.json new file mode 100644 index 0000000..6a3e373 --- /dev/null +++ b/tests/testdata/json_schemastore_valid_full_properties/new.json @@ -0,0 +1,69 @@ +{ + "agreed": [ + { + "claim": "Unrestricted tool delegation creates privilege escalation risks", + "confidence": "high", + "evidence": "Multiple documented CVEs in MCP server implementations" + }, + "Cedar-style policy languages provide declarative tool governance" + ], + "canonical_question": "What are the security implications of MCP tool delegation?", + "consensus_level": "split", + "disputed": [ + { + "claim": "Whether human-in-the-loop approval is necessary for all tool calls", + "positions": { + "anthropic/claude-opus-4": "Required for destructive actions, optional for read-only", + "deepseek/deepseek-r2": "Only required when the action exceeds a configurable risk threshold", + "openai/gpt-5": "Required for all actions in regulated environments" + }, + "significance": "core" + } + ], + "domain": "agent_security", + "fresh_until": "2026-07-06T00:00:00Z", + "id": "ku-abc123def456", + "models_used": [ + "anthropic/claude-opus-4", + "openai/gpt-5", + "deepseek/deepseek-r2" + ], + "parent_ku_id": null, + "process_template": "3-round", + "published_at": "2026-04-06T12:00:00Z", + "receipt_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "receipt_kid": "sb:issuer:de073ae64e43", + "receipt_sig": "d9ac58e7a399f3d4905ad564b5801e78cb5ea9ae96f229eea8d70770635780e6b63e47a40be5c02865ede2cd5fb4885093997daa4d86a194ab28a5f5316df20a", + "relations": [ + { + "claims": [ + "Unrestricted tool delegation creates privilege escalation risks" + ], + "relation": "refines", + "target_ku_id": "ku-oldversion12" + } + ], + "roster_version": "2026-04-06", + "sources": [ + { + "content_hash": "sha256:a3f8c91e4d7b2c6f8e9d0a1b3c5e7f9a2b4d6e8f0a2c4e6a8b0c2d4e6f8a0b2c", + "ingested_at": "2026-04-01T10:00:00Z", + "title": "MCP Security Analysis", + "uri": "https://example.com/mcp-security-analysis.pdf" + } + ], + "status": "active", + "supersedes": "ku-oldversion12", + "synthesis": "All models agree that unrestricted tool delegation is dangerous. The core disagreement is where to draw the line on human approval requirements.", + "tags": ["mcp", "tool-delegation", "access-control"], + "total_cost_cents": 12.5, + "total_tokens": 45000, + "uncertain": [ + { + "claim": "Whether current policy languages are expressive enough for multi-agent delegation chains", + "reason": "rapidly evolving area" + } + ], + "version": 1, + "volatility": "evolving" +} diff --git a/tests/testdata/json_schemastore_valid_full_properties/old.json b/tests/testdata/json_schemastore_valid_full_properties/old.json new file mode 100644 index 0000000..a5c8a02 --- /dev/null +++ b/tests/testdata/json_schemastore_valid_full_properties/old.json @@ -0,0 +1,69 @@ +{ + "agreed": [ + { + "claim": "Unrestricted tool delegation creates privilege escalation risks", + "confidence": "high", + "evidence": "Multiple documented CVEs in MCP server implementations" + }, + "Cedar-style policy languages provide declarative tool governance" + ], + "canonical_question": "What are the security implications of MCP tool delegation?", + "consensus_level": "split", + "disputed": [ + { + "claim": "Whether human-in-the-loop approval is necessary for all tool calls", + "positions": { + "anthropic/claude-opus-4": "Required for destructive actions, optional for read-only", + "deepseek/deepseek-r2": "Only required when the action exceeds a configurable risk threshold", + "openai/gpt-5": "Required for all actions in regulated environments" + }, + "significance": "core" + } + ], + "domain": "agent_security", + "fresh_until": "2026-07-06T00:00:00Z", + "id": "ku-abc123def456", + "models_used": [ + "anthropic/claude-opus-4", + "openai/gpt-5", + "deepseek/deepseek-r2" + ], + "parent_ku_id": null, + "process_template": "3-round", + "published_at": "2026-04-06T12:00:00Z", + "receipt_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "receipt_kid": "sb:issuer:de073ae64e43", + "receipt_sig": "d9ac58e7a399f3d4905ad564b5801e78cb5ea9ae96f229eea8d70770635780e6b63e47a40be5c02865ede2cd5fb4885093997daa4d86a194ab28a5f5316df20a", + "relations": [ + { + "claims": [ + "Unrestricted tool delegation creates privilege escalation risks" + ], + "relation": "refines", + "target_ku_id": "ku-oldversion1234" + } + ], + "roster_version": "2026-04-06", + "sources": [ + { + "content_hash": "sha256:a3f8c91e4d7b2c6f8e9d0a1b3c5e7f9a2b4d6e8f0a2c4e6a8b0c2d4e6f8a0b2", + "ingested_at": "2026-04-01T10:00:00Z", + "title": "MCP Security Analysis", + "uri": "https://example.com/mcp-security-analysis.pdf" + } + ], + "status": "active", + "supersedes": "ku-oldversion1234", + "synthesis": "All models agree that unrestricted tool delegation is dangerous. The core disagreement is where to draw the line on human approval requirements.", + "tags": ["mcp", "tool-delegation", "access-control"], + "total_cost_cents": 12.5, + "total_tokens": 45000, + "uncertain": [ + { + "claim": "Whether current policy languages are expressive enough for multi-agent delegation chains", + "reason": "rapidly evolving area" + } + ], + "version": 1, + "volatility": "evolving" +} diff --git a/tests/testdata/json_schemastore_workflow_step_reorder/expected.json b/tests/testdata/json_schemastore_workflow_step_reorder/expected.json new file mode 100644 index 0000000..3c5a4be --- /dev/null +++ b/tests/testdata/json_schemastore_workflow_step_reorder/expected.json @@ -0,0 +1,9722 @@ +{ + "version": "v1", + "actions": [ + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5 + ], + "type": "pair", + "start_byte": 7151, + "end_byte": 11225 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1 + ], + "type": "object", + "start_byte": 301, + "end_byte": 55016 + }, + "position": 5 + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 0 + ], + "type": "string", + "label": "\"container\"", + "start_byte": 4123, + "end_byte": 4134 + }, + "old_value": "\"container\"", + "new_value": "\"jobContainer\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 0 + ], + "type": "string", + "label": "\"jobContainer\"", + "start_byte": 4123, + "end_byte": 4137 + } + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 0 + ], + "type": "string", + "label": "\"serviceContainer\"", + "start_byte": 7151, + "end_byte": 7169 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5 + ], + "type": "pair", + "start_byte": 7151, + "end_byte": 11225 + }, + "position": 0 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 7081, + "end_byte": 7102 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 4139, + "end_byte": 7145 + }, + "position": 2, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 3 + ], + "type": "pair", + "start_byte": 7110, + "end_byte": 7139 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 4139, + "end_byte": 7145 + }, + "position": 3, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 0 + ], + "type": "pair", + "start_byte": 7179, + "end_byte": 7195 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 7171, + "end_byte": 11225 + }, + "position": 0, + "subtree": true + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 7259, + "end_byte": 7280 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 7171, + "end_byte": 11225 + }, + "position": 2, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 4136, + "end_byte": 7323 + }, + "old_position": 2, + "subtree": true, + "dest_start_byte": 11161, + "dest_end_byte": 11182, + "group_id": "group-1" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 3 + ], + "type": "pair", + "start_byte": 7288, + "end_byte": 7317 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 7171, + "end_byte": 11225 + }, + "position": 3, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 4136, + "end_byte": 7323 + }, + "old_position": 3, + "subtree": true, + "dest_start_byte": 11190, + "dest_end_byte": 11219, + "group_id": "group-1" + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 0 + ], + "type": "string", + "label": "\"properties\"", + "start_byte": 7203, + "end_byte": 7215 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1 + ], + "type": "pair", + "start_byte": 7203, + "end_byte": 11153 + }, + "position": 0 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4 + ], + "type": "pair", + "start_byte": 5956, + "end_byte": 6700 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4185, + "end_byte": 7073 + }, + "position": 4 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5 + ], + "type": "pair", + "start_byte": 6710, + "end_byte": 7065 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 4185, + "end_byte": 7073 + }, + "position": 5, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 0 + ], + "type": "pair", + "start_byte": 7227, + "end_byte": 7575 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 7217, + "end_byte": 11153 + }, + "position": 0, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 1 + ], + "type": "pair", + "start_byte": 7585, + "end_byte": 8230 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 7217, + "end_byte": 11153 + }, + "position": 1, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 2 + ], + "type": "pair", + "start_byte": 8240, + "end_byte": 8526 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 7217, + "end_byte": 11153 + }, + "position": 2, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 3 + ], + "type": "pair", + "start_byte": 8536, + "end_byte": 9038 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 7217, + "end_byte": 11153 + }, + "position": 3, + "subtree": true + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 0 + ], + "type": "string", + "label": "\"volumes\"", + "start_byte": 6070, + "end_byte": 6079 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4 + ], + "type": "pair", + "start_byte": 9048, + "end_byte": 9809 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4 + ], + "type": "pair", + "start_byte": 6070, + "end_byte": 6846 + }, + "old_position": 0, + "dest_start_byte": 9048, + "dest_end_byte": 9057, + "group_id": "group-2" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 0 + ], + "type": "pair", + "start_byte": 6093, + "end_byte": 6248 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 9059, + "end_byte": 9809 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 6081, + "end_byte": 6846 + }, + "old_position": 0, + "subtree": true, + "dest_start_byte": 9071, + "dest_end_byte": 9203, + "group_id": "group-3" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 6733, + "end_byte": 6748 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 9059, + "end_byte": 9809 + }, + "position": 2, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 6081, + "end_byte": 6846 + }, + "old_position": 2, + "subtree": true, + "dest_start_byte": 9696, + "dest_end_byte": 9711, + "group_id": "group-3" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 3 + ], + "type": "pair", + "start_byte": 6760, + "end_byte": 6811 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 9059, + "end_byte": 9809 + }, + "position": 3, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 6081, + "end_byte": 6846 + }, + "old_position": 3, + "subtree": true, + "dest_start_byte": 9723, + "dest_end_byte": 9774, + "group_id": "group-3" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 4 + ], + "type": "pair", + "start_byte": 6823, + "end_byte": 6836 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 9059, + "end_byte": 9809 + }, + "position": 4, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 6081, + "end_byte": 6846 + }, + "old_position": 4, + "subtree": true, + "dest_start_byte": 9786, + "dest_end_byte": 9799, + "group_id": "group-3" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 0 + ], + "type": "string", + "label": "\"options\"", + "start_byte": 6856, + "end_byte": 6865 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 5 + ], + "type": "pair", + "start_byte": 9819, + "end_byte": 10183 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5 + ], + "type": "pair", + "start_byte": 6856, + "end_byte": 7243 + }, + "old_position": 0, + "dest_start_byte": 9819, + "dest_end_byte": 9828, + "group_id": "group-2" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 1, + 0 + ], + "type": "pair", + "start_byte": 6879, + "end_byte": 7034 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 9830, + "end_byte": 10183 + }, + "position": 0, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 6867, + "end_byte": 7243 + }, + "old_position": 0, + "subtree": true, + "dest_start_byte": 9842, + "dest_end_byte": 9974, + "group_id": "group-4" + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 1, + 1 + ], + "type": "pair", + "start_byte": 7046, + "end_byte": 7205 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 9830, + "end_byte": 10183 + }, + "position": 1, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 6867, + "end_byte": 7243 + }, + "old_position": 1, + "subtree": true, + "dest_start_byte": 9986, + "dest_end_byte": 10145, + "group_id": "group-4" + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 6 + ], + "type": "pair", + "start_byte": 10193, + "end_byte": 10641 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1 + ], + "type": "object", + "start_byte": 7217, + "end_byte": 11153 + }, + "position": 6, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 0 + ], + "type": "string", + "label": "\"volumes\"", + "start_byte": 5956, + "end_byte": 5965 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4 + ], + "type": "pair", + "start_byte": 5956, + "end_byte": 6700 + }, + "position": 0 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 7, + 0 + ], + "type": "string", + "label": "\"entrypoint\"", + "start_byte": 10651, + "end_byte": 10663 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 7 + ], + "type": "pair", + "start_byte": 10651, + "end_byte": 11145 + }, + "position": 0 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 0 + ], + "type": "pair", + "start_byte": 5979, + "end_byte": 6102 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5967, + "end_byte": 6700 + }, + "position": 0, + "subtree": true + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 1 + ], + "type": "pair", + "start_byte": 6260, + "end_byte": 6721 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5967, + "end_byte": 6700 + }, + "position": 1, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 6081, + "end_byte": 6846 + }, + "old_position": 1, + "subtree": true, + "dest_start_byte": 6114, + "dest_end_byte": 6575 + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 2 + ], + "type": "pair", + "start_byte": 6587, + "end_byte": 6602 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5967, + "end_byte": 6700 + }, + "position": 2, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 3 + ], + "type": "pair", + "start_byte": 6614, + "end_byte": 6665 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5967, + "end_byte": 6700 + }, + "position": 3, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 4 + ], + "type": "pair", + "start_byte": 6677, + "end_byte": 6690 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 5967, + "end_byte": 6700 + }, + "position": 4, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4, + 1, + 1 + ], + "type": "pair", + "start_byte": 9215, + "end_byte": 9684 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4, + 1 + ], + "type": "object", + "start_byte": 9059, + "end_byte": 9809 + }, + "position": 1, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 5, + 1, + 2 + ], + "type": "pair", + "start_byte": 10157, + "end_byte": 10173 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 9830, + "end_byte": 10183 + }, + "position": 2, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 7, + 1, + 0 + ], + "type": "pair", + "start_byte": 10677, + "end_byte": 10812 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 7, + 1 + ], + "type": "object", + "start_byte": 10665, + "end_byte": 11145 + }, + "position": 0, + "subtree": true + }, + { + "action": "insert", + "node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 7, + 1, + 1 + ], + "type": "pair", + "start_byte": 10824, + "end_byte": 11107 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 7, + 1 + ], + "type": "object", + "start_byte": 10665, + "end_byte": 11145 + }, + "position": 1, + "subtree": true + }, + { + "action": "move", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 1, + 2 + ], + "type": "pair", + "start_byte": 7217, + "end_byte": 7233 + }, + "parent": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 7, + 1 + ], + "type": "object", + "start_byte": 10665, + "end_byte": 11145 + }, + "position": 2, + "old_parent": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 1 + ], + "type": "object", + "start_byte": 6867, + "end_byte": 7243 + }, + "old_position": 2, + "subtree": true, + "dest_start_byte": 11119, + "dest_end_byte": 11135, + "group_id": "group-4" + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 0, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerimage\"", + "start_byte": 4225, + "end_byte": 4366 + }, + "old_value": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerimage\"", + "new_value": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerimage\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 0, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerimage\"", + "start_byte": 4228, + "end_byte": 4337 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 1, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainercredentials\"", + "start_byte": 4604, + "end_byte": 4737 + }, + "old_value": "\"https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainercredentials\"", + "new_value": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainercredentials\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 1, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainercredentials\"", + "start_byte": 4575, + "end_byte": 4690 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 2, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerenv\"", + "start_byte": 5260, + "end_byte": 5399 + }, + "old_value": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerenv\"", + "new_value": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerenv\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 2, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerenv\"", + "start_byte": 5213, + "end_byte": 5320 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 2, + 1, + 2, + 1 + ], + "type": "string", + "label": "\"Sets an array of environment variables in the container.\"", + "start_byte": 5465, + "end_byte": 5523 + }, + "old_value": "\"Sets an array of environment variables in the container.\"", + "new_value": "\"Sets a map of environment variables in the container.\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 2, + 1, + 2, + 1 + ], + "type": "string", + "label": "\"Sets a map of environment variables in the container.\"", + "start_byte": 5386, + "end_byte": 5441 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 3, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerports\"", + "start_byte": 5576, + "end_byte": 5717 + }, + "old_value": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerports\"", + "new_value": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerports\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 3, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerports\"", + "start_byte": 5494, + "end_byte": 5603 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 4, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainervolumes\"", + "start_byte": 6105, + "end_byte": 6248 + }, + "old_value": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainervolumes\"", + "new_value": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idvolumes\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 4, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idvolumes\"", + "start_byte": 9083, + "end_byte": 9203 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 4, + 1, + 1, + 1, + 5, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontaineroptions\"", + "start_byte": 6891, + "end_byte": 7034 + }, + "old_value": "\"https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontaineroptions\"", + "new_value": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idoptions\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 5, + 1, + 1, + 1, + 5, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idoptions\"", + "start_byte": 9854, + "end_byte": 9974 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 27, + 1, + 3, + 1, + 15, + 1, + 3, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"#/definitions/container\"", + "start_byte": 45789, + "end_byte": 45814 + }, + "old_value": "\"#/definitions/container\"", + "new_value": "\"#/definitions/serviceContainer\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 28, + 1, + 3, + 1, + 15, + 1, + 3, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"#/definitions/serviceContainer\"", + "start_byte": 49694, + "end_byte": 49726 + } + }, + { + "action": "update", + "node": { + "tree": "before", + "path": [ + 0, + 4, + 1, + 27, + 1, + 3, + 1, + 14, + 1, + 2, + 1, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"#/definitions/container\"", + "start_byte": 44674, + "end_byte": 44699 + }, + "old_value": "\"#/definitions/container\"", + "new_value": "\"#/definitions/jobContainer\"", + "dest_node": { + "tree": "after", + "path": [ + 0, + 4, + 1, + 28, + 1, + 3, + 1, + 14, + 1, + 2, + 1, + 1, + 0, + 1 + ], + "type": "string", + "label": "\"#/definitions/jobContainer\"", + "start_byte": 48576, + "end_byte": 48604 + } + } + ], + "line_alignment": [ + { + "left_line": 0, + "right_line": 0 + }, + { + "left_line": 1, + "right_line": 1 + }, + { + "left_line": 2, + "right_line": 2 + }, + { + "left_line": 3, + "right_line": 3 + }, + { + "left_line": 4, + "right_line": 4 + }, + { + "left_line": 5, + "right_line": 5 + }, + { + "left_line": 6, + "right_line": 6 + }, + { + "left_line": 7, + "right_line": 7 + }, + { + "left_line": 8, + "right_line": 8 + }, + { + "left_line": 9, + "right_line": 9 + }, + { + "left_line": 10, + "right_line": 10 + }, + { + "left_line": 11, + "right_line": 11 + }, + { + "left_line": 12, + "right_line": 12 + }, + { + "left_line": 13, + "right_line": 13 + }, + { + "left_line": 14, + "right_line": 14 + }, + { + "left_line": 15, + "right_line": 15 + }, + { + "left_line": 16, + "right_line": 16 + }, + { + "left_line": 17, + "right_line": 17 + }, + { + "left_line": 18, + "right_line": 18 + }, + { + "left_line": 19, + "right_line": 19 + }, + { + "left_line": 20, + "right_line": 20 + }, + { + "left_line": 21, + "right_line": 21 + }, + { + "left_line": 22, + "right_line": 22 + }, + { + "left_line": 23, + "right_line": 23 + }, + { + "left_line": 24, + "right_line": 24 + }, + { + "left_line": 25, + "right_line": 25 + }, + { + "left_line": 26, + "right_line": 26 + }, + { + "left_line": 27, + "right_line": 27 + }, + { + "left_line": 28, + "right_line": 28 + }, + { + "left_line": 29, + "right_line": 29 + }, + { + "left_line": 30, + "right_line": 30 + }, + { + "left_line": 31, + "right_line": 31 + }, + { + "left_line": 32, + "right_line": 32 + }, + { + "left_line": 33, + "right_line": 33 + }, + { + "left_line": 34, + "right_line": 34 + }, + { + "left_line": 35, + "right_line": 35 + }, + { + "left_line": 36, + "right_line": 36 + }, + { + "left_line": 37, + "right_line": 37 + }, + { + "left_line": 38, + "right_line": 38 + }, + { + "left_line": 39, + "right_line": 39 + }, + { + "left_line": 40, + "right_line": 40 + }, + { + "left_line": 41, + "right_line": 41 + }, + { + "left_line": 42, + "right_line": 42 + }, + { + "left_line": 43, + "right_line": 43 + }, + { + "left_line": 44, + "right_line": 44 + }, + { + "left_line": 45, + "right_line": 45 + }, + { + "left_line": 46, + "right_line": 46 + }, + { + "left_line": 47, + "right_line": 47 + }, + { + "left_line": 48, + "right_line": 48 + }, + { + "left_line": 49, + "right_line": 49 + }, + { + "left_line": 50, + "right_line": 50 + }, + { + "left_line": 51, + "right_line": 51 + }, + { + "left_line": 52, + "right_line": 52 + }, + { + "left_line": 53, + "right_line": 53 + }, + { + "left_line": 54, + "right_line": 54 + }, + { + "left_line": 55, + "right_line": 55 + }, + { + "left_line": 56, + "right_line": 56 + }, + { + "left_line": 57, + "right_line": 57 + }, + { + "left_line": 58, + "right_line": 58 + }, + { + "left_line": 59, + "right_line": 59 + }, + { + "left_line": 60, + "right_line": 60 + }, + { + "left_line": 61, + "right_line": 61 + }, + { + "left_line": 62, + "right_line": 62 + }, + { + "left_line": 63, + "right_line": 63 + }, + { + "left_line": 64, + "right_line": 64 + }, + { + "left_line": 65, + "right_line": 65 + }, + { + "left_line": 66, + "right_line": 66 + }, + { + "left_line": 67, + "right_line": 67 + }, + { + "left_line": 68, + "right_line": 68 + }, + { + "left_line": 69, + "right_line": 69 + }, + { + "left_line": 70, + "right_line": 70 + }, + { + "left_line": 71, + "right_line": 71 + }, + { + "left_line": 72, + "right_line": 72 + }, + { + "left_line": 73, + "right_line": 73 + }, + { + "left_line": 74, + "right_line": 74 + }, + { + "left_line": 75, + "right_line": 75 + }, + { + "left_line": 76, + "right_line": 76 + }, + { + "left_line": 77, + "right_line": 77 + }, + { + "left_line": 78, + "right_line": 78 + }, + { + "left_line": 79, + "right_line": 79 + }, + { + "left_line": 80, + "right_line": 80 + }, + { + "left_line": 81, + "right_line": 81 + }, + { + "left_line": 82, + "right_line": 82 + }, + { + "left_line": 83, + "right_line": 83 + }, + { + "left_line": 84, + "right_line": 84 + }, + { + "left_line": 85, + "right_line": 85 + }, + { + "left_line": 86, + "right_line": 86 + }, + { + "left_line": 87, + "right_line": 87 + }, + { + "left_line": 88, + "right_line": 88 + }, + { + "left_line": 89, + "right_line": 89 + }, + { + "left_line": 90, + "right_line": 90 + }, + { + "left_line": 91, + "right_line": 91 + }, + { + "left_line": 92, + "right_line": 92 + }, + { + "left_line": 93, + "right_line": 93 + }, + { + "left_line": 94, + "right_line": 94 + }, + { + "left_line": 95, + "right_line": 95 + }, + { + "left_line": 96, + "right_line": 96 + }, + { + "left_line": 97, + "right_line": 97 + }, + { + "left_line": 98, + "right_line": 98 + }, + { + "left_line": 99, + "right_line": 99 + }, + { + "left_line": 100, + "right_line": 100 + }, + { + "left_line": 101, + "right_line": 101 + }, + { + "left_line": 102, + "right_line": 102 + }, + { + "left_line": 103, + "right_line": 103 + }, + { + "left_line": 104, + "right_line": 104 + }, + { + "left_line": 105, + "right_line": 105 + }, + { + "left_line": -1, + "right_line": 106 + }, + { + "left_line": -1, + "right_line": 107 + }, + { + "left_line": -1, + "right_line": 108 + }, + { + "left_line": -1, + "right_line": 109 + }, + { + "left_line": -1, + "right_line": 110 + }, + { + "left_line": -1, + "right_line": 111 + }, + { + "left_line": -1, + "right_line": 112 + }, + { + "left_line": -1, + "right_line": 113 + }, + { + "left_line": -1, + "right_line": 114 + }, + { + "left_line": -1, + "right_line": 115 + }, + { + "left_line": -1, + "right_line": 116 + }, + { + "left_line": -1, + "right_line": 117 + }, + { + "left_line": -1, + "right_line": 118 + }, + { + "left_line": -1, + "right_line": 119 + }, + { + "left_line": -1, + "right_line": 120 + }, + { + "left_line": -1, + "right_line": 121 + }, + { + "left_line": -1, + "right_line": 122 + }, + { + "left_line": -1, + "right_line": 123 + }, + { + "left_line": -1, + "right_line": 124 + }, + { + "left_line": -1, + "right_line": 125 + }, + { + "left_line": -1, + "right_line": 126 + }, + { + "left_line": -1, + "right_line": 127 + }, + { + "left_line": -1, + "right_line": 128 + }, + { + "left_line": -1, + "right_line": 129 + }, + { + "left_line": -1, + "right_line": 130 + }, + { + "left_line": -1, + "right_line": 131 + }, + { + "left_line": -1, + "right_line": 132 + }, + { + "left_line": -1, + "right_line": 133 + }, + { + "left_line": -1, + "right_line": 134 + }, + { + "left_line": -1, + "right_line": 135 + }, + { + "left_line": -1, + "right_line": 136 + }, + { + "left_line": -1, + "right_line": 137 + }, + { + "left_line": -1, + "right_line": 138 + }, + { + "left_line": -1, + "right_line": 139 + }, + { + "left_line": -1, + "right_line": 140 + }, + { + "left_line": -1, + "right_line": 141 + }, + { + "left_line": -1, + "right_line": 142 + }, + { + "left_line": -1, + "right_line": 143 + }, + { + "left_line": -1, + "right_line": 144 + }, + { + "left_line": -1, + "right_line": 145 + }, + { + "left_line": -1, + "right_line": 146 + }, + { + "left_line": -1, + "right_line": 147 + }, + { + "left_line": -1, + "right_line": 148 + }, + { + "left_line": -1, + "right_line": 149 + }, + { + "left_line": -1, + "right_line": 150 + }, + { + "left_line": -1, + "right_line": 151 + }, + { + "left_line": -1, + "right_line": 152 + }, + { + "left_line": -1, + "right_line": 153 + }, + { + "left_line": -1, + "right_line": 154 + }, + { + "left_line": -1, + "right_line": 155 + }, + { + "left_line": -1, + "right_line": 156 + }, + { + "left_line": -1, + "right_line": 157 + }, + { + "left_line": -1, + "right_line": 158 + }, + { + "left_line": -1, + "right_line": 159 + }, + { + "left_line": -1, + "right_line": 160 + }, + { + "left_line": -1, + "right_line": 161 + }, + { + "left_line": -1, + "right_line": 162 + }, + { + "left_line": -1, + "right_line": 163 + }, + { + "left_line": -1, + "right_line": 164 + }, + { + "left_line": -1, + "right_line": 165 + }, + { + "left_line": 106, + "right_line": 166 + }, + { + "left_line": 107, + "right_line": 167 + }, + { + "left_line": 108, + "right_line": 168 + }, + { + "left_line": 109, + "right_line": 169 + }, + { + "left_line": 110, + "right_line": 170 + }, + { + "left_line": 111, + "right_line": 171 + }, + { + "left_line": 112, + "right_line": 172 + }, + { + "left_line": 113, + "right_line": 173 + }, + { + "left_line": 114, + "right_line": 174 + }, + { + "left_line": 115, + "right_line": 175 + }, + { + "left_line": 116, + "right_line": 176 + }, + { + "left_line": 117, + "right_line": 177 + }, + { + "left_line": 118, + "right_line": -1 + }, + { + "left_line": -1, + "right_line": 178 + }, + { + "left_line": -1, + "right_line": 179 + }, + { + "left_line": -1, + "right_line": 180 + }, + { + "left_line": -1, + "right_line": 181 + }, + { + "left_line": -1, + "right_line": 182 + }, + { + "left_line": -1, + "right_line": 183 + }, + { + "left_line": -1, + "right_line": 184 + }, + { + "left_line": -1, + "right_line": 185 + }, + { + "left_line": -1, + "right_line": 186 + }, + { + "left_line": -1, + "right_line": 187 + }, + { + "left_line": -1, + "right_line": 188 + }, + { + "left_line": 119, + "right_line": 189 + }, + { + "left_line": 120, + "right_line": 190 + }, + { + "left_line": 121, + "right_line": -1 + }, + { + "left_line": 122, + "right_line": -1 + }, + { + "left_line": -1, + "right_line": 191 + }, + { + "left_line": -1, + "right_line": 192 + }, + { + "left_line": 123, + "right_line": 193 + }, + { + "left_line": 124, + "right_line": 194 + }, + { + "left_line": 125, + "right_line": 195 + }, + { + "left_line": 126, + "right_line": 196 + }, + { + "left_line": 127, + "right_line": 197 + }, + { + "left_line": 128, + "right_line": 198 + }, + { + "left_line": 129, + "right_line": 199 + }, + { + "left_line": 130, + "right_line": 200 + }, + { + "left_line": 131, + "right_line": 201 + }, + { + "left_line": 132, + "right_line": 202 + }, + { + "left_line": 133, + "right_line": 203 + }, + { + "left_line": 134, + "right_line": 204 + }, + { + "left_line": 135, + "right_line": 205 + }, + { + "left_line": 136, + "right_line": 206 + }, + { + "left_line": 137, + "right_line": 207 + }, + { + "left_line": 138, + "right_line": 208 + }, + { + "left_line": 139, + "right_line": 209 + }, + { + "left_line": 140, + "right_line": 210 + }, + { + "left_line": 141, + "right_line": 211 + }, + { + "left_line": 142, + "right_line": 212 + }, + { + "left_line": 143, + "right_line": 213 + }, + { + "left_line": 144, + "right_line": 214 + }, + { + "left_line": 145, + "right_line": 215 + }, + { + "left_line": 146, + "right_line": 216 + }, + { + "left_line": 147, + "right_line": 217 + }, + { + "left_line": 148, + "right_line": 218 + }, + { + "left_line": 149, + "right_line": 219 + }, + { + "left_line": 150, + "right_line": 220 + }, + { + "left_line": 151, + "right_line": 221 + }, + { + "left_line": 152, + "right_line": 222 + }, + { + "left_line": 153, + "right_line": 223 + }, + { + "left_line": 154, + "right_line": 224 + }, + { + "left_line": 155, + "right_line": 225 + }, + { + "left_line": 156, + "right_line": 226 + }, + { + "left_line": 157, + "right_line": 227 + }, + { + "left_line": 158, + "right_line": 228 + }, + { + "left_line": 159, + "right_line": 229 + }, + { + "left_line": 160, + "right_line": 230 + }, + { + "left_line": 161, + "right_line": 231 + }, + { + "left_line": 162, + "right_line": 232 + }, + { + "left_line": 163, + "right_line": 233 + }, + { + "left_line": 164, + "right_line": 234 + }, + { + "left_line": 165, + "right_line": 235 + }, + { + "left_line": 166, + "right_line": 236 + }, + { + "left_line": 167, + "right_line": 237 + }, + { + "left_line": 168, + "right_line": 238 + }, + { + "left_line": 169, + "right_line": 239 + }, + { + "left_line": 170, + "right_line": 240 + }, + { + "left_line": 171, + "right_line": 241 + }, + { + "left_line": 172, + "right_line": 242 + }, + { + "left_line": 173, + "right_line": 243 + }, + { + "left_line": 174, + "right_line": 244 + }, + { + "left_line": 175, + "right_line": 245 + }, + { + "left_line": 176, + "right_line": 246 + }, + { + "left_line": 177, + "right_line": 247 + }, + { + "left_line": 178, + "right_line": 248 + }, + { + "left_line": 179, + "right_line": 249 + }, + { + "left_line": 180, + "right_line": 250 + }, + { + "left_line": 181, + "right_line": 251 + }, + { + "left_line": 182, + "right_line": 252 + }, + { + "left_line": 183, + "right_line": 253 + }, + { + "left_line": 184, + "right_line": 254 + }, + { + "left_line": 185, + "right_line": 255 + }, + { + "left_line": 186, + "right_line": 256 + }, + { + "left_line": 187, + "right_line": 257 + }, + { + "left_line": 188, + "right_line": 258 + }, + { + "left_line": 189, + "right_line": 259 + }, + { + "left_line": 190, + "right_line": 260 + }, + { + "left_line": 191, + "right_line": 261 + }, + { + "left_line": 192, + "right_line": 262 + }, + { + "left_line": 193, + "right_line": 263 + }, + { + "left_line": 194, + "right_line": 264 + }, + { + "left_line": 195, + "right_line": 265 + }, + { + "left_line": 196, + "right_line": 266 + }, + { + "left_line": 197, + "right_line": 267 + }, + { + "left_line": 198, + "right_line": 268 + }, + { + "left_line": 199, + "right_line": 269 + }, + { + "left_line": 200, + "right_line": 270 + }, + { + "left_line": 201, + "right_line": 271 + }, + { + "left_line": 202, + "right_line": 272 + }, + { + "left_line": 203, + "right_line": 273 + }, + { + "left_line": 204, + "right_line": 274 + }, + { + "left_line": 205, + "right_line": 275 + }, + { + "left_line": 206, + "right_line": 276 + }, + { + "left_line": 207, + "right_line": 277 + }, + { + "left_line": 208, + "right_line": 278 + }, + { + "left_line": 209, + "right_line": 279 + }, + { + "left_line": 210, + "right_line": 280 + }, + { + "left_line": 211, + "right_line": 281 + }, + { + "left_line": 212, + "right_line": 282 + }, + { + "left_line": 213, + "right_line": 283 + }, + { + "left_line": 214, + "right_line": 284 + }, + { + "left_line": 215, + "right_line": 285 + }, + { + "left_line": 216, + "right_line": 286 + }, + { + "left_line": 217, + "right_line": 287 + }, + { + "left_line": 218, + "right_line": 288 + }, + { + "left_line": 219, + "right_line": 289 + }, + { + "left_line": 220, + "right_line": 290 + }, + { + "left_line": 221, + "right_line": 291 + }, + { + "left_line": 222, + "right_line": 292 + }, + { + "left_line": 223, + "right_line": 293 + }, + { + "left_line": 224, + "right_line": 294 + }, + { + "left_line": 225, + "right_line": 295 + }, + { + "left_line": 226, + "right_line": 296 + }, + { + "left_line": 227, + "right_line": 297 + }, + { + "left_line": 228, + "right_line": 298 + }, + { + "left_line": 229, + "right_line": 299 + }, + { + "left_line": 230, + "right_line": 300 + }, + { + "left_line": 231, + "right_line": 301 + }, + { + "left_line": 232, + "right_line": 302 + }, + { + "left_line": 233, + "right_line": 303 + }, + { + "left_line": 234, + "right_line": 304 + }, + { + "left_line": 235, + "right_line": 305 + }, + { + "left_line": 236, + "right_line": 306 + }, + { + "left_line": 237, + "right_line": 307 + }, + { + "left_line": 238, + "right_line": 308 + }, + { + "left_line": 239, + "right_line": 309 + }, + { + "left_line": 240, + "right_line": 310 + }, + { + "left_line": 241, + "right_line": 311 + }, + { + "left_line": 242, + "right_line": 312 + }, + { + "left_line": 243, + "right_line": 313 + }, + { + "left_line": 244, + "right_line": 314 + }, + { + "left_line": 245, + "right_line": 315 + }, + { + "left_line": 246, + "right_line": 316 + }, + { + "left_line": 247, + "right_line": 317 + }, + { + "left_line": 248, + "right_line": 318 + }, + { + "left_line": 249, + "right_line": 319 + }, + { + "left_line": 250, + "right_line": 320 + }, + { + "left_line": 251, + "right_line": 321 + }, + { + "left_line": 252, + "right_line": 322 + }, + { + "left_line": 253, + "right_line": 323 + }, + { + "left_line": 254, + "right_line": 324 + }, + { + "left_line": 255, + "right_line": 325 + }, + { + "left_line": 256, + "right_line": 326 + }, + { + "left_line": 257, + "right_line": 327 + }, + { + "left_line": 258, + "right_line": 328 + }, + { + "left_line": 259, + "right_line": 329 + }, + { + "left_line": 260, + "right_line": 330 + }, + { + "left_line": 261, + "right_line": 331 + }, + { + "left_line": 262, + "right_line": 332 + }, + { + "left_line": 263, + "right_line": 333 + }, + { + "left_line": 264, + "right_line": 334 + }, + { + "left_line": 265, + "right_line": 335 + }, + { + "left_line": 266, + "right_line": 336 + }, + { + "left_line": 267, + "right_line": 337 + }, + { + "left_line": 268, + "right_line": 338 + }, + { + "left_line": 269, + "right_line": 339 + }, + { + "left_line": 270, + "right_line": 340 + }, + { + "left_line": 271, + "right_line": 341 + }, + { + "left_line": 272, + "right_line": 342 + }, + { + "left_line": 273, + "right_line": 343 + }, + { + "left_line": 274, + "right_line": 344 + }, + { + "left_line": 275, + "right_line": 345 + }, + { + "left_line": 276, + "right_line": 346 + }, + { + "left_line": 277, + "right_line": 347 + }, + { + "left_line": 278, + "right_line": 348 + }, + { + "left_line": 279, + "right_line": 349 + }, + { + "left_line": 280, + "right_line": 350 + }, + { + "left_line": 281, + "right_line": 351 + }, + { + "left_line": 282, + "right_line": 352 + }, + { + "left_line": 283, + "right_line": 353 + }, + { + "left_line": 284, + "right_line": 354 + }, + { + "left_line": 285, + "right_line": 355 + }, + { + "left_line": 286, + "right_line": 356 + }, + { + "left_line": 287, + "right_line": 357 + }, + { + "left_line": 288, + "right_line": 358 + }, + { + "left_line": 289, + "right_line": 359 + }, + { + "left_line": 290, + "right_line": 360 + }, + { + "left_line": 291, + "right_line": 361 + }, + { + "left_line": 292, + "right_line": 362 + }, + { + "left_line": 293, + "right_line": 363 + }, + { + "left_line": 294, + "right_line": 364 + }, + { + "left_line": 295, + "right_line": 365 + }, + { + "left_line": 296, + "right_line": 366 + }, + { + "left_line": 297, + "right_line": 367 + }, + { + "left_line": 298, + "right_line": 368 + }, + { + "left_line": 299, + "right_line": 369 + }, + { + "left_line": 300, + "right_line": 370 + }, + { + "left_line": 301, + "right_line": 371 + }, + { + "left_line": 302, + "right_line": 372 + }, + { + "left_line": 303, + "right_line": 373 + }, + { + "left_line": 304, + "right_line": 374 + }, + { + "left_line": 305, + "right_line": 375 + }, + { + "left_line": 306, + "right_line": 376 + }, + { + "left_line": 307, + "right_line": 377 + }, + { + "left_line": 308, + "right_line": 378 + }, + { + "left_line": 309, + "right_line": 379 + }, + { + "left_line": 310, + "right_line": 380 + }, + { + "left_line": 311, + "right_line": 381 + }, + { + "left_line": 312, + "right_line": 382 + }, + { + "left_line": 313, + "right_line": 383 + }, + { + "left_line": 314, + "right_line": 384 + }, + { + "left_line": 315, + "right_line": 385 + }, + { + "left_line": 316, + "right_line": 386 + }, + { + "left_line": 317, + "right_line": 387 + }, + { + "left_line": 318, + "right_line": 388 + }, + { + "left_line": 319, + "right_line": 389 + }, + { + "left_line": 320, + "right_line": 390 + }, + { + "left_line": 321, + "right_line": 391 + }, + { + "left_line": 322, + "right_line": 392 + }, + { + "left_line": 323, + "right_line": 393 + }, + { + "left_line": 324, + "right_line": 394 + }, + { + "left_line": 325, + "right_line": 395 + }, + { + "left_line": 326, + "right_line": 396 + }, + { + "left_line": 327, + "right_line": 397 + }, + { + "left_line": 328, + "right_line": 398 + }, + { + "left_line": 329, + "right_line": 399 + }, + { + "left_line": 330, + "right_line": 400 + }, + { + "left_line": 331, + "right_line": 401 + }, + { + "left_line": 332, + "right_line": 402 + }, + { + "left_line": 333, + "right_line": 403 + }, + { + "left_line": 334, + "right_line": 404 + }, + { + "left_line": 335, + "right_line": 405 + }, + { + "left_line": 336, + "right_line": 406 + }, + { + "left_line": 337, + "right_line": 407 + }, + { + "left_line": 338, + "right_line": 408 + }, + { + "left_line": 339, + "right_line": 409 + }, + { + "left_line": 340, + "right_line": 410 + }, + { + "left_line": 341, + "right_line": 411 + }, + { + "left_line": 342, + "right_line": 412 + }, + { + "left_line": 343, + "right_line": 413 + }, + { + "left_line": 344, + "right_line": 414 + }, + { + "left_line": 345, + "right_line": 415 + }, + { + "left_line": 346, + "right_line": 416 + }, + { + "left_line": 347, + "right_line": 417 + }, + { + "left_line": 348, + "right_line": 418 + }, + { + "left_line": 349, + "right_line": 419 + }, + { + "left_line": 350, + "right_line": 420 + }, + { + "left_line": 351, + "right_line": 421 + }, + { + "left_line": 352, + "right_line": 422 + }, + { + "left_line": 353, + "right_line": 423 + }, + { + "left_line": 354, + "right_line": 424 + }, + { + "left_line": 355, + "right_line": 425 + }, + { + "left_line": 356, + "right_line": 426 + }, + { + "left_line": 357, + "right_line": 427 + }, + { + "left_line": 358, + "right_line": 428 + }, + { + "left_line": 359, + "right_line": 429 + }, + { + "left_line": 360, + "right_line": 430 + }, + { + "left_line": 361, + "right_line": 431 + }, + { + "left_line": 362, + "right_line": 432 + }, + { + "left_line": 363, + "right_line": 433 + }, + { + "left_line": 364, + "right_line": 434 + }, + { + "left_line": 365, + "right_line": 435 + }, + { + "left_line": 366, + "right_line": 436 + }, + { + "left_line": 367, + "right_line": 437 + }, + { + "left_line": 368, + "right_line": 438 + }, + { + "left_line": 369, + "right_line": 439 + }, + { + "left_line": 370, + "right_line": 440 + }, + { + "left_line": 371, + "right_line": 441 + }, + { + "left_line": 372, + "right_line": 442 + }, + { + "left_line": 373, + "right_line": 443 + }, + { + "left_line": 374, + "right_line": 444 + }, + { + "left_line": 375, + "right_line": 445 + }, + { + "left_line": 376, + "right_line": 446 + }, + { + "left_line": 377, + "right_line": 447 + }, + { + "left_line": 378, + "right_line": 448 + }, + { + "left_line": 379, + "right_line": 449 + }, + { + "left_line": 380, + "right_line": 450 + }, + { + "left_line": 381, + "right_line": 451 + }, + { + "left_line": 382, + "right_line": 452 + }, + { + "left_line": 383, + "right_line": 453 + }, + { + "left_line": 384, + "right_line": 454 + }, + { + "left_line": 385, + "right_line": 455 + }, + { + "left_line": 386, + "right_line": 456 + }, + { + "left_line": 387, + "right_line": 457 + }, + { + "left_line": 388, + "right_line": 458 + }, + { + "left_line": 389, + "right_line": 459 + }, + { + "left_line": 390, + "right_line": 460 + }, + { + "left_line": 391, + "right_line": 461 + }, + { + "left_line": 392, + "right_line": 462 + }, + { + "left_line": 393, + "right_line": 463 + }, + { + "left_line": 394, + "right_line": 464 + }, + { + "left_line": 395, + "right_line": 465 + }, + { + "left_line": 396, + "right_line": 466 + }, + { + "left_line": 397, + "right_line": 467 + }, + { + "left_line": 398, + "right_line": 468 + }, + { + "left_line": 399, + "right_line": 469 + }, + { + "left_line": 400, + "right_line": 470 + }, + { + "left_line": 401, + "right_line": 471 + }, + { + "left_line": 402, + "right_line": 472 + }, + { + "left_line": 403, + "right_line": 473 + }, + { + "left_line": 404, + "right_line": 474 + }, + { + "left_line": 405, + "right_line": 475 + }, + { + "left_line": 406, + "right_line": 476 + }, + { + "left_line": 407, + "right_line": 477 + }, + { + "left_line": 408, + "right_line": 478 + }, + { + "left_line": 409, + "right_line": 479 + }, + { + "left_line": 410, + "right_line": 480 + }, + { + "left_line": 411, + "right_line": 481 + }, + { + "left_line": 412, + "right_line": 482 + }, + { + "left_line": 413, + "right_line": 483 + }, + { + "left_line": 414, + "right_line": 484 + }, + { + "left_line": 415, + "right_line": 485 + }, + { + "left_line": 416, + "right_line": 486 + }, + { + "left_line": 417, + "right_line": 487 + }, + { + "left_line": 418, + "right_line": 488 + }, + { + "left_line": 419, + "right_line": 489 + }, + { + "left_line": 420, + "right_line": 490 + }, + { + "left_line": 421, + "right_line": 491 + }, + { + "left_line": 422, + "right_line": 492 + }, + { + "left_line": 423, + "right_line": 493 + }, + { + "left_line": 424, + "right_line": 494 + }, + { + "left_line": 425, + "right_line": 495 + }, + { + "left_line": 426, + "right_line": 496 + }, + { + "left_line": 427, + "right_line": 497 + }, + { + "left_line": 428, + "right_line": 498 + }, + { + "left_line": 429, + "right_line": 499 + }, + { + "left_line": 430, + "right_line": 500 + }, + { + "left_line": 431, + "right_line": 501 + }, + { + "left_line": 432, + "right_line": 502 + }, + { + "left_line": 433, + "right_line": 503 + }, + { + "left_line": 434, + "right_line": 504 + }, + { + "left_line": 435, + "right_line": 505 + }, + { + "left_line": 436, + "right_line": 506 + }, + { + "left_line": 437, + "right_line": 507 + }, + { + "left_line": 438, + "right_line": 508 + }, + { + "left_line": 439, + "right_line": 509 + }, + { + "left_line": 440, + "right_line": 510 + }, + { + "left_line": 441, + "right_line": 511 + }, + { + "left_line": 442, + "right_line": 512 + }, + { + "left_line": 443, + "right_line": 513 + }, + { + "left_line": 444, + "right_line": 514 + }, + { + "left_line": 445, + "right_line": 515 + }, + { + "left_line": 446, + "right_line": 516 + }, + { + "left_line": 447, + "right_line": 517 + }, + { + "left_line": 448, + "right_line": 518 + }, + { + "left_line": 449, + "right_line": 519 + }, + { + "left_line": 450, + "right_line": 520 + }, + { + "left_line": 451, + "right_line": 521 + }, + { + "left_line": 452, + "right_line": 522 + }, + { + "left_line": 453, + "right_line": 523 + }, + { + "left_line": 454, + "right_line": 524 + }, + { + "left_line": 455, + "right_line": 525 + }, + { + "left_line": 456, + "right_line": 526 + }, + { + "left_line": 457, + "right_line": 527 + }, + { + "left_line": 458, + "right_line": 528 + }, + { + "left_line": 459, + "right_line": 529 + }, + { + "left_line": 460, + "right_line": 530 + }, + { + "left_line": 461, + "right_line": 531 + }, + { + "left_line": 462, + "right_line": 532 + }, + { + "left_line": 463, + "right_line": 533 + }, + { + "left_line": 464, + "right_line": 534 + }, + { + "left_line": 465, + "right_line": 535 + }, + { + "left_line": 466, + "right_line": 536 + }, + { + "left_line": 467, + "right_line": 537 + }, + { + "left_line": 468, + "right_line": 538 + }, + { + "left_line": 469, + "right_line": 539 + }, + { + "left_line": 470, + "right_line": 540 + }, + { + "left_line": 471, + "right_line": 541 + }, + { + "left_line": 472, + "right_line": 542 + }, + { + "left_line": 473, + "right_line": 543 + }, + { + "left_line": 474, + "right_line": 544 + }, + { + "left_line": 475, + "right_line": 545 + }, + { + "left_line": 476, + "right_line": 546 + }, + { + "left_line": 477, + "right_line": 547 + }, + { + "left_line": 478, + "right_line": 548 + }, + { + "left_line": 479, + "right_line": 549 + }, + { + "left_line": 480, + "right_line": 550 + }, + { + "left_line": 481, + "right_line": 551 + }, + { + "left_line": 482, + "right_line": 552 + }, + { + "left_line": 483, + "right_line": 553 + }, + { + "left_line": 484, + "right_line": 554 + }, + { + "left_line": 485, + "right_line": 555 + }, + { + "left_line": 486, + "right_line": 556 + }, + { + "left_line": 487, + "right_line": 557 + }, + { + "left_line": 488, + "right_line": 558 + }, + { + "left_line": 489, + "right_line": 559 + }, + { + "left_line": 490, + "right_line": 560 + }, + { + "left_line": 491, + "right_line": 561 + }, + { + "left_line": 492, + "right_line": 562 + }, + { + "left_line": 493, + "right_line": 563 + }, + { + "left_line": 494, + "right_line": 564 + }, + { + "left_line": 495, + "right_line": 565 + }, + { + "left_line": 496, + "right_line": 566 + }, + { + "left_line": 497, + "right_line": 567 + }, + { + "left_line": 498, + "right_line": 568 + }, + { + "left_line": 499, + "right_line": 569 + }, + { + "left_line": 500, + "right_line": 570 + }, + { + "left_line": 501, + "right_line": 571 + }, + { + "left_line": 502, + "right_line": 572 + }, + { + "left_line": 503, + "right_line": 573 + }, + { + "left_line": 504, + "right_line": 574 + }, + { + "left_line": 505, + "right_line": 575 + }, + { + "left_line": 506, + "right_line": 576 + }, + { + "left_line": 507, + "right_line": 577 + }, + { + "left_line": 508, + "right_line": 578 + }, + { + "left_line": 509, + "right_line": 579 + }, + { + "left_line": 510, + "right_line": 580 + }, + { + "left_line": 511, + "right_line": 581 + }, + { + "left_line": 512, + "right_line": 582 + }, + { + "left_line": 513, + "right_line": 583 + }, + { + "left_line": 514, + "right_line": 584 + }, + { + "left_line": 515, + "right_line": 585 + }, + { + "left_line": 516, + "right_line": 586 + }, + { + "left_line": 517, + "right_line": 587 + }, + { + "left_line": 518, + "right_line": 588 + }, + { + "left_line": 519, + "right_line": 589 + }, + { + "left_line": 520, + "right_line": 590 + }, + { + "left_line": 521, + "right_line": 591 + }, + { + "left_line": 522, + "right_line": 592 + }, + { + "left_line": 523, + "right_line": 593 + }, + { + "left_line": 524, + "right_line": 594 + }, + { + "left_line": 525, + "right_line": 595 + }, + { + "left_line": 526, + "right_line": 596 + }, + { + "left_line": 527, + "right_line": 597 + }, + { + "left_line": 528, + "right_line": 598 + }, + { + "left_line": 529, + "right_line": 599 + }, + { + "left_line": 530, + "right_line": 600 + }, + { + "left_line": 531, + "right_line": 601 + }, + { + "left_line": 532, + "right_line": 602 + }, + { + "left_line": 533, + "right_line": 603 + }, + { + "left_line": 534, + "right_line": 604 + }, + { + "left_line": 535, + "right_line": 605 + }, + { + "left_line": 536, + "right_line": 606 + }, + { + "left_line": 537, + "right_line": 607 + }, + { + "left_line": 538, + "right_line": 608 + }, + { + "left_line": 539, + "right_line": 609 + }, + { + "left_line": 540, + "right_line": 610 + }, + { + "left_line": 541, + "right_line": 611 + }, + { + "left_line": 542, + "right_line": 612 + }, + { + "left_line": 543, + "right_line": 613 + }, + { + "left_line": 544, + "right_line": 614 + }, + { + "left_line": 545, + "right_line": 615 + }, + { + "left_line": 546, + "right_line": 616 + }, + { + "left_line": 547, + "right_line": 617 + }, + { + "left_line": 548, + "right_line": 618 + }, + { + "left_line": 549, + "right_line": 619 + }, + { + "left_line": 550, + "right_line": 620 + }, + { + "left_line": 551, + "right_line": 621 + }, + { + "left_line": 552, + "right_line": 622 + }, + { + "left_line": 553, + "right_line": 623 + }, + { + "left_line": 554, + "right_line": 624 + }, + { + "left_line": 555, + "right_line": 625 + }, + { + "left_line": 556, + "right_line": 626 + }, + { + "left_line": 557, + "right_line": 627 + }, + { + "left_line": 558, + "right_line": 628 + }, + { + "left_line": 559, + "right_line": 629 + }, + { + "left_line": 560, + "right_line": 630 + }, + { + "left_line": 561, + "right_line": 631 + }, + { + "left_line": 562, + "right_line": 632 + }, + { + "left_line": 563, + "right_line": 633 + }, + { + "left_line": 564, + "right_line": 634 + }, + { + "left_line": 565, + "right_line": 635 + }, + { + "left_line": 566, + "right_line": 636 + }, + { + "left_line": 567, + "right_line": 637 + }, + { + "left_line": 568, + "right_line": 638 + }, + { + "left_line": 569, + "right_line": 639 + }, + { + "left_line": 570, + "right_line": 640 + }, + { + "left_line": 571, + "right_line": 641 + }, + { + "left_line": 572, + "right_line": 642 + }, + { + "left_line": 573, + "right_line": 643 + }, + { + "left_line": 574, + "right_line": 644 + }, + { + "left_line": 575, + "right_line": 645 + }, + { + "left_line": 576, + "right_line": 646 + }, + { + "left_line": 577, + "right_line": 647 + }, + { + "left_line": 578, + "right_line": 648 + }, + { + "left_line": 579, + "right_line": 649 + }, + { + "left_line": 580, + "right_line": 650 + }, + { + "left_line": 581, + "right_line": 651 + }, + { + "left_line": 582, + "right_line": 652 + }, + { + "left_line": 583, + "right_line": 653 + }, + { + "left_line": 584, + "right_line": 654 + }, + { + "left_line": 585, + "right_line": 655 + }, + { + "left_line": 586, + "right_line": 656 + }, + { + "left_line": 587, + "right_line": 657 + }, + { + "left_line": 588, + "right_line": 658 + }, + { + "left_line": 589, + "right_line": 659 + }, + { + "left_line": 590, + "right_line": 660 + }, + { + "left_line": 591, + "right_line": 661 + }, + { + "left_line": 592, + "right_line": 662 + }, + { + "left_line": 593, + "right_line": 663 + }, + { + "left_line": 594, + "right_line": 664 + }, + { + "left_line": 595, + "right_line": 665 + }, + { + "left_line": 596, + "right_line": 666 + }, + { + "left_line": 597, + "right_line": 667 + }, + { + "left_line": 598, + "right_line": 668 + }, + { + "left_line": 599, + "right_line": 669 + }, + { + "left_line": 600, + "right_line": 670 + }, + { + "left_line": 601, + "right_line": 671 + }, + { + "left_line": 602, + "right_line": 672 + }, + { + "left_line": 603, + "right_line": 673 + }, + { + "left_line": 604, + "right_line": 674 + }, + { + "left_line": 605, + "right_line": 675 + }, + { + "left_line": 606, + "right_line": 676 + }, + { + "left_line": 607, + "right_line": 677 + }, + { + "left_line": 608, + "right_line": 678 + }, + { + "left_line": 609, + "right_line": 679 + }, + { + "left_line": 610, + "right_line": 680 + }, + { + "left_line": 611, + "right_line": 681 + }, + { + "left_line": 612, + "right_line": 682 + }, + { + "left_line": 613, + "right_line": 683 + }, + { + "left_line": 614, + "right_line": 684 + }, + { + "left_line": 615, + "right_line": 685 + }, + { + "left_line": 616, + "right_line": 686 + }, + { + "left_line": 617, + "right_line": 687 + }, + { + "left_line": 618, + "right_line": 688 + }, + { + "left_line": 619, + "right_line": 689 + }, + { + "left_line": 620, + "right_line": 690 + }, + { + "left_line": 621, + "right_line": 691 + }, + { + "left_line": 622, + "right_line": 692 + }, + { + "left_line": 623, + "right_line": 693 + }, + { + "left_line": 624, + "right_line": 694 + }, + { + "left_line": 625, + "right_line": 695 + }, + { + "left_line": 626, + "right_line": 696 + }, + { + "left_line": 627, + "right_line": 697 + }, + { + "left_line": 628, + "right_line": 698 + }, + { + "left_line": 629, + "right_line": 699 + }, + { + "left_line": 630, + "right_line": 700 + }, + { + "left_line": 631, + "right_line": 701 + }, + { + "left_line": 632, + "right_line": 702 + }, + { + "left_line": 633, + "right_line": 703 + }, + { + "left_line": 634, + "right_line": 704 + }, + { + "left_line": 635, + "right_line": 705 + }, + { + "left_line": 636, + "right_line": 706 + }, + { + "left_line": 637, + "right_line": 707 + }, + { + "left_line": 638, + "right_line": 708 + }, + { + "left_line": 639, + "right_line": 709 + }, + { + "left_line": 640, + "right_line": 710 + }, + { + "left_line": 641, + "right_line": 711 + }, + { + "left_line": 642, + "right_line": 712 + }, + { + "left_line": 643, + "right_line": 713 + }, + { + "left_line": 644, + "right_line": 714 + }, + { + "left_line": 645, + "right_line": 715 + }, + { + "left_line": 646, + "right_line": 716 + }, + { + "left_line": 647, + "right_line": 717 + }, + { + "left_line": 648, + "right_line": 718 + }, + { + "left_line": 649, + "right_line": 719 + }, + { + "left_line": 650, + "right_line": 720 + }, + { + "left_line": 651, + "right_line": 721 + }, + { + "left_line": 652, + "right_line": 722 + }, + { + "left_line": 653, + "right_line": 723 + }, + { + "left_line": 654, + "right_line": 724 + }, + { + "left_line": 655, + "right_line": 725 + }, + { + "left_line": 656, + "right_line": 726 + }, + { + "left_line": 657, + "right_line": 727 + }, + { + "left_line": 658, + "right_line": 728 + }, + { + "left_line": 659, + "right_line": 729 + }, + { + "left_line": 660, + "right_line": 730 + }, + { + "left_line": 661, + "right_line": 731 + }, + { + "left_line": 662, + "right_line": 732 + }, + { + "left_line": 663, + "right_line": 733 + }, + { + "left_line": 664, + "right_line": 734 + }, + { + "left_line": 665, + "right_line": 735 + }, + { + "left_line": 666, + "right_line": 736 + }, + { + "left_line": 667, + "right_line": 737 + }, + { + "left_line": 668, + "right_line": 738 + }, + { + "left_line": 669, + "right_line": 739 + }, + { + "left_line": 670, + "right_line": 740 + }, + { + "left_line": 671, + "right_line": 741 + }, + { + "left_line": 672, + "right_line": 742 + }, + { + "left_line": 673, + "right_line": 743 + }, + { + "left_line": 674, + "right_line": 744 + }, + { + "left_line": 675, + "right_line": 745 + }, + { + "left_line": 676, + "right_line": 746 + }, + { + "left_line": 677, + "right_line": 747 + }, + { + "left_line": 678, + "right_line": 748 + }, + { + "left_line": 679, + "right_line": 749 + }, + { + "left_line": 680, + "right_line": 750 + }, + { + "left_line": 681, + "right_line": 751 + }, + { + "left_line": 682, + "right_line": 752 + }, + { + "left_line": 683, + "right_line": 753 + }, + { + "left_line": 684, + "right_line": 754 + }, + { + "left_line": 685, + "right_line": 755 + }, + { + "left_line": 686, + "right_line": 756 + }, + { + "left_line": 687, + "right_line": 757 + }, + { + "left_line": 688, + "right_line": 758 + }, + { + "left_line": 689, + "right_line": 759 + }, + { + "left_line": 690, + "right_line": 760 + }, + { + "left_line": 691, + "right_line": 761 + }, + { + "left_line": 692, + "right_line": 762 + }, + { + "left_line": 693, + "right_line": 763 + }, + { + "left_line": 694, + "right_line": 764 + }, + { + "left_line": 695, + "right_line": 765 + }, + { + "left_line": 696, + "right_line": 766 + }, + { + "left_line": 697, + "right_line": 767 + }, + { + "left_line": 698, + "right_line": 768 + }, + { + "left_line": 699, + "right_line": 769 + }, + { + "left_line": 700, + "right_line": 770 + }, + { + "left_line": 701, + "right_line": 771 + }, + { + "left_line": 702, + "right_line": 772 + }, + { + "left_line": 703, + "right_line": 773 + }, + { + "left_line": 704, + "right_line": 774 + }, + { + "left_line": 705, + "right_line": 775 + }, + { + "left_line": 706, + "right_line": 776 + }, + { + "left_line": 707, + "right_line": 777 + }, + { + "left_line": 708, + "right_line": 778 + }, + { + "left_line": 709, + "right_line": 779 + }, + { + "left_line": 710, + "right_line": 780 + }, + { + "left_line": 711, + "right_line": 781 + }, + { + "left_line": 712, + "right_line": 782 + }, + { + "left_line": 713, + "right_line": 783 + }, + { + "left_line": 714, + "right_line": 784 + }, + { + "left_line": 715, + "right_line": 785 + }, + { + "left_line": 716, + "right_line": 786 + }, + { + "left_line": 717, + "right_line": 787 + }, + { + "left_line": 718, + "right_line": 788 + }, + { + "left_line": 719, + "right_line": 789 + }, + { + "left_line": 720, + "right_line": 790 + }, + { + "left_line": 721, + "right_line": 791 + }, + { + "left_line": 722, + "right_line": 792 + }, + { + "left_line": 723, + "right_line": 793 + }, + { + "left_line": 724, + "right_line": 794 + }, + { + "left_line": 725, + "right_line": 795 + }, + { + "left_line": 726, + "right_line": 796 + }, + { + "left_line": 727, + "right_line": 797 + }, + { + "left_line": 728, + "right_line": 798 + }, + { + "left_line": 729, + "right_line": 799 + }, + { + "left_line": 730, + "right_line": 800 + }, + { + "left_line": 731, + "right_line": 801 + }, + { + "left_line": 732, + "right_line": 802 + }, + { + "left_line": 733, + "right_line": 803 + }, + { + "left_line": 734, + "right_line": 804 + }, + { + "left_line": 735, + "right_line": 805 + }, + { + "left_line": 736, + "right_line": 806 + }, + { + "left_line": 737, + "right_line": 807 + }, + { + "left_line": 738, + "right_line": 808 + }, + { + "left_line": 739, + "right_line": 809 + }, + { + "left_line": 740, + "right_line": 810 + }, + { + "left_line": 741, + "right_line": 811 + }, + { + "left_line": 742, + "right_line": 812 + }, + { + "left_line": 743, + "right_line": 813 + }, + { + "left_line": 744, + "right_line": 814 + }, + { + "left_line": 745, + "right_line": 815 + }, + { + "left_line": 746, + "right_line": 816 + }, + { + "left_line": 747, + "right_line": 817 + }, + { + "left_line": 748, + "right_line": 818 + }, + { + "left_line": 749, + "right_line": 819 + }, + { + "left_line": 750, + "right_line": 820 + }, + { + "left_line": 751, + "right_line": 821 + }, + { + "left_line": 752, + "right_line": 822 + }, + { + "left_line": 753, + "right_line": 823 + }, + { + "left_line": 754, + "right_line": 824 + }, + { + "left_line": 755, + "right_line": 825 + }, + { + "left_line": 756, + "right_line": 826 + }, + { + "left_line": 757, + "right_line": 827 + }, + { + "left_line": 758, + "right_line": 828 + }, + { + "left_line": 759, + "right_line": 829 + }, + { + "left_line": 760, + "right_line": 830 + }, + { + "left_line": 761, + "right_line": 831 + }, + { + "left_line": 762, + "right_line": 832 + }, + { + "left_line": 763, + "right_line": 833 + }, + { + "left_line": 764, + "right_line": 834 + }, + { + "left_line": 765, + "right_line": 835 + }, + { + "left_line": 766, + "right_line": 836 + }, + { + "left_line": 767, + "right_line": 837 + }, + { + "left_line": 768, + "right_line": 838 + }, + { + "left_line": 769, + "right_line": 839 + }, + { + "left_line": 770, + "right_line": 840 + }, + { + "left_line": 771, + "right_line": 841 + }, + { + "left_line": 772, + "right_line": 842 + }, + { + "left_line": 773, + "right_line": 843 + }, + { + "left_line": 774, + "right_line": 844 + }, + { + "left_line": 775, + "right_line": 845 + }, + { + "left_line": 776, + "right_line": 846 + }, + { + "left_line": 777, + "right_line": 847 + }, + { + "left_line": 778, + "right_line": 848 + }, + { + "left_line": 779, + "right_line": 849 + }, + { + "left_line": 780, + "right_line": 850 + }, + { + "left_line": 781, + "right_line": 851 + }, + { + "left_line": 782, + "right_line": 852 + }, + { + "left_line": 783, + "right_line": 853 + }, + { + "left_line": 784, + "right_line": 854 + }, + { + "left_line": 785, + "right_line": 855 + }, + { + "left_line": 786, + "right_line": 856 + }, + { + "left_line": 787, + "right_line": 857 + }, + { + "left_line": 788, + "right_line": 858 + }, + { + "left_line": 789, + "right_line": 859 + }, + { + "left_line": 790, + "right_line": 860 + }, + { + "left_line": 791, + "right_line": 861 + }, + { + "left_line": 792, + "right_line": 862 + }, + { + "left_line": 793, + "right_line": 863 + }, + { + "left_line": 794, + "right_line": 864 + }, + { + "left_line": 795, + "right_line": 865 + }, + { + "left_line": 796, + "right_line": 866 + }, + { + "left_line": 797, + "right_line": 867 + }, + { + "left_line": 798, + "right_line": 868 + }, + { + "left_line": 799, + "right_line": 869 + }, + { + "left_line": 800, + "right_line": 870 + }, + { + "left_line": 801, + "right_line": 871 + }, + { + "left_line": 802, + "right_line": 872 + }, + { + "left_line": 803, + "right_line": 873 + }, + { + "left_line": 804, + "right_line": 874 + }, + { + "left_line": 805, + "right_line": 875 + }, + { + "left_line": 806, + "right_line": 876 + }, + { + "left_line": 807, + "right_line": 877 + }, + { + "left_line": 808, + "right_line": 878 + }, + { + "left_line": 809, + "right_line": 879 + }, + { + "left_line": 810, + "right_line": 880 + }, + { + "left_line": 811, + "right_line": 881 + }, + { + "left_line": 812, + "right_line": 882 + }, + { + "left_line": 813, + "right_line": 883 + }, + { + "left_line": 814, + "right_line": 884 + }, + { + "left_line": 815, + "right_line": 885 + }, + { + "left_line": 816, + "right_line": 886 + }, + { + "left_line": 817, + "right_line": 887 + }, + { + "left_line": 818, + "right_line": 888 + }, + { + "left_line": 819, + "right_line": 889 + }, + { + "left_line": 820, + "right_line": 890 + }, + { + "left_line": 821, + "right_line": 891 + }, + { + "left_line": 822, + "right_line": 892 + }, + { + "left_line": 823, + "right_line": 893 + }, + { + "left_line": 824, + "right_line": 894 + }, + { + "left_line": 825, + "right_line": 895 + }, + { + "left_line": 826, + "right_line": 896 + }, + { + "left_line": 827, + "right_line": 897 + }, + { + "left_line": 828, + "right_line": 898 + }, + { + "left_line": 829, + "right_line": 899 + }, + { + "left_line": 830, + "right_line": 900 + }, + { + "left_line": 831, + "right_line": 901 + }, + { + "left_line": 832, + "right_line": 902 + }, + { + "left_line": 833, + "right_line": 903 + }, + { + "left_line": 834, + "right_line": 904 + }, + { + "left_line": 835, + "right_line": 905 + }, + { + "left_line": 836, + "right_line": 906 + }, + { + "left_line": 837, + "right_line": 907 + }, + { + "left_line": 838, + "right_line": 908 + }, + { + "left_line": 839, + "right_line": 909 + }, + { + "left_line": 840, + "right_line": 910 + }, + { + "left_line": 841, + "right_line": 911 + }, + { + "left_line": 842, + "right_line": 912 + }, + { + "left_line": 843, + "right_line": 913 + }, + { + "left_line": 844, + "right_line": 914 + }, + { + "left_line": 845, + "right_line": 915 + }, + { + "left_line": 846, + "right_line": 916 + }, + { + "left_line": 847, + "right_line": 917 + }, + { + "left_line": 848, + "right_line": 918 + }, + { + "left_line": 849, + "right_line": 919 + }, + { + "left_line": 850, + "right_line": 920 + }, + { + "left_line": 851, + "right_line": 921 + }, + { + "left_line": 852, + "right_line": 922 + }, + { + "left_line": 853, + "right_line": 923 + }, + { + "left_line": 854, + "right_line": 924 + }, + { + "left_line": 855, + "right_line": 925 + }, + { + "left_line": 856, + "right_line": 926 + }, + { + "left_line": 857, + "right_line": 927 + }, + { + "left_line": 858, + "right_line": 928 + }, + { + "left_line": 859, + "right_line": 929 + }, + { + "left_line": 860, + "right_line": 930 + }, + { + "left_line": 861, + "right_line": 931 + }, + { + "left_line": 862, + "right_line": 932 + }, + { + "left_line": 863, + "right_line": 933 + }, + { + "left_line": 864, + "right_line": 934 + }, + { + "left_line": 865, + "right_line": 935 + }, + { + "left_line": 866, + "right_line": 936 + }, + { + "left_line": 867, + "right_line": 937 + }, + { + "left_line": 868, + "right_line": 938 + }, + { + "left_line": 869, + "right_line": 939 + }, + { + "left_line": 870, + "right_line": 940 + }, + { + "left_line": 871, + "right_line": 941 + }, + { + "left_line": 872, + "right_line": 942 + }, + { + "left_line": 873, + "right_line": 943 + }, + { + "left_line": 874, + "right_line": 944 + }, + { + "left_line": 875, + "right_line": 945 + }, + { + "left_line": 876, + "right_line": 946 + }, + { + "left_line": 877, + "right_line": 947 + }, + { + "left_line": 878, + "right_line": 948 + }, + { + "left_line": 879, + "right_line": 949 + }, + { + "left_line": 880, + "right_line": 950 + }, + { + "left_line": 881, + "right_line": 951 + }, + { + "left_line": 882, + "right_line": 952 + }, + { + "left_line": 883, + "right_line": 953 + }, + { + "left_line": 884, + "right_line": 954 + }, + { + "left_line": 885, + "right_line": 955 + }, + { + "left_line": 886, + "right_line": 956 + }, + { + "left_line": 887, + "right_line": 957 + }, + { + "left_line": 888, + "right_line": 958 + }, + { + "left_line": 889, + "right_line": 959 + }, + { + "left_line": 890, + "right_line": 960 + }, + { + "left_line": 891, + "right_line": 961 + }, + { + "left_line": 892, + "right_line": 962 + }, + { + "left_line": 893, + "right_line": 963 + }, + { + "left_line": 894, + "right_line": 964 + }, + { + "left_line": 895, + "right_line": 965 + }, + { + "left_line": 896, + "right_line": 966 + }, + { + "left_line": 897, + "right_line": 967 + }, + { + "left_line": 898, + "right_line": 968 + }, + { + "left_line": 899, + "right_line": 969 + }, + { + "left_line": 900, + "right_line": 970 + }, + { + "left_line": 901, + "right_line": 971 + }, + { + "left_line": 902, + "right_line": 972 + }, + { + "left_line": 903, + "right_line": 973 + }, + { + "left_line": 904, + "right_line": 974 + }, + { + "left_line": 905, + "right_line": 975 + }, + { + "left_line": 906, + "right_line": 976 + }, + { + "left_line": 907, + "right_line": 977 + }, + { + "left_line": 908, + "right_line": 978 + }, + { + "left_line": 909, + "right_line": 979 + }, + { + "left_line": 910, + "right_line": 980 + }, + { + "left_line": 911, + "right_line": 981 + }, + { + "left_line": 912, + "right_line": 982 + }, + { + "left_line": 913, + "right_line": 983 + }, + { + "left_line": 914, + "right_line": 984 + }, + { + "left_line": 915, + "right_line": 985 + }, + { + "left_line": 916, + "right_line": 986 + }, + { + "left_line": 917, + "right_line": 987 + }, + { + "left_line": 918, + "right_line": 988 + }, + { + "left_line": 919, + "right_line": 989 + }, + { + "left_line": 920, + "right_line": 990 + }, + { + "left_line": 921, + "right_line": 991 + }, + { + "left_line": 922, + "right_line": 992 + }, + { + "left_line": 923, + "right_line": 993 + }, + { + "left_line": 924, + "right_line": 994 + }, + { + "left_line": 925, + "right_line": 995 + }, + { + "left_line": 926, + "right_line": 996 + }, + { + "left_line": 927, + "right_line": 997 + }, + { + "left_line": 928, + "right_line": 998 + }, + { + "left_line": 929, + "right_line": 999 + }, + { + "left_line": 930, + "right_line": 1000 + }, + { + "left_line": 931, + "right_line": 1001 + }, + { + "left_line": 932, + "right_line": 1002 + }, + { + "left_line": 933, + "right_line": 1003 + }, + { + "left_line": 934, + "right_line": 1004 + }, + { + "left_line": 935, + "right_line": 1005 + }, + { + "left_line": 936, + "right_line": 1006 + }, + { + "left_line": 937, + "right_line": 1007 + }, + { + "left_line": 938, + "right_line": 1008 + }, + { + "left_line": 939, + "right_line": 1009 + }, + { + "left_line": 940, + "right_line": 1010 + }, + { + "left_line": 941, + "right_line": 1011 + }, + { + "left_line": 942, + "right_line": 1012 + }, + { + "left_line": 943, + "right_line": 1013 + }, + { + "left_line": 944, + "right_line": 1014 + }, + { + "left_line": 945, + "right_line": 1015 + }, + { + "left_line": 946, + "right_line": 1016 + }, + { + "left_line": 947, + "right_line": 1017 + }, + { + "left_line": 948, + "right_line": 1018 + }, + { + "left_line": 949, + "right_line": 1019 + }, + { + "left_line": 950, + "right_line": 1020 + }, + { + "left_line": 951, + "right_line": 1021 + }, + { + "left_line": 952, + "right_line": 1022 + }, + { + "left_line": 953, + "right_line": 1023 + }, + { + "left_line": 954, + "right_line": 1024 + }, + { + "left_line": 955, + "right_line": 1025 + }, + { + "left_line": 956, + "right_line": 1026 + }, + { + "left_line": 957, + "right_line": 1027 + }, + { + "left_line": 958, + "right_line": 1028 + }, + { + "left_line": 959, + "right_line": 1029 + }, + { + "left_line": 960, + "right_line": 1030 + }, + { + "left_line": 961, + "right_line": 1031 + }, + { + "left_line": 962, + "right_line": 1032 + }, + { + "left_line": 963, + "right_line": 1033 + }, + { + "left_line": 964, + "right_line": 1034 + }, + { + "left_line": 965, + "right_line": 1035 + }, + { + "left_line": 966, + "right_line": 1036 + }, + { + "left_line": 967, + "right_line": 1037 + }, + { + "left_line": 968, + "right_line": 1038 + }, + { + "left_line": 969, + "right_line": 1039 + }, + { + "left_line": 970, + "right_line": 1040 + }, + { + "left_line": 971, + "right_line": 1041 + }, + { + "left_line": 972, + "right_line": 1042 + }, + { + "left_line": 973, + "right_line": 1043 + }, + { + "left_line": 974, + "right_line": 1044 + }, + { + "left_line": 975, + "right_line": 1045 + }, + { + "left_line": 976, + "right_line": 1046 + }, + { + "left_line": 977, + "right_line": 1047 + }, + { + "left_line": 978, + "right_line": 1048 + }, + { + "left_line": 979, + "right_line": 1049 + }, + { + "left_line": 980, + "right_line": 1050 + }, + { + "left_line": 981, + "right_line": 1051 + }, + { + "left_line": 982, + "right_line": 1052 + }, + { + "left_line": 983, + "right_line": 1053 + }, + { + "left_line": 984, + "right_line": 1054 + }, + { + "left_line": 985, + "right_line": 1055 + }, + { + "left_line": 986, + "right_line": 1056 + }, + { + "left_line": 987, + "right_line": 1057 + }, + { + "left_line": 988, + "right_line": 1058 + }, + { + "left_line": 989, + "right_line": 1059 + }, + { + "left_line": 990, + "right_line": 1060 + }, + { + "left_line": 991, + "right_line": 1061 + }, + { + "left_line": 992, + "right_line": 1062 + }, + { + "left_line": 993, + "right_line": 1063 + }, + { + "left_line": 994, + "right_line": 1064 + }, + { + "left_line": 995, + "right_line": 1065 + }, + { + "left_line": 996, + "right_line": 1066 + }, + { + "left_line": 997, + "right_line": 1067 + }, + { + "left_line": 998, + "right_line": 1068 + }, + { + "left_line": 999, + "right_line": 1069 + }, + { + "left_line": 1000, + "right_line": 1070 + }, + { + "left_line": 1001, + "right_line": 1071 + }, + { + "left_line": 1002, + "right_line": 1072 + }, + { + "left_line": 1003, + "right_line": 1073 + }, + { + "left_line": 1004, + "right_line": 1074 + }, + { + "left_line": 1005, + "right_line": 1075 + }, + { + "left_line": 1006, + "right_line": 1076 + }, + { + "left_line": 1007, + "right_line": 1077 + }, + { + "left_line": 1008, + "right_line": 1078 + }, + { + "left_line": 1009, + "right_line": 1079 + }, + { + "left_line": 1010, + "right_line": 1080 + }, + { + "left_line": 1011, + "right_line": 1081 + }, + { + "left_line": 1012, + "right_line": 1082 + }, + { + "left_line": 1013, + "right_line": 1083 + }, + { + "left_line": 1014, + "right_line": 1084 + }, + { + "left_line": 1015, + "right_line": 1085 + }, + { + "left_line": 1016, + "right_line": 1086 + }, + { + "left_line": 1017, + "right_line": 1087 + }, + { + "left_line": 1018, + "right_line": 1088 + }, + { + "left_line": 1019, + "right_line": 1089 + }, + { + "left_line": 1020, + "right_line": 1090 + }, + { + "left_line": 1021, + "right_line": 1091 + }, + { + "left_line": 1022, + "right_line": 1092 + }, + { + "left_line": 1023, + "right_line": 1093 + }, + { + "left_line": 1024, + "right_line": 1094 + }, + { + "left_line": 1025, + "right_line": 1095 + }, + { + "left_line": 1026, + "right_line": 1096 + }, + { + "left_line": 1027, + "right_line": 1097 + }, + { + "left_line": 1028, + "right_line": 1098 + }, + { + "left_line": 1029, + "right_line": 1099 + }, + { + "left_line": 1030, + "right_line": 1100 + }, + { + "left_line": 1031, + "right_line": 1101 + }, + { + "left_line": 1032, + "right_line": 1102 + }, + { + "left_line": 1033, + "right_line": 1103 + }, + { + "left_line": 1034, + "right_line": 1104 + }, + { + "left_line": 1035, + "right_line": 1105 + }, + { + "left_line": 1036, + "right_line": 1106 + }, + { + "left_line": 1037, + "right_line": 1107 + }, + { + "left_line": 1038, + "right_line": 1108 + }, + { + "left_line": 1039, + "right_line": 1109 + }, + { + "left_line": 1040, + "right_line": 1110 + }, + { + "left_line": 1041, + "right_line": 1111 + }, + { + "left_line": 1042, + "right_line": 1112 + }, + { + "left_line": 1043, + "right_line": 1113 + }, + { + "left_line": 1044, + "right_line": 1114 + }, + { + "left_line": 1045, + "right_line": 1115 + }, + { + "left_line": 1046, + "right_line": 1116 + }, + { + "left_line": 1047, + "right_line": 1117 + }, + { + "left_line": 1048, + "right_line": 1118 + }, + { + "left_line": 1049, + "right_line": 1119 + }, + { + "left_line": 1050, + "right_line": 1120 + }, + { + "left_line": 1051, + "right_line": 1121 + }, + { + "left_line": 1052, + "right_line": 1122 + }, + { + "left_line": 1053, + "right_line": 1123 + }, + { + "left_line": 1054, + "right_line": 1124 + }, + { + "left_line": 1055, + "right_line": 1125 + }, + { + "left_line": 1056, + "right_line": 1126 + }, + { + "left_line": 1057, + "right_line": 1127 + }, + { + "left_line": 1058, + "right_line": 1128 + }, + { + "left_line": 1059, + "right_line": 1129 + }, + { + "left_line": 1060, + "right_line": 1130 + }, + { + "left_line": 1061, + "right_line": 1131 + }, + { + "left_line": 1062, + "right_line": 1132 + }, + { + "left_line": 1063, + "right_line": 1133 + }, + { + "left_line": 1064, + "right_line": 1134 + }, + { + "left_line": 1065, + "right_line": 1135 + }, + { + "left_line": 1066, + "right_line": 1136 + }, + { + "left_line": 1067, + "right_line": 1137 + }, + { + "left_line": 1068, + "right_line": 1138 + }, + { + "left_line": 1069, + "right_line": 1139 + }, + { + "left_line": 1070, + "right_line": 1140 + }, + { + "left_line": 1071, + "right_line": 1141 + }, + { + "left_line": 1072, + "right_line": 1142 + }, + { + "left_line": 1073, + "right_line": 1143 + }, + { + "left_line": 1074, + "right_line": 1144 + }, + { + "left_line": 1075, + "right_line": 1145 + }, + { + "left_line": 1076, + "right_line": 1146 + }, + { + "left_line": 1077, + "right_line": 1147 + }, + { + "left_line": 1078, + "right_line": 1148 + }, + { + "left_line": 1079, + "right_line": 1149 + }, + { + "left_line": 1080, + "right_line": 1150 + }, + { + "left_line": 1081, + "right_line": 1151 + }, + { + "left_line": 1082, + "right_line": 1152 + }, + { + "left_line": 1083, + "right_line": 1153 + }, + { + "left_line": 1084, + "right_line": 1154 + }, + { + "left_line": 1085, + "right_line": 1155 + }, + { + "left_line": 1086, + "right_line": 1156 + }, + { + "left_line": 1087, + "right_line": 1157 + }, + { + "left_line": 1088, + "right_line": 1158 + }, + { + "left_line": 1089, + "right_line": 1159 + }, + { + "left_line": 1090, + "right_line": 1160 + }, + { + "left_line": 1091, + "right_line": 1161 + }, + { + "left_line": 1092, + "right_line": 1162 + }, + { + "left_line": 1093, + "right_line": 1163 + }, + { + "left_line": 1094, + "right_line": 1164 + }, + { + "left_line": 1095, + "right_line": 1165 + }, + { + "left_line": 1096, + "right_line": 1166 + }, + { + "left_line": 1097, + "right_line": 1167 + }, + { + "left_line": 1098, + "right_line": 1168 + }, + { + "left_line": 1099, + "right_line": 1169 + }, + { + "left_line": 1100, + "right_line": 1170 + }, + { + "left_line": 1101, + "right_line": 1171 + }, + { + "left_line": 1102, + "right_line": 1172 + }, + { + "left_line": 1103, + "right_line": 1173 + }, + { + "left_line": 1104, + "right_line": 1174 + }, + { + "left_line": 1105, + "right_line": 1175 + }, + { + "left_line": 1106, + "right_line": 1176 + }, + { + "left_line": 1107, + "right_line": 1177 + }, + { + "left_line": 1108, + "right_line": 1178 + }, + { + "left_line": 1109, + "right_line": 1179 + }, + { + "left_line": 1110, + "right_line": 1180 + }, + { + "left_line": 1111, + "right_line": 1181 + }, + { + "left_line": 1112, + "right_line": 1182 + }, + { + "left_line": 1113, + "right_line": 1183 + }, + { + "left_line": 1114, + "right_line": 1184 + }, + { + "left_line": 1115, + "right_line": 1185 + }, + { + "left_line": 1116, + "right_line": 1186 + }, + { + "left_line": 1117, + "right_line": 1187 + }, + { + "left_line": 1118, + "right_line": 1188 + }, + { + "left_line": 1119, + "right_line": 1189 + }, + { + "left_line": 1120, + "right_line": 1190 + }, + { + "left_line": 1121, + "right_line": 1191 + }, + { + "left_line": 1122, + "right_line": 1192 + }, + { + "left_line": 1123, + "right_line": 1193 + }, + { + "left_line": 1124, + "right_line": 1194 + }, + { + "left_line": 1125, + "right_line": 1195 + }, + { + "left_line": 1126, + "right_line": 1196 + }, + { + "left_line": 1127, + "right_line": 1197 + }, + { + "left_line": 1128, + "right_line": 1198 + }, + { + "left_line": 1129, + "right_line": 1199 + }, + { + "left_line": 1130, + "right_line": 1200 + }, + { + "left_line": 1131, + "right_line": 1201 + }, + { + "left_line": 1132, + "right_line": 1202 + }, + { + "left_line": 1133, + "right_line": 1203 + }, + { + "left_line": 1134, + "right_line": 1204 + }, + { + "left_line": 1135, + "right_line": 1205 + }, + { + "left_line": 1136, + "right_line": 1206 + }, + { + "left_line": 1137, + "right_line": 1207 + }, + { + "left_line": 1138, + "right_line": 1208 + }, + { + "left_line": 1139, + "right_line": 1209 + }, + { + "left_line": 1140, + "right_line": 1210 + }, + { + "left_line": 1141, + "right_line": 1211 + }, + { + "left_line": 1142, + "right_line": 1212 + }, + { + "left_line": 1143, + "right_line": 1213 + }, + { + "left_line": 1144, + "right_line": 1214 + }, + { + "left_line": 1145, + "right_line": 1215 + }, + { + "left_line": 1146, + "right_line": 1216 + }, + { + "left_line": 1147, + "right_line": 1217 + }, + { + "left_line": 1148, + "right_line": 1218 + }, + { + "left_line": 1149, + "right_line": 1219 + }, + { + "left_line": 1150, + "right_line": 1220 + }, + { + "left_line": 1151, + "right_line": 1221 + }, + { + "left_line": 1152, + "right_line": 1222 + }, + { + "left_line": 1153, + "right_line": 1223 + }, + { + "left_line": 1154, + "right_line": 1224 + }, + { + "left_line": 1155, + "right_line": 1225 + }, + { + "left_line": 1156, + "right_line": 1226 + }, + { + "left_line": 1157, + "right_line": 1227 + }, + { + "left_line": 1158, + "right_line": 1228 + }, + { + "left_line": 1159, + "right_line": 1229 + }, + { + "left_line": 1160, + "right_line": 1230 + }, + { + "left_line": 1161, + "right_line": 1231 + }, + { + "left_line": 1162, + "right_line": 1232 + }, + { + "left_line": 1163, + "right_line": 1233 + }, + { + "left_line": 1164, + "right_line": 1234 + }, + { + "left_line": 1165, + "right_line": 1235 + }, + { + "left_line": 1166, + "right_line": 1236 + }, + { + "left_line": 1167, + "right_line": 1237 + }, + { + "left_line": 1168, + "right_line": 1238 + }, + { + "left_line": 1169, + "right_line": 1239 + }, + { + "left_line": 1170, + "right_line": 1240 + }, + { + "left_line": 1171, + "right_line": 1241 + }, + { + "left_line": 1172, + "right_line": 1242 + }, + { + "left_line": 1173, + "right_line": 1243 + }, + { + "left_line": 1174, + "right_line": 1244 + }, + { + "left_line": 1175, + "right_line": 1245 + }, + { + "left_line": 1176, + "right_line": 1246 + }, + { + "left_line": 1177, + "right_line": 1247 + }, + { + "left_line": 1178, + "right_line": 1248 + }, + { + "left_line": 1179, + "right_line": 1249 + }, + { + "left_line": 1180, + "right_line": 1250 + }, + { + "left_line": 1181, + "right_line": 1251 + }, + { + "left_line": 1182, + "right_line": 1252 + }, + { + "left_line": 1183, + "right_line": 1253 + }, + { + "left_line": 1184, + "right_line": 1254 + }, + { + "left_line": 1185, + "right_line": 1255 + }, + { + "left_line": 1186, + "right_line": 1256 + }, + { + "left_line": 1187, + "right_line": 1257 + }, + { + "left_line": 1188, + "right_line": 1258 + }, + { + "left_line": 1189, + "right_line": 1259 + }, + { + "left_line": 1190, + "right_line": 1260 + }, + { + "left_line": 1191, + "right_line": 1261 + }, + { + "left_line": 1192, + "right_line": 1262 + }, + { + "left_line": 1193, + "right_line": 1263 + }, + { + "left_line": 1194, + "right_line": 1264 + }, + { + "left_line": 1195, + "right_line": 1265 + }, + { + "left_line": 1196, + "right_line": 1266 + }, + { + "left_line": 1197, + "right_line": 1267 + }, + { + "left_line": 1198, + "right_line": 1268 + }, + { + "left_line": 1199, + "right_line": 1269 + }, + { + "left_line": 1200, + "right_line": 1270 + }, + { + "left_line": 1201, + "right_line": 1271 + }, + { + "left_line": 1202, + "right_line": 1272 + }, + { + "left_line": 1203, + "right_line": 1273 + }, + { + "left_line": 1204, + "right_line": 1274 + }, + { + "left_line": 1205, + "right_line": 1275 + }, + { + "left_line": 1206, + "right_line": 1276 + }, + { + "left_line": 1207, + "right_line": 1277 + }, + { + "left_line": 1208, + "right_line": 1278 + }, + { + "left_line": 1209, + "right_line": 1279 + }, + { + "left_line": 1210, + "right_line": 1280 + }, + { + "left_line": 1211, + "right_line": 1281 + }, + { + "left_line": 1212, + "right_line": 1282 + }, + { + "left_line": 1213, + "right_line": 1283 + }, + { + "left_line": 1214, + "right_line": 1284 + }, + { + "left_line": 1215, + "right_line": 1285 + }, + { + "left_line": 1216, + "right_line": 1286 + }, + { + "left_line": 1217, + "right_line": 1287 + }, + { + "left_line": 1218, + "right_line": 1288 + }, + { + "left_line": 1219, + "right_line": 1289 + }, + { + "left_line": 1220, + "right_line": 1290 + }, + { + "left_line": 1221, + "right_line": 1291 + }, + { + "left_line": 1222, + "right_line": 1292 + }, + { + "left_line": 1223, + "right_line": 1293 + }, + { + "left_line": 1224, + "right_line": 1294 + }, + { + "left_line": 1225, + "right_line": 1295 + }, + { + "left_line": 1226, + "right_line": 1296 + }, + { + "left_line": 1227, + "right_line": 1297 + }, + { + "left_line": 1228, + "right_line": 1298 + }, + { + "left_line": 1229, + "right_line": 1299 + }, + { + "left_line": 1230, + "right_line": 1300 + }, + { + "left_line": 1231, + "right_line": 1301 + }, + { + "left_line": 1232, + "right_line": 1302 + }, + { + "left_line": 1233, + "right_line": 1303 + }, + { + "left_line": 1234, + "right_line": 1304 + }, + { + "left_line": 1235, + "right_line": 1305 + }, + { + "left_line": 1236, + "right_line": 1306 + }, + { + "left_line": 1237, + "right_line": 1307 + }, + { + "left_line": 1238, + "right_line": 1308 + }, + { + "left_line": 1239, + "right_line": 1309 + }, + { + "left_line": 1240, + "right_line": 1310 + }, + { + "left_line": 1241, + "right_line": 1311 + }, + { + "left_line": 1242, + "right_line": 1312 + }, + { + "left_line": 1243, + "right_line": 1313 + }, + { + "left_line": 1244, + "right_line": 1314 + }, + { + "left_line": 1245, + "right_line": 1315 + }, + { + "left_line": 1246, + "right_line": 1316 + }, + { + "left_line": 1247, + "right_line": 1317 + }, + { + "left_line": 1248, + "right_line": 1318 + }, + { + "left_line": 1249, + "right_line": 1319 + }, + { + "left_line": 1250, + "right_line": 1320 + }, + { + "left_line": 1251, + "right_line": 1321 + }, + { + "left_line": 1252, + "right_line": 1322 + }, + { + "left_line": 1253, + "right_line": 1323 + }, + { + "left_line": 1254, + "right_line": 1324 + }, + { + "left_line": 1255, + "right_line": 1325 + }, + { + "left_line": 1256, + "right_line": 1326 + }, + { + "left_line": 1257, + "right_line": 1327 + }, + { + "left_line": 1258, + "right_line": 1328 + }, + { + "left_line": 1259, + "right_line": 1329 + }, + { + "left_line": 1260, + "right_line": 1330 + }, + { + "left_line": 1261, + "right_line": 1331 + }, + { + "left_line": 1262, + "right_line": 1332 + }, + { + "left_line": 1263, + "right_line": 1333 + }, + { + "left_line": 1264, + "right_line": 1334 + }, + { + "left_line": 1265, + "right_line": 1335 + }, + { + "left_line": 1266, + "right_line": 1336 + }, + { + "left_line": 1267, + "right_line": 1337 + }, + { + "left_line": 1268, + "right_line": 1338 + }, + { + "left_line": 1269, + "right_line": 1339 + }, + { + "left_line": 1270, + "right_line": 1340 + }, + { + "left_line": 1271, + "right_line": 1341 + }, + { + "left_line": 1272, + "right_line": 1342 + }, + { + "left_line": 1273, + "right_line": 1343 + }, + { + "left_line": 1274, + "right_line": 1344 + }, + { + "left_line": 1275, + "right_line": 1345 + }, + { + "left_line": 1276, + "right_line": 1346 + }, + { + "left_line": 1277, + "right_line": 1347 + }, + { + "left_line": 1278, + "right_line": 1348 + }, + { + "left_line": 1279, + "right_line": 1349 + }, + { + "left_line": 1280, + "right_line": 1350 + }, + { + "left_line": 1281, + "right_line": 1351 + }, + { + "left_line": 1282, + "right_line": 1352 + }, + { + "left_line": 1283, + "right_line": 1353 + }, + { + "left_line": 1284, + "right_line": 1354 + }, + { + "left_line": 1285, + "right_line": 1355 + }, + { + "left_line": 1286, + "right_line": 1356 + }, + { + "left_line": 1287, + "right_line": 1357 + }, + { + "left_line": 1288, + "right_line": 1358 + }, + { + "left_line": 1289, + "right_line": 1359 + }, + { + "left_line": 1290, + "right_line": 1360 + }, + { + "left_line": 1291, + "right_line": 1361 + }, + { + "left_line": 1292, + "right_line": 1362 + }, + { + "left_line": 1293, + "right_line": 1363 + }, + { + "left_line": 1294, + "right_line": 1364 + }, + { + "left_line": 1295, + "right_line": 1365 + }, + { + "left_line": 1296, + "right_line": 1366 + }, + { + "left_line": 1297, + "right_line": 1367 + }, + { + "left_line": 1298, + "right_line": 1368 + }, + { + "left_line": 1299, + "right_line": 1369 + }, + { + "left_line": 1300, + "right_line": 1370 + }, + { + "left_line": 1301, + "right_line": 1371 + }, + { + "left_line": 1302, + "right_line": 1372 + }, + { + "left_line": 1303, + "right_line": 1373 + }, + { + "left_line": 1304, + "right_line": 1374 + }, + { + "left_line": 1305, + "right_line": 1375 + }, + { + "left_line": 1306, + "right_line": 1376 + }, + { + "left_line": 1307, + "right_line": 1377 + }, + { + "left_line": 1308, + "right_line": 1378 + }, + { + "left_line": 1309, + "right_line": 1379 + }, + { + "left_line": 1310, + "right_line": 1380 + }, + { + "left_line": 1311, + "right_line": 1381 + }, + { + "left_line": 1312, + "right_line": 1382 + }, + { + "left_line": 1313, + "right_line": 1383 + }, + { + "left_line": 1314, + "right_line": 1384 + }, + { + "left_line": 1315, + "right_line": 1385 + }, + { + "left_line": 1316, + "right_line": 1386 + }, + { + "left_line": 1317, + "right_line": 1387 + }, + { + "left_line": 1318, + "right_line": 1388 + }, + { + "left_line": 1319, + "right_line": 1389 + }, + { + "left_line": 1320, + "right_line": 1390 + }, + { + "left_line": 1321, + "right_line": 1391 + }, + { + "left_line": 1322, + "right_line": 1392 + }, + { + "left_line": 1323, + "right_line": 1393 + }, + { + "left_line": 1324, + "right_line": 1394 + }, + { + "left_line": 1325, + "right_line": 1395 + }, + { + "left_line": 1326, + "right_line": 1396 + }, + { + "left_line": 1327, + "right_line": 1397 + }, + { + "left_line": 1328, + "right_line": 1398 + }, + { + "left_line": 1329, + "right_line": 1399 + }, + { + "left_line": 1330, + "right_line": 1400 + }, + { + "left_line": 1331, + "right_line": 1401 + }, + { + "left_line": 1332, + "right_line": 1402 + }, + { + "left_line": 1333, + "right_line": 1403 + }, + { + "left_line": 1334, + "right_line": 1404 + }, + { + "left_line": 1335, + "right_line": 1405 + }, + { + "left_line": 1336, + "right_line": 1406 + }, + { + "left_line": 1337, + "right_line": 1407 + }, + { + "left_line": 1338, + "right_line": 1408 + }, + { + "left_line": 1339, + "right_line": 1409 + }, + { + "left_line": 1340, + "right_line": 1410 + }, + { + "left_line": 1341, + "right_line": 1411 + }, + { + "left_line": 1342, + "right_line": 1412 + }, + { + "left_line": 1343, + "right_line": 1413 + }, + { + "left_line": 1344, + "right_line": 1414 + }, + { + "left_line": 1345, + "right_line": 1415 + }, + { + "left_line": 1346, + "right_line": 1416 + }, + { + "left_line": 1347, + "right_line": 1417 + }, + { + "left_line": 1348, + "right_line": 1418 + }, + { + "left_line": 1349, + "right_line": 1419 + }, + { + "left_line": 1350, + "right_line": 1420 + }, + { + "left_line": 1351, + "right_line": 1421 + }, + { + "left_line": 1352, + "right_line": 1422 + }, + { + "left_line": 1353, + "right_line": 1423 + }, + { + "left_line": 1354, + "right_line": 1424 + }, + { + "left_line": 1355, + "right_line": 1425 + }, + { + "left_line": 1356, + "right_line": 1426 + }, + { + "left_line": 1357, + "right_line": 1427 + }, + { + "left_line": 1358, + "right_line": 1428 + }, + { + "left_line": 1359, + "right_line": 1429 + }, + { + "left_line": 1360, + "right_line": 1430 + }, + { + "left_line": 1361, + "right_line": 1431 + }, + { + "left_line": 1362, + "right_line": 1432 + }, + { + "left_line": 1363, + "right_line": 1433 + }, + { + "left_line": 1364, + "right_line": 1434 + }, + { + "left_line": 1365, + "right_line": 1435 + }, + { + "left_line": 1366, + "right_line": 1436 + }, + { + "left_line": 1367, + "right_line": 1437 + }, + { + "left_line": 1368, + "right_line": 1438 + }, + { + "left_line": 1369, + "right_line": 1439 + }, + { + "left_line": 1370, + "right_line": 1440 + }, + { + "left_line": 1371, + "right_line": 1441 + }, + { + "left_line": 1372, + "right_line": 1442 + }, + { + "left_line": 1373, + "right_line": 1443 + }, + { + "left_line": 1374, + "right_line": 1444 + }, + { + "left_line": 1375, + "right_line": 1445 + }, + { + "left_line": 1376, + "right_line": 1446 + }, + { + "left_line": 1377, + "right_line": 1447 + }, + { + "left_line": 1378, + "right_line": 1448 + }, + { + "left_line": 1379, + "right_line": 1449 + }, + { + "left_line": 1380, + "right_line": 1450 + }, + { + "left_line": 1381, + "right_line": 1451 + }, + { + "left_line": 1382, + "right_line": 1452 + }, + { + "left_line": 1383, + "right_line": 1453 + }, + { + "left_line": 1384, + "right_line": 1454 + }, + { + "left_line": 1385, + "right_line": 1455 + }, + { + "left_line": 1386, + "right_line": 1456 + }, + { + "left_line": 1387, + "right_line": 1457 + }, + { + "left_line": 1388, + "right_line": 1458 + }, + { + "left_line": 1389, + "right_line": 1459 + }, + { + "left_line": 1390, + "right_line": 1460 + }, + { + "left_line": 1391, + "right_line": 1461 + }, + { + "left_line": 1392, + "right_line": 1462 + }, + { + "left_line": 1393, + "right_line": 1463 + }, + { + "left_line": 1394, + "right_line": 1464 + }, + { + "left_line": 1395, + "right_line": 1465 + }, + { + "left_line": 1396, + "right_line": 1466 + }, + { + "left_line": 1397, + "right_line": 1467 + }, + { + "left_line": 1398, + "right_line": 1468 + }, + { + "left_line": 1399, + "right_line": 1469 + }, + { + "left_line": 1400, + "right_line": 1470 + }, + { + "left_line": 1401, + "right_line": 1471 + }, + { + "left_line": 1402, + "right_line": 1472 + }, + { + "left_line": 1403, + "right_line": 1473 + }, + { + "left_line": 1404, + "right_line": 1474 + }, + { + "left_line": 1405, + "right_line": 1475 + }, + { + "left_line": 1406, + "right_line": 1476 + }, + { + "left_line": 1407, + "right_line": 1477 + }, + { + "left_line": 1408, + "right_line": 1478 + }, + { + "left_line": 1409, + "right_line": 1479 + }, + { + "left_line": 1410, + "right_line": 1480 + }, + { + "left_line": 1411, + "right_line": 1481 + }, + { + "left_line": 1412, + "right_line": 1482 + }, + { + "left_line": 1413, + "right_line": 1483 + }, + { + "left_line": 1414, + "right_line": 1484 + }, + { + "left_line": 1415, + "right_line": 1485 + }, + { + "left_line": 1416, + "right_line": 1486 + }, + { + "left_line": 1417, + "right_line": 1487 + }, + { + "left_line": 1418, + "right_line": 1488 + }, + { + "left_line": 1419, + "right_line": 1489 + }, + { + "left_line": 1420, + "right_line": 1490 + }, + { + "left_line": 1421, + "right_line": 1491 + }, + { + "left_line": 1422, + "right_line": 1492 + }, + { + "left_line": 1423, + "right_line": 1493 + }, + { + "left_line": 1424, + "right_line": 1494 + }, + { + "left_line": 1425, + "right_line": 1495 + }, + { + "left_line": 1426, + "right_line": 1496 + }, + { + "left_line": 1427, + "right_line": 1497 + }, + { + "left_line": 1428, + "right_line": 1498 + }, + { + "left_line": 1429, + "right_line": 1499 + }, + { + "left_line": 1430, + "right_line": 1500 + }, + { + "left_line": 1431, + "right_line": 1501 + }, + { + "left_line": 1432, + "right_line": 1502 + }, + { + "left_line": 1433, + "right_line": 1503 + }, + { + "left_line": 1434, + "right_line": 1504 + }, + { + "left_line": 1435, + "right_line": 1505 + }, + { + "left_line": 1436, + "right_line": 1506 + }, + { + "left_line": 1437, + "right_line": 1507 + }, + { + "left_line": 1438, + "right_line": 1508 + }, + { + "left_line": 1439, + "right_line": 1509 + }, + { + "left_line": 1440, + "right_line": 1510 + }, + { + "left_line": 1441, + "right_line": 1511 + }, + { + "left_line": 1442, + "right_line": 1512 + }, + { + "left_line": 1443, + "right_line": 1513 + }, + { + "left_line": 1444, + "right_line": 1514 + }, + { + "left_line": 1445, + "right_line": 1515 + }, + { + "left_line": 1446, + "right_line": 1516 + }, + { + "left_line": 1447, + "right_line": 1517 + }, + { + "left_line": 1448, + "right_line": 1518 + }, + { + "left_line": 1449, + "right_line": 1519 + }, + { + "left_line": 1450, + "right_line": 1520 + }, + { + "left_line": 1451, + "right_line": 1521 + }, + { + "left_line": 1452, + "right_line": 1522 + }, + { + "left_line": 1453, + "right_line": 1523 + }, + { + "left_line": 1454, + "right_line": 1524 + }, + { + "left_line": 1455, + "right_line": 1525 + }, + { + "left_line": 1456, + "right_line": 1526 + }, + { + "left_line": 1457, + "right_line": 1527 + }, + { + "left_line": 1458, + "right_line": 1528 + }, + { + "left_line": 1459, + "right_line": 1529 + }, + { + "left_line": 1460, + "right_line": 1530 + }, + { + "left_line": 1461, + "right_line": 1531 + }, + { + "left_line": 1462, + "right_line": 1532 + }, + { + "left_line": 1463, + "right_line": 1533 + }, + { + "left_line": 1464, + "right_line": 1534 + }, + { + "left_line": 1465, + "right_line": 1535 + }, + { + "left_line": 1466, + "right_line": 1536 + }, + { + "left_line": 1467, + "right_line": 1537 + }, + { + "left_line": 1468, + "right_line": 1538 + }, + { + "left_line": 1469, + "right_line": 1539 + }, + { + "left_line": 1470, + "right_line": 1540 + }, + { + "left_line": 1471, + "right_line": 1541 + }, + { + "left_line": 1472, + "right_line": 1542 + }, + { + "left_line": 1473, + "right_line": 1543 + }, + { + "left_line": 1474, + "right_line": 1544 + }, + { + "left_line": 1475, + "right_line": 1545 + }, + { + "left_line": 1476, + "right_line": 1546 + }, + { + "left_line": 1477, + "right_line": 1547 + }, + { + "left_line": 1478, + "right_line": 1548 + }, + { + "left_line": 1479, + "right_line": 1549 + }, + { + "left_line": 1480, + "right_line": 1550 + }, + { + "left_line": 1481, + "right_line": 1551 + }, + { + "left_line": 1482, + "right_line": 1552 + }, + { + "left_line": 1483, + "right_line": 1553 + }, + { + "left_line": 1484, + "right_line": 1554 + }, + { + "left_line": 1485, + "right_line": 1555 + }, + { + "left_line": 1486, + "right_line": 1556 + }, + { + "left_line": 1487, + "right_line": 1557 + }, + { + "left_line": 1488, + "right_line": 1558 + }, + { + "left_line": 1489, + "right_line": 1559 + }, + { + "left_line": 1490, + "right_line": 1560 + }, + { + "left_line": 1491, + "right_line": 1561 + }, + { + "left_line": 1492, + "right_line": 1562 + }, + { + "left_line": 1493, + "right_line": 1563 + }, + { + "left_line": 1494, + "right_line": 1564 + }, + { + "left_line": 1495, + "right_line": 1565 + }, + { + "left_line": 1496, + "right_line": 1566 + }, + { + "left_line": 1497, + "right_line": 1567 + }, + { + "left_line": 1498, + "right_line": 1568 + }, + { + "left_line": 1499, + "right_line": 1569 + }, + { + "left_line": 1500, + "right_line": 1570 + }, + { + "left_line": 1501, + "right_line": 1571 + }, + { + "left_line": 1502, + "right_line": 1572 + }, + { + "left_line": 1503, + "right_line": 1573 + }, + { + "left_line": 1504, + "right_line": 1574 + }, + { + "left_line": 1505, + "right_line": 1575 + }, + { + "left_line": 1506, + "right_line": 1576 + }, + { + "left_line": 1507, + "right_line": 1577 + }, + { + "left_line": 1508, + "right_line": 1578 + }, + { + "left_line": 1509, + "right_line": 1579 + }, + { + "left_line": 1510, + "right_line": 1580 + }, + { + "left_line": 1511, + "right_line": 1581 + }, + { + "left_line": 1512, + "right_line": 1582 + }, + { + "left_line": 1513, + "right_line": 1583 + }, + { + "left_line": 1514, + "right_line": 1584 + }, + { + "left_line": 1515, + "right_line": 1585 + }, + { + "left_line": 1516, + "right_line": 1586 + }, + { + "left_line": 1517, + "right_line": 1587 + }, + { + "left_line": 1518, + "right_line": 1588 + }, + { + "left_line": 1519, + "right_line": 1589 + }, + { + "left_line": 1520, + "right_line": 1590 + }, + { + "left_line": 1521, + "right_line": 1591 + }, + { + "left_line": 1522, + "right_line": 1592 + }, + { + "left_line": 1523, + "right_line": 1593 + }, + { + "left_line": 1524, + "right_line": 1594 + }, + { + "left_line": 1525, + "right_line": 1595 + }, + { + "left_line": 1526, + "right_line": 1596 + }, + { + "left_line": 1527, + "right_line": 1597 + }, + { + "left_line": 1528, + "right_line": 1598 + }, + { + "left_line": 1529, + "right_line": 1599 + }, + { + "left_line": 1530, + "right_line": 1600 + }, + { + "left_line": 1531, + "right_line": 1601 + }, + { + "left_line": 1532, + "right_line": 1602 + }, + { + "left_line": 1533, + "right_line": 1603 + }, + { + "left_line": 1534, + "right_line": 1604 + }, + { + "left_line": 1535, + "right_line": 1605 + }, + { + "left_line": 1536, + "right_line": 1606 + }, + { + "left_line": 1537, + "right_line": 1607 + }, + { + "left_line": 1538, + "right_line": 1608 + }, + { + "left_line": 1539, + "right_line": 1609 + }, + { + "left_line": 1540, + "right_line": 1610 + }, + { + "left_line": 1541, + "right_line": 1611 + }, + { + "left_line": 1542, + "right_line": 1612 + }, + { + "left_line": 1543, + "right_line": 1613 + }, + { + "left_line": 1544, + "right_line": 1614 + }, + { + "left_line": 1545, + "right_line": 1615 + }, + { + "left_line": 1546, + "right_line": 1616 + }, + { + "left_line": 1547, + "right_line": 1617 + }, + { + "left_line": 1548, + "right_line": 1618 + }, + { + "left_line": 1549, + "right_line": 1619 + }, + { + "left_line": 1550, + "right_line": 1620 + }, + { + "left_line": 1551, + "right_line": 1621 + }, + { + "left_line": 1552, + "right_line": 1622 + }, + { + "left_line": 1553, + "right_line": 1623 + }, + { + "left_line": 1554, + "right_line": 1624 + }, + { + "left_line": 1555, + "right_line": 1625 + }, + { + "left_line": 1556, + "right_line": 1626 + }, + { + "left_line": 1557, + "right_line": 1627 + }, + { + "left_line": 1558, + "right_line": 1628 + }, + { + "left_line": 1559, + "right_line": 1629 + }, + { + "left_line": 1560, + "right_line": 1630 + }, + { + "left_line": 1561, + "right_line": 1631 + }, + { + "left_line": 1562, + "right_line": 1632 + }, + { + "left_line": 1563, + "right_line": 1633 + }, + { + "left_line": 1564, + "right_line": 1634 + }, + { + "left_line": 1565, + "right_line": 1635 + }, + { + "left_line": 1566, + "right_line": 1636 + }, + { + "left_line": 1567, + "right_line": 1637 + }, + { + "left_line": 1568, + "right_line": 1638 + }, + { + "left_line": 1569, + "right_line": 1639 + }, + { + "left_line": 1570, + "right_line": 1640 + }, + { + "left_line": 1571, + "right_line": 1641 + }, + { + "left_line": 1572, + "right_line": 1642 + }, + { + "left_line": 1573, + "right_line": 1643 + }, + { + "left_line": 1574, + "right_line": 1644 + }, + { + "left_line": 1575, + "right_line": 1645 + }, + { + "left_line": 1576, + "right_line": 1646 + }, + { + "left_line": 1577, + "right_line": 1647 + }, + { + "left_line": 1578, + "right_line": 1648 + }, + { + "left_line": 1579, + "right_line": 1649 + }, + { + "left_line": 1580, + "right_line": 1650 + }, + { + "left_line": 1581, + "right_line": 1651 + }, + { + "left_line": 1582, + "right_line": 1652 + }, + { + "left_line": 1583, + "right_line": 1653 + }, + { + "left_line": 1584, + "right_line": 1654 + }, + { + "left_line": 1585, + "right_line": 1655 + }, + { + "left_line": 1586, + "right_line": 1656 + }, + { + "left_line": 1587, + "right_line": 1657 + }, + { + "left_line": 1588, + "right_line": 1658 + }, + { + "left_line": 1589, + "right_line": 1659 + }, + { + "left_line": 1590, + "right_line": 1660 + }, + { + "left_line": 1591, + "right_line": 1661 + }, + { + "left_line": 1592, + "right_line": 1662 + }, + { + "left_line": 1593, + "right_line": 1663 + }, + { + "left_line": 1594, + "right_line": 1664 + }, + { + "left_line": 1595, + "right_line": 1665 + }, + { + "left_line": 1596, + "right_line": 1666 + }, + { + "left_line": 1597, + "right_line": 1667 + }, + { + "left_line": 1598, + "right_line": 1668 + }, + { + "left_line": 1599, + "right_line": 1669 + }, + { + "left_line": 1600, + "right_line": 1670 + }, + { + "left_line": 1601, + "right_line": 1671 + }, + { + "left_line": 1602, + "right_line": 1672 + }, + { + "left_line": 1603, + "right_line": 1673 + }, + { + "left_line": 1604, + "right_line": 1674 + }, + { + "left_line": 1605, + "right_line": 1675 + }, + { + "left_line": 1606, + "right_line": 1676 + }, + { + "left_line": 1607, + "right_line": 1677 + }, + { + "left_line": 1608, + "right_line": 1678 + }, + { + "left_line": 1609, + "right_line": 1679 + }, + { + "left_line": 1610, + "right_line": 1680 + }, + { + "left_line": 1611, + "right_line": 1681 + }, + { + "left_line": 1612, + "right_line": 1682 + }, + { + "left_line": 1613, + "right_line": 1683 + }, + { + "left_line": 1614, + "right_line": 1684 + }, + { + "left_line": 1615, + "right_line": 1685 + }, + { + "left_line": 1616, + "right_line": 1686 + }, + { + "left_line": 1617, + "right_line": 1687 + }, + { + "left_line": 1618, + "right_line": 1688 + }, + { + "left_line": 1619, + "right_line": 1689 + }, + { + "left_line": 1620, + "right_line": 1690 + }, + { + "left_line": 1621, + "right_line": 1691 + }, + { + "left_line": 1622, + "right_line": 1692 + }, + { + "left_line": 1623, + "right_line": 1693 + }, + { + "left_line": 1624, + "right_line": 1694 + }, + { + "left_line": 1625, + "right_line": 1695 + }, + { + "left_line": 1626, + "right_line": 1696 + }, + { + "left_line": 1627, + "right_line": 1697 + }, + { + "left_line": 1628, + "right_line": 1698 + }, + { + "left_line": 1629, + "right_line": 1699 + }, + { + "left_line": 1630, + "right_line": 1700 + }, + { + "left_line": 1631, + "right_line": 1701 + }, + { + "left_line": 1632, + "right_line": 1702 + }, + { + "left_line": 1633, + "right_line": 1703 + }, + { + "left_line": 1634, + "right_line": 1704 + }, + { + "left_line": 1635, + "right_line": 1705 + }, + { + "left_line": 1636, + "right_line": 1706 + }, + { + "left_line": 1637, + "right_line": 1707 + }, + { + "left_line": 1638, + "right_line": 1708 + }, + { + "left_line": 1639, + "right_line": 1709 + }, + { + "left_line": 1640, + "right_line": 1710 + }, + { + "left_line": 1641, + "right_line": 1711 + }, + { + "left_line": 1642, + "right_line": 1712 + }, + { + "left_line": 1643, + "right_line": 1713 + }, + { + "left_line": 1644, + "right_line": 1714 + }, + { + "left_line": 1645, + "right_line": 1715 + }, + { + "left_line": 1646, + "right_line": 1716 + }, + { + "left_line": 1647, + "right_line": 1717 + }, + { + "left_line": 1648, + "right_line": 1718 + }, + { + "left_line": 1649, + "right_line": 1719 + }, + { + "left_line": 1650, + "right_line": 1720 + }, + { + "left_line": 1651, + "right_line": 1721 + }, + { + "left_line": 1652, + "right_line": 1722 + }, + { + "left_line": 1653, + "right_line": 1723 + }, + { + "left_line": 1654, + "right_line": 1724 + }, + { + "left_line": 1655, + "right_line": 1725 + }, + { + "left_line": 1656, + "right_line": 1726 + }, + { + "left_line": 1657, + "right_line": 1727 + }, + { + "left_line": 1658, + "right_line": 1728 + }, + { + "left_line": 1659, + "right_line": 1729 + }, + { + "left_line": 1660, + "right_line": 1730 + }, + { + "left_line": 1661, + "right_line": 1731 + }, + { + "left_line": 1662, + "right_line": 1732 + }, + { + "left_line": 1663, + "right_line": 1733 + }, + { + "left_line": 1664, + "right_line": 1734 + }, + { + "left_line": 1665, + "right_line": 1735 + }, + { + "left_line": 1666, + "right_line": 1736 + }, + { + "left_line": 1667, + "right_line": 1737 + }, + { + "left_line": 1668, + "right_line": 1738 + }, + { + "left_line": 1669, + "right_line": 1739 + }, + { + "left_line": 1670, + "right_line": 1740 + }, + { + "left_line": 1671, + "right_line": 1741 + }, + { + "left_line": 1672, + "right_line": 1742 + }, + { + "left_line": 1673, + "right_line": 1743 + }, + { + "left_line": 1674, + "right_line": 1744 + }, + { + "left_line": 1675, + "right_line": 1745 + }, + { + "left_line": 1676, + "right_line": 1746 + }, + { + "left_line": 1677, + "right_line": 1747 + }, + { + "left_line": 1678, + "right_line": 1748 + }, + { + "left_line": 1679, + "right_line": 1749 + }, + { + "left_line": 1680, + "right_line": 1750 + }, + { + "left_line": 1681, + "right_line": 1751 + }, + { + "left_line": 1682, + "right_line": 1752 + }, + { + "left_line": 1683, + "right_line": 1753 + }, + { + "left_line": 1684, + "right_line": 1754 + }, + { + "left_line": 1685, + "right_line": 1755 + }, + { + "left_line": 1686, + "right_line": 1756 + }, + { + "left_line": 1687, + "right_line": 1757 + }, + { + "left_line": 1688, + "right_line": 1758 + }, + { + "left_line": 1689, + "right_line": 1759 + }, + { + "left_line": 1690, + "right_line": 1760 + }, + { + "left_line": 1691, + "right_line": 1761 + }, + { + "left_line": 1692, + "right_line": 1762 + }, + { + "left_line": 1693, + "right_line": 1763 + }, + { + "left_line": 1694, + "right_line": 1764 + }, + { + "left_line": 1695, + "right_line": 1765 + }, + { + "left_line": 1696, + "right_line": 1766 + }, + { + "left_line": 1697, + "right_line": 1767 + }, + { + "left_line": 1698, + "right_line": 1768 + }, + { + "left_line": 1699, + "right_line": 1769 + }, + { + "left_line": 1700, + "right_line": 1770 + }, + { + "left_line": 1701, + "right_line": 1771 + }, + { + "left_line": 1702, + "right_line": 1772 + }, + { + "left_line": 1703, + "right_line": 1773 + }, + { + "left_line": 1704, + "right_line": 1774 + }, + { + "left_line": 1705, + "right_line": 1775 + }, + { + "left_line": 1706, + "right_line": 1776 + }, + { + "left_line": 1707, + "right_line": 1777 + }, + { + "left_line": 1708, + "right_line": 1778 + }, + { + "left_line": 1709, + "right_line": 1779 + }, + { + "left_line": 1710, + "right_line": 1780 + }, + { + "left_line": 1711, + "right_line": 1781 + }, + { + "left_line": 1712, + "right_line": 1782 + }, + { + "left_line": 1713, + "right_line": 1783 + }, + { + "left_line": 1714, + "right_line": 1784 + }, + { + "left_line": 1715, + "right_line": 1785 + }, + { + "left_line": 1716, + "right_line": 1786 + }, + { + "left_line": 1717, + "right_line": 1787 + }, + { + "left_line": 1718, + "right_line": 1788 + }, + { + "left_line": 1719, + "right_line": 1789 + }, + { + "left_line": 1720, + "right_line": 1790 + }, + { + "left_line": 1721, + "right_line": 1791 + }, + { + "left_line": 1722, + "right_line": 1792 + }, + { + "left_line": 1723, + "right_line": 1793 + }, + { + "left_line": 1724, + "right_line": 1794 + }, + { + "left_line": 1725, + "right_line": 1795 + }, + { + "left_line": 1726, + "right_line": 1796 + }, + { + "left_line": 1727, + "right_line": 1797 + }, + { + "left_line": 1728, + "right_line": 1798 + }, + { + "left_line": 1729, + "right_line": 1799 + }, + { + "left_line": 1730, + "right_line": 1800 + }, + { + "left_line": 1731, + "right_line": 1801 + }, + { + "left_line": 1732, + "right_line": 1802 + }, + { + "left_line": 1733, + "right_line": 1803 + }, + { + "left_line": 1734, + "right_line": 1804 + }, + { + "left_line": 1735, + "right_line": 1805 + }, + { + "left_line": 1736, + "right_line": 1806 + }, + { + "left_line": 1737, + "right_line": 1807 + }, + { + "left_line": 1738, + "right_line": 1808 + }, + { + "left_line": 1739, + "right_line": 1809 + }, + { + "left_line": 1740, + "right_line": 1810 + }, + { + "left_line": 1741, + "right_line": 1811 + }, + { + "left_line": 1742, + "right_line": 1812 + }, + { + "left_line": 1743, + "right_line": 1813 + }, + { + "left_line": 1744, + "right_line": 1814 + }, + { + "left_line": 1745, + "right_line": 1815 + }, + { + "left_line": 1746, + "right_line": 1816 + }, + { + "left_line": 1747, + "right_line": 1817 + }, + { + "left_line": 1748, + "right_line": 1818 + }, + { + "left_line": 1749, + "right_line": 1819 + }, + { + "left_line": 1750, + "right_line": 1820 + }, + { + "left_line": 1751, + "right_line": 1821 + }, + { + "left_line": 1752, + "right_line": 1822 + }, + { + "left_line": 1753, + "right_line": 1823 + }, + { + "left_line": 1754, + "right_line": 1824 + }, + { + "left_line": 1755, + "right_line": 1825 + }, + { + "left_line": 1756, + "right_line": 1826 + }, + { + "left_line": 1757, + "right_line": 1827 + }, + { + "left_line": 1758, + "right_line": 1828 + }, + { + "left_line": 1759, + "right_line": 1829 + }, + { + "left_line": 1760, + "right_line": 1830 + }, + { + "left_line": 1761, + "right_line": 1831 + }, + { + "left_line": 1762, + "right_line": 1832 + }, + { + "left_line": 1763, + "right_line": 1833 + }, + { + "left_line": 1764, + "right_line": 1834 + }, + { + "left_line": 1765, + "right_line": 1835 + }, + { + "left_line": 1766, + "right_line": 1836 + }, + { + "left_line": 1767, + "right_line": 1837 + }, + { + "left_line": 1768, + "right_line": 1838 + }, + { + "left_line": 1769, + "right_line": 1839 + }, + { + "left_line": 1770, + "right_line": 1840 + }, + { + "left_line": 1771, + "right_line": 1841 + }, + { + "left_line": 1772, + "right_line": 1842 + }, + { + "left_line": 1773, + "right_line": 1843 + }, + { + "left_line": 1774, + "right_line": 1844 + }, + { + "left_line": 1775, + "right_line": 1845 + }, + { + "left_line": 1776, + "right_line": 1846 + }, + { + "left_line": 1777, + "right_line": 1847 + }, + { + "left_line": 1778, + "right_line": 1848 + }, + { + "left_line": 1779, + "right_line": 1849 + }, + { + "left_line": 1780, + "right_line": 1850 + }, + { + "left_line": 1781, + "right_line": 1851 + }, + { + "left_line": 1782, + "right_line": 1852 + }, + { + "left_line": 1783, + "right_line": 1853 + }, + { + "left_line": 1784, + "right_line": 1854 + }, + { + "left_line": 1785, + "right_line": 1855 + }, + { + "left_line": 1786, + "right_line": 1856 + }, + { + "left_line": 1787, + "right_line": 1857 + }, + { + "left_line": 1788, + "right_line": 1858 + }, + { + "left_line": 1789, + "right_line": 1859 + }, + { + "left_line": 1790, + "right_line": 1860 + }, + { + "left_line": 1791, + "right_line": 1861 + }, + { + "left_line": 1792, + "right_line": 1862 + }, + { + "left_line": 1793, + "right_line": 1863 + }, + { + "left_line": 1794, + "right_line": 1864 + }, + { + "left_line": 1795, + "right_line": 1865 + }, + { + "left_line": 1796, + "right_line": 1866 + }, + { + "left_line": 1797, + "right_line": 1867 + }, + { + "left_line": 1798, + "right_line": 1868 + }, + { + "left_line": 1799, + "right_line": 1869 + }, + { + "left_line": 1800, + "right_line": 1870 + }, + { + "left_line": 1801, + "right_line": 1871 + }, + { + "left_line": 1802, + "right_line": 1872 + }, + { + "left_line": 1803, + "right_line": 1873 + }, + { + "left_line": 1804, + "right_line": 1874 + }, + { + "left_line": 1805, + "right_line": 1875 + }, + { + "left_line": 1806, + "right_line": 1876 + }, + { + "left_line": 1807, + "right_line": 1877 + }, + { + "left_line": 1808, + "right_line": 1878 + }, + { + "left_line": 1809, + "right_line": 1879 + }, + { + "left_line": 1810, + "right_line": 1880 + }, + { + "left_line": 1811, + "right_line": 1881 + }, + { + "left_line": 1812, + "right_line": 1882 + }, + { + "left_line": 1813, + "right_line": 1883 + }, + { + "left_line": 1814, + "right_line": 1884 + }, + { + "left_line": 1815, + "right_line": 1885 + }, + { + "left_line": 1816, + "right_line": 1886 + }, + { + "left_line": 1817, + "right_line": 1887 + }, + { + "left_line": 1818, + "right_line": 1888 + }, + { + "left_line": 1819, + "right_line": 1889 + }, + { + "left_line": 1820, + "right_line": 1890 + }, + { + "left_line": 1821, + "right_line": 1891 + }, + { + "left_line": 1822, + "right_line": 1892 + }, + { + "left_line": 1823, + "right_line": 1893 + }, + { + "left_line": 1824, + "right_line": 1894 + }, + { + "left_line": 1825, + "right_line": 1895 + }, + { + "left_line": 1826, + "right_line": 1896 + }, + { + "left_line": 1827, + "right_line": 1897 + }, + { + "left_line": 1828, + "right_line": 1898 + }, + { + "left_line": 1829, + "right_line": 1899 + }, + { + "left_line": 1830, + "right_line": 1900 + }, + { + "left_line": 1831, + "right_line": 1901 + }, + { + "left_line": 1832, + "right_line": 1902 + }, + { + "left_line": 1833, + "right_line": 1903 + }, + { + "left_line": 1834, + "right_line": 1904 + }, + { + "left_line": 1835, + "right_line": 1905 + }, + { + "left_line": 1836, + "right_line": 1906 + }, + { + "left_line": 1837, + "right_line": 1907 + }, + { + "left_line": 1838, + "right_line": 1908 + }, + { + "left_line": 1839, + "right_line": 1909 + }, + { + "left_line": 1840, + "right_line": 1910 + }, + { + "left_line": 1841, + "right_line": 1911 + }, + { + "left_line": 1842, + "right_line": 1912 + }, + { + "left_line": 1843, + "right_line": 1913 + }, + { + "left_line": 1844, + "right_line": 1914 + }, + { + "left_line": 1845, + "right_line": 1915 + }, + { + "left_line": 1846, + "right_line": 1916 + }, + { + "left_line": 1847, + "right_line": 1917 + }, + { + "left_line": 1848, + "right_line": 1918 + }, + { + "left_line": 1849, + "right_line": 1919 + }, + { + "left_line": 1850, + "right_line": 1920 + }, + { + "left_line": 1851, + "right_line": 1921 + }, + { + "left_line": 1852, + "right_line": 1922 + }, + { + "left_line": 1853, + "right_line": 1923 + }, + { + "left_line": 1854, + "right_line": 1924 + }, + { + "left_line": 1855, + "right_line": 1925 + }, + { + "left_line": 1856, + "right_line": 1926 + }, + { + "left_line": 1857, + "right_line": 1927 + }, + { + "left_line": 1858, + "right_line": 1928 + }, + { + "left_line": 1859, + "right_line": 1929 + } + ] +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_workflow_step_reorder/metadata.json b/tests/testdata/json_schemastore_workflow_step_reorder/metadata.json new file mode 100644 index 0000000..81d19b9 --- /dev/null +++ b/tests/testdata/json_schemastore_workflow_step_reorder/metadata.json @@ -0,0 +1,6 @@ +{ + "repository": "SchemaStore/schemastore", + "commit": "0bfe7eb5c4878ba5f73f6bd2b7f55dacfe143f69", + "description": "Reorder and update workflow steps", + "language": "json" +} \ No newline at end of file diff --git a/tests/testdata/json_schemastore_workflow_step_reorder/new.json b/tests/testdata/json_schemastore_workflow_step_reorder/new.json new file mode 100644 index 0000000..2fb4015 --- /dev/null +++ b/tests/testdata/json_schemastore_workflow_step_reorder/new.json @@ -0,0 +1,1929 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/github-workflow.json", + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions", + "additionalProperties": false, + "definitions": { + "architecture": { + "type": "string", + "enum": ["ARM32", "x64", "x86"] + }, + "branch": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestbranchestags", + "$ref": "#/definitions/globs", + "description": "When using the push and pull_request events, you can configure a workflow to run on specific branches or tags. If you only define only tags or only branches, the workflow won't run for events affecting the undefined Git ref.\nThe branches, branches-ignore, tags, and tags-ignore keywords accept glob patterns that use the * and ** wildcard characters to match more than one branch or tag name. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet.\nThe patterns defined in branches and tags are evaluated against the Git ref's name. For example, defining the pattern mona/octocat in branches will match the refs/heads/mona/octocat Git ref. The pattern releases/** will match the refs/heads/releases/10 Git ref.\nYou can use two types of filters to prevent a workflow from running on pushes and pull requests to tags and branches:\n- branches or branches-ignore - You cannot use both the branches and branches-ignore filters for the same event in a workflow. Use the branches filter when you need to filter branches for positive matches and exclude branches. Use the branches-ignore filter when you only need to exclude branch names.\n- tags or tags-ignore - You cannot use both the tags and tags-ignore filters for the same event in a workflow. Use the tags filter when you need to filter tags for positive matches and exclude tags. Use the tags-ignore filter when you only need to exclude tag names.\nYou can exclude tags and branches using the ! character. The order that you define patterns matters.\n- A matching negative pattern (prefixed with !) after a positive match will exclude the Git ref.\n- A matching positive pattern after a negative match will include the Git ref again." + }, + "concurrency": { + "type": "object", + "properties": { + "group": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-using-concurrency-to-cancel-any-in-progress-job-or-run-1", + "description": "When a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled.", + "type": "string" + }, + "cancel-in-progress": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-using-concurrency-to-cancel-any-in-progress-job-or-run-1", + "description": "To cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + } + }, + "required": ["group"], + "additionalProperties": false + }, + "configuration": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/configuration" + } + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/configuration" + } + } + ] + }, + "jobContainer": { + "type": "object", + "properties": { + "image": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerimage", + "description": "The Docker image to use as the container to run the action. The value can be the Docker Hub image name or a registry name.", + "type": "string" + }, + "credentials": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainercredentials", + "description": "If the image's container registry requires authentication to pull the image, you can use credentials to set a map of the username and password. The credentials are the same values that you would provide to the `docker login` command.", + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "env": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerenv", + "$ref": "#/definitions/env", + "description": "Sets a map of environment variables in the container." + }, + "ports": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainerports", + "description": "Sets an array of ports to expose on the container.", + "type": "array", + "items": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "minItems": 1 + }, + "volumes": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainervolumes", + "description": "Sets an array of volumes for the container to use. You can use volumes to share data between services or other steps in a job. You can specify named Docker volumes, anonymous Docker volumes, or bind mounts on the host.\nTo specify a volume, you specify the source and destination path: :\nThe is a volume name or an absolute path on the host machine, and is an absolute path in the container.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "options": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontaineroptions", + "description": "Additional Docker container resource options. For a list of options, see https://docs.docker.com/engine/reference/commandline/create/#options.", + "type": "string" + } + }, + "required": ["image"], + "additionalProperties": false + }, + "serviceContainer": { + "type": "object", + "properties": { + "image": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idimage", + "description": "The Docker image to use as the service container to run the action. The value can be the Docker Hub image name or a registry name.", + "type": "string" + }, + "credentials": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idcredentials", + "description": "If the image's container registry requires authentication to pull the image, you can use credentials to set a map of the username and password. The credentials are the same values that you would provide to the `docker login` command.", + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "env": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idenv", + "$ref": "#/definitions/env", + "description": "Sets a map of environment variables in the service container." + }, + "ports": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idports", + "description": "Sets an array of ports to expose on the service container.", + "type": "array", + "items": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "minItems": 1 + }, + "volumes": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idvolumes", + "description": "Sets an array of volumes for the service container to use. You can use volumes to share data between services or other steps in a job. You can specify named Docker volumes, anonymous Docker volumes, or bind mounts on the host.\nTo specify a volume, you specify the source and destination path: :\nThe is a volume name or an absolute path on the host machine, and is an absolute path in the container.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "options": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idoptions", + "description": "Additional Docker container resource options. For a list of options, see https://docs.docker.com/engine/reference/commandline/create/#options.", + "type": "string" + }, + "command": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idcommand", + "description": "Overrides the Docker image's default command (`CMD`). The value is passed as arguments after the image name in the `docker create` command. If you also specify `entrypoint`, `command` provides the arguments to that entrypoint.", + "type": "string" + }, + "entrypoint": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_identrypoint", + "description": "Overrides the Docker image's default `ENTRYPOINT`. The value is a single string defining the executable to run. Use this when you need to replace the image's entrypoint entirely. You can combine `entrypoint` with `command` to pass arguments to the custom entrypoint.", + "type": "string" + } + }, + "required": ["image"], + "additionalProperties": false + }, + "defaults": { + "type": "object", + "properties": { + "run": { + "type": "object", + "properties": { + "shell": { + "$ref": "#/definitions/shell" + }, + "working-directory": { + "$ref": "#/definitions/working-directory" + } + }, + "minProperties": 1, + "additionalProperties": false + } + }, + "minProperties": 1, + "additionalProperties": false + }, + "permissions": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions", + "description": "You can modify the default permissions granted to the GITHUB_TOKEN, adding or removing access as required, so that you only allow the minimum required access.", + "oneOf": [ + { + "type": "string", + "enum": ["read-all", "write-all"] + }, + { + "$ref": "#/definitions/permissions-event" + } + ] + }, + "permissions-event": { + "type": "object", + "additionalProperties": false, + "properties": { + "actions": { + "$ref": "#/definitions/permissions-level" + }, + "artifact-metadata": { + "$ref": "#/definitions/permissions-level" + }, + "attestations": { + "$ref": "#/definitions/permissions-level" + }, + "checks": { + "$ref": "#/definitions/permissions-level" + }, + "contents": { + "$ref": "#/definitions/permissions-level" + }, + "deployments": { + "$ref": "#/definitions/permissions-level" + }, + "discussions": { + "$ref": "#/definitions/permissions-level" + }, + "id-token": { + "$ref": "#/definitions/permissions-level" + }, + "issues": { + "$ref": "#/definitions/permissions-level" + }, + "models": { + "type": "string", + "enum": ["read", "none"] + }, + "packages": { + "$ref": "#/definitions/permissions-level" + }, + "pages": { + "$ref": "#/definitions/permissions-level" + }, + "pull-requests": { + "$ref": "#/definitions/permissions-level" + }, + "repository-projects": { + "$ref": "#/definitions/permissions-level" + }, + "security-events": { + "$ref": "#/definitions/permissions-level" + }, + "statuses": { + "$ref": "#/definitions/permissions-level" + } + } + }, + "permissions-level": { + "type": "string", + "enum": ["read", "write", "none"] + }, + "env": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/environment-variables", + "description": "To set custom environment variables, you need to specify the variables in the workflow file. You can define environment variables for a step, job, or entire workflow using the jobs..steps[*].env, jobs..env, and env keywords. For more information, see https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + } + }, + { + "$ref": "#/definitions/stringContainingExpressionSyntax" + } + ] + }, + "environment": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenvironment", + "description": "The environment that the job references", + "type": "object", + "properties": { + "name": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#example-using-a-single-environment-name", + "description": "The name of the environment configured in the repo.", + "type": "string" + }, + "url": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#example-using-environment-name-and-url", + "description": "A deployment URL", + "type": "string" + }, + "deployment": { + "$comment": "https://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments", + "description": "Whether to create a deployment for this job. Setting to false lets the job use environment secrets and variables without creating a deployment record. Wait timers and required reviewers still apply.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ], + "default": true + } + }, + "required": ["name"], + "additionalProperties": false + }, + "event": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows", + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "create", + "delete", + "deployment", + "deployment_status", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issue_comment", + "issues", + "label", + "merge_group", + "milestone", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "pull_request_target", + "push", + "registry_package", + "release", + "status", + "watch", + "workflow_call", + "workflow_dispatch", + "workflow_run", + "repository_dispatch" + ] + }, + "eventObject": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "additionalProperties": true + }, + "expressionSyntax": { + "$comment": "escape `{` and `}` in pattern to be unicode compatible (#1360)", + "type": "string", + "pattern": "^\\$\\{\\{(.|[\r\n])*\\}\\}$" + }, + "stringContainingExpressionSyntax": { + "$comment": "escape `{` and `}` in pattern to be unicode compatible (#1360)", + "type": "string", + "pattern": "^.*\\$\\{\\{(.|[\r\n])*\\}\\}.*$" + }, + "globs": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1 + }, + "machine": { + "type": "string", + "enum": ["linux", "macos", "windows"] + }, + "name": { + "type": "string", + "pattern": "^[_a-zA-Z][a-zA-Z0-9_-]*$" + }, + "path": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestpaths", + "$ref": "#/definitions/globs", + "description": "When using the push and pull_request events, you can configure a workflow to run when at least one file does not match paths-ignore or at least one modified file matches the configured paths. Path filters are not evaluated for pushes to tags.\nThe paths-ignore and paths keywords accept glob patterns that use the * and ** wildcard characters to match more than one path name. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet.\nYou can exclude paths using two types of filters. You cannot use both of these filters for the same event in a workflow.\n- paths-ignore - Use the paths-ignore filter when you only need to exclude path names.\n- paths - Use the paths filter when you need to filter paths for positive matches and exclude paths." + }, + "shell": { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell", + "description": "You can override the default shell settings in the runner's operating system using the shell keyword. You can use built-in shell keywords, or you can define a custom set of shell options.", + "anyOf": [ + { + "type": "string" + }, + { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#custom-shell", + "type": "string", + "enum": ["bash", "pwsh", "python", "sh", "cmd", "powershell"] + } + ] + }, + "snapshot": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idsnapshot", + "description": "You can use `jobs..snapshot` to generate a custom image.\nAdd the snapshot keyword to the job, using either the string syntax or mapping syntax as shown in https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#generating-a-custom-image.\nEach job that includes the snapshot keyword creates a separate image. To generate only one image or image version, include all workflow steps in a single job. Each successful run of a job that includes the snapshot keyword creates a new version of that image.\nFor more information, see https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images.", + "oneOf": [ + { + "$comment": "https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#string-syntax", + "type": "string", + "description": "You can use the string syntax with `snapshot` to define the image name. This method creates a new image or adds a new version to an existing image with the same name. You cannot specify a version number using this syntax." + }, + { + "$comment": "https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#mapping-syntax", + "type": "object", + "additionalProperties": false, + "description": "You can use the mapping syntax with `snapshot` to define both the `image-name` and the optional `version`. When you specify a major version, the minor versioning automatically increments if that major version already exists. Patch versions are not supported.", + "properties": { + "image-name": { + "type": "string" + }, + "version": { + "$comment": "https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#specifying-a-version-in-your-workflow", + "type": "string", + "pattern": "^\\d+(\\.\\d+|\\*)?$" + } + }, + "required": ["image-name"] + } + ] + }, + "step": { + "type": "object", + "additionalProperties": false, + "dependencies": { + "working-directory": ["run"], + "shell": ["run"] + }, + "oneOf": [ + { + "required": ["uses"] + }, + { + "required": ["run"] + } + ], + "properties": { + "id": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid", + "description": "A unique identifier for the step. You can use the id to reference the step in contexts. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": "string" + }, + "if": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsif", + "description": "You can use the if conditional to prevent a step from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": ["boolean", "number", "string"] + }, + "name": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsname", + "description": "A name for your step to display on GitHub.", + "type": "string" + }, + "uses": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsuses", + "description": "Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a published Docker container image (https://hub.docker.com/).\nWe strongly recommend that you include the version of the action you are using by specifying a Git ref, SHA, or Docker tag number. If you don't specify a version, it could break your workflows or cause unexpected behavior when the action owner publishes an update.\n- Using the commit SHA of a released action version is the safest for stability and security.\n- Using the specific major action version allows you to receive critical fixes and security patches while still maintaining compatibility. It also assures that your workflow should still work.\n- Using the master branch of an action may be convenient, but if someone releases a new major version with a breaking change, your workflow could break.\nSome actions require inputs that you must set using the with keyword. Review the action's README file to determine the inputs required.\nActions are either JavaScript files or Docker containers. If the action you're using is a Docker container you must run the job in a Linux virtual environment. For more details, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "type": "string" + }, + "run": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsrun", + "description": "Runs command-line programs using the operating system's shell. If you do not provide a name, the step name will default to the text specified in the run command.\nCommands run using non-login shells by default. You can choose a different shell and customize the shell used to run commands. For more information, see https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell.\nEach run keyword represents a new process and shell in the virtual environment. When you provide multi-line commands, each line runs in the same shell.", + "type": "string" + }, + "working-directory": { + "$ref": "#/definitions/working-directory" + }, + "shell": { + "$ref": "#/definitions/shell" + }, + "with": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswith", + "$ref": "#/definitions/env", + "description": "A map of the input parameters defined by the action. Each input parameter is a key/value pair. Input parameters are set as environment variables. The variable is prefixed with INPUT_ and converted to upper case.", + "properties": { + "args": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswithargs", + "type": "string" + }, + "entrypoint": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswithentrypoint", + "type": "string" + } + } + }, + "env": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv", + "$ref": "#/definitions/env", + "description": "Sets environment variables for steps to use in the virtual environment. You can also set environment variables for the entire workflow or a job." + }, + "continue-on-error": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error", + "description": "Prevents a job from failing when a step fails. Set to true to allow a job to pass when this step fails.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ], + "default": false + }, + "timeout-minutes": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes", + "description": "The maximum number of minutes to run the step before killing the process.", + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + } + } + }, + "types": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onevent_nametypes", + "description": "Selects the types of activity that will trigger a workflow run. Most GitHub events are triggered by more than one type of activity. For example, the event for the release resource is triggered when a release is published, unpublished, created, edited, deleted, or prereleased. The types keyword enables you to narrow down activity that causes the workflow to run. When only one activity type triggers a webhook event, the types keyword is unnecessary.\nYou can use an array of event types. For more information about each event and their activity types, see https://help.github.com/en/articles/events-that-trigger-workflows#webhook-events.", + "oneOf": [ + { + "type": "array", + "minItems": 1 + }, + { + "type": "string" + } + ] + }, + "working-directory": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsrun", + "description": "Using the working-directory keyword, you can specify the working directory of where to run the command.", + "type": "string" + }, + "jobNeeds": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idneeds", + "description": "Identifies any jobs that must complete successfully before this job will run. It can be a string or array of strings. If a job fails, all jobs that need it are skipped unless the jobs use a conditional statement that causes the job to continue.", + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/name" + }, + "minItems": 1 + }, + { + "$ref": "#/definitions/name" + } + ] + }, + "matrix": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix", + "description": "A build matrix is a set of different configurations of the virtual environment. For example you might run a job against more than one supported version of a language, operating system, or tool. Each configuration is a copy of the job that runs and reports a status.\nYou can specify a matrix by supplying an array for the configuration options. For example, if the GitHub virtual environment supports Node.js versions 6, 8, and 10 you could specify an array of those versions in the matrix.\nWhen you define a matrix of operating systems, you must set the required runs-on keyword to the operating system of the current job, rather than hard-coding the operating system name. To access the operating system name, you can use the matrix.os context parameter to set runs-on. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "oneOf": [ + { + "type": "object", + "patternProperties": { + "^(in|ex)clude$": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#example-including-configurations-in-a-matrix-build", + "oneOf": [ + { + "$ref": "#/definitions/expressionSyntax" + }, + { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/configuration" + } + }, + "minItems": 1 + } + ] + } + }, + "additionalProperties": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/configuration" + }, + "minItems": 1 + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "minProperties": 1 + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "reusableWorkflowCallJob": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/reusing-workflows#calling-a-reusable-workflow", + "description": "Each job must have an id to associate with the job. The key job_id is a string and its value is a map of the job's configuration data. You must replace with a string that is unique to the jobs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "name": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idname", + "description": "The name of the job displayed on GitHub.", + "type": "string" + }, + "needs": { + "$ref": "#/definitions/jobNeeds" + }, + "permissions": { + "$ref": "#/definitions/permissions" + }, + "if": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idif", + "description": "You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": ["boolean", "number", "string"] + }, + "uses": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_iduses", + "description": "The location and version of a reusable workflow file to run as a job, of the form './{path/to}/{localfile}.yml' or '{owner}/{repo}/{path}/{filename}@{ref}'. {ref} can be a SHA, a release tag, or a branch name. Using the commit SHA is the safest for stability and security.", + "type": "string", + "pattern": "^(.+\\/)+(.+)\\.(ya?ml)(@.+)?$" + }, + "with": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idwith", + "$ref": "#/definitions/env", + "description": "A map of inputs that are passed to the called workflow. Any inputs that you pass must match the input specifications defined in the called workflow. Unlike 'jobs..steps[*].with', the inputs you pass with 'jobs..with' are not be available as environment variables in the called workflow. Instead, you can reference the inputs by using the inputs context." + }, + "secrets": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idsecrets", + "description": "When a job is used to call a reusable workflow, you can use 'secrets' to provide a map of secrets that are passed to the called workflow. Any secrets that you pass must match the names defined in the called workflow.", + "oneOf": [ + { + "$ref": "#/definitions/env" + }, + { + "type": "string", + "enum": ["inherit"] + } + ] + }, + "strategy": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy", + "description": "A strategy creates a build matrix for your jobs. You can define different variations of an environment to run each job in.", + "type": "object", + "properties": { + "matrix": { + "$ref": "#/definitions/matrix" + }, + "fail-fast": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast", + "description": "When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true", + "type": ["boolean", "string"], + "default": true + }, + "max-parallel": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel", + "description": "The maximum number of jobs that can run simultaneously when using a matrix job strategy. By default, GitHub will maximize the number of jobs run in parallel depending on the available runners on GitHub-hosted virtual machines.", + "type": ["number", "string"] + } + }, + "required": ["matrix"], + "additionalProperties": false + }, + "concurrency": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idconcurrency", + "description": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can use any context except for the secrets context. \nYou can also specify concurrency at the workflow level. \nWhen a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled. To also cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/concurrency" + } + ] + } + }, + "required": ["uses"], + "additionalProperties": false + }, + "normalJob": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_id", + "description": "Each job must have an id to associate with the job. The key job_id is a string and its value is a map of the job's configuration data. You must replace with a string that is unique to the jobs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "name": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idname", + "description": "The name of the job displayed on GitHub.", + "type": "string" + }, + "needs": { + "$ref": "#/definitions/jobNeeds" + }, + "snapshot": { + "$ref": "#/definitions/snapshot" + }, + "permissions": { + "$ref": "#/definitions/permissions" + }, + "runs-on": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idruns-on", + "description": "The type of machine to run the job on. The machine can be either a GitHub-hosted runner, or a self-hosted runner.", + "anyOf": [ + { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#github-hosted-runners", + "type": "string" + }, + { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#self-hosted-runners", + "type": "array", + "anyOf": [ + { + "items": [ + { + "type": "string" + } + ], + "minItems": 1, + "additionalItems": { + "type": "string" + } + } + ] + }, + { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#choosing-runners-in-a-group", + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "labels": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + } + }, + { + "$ref": "#/definitions/stringContainingExpressionSyntax" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "environment": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenvironment", + "description": "The environment that the job references.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/environment" + } + ] + }, + "outputs": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs", + "description": "A map of outputs for a job. Job outputs are available to all downstream jobs that depend on this job.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "minProperties": 1 + }, + "env": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idenv", + "$ref": "#/definitions/env", + "description": "A map of environment variables that are available to all steps in the job." + }, + "defaults": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_iddefaults", + "$ref": "#/definitions/defaults", + "description": "A map of default settings that will apply to all steps in the job." + }, + "if": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idif", + "description": "You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": ["boolean", "number", "string"] + }, + "steps": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idsteps", + "description": "A job contains a sequence of tasks called steps. Steps can run commands, run setup tasks, or run an action in your repository, a public repository, or an action published in a Docker registry. Not all steps run actions, but all actions run as a step. Each step runs in its own process in the virtual environment and has access to the workspace and filesystem. Because steps run in their own process, changes to environment variables are not preserved between steps. GitHub provides built-in steps to set up and complete a job.\nMust contain either `uses` or `run`\n", + "type": "array", + "items": { + "$ref": "#/definitions/step" + }, + "minItems": 1 + }, + "timeout-minutes": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes", + "description": "The maximum number of minutes to let a workflow run before GitHub automatically cancels it. Default: 360", + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ], + "default": 360 + }, + "strategy": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy", + "description": "A strategy creates a build matrix for your jobs. You can define different variations of an environment to run each job in.", + "type": "object", + "properties": { + "matrix": { + "$ref": "#/definitions/matrix" + }, + "fail-fast": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast", + "description": "When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true", + "type": ["boolean", "string"], + "default": true + }, + "max-parallel": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel", + "description": "The maximum number of jobs that can run simultaneously when using a matrix job strategy. By default, GitHub will maximize the number of jobs run in parallel depending on the available runners on GitHub-hosted virtual machines.", + "type": ["number", "string"] + } + }, + "required": ["matrix"], + "additionalProperties": false + }, + "continue-on-error": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error", + "description": "Prevents a workflow run from failing when a job fails. Set to true to allow a workflow run to pass when this job fails.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "container": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainer", + "description": "A container to run any steps in a job that don't already specify a container. If you have steps that use both script and container actions, the container actions will run as sibling containers on the same network with the same volume mounts.\nIf you do not set a container, all steps will run directly on the host specified by runs-on unless a step refers to an action configured to run in a container.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/jobContainer" + } + ] + }, + "services": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idservices", + "description": "Additional containers to host services for a job in a workflow. These are useful for creating databases or cache services like redis. The runner on the virtual machine will automatically create a network and manage the life cycle of the service containers.\nWhen you use a service container for a job or your step uses container actions, you don't need to set port information to access the service. Docker automatically exposes all ports between containers on the same network.\nWhen both the job and the action run in a container, you can directly reference the container by its hostname. The hostname is automatically mapped to the service name.\nWhen a step does not use a container action, you must access the service using localhost and bind the ports.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/serviceContainer" + } + }, + "concurrency": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idconcurrency", + "description": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can use any context except for the secrets context. \nYou can also specify concurrency at the workflow level. \nWhen a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled. To also cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/concurrency" + } + ] + } + }, + "required": ["runs-on"], + "additionalProperties": false + }, + "workflowDispatchInput": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_id", + "description": "A string identifier to associate with the input. The value of is a map of the input's metadata. The must be a unique identifier within the inputs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "description": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddescription", + "description": "A string description of the input parameter.", + "type": "string" + }, + "deprecationMessage": { + "description": "A string shown to users using the deprecated input.", + "type": "string" + }, + "required": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_idrequired", + "description": "A boolean to indicate whether the action requires the input parameter. Set to true when the parameter is required.", + "type": "boolean" + }, + "default": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddefault", + "description": "A string representing the default value. The default value is used when an input parameter isn't specified in a workflow file." + }, + "type": { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputsinput_idtype", + "description": "A string representing the type of the input.", + "type": "string", + "enum": ["string", "choice", "boolean", "number", "environment"] + }, + "options": { + "$comment": "https://github.blog/changelog/2021-11-10-github-actions-input-types-for-manual-workflows", + "description": "The options of the dropdown list, if the type is a choice.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "allOf": [ + { + "if": { + "properties": { + "type": { + "const": "string" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "boolean" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "boolean" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "number" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "number" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "environment" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "choice" + } + }, + "required": ["type"] + }, + "then": { + "required": ["options"] + } + } + ], + "additionalProperties": false + } + }, + "properties": { + "name": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#name", + "description": "The name of your workflow. GitHub displays the names of your workflows on your repository's actions page. If you omit this field, GitHub sets the name to the workflow's filename.", + "type": "string" + }, + "on": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#on", + "description": "The name of the GitHub event that triggers the workflow. You can provide a single event string, array of events, array of event types, or an event configuration map that schedules a workflow or restricts the execution of a workflow to specific files, tags, or branch changes. For a list of available events, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows.", + "oneOf": [ + { + "$ref": "#/definitions/event" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/event" + }, + "minItems": 1 + }, + { + "type": "object", + "properties": { + "branch_protection_rule": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#branch_protection_rule", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the branch_protection_rule event occurs. More than one activity type triggers this event.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "check_run": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-run-event-check_run", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the check_run event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/checks/runs.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "rerequested", + "completed", + "requested_action" + ] + }, + "default": [ + "created", + "rerequested", + "completed", + "requested_action" + ] + } + } + }, + "check_suite": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-suite-event-check_suite", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the check_suite event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/checks/suites/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["completed", "requested", "rerequested"] + }, + "default": ["completed", "requested", "rerequested"] + } + } + }, + "create": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#create-event-create", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone creates a branch or tag, which triggers the create event. For information about the REST API, see https://developer.github.com/v3/git/refs/#create-a-reference." + }, + "delete": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#delete-event-delete", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone deletes a branch or tag, which triggers the delete event. For information about the REST API, see https://developer.github.com/v3/git/refs/#delete-a-reference." + }, + "deployment": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#deployment-event-deployment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone creates a deployment, which triggers the deployment event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see https://developer.github.com/v3/repos/deployments/." + }, + "deployment_status": { + "$comment": "https://docs.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime a third party provides a deployment status, which triggers the deployment_status event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see https://developer.github.com/v3/repos/deployments/#create-a-deployment-status." + }, + "discussion": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#discussion", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the discussion event occurs. More than one activity type triggers this event. For information about the GraphQL API, see https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "category_changed", + "answered", + "unanswered" + ] + }, + "default": [ + "created", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "category_changed", + "answered", + "unanswered" + ] + } + } + }, + "discussion_comment": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#discussion_comment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the discussion_comment event occurs. More than one activity type triggers this event. For information about the GraphQL API, see https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "fork": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#fork-event-fork", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime when someone forks a repository, which triggers the fork event. For information about the REST API, see https://developer.github.com/v3/repos/forks/#create-a-fork." + }, + "gollum": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#gollum-event-gollum", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow when someone creates or updates a Wiki page, which triggers the gollum event." + }, + "issue_comment": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#issue-comment-event-issue_comment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the issue_comment event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/comments/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "issues": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#issues-event-issues", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the issues event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "opened", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "closed", + "reopened", + "assigned", + "unassigned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "milestoned", + "demilestoned" + ] + }, + "default": [ + "opened", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "closed", + "reopened", + "assigned", + "unassigned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "milestoned", + "demilestoned" + ] + } + } + }, + "label": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#label-event-label", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the label event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/labels/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "merge_group": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#merge_group", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow when a pull request is added to a merge queue, which adds the pull request to a merge group. For information about the merge queue, see https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request-with-a-merge-queue .", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["checks_requested"] + }, + "default": ["checks_requested"] + } + } + }, + "milestone": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#milestone-event-milestone", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the milestone event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/milestones/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "closed", "opened", "edited", "deleted"] + }, + "default": [ + "created", + "closed", + "opened", + "edited", + "deleted" + ] + } + } + }, + "page_build": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#page-build-event-page_build", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone pushes to a GitHub Pages-enabled branch, which triggers the page_build event. For information about the REST API, see https://developer.github.com/v3/repos/pages/." + }, + "project": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-event-project", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the project event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "closed", + "reopened", + "edited", + "deleted" + ] + }, + "default": [ + "created", + "updated", + "closed", + "reopened", + "edited", + "deleted" + ] + } + } + }, + "project_card": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-card-event-project_card", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the project_card event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/cards.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "moved", + "converted", + "edited", + "deleted" + ] + }, + "default": [ + "created", + "moved", + "converted", + "edited", + "deleted" + ] + } + } + }, + "project_column": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-column-event-project_column", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the project_column event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/columns.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "updated", "moved", "deleted"] + }, + "default": ["created", "updated", "moved", "deleted"] + } + } + }, + "public": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#public-event-public", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone makes a private repository public, which triggers the public event. For information about the REST API, see https://developer.github.com/v3/repos/#edit." + }, + "pull_request": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-event-pull_request", + "description": "Runs your workflow anytime the pull_request event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "oneOf": [ + { "type": "null" }, + { + "allOf": [ + { + "type": "object", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "assigned", + "unassigned", + "labeled", + "unlabeled", + "opened", + "edited", + "closed", + "reopened", + "synchronize", + "converted_to_draft", + "ready_for_review", + "locked", + "unlocked", + "milestoned", + "demilestoned", + "review_requested", + "review_request_removed", + "auto_merge_enabled", + "auto_merge_disabled", + "enqueued", + "dequeued" + ] + }, + "default": ["opened", "synchronize", "reopened"] + }, + "branches": { + "$ref": "#/definitions/branch" + }, + "branches-ignore": { + "$ref": "#/definitions/branch" + }, + "tags": { + "$ref": "#/definitions/branch" + }, + "tags-ignore": { + "$ref": "#/definitions/branch" + }, + "paths": { + "$ref": "#/definitions/path" + }, + "paths-ignore": { + "$ref": "#/definitions/path" + } + }, + "additionalProperties": false + }, + { + "not": { + "required": ["branches", "branches-ignore"] + } + }, + { + "not": { + "required": ["tags", "tags-ignore"] + } + }, + { + "not": { + "required": ["paths", "paths-ignore"] + } + } + ] + } + ] + }, + "pull_request_review": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-review-event-pull_request_review", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the pull_request_review event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls/reviews.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["submitted", "edited", "dismissed"] + }, + "default": ["submitted", "edited", "dismissed"] + } + } + }, + "pull_request_review_comment": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-review-comment-event-pull_request_review_comment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime a comment on a pull request's unified diff is modified, which triggers the pull_request_review_comment event. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls/comments.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "pull_request_target": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request_target", + "description": "This event is similar to pull_request, except that it runs in the context of the base repository of the pull request, rather than in the merge commit. This means that you can more safely make your secrets available to the workflows triggered by the pull request, because only workflows defined in the commit on the base repository are run. For example, this event allows you to create workflows that label and comment on pull requests, based on the contents of the event payload.", + "oneOf": [ + { "type": "null" }, + { + "allOf": [ + { + "type": "object", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "assigned", + "unassigned", + "labeled", + "unlabeled", + "opened", + "edited", + "closed", + "reopened", + "synchronize", + "converted_to_draft", + "ready_for_review", + "locked", + "unlocked", + "review_requested", + "review_request_removed", + "auto_merge_enabled", + "auto_merge_disabled" + ] + }, + "default": ["opened", "synchronize", "reopened"] + }, + "branches": { + "$ref": "#/definitions/branch" + }, + "branches-ignore": { + "$ref": "#/definitions/branch" + }, + "tags": { + "$ref": "#/definitions/branch" + }, + "tags-ignore": { + "$ref": "#/definitions/branch" + }, + "paths": { + "$ref": "#/definitions/path" + }, + "paths-ignore": { + "$ref": "#/definitions/path" + } + }, + "additionalProperties": false + }, + { + "not": { + "required": ["branches", "branches-ignore"] + } + }, + { + "not": { + "required": ["tags", "tags-ignore"] + } + }, + { + "not": { + "required": ["paths", "paths-ignore"] + } + } + ] + } + ] + }, + "push": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#push-event-push", + "description": "Runs your workflow when someone pushes to a repository branch, which triggers the push event.\nNote: The webhook payload available to GitHub Actions does not include the added, removed, and modified attributes in the commit object. You can retrieve the full commit object using the REST API. For more information, see https://developer.github.com/v3/repos/commits/#get-a-single-commit.", + "oneOf": [ + { "type": "null" }, + { + "allOf": [ + { + "type": "object", + "properties": { + "branches": { + "$ref": "#/definitions/branch" + }, + "branches-ignore": { + "$ref": "#/definitions/branch" + }, + "tags": { + "$ref": "#/definitions/branch" + }, + "tags-ignore": { + "$ref": "#/definitions/branch" + }, + "paths": { + "$ref": "#/definitions/path" + }, + "paths-ignore": { + "$ref": "#/definitions/path" + } + }, + "additionalProperties": false + }, + { + "not": { + "required": ["branches", "branches-ignore"] + } + }, + { + "not": { + "required": ["tags", "tags-ignore"] + } + }, + { + "not": { + "required": ["paths", "paths-ignore"] + } + } + ] + } + ] + }, + "registry_package": { + "$comment": "https://help.github.com/en/actions/reference/events-that-trigger-workflows#registry-package-event-registry_package", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime a package is published or updated. For more information, see https://help.github.com/en/github/managing-packages-with-github-packages.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["published", "updated"] + }, + "default": ["published", "updated"] + } + } + }, + "release": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#release-event-release", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the release event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/repos/releases/ in the GitHub Developer documentation.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "published", + "unpublished", + "created", + "edited", + "deleted", + "prereleased", + "released" + ] + }, + "default": [ + "published", + "unpublished", + "created", + "edited", + "deleted", + "prereleased", + "released" + ] + } + } + }, + "status": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#status-event-status", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the status of a Git commit changes, which triggers the status event. For information about the REST API, see https://developer.github.com/v3/repos/statuses/." + }, + "watch": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#watch-event-watch", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the watch event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/activity/starring/." + }, + "workflow_call": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#workflow_call", + "description": "Allows workflows to be reused by other workflows.", + "properties": { + "inputs": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onworkflow_callinputs", + "description": "When using the workflow_call keyword, you can optionally specify inputs that are passed to the called workflow from the caller workflow.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$comment": "https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputsinput_id", + "description": "A string identifier to associate with the input. The value of is a map of the input's metadata. The must be a unique identifier within the inputs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "description": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddescription", + "description": "A string description of the input parameter.", + "type": "string" + }, + "required": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_idrequired", + "description": "A boolean to indicate whether the action requires the input parameter. Set to true when the parameter is required.", + "type": "boolean" + }, + "type": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callinput_idtype", + "description": "Required if input is defined for the on.workflow_call keyword. The value of this parameter is a string specifying the data type of the input. This must be one of: boolean, number, or string.", + "type": "string", + "enum": ["boolean", "number", "string"] + }, + "default": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddefault", + "description": "The default value is used when an input parameter isn't specified in a workflow file.", + "type": ["boolean", "number", "string"] + } + }, + "required": ["type"], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "outputs": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onworkflow_calloutputs", + "description": "When using the workflow_call keyword, you can optionally specify inputs that are passed to the called workflow from the caller workflow.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$comment": "https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions#outputsoutput_id", + "description": "A string identifier to associate with the output. The value of is a map of the output's metadata. The must be a unique identifier within the outputs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "description": { + "$comment": "https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions#outputsoutput_iddescription", + "description": "A string description of the output parameter.", + "type": "string" + }, + "value": { + "$comment": "https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions#outputsoutput_idvalue", + "description": "The value that the output parameter will be mapped to. You can set this to a string or an expression with context. For example, you can use the steps context to set the value of an output to the output value of a step.", + "type": "string" + } + }, + "required": ["value"], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "secrets": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callsecrets", + "description": "A map of the secrets that can be used in the called workflow. Within the called workflow, you can use the secrets context to refer to a secret.", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callsecretssecret_id", + "description": "A string identifier to associate with the secret.", + "properties": { + "description": { + "description": "A string description of the secret parameter.", + "type": "string" + }, + "required": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callsecretssecret_idrequired", + "description": "A boolean specifying whether the secret must be supplied.", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + } + }, + "workflow_dispatch": { + "$comment": "https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/", + "description": "You can now create workflows that are manually triggered with the new workflow_dispatch event. You will then see a 'Run workflow' button on the Actions tab, enabling you to easily trigger a run.", + "properties": { + "inputs": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputs", + "description": "Input parameters allow you to specify data that the action expects to use during runtime. GitHub stores input parameters as environment variables. Input ids with uppercase letters are converted to lowercase during runtime. We recommended using lowercase input ids.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$ref": "#/definitions/workflowDispatchInput" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "workflow_run": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_run", + "$ref": "#/definitions/eventObject", + "description": "This event occurs when a workflow run is requested or completed, and allows you to execute a workflow based on the finished result of another workflow. For example, if your pull_request workflow generates build artifacts, you can create a new workflow that uses workflow_run to analyze the results and add a comment to the original pull request.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["requested", "completed", "in_progress"] + }, + "default": ["requested", "completed"] + }, + "workflows": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "patternProperties": { + "^branches(-ignore)?$": {} + } + }, + "repository_dispatch": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#external-events-repository_dispatch", + "$ref": "#/definitions/eventObject", + "description": "You can use the GitHub API to trigger a webhook event called repository_dispatch when you want to trigger a workflow for activity that happens outside of GitHub. For more information, see https://developer.github.com/v3/repos/#create-a-repository-dispatch-event.\nTo trigger the custom repository_dispatch webhook event, you must send a POST request to a GitHub API endpoint and provide an event_type name to describe the activity type. To trigger a workflow run, you must also configure your workflow to use the repository_dispatch event." + }, + "schedule": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#schedule", + "description": "You can schedule a workflow to run at specific UTC times using POSIX cron syntax (https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07). You can optionally specify a timezone using an IANA timezone string (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for timezone-aware scheduling. Scheduled workflows run on the latest commit on the default or base branch. The shortest interval you can run scheduled workflows is once every 5 minutes.\nNote: GitHub Actions does not support the non-standard syntax @yearly, @monthly, @weekly, @daily, @hourly, and @reboot.\nYou can use crontab guru (https://crontab.guru/) to help generate your cron syntax and confirm what time it will run. To help you get started, there is also a list of crontab guru examples (https://crontab.guru/examples.html).", + "type": "array", + "items": { + "type": "object", + "properties": { + "cron": { + "description": "A cron expression that represents a schedule. A scheduled workflow will run at most once every 5 minutes.", + "type": "string" + }, + "timezone": { + "description": "A string that represents the time zone a scheduled workflow will run relative to in IANA format (e.g. 'America/New_York' or 'Europe/London'). If omitted, the workflow will run relative to midnight UTC.", + "type": "string" + } + }, + "required": ["cron"], + "additionalProperties": false + }, + "minItems": 1 + } + }, + "additionalProperties": false + } + ] + }, + "env": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env", + "$ref": "#/definitions/env", + "description": "A map of environment variables that are available to all jobs and steps in the workflow." + }, + "defaults": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaults", + "$ref": "#/definitions/defaults", + "description": "A map of default settings that will apply to all jobs in the workflow." + }, + "concurrency": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency", + "description": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can use any context except for the secrets context. \nYou can also specify concurrency at the workflow level. \nWhen a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled. To also cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/concurrency" + } + ] + }, + "jobs": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobs", + "description": "A workflow run is made up of one or more jobs. Jobs run in parallel by default. To run jobs sequentially, you can define dependencies on other jobs using the jobs..needs keyword.\nEach job runs in a fresh instance of the virtual environment specified by runs-on.\nYou can run an unlimited number of jobs as long as you are within the workflow usage limits. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#usage-limits.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "oneOf": [ + { + "$ref": "#/definitions/normalJob" + }, + { + "$ref": "#/definitions/reusableWorkflowCallJob" + } + ] + } + }, + "minProperties": 1, + "additionalProperties": false + }, + "run-name": { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#run-name", + "description": "The name for workflow runs generated from the workflow. GitHub displays the workflow run name in the list of workflow runs on your repository's 'Actions' tab.", + "type": "string" + }, + "permissions": { + "$ref": "#/definitions/permissions" + } + }, + "required": ["on", "jobs"], + "type": "object" +} diff --git a/tests/testdata/json_schemastore_workflow_step_reorder/old.json b/tests/testdata/json_schemastore_workflow_step_reorder/old.json new file mode 100644 index 0000000..d7fb2d0 --- /dev/null +++ b/tests/testdata/json_schemastore_workflow_step_reorder/old.json @@ -0,0 +1,1859 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/github-workflow.json", + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions", + "additionalProperties": false, + "definitions": { + "architecture": { + "type": "string", + "enum": ["ARM32", "x64", "x86"] + }, + "branch": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestbranchestags", + "$ref": "#/definitions/globs", + "description": "When using the push and pull_request events, you can configure a workflow to run on specific branches or tags. If you only define only tags or only branches, the workflow won't run for events affecting the undefined Git ref.\nThe branches, branches-ignore, tags, and tags-ignore keywords accept glob patterns that use the * and ** wildcard characters to match more than one branch or tag name. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet.\nThe patterns defined in branches and tags are evaluated against the Git ref's name. For example, defining the pattern mona/octocat in branches will match the refs/heads/mona/octocat Git ref. The pattern releases/** will match the refs/heads/releases/10 Git ref.\nYou can use two types of filters to prevent a workflow from running on pushes and pull requests to tags and branches:\n- branches or branches-ignore - You cannot use both the branches and branches-ignore filters for the same event in a workflow. Use the branches filter when you need to filter branches for positive matches and exclude branches. Use the branches-ignore filter when you only need to exclude branch names.\n- tags or tags-ignore - You cannot use both the tags and tags-ignore filters for the same event in a workflow. Use the tags filter when you need to filter tags for positive matches and exclude tags. Use the tags-ignore filter when you only need to exclude tag names.\nYou can exclude tags and branches using the ! character. The order that you define patterns matters.\n- A matching negative pattern (prefixed with !) after a positive match will exclude the Git ref.\n- A matching positive pattern after a negative match will include the Git ref again." + }, + "concurrency": { + "type": "object", + "properties": { + "group": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-using-concurrency-to-cancel-any-in-progress-job-or-run-1", + "description": "When a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled.", + "type": "string" + }, + "cancel-in-progress": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-using-concurrency-to-cancel-any-in-progress-job-or-run-1", + "description": "To cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + } + }, + "required": ["group"], + "additionalProperties": false + }, + "configuration": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/configuration" + } + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/configuration" + } + } + ] + }, + "container": { + "type": "object", + "properties": { + "image": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerimage", + "description": "The Docker image to use as the container to run the action. The value can be the Docker Hub image name or a registry name.", + "type": "string" + }, + "credentials": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainercredentials", + "description": "If the image's container registry requires authentication to pull the image, you can use credentials to set a map of the username and password. The credentials are the same values that you would provide to the `docker login` command.", + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "env": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerenv", + "$ref": "#/definitions/env", + "description": "Sets an array of environment variables in the container." + }, + "ports": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerports", + "description": "Sets an array of ports to expose on the container.", + "type": "array", + "items": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "minItems": 1 + }, + "volumes": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainervolumes", + "description": "Sets an array of volumes for the container to use. You can use volumes to share data between services or other steps in a job. You can specify named Docker volumes, anonymous Docker volumes, or bind mounts on the host.\nTo specify a volume, you specify the source and destination path: :\nThe is a volume name or an absolute path on the host machine, and is an absolute path in the container.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "options": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontaineroptions", + "description": "Additional Docker container resource options. For a list of options, see https://docs.docker.com/engine/reference/commandline/create/#options.", + "type": "string" + } + }, + "required": ["image"], + "additionalProperties": false + }, + "defaults": { + "type": "object", + "properties": { + "run": { + "type": "object", + "properties": { + "shell": { + "$ref": "#/definitions/shell" + }, + "working-directory": { + "$ref": "#/definitions/working-directory" + } + }, + "minProperties": 1, + "additionalProperties": false + } + }, + "minProperties": 1, + "additionalProperties": false + }, + "permissions": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions", + "description": "You can modify the default permissions granted to the GITHUB_TOKEN, adding or removing access as required, so that you only allow the minimum required access.", + "oneOf": [ + { + "type": "string", + "enum": ["read-all", "write-all"] + }, + { + "$ref": "#/definitions/permissions-event" + } + ] + }, + "permissions-event": { + "type": "object", + "additionalProperties": false, + "properties": { + "actions": { + "$ref": "#/definitions/permissions-level" + }, + "artifact-metadata": { + "$ref": "#/definitions/permissions-level" + }, + "attestations": { + "$ref": "#/definitions/permissions-level" + }, + "checks": { + "$ref": "#/definitions/permissions-level" + }, + "contents": { + "$ref": "#/definitions/permissions-level" + }, + "deployments": { + "$ref": "#/definitions/permissions-level" + }, + "discussions": { + "$ref": "#/definitions/permissions-level" + }, + "id-token": { + "$ref": "#/definitions/permissions-level" + }, + "issues": { + "$ref": "#/definitions/permissions-level" + }, + "models": { + "type": "string", + "enum": ["read", "none"] + }, + "packages": { + "$ref": "#/definitions/permissions-level" + }, + "pages": { + "$ref": "#/definitions/permissions-level" + }, + "pull-requests": { + "$ref": "#/definitions/permissions-level" + }, + "repository-projects": { + "$ref": "#/definitions/permissions-level" + }, + "security-events": { + "$ref": "#/definitions/permissions-level" + }, + "statuses": { + "$ref": "#/definitions/permissions-level" + } + } + }, + "permissions-level": { + "type": "string", + "enum": ["read", "write", "none"] + }, + "env": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/environment-variables", + "description": "To set custom environment variables, you need to specify the variables in the workflow file. You can define environment variables for a step, job, or entire workflow using the jobs..steps[*].env, jobs..env, and env keywords. For more information, see https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + } + }, + { + "$ref": "#/definitions/stringContainingExpressionSyntax" + } + ] + }, + "environment": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenvironment", + "description": "The environment that the job references", + "type": "object", + "properties": { + "name": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#example-using-a-single-environment-name", + "description": "The name of the environment configured in the repo.", + "type": "string" + }, + "url": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#example-using-environment-name-and-url", + "description": "A deployment URL", + "type": "string" + }, + "deployment": { + "$comment": "https://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments", + "description": "Whether to create a deployment for this job. Setting to false lets the job use environment secrets and variables without creating a deployment record. Wait timers and required reviewers still apply.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ], + "default": true + } + }, + "required": ["name"], + "additionalProperties": false + }, + "event": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows", + "type": "string", + "enum": [ + "branch_protection_rule", + "check_run", + "check_suite", + "create", + "delete", + "deployment", + "deployment_status", + "discussion", + "discussion_comment", + "fork", + "gollum", + "issue_comment", + "issues", + "label", + "merge_group", + "milestone", + "page_build", + "project", + "project_card", + "project_column", + "public", + "pull_request", + "pull_request_review", + "pull_request_review_comment", + "pull_request_target", + "push", + "registry_package", + "release", + "status", + "watch", + "workflow_call", + "workflow_dispatch", + "workflow_run", + "repository_dispatch" + ] + }, + "eventObject": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "additionalProperties": true + }, + "expressionSyntax": { + "$comment": "escape `{` and `}` in pattern to be unicode compatible (#1360)", + "type": "string", + "pattern": "^\\$\\{\\{(.|[\r\n])*\\}\\}$" + }, + "stringContainingExpressionSyntax": { + "$comment": "escape `{` and `}` in pattern to be unicode compatible (#1360)", + "type": "string", + "pattern": "^.*\\$\\{\\{(.|[\r\n])*\\}\\}.*$" + }, + "globs": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1 + }, + "machine": { + "type": "string", + "enum": ["linux", "macos", "windows"] + }, + "name": { + "type": "string", + "pattern": "^[_a-zA-Z][a-zA-Z0-9_-]*$" + }, + "path": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onpushpull_requestpaths", + "$ref": "#/definitions/globs", + "description": "When using the push and pull_request events, you can configure a workflow to run when at least one file does not match paths-ignore or at least one modified file matches the configured paths. Path filters are not evaluated for pushes to tags.\nThe paths-ignore and paths keywords accept glob patterns that use the * and ** wildcard characters to match more than one path name. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet.\nYou can exclude paths using two types of filters. You cannot use both of these filters for the same event in a workflow.\n- paths-ignore - Use the paths-ignore filter when you only need to exclude path names.\n- paths - Use the paths filter when you need to filter paths for positive matches and exclude paths." + }, + "shell": { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell", + "description": "You can override the default shell settings in the runner's operating system using the shell keyword. You can use built-in shell keywords, or you can define a custom set of shell options.", + "anyOf": [ + { + "type": "string" + }, + { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#custom-shell", + "type": "string", + "enum": ["bash", "pwsh", "python", "sh", "cmd", "powershell"] + } + ] + }, + "snapshot": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idsnapshot", + "description": "You can use `jobs..snapshot` to generate a custom image.\nAdd the snapshot keyword to the job, using either the string syntax or mapping syntax as shown in https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#generating-a-custom-image.\nEach job that includes the snapshot keyword creates a separate image. To generate only one image or image version, include all workflow steps in a single job. Each successful run of a job that includes the snapshot keyword creates a new version of that image.\nFor more information, see https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images.", + "oneOf": [ + { + "$comment": "https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#string-syntax", + "type": "string", + "description": "You can use the string syntax with `snapshot` to define the image name. This method creates a new image or adds a new version to an existing image with the same name. You cannot specify a version number using this syntax." + }, + { + "$comment": "https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#mapping-syntax", + "type": "object", + "additionalProperties": false, + "description": "You can use the mapping syntax with `snapshot` to define both the `image-name` and the optional `version`. When you specify a major version, the minor versioning automatically increments if that major version already exists. Patch versions are not supported.", + "properties": { + "image-name": { + "type": "string" + }, + "version": { + "$comment": "https://docs.github.com/en/actions/how-tos/manage-runners/larger-runners/use-custom-images#specifying-a-version-in-your-workflow", + "type": "string", + "pattern": "^\\d+(\\.\\d+|\\*)?$" + } + }, + "required": ["image-name"] + } + ] + }, + "step": { + "type": "object", + "additionalProperties": false, + "dependencies": { + "working-directory": ["run"], + "shell": ["run"] + }, + "oneOf": [ + { + "required": ["uses"] + }, + { + "required": ["run"] + } + ], + "properties": { + "id": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid", + "description": "A unique identifier for the step. You can use the id to reference the step in contexts. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": "string" + }, + "if": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsif", + "description": "You can use the if conditional to prevent a step from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": ["boolean", "number", "string"] + }, + "name": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsname", + "description": "A name for your step to display on GitHub.", + "type": "string" + }, + "uses": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsuses", + "description": "Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a published Docker container image (https://hub.docker.com/).\nWe strongly recommend that you include the version of the action you are using by specifying a Git ref, SHA, or Docker tag number. If you don't specify a version, it could break your workflows or cause unexpected behavior when the action owner publishes an update.\n- Using the commit SHA of a released action version is the safest for stability and security.\n- Using the specific major action version allows you to receive critical fixes and security patches while still maintaining compatibility. It also assures that your workflow should still work.\n- Using the master branch of an action may be convenient, but if someone releases a new major version with a breaking change, your workflow could break.\nSome actions require inputs that you must set using the with keyword. Review the action's README file to determine the inputs required.\nActions are either JavaScript files or Docker containers. If the action you're using is a Docker container you must run the job in a Linux virtual environment. For more details, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "type": "string" + }, + "run": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsrun", + "description": "Runs command-line programs using the operating system's shell. If you do not provide a name, the step name will default to the text specified in the run command.\nCommands run using non-login shells by default. You can choose a different shell and customize the shell used to run commands. For more information, see https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell.\nEach run keyword represents a new process and shell in the virtual environment. When you provide multi-line commands, each line runs in the same shell.", + "type": "string" + }, + "working-directory": { + "$ref": "#/definitions/working-directory" + }, + "shell": { + "$ref": "#/definitions/shell" + }, + "with": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswith", + "$ref": "#/definitions/env", + "description": "A map of the input parameters defined by the action. Each input parameter is a key/value pair. Input parameters are set as environment variables. The variable is prefixed with INPUT_ and converted to upper case.", + "properties": { + "args": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswithargs", + "type": "string" + }, + "entrypoint": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepswithentrypoint", + "type": "string" + } + } + }, + "env": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv", + "$ref": "#/definitions/env", + "description": "Sets environment variables for steps to use in the virtual environment. You can also set environment variables for the entire workflow or a job." + }, + "continue-on-error": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error", + "description": "Prevents a job from failing when a step fails. Set to true to allow a job to pass when this step fails.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ], + "default": false + }, + "timeout-minutes": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes", + "description": "The maximum number of minutes to run the step before killing the process.", + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + } + } + }, + "types": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#onevent_nametypes", + "description": "Selects the types of activity that will trigger a workflow run. Most GitHub events are triggered by more than one type of activity. For example, the event for the release resource is triggered when a release is published, unpublished, created, edited, deleted, or prereleased. The types keyword enables you to narrow down activity that causes the workflow to run. When only one activity type triggers a webhook event, the types keyword is unnecessary.\nYou can use an array of event types. For more information about each event and their activity types, see https://help.github.com/en/articles/events-that-trigger-workflows#webhook-events.", + "oneOf": [ + { + "type": "array", + "minItems": 1 + }, + { + "type": "string" + } + ] + }, + "working-directory": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsrun", + "description": "Using the working-directory keyword, you can specify the working directory of where to run the command.", + "type": "string" + }, + "jobNeeds": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idneeds", + "description": "Identifies any jobs that must complete successfully before this job will run. It can be a string or array of strings. If a job fails, all jobs that need it are skipped unless the jobs use a conditional statement that causes the job to continue.", + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/name" + }, + "minItems": 1 + }, + { + "$ref": "#/definitions/name" + } + ] + }, + "matrix": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix", + "description": "A build matrix is a set of different configurations of the virtual environment. For example you might run a job against more than one supported version of a language, operating system, or tool. Each configuration is a copy of the job that runs and reports a status.\nYou can specify a matrix by supplying an array for the configuration options. For example, if the GitHub virtual environment supports Node.js versions 6, 8, and 10 you could specify an array of those versions in the matrix.\nWhen you define a matrix of operating systems, you must set the required runs-on keyword to the operating system of the current job, rather than hard-coding the operating system name. To access the operating system name, you can use the matrix.os context parameter to set runs-on. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "oneOf": [ + { + "type": "object", + "patternProperties": { + "^(in|ex)clude$": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#example-including-configurations-in-a-matrix-build", + "oneOf": [ + { + "$ref": "#/definitions/expressionSyntax" + }, + { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/configuration" + } + }, + "minItems": 1 + } + ] + } + }, + "additionalProperties": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/configuration" + }, + "minItems": 1 + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "minProperties": 1 + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "reusableWorkflowCallJob": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/reusing-workflows#calling-a-reusable-workflow", + "description": "Each job must have an id to associate with the job. The key job_id is a string and its value is a map of the job's configuration data. You must replace with a string that is unique to the jobs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "name": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idname", + "description": "The name of the job displayed on GitHub.", + "type": "string" + }, + "needs": { + "$ref": "#/definitions/jobNeeds" + }, + "permissions": { + "$ref": "#/definitions/permissions" + }, + "if": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idif", + "description": "You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": ["boolean", "number", "string"] + }, + "uses": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_iduses", + "description": "The location and version of a reusable workflow file to run as a job, of the form './{path/to}/{localfile}.yml' or '{owner}/{repo}/{path}/{filename}@{ref}'. {ref} can be a SHA, a release tag, or a branch name. Using the commit SHA is the safest for stability and security.", + "type": "string", + "pattern": "^(.+\\/)+(.+)\\.(ya?ml)(@.+)?$" + }, + "with": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idwith", + "$ref": "#/definitions/env", + "description": "A map of inputs that are passed to the called workflow. Any inputs that you pass must match the input specifications defined in the called workflow. Unlike 'jobs..steps[*].with', the inputs you pass with 'jobs..with' are not be available as environment variables in the called workflow. Instead, you can reference the inputs by using the inputs context." + }, + "secrets": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idsecrets", + "description": "When a job is used to call a reusable workflow, you can use 'secrets' to provide a map of secrets that are passed to the called workflow. Any secrets that you pass must match the names defined in the called workflow.", + "oneOf": [ + { + "$ref": "#/definitions/env" + }, + { + "type": "string", + "enum": ["inherit"] + } + ] + }, + "strategy": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy", + "description": "A strategy creates a build matrix for your jobs. You can define different variations of an environment to run each job in.", + "type": "object", + "properties": { + "matrix": { + "$ref": "#/definitions/matrix" + }, + "fail-fast": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast", + "description": "When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true", + "type": ["boolean", "string"], + "default": true + }, + "max-parallel": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel", + "description": "The maximum number of jobs that can run simultaneously when using a matrix job strategy. By default, GitHub will maximize the number of jobs run in parallel depending on the available runners on GitHub-hosted virtual machines.", + "type": ["number", "string"] + } + }, + "required": ["matrix"], + "additionalProperties": false + }, + "concurrency": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idconcurrency", + "description": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can use any context except for the secrets context. \nYou can also specify concurrency at the workflow level. \nWhen a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled. To also cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/concurrency" + } + ] + } + }, + "required": ["uses"], + "additionalProperties": false + }, + "normalJob": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_id", + "description": "Each job must have an id to associate with the job. The key job_id is a string and its value is a map of the job's configuration data. You must replace with a string that is unique to the jobs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "name": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idname", + "description": "The name of the job displayed on GitHub.", + "type": "string" + }, + "needs": { + "$ref": "#/definitions/jobNeeds" + }, + "snapshot": { + "$ref": "#/definitions/snapshot" + }, + "permissions": { + "$ref": "#/definitions/permissions" + }, + "runs-on": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idruns-on", + "description": "The type of machine to run the job on. The machine can be either a GitHub-hosted runner, or a self-hosted runner.", + "anyOf": [ + { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#github-hosted-runners", + "type": "string" + }, + { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#self-hosted-runners", + "type": "array", + "anyOf": [ + { + "items": [ + { + "type": "string" + } + ], + "minItems": 1, + "additionalItems": { + "type": "string" + } + } + ] + }, + { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#choosing-runners-in-a-group", + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "labels": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + } + }, + { + "$ref": "#/definitions/stringContainingExpressionSyntax" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "environment": { + "$comment": "https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenvironment", + "description": "The environment that the job references.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/environment" + } + ] + }, + "outputs": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs", + "description": "A map of outputs for a job. Job outputs are available to all downstream jobs that depend on this job.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "minProperties": 1 + }, + "env": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idenv", + "$ref": "#/definitions/env", + "description": "A map of environment variables that are available to all steps in the job." + }, + "defaults": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_iddefaults", + "$ref": "#/definitions/defaults", + "description": "A map of default settings that will apply to all steps in the job." + }, + "if": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idif", + "description": "You can use the if conditional to prevent a job from running unless a condition is met. You can use any supported context and expression to create a conditional.\nExpressions in an if conditional do not require the ${{ }} syntax. For more information, see https://help.github.com/en/articles/contexts-and-expression-syntax-for-github-actions.", + "type": ["boolean", "number", "string"] + }, + "steps": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idsteps", + "description": "A job contains a sequence of tasks called steps. Steps can run commands, run setup tasks, or run an action in your repository, a public repository, or an action published in a Docker registry. Not all steps run actions, but all actions run as a step. Each step runs in its own process in the virtual environment and has access to the workspace and filesystem. Because steps run in their own process, changes to environment variables are not preserved between steps. GitHub provides built-in steps to set up and complete a job.\nMust contain either `uses` or `run`\n", + "type": "array", + "items": { + "$ref": "#/definitions/step" + }, + "minItems": 1 + }, + "timeout-minutes": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes", + "description": "The maximum number of minutes to let a workflow run before GitHub automatically cancels it. Default: 360", + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ], + "default": 360 + }, + "strategy": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy", + "description": "A strategy creates a build matrix for your jobs. You can define different variations of an environment to run each job in.", + "type": "object", + "properties": { + "matrix": { + "$ref": "#/definitions/matrix" + }, + "fail-fast": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast", + "description": "When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true", + "type": ["boolean", "string"], + "default": true + }, + "max-parallel": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel", + "description": "The maximum number of jobs that can run simultaneously when using a matrix job strategy. By default, GitHub will maximize the number of jobs run in parallel depending on the available runners on GitHub-hosted virtual machines.", + "type": ["number", "string"] + } + }, + "required": ["matrix"], + "additionalProperties": false + }, + "continue-on-error": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error", + "description": "Prevents a workflow run from failing when a job fails. Set to true to allow a workflow run to pass when this job fails.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expressionSyntax" + } + ] + }, + "container": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainer", + "description": "A container to run any steps in a job that don't already specify a container. If you have steps that use both script and container actions, the container actions will run as sibling containers on the same network with the same volume mounts.\nIf you do not set a container, all steps will run directly on the host specified by runs-on unless a step refers to an action configured to run in a container.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/container" + } + ] + }, + "services": { + "$comment": "https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idservices", + "description": "Additional containers to host services for a job in a workflow. These are useful for creating databases or cache services like redis. The runner on the virtual machine will automatically create a network and manage the life cycle of the service containers.\nWhen you use a service container for a job or your step uses container actions, you don't need to set port information to access the service. Docker automatically exposes all ports between containers on the same network.\nWhen both the job and the action run in a container, you can directly reference the container by its hostname. The hostname is automatically mapped to the service name.\nWhen a step does not use a container action, you must access the service using localhost and bind the ports.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/container" + } + }, + "concurrency": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idconcurrency", + "description": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can use any context except for the secrets context. \nYou can also specify concurrency at the workflow level. \nWhen a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled. To also cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/concurrency" + } + ] + } + }, + "required": ["runs-on"], + "additionalProperties": false + }, + "workflowDispatchInput": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_id", + "description": "A string identifier to associate with the input. The value of is a map of the input's metadata. The must be a unique identifier within the inputs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "description": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddescription", + "description": "A string description of the input parameter.", + "type": "string" + }, + "deprecationMessage": { + "description": "A string shown to users using the deprecated input.", + "type": "string" + }, + "required": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_idrequired", + "description": "A boolean to indicate whether the action requires the input parameter. Set to true when the parameter is required.", + "type": "boolean" + }, + "default": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddefault", + "description": "A string representing the default value. The default value is used when an input parameter isn't specified in a workflow file." + }, + "type": { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputsinput_idtype", + "description": "A string representing the type of the input.", + "type": "string", + "enum": ["string", "choice", "boolean", "number", "environment"] + }, + "options": { + "$comment": "https://github.blog/changelog/2021-11-10-github-actions-input-types-for-manual-workflows", + "description": "The options of the dropdown list, if the type is a choice.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "allOf": [ + { + "if": { + "properties": { + "type": { + "const": "string" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "boolean" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "boolean" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "number" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "number" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "environment" + } + }, + "required": ["type"] + }, + "then": { + "properties": { + "default": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "type": { + "const": "choice" + } + }, + "required": ["type"] + }, + "then": { + "required": ["options"] + } + } + ], + "additionalProperties": false + } + }, + "properties": { + "name": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#name", + "description": "The name of your workflow. GitHub displays the names of your workflows on your repository's actions page. If you omit this field, GitHub sets the name to the workflow's filename.", + "type": "string" + }, + "on": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#on", + "description": "The name of the GitHub event that triggers the workflow. You can provide a single event string, array of events, array of event types, or an event configuration map that schedules a workflow or restricts the execution of a workflow to specific files, tags, or branch changes. For a list of available events, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows.", + "oneOf": [ + { + "$ref": "#/definitions/event" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/event" + }, + "minItems": 1 + }, + { + "type": "object", + "properties": { + "branch_protection_rule": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#branch_protection_rule", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the branch_protection_rule event occurs. More than one activity type triggers this event.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "check_run": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-run-event-check_run", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the check_run event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/checks/runs.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "rerequested", + "completed", + "requested_action" + ] + }, + "default": [ + "created", + "rerequested", + "completed", + "requested_action" + ] + } + } + }, + "check_suite": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-suite-event-check_suite", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the check_suite event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/checks/suites/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["completed", "requested", "rerequested"] + }, + "default": ["completed", "requested", "rerequested"] + } + } + }, + "create": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#create-event-create", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone creates a branch or tag, which triggers the create event. For information about the REST API, see https://developer.github.com/v3/git/refs/#create-a-reference." + }, + "delete": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#delete-event-delete", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone deletes a branch or tag, which triggers the delete event. For information about the REST API, see https://developer.github.com/v3/git/refs/#delete-a-reference." + }, + "deployment": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#deployment-event-deployment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone creates a deployment, which triggers the deployment event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see https://developer.github.com/v3/repos/deployments/." + }, + "deployment_status": { + "$comment": "https://docs.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime a third party provides a deployment status, which triggers the deployment_status event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see https://developer.github.com/v3/repos/deployments/#create-a-deployment-status." + }, + "discussion": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#discussion", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the discussion event occurs. More than one activity type triggers this event. For information about the GraphQL API, see https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "category_changed", + "answered", + "unanswered" + ] + }, + "default": [ + "created", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "category_changed", + "answered", + "unanswered" + ] + } + } + }, + "discussion_comment": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#discussion_comment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the discussion_comment event occurs. More than one activity type triggers this event. For information about the GraphQL API, see https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "fork": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#fork-event-fork", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime when someone forks a repository, which triggers the fork event. For information about the REST API, see https://developer.github.com/v3/repos/forks/#create-a-fork." + }, + "gollum": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#gollum-event-gollum", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow when someone creates or updates a Wiki page, which triggers the gollum event." + }, + "issue_comment": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#issue-comment-event-issue_comment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the issue_comment event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/comments/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "issues": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#issues-event-issues", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the issues event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "opened", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "closed", + "reopened", + "assigned", + "unassigned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "milestoned", + "demilestoned" + ] + }, + "default": [ + "opened", + "edited", + "deleted", + "transferred", + "pinned", + "unpinned", + "closed", + "reopened", + "assigned", + "unassigned", + "labeled", + "unlabeled", + "locked", + "unlocked", + "milestoned", + "demilestoned" + ] + } + } + }, + "label": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#label-event-label", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the label event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/labels/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "merge_group": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#merge_group", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow when a pull request is added to a merge queue, which adds the pull request to a merge group. For information about the merge queue, see https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request-with-a-merge-queue .", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["checks_requested"] + }, + "default": ["checks_requested"] + } + } + }, + "milestone": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#milestone-event-milestone", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the milestone event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/issues/milestones/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "closed", "opened", "edited", "deleted"] + }, + "default": [ + "created", + "closed", + "opened", + "edited", + "deleted" + ] + } + } + }, + "page_build": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#page-build-event-page_build", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone pushes to a GitHub Pages-enabled branch, which triggers the page_build event. For information about the REST API, see https://developer.github.com/v3/repos/pages/." + }, + "project": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-event-project", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the project event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "updated", + "closed", + "reopened", + "edited", + "deleted" + ] + }, + "default": [ + "created", + "updated", + "closed", + "reopened", + "edited", + "deleted" + ] + } + } + }, + "project_card": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-card-event-project_card", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the project_card event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/cards.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "created", + "moved", + "converted", + "edited", + "deleted" + ] + }, + "default": [ + "created", + "moved", + "converted", + "edited", + "deleted" + ] + } + } + }, + "project_column": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#project-column-event-project_column", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the project_column event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/projects/columns.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "updated", "moved", "deleted"] + }, + "default": ["created", "updated", "moved", "deleted"] + } + } + }, + "public": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#public-event-public", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime someone makes a private repository public, which triggers the public event. For information about the REST API, see https://developer.github.com/v3/repos/#edit." + }, + "pull_request": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-event-pull_request", + "description": "Runs your workflow anytime the pull_request event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "oneOf": [ + { "type": "null" }, + { + "allOf": [ + { + "type": "object", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "assigned", + "unassigned", + "labeled", + "unlabeled", + "opened", + "edited", + "closed", + "reopened", + "synchronize", + "converted_to_draft", + "ready_for_review", + "locked", + "unlocked", + "milestoned", + "demilestoned", + "review_requested", + "review_request_removed", + "auto_merge_enabled", + "auto_merge_disabled", + "enqueued", + "dequeued" + ] + }, + "default": ["opened", "synchronize", "reopened"] + }, + "branches": { + "$ref": "#/definitions/branch" + }, + "branches-ignore": { + "$ref": "#/definitions/branch" + }, + "tags": { + "$ref": "#/definitions/branch" + }, + "tags-ignore": { + "$ref": "#/definitions/branch" + }, + "paths": { + "$ref": "#/definitions/path" + }, + "paths-ignore": { + "$ref": "#/definitions/path" + } + }, + "additionalProperties": false + }, + { + "not": { + "required": ["branches", "branches-ignore"] + } + }, + { + "not": { + "required": ["tags", "tags-ignore"] + } + }, + { + "not": { + "required": ["paths", "paths-ignore"] + } + } + ] + } + ] + }, + "pull_request_review": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-review-event-pull_request_review", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the pull_request_review event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls/reviews.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["submitted", "edited", "dismissed"] + }, + "default": ["submitted", "edited", "dismissed"] + } + } + }, + "pull_request_review_comment": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#pull-request-review-comment-event-pull_request_review_comment", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime a comment on a pull request's unified diff is modified, which triggers the pull_request_review_comment event. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/pulls/comments.\nNote: Workflows do not run on private base repositories when you open a pull request from a forked repository.\nWhen you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.\nWorkflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.\nThe permissions for the GITHUB_TOKEN in forked repositories is read-only. For more information about the GITHUB_TOKEN, see https://help.github.com/en/articles/virtual-environments-for-github-actions.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["created", "edited", "deleted"] + }, + "default": ["created", "edited", "deleted"] + } + } + }, + "pull_request_target": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request_target", + "description": "This event is similar to pull_request, except that it runs in the context of the base repository of the pull request, rather than in the merge commit. This means that you can more safely make your secrets available to the workflows triggered by the pull request, because only workflows defined in the commit on the base repository are run. For example, this event allows you to create workflows that label and comment on pull requests, based on the contents of the event payload.", + "oneOf": [ + { "type": "null" }, + { + "allOf": [ + { + "type": "object", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "assigned", + "unassigned", + "labeled", + "unlabeled", + "opened", + "edited", + "closed", + "reopened", + "synchronize", + "converted_to_draft", + "ready_for_review", + "locked", + "unlocked", + "review_requested", + "review_request_removed", + "auto_merge_enabled", + "auto_merge_disabled" + ] + }, + "default": ["opened", "synchronize", "reopened"] + }, + "branches": { + "$ref": "#/definitions/branch" + }, + "branches-ignore": { + "$ref": "#/definitions/branch" + }, + "tags": { + "$ref": "#/definitions/branch" + }, + "tags-ignore": { + "$ref": "#/definitions/branch" + }, + "paths": { + "$ref": "#/definitions/path" + }, + "paths-ignore": { + "$ref": "#/definitions/path" + } + }, + "additionalProperties": false + }, + { + "not": { + "required": ["branches", "branches-ignore"] + } + }, + { + "not": { + "required": ["tags", "tags-ignore"] + } + }, + { + "not": { + "required": ["paths", "paths-ignore"] + } + } + ] + } + ] + }, + "push": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#push-event-push", + "description": "Runs your workflow when someone pushes to a repository branch, which triggers the push event.\nNote: The webhook payload available to GitHub Actions does not include the added, removed, and modified attributes in the commit object. You can retrieve the full commit object using the REST API. For more information, see https://developer.github.com/v3/repos/commits/#get-a-single-commit.", + "oneOf": [ + { "type": "null" }, + { + "allOf": [ + { + "type": "object", + "properties": { + "branches": { + "$ref": "#/definitions/branch" + }, + "branches-ignore": { + "$ref": "#/definitions/branch" + }, + "tags": { + "$ref": "#/definitions/branch" + }, + "tags-ignore": { + "$ref": "#/definitions/branch" + }, + "paths": { + "$ref": "#/definitions/path" + }, + "paths-ignore": { + "$ref": "#/definitions/path" + } + }, + "additionalProperties": false + }, + { + "not": { + "required": ["branches", "branches-ignore"] + } + }, + { + "not": { + "required": ["tags", "tags-ignore"] + } + }, + { + "not": { + "required": ["paths", "paths-ignore"] + } + } + ] + } + ] + }, + "registry_package": { + "$comment": "https://help.github.com/en/actions/reference/events-that-trigger-workflows#registry-package-event-registry_package", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime a package is published or updated. For more information, see https://help.github.com/en/github/managing-packages-with-github-packages.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["published", "updated"] + }, + "default": ["published", "updated"] + } + } + }, + "release": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#release-event-release", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the release event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/repos/releases/ in the GitHub Developer documentation.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": [ + "published", + "unpublished", + "created", + "edited", + "deleted", + "prereleased", + "released" + ] + }, + "default": [ + "published", + "unpublished", + "created", + "edited", + "deleted", + "prereleased", + "released" + ] + } + } + }, + "status": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#status-event-status", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the status of a Git commit changes, which triggers the status event. For information about the REST API, see https://developer.github.com/v3/repos/statuses/." + }, + "watch": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#watch-event-watch", + "$ref": "#/definitions/eventObject", + "description": "Runs your workflow anytime the watch event occurs. More than one activity type triggers this event. For information about the REST API, see https://developer.github.com/v3/activity/starring/." + }, + "workflow_call": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#workflow_call", + "description": "Allows workflows to be reused by other workflows.", + "properties": { + "inputs": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onworkflow_callinputs", + "description": "When using the workflow_call keyword, you can optionally specify inputs that are passed to the called workflow from the caller workflow.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$comment": "https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#inputsinput_id", + "description": "A string identifier to associate with the input. The value of is a map of the input's metadata. The must be a unique identifier within the inputs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "description": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddescription", + "description": "A string description of the input parameter.", + "type": "string" + }, + "required": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_idrequired", + "description": "A boolean to indicate whether the action requires the input parameter. Set to true when the parameter is required.", + "type": "boolean" + }, + "type": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callinput_idtype", + "description": "Required if input is defined for the on.workflow_call keyword. The value of this parameter is a string specifying the data type of the input. This must be one of: boolean, number, or string.", + "type": "string", + "enum": ["boolean", "number", "string"] + }, + "default": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputsinput_iddefault", + "description": "The default value is used when an input parameter isn't specified in a workflow file.", + "type": ["boolean", "number", "string"] + } + }, + "required": ["type"], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "outputs": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onworkflow_calloutputs", + "description": "When using the workflow_call keyword, you can optionally specify inputs that are passed to the called workflow from the caller workflow.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$comment": "https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions#outputsoutput_id", + "description": "A string identifier to associate with the output. The value of is a map of the output's metadata. The must be a unique identifier within the outputs object. The must start with a letter or _ and contain only alphanumeric characters, -, or _.", + "type": "object", + "properties": { + "description": { + "$comment": "https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions#outputsoutput_iddescription", + "description": "A string description of the output parameter.", + "type": "string" + }, + "value": { + "$comment": "https://docs.github.com/en/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions#outputsoutput_idvalue", + "description": "The value that the output parameter will be mapped to. You can set this to a string or an expression with context. For example, you can use the steps context to set the value of an output to the output value of a step.", + "type": "string" + } + }, + "required": ["value"], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "secrets": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callsecrets", + "description": "A map of the secrets that can be used in the called workflow. Within the called workflow, you can use the secrets context to refer to a secret.", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callsecretssecret_id", + "description": "A string identifier to associate with the secret.", + "properties": { + "description": { + "description": "A string description of the secret parameter.", + "type": "string" + }, + "required": { + "$comment": "https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callsecretssecret_idrequired", + "description": "A boolean specifying whether the secret must be supplied.", + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + } + }, + "workflow_dispatch": { + "$comment": "https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/", + "description": "You can now create workflows that are manually triggered with the new workflow_dispatch event. You will then see a 'Run workflow' button on the Actions tab, enabling you to easily trigger a run.", + "properties": { + "inputs": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions#inputs", + "description": "Input parameters allow you to specify data that the action expects to use during runtime. GitHub stores input parameters as environment variables. Input ids with uppercase letters are converted to lowercase during runtime. We recommended using lowercase input ids.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "$ref": "#/definitions/workflowDispatchInput" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "workflow_run": { + "$comment": "https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_run", + "$ref": "#/definitions/eventObject", + "description": "This event occurs when a workflow run is requested or completed, and allows you to execute a workflow based on the finished result of another workflow. For example, if your pull_request workflow generates build artifacts, you can create a new workflow that uses workflow_run to analyze the results and add a comment to the original pull request.", + "properties": { + "types": { + "$ref": "#/definitions/types", + "items": { + "type": "string", + "enum": ["requested", "completed", "in_progress"] + }, + "default": ["requested", "completed"] + }, + "workflows": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "patternProperties": { + "^branches(-ignore)?$": {} + } + }, + "repository_dispatch": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/events-that-trigger-workflows#external-events-repository_dispatch", + "$ref": "#/definitions/eventObject", + "description": "You can use the GitHub API to trigger a webhook event called repository_dispatch when you want to trigger a workflow for activity that happens outside of GitHub. For more information, see https://developer.github.com/v3/repos/#create-a-repository-dispatch-event.\nTo trigger the custom repository_dispatch webhook event, you must send a POST request to a GitHub API endpoint and provide an event_type name to describe the activity type. To trigger a workflow run, you must also configure your workflow to use the repository_dispatch event." + }, + "schedule": { + "$comment": "https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#schedule", + "description": "You can schedule a workflow to run at specific UTC times using POSIX cron syntax (https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07). You can optionally specify a timezone using an IANA timezone string (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for timezone-aware scheduling. Scheduled workflows run on the latest commit on the default or base branch. The shortest interval you can run scheduled workflows is once every 5 minutes.\nNote: GitHub Actions does not support the non-standard syntax @yearly, @monthly, @weekly, @daily, @hourly, and @reboot.\nYou can use crontab guru (https://crontab.guru/) to help generate your cron syntax and confirm what time it will run. To help you get started, there is also a list of crontab guru examples (https://crontab.guru/examples.html).", + "type": "array", + "items": { + "type": "object", + "properties": { + "cron": { + "description": "A cron expression that represents a schedule. A scheduled workflow will run at most once every 5 minutes.", + "type": "string" + }, + "timezone": { + "description": "A string that represents the time zone a scheduled workflow will run relative to in IANA format (e.g. 'America/New_York' or 'Europe/London'). If omitted, the workflow will run relative to midnight UTC.", + "type": "string" + } + }, + "required": ["cron"], + "additionalProperties": false + }, + "minItems": 1 + } + }, + "additionalProperties": false + } + ] + }, + "env": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env", + "$ref": "#/definitions/env", + "description": "A map of environment variables that are available to all jobs and steps in the workflow." + }, + "defaults": { + "$comment": "https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaults", + "$ref": "#/definitions/defaults", + "description": "A map of default settings that will apply to all jobs in the workflow." + }, + "concurrency": { + "$comment": "https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency", + "description": "Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can use any context except for the secrets context. \nYou can also specify concurrency at the workflow level. \nWhen a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be pending. Any previously pending job or workflow in the concurrency group will be canceled. To also cancel any currently running job or workflow in the same concurrency group, specify cancel-in-progress: true.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/concurrency" + } + ] + }, + "jobs": { + "$comment": "https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobs", + "description": "A workflow run is made up of one or more jobs. Jobs run in parallel by default. To run jobs sequentially, you can define dependencies on other jobs using the jobs..needs keyword.\nEach job runs in a fresh instance of the virtual environment specified by runs-on.\nYou can run an unlimited number of jobs as long as you are within the workflow usage limits. For more information, see https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#usage-limits.", + "type": "object", + "patternProperties": { + "^[_a-zA-Z][a-zA-Z0-9_-]*$": { + "oneOf": [ + { + "$ref": "#/definitions/normalJob" + }, + { + "$ref": "#/definitions/reusableWorkflowCallJob" + } + ] + } + }, + "minProperties": 1, + "additionalProperties": false + }, + "run-name": { + "$comment": "https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#run-name", + "description": "The name for workflow runs generated from the workflow. GitHub displays the workflow run name in the list of workflow runs on your repository's 'Actions' tab.", + "type": "string" + }, + "permissions": { + "$ref": "#/definitions/permissions" + } + }, + "required": ["on", "jobs"], + "type": "object" +}