blob: a6263e6f0fb870a6ee5fe6ad9ef1d90dd16ed723 [file] [edit]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <optional>
#include <string>
#include <utility>
#include "quiche/common/platform/api/quiche_test.h"
#include "quiche/common/structured_headers.h"
// This file contains tests cases for the Structured Header parser and
// serializer, taken from the public test case repository at
// https://github.com/httpwg/structured-field-tests. All of the tests are named,
// so a given test case can be found in the JSON files in that repository by
// searching for the test name. This file is generated, with the test cases
// being automatically translated from the JSON source to C++ unit tests. Please
// do not modify, as the contents will be overwritten when this is re-generated.
// Generated on 2026-06-26 from structured-field-tests.git @
// 1e280c3ed9ffe0ca5fdb1d97219dddc389007677.
namespace quiche {
namespace structured_headers {
namespace {
// Helpers to make test cases clearer
Item Integer(int64_t value) { return Item(value); }
std::pair<std::string, Item> BooleanParam(std::string key, bool value) {
return std::make_pair(key, Item(value));
}
std::pair<std::string, Item> DoubleParam(std::string key, double value) {
return std::make_pair(key, Item(value));
}
std::pair<std::string, Item> Param(std::string key, int64_t value) {
return std::make_pair(key, Item(value));
}
std::pair<std::string, Item> Param(std::string key, std::string value) {
return std::make_pair(key, Item(value));
}
std::pair<std::string, Item> TokenParam(std::string key, std::string value) {
return std::make_pair(key, Item(value, Item::kTokenType));
}
const struct ParameterizedItemTestCase {
const char* name;
const char* raw;
size_t raw_len;
const std::optional<ParameterizedItem>
expected; // nullopt if parse error is expected.
const char* canonical; // nullptr if parse error is expected, or if canonical
// format is identical to raw.
const char* known_bug = nullptr;
} parameterized_item_test_cases[] = {
// binary.json
{"basic binary",
":aGVsbG8=:",
10,
{{Item("hello", Item::kByteSequenceType), {}}},
nullptr},
{"empty binary",
"::",
2,
{{Item("", Item::kByteSequenceType), {}}},
nullptr},
{"padding at beginning", ":=aGVsbG8=:", 11, std::nullopt, nullptr},
{"padding in middle", ":a=GVsbG8=:", 11, std::nullopt, nullptr},
{"bad padding",
":aGVsbG8:",
9,
{{Item("hello", Item::kByteSequenceType), {}}},
":aGVsbG8=:"},
{"bad padding dot", ":aGVsbG8.:", 10, std::nullopt, nullptr, "b/393153699"},
{"bad end delimiter", ":aGVsbG8=", 9, std::nullopt, nullptr},
{"extra whitespace", ":aGVsb G8=:", 11, std::nullopt, nullptr},
{"all whitespace", ": :", 6, std::nullopt, nullptr, "b/393408763"},
{"extra chars", ":aGVsbG!8=:", 11, std::nullopt, nullptr},
{"suffix chars", ":aGVsbG8=!:", 11, std::nullopt, nullptr},
{"non-zero pad bits",
":iZ==:",
6,
{{Item("\211", Item::kByteSequenceType), {}}},
":iQ==:"},
{"non-ASCII binary",
":/+Ah:",
6,
{{Item("\377\340!", Item::kByteSequenceType), {}}},
nullptr},
{"base64url binary", ":_-Ah:", 6, std::nullopt, nullptr},
{"binary prefix only", ":", 1, std::nullopt, nullptr},
// boolean.json
{"basic true boolean", "?1", 2, {{Item(true), {}}}, nullptr},
{"basic false boolean", "?0", 2, {{Item(false), {}}}, nullptr},
{"unknown boolean", "?Q", 2, std::nullopt, nullptr},
{"whitespace boolean", "? 1", 3, std::nullopt, nullptr},
{"negative zero boolean", "?-0", 3, std::nullopt, nullptr},
{"T boolean", "?T", 2, std::nullopt, nullptr},
{"F boolean", "?F", 2, std::nullopt, nullptr},
{"t boolean", "?t", 2, std::nullopt, nullptr},
{"f boolean", "?f", 2, std::nullopt, nullptr},
{"spelled-out True boolean", "?True", 5, std::nullopt, nullptr},
{"spelled-out False boolean", "?False", 6, std::nullopt, nullptr},
{"boolean prefix only", "?", 1, std::nullopt, nullptr},
// examples.json
{"Foo-Example",
"2; foourl=\"https://foo.example.com/\"",
36,
{{Integer(2), {Param("foourl", "https://foo.example.com/")}}},
"2;foourl=\"https://foo.example.com/\""},
{"Example-IntHeader",
"1; a; b=?0",
10,
{{Integer(1), {BooleanParam("a", true), BooleanParam("b", false)}}},
"1;a;b=?0"},
{"Example-IntItemHeader", "5", 1, {{Integer(5), {}}}, nullptr},
{"Example-IntItemHeader (params)",
"5; foo=bar",
10,
{{Integer(5), {TokenParam("foo", "bar")}}},
"5;foo=bar"},
{"Example-IntegerHeader", "42", 2, {{Integer(42), {}}}, nullptr},
{"Example-FloatHeader", "4.5", 3, {{Item(4.5), {}}}, nullptr},
{"Example-StringHeader",
"\"hello world\"",
13,
{{Item("hello world"), {}}},
nullptr},
{"Example-BinaryHdr",
":cHJldGVuZCB0aGlzIGlzIGJpbmFyeSBjb250ZW50Lg==:",
46,
{{Item("pretend this is binary content.", Item::kByteSequenceType), {}}},
nullptr},
{"Example-BoolHdr", "?1", 2, {{Item(true), {}}}, nullptr},
// item.json
{"empty item", "", 0, std::nullopt, nullptr},
{"leading space", " \t 1", 4, std::nullopt, nullptr},
{"trailing space", "1 \t ", 4, std::nullopt, nullptr},
{"leading and trailing space", " 1 ", 5, {{Integer(1), {}}}, "1"},
{"leading and trailing whitespace", " 1 ", 8, {{Integer(1), {}}}, "1"},
// large-generated.json
{"large string",
"\"======================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"====\"",
1026,
{{Item("=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================="),
{}}},
nullptr},
{"large escaped string",
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\"",
2050,
{{Item("\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\""),
{}}},
nullptr},
{"large token",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"a",
512,
{{Item("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
Item::kTokenType),
{}}},
nullptr},
{"large byte sequence",
":YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYQ==:",
21850,
{{Item(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
Item::kByteSequenceType),
{}}},
nullptr},
// number-generated.json
{"1 digits of zero", "0", 1, {{Integer(0), {}}}, "0"},
{"1 digit small integer", "1", 1, {{Integer(1), {}}}, nullptr},
{"1 digit large integer", "9", 1, {{Integer(9), {}}}, nullptr},
{"2 digits of zero", "00", 2, {{Integer(0), {}}}, "0"},
{"2 digit small integer", "11", 2, {{Integer(11), {}}}, nullptr},
{"2 digit large integer", "99", 2, {{Integer(99), {}}}, nullptr},
{"3 digits of zero", "000", 3, {{Integer(0), {}}}, "0"},
{"3 digit small integer", "111", 3, {{Integer(111), {}}}, nullptr},
{"3 digit large integer", "999", 3, {{Integer(999), {}}}, nullptr},
{"4 digits of zero", "0000", 4, {{Integer(0), {}}}, "0"},
{"4 digit small integer", "1111", 4, {{Integer(1111), {}}}, nullptr},
{"4 digit large integer", "9999", 4, {{Integer(9999), {}}}, nullptr},
{"5 digits of zero", "00000", 5, {{Integer(0), {}}}, "0"},
{"5 digit small integer", "11111", 5, {{Integer(11111), {}}}, nullptr},
{"5 digit large integer", "99999", 5, {{Integer(99999), {}}}, nullptr},
{"6 digits of zero", "000000", 6, {{Integer(0), {}}}, "0"},
{"6 digit small integer", "111111", 6, {{Integer(111111), {}}}, nullptr},
{"6 digit large integer", "999999", 6, {{Integer(999999), {}}}, nullptr},
{"7 digits of zero", "0000000", 7, {{Integer(0), {}}}, "0"},
{"7 digit small integer", "1111111", 7, {{Integer(1111111), {}}}, nullptr},
{"7 digit large integer", "9999999", 7, {{Integer(9999999), {}}}, nullptr},
{"8 digits of zero", "00000000", 8, {{Integer(0), {}}}, "0"},
{"8 digit small integer",
"11111111",
8,
{{Integer(11111111), {}}},
nullptr},
{"8 digit large integer",
"99999999",
8,
{{Integer(99999999), {}}},
nullptr},
{"9 digits of zero", "000000000", 9, {{Integer(0), {}}}, "0"},
{"9 digit small integer",
"111111111",
9,
{{Integer(111111111), {}}},
nullptr},
{"9 digit large integer",
"999999999",
9,
{{Integer(999999999), {}}},
nullptr},
{"10 digits of zero", "0000000000", 10, {{Integer(0), {}}}, "0"},
{"10 digit small integer",
"1111111111",
10,
{{Integer(1111111111), {}}},
nullptr},
{"10 digit large integer",
"9999999999",
10,
{{Integer(9999999999), {}}},
nullptr},
{"11 digits of zero", "00000000000", 11, {{Integer(0), {}}}, "0"},
{"11 digit small integer",
"11111111111",
11,
{{Integer(11111111111), {}}},
nullptr},
{"11 digit large integer",
"99999999999",
11,
{{Integer(99999999999), {}}},
nullptr},
{"12 digits of zero", "000000000000", 12, {{Integer(0), {}}}, "0"},
{"12 digit small integer",
"111111111111",
12,
{{Integer(111111111111), {}}},
nullptr},
{"12 digit large integer",
"999999999999",
12,
{{Integer(999999999999), {}}},
nullptr},
{"13 digits of zero", "0000000000000", 13, {{Integer(0), {}}}, "0"},
{"13 digit small integer",
"1111111111111",
13,
{{Integer(1111111111111), {}}},
nullptr},
{"13 digit large integer",
"9999999999999",
13,
{{Integer(9999999999999), {}}},
nullptr},
{"14 digits of zero", "00000000000000", 14, {{Integer(0), {}}}, "0"},
{"14 digit small integer",
"11111111111111",
14,
{{Integer(11111111111111), {}}},
nullptr},
{"14 digit large integer",
"99999999999999",
14,
{{Integer(99999999999999), {}}},
nullptr},
{"15 digits of zero", "000000000000000", 15, {{Integer(0), {}}}, "0"},
{"15 digit small integer",
"111111111111111",
15,
{{Integer(111111111111111), {}}},
nullptr},
{"15 digit large integer",
"999999999999999",
15,
{{Integer(999999999999999), {}}},
nullptr},
{"2 digit 0, 1 fractional small decimal",
"0.1",
3,
{{Item(0.1), {}}},
"0.1"},
{"2 digit, 1 fractional 0 decimal", "1.0", 3, {{Item(1.0), {}}}, "1.0"},
{"2 digit, 1 fractional small decimal",
"1.1",
3,
{{Item(1.1), {}}},
nullptr},
{"2 digit, 1 fractional large decimal",
"9.9",
3,
{{Item(9.9), {}}},
nullptr},
{"3 digit 0, 2 fractional small decimal",
"0.11",
4,
{{Item(0.11), {}}},
"0.11"},
{"3 digit, 2 fractional 0 decimal", "1.00", 4, {{Item(1.0), {}}}, "1.0"},
{"3 digit, 2 fractional small decimal",
"1.11",
4,
{{Item(1.11), {}}},
nullptr},
{"3 digit, 2 fractional large decimal",
"9.99",
4,
{{Item(9.99), {}}},
nullptr},
{"4 digit 0, 3 fractional small decimal",
"0.111",
5,
{{Item(0.111), {}}},
"0.111"},
{"4 digit, 3 fractional 0 decimal", "1.000", 5, {{Item(1.0), {}}}, "1.0"},
{"4 digit, 3 fractional small decimal",
"1.111",
5,
{{Item(1.111), {}}},
nullptr},
{"4 digit, 3 fractional large decimal",
"9.999",
5,
{{Item(9.999), {}}},
nullptr},
{"3 digit 0, 1 fractional small decimal",
"00.1",
4,
{{Item(0.1), {}}},
"0.1"},
{"3 digit, 1 fractional 0 decimal", "11.0", 4, {{Item(11.0), {}}}, "11.0"},
{"3 digit, 1 fractional small decimal",
"11.1",
4,
{{Item(11.1), {}}},
nullptr},
{"3 digit, 1 fractional large decimal",
"99.9",
4,
{{Item(99.9), {}}},
nullptr},
{"4 digit 0, 2 fractional small decimal",
"00.11",
5,
{{Item(0.11), {}}},
"0.11"},
{"4 digit, 2 fractional 0 decimal", "11.00", 5, {{Item(11.0), {}}}, "11.0"},
{"4 digit, 2 fractional small decimal",
"11.11",
5,
{{Item(11.11), {}}},
nullptr},
{"4 digit, 2 fractional large decimal",
"99.99",
5,
{{Item(99.99), {}}},
nullptr},
{"5 digit 0, 3 fractional small decimal",
"00.111",
6,
{{Item(0.111), {}}},
"0.111"},
{"5 digit, 3 fractional 0 decimal",
"11.000",
6,
{{Item(11.0), {}}},
"11.0"},
{"5 digit, 3 fractional small decimal",
"11.111",
6,
{{Item(11.111), {}}},
nullptr},
{"5 digit, 3 fractional large decimal",
"99.999",
6,
{{Item(99.999), {}}},
nullptr},
{"4 digit 0, 1 fractional small decimal",
"000.1",
5,
{{Item(0.1), {}}},
"0.1"},
{"4 digit, 1 fractional 0 decimal",
"111.0",
5,
{{Item(111.0), {}}},
"111.0"},
{"4 digit, 1 fractional small decimal",
"111.1",
5,
{{Item(111.1), {}}},
nullptr},
{"4 digit, 1 fractional large decimal",
"999.9",
5,
{{Item(999.9), {}}},
nullptr},
{"5 digit 0, 2 fractional small decimal",
"000.11",
6,
{{Item(0.11), {}}},
"0.11"},
{"5 digit, 2 fractional 0 decimal",
"111.00",
6,
{{Item(111.0), {}}},
"111.0"},
{"5 digit, 2 fractional small decimal",
"111.11",
6,
{{Item(111.11), {}}},
nullptr},
{"5 digit, 2 fractional large decimal",
"999.99",
6,
{{Item(999.99), {}}},
nullptr},
{"6 digit 0, 3 fractional small decimal",
"000.111",
7,
{{Item(0.111), {}}},
"0.111"},
{"6 digit, 3 fractional 0 decimal",
"111.000",
7,
{{Item(111.0), {}}},
"111.0"},
{"6 digit, 3 fractional small decimal",
"111.111",
7,
{{Item(111.111), {}}},
nullptr},
{"6 digit, 3 fractional large decimal",
"999.999",
7,
{{Item(999.999), {}}},
nullptr},
{"5 digit 0, 1 fractional small decimal",
"0000.1",
6,
{{Item(0.1), {}}},
"0.1"},
{"5 digit, 1 fractional 0 decimal",
"1111.0",
6,
{{Item(1111.0), {}}},
"1111.0"},
{"5 digit, 1 fractional small decimal",
"1111.1",
6,
{{Item(1111.1), {}}},
nullptr},
{"5 digit, 1 fractional large decimal",
"9999.9",
6,
{{Item(9999.9), {}}},
nullptr},
{"6 digit 0, 2 fractional small decimal",
"0000.11",
7,
{{Item(0.11), {}}},
"0.11"},
{"6 digit, 2 fractional 0 decimal",
"1111.00",
7,
{{Item(1111.0), {}}},
"1111.0"},
{"6 digit, 2 fractional small decimal",
"1111.11",
7,
{{Item(1111.11), {}}},
nullptr},
{"6 digit, 2 fractional large decimal",
"9999.99",
7,
{{Item(9999.99), {}}},
nullptr},
{"7 digit 0, 3 fractional small decimal",
"0000.111",
8,
{{Item(0.111), {}}},
"0.111"},
{"7 digit, 3 fractional 0 decimal",
"1111.000",
8,
{{Item(1111.0), {}}},
"1111.0"},
{"7 digit, 3 fractional small decimal",
"1111.111",
8,
{{Item(1111.111), {}}},
nullptr},
{"7 digit, 3 fractional large decimal",
"9999.999",
8,
{{Item(9999.999), {}}},
nullptr},
{"6 digit 0, 1 fractional small decimal",
"00000.1",
7,
{{Item(0.1), {}}},
"0.1"},
{"6 digit, 1 fractional 0 decimal",
"11111.0",
7,
{{Item(11111.0), {}}},
"11111.0"},
{"6 digit, 1 fractional small decimal",
"11111.1",
7,
{{Item(11111.1), {}}},
nullptr},
{"6 digit, 1 fractional large decimal",
"99999.9",
7,
{{Item(99999.9), {}}},
nullptr},
{"7 digit 0, 2 fractional small decimal",
"00000.11",
8,
{{Item(0.11), {}}},
"0.11"},
{"7 digit, 2 fractional 0 decimal",
"11111.00",
8,
{{Item(11111.0), {}}},
"11111.0"},
{"7 digit, 2 fractional small decimal",
"11111.11",
8,
{{Item(11111.11), {}}},
nullptr},
{"7 digit, 2 fractional large decimal",
"99999.99",
8,
{{Item(99999.99), {}}},
nullptr},
{"8 digit 0, 3 fractional small decimal",
"00000.111",
9,
{{Item(0.111), {}}},
"0.111"},
{"8 digit, 3 fractional 0 decimal",
"11111.000",
9,
{{Item(11111.0), {}}},
"11111.0"},
{"8 digit, 3 fractional small decimal",
"11111.111",
9,
{{Item(11111.111), {}}},
nullptr},
{"8 digit, 3 fractional large decimal",
"99999.999",
9,
{{Item(99999.999), {}}},
nullptr},
{"7 digit 0, 1 fractional small decimal",
"000000.1",
8,
{{Item(0.1), {}}},
"0.1"},
{"7 digit, 1 fractional 0 decimal",
"111111.0",
8,
{{Item(111111.0), {}}},
"111111.0"},
{"7 digit, 1 fractional small decimal",
"111111.1",
8,
{{Item(111111.1), {}}},
nullptr},
{"7 digit, 1 fractional large decimal",
"999999.9",
8,
{{Item(999999.9), {}}},
nullptr},
{"8 digit 0, 2 fractional small decimal",
"000000.11",
9,
{{Item(0.11), {}}},
"0.11"},
{"8 digit, 2 fractional 0 decimal",
"111111.00",
9,
{{Item(111111.0), {}}},
"111111.0"},
{"8 digit, 2 fractional small decimal",
"111111.11",
9,
{{Item(111111.11), {}}},
nullptr},
{"8 digit, 2 fractional large decimal",
"999999.99",
9,
{{Item(999999.99), {}}},
nullptr},
{"9 digit 0, 3 fractional small decimal",
"000000.111",
10,
{{Item(0.111), {}}},
"0.111"},
{"9 digit, 3 fractional 0 decimal",
"111111.000",
10,
{{Item(111111.0), {}}},
"111111.0"},
{"9 digit, 3 fractional small decimal",
"111111.111",
10,
{{Item(111111.111), {}}},
nullptr},
{"9 digit, 3 fractional large decimal",
"999999.999",
10,
{{Item(999999.999), {}}},
nullptr},
{"8 digit 0, 1 fractional small decimal",
"0000000.1",
9,
{{Item(0.1), {}}},
"0.1"},
{"8 digit, 1 fractional 0 decimal",
"1111111.0",
9,
{{Item(1111111.0), {}}},
"1111111.0"},
{"8 digit, 1 fractional small decimal",
"1111111.1",
9,
{{Item(1111111.1), {}}},
nullptr},
{"8 digit, 1 fractional large decimal",
"9999999.9",
9,
{{Item(9999999.9), {}}},
nullptr},
{"9 digit 0, 2 fractional small decimal",
"0000000.11",
10,
{{Item(0.11), {}}},
"0.11"},
{"9 digit, 2 fractional 0 decimal",
"1111111.00",
10,
{{Item(1111111.0), {}}},
"1111111.0"},
{"9 digit, 2 fractional small decimal",
"1111111.11",
10,
{{Item(1111111.11), {}}},
nullptr},
{"9 digit, 2 fractional large decimal",
"9999999.99",
10,
{{Item(9999999.99), {}}},
nullptr},
{"10 digit 0, 3 fractional small decimal",
"0000000.111",
11,
{{Item(0.111), {}}},
"0.111"},
{"10 digit, 3 fractional 0 decimal",
"1111111.000",
11,
{{Item(1111111.0), {}}},
"1111111.0"},
{"10 digit, 3 fractional small decimal",
"1111111.111",
11,
{{Item(1111111.111), {}}},
nullptr},
{"10 digit, 3 fractional large decimal",
"9999999.999",
11,
{{Item(9999999.999), {}}},
nullptr},
{"9 digit 0, 1 fractional small decimal",
"00000000.1",
10,
{{Item(0.1), {}}},
"0.1"},
{"9 digit, 1 fractional 0 decimal",
"11111111.0",
10,
{{Item(11111111.0), {}}},
"11111111.0"},
{"9 digit, 1 fractional small decimal",
"11111111.1",
10,
{{Item(11111111.1), {}}},
nullptr},
{"9 digit, 1 fractional large decimal",
"99999999.9",
10,
{{Item(99999999.9), {}}},
nullptr},
{"10 digit 0, 2 fractional small decimal",
"00000000.11",
11,
{{Item(0.11), {}}},
"0.11"},
{"10 digit, 2 fractional 0 decimal",
"11111111.00",
11,
{{Item(11111111.0), {}}},
"11111111.0"},
{"10 digit, 2 fractional small decimal",
"11111111.11",
11,
{{Item(11111111.11), {}}},
nullptr},
{"10 digit, 2 fractional large decimal",
"99999999.99",
11,
{{Item(99999999.99), {}}},
nullptr},
{"11 digit 0, 3 fractional small decimal",
"00000000.111",
12,
{{Item(0.111), {}}},
"0.111"},
{"11 digit, 3 fractional 0 decimal",
"11111111.000",
12,
{{Item(11111111.0), {}}},
"11111111.0"},
{"11 digit, 3 fractional small decimal",
"11111111.111",
12,
{{Item(11111111.111), {}}},
nullptr},
{"11 digit, 3 fractional large decimal",
"99999999.999",
12,
{{Item(99999999.999), {}}},
nullptr},
{"10 digit 0, 1 fractional small decimal",
"000000000.1",
11,
{{Item(0.1), {}}},
"0.1"},
{"10 digit, 1 fractional 0 decimal",
"111111111.0",
11,
{{Item(111111111.0), {}}},
"111111111.0"},
{"10 digit, 1 fractional small decimal",
"111111111.1",
11,
{{Item(111111111.1), {}}},
nullptr},
{"10 digit, 1 fractional large decimal",
"999999999.9",
11,
{{Item(999999999.9), {}}},
nullptr},
{"11 digit 0, 2 fractional small decimal",
"000000000.11",
12,
{{Item(0.11), {}}},
"0.11"},
{"11 digit, 2 fractional 0 decimal",
"111111111.00",
12,
{{Item(111111111.0), {}}},
"111111111.0"},
{"11 digit, 2 fractional small decimal",
"111111111.11",
12,
{{Item(111111111.11), {}}},
nullptr},
{"11 digit, 2 fractional large decimal",
"999999999.99",
12,
{{Item(999999999.99), {}}},
nullptr},
{"12 digit 0, 3 fractional small decimal",
"000000000.111",
13,
{{Item(0.111), {}}},
"0.111"},
{"12 digit, 3 fractional 0 decimal",
"111111111.000",
13,
{{Item(111111111.0), {}}},
"111111111.0"},
{"12 digit, 3 fractional small decimal",
"111111111.111",
13,
{{Item(111111111.111), {}}},
nullptr},
{"12 digit, 3 fractional large decimal",
"999999999.999",
13,
{{Item(999999999.999), {}}},
nullptr},
{"11 digit 0, 1 fractional small decimal",
"0000000000.1",
12,
{{Item(0.1), {}}},
"0.1"},
{"11 digit, 1 fractional 0 decimal",
"1111111111.0",
12,
{{Item(1111111111.0), {}}},
"1111111111.0"},
{"11 digit, 1 fractional small decimal",
"1111111111.1",
12,
{{Item(1111111111.1), {}}},
nullptr},
{"11 digit, 1 fractional large decimal",
"9999999999.9",
12,
{{Item(9999999999.9), {}}},
nullptr},
{"12 digit 0, 2 fractional small decimal",
"0000000000.11",
13,
{{Item(0.11), {}}},
"0.11"},
{"12 digit, 2 fractional 0 decimal",
"1111111111.00",
13,
{{Item(1111111111.0), {}}},
"1111111111.0"},
{"12 digit, 2 fractional small decimal",
"1111111111.11",
13,
{{Item(1111111111.11), {}}},
nullptr},
{"12 digit, 2 fractional large decimal",
"9999999999.99",
13,
{{Item(9999999999.99), {}}},
nullptr},
{"13 digit 0, 3 fractional small decimal",
"0000000000.111",
14,
{{Item(0.111), {}}},
"0.111"},
{"13 digit, 3 fractional 0 decimal",
"1111111111.000",
14,
{{Item(1111111111.0), {}}},
"1111111111.0"},
{"13 digit, 3 fractional small decimal",
"1111111111.111",
14,
{{Item(1111111111.111), {}}},
nullptr},
{"13 digit, 3 fractional large decimal",
"9999999999.999",
14,
{{Item(9999999999.999), {}}},
nullptr},
{"12 digit 0, 1 fractional small decimal",
"00000000000.1",
13,
{{Item(0.1), {}}},
"0.1"},
{"12 digit, 1 fractional 0 decimal",
"11111111111.0",
13,
{{Item(11111111111.0), {}}},
"11111111111.0"},
{"12 digit, 1 fractional small decimal",
"11111111111.1",
13,
{{Item(11111111111.1), {}}},
nullptr},
{"12 digit, 1 fractional large decimal",
"99999999999.9",
13,
{{Item(99999999999.9), {}}},
nullptr},
{"13 digit 0, 2 fractional small decimal",
"00000000000.11",
14,
{{Item(0.11), {}}},
"0.11"},
{"13 digit, 2 fractional 0 decimal",
"11111111111.00",
14,
{{Item(11111111111.0), {}}},
"11111111111.0"},
{"13 digit, 2 fractional small decimal",
"11111111111.11",
14,
{{Item(11111111111.11), {}}},
nullptr},
{"13 digit, 2 fractional large decimal",
"99999999999.99",
14,
{{Item(99999999999.99), {}}},
nullptr},
{"14 digit 0, 3 fractional small decimal",
"00000000000.111",
15,
{{Item(0.111), {}}},
"0.111"},
{"14 digit, 3 fractional 0 decimal",
"11111111111.000",
15,
{{Item(11111111111.0), {}}},
"11111111111.0"},
{"14 digit, 3 fractional small decimal",
"11111111111.111",
15,
{{Item(11111111111.111), {}}},
nullptr},
{"14 digit, 3 fractional large decimal",
"99999999999.999",
15,
{{Item(99999999999.999), {}}},
nullptr},
{"13 digit 0, 1 fractional small decimal",
"000000000000.1",
14,
{{Item(0.1), {}}},
"0.1"},
{"13 digit, 1 fractional 0 decimal",
"111111111111.0",
14,
{{Item(111111111111.0), {}}},
"111111111111.0"},
{"13 digit, 1 fractional small decimal",
"111111111111.1",
14,
{{Item(111111111111.1), {}}},
nullptr},
{"13 digit, 1 fractional large decimal",
"999999999999.9",
14,
{{Item(999999999999.9), {}}},
nullptr},
{"14 digit 0, 2 fractional small decimal",
"000000000000.11",
15,
{{Item(0.11), {}}},
"0.11"},
{"14 digit, 2 fractional 0 decimal",
"111111111111.00",
15,
{{Item(111111111111.0), {}}},
"111111111111.0"},
{"14 digit, 2 fractional small decimal",
"111111111111.11",
15,
{{Item(111111111111.11), {}}},
nullptr},
{"14 digit, 2 fractional large decimal",
"999999999999.99",
15,
{{Item(999999999999.99), {}}},
nullptr},
{"15 digit 0, 3 fractional small decimal",
"000000000000.111",
16,
{{Item(0.111), {}}},
"0.111"},
{"15 digit, 3 fractional 0 decimal",
"111111111111.000",
16,
{{Item(111111111111.0), {}}},
"111111111111.0"},
{"15 digit, 3 fractional small decimal",
"111111111111.111",
16,
{{Item(111111111111.111), {}}},
nullptr},
{"15 digit, 3 fractional large decimal",
"999999999999.999",
16,
{{Item(999999999999.999), {}}},
nullptr},
{"too many digit 0 decimal", "000000000000000.0", 17, std::nullopt,
nullptr},
{"too many fractional digits 0 decimal", "000000000000.0000", 17,
std::nullopt, nullptr},
{"too many digit 9 decimal", "999999999999999.9", 17, std::nullopt,
nullptr},
{"too many fractional digits 9 decimal", "999999999999.9999", 17,
std::nullopt, nullptr},
// number.json
{"basic integer", "42", 2, {{Integer(42), {}}}, nullptr},
{"zero integer", "0", 1, {{Integer(0), {}}}, nullptr},
{"negative zero", "-0", 2, {{Integer(0), {}}}, "0"},
{"double negative zero", "--0", 3, std::nullopt, nullptr},
{"negative integer", "-42", 3, {{Integer(-42), {}}}, nullptr},
{"leading 0 integer", "042", 3, {{Integer(42), {}}}, "42"},
{"leading 0 negative integer", "-042", 4, {{Integer(-42), {}}}, "-42"},
{"leading 0 zero", "00", 2, {{Integer(0), {}}}, "0"},
{"comma", "2,3", 3, std::nullopt, nullptr},
{"negative non-DIGIT first character", "-a23", 4, std::nullopt, nullptr},
{"sign out of place", "4-2", 3, std::nullopt, nullptr},
{"whitespace after sign", "- 42", 4, std::nullopt, nullptr},
{"long integer",
"123456789012345",
15,
{{Integer(123456789012345), {}}},
nullptr},
{"long negative integer",
"-123456789012345",
16,
{{Integer(-123456789012345), {}}},
nullptr},
{"too long integer", "1234567890123456", 16, std::nullopt, nullptr},
{"negative too long integer", "-1234567890123456", 17, std::nullopt,
nullptr},
{"simple decimal", "1.23", 4, {{Item(1.23), {}}}, nullptr},
{"negative decimal", "-1.23", 5, {{Item(-1.23), {}}}, nullptr},
{"decimal, whitespace after decimal", "1. 23", 5, std::nullopt, nullptr},
{"decimal, whitespace before decimal", "1 .23", 5, std::nullopt, nullptr},
{"negative decimal, whitespace after sign", "- 1.23", 6, std::nullopt,
nullptr},
{"tricky precision decimal",
"123456789012.1",
14,
{{Item(123456789012.1), {}}},
nullptr},
{"double decimal decimal", "1.5.4", 5, std::nullopt, nullptr},
{"adjacent double decimal decimal", "1..4", 4, std::nullopt, nullptr},
{"decimal with three fractional digits",
"1.123",
5,
{{Item(1.123), {}}},
nullptr},
{"negative decimal with three fractional digits",
"-1.123",
6,
{{Item(-1.123), {}}},
nullptr},
{"decimal with zero fractional digits", "1.", 2, std::nullopt, nullptr,
"b/517189418"},
{"decimal with four fractional digits", "1.1234", 6, std::nullopt, nullptr},
{"negative decimal with four fractional digits", "-1.1234", 7, std::nullopt,
nullptr},
{"decimal with thirteen integer digits", "1234567890123.0", 15,
std::nullopt, nullptr},
{"negative decimal with thirteen integer digits", "-1234567890123.0", 16,
std::nullopt, nullptr},
{"decimal with 1 significant digit and 1 insignificant digit",
"1.20",
4,
{{Item(1.2), {}}},
"1.2"},
{"decimal with 1 significant digit and 2 insignificant digits",
"1.200",
5,
{{Item(1.2), {}}},
"1.2"},
{"decimal with 2 significant digits and 1 insignificant digit",
"1.230",
5,
{{Item(1.23), {}}},
"1.23"},
// string-generated.json
{"0x00 in string", "\" \000 \"", 5, std::nullopt, nullptr},
{"0x01 in string", "\" \001 \"", 5, std::nullopt, nullptr},
{"0x02 in string", "\" \002 \"", 5, std::nullopt, nullptr},
{"0x03 in string", "\" \003 \"", 5, std::nullopt, nullptr},
{"0x04 in string", "\" \004 \"", 5, std::nullopt, nullptr},
{"0x05 in string", "\" \005 \"", 5, std::nullopt, nullptr},
{"0x06 in string", "\" \006 \"", 5, std::nullopt, nullptr},
{"0x07 in string", "\" \007 \"", 5, std::nullopt, nullptr},
{"0x08 in string", "\" \010 \"", 5, std::nullopt, nullptr},
{"0x09 in string", "\" \t \"", 5, std::nullopt, nullptr},
{"0x0a in string", "\" \n \"", 5, std::nullopt, nullptr},
{"0x0b in string", "\" \013 \"", 5, std::nullopt, nullptr},
{"0x0c in string", "\" \014 \"", 5, std::nullopt, nullptr},
{"0x0d in string", "\" \r \"", 5, std::nullopt, nullptr},
{"0x0e in string", "\" \016 \"", 5, std::nullopt, nullptr},
{"0x0f in string", "\" \017 \"", 5, std::nullopt, nullptr},
{"0x10 in string", "\" \020 \"", 5, std::nullopt, nullptr},
{"0x11 in string", "\" \021 \"", 5, std::nullopt, nullptr},
{"0x12 in string", "\" \022 \"", 5, std::nullopt, nullptr},
{"0x13 in string", "\" \023 \"", 5, std::nullopt, nullptr},
{"0x14 in string", "\" \024 \"", 5, std::nullopt, nullptr},
{"0x15 in string", "\" \025 \"", 5, std::nullopt, nullptr},
{"0x16 in string", "\" \026 \"", 5, std::nullopt, nullptr},
{"0x17 in string", "\" \027 \"", 5, std::nullopt, nullptr},
{"0x18 in string", "\" \030 \"", 5, std::nullopt, nullptr},
{"0x19 in string", "\" \031 \"", 5, std::nullopt, nullptr},
{"0x1a in string", "\" \032 \"", 5, std::nullopt, nullptr},
{"0x1b in string", "\" \033 \"", 5, std::nullopt, nullptr},
{"0x1c in string", "\" \034 \"", 5, std::nullopt, nullptr},
{"0x1d in string", "\" \035 \"", 5, std::nullopt, nullptr},
{"0x1e in string", "\" \036 \"", 5, std::nullopt, nullptr},
{"0x1f in string", "\" \037 \"", 5, std::nullopt, nullptr},
{"0x20 in string", "\" \"", 5, {{Item(" "), {}}}, nullptr},
{"0x21 in string", "\" ! \"", 5, {{Item(" ! "), {}}}, nullptr},
{"0x22 in string", "\" \" \"", 5, std::nullopt, nullptr},
{"0x23 in string", "\" # \"", 5, {{Item(" # "), {}}}, nullptr},
{"0x24 in string", "\" $ \"", 5, {{Item(" $ "), {}}}, nullptr},
{"0x25 in string", "\" % \"", 5, {{Item(" % "), {}}}, nullptr},
{"0x26 in string", "\" & \"", 5, {{Item(" & "), {}}}, nullptr},
{"0x27 in string", "\" ' \"", 5, {{Item(" ' "), {}}}, nullptr},
{"0x28 in string", "\" ( \"", 5, {{Item(" ( "), {}}}, nullptr},
{"0x29 in string", "\" ) \"", 5, {{Item(" ) "), {}}}, nullptr},
{"0x2a in string", "\" * \"", 5, {{Item(" * "), {}}}, nullptr},
{"0x2b in string", "\" + \"", 5, {{Item(" + "), {}}}, nullptr},
{"0x2c in string", "\" , \"", 5, {{Item(" , "), {}}}, nullptr},
{"0x2d in string", "\" - \"", 5, {{Item(" - "), {}}}, nullptr},
{"0x2e in string", "\" . \"", 5, {{Item(" . "), {}}}, nullptr},
{"0x2f in string", "\" / \"", 5, {{Item(" / "), {}}}, nullptr},
{"0x30 in string", "\" 0 \"", 5, {{Item(" 0 "), {}}}, nullptr},
{"0x31 in string", "\" 1 \"", 5, {{Item(" 1 "), {}}}, nullptr},
{"0x32 in string", "\" 2 \"", 5, {{Item(" 2 "), {}}}, nullptr},
{"0x33 in string", "\" 3 \"", 5, {{Item(" 3 "), {}}}, nullptr},
{"0x34 in string", "\" 4 \"", 5, {{Item(" 4 "), {}}}, nullptr},
{"0x35 in string", "\" 5 \"", 5, {{Item(" 5 "), {}}}, nullptr},
{"0x36 in string", "\" 6 \"", 5, {{Item(" 6 "), {}}}, nullptr},
{"0x37 in string", "\" 7 \"", 5, {{Item(" 7 "), {}}}, nullptr},
{"0x38 in string", "\" 8 \"", 5, {{Item(" 8 "), {}}}, nullptr},
{"0x39 in string", "\" 9 \"", 5, {{Item(" 9 "), {}}}, nullptr},
{"0x3a in string", "\" : \"", 5, {{Item(" : "), {}}}, nullptr},
{"0x3b in string", "\" ; \"", 5, {{Item(" ; "), {}}}, nullptr},
{"0x3c in string", "\" < \"", 5, {{Item(" < "), {}}}, nullptr},
{"0x3d in string", "\" = \"", 5, {{Item(" = "), {}}}, nullptr},
{"0x3e in string", "\" > \"", 5, {{Item(" > "), {}}}, nullptr},
{"0x3f in string", "\" ? \"", 5, {{Item(" ? "), {}}}, nullptr},
{"0x40 in string", "\" @ \"", 5, {{Item(" @ "), {}}}, nullptr},
{"0x41 in string", "\" A \"", 5, {{Item(" A "), {}}}, nullptr},
{"0x42 in string", "\" B \"", 5, {{Item(" B "), {}}}, nullptr},
{"0x43 in string", "\" C \"", 5, {{Item(" C "), {}}}, nullptr},
{"0x44 in string", "\" D \"", 5, {{Item(" D "), {}}}, nullptr},
{"0x45 in string", "\" E \"", 5, {{Item(" E "), {}}}, nullptr},
{"0x46 in string", "\" F \"", 5, {{Item(" F "), {}}}, nullptr},
{"0x47 in string", "\" G \"", 5, {{Item(" G "), {}}}, nullptr},
{"0x48 in string", "\" H \"", 5, {{Item(" H "), {}}}, nullptr},
{"0x49 in string", "\" I \"", 5, {{Item(" I "), {}}}, nullptr},
{"0x4a in string", "\" J \"", 5, {{Item(" J "), {}}}, nullptr},
{"0x4b in string", "\" K \"", 5, {{Item(" K "), {}}}, nullptr},
{"0x4c in string", "\" L \"", 5, {{Item(" L "), {}}}, nullptr},
{"0x4d in string", "\" M \"", 5, {{Item(" M "), {}}}, nullptr},
{"0x4e in string", "\" N \"", 5, {{Item(" N "), {}}}, nullptr},
{"0x4f in string", "\" O \"", 5, {{Item(" O "), {}}}, nullptr},
{"0x50 in string", "\" P \"", 5, {{Item(" P "), {}}}, nullptr},
{"0x51 in string", "\" Q \"", 5, {{Item(" Q "), {}}}, nullptr},
{"0x52 in string", "\" R \"", 5, {{Item(" R "), {}}}, nullptr},
{"0x53 in string", "\" S \"", 5, {{Item(" S "), {}}}, nullptr},
{"0x54 in string", "\" T \"", 5, {{Item(" T "), {}}}, nullptr},
{"0x55 in string", "\" U \"", 5, {{Item(" U "), {}}}, nullptr},
{"0x56 in string", "\" V \"", 5, {{Item(" V "), {}}}, nullptr},
{"0x57 in string", "\" W \"", 5, {{Item(" W "), {}}}, nullptr},
{"0x58 in string", "\" X \"", 5, {{Item(" X "), {}}}, nullptr},
{"0x59 in string", "\" Y \"", 5, {{Item(" Y "), {}}}, nullptr},
{"0x5a in string", "\" Z \"", 5, {{Item(" Z "), {}}}, nullptr},
{"0x5b in string", "\" [ \"", 5, {{Item(" [ "), {}}}, nullptr},
{"0x5c in string", "\" \\ \"", 5, std::nullopt, nullptr},
{"0x5d in string", "\" ] \"", 5, {{Item(" ] "), {}}}, nullptr},
{"0x5e in string", "\" ^ \"", 5, {{Item(" ^ "), {}}}, nullptr},
{"0x5f in string", "\" _ \"", 5, {{Item(" _ "), {}}}, nullptr},
{"0x60 in string", "\" ` \"", 5, {{Item(" ` "), {}}}, nullptr},
{"0x61 in string", "\" a \"", 5, {{Item(" a "), {}}}, nullptr},
{"0x62 in string", "\" b \"", 5, {{Item(" b "), {}}}, nullptr},
{"0x63 in string", "\" c \"", 5, {{Item(" c "), {}}}, nullptr},
{"0x64 in string", "\" d \"", 5, {{Item(" d "), {}}}, nullptr},
{"0x65 in string", "\" e \"", 5, {{Item(" e "), {}}}, nullptr},
{"0x66 in string", "\" f \"", 5, {{Item(" f "), {}}}, nullptr},
{"0x67 in string", "\" g \"", 5, {{Item(" g "), {}}}, nullptr},
{"0x68 in string", "\" h \"", 5, {{Item(" h "), {}}}, nullptr},
{"0x69 in string", "\" i \"", 5, {{Item(" i "), {}}}, nullptr},
{"0x6a in string", "\" j \"", 5, {{Item(" j "), {}}}, nullptr},
{"0x6b in string", "\" k \"", 5, {{Item(" k "), {}}}, nullptr},
{"0x6c in string", "\" l \"", 5, {{Item(" l "), {}}}, nullptr},
{"0x6d in string", "\" m \"", 5, {{Item(" m "), {}}}, nullptr},
{"0x6e in string", "\" n \"", 5, {{Item(" n "), {}}}, nullptr},
{"0x6f in string", "\" o \"", 5, {{Item(" o "), {}}}, nullptr},
{"0x70 in string", "\" p \"", 5, {{Item(" p "), {}}}, nullptr},
{"0x71 in string", "\" q \"", 5, {{Item(" q "), {}}}, nullptr},
{"0x72 in string", "\" r \"", 5, {{Item(" r "), {}}}, nullptr},
{"0x73 in string", "\" s \"", 5, {{Item(" s "), {}}}, nullptr},
{"0x74 in string", "\" t \"", 5, {{Item(" t "), {}}}, nullptr},
{"0x75 in string", "\" u \"", 5, {{Item(" u "), {}}}, nullptr},
{"0x76 in string", "\" v \"", 5, {{Item(" v "), {}}}, nullptr},
{"0x77 in string", "\" w \"", 5, {{Item(" w "), {}}}, nullptr},
{"0x78 in string", "\" x \"", 5, {{Item(" x "), {}}}, nullptr},
{"0x79 in string", "\" y \"", 5, {{Item(" y "), {}}}, nullptr},
{"0x7a in string", "\" z \"", 5, {{Item(" z "), {}}}, nullptr},
{"0x7b in string", "\" { \"", 5, {{Item(" { "), {}}}, nullptr},
{"0x7c in string", "\" | \"", 5, {{Item(" | "), {}}}, nullptr},
{"0x7d in string", "\" } \"", 5, {{Item(" } "), {}}}, nullptr},
{"0x7e in string", "\" ~ \"", 5, {{Item(" ~ "), {}}}, nullptr},
{"0x7f in string", "\" \177 \"", 5, std::nullopt, nullptr},
{"Escaped 0x00 in string", "\"\\\000\"", 4, std::nullopt, nullptr},
{"Escaped 0x01 in string", "\"\\\001\"", 4, std::nullopt, nullptr},
{"Escaped 0x02 in string", "\"\\\002\"", 4, std::nullopt, nullptr},
{"Escaped 0x03 in string", "\"\\\003\"", 4, std::nullopt, nullptr},
{"Escaped 0x04 in string", "\"\\\004\"", 4, std::nullopt, nullptr},
{"Escaped 0x05 in string", "\"\\\005\"", 4, std::nullopt, nullptr},
{"Escaped 0x06 in string", "\"\\\006\"", 4, std::nullopt, nullptr},
{"Escaped 0x07 in string", "\"\\\007\"", 4, std::nullopt, nullptr},
{"Escaped 0x08 in string", "\"\\\010\"", 4, std::nullopt, nullptr},
{"Escaped 0x09 in string", "\"\\\t\"", 4, std::nullopt, nullptr},
{"Escaped 0x0a in string", "\"\\\n\"", 4, std::nullopt, nullptr},
{"Escaped 0x0b in string", "\"\\\013\"", 4, std::nullopt, nullptr},
{"Escaped 0x0c in string", "\"\\\014\"", 4, std::nullopt, nullptr},
{"Escaped 0x0d in string", "\"\\\r\"", 4, std::nullopt, nullptr},
{"Escaped 0x0e in string", "\"\\\016\"", 4, std::nullopt, nullptr},
{"Escaped 0x0f in string", "\"\\\017\"", 4, std::nullopt, nullptr},
{"Escaped 0x10 in string", "\"\\\020\"", 4, std::nullopt, nullptr},
{"Escaped 0x11 in string", "\"\\\021\"", 4, std::nullopt, nullptr},
{"Escaped 0x12 in string", "\"\\\022\"", 4, std::nullopt, nullptr},
{"Escaped 0x13 in string", "\"\\\023\"", 4, std::nullopt, nullptr},
{"Escaped 0x14 in string", "\"\\\024\"", 4, std::nullopt, nullptr},
{"Escaped 0x15 in string", "\"\\\025\"", 4, std::nullopt, nullptr},
{"Escaped 0x16 in string", "\"\\\026\"", 4, std::nullopt, nullptr},
{"Escaped 0x17 in string", "\"\\\027\"", 4, std::nullopt, nullptr},
{"Escaped 0x18 in string", "\"\\\030\"", 4, std::nullopt, nullptr},
{"Escaped 0x19 in string", "\"\\\031\"", 4, std::nullopt, nullptr},
{"Escaped 0x1a in string", "\"\\\032\"", 4, std::nullopt, nullptr},
{"Escaped 0x1b in string", "\"\\\033\"", 4, std::nullopt, nullptr},
{"Escaped 0x1c in string", "\"\\\034\"", 4, std::nullopt, nullptr},
{"Escaped 0x1d in string", "\"\\\035\"", 4, std::nullopt, nullptr},
{"Escaped 0x1e in string", "\"\\\036\"", 4, std::nullopt, nullptr},
{"Escaped 0x1f in string", "\"\\\037\"", 4, std::nullopt, nullptr},
{"Escaped 0x20 in string", "\"\\ \"", 4, std::nullopt, nullptr},
{"Escaped 0x21 in string", "\"\\!\"", 4, std::nullopt, nullptr},
{"Escaped 0x22 in string", "\"\\\"\"", 4, {{Item("\""), {}}}, nullptr},
{"Escaped 0x23 in string", "\"\\#\"", 4, std::nullopt, nullptr},
{"Escaped 0x24 in string", "\"\\$\"", 4, std::nullopt, nullptr},
{"Escaped 0x25 in string", "\"\\%\"", 4, std::nullopt, nullptr},
{"Escaped 0x26 in string", "\"\\&\"", 4, std::nullopt, nullptr},
{"Escaped 0x27 in string", "\"\\'\"", 4, std::nullopt, nullptr},
{"Escaped 0x28 in string", "\"\\(\"", 4, std::nullopt, nullptr},
{"Escaped 0x29 in string", "\"\\)\"", 4, std::nullopt, nullptr},
{"Escaped 0x2a in string", "\"\\*\"", 4, std::nullopt, nullptr},
{"Escaped 0x2b in string", "\"\\+\"", 4, std::nullopt, nullptr},
{"Escaped 0x2c in string", "\"\\,\"", 4, std::nullopt, nullptr},
{"Escaped 0x2d in string", "\"\\-\"", 4, std::nullopt, nullptr},
{"Escaped 0x2e in string", "\"\\.\"", 4, std::nullopt, nullptr},
{"Escaped 0x2f in string", "\"\\/\"", 4, std::nullopt, nullptr},
{"Escaped 0x30 in string", "\"\\0\"", 4, std::nullopt, nullptr},
{"Escaped 0x31 in string", "\"\\1\"", 4, std::nullopt, nullptr},
{"Escaped 0x32 in string", "\"\\2\"", 4, std::nullopt, nullptr},
{"Escaped 0x33 in string", "\"\\3\"", 4, std::nullopt, nullptr},
{"Escaped 0x34 in string", "\"\\4\"", 4, std::nullopt, nullptr},
{"Escaped 0x35 in string", "\"\\5\"", 4, std::nullopt, nullptr},
{"Escaped 0x36 in string", "\"\\6\"", 4, std::nullopt, nullptr},
{"Escaped 0x37 in string", "\"\\7\"", 4, std::nullopt, nullptr},
{"Escaped 0x38 in string", "\"\\8\"", 4, std::nullopt, nullptr},
{"Escaped 0x39 in string", "\"\\9\"", 4, std::nullopt, nullptr},
{"Escaped 0x3a in string", "\"\\:\"", 4, std::nullopt, nullptr},
{"Escaped 0x3b in string", "\"\\;\"", 4, std::nullopt, nullptr},
{"Escaped 0x3c in string", "\"\\<\"", 4, std::nullopt, nullptr},
{"Escaped 0x3d in string", "\"\\=\"", 4, std::nullopt, nullptr},
{"Escaped 0x3e in string", "\"\\>\"", 4, std::nullopt, nullptr},
{"Escaped 0x3f in string", "\"\\?\"", 4, std::nullopt, nullptr},
{"Escaped 0x40 in string", "\"\\@\"", 4, std::nullopt, nullptr},
{"Escaped 0x41 in string", "\"\\A\"", 4, std::nullopt, nullptr},
{"Escaped 0x42 in string", "\"\\B\"", 4, std::nullopt, nullptr},
{"Escaped 0x43 in string", "\"\\C\"", 4, std::nullopt, nullptr},
{"Escaped 0x44 in string", "\"\\D\"", 4, std::nullopt, nullptr},
{"Escaped 0x45 in string", "\"\\E\"", 4, std::nullopt, nullptr},
{"Escaped 0x46 in string", "\"\\F\"", 4, std::nullopt, nullptr},
{"Escaped 0x47 in string", "\"\\G\"", 4, std::nullopt, nullptr},
{"Escaped 0x48 in string", "\"\\H\"", 4, std::nullopt, nullptr},
{"Escaped 0x49 in string", "\"\\I\"", 4, std::nullopt, nullptr},
{"Escaped 0x4a in string", "\"\\J\"", 4, std::nullopt, nullptr},
{"Escaped 0x4b in string", "\"\\K\"", 4, std::nullopt, nullptr},
{"Escaped 0x4c in string", "\"\\L\"", 4, std::nullopt, nullptr},
{"Escaped 0x4d in string", "\"\\M\"", 4, std::nullopt, nullptr},
{"Escaped 0x4e in string", "\"\\N\"", 4, std::nullopt, nullptr},
{"Escaped 0x4f in string", "\"\\O\"", 4, std::nullopt, nullptr},
{"Escaped 0x50 in string", "\"\\P\"", 4, std::nullopt, nullptr},
{"Escaped 0x51 in string", "\"\\Q\"", 4, std::nullopt, nullptr},
{"Escaped 0x52 in string", "\"\\R\"", 4, std::nullopt, nullptr},
{"Escaped 0x53 in string", "\"\\S\"", 4, std::nullopt, nullptr},
{"Escaped 0x54 in string", "\"\\T\"", 4, std::nullopt, nullptr},
{"Escaped 0x55 in string", "\"\\U\"", 4, std::nullopt, nullptr},
{"Escaped 0x56 in string", "\"\\V\"", 4, std::nullopt, nullptr},
{"Escaped 0x57 in string", "\"\\W\"", 4, std::nullopt, nullptr},
{"Escaped 0x58 in string", "\"\\X\"", 4, std::nullopt, nullptr},
{"Escaped 0x59 in string", "\"\\Y\"", 4, std::nullopt, nullptr},
{"Escaped 0x5a in string", "\"\\Z\"", 4, std::nullopt, nullptr},
{"Escaped 0x5b in string", "\"\\[\"", 4, std::nullopt, nullptr},
{"Escaped 0x5c in string", "\"\\\\\"", 4, {{Item("\\"), {}}}, nullptr},
{"Escaped 0x5d in string", "\"\\]\"", 4, std::nullopt, nullptr},
{"Escaped 0x5e in string", "\"\\^\"", 4, std::nullopt, nullptr},
{"Escaped 0x5f in string", "\"\\_\"", 4, std::nullopt, nullptr},
{"Escaped 0x60 in string", "\"\\`\"", 4, std::nullopt, nullptr},
{"Escaped 0x61 in string", "\"\\a\"", 4, std::nullopt, nullptr},
{"Escaped 0x62 in string", "\"\\b\"", 4, std::nullopt, nullptr},
{"Escaped 0x63 in string", "\"\\c\"", 4, std::nullopt, nullptr},
{"Escaped 0x64 in string", "\"\\d\"", 4, std::nullopt, nullptr},
{"Escaped 0x65 in string", "\"\\e\"", 4, std::nullopt, nullptr},
{"Escaped 0x66 in string", "\"\\f\"", 4, std::nullopt, nullptr},
{"Escaped 0x67 in string", "\"\\g\"", 4, std::nullopt, nullptr},
{"Escaped 0x68 in string", "\"\\h\"", 4, std::nullopt, nullptr},
{"Escaped 0x69 in string", "\"\\i\"", 4, std::nullopt, nullptr},
{"Escaped 0x6a in string", "\"\\j\"", 4, std::nullopt, nullptr},
{"Escaped 0x6b in string", "\"\\k\"", 4, std::nullopt, nullptr},
{"Escaped 0x6c in string", "\"\\l\"", 4, std::nullopt, nullptr},
{"Escaped 0x6d in string", "\"\\m\"", 4, std::nullopt, nullptr},
{"Escaped 0x6e in string", "\"\\n\"", 4, std::nullopt, nullptr},
{"Escaped 0x6f in string", "\"\\o\"", 4, std::nullopt, nullptr},
{"Escaped 0x70 in string", "\"\\p\"", 4, std::nullopt, nullptr},
{"Escaped 0x71 in string", "\"\\q\"", 4, std::nullopt, nullptr},
{"Escaped 0x72 in string", "\"\\r\"", 4, std::nullopt, nullptr},
{"Escaped 0x73 in string", "\"\\s\"", 4, std::nullopt, nullptr},
{"Escaped 0x74 in string", "\"\\t\"", 4, std::nullopt, nullptr},
{"Escaped 0x75 in string", "\"\\u\"", 4, std::nullopt, nullptr},
{"Escaped 0x76 in string", "\"\\v\"", 4, std::nullopt, nullptr},
{"Escaped 0x77 in string", "\"\\w\"", 4, std::nullopt, nullptr},
{"Escaped 0x78 in string", "\"\\x\"", 4, std::nullopt, nullptr},
{"Escaped 0x79 in string", "\"\\y\"", 4, std::nullopt, nullptr},
{"Escaped 0x7a in string", "\"\\z\"", 4, std::nullopt, nullptr},
{"Escaped 0x7b in string", "\"\\{\"", 4, std::nullopt, nullptr},
{"Escaped 0x7c in string", "\"\\|\"", 4, std::nullopt, nullptr},
{"Escaped 0x7d in string", "\"\\}\"", 4, std::nullopt, nullptr},
{"Escaped 0x7e in string", "\"\\~\"", 4, std::nullopt, nullptr},
{"Escaped 0x7f in string", "\"\\\177\"", 4, std::nullopt, nullptr},
// string.json
{"basic string", "\"foo bar\"", 9, {{Item("foo bar"), {}}}, nullptr},
{"empty string", "\"\"", 2, {{Item(""), {}}}, nullptr},
{"long string",
"\"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo \"",
262,
{{Item("foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo "),
{}}},
nullptr},
{"whitespace string", "\" \"", 5, {{Item(" "), {}}}, nullptr},
{"non-ascii string", "\"f\374\374\"", 5, std::nullopt, nullptr},
{"tab in string", "\"\t\"", 3, std::nullopt, nullptr},
{"newline in string", "\" \n \"", 5, std::nullopt, nullptr},
{"single quoted string", "'foo'", 5, std::nullopt, nullptr},
{"unbalanced string", "\"foo", 4, std::nullopt, nullptr},
{"string quoting",
"\"foo \\\"bar\\\" \\\\ baz\"",
20,
{{Item("foo \"bar\" \\ baz"), {}}},
nullptr},
{"bad string quoting", "\"foo \\,\"", 8, std::nullopt, nullptr},
{"ending string quote", "\"foo \\\"", 7, std::nullopt, nullptr},
{"abruptly ending string quote", "\"foo \\", 6, std::nullopt, nullptr},
{"two lines string",
"\"foo, bar\"",
10,
{{Item("foo, bar"), {}}},
"\"foo, bar\""},
// token-generated.json
{"0x00 in token", "a\000a", 3, std::nullopt, nullptr},
{"0x01 in token", "a\001a", 3, std::nullopt, nullptr},
{"0x02 in token", "a\002a", 3, std::nullopt, nullptr},
{"0x03 in token", "a\003a", 3, std::nullopt, nullptr},
{"0x04 in token", "a\004a", 3, std::nullopt, nullptr},
{"0x05 in token", "a\005a", 3, std::nullopt, nullptr},
{"0x06 in token", "a\006a", 3, std::nullopt, nullptr},
{"0x07 in token", "a\007a", 3, std::nullopt, nullptr},
{"0x08 in token", "a\010a", 3, std::nullopt, nullptr},
{"0x09 in token", "a\ta", 3, std::nullopt, nullptr},
{"0x0a in token", "a\na", 3, std::nullopt, nullptr},
{"0x0b in token", "a\013a", 3, std::nullopt, nullptr},
{"0x0c in token", "a\014a", 3, std::nullopt, nullptr},
{"0x0d in token", "a\ra", 3, std::nullopt, nullptr},
{"0x0e in token", "a\016a", 3, std::nullopt, nullptr},
{"0x0f in token", "a\017a", 3, std::nullopt, nullptr},
{"0x10 in token", "a\020a", 3, std::nullopt, nullptr},
{"0x11 in token", "a\021a", 3, std::nullopt, nullptr},
{"0x12 in token", "a\022a", 3, std::nullopt, nullptr},
{"0x13 in token", "a\023a", 3, std::nullopt, nullptr},
{"0x14 in token", "a\024a", 3, std::nullopt, nullptr},
{"0x15 in token", "a\025a", 3, std::nullopt, nullptr},
{"0x16 in token", "a\026a", 3, std::nullopt, nullptr},
{"0x17 in token", "a\027a", 3, std::nullopt, nullptr},
{"0x18 in token", "a\030a", 3, std::nullopt, nullptr},
{"0x19 in token", "a\031a", 3, std::nullopt, nullptr},
{"0x1a in token", "a\032a", 3, std::nullopt, nullptr},
{"0x1b in token", "a\033a", 3, std::nullopt, nullptr},
{"0x1c in token", "a\034a", 3, std::nullopt, nullptr},
{"0x1d in token", "a\035a", 3, std::nullopt, nullptr},
{"0x1e in token", "a\036a", 3, std::nullopt, nullptr},
{"0x1f in token", "a\037a", 3, std::nullopt, nullptr},
{"0x20 in token", "a a", 3, std::nullopt, nullptr},
{"0x21 in token", "a!a", 3, {{Item("a!a", Item::kTokenType), {}}}, nullptr},
{"0x22 in token", "a\"a", 3, std::nullopt, nullptr},
{"0x23 in token", "a#a", 3, {{Item("a#a", Item::kTokenType), {}}}, nullptr},
{"0x24 in token", "a$a", 3, {{Item("a$a", Item::kTokenType), {}}}, nullptr},
{"0x25 in token", "a%a", 3, {{Item("a%a", Item::kTokenType), {}}}, nullptr},
{"0x26 in token", "a&a", 3, {{Item("a&a", Item::kTokenType), {}}}, nullptr},
{"0x27 in token", "a'a", 3, {{Item("a'a", Item::kTokenType), {}}}, nullptr},
{"0x28 in token", "a(a", 3, std::nullopt, nullptr},
{"0x29 in token", "a)a", 3, std::nullopt, nullptr},
{"0x2a in token", "a*a", 3, {{Item("a*a", Item::kTokenType), {}}}, nullptr},
{"0x2b in token", "a+a", 3, {{Item("a+a", Item::kTokenType), {}}}, nullptr},
{"0x2c in token", "a,a", 3, std::nullopt, nullptr},
{"0x2d in token", "a-a", 3, {{Item("a-a", Item::kTokenType), {}}}, nullptr},
{"0x2e in token", "a.a", 3, {{Item("a.a", Item::kTokenType), {}}}, nullptr},
{"0x2f in token", "a/a", 3, {{Item("a/a", Item::kTokenType), {}}}, nullptr},
{"0x30 in token", "a0a", 3, {{Item("a0a", Item::kTokenType), {}}}, nullptr},
{"0x31 in token", "a1a", 3, {{Item("a1a", Item::kTokenType), {}}}, nullptr},
{"0x32 in token", "a2a", 3, {{Item("a2a", Item::kTokenType), {}}}, nullptr},
{"0x33 in token", "a3a", 3, {{Item("a3a", Item::kTokenType), {}}}, nullptr},
{"0x34 in token", "a4a", 3, {{Item("a4a", Item::kTokenType), {}}}, nullptr},
{"0x35 in token", "a5a", 3, {{Item("a5a", Item::kTokenType), {}}}, nullptr},
{"0x36 in token", "a6a", 3, {{Item("a6a", Item::kTokenType), {}}}, nullptr},
{"0x37 in token", "a7a", 3, {{Item("a7a", Item::kTokenType), {}}}, nullptr},
{"0x38 in token", "a8a", 3, {{Item("a8a", Item::kTokenType), {}}}, nullptr},
{"0x39 in token", "a9a", 3, {{Item("a9a", Item::kTokenType), {}}}, nullptr},
{"0x3a in token", "a:a", 3, {{Item("a:a", Item::kTokenType), {}}}, nullptr},
{"0x3b in token",
"a;a",
3,
{{Item("a", Item::kTokenType), {BooleanParam("a", true)}}},
nullptr},
{"0x3c in token", "a<a", 3, std::nullopt, nullptr},
{"0x3d in token", "a=a", 3, std::nullopt, nullptr},
{"0x3e in token", "a>a", 3, std::nullopt, nullptr},
{"0x3f in token", "a?a", 3, std::nullopt, nullptr},
{"0x40 in token", "a@a", 3, std::nullopt, nullptr},
{"0x41 in token", "aAa", 3, {{Item("aAa", Item::kTokenType), {}}}, nullptr},
{"0x42 in token", "aBa", 3, {{Item("aBa", Item::kTokenType), {}}}, nullptr},
{"0x43 in token", "aCa", 3, {{Item("aCa", Item::kTokenType), {}}}, nullptr},
{"0x44 in token", "aDa", 3, {{Item("aDa", Item::kTokenType), {}}}, nullptr},
{"0x45 in token", "aEa", 3, {{Item("aEa", Item::kTokenType), {}}}, nullptr},
{"0x46 in token", "aFa", 3, {{Item("aFa", Item::kTokenType), {}}}, nullptr},
{"0x47 in token", "aGa", 3, {{Item("aGa", Item::kTokenType), {}}}, nullptr},
{"0x48 in token", "aHa", 3, {{Item("aHa", Item::kTokenType), {}}}, nullptr},
{"0x49 in token", "aIa", 3, {{Item("aIa", Item::kTokenType), {}}}, nullptr},
{"0x4a in token", "aJa", 3, {{Item("aJa", Item::kTokenType), {}}}, nullptr},
{"0x4b in token", "aKa", 3, {{Item("aKa", Item::kTokenType), {}}}, nullptr},
{"0x4c in token", "aLa", 3, {{Item("aLa", Item::kTokenType), {}}}, nullptr},
{"0x4d in token", "aMa", 3, {{Item("aMa", Item::kTokenType), {}}}, nullptr},
{"0x4e in token", "aNa", 3, {{Item("aNa", Item::kTokenType), {}}}, nullptr},
{"0x4f in token", "aOa", 3, {{Item("aOa", Item::kTokenType), {}}}, nullptr},
{"0x50 in token", "aPa", 3, {{Item("aPa", Item::kTokenType), {}}}, nullptr},
{"0x51 in token", "aQa", 3, {{Item("aQa", Item::kTokenType), {}}}, nullptr},
{"0x52 in token", "aRa", 3, {{Item("aRa", Item::kTokenType), {}}}, nullptr},
{"0x53 in token", "aSa", 3, {{Item("aSa", Item::kTokenType), {}}}, nullptr},
{"0x54 in token", "aTa", 3, {{Item("aTa", Item::kTokenType), {}}}, nullptr},
{"0x55 in token", "aUa", 3, {{Item("aUa", Item::kTokenType), {}}}, nullptr},
{"0x56 in token", "aVa", 3, {{Item("aVa", Item::kTokenType), {}}}, nullptr},
{"0x57 in token", "aWa", 3, {{Item("aWa", Item::kTokenType), {}}}, nullptr},
{"0x58 in token", "aXa", 3, {{Item("aXa", Item::kTokenType), {}}}, nullptr},
{"0x59 in token", "aYa", 3, {{Item("aYa", Item::kTokenType), {}}}, nullptr},
{"0x5a in token", "aZa", 3, {{Item("aZa", Item::kTokenType), {}}}, nullptr},
{"0x5b in token", "a[a", 3, std::nullopt, nullptr},
{"0x5c in token", "a\\a", 3, std::nullopt, nullptr},
{"0x5d in token", "a]a", 3, std::nullopt, nullptr},
{"0x5e in token", "a^a", 3, {{Item("a^a", Item::kTokenType), {}}}, nullptr},
{"0x5f in token", "a_a", 3, {{Item("a_a", Item::kTokenType), {}}}, nullptr},
{"0x60 in token", "a`a", 3, {{Item("a`a", Item::kTokenType), {}}}, nullptr},
{"0x61 in token", "aaa", 3, {{Item("aaa", Item::kTokenType), {}}}, nullptr},
{"0x62 in token", "aba", 3, {{Item("aba", Item::kTokenType), {}}}, nullptr},
{"0x63 in token", "aca", 3, {{Item("aca", Item::kTokenType), {}}}, nullptr},
{"0x64 in token", "ada", 3, {{Item("ada", Item::kTokenType), {}}}, nullptr},
{"0x65 in token", "aea", 3, {{Item("aea", Item::kTokenType), {}}}, nullptr},
{"0x66 in token", "afa", 3, {{Item("afa", Item::kTokenType), {}}}, nullptr},
{"0x67 in token", "aga", 3, {{Item("aga", Item::kTokenType), {}}}, nullptr},
{"0x68 in token", "aha", 3, {{Item("aha", Item::kTokenType), {}}}, nullptr},
{"0x69 in token", "aia", 3, {{Item("aia", Item::kTokenType), {}}}, nullptr},
{"0x6a in token", "aja", 3, {{Item("aja", Item::kTokenType), {}}}, nullptr},
{"0x6b in token", "aka", 3, {{Item("aka", Item::kTokenType), {}}}, nullptr},
{"0x6c in token", "ala", 3, {{Item("ala", Item::kTokenType), {}}}, nullptr},
{"0x6d in token", "ama", 3, {{Item("ama", Item::kTokenType), {}}}, nullptr},
{"0x6e in token", "ana", 3, {{Item("ana", Item::kTokenType), {}}}, nullptr},
{"0x6f in token", "aoa", 3, {{Item("aoa", Item::kTokenType), {}}}, nullptr},
{"0x70 in token", "apa", 3, {{Item("apa", Item::kTokenType), {}}}, nullptr},
{"0x71 in token", "aqa", 3, {{Item("aqa", Item::kTokenType), {}}}, nullptr},
{"0x72 in token", "ara", 3, {{Item("ara", Item::kTokenType), {}}}, nullptr},
{"0x73 in token", "asa", 3, {{Item("asa", Item::kTokenType), {}}}, nullptr},
{"0x74 in token", "ata", 3, {{Item("ata", Item::kTokenType), {}}}, nullptr},
{"0x75 in token", "aua", 3, {{Item("aua", Item::kTokenType), {}}}, nullptr},
{"0x76 in token", "ava", 3, {{Item("ava", Item::kTokenType), {}}}, nullptr},
{"0x77 in token", "awa", 3, {{Item("awa", Item::kTokenType), {}}}, nullptr},
{"0x78 in token", "axa", 3, {{Item("axa", Item::kTokenType), {}}}, nullptr},
{"0x79 in token", "aya", 3, {{Item("aya", Item::kTokenType), {}}}, nullptr},
{"0x7a in token", "aza", 3, {{Item("aza", Item::kTokenType), {}}}, nullptr},
{"0x7b in token", "a{a", 3, std::nullopt, nullptr},
{"0x7c in token", "a|a", 3, {{Item("a|a", Item::kTokenType), {}}}, nullptr},
{"0x7d in token", "a}a", 3, std::nullopt, nullptr},
{"0x7e in token", "a~a", 3, {{Item("a~a", Item::kTokenType), {}}}, nullptr},
{"0x7f in token", "a\177a", 3, std::nullopt, nullptr},
{"0x00 starting a token", "\000a", 2, std::nullopt, nullptr},
{"0x01 starting a token", "\001a", 2, std::nullopt, nullptr},
{"0x02 starting a token", "\002a", 2, std::nullopt, nullptr},
{"0x03 starting a token", "\003a", 2, std::nullopt, nullptr},
{"0x04 starting a token", "\004a", 2, std::nullopt, nullptr},
{"0x05 starting a token", "\005a", 2, std::nullopt, nullptr},
{"0x06 starting a token", "\006a", 2, std::nullopt, nullptr},
{"0x07 starting a token", "\007a", 2, std::nullopt, nullptr},
{"0x08 starting a token", "\010a", 2, std::nullopt, nullptr},
{"0x09 starting a token", "\ta", 2, std::nullopt, nullptr},
{"0x0a starting a token", "\na", 2, std::nullopt, nullptr},
{"0x0b starting a token", "\013a", 2, std::nullopt, nullptr},
{"0x0c starting a token", "\014a", 2, std::nullopt, nullptr},
{"0x0d starting a token", "\ra", 2, std::nullopt, nullptr},
{"0x0e starting a token", "\016a", 2, std::nullopt, nullptr},
{"0x0f starting a token", "\017a", 2, std::nullopt, nullptr},
{"0x10 starting a token", "\020a", 2, std::nullopt, nullptr},
{"0x11 starting a token", "\021a", 2, std::nullopt, nullptr},
{"0x12 starting a token", "\022a", 2, std::nullopt, nullptr},
{"0x13 starting a token", "\023a", 2, std::nullopt, nullptr},
{"0x14 starting a token", "\024a", 2, std::nullopt, nullptr},
{"0x15 starting a token", "\025a", 2, std::nullopt, nullptr},
{"0x16 starting a token", "\026a", 2, std::nullopt, nullptr},
{"0x17 starting a token", "\027a", 2, std::nullopt, nullptr},
{"0x18 starting a token", "\030a", 2, std::nullopt, nullptr},
{"0x19 starting a token", "\031a", 2, std::nullopt, nullptr},
{"0x1a starting a token", "\032a", 2, std::nullopt, nullptr},
{"0x1b starting a token", "\033a", 2, std::nullopt, nullptr},
{"0x1c starting a token", "\034a", 2, std::nullopt, nullptr},
{"0x1d starting a token", "\035a", 2, std::nullopt, nullptr},
{"0x1e starting a token", "\036a", 2, std::nullopt, nullptr},
{"0x1f starting a token", "\037a", 2, std::nullopt, nullptr},
{"0x20 starting a token",
" a",
2,
{{Item("a", Item::kTokenType), {}}},
"a"},
{"0x21 starting a token", "!a", 2, std::nullopt, nullptr},
{"0x22 starting a token", "\"a", 2, std::nullopt, nullptr},
{"0x23 starting a token", "#a", 2, std::nullopt, nullptr},
{"0x24 starting a token", "$a", 2, std::nullopt, nullptr},
{"0x25 starting a token", "%a", 2, std::nullopt, nullptr},
{"0x26 starting a token", "&a", 2, std::nullopt, nullptr},
{"0x27 starting a token", "'a", 2, std::nullopt, nullptr},
{"0x28 starting a token", "(a", 2, std::nullopt, nullptr},
{"0x29 starting a token", ")a", 2, std::nullopt, nullptr},
{"0x2a starting a token",
"*a",
2,
{{Item("*a", Item::kTokenType), {}}},
nullptr},
{"0x2b starting a token", "+a", 2, std::nullopt, nullptr},
{"0x2c starting a token", ",a", 2, std::nullopt, nullptr},
{"0x2d starting a token", "-a", 2, std::nullopt, nullptr},
{"0x2e starting a token", ".a", 2, std::nullopt, nullptr},
{"0x2f starting a token", "/a", 2, std::nullopt, nullptr},
{"0x30 starting a token", "0a", 2, std::nullopt, nullptr},
{"0x31 starting a token", "1a", 2, std::nullopt, nullptr},
{"0x32 starting a token", "2a", 2, std::nullopt, nullptr},
{"0x33 starting a token", "3a", 2, std::nullopt, nullptr},
{"0x34 starting a token", "4a", 2, std::nullopt, nullptr},
{"0x35 starting a token", "5a", 2, std::nullopt, nullptr},
{"0x36 starting a token", "6a", 2, std::nullopt, nullptr},
{"0x37 starting a token", "7a", 2, std::nullopt, nullptr},
{"0x38 starting a token", "8a", 2, std::nullopt, nullptr},
{"0x39 starting a token", "9a", 2, std::nullopt, nullptr},
{"0x3a starting a token", ":a", 2, std::nullopt, nullptr},
{"0x3b starting a token", ";a", 2, std::nullopt, nullptr},
{"0x3c starting a token", "<a", 2, std::nullopt, nullptr},
{"0x3d starting a token", "=a", 2, std::nullopt, nullptr},
{"0x3e starting a token", ">a", 2, std::nullopt, nullptr},
{"0x3f starting a token", "?a", 2, std::nullopt, nullptr},
{"0x40 starting a token", "@a", 2, std::nullopt, nullptr},
{"0x41 starting a token",
"Aa",
2,
{{Item("Aa", Item::kTokenType), {}}},
nullptr},
{"0x42 starting a token",
"Ba",
2,
{{Item("Ba", Item::kTokenType), {}}},
nullptr},
{"0x43 starting a token",
"Ca",
2,
{{Item("Ca", Item::kTokenType), {}}},
nullptr},
{"0x44 starting a token",
"Da",
2,
{{Item("Da", Item::kTokenType), {}}},
nullptr},
{"0x45 starting a token",
"Ea",
2,
{{Item("Ea", Item::kTokenType), {}}},
nullptr},
{"0x46 starting a token",
"Fa",
2,
{{Item("Fa", Item::kTokenType), {}}},
nullptr},
{"0x47 starting a token",
"Ga",
2,
{{Item("Ga", Item::kTokenType), {}}},
nullptr},
{"0x48 starting a token",
"Ha",
2,
{{Item("Ha", Item::kTokenType), {}}},
nullptr},
{"0x49 starting a token",
"Ia",
2,
{{Item("Ia", Item::kTokenType), {}}},
nullptr},
{"0x4a starting a token",
"Ja",
2,
{{Item("Ja", Item::kTokenType), {}}},
nullptr},
{"0x4b starting a token",
"Ka",
2,
{{Item("Ka", Item::kTokenType), {}}},
nullptr},
{"0x4c starting a token",
"La",
2,
{{Item("La", Item::kTokenType), {}}},
nullptr},
{"0x4d starting a token",
"Ma",
2,
{{Item("Ma", Item::kTokenType), {}}},
nullptr},
{"0x4e starting a token",
"Na",
2,
{{Item("Na", Item::kTokenType), {}}},
nullptr},
{"0x4f starting a token",
"Oa",
2,
{{Item("Oa", Item::kTokenType), {}}},
nullptr},
{"0x50 starting a token",
"Pa",
2,
{{Item("Pa", Item::kTokenType), {}}},
nullptr},
{"0x51 starting a token",
"Qa",
2,
{{Item("Qa", Item::kTokenType), {}}},
nullptr},
{"0x52 starting a token",
"Ra",
2,
{{Item("Ra", Item::kTokenType), {}}},
nullptr},
{"0x53 starting a token",
"Sa",
2,
{{Item("Sa", Item::kTokenType), {}}},
nullptr},
{"0x54 starting a token",
"Ta",
2,
{{Item("Ta", Item::kTokenType), {}}},
nullptr},
{"0x55 starting a token",
"Ua",
2,
{{Item("Ua", Item::kTokenType), {}}},
nullptr},
{"0x56 starting a token",
"Va",
2,
{{Item("Va", Item::kTokenType), {}}},
nullptr},
{"0x57 starting a token",
"Wa",
2,
{{Item("Wa", Item::kTokenType), {}}},
nullptr},
{"0x58 starting a token",
"Xa",
2,
{{Item("Xa", Item::kTokenType), {}}},
nullptr},
{"0x59 starting a token",
"Ya",
2,
{{Item("Ya", Item::kTokenType), {}}},
nullptr},
{"0x5a starting a token",
"Za",
2,
{{Item("Za", Item::kTokenType), {}}},
nullptr},
{"0x5b starting a token", "[a", 2, std::nullopt, nullptr},
{"0x5c starting a token", "\\a", 2, std::nullopt, nullptr},
{"0x5d starting a token", "]a", 2, std::nullopt, nullptr},
{"0x5e starting a token", "^a", 2, std::nullopt, nullptr},
{"0x5f starting a token", "_a", 2, std::nullopt, nullptr},
{"0x60 starting a token", "`a", 2, std::nullopt, nullptr},
{"0x61 starting a token",
"aa",
2,
{{Item("aa", Item::kTokenType), {}}},
nullptr},
{"0x62 starting a token",
"ba",
2,
{{Item("ba", Item::kTokenType), {}}},
nullptr},
{"0x63 starting a token",
"ca",
2,
{{Item("ca", Item::kTokenType), {}}},
nullptr},
{"0x64 starting a token",
"da",
2,
{{Item("da", Item::kTokenType), {}}},
nullptr},
{"0x65 starting a token",
"ea",
2,
{{Item("ea", Item::kTokenType), {}}},
nullptr},
{"0x66 starting a token",
"fa",
2,
{{Item("fa", Item::kTokenType), {}}},
nullptr},
{"0x67 starting a token",
"ga",
2,
{{Item("ga", Item::kTokenType), {}}},
nullptr},
{"0x68 starting a token",
"ha",
2,
{{Item("ha", Item::kTokenType), {}}},
nullptr},
{"0x69 starting a token",
"ia",
2,
{{Item("ia", Item::kTokenType), {}}},
nullptr},
{"0x6a starting a token",
"ja",
2,
{{Item("ja", Item::kTokenType), {}}},
nullptr},
{"0x6b starting a token",
"ka",
2,
{{Item("ka", Item::kTokenType), {}}},
nullptr},
{"0x6c starting a token",
"la",
2,
{{Item("la", Item::kTokenType), {}}},
nullptr},
{"0x6d starting a token",
"ma",
2,
{{Item("ma", Item::kTokenType), {}}},
nullptr},
{"0x6e starting a token",
"na",
2,
{{Item("na", Item::kTokenType), {}}},
nullptr},
{"0x6f starting a token",
"oa",
2,
{{Item("oa", Item::kTokenType), {}}},
nullptr},
{"0x70 starting a token",
"pa",
2,
{{Item("pa", Item::kTokenType), {}}},
nullptr},
{"0x71 starting a token",
"qa",
2,
{{Item("qa", Item::kTokenType), {}}},
nullptr},
{"0x72 starting a token",
"ra",
2,
{{Item("ra", Item::kTokenType), {}}},
nullptr},
{"0x73 starting a token",
"sa",
2,
{{Item("sa", Item::kTokenType), {}}},
nullptr},
{"0x74 starting a token",
"ta",
2,
{{Item("ta", Item::kTokenType), {}}},
nullptr},
{"0x75 starting a token",
"ua",
2,
{{Item("ua", Item::kTokenType), {}}},
nullptr},
{"0x76 starting a token",
"va",
2,
{{Item("va", Item::kTokenType), {}}},
nullptr},
{"0x77 starting a token",
"wa",
2,
{{Item("wa", Item::kTokenType), {}}},
nullptr},
{"0x78 starting a token",
"xa",
2,
{{Item("xa", Item::kTokenType), {}}},
nullptr},
{"0x79 starting a token",
"ya",
2,
{{Item("ya", Item::kTokenType), {}}},
nullptr},
{"0x7a starting a token",
"za",
2,
{{Item("za", Item::kTokenType), {}}},
nullptr},
{"0x7b starting a token", "{a", 2, std::nullopt, nullptr},
{"0x7c starting a token", "|a", 2, std::nullopt, nullptr},
{"0x7d starting a token", "}a", 2, std::nullopt, nullptr},
{"0x7e starting a token", "~a", 2, std::nullopt, nullptr},
{"0x7f starting a token", "\177a", 2, std::nullopt, nullptr},
// token.json
{"basic token - item",
"a_b-c.d3:f%00/*",
15,
{{Item("a_b-c.d3:f%00/*", Item::kTokenType), {}}},
nullptr},
{"token with capitals - item",
"fooBar",
6,
{{Item("fooBar", Item::kTokenType), {}}},
nullptr},
{"token starting with capitals - item",
"FooBar",
6,
{{Item("FooBar", Item::kTokenType), {}}},
nullptr},
};
const struct ListTestCase {
const char* name;
const char* raw;
size_t raw_len;
const std::optional<List> expected; // nullopt if parse error is expected.
const char* canonical; // nullptr if parse error is expected, or if canonical
// format is identical to raw.
const char* known_bug = nullptr;
} list_test_cases[] = {
// examples.json
{"Example-StrListHeader",
"\"foo\", \"bar\", \"It was the best of times.\"",
41,
{{{Item("foo"), {}},
{Item("bar"), {}},
{Item("It was the best of times."), {}}}},
nullptr},
{"Example-Hdr (list on one line)",
"foo, bar",
8,
{{{Item("foo", Item::kTokenType), {}},
{Item("bar", Item::kTokenType), {}}}},
nullptr},
{"Example-Hdr (list on two lines)",
"foo, bar",
8,
{{{Item("foo", Item::kTokenType), {}},
{Item("bar", Item::kTokenType), {}}}},
"foo, bar"},
{"Example-StrListListHeader",
"(\"foo\" \"bar\"), (\"baz\"), (\"bat\" \"one\"), ()",
41,
{{{{{Item("foo"), {}}, {Item("bar"), {}}}, {}},
{{{Item("baz"), {}}}, {}},
{{{Item("bat"), {}}, {Item("one"), {}}}, {}},
{std::vector<ParameterizedItem>(), {}}}},
nullptr},
{"Example-ListListParam",
"(\"foo\"; a=1;b=2);lvl=5, (\"bar\" \"baz\");lvl=1",
43,
{{{{{Item("foo"), {Param("a", 1), Param("b", 2)}}}, {Param("lvl", 5)}},
{{{Item("bar"), {}}, {Item("baz"), {}}}, {Param("lvl", 1)}}}},
"(\"foo\";a=1;b=2);lvl=5, (\"bar\" \"baz\");lvl=1"},
{"Example-ParamListHeader",
"abc;a=1;b=2; cde_456, (ghi;jk=4 l);q=\"9\";r=w",
44,
{{{Item("abc", Item::kTokenType),
{Param("a", 1), Param("b", 2), BooleanParam("cde_456", true)}},
{{{Item("ghi", Item::kTokenType), {Param("jk", 4)}},
{Item("l", Item::kTokenType), {}}},
{Param("q", "9"), TokenParam("r", "w")}}}},
"abc;a=1;b=2;cde_456, (ghi;jk=4 l);q=\"9\";r=w"},
// key-generated.json
{"0x00 in parameterised list key", "foo; a\000a=1", 10, std::nullopt,
nullptr},
{"0x01 in parameterised list key", "foo; a\001a=1", 10, std::nullopt,
nullptr},
{"0x02 in parameterised list key", "foo; a\002a=1", 10, std::nullopt,
nullptr},
{"0x03 in parameterised list key", "foo; a\003a=1", 10, std::nullopt,
nullptr},
{"0x04 in parameterised list key", "foo; a\004a=1", 10, std::nullopt,
nullptr},
{"0x05 in parameterised list key", "foo; a\005a=1", 10, std::nullopt,
nullptr},
{"0x06 in parameterised list key", "foo; a\006a=1", 10, std::nullopt,
nullptr},
{"0x07 in parameterised list key", "foo; a\007a=1", 10, std::nullopt,
nullptr},
{"0x08 in parameterised list key", "foo; a\010a=1", 10, std::nullopt,
nullptr},
{"0x09 in parameterised list key", "foo; a\ta=1", 10, std::nullopt,
nullptr},
{"0x0a in parameterised list key", "foo; a\na=1", 10, std::nullopt,
nullptr},
{"0x0b in parameterised list key", "foo; a\013a=1", 10, std::nullopt,
nullptr},
{"0x0c in parameterised list key", "foo; a\014a=1", 10, std::nullopt,
nullptr},
{"0x0d in parameterised list key", "foo; a\ra=1", 10, std::nullopt,
nullptr},
{"0x0e in parameterised list key", "foo; a\016a=1", 10, std::nullopt,
nullptr},
{"0x0f in parameterised list key", "foo; a\017a=1", 10, std::nullopt,
nullptr},
{"0x10 in parameterised list key", "foo; a\020a=1", 10, std::nullopt,
nullptr},
{"0x11 in parameterised list key", "foo; a\021a=1", 10, std::nullopt,
nullptr},
{"0x12 in parameterised list key", "foo; a\022a=1", 10, std::nullopt,
nullptr},
{"0x13 in parameterised list key", "foo; a\023a=1", 10, std::nullopt,
nullptr},
{"0x14 in parameterised list key", "foo; a\024a=1", 10, std::nullopt,
nullptr},
{"0x15 in parameterised list key", "foo; a\025a=1", 10, std::nullopt,
nullptr},
{"0x16 in parameterised list key", "foo; a\026a=1", 10, std::nullopt,
nullptr},
{"0x17 in parameterised list key", "foo; a\027a=1", 10, std::nullopt,
nullptr},
{"0x18 in parameterised list key", "foo; a\030a=1", 10, std::nullopt,
nullptr},
{"0x19 in parameterised list key", "foo; a\031a=1", 10, std::nullopt,
nullptr},
{"0x1a in parameterised list key", "foo; a\032a=1", 10, std::nullopt,
nullptr},
{"0x1b in parameterised list key", "foo; a\033a=1", 10, std::nullopt,
nullptr},
{"0x1c in parameterised list key", "foo; a\034a=1", 10, std::nullopt,
nullptr},
{"0x1d in parameterised list key", "foo; a\035a=1", 10, std::nullopt,
nullptr},
{"0x1e in parameterised list key", "foo; a\036a=1", 10, std::nullopt,
nullptr},
{"0x1f in parameterised list key", "foo; a\037a=1", 10, std::nullopt,
nullptr},
{"0x20 in parameterised list key", "foo; a a=1", 10, std::nullopt, nullptr},
{"0x21 in parameterised list key", "foo; a!a=1", 10, std::nullopt, nullptr},
{"0x22 in parameterised list key", "foo; a\"a=1", 10, std::nullopt,
nullptr},
{"0x23 in parameterised list key", "foo; a#a=1", 10, std::nullopt, nullptr},
{"0x24 in parameterised list key", "foo; a$a=1", 10, std::nullopt, nullptr},
{"0x25 in parameterised list key", "foo; a%a=1", 10, std::nullopt, nullptr},
{"0x26 in parameterised list key", "foo; a&a=1", 10, std::nullopt, nullptr},
{"0x27 in parameterised list key", "foo; a'a=1", 10, std::nullopt, nullptr},
{"0x28 in parameterised list key", "foo; a(a=1", 10, std::nullopt, nullptr},
{"0x29 in parameterised list key", "foo; a)a=1", 10, std::nullopt, nullptr},
{"0x2a in parameterised list key",
"foo; a*a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a*a", 1)}}}},
"foo;a*a=1"},
{"0x2b in parameterised list key", "foo; a+a=1", 10, std::nullopt, nullptr},
{"0x2c in parameterised list key", "foo; a,a=1", 10, std::nullopt, nullptr},
{"0x2d in parameterised list key",
"foo; a-a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a-a", 1)}}}},
"foo;a-a=1"},
{"0x2e in parameterised list key",
"foo; a.a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a.a", 1)}}}},
"foo;a.a=1"},
{"0x2f in parameterised list key", "foo; a/a=1", 10, std::nullopt, nullptr},
{"0x30 in parameterised list key",
"foo; a0a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a0a", 1)}}}},
"foo;a0a=1"},
{"0x31 in parameterised list key",
"foo; a1a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a1a", 1)}}}},
"foo;a1a=1"},
{"0x32 in parameterised list key",
"foo; a2a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a2a", 1)}}}},
"foo;a2a=1"},
{"0x33 in parameterised list key",
"foo; a3a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a3a", 1)}}}},
"foo;a3a=1"},
{"0x34 in parameterised list key",
"foo; a4a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a4a", 1)}}}},
"foo;a4a=1"},
{"0x35 in parameterised list key",
"foo; a5a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a5a", 1)}}}},
"foo;a5a=1"},
{"0x36 in parameterised list key",
"foo; a6a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a6a", 1)}}}},
"foo;a6a=1"},
{"0x37 in parameterised list key",
"foo; a7a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a7a", 1)}}}},
"foo;a7a=1"},
{"0x38 in parameterised list key",
"foo; a8a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a8a", 1)}}}},
"foo;a8a=1"},
{"0x39 in parameterised list key",
"foo; a9a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a9a", 1)}}}},
"foo;a9a=1"},
{"0x3a in parameterised list key", "foo; a:a=1", 10, std::nullopt, nullptr},
{"0x3b in parameterised list key",
"foo; a;a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a", 1)}}}},
"foo;a=1"},
{"0x3c in parameterised list key", "foo; a<a=1", 10, std::nullopt, nullptr},
{"0x3d in parameterised list key", "foo; a=a=1", 10, std::nullopt, nullptr},
{"0x3e in parameterised list key", "foo; a>a=1", 10, std::nullopt, nullptr},
{"0x3f in parameterised list key", "foo; a?a=1", 10, std::nullopt, nullptr},
{"0x40 in parameterised list key", "foo; a@a=1", 10, std::nullopt, nullptr},
{"0x41 in parameterised list key", "foo; aAa=1", 10, std::nullopt, nullptr},
{"0x42 in parameterised list key", "foo; aBa=1", 10, std::nullopt, nullptr},
{"0x43 in parameterised list key", "foo; aCa=1", 10, std::nullopt, nullptr},
{"0x44 in parameterised list key", "foo; aDa=1", 10, std::nullopt, nullptr},
{"0x45 in parameterised list key", "foo; aEa=1", 10, std::nullopt, nullptr},
{"0x46 in parameterised list key", "foo; aFa=1", 10, std::nullopt, nullptr},
{"0x47 in parameterised list key", "foo; aGa=1", 10, std::nullopt, nullptr},
{"0x48 in parameterised list key", "foo; aHa=1", 10, std::nullopt, nullptr},
{"0x49 in parameterised list key", "foo; aIa=1", 10, std::nullopt, nullptr},
{"0x4a in parameterised list key", "foo; aJa=1", 10, std::nullopt, nullptr},
{"0x4b in parameterised list key", "foo; aKa=1", 10, std::nullopt, nullptr},
{"0x4c in parameterised list key", "foo; aLa=1", 10, std::nullopt, nullptr},
{"0x4d in parameterised list key", "foo; aMa=1", 10, std::nullopt, nullptr},
{"0x4e in parameterised list key", "foo; aNa=1", 10, std::nullopt, nullptr},
{"0x4f in parameterised list key", "foo; aOa=1", 10, std::nullopt, nullptr},
{"0x50 in parameterised list key", "foo; aPa=1", 10, std::nullopt, nullptr},
{"0x51 in parameterised list key", "foo; aQa=1", 10, std::nullopt, nullptr},
{"0x52 in parameterised list key", "foo; aRa=1", 10, std::nullopt, nullptr},
{"0x53 in parameterised list key", "foo; aSa=1", 10, std::nullopt, nullptr},
{"0x54 in parameterised list key", "foo; aTa=1", 10, std::nullopt, nullptr},
{"0x55 in parameterised list key", "foo; aUa=1", 10, std::nullopt, nullptr},
{"0x56 in parameterised list key", "foo; aVa=1", 10, std::nullopt, nullptr},
{"0x57 in parameterised list key", "foo; aWa=1", 10, std::nullopt, nullptr},
{"0x58 in parameterised list key", "foo; aXa=1", 10, std::nullopt, nullptr},
{"0x59 in parameterised list key", "foo; aYa=1", 10, std::nullopt, nullptr},
{"0x5a in parameterised list key", "foo; aZa=1", 10, std::nullopt, nullptr},
{"0x5b in parameterised list key", "foo; a[a=1", 10, std::nullopt, nullptr},
{"0x5c in parameterised list key", "foo; a\\a=1", 10, std::nullopt,
nullptr},
{"0x5d in parameterised list key", "foo; a]a=1", 10, std::nullopt, nullptr},
{"0x5e in parameterised list key", "foo; a^a=1", 10, std::nullopt, nullptr},
{"0x5f in parameterised list key",
"foo; a_a=1",
10,
{{{Item("foo", Item::kTokenType), {Param("a_a", 1)}}}},
"foo;a_a=1"},
{"0x60 in parameterised list key", "foo; a`a=1", 10, std::nullopt, nullptr},
{"0x61 in parameterised list key",
"foo; aaa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aaa", 1)}}}},
"foo;aaa=1"},
{"0x62 in parameterised list key",
"foo; aba=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aba", 1)}}}},
"foo;aba=1"},
{"0x63 in parameterised list key",
"foo; aca=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aca", 1)}}}},
"foo;aca=1"},
{"0x64 in parameterised list key",
"foo; ada=1",
10,
{{{Item("foo", Item::kTokenType), {Param("ada", 1)}}}},
"foo;ada=1"},
{"0x65 in parameterised list key",
"foo; aea=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aea", 1)}}}},
"foo;aea=1"},
{"0x66 in parameterised list key",
"foo; afa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("afa", 1)}}}},
"foo;afa=1"},
{"0x67 in parameterised list key",
"foo; aga=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aga", 1)}}}},
"foo;aga=1"},
{"0x68 in parameterised list key",
"foo; aha=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aha", 1)}}}},
"foo;aha=1"},
{"0x69 in parameterised list key",
"foo; aia=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aia", 1)}}}},
"foo;aia=1"},
{"0x6a in parameterised list key",
"foo; aja=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aja", 1)}}}},
"foo;aja=1"},
{"0x6b in parameterised list key",
"foo; aka=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aka", 1)}}}},
"foo;aka=1"},
{"0x6c in parameterised list key",
"foo; ala=1",
10,
{{{Item("foo", Item::kTokenType), {Param("ala", 1)}}}},
"foo;ala=1"},
{"0x6d in parameterised list key",
"foo; ama=1",
10,
{{{Item("foo", Item::kTokenType), {Param("ama", 1)}}}},
"foo;ama=1"},
{"0x6e in parameterised list key",
"foo; ana=1",
10,
{{{Item("foo", Item::kTokenType), {Param("ana", 1)}}}},
"foo;ana=1"},
{"0x6f in parameterised list key",
"foo; aoa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aoa", 1)}}}},
"foo;aoa=1"},
{"0x70 in parameterised list key",
"foo; apa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("apa", 1)}}}},
"foo;apa=1"},
{"0x71 in parameterised list key",
"foo; aqa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aqa", 1)}}}},
"foo;aqa=1"},
{"0x72 in parameterised list key",
"foo; ara=1",
10,
{{{Item("foo", Item::kTokenType), {Param("ara", 1)}}}},
"foo;ara=1"},
{"0x73 in parameterised list key",
"foo; asa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("asa", 1)}}}},
"foo;asa=1"},
{"0x74 in parameterised list key",
"foo; ata=1",
10,
{{{Item("foo", Item::kTokenType), {Param("ata", 1)}}}},
"foo;ata=1"},
{"0x75 in parameterised list key",
"foo; aua=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aua", 1)}}}},
"foo;aua=1"},
{"0x76 in parameterised list key",
"foo; ava=1",
10,
{{{Item("foo", Item::kTokenType), {Param("ava", 1)}}}},
"foo;ava=1"},
{"0x77 in parameterised list key",
"foo; awa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("awa", 1)}}}},
"foo;awa=1"},
{"0x78 in parameterised list key",
"foo; axa=1",
10,
{{{Item("foo", Item::kTokenType), {Param("axa", 1)}}}},
"foo;axa=1"},
{"0x79 in parameterised list key",
"foo; aya=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aya", 1)}}}},
"foo;aya=1"},
{"0x7a in parameterised list key",
"foo; aza=1",
10,
{{{Item("foo", Item::kTokenType), {Param("aza", 1)}}}},
"foo;aza=1"},
{"0x7b in parameterised list key", "foo; a{a=1", 10, std::nullopt, nullptr},
{"0x7c in parameterised list key", "foo; a|a=1", 10, std::nullopt, nullptr},
{"0x7d in parameterised list key", "foo; a}a=1", 10, std::nullopt, nullptr},
{"0x7e in parameterised list key", "foo; a~a=1", 10, std::nullopt, nullptr},
{"0x7f in parameterised list key", "foo; a\177a=1", 10, std::nullopt,
nullptr},
{"0x00 starting a parameterised list key", "foo; \000a=1", 9, std::nullopt,
nullptr},
{"0x01 starting a parameterised list key", "foo; \001a=1", 9, std::nullopt,
nullptr},
{"0x02 starting a parameterised list key", "foo; \002a=1", 9, std::nullopt,
nullptr},
{"0x03 starting a parameterised list key", "foo; \003a=1", 9, std::nullopt,
nullptr},
{"0x04 starting a parameterised list key", "foo; \004a=1", 9, std::nullopt,
nullptr},
{"0x05 starting a parameterised list key", "foo; \005a=1", 9, std::nullopt,
nullptr},
{"0x06 starting a parameterised list key", "foo; \006a=1", 9, std::nullopt,
nullptr},
{"0x07 starting a parameterised list key", "foo; \007a=1", 9, std::nullopt,
nullptr},
{"0x08 starting a parameterised list key", "foo; \010a=1", 9, std::nullopt,
nullptr},
{"0x09 starting a parameterised list key", "foo; \ta=1", 9, std::nullopt,
nullptr},
{"0x0a starting a parameterised list key", "foo; \na=1", 9, std::nullopt,
nullptr},
{"0x0b starting a parameterised list key", "foo; \013a=1", 9, std::nullopt,
nullptr},
{"0x0c starting a parameterised list key", "foo; \014a=1", 9, std::nullopt,
nullptr},
{"0x0d starting a parameterised list key", "foo; \ra=1", 9, std::nullopt,
nullptr},
{"0x0e starting a parameterised list key", "foo; \016a=1", 9, std::nullopt,
nullptr},
{"0x0f starting a parameterised list key", "foo; \017a=1", 9, std::nullopt,
nullptr},
{"0x10 starting a parameterised list key", "foo; \020a=1", 9, std::nullopt,
nullptr},
{"0x11 starting a parameterised list key", "foo; \021a=1", 9, std::nullopt,
nullptr},
{"0x12 starting a parameterised list key", "foo; \022a=1", 9, std::nullopt,
nullptr},
{"0x13 starting a parameterised list key", "foo; \023a=1", 9, std::nullopt,
nullptr},
{"0x14 starting a parameterised list key", "foo; \024a=1", 9, std::nullopt,
nullptr},
{"0x15 starting a parameterised list key", "foo; \025a=1", 9, std::nullopt,
nullptr},
{"0x16 starting a parameterised list key", "foo; \026a=1", 9, std::nullopt,
nullptr},
{"0x17 starting a parameterised list key", "foo; \027a=1", 9, std::nullopt,
nullptr},
{"0x18 starting a parameterised list key", "foo; \030a=1", 9, std::nullopt,
nullptr},
{"0x19 starting a parameterised list key", "foo; \031a=1", 9, std::nullopt,
nullptr},
{"0x1a starting a parameterised list key", "foo; \032a=1", 9, std::nullopt,
nullptr},
{"0x1b starting a parameterised list key", "foo; \033a=1", 9, std::nullopt,
nullptr},
{"0x1c starting a parameterised list key", "foo; \034a=1", 9, std::nullopt,
nullptr},
{"0x1d starting a parameterised list key", "foo; \035a=1", 9, std::nullopt,
nullptr},
{"0x1e starting a parameterised list key", "foo; \036a=1", 9, std::nullopt,
nullptr},
{"0x1f starting a parameterised list key", "foo; \037a=1", 9, std::nullopt,
nullptr},
{"0x20 starting a parameterised list key",
"foo; a=1",
9,
{{{Item("foo", Item::kTokenType), {Param("a", 1)}}}},
"foo;a=1"},
{"0x21 starting a parameterised list key", "foo; !a=1", 9, std::nullopt,
nullptr},
{"0x22 starting a parameterised list key", "foo; \"a=1", 9, std::nullopt,
nullptr},
{"0x23 starting a parameterised list key", "foo; #a=1", 9, std::nullopt,
nullptr},
{"0x24 starting a parameterised list key", "foo; $a=1", 9, std::nullopt,
nullptr},
{"0x25 starting a parameterised list key", "foo; %a=1", 9, std::nullopt,
nullptr},
{"0x26 starting a parameterised list key", "foo; &a=1", 9, std::nullopt,
nullptr},
{"0x27 starting a parameterised list key", "foo; 'a=1", 9, std::nullopt,
nullptr},
{"0x28 starting a parameterised list key", "foo; (a=1", 9, std::nullopt,
nullptr},
{"0x29 starting a parameterised list key", "foo; )a=1", 9, std::nullopt,
nullptr},
{"0x2a starting a parameterised list key",
"foo; *a=1",
9,
{{{Item("foo", Item::kTokenType), {Param("*a", 1)}}}},
"foo;*a=1"},
{"0x2b starting a parameterised list key", "foo; +a=1", 9, std::nullopt,
nullptr},
{"0x2c starting a parameterised list key", "foo; ,a=1", 9, std::nullopt,
nullptr},
{"0x2d starting a parameterised list key", "foo; -a=1", 9, std::nullopt,
nullptr},
{"0x2e starting a parameterised list key", "foo; .a=1", 9, std::nullopt,
nullptr},
{"0x2f starting a parameterised list key", "foo; /a=1", 9, std::nullopt,
nullptr},
{"0x30 starting a parameterised list key", "foo; 0a=1", 9, std::nullopt,
nullptr},
{"0x31 starting a parameterised list key", "foo; 1a=1", 9, std::nullopt,
nullptr},
{"0x32 starting a parameterised list key", "foo; 2a=1", 9, std::nullopt,
nullptr},
{"0x33 starting a parameterised list key", "foo; 3a=1", 9, std::nullopt,
nullptr},
{"0x34 starting a parameterised list key", "foo; 4a=1", 9, std::nullopt,
nullptr},
{"0x35 starting a parameterised list key", "foo; 5a=1", 9, std::nullopt,
nullptr},
{"0x36 starting a parameterised list key", "foo; 6a=1", 9, std::nullopt,
nullptr},
{"0x37 starting a parameterised list key", "foo; 7a=1", 9, std::nullopt,
nullptr},
{"0x38 starting a parameterised list key", "foo; 8a=1", 9, std::nullopt,
nullptr},
{"0x39 starting a parameterised list key", "foo; 9a=1", 9, std::nullopt,
nullptr},
{"0x3a starting a parameterised list key", "foo; :a=1", 9, std::nullopt,
nullptr},
{"0x3b starting a parameterised list key", "foo; ;a=1", 9, std::nullopt,
nullptr},
{"0x3c starting a parameterised list key", "foo; <a=1", 9, std::nullopt,
nullptr},
{"0x3d starting a parameterised list key", "foo; =a=1", 9, std::nullopt,
nullptr},
{"0x3e starting a parameterised list key", "foo; >a=1", 9, std::nullopt,
nullptr},
{"0x3f starting a parameterised list key", "foo; ?a=1", 9, std::nullopt,
nullptr},
{"0x40 starting a parameterised list key", "foo; @a=1", 9, std::nullopt,
nullptr},
{"0x41 starting a parameterised list key", "foo; Aa=1", 9, std::nullopt,
nullptr},
{"0x42 starting a parameterised list key", "foo; Ba=1", 9, std::nullopt,
nullptr},
{"0x43 starting a parameterised list key", "foo; Ca=1", 9, std::nullopt,
nullptr},
{"0x44 starting a parameterised list key", "foo; Da=1", 9, std::nullopt,
nullptr},
{"0x45 starting a parameterised list key", "foo; Ea=1", 9, std::nullopt,
nullptr},
{"0x46 starting a parameterised list key", "foo; Fa=1", 9, std::nullopt,
nullptr},
{"0x47 starting a parameterised list key", "foo; Ga=1", 9, std::nullopt,
nullptr},
{"0x48 starting a parameterised list key", "foo; Ha=1", 9, std::nullopt,
nullptr},
{"0x49 starting a parameterised list key", "foo; Ia=1", 9, std::nullopt,
nullptr},
{"0x4a starting a parameterised list key", "foo; Ja=1", 9, std::nullopt,
nullptr},
{"0x4b starting a parameterised list key", "foo; Ka=1", 9, std::nullopt,
nullptr},
{"0x4c starting a parameterised list key", "foo; La=1", 9, std::nullopt,
nullptr},
{"0x4d starting a parameterised list key", "foo; Ma=1", 9, std::nullopt,
nullptr},
{"0x4e starting a parameterised list key", "foo; Na=1", 9, std::nullopt,
nullptr},
{"0x4f starting a parameterised list key", "foo; Oa=1", 9, std::nullopt,
nullptr},
{"0x50 starting a parameterised list key", "foo; Pa=1", 9, std::nullopt,
nullptr},
{"0x51 starting a parameterised list key", "foo; Qa=1", 9, std::nullopt,
nullptr},
{"0x52 starting a parameterised list key", "foo; Ra=1", 9, std::nullopt,
nullptr},
{"0x53 starting a parameterised list key", "foo; Sa=1", 9, std::nullopt,
nullptr},
{"0x54 starting a parameterised list key", "foo; Ta=1", 9, std::nullopt,
nullptr},
{"0x55 starting a parameterised list key", "foo; Ua=1", 9, std::nullopt,
nullptr},
{"0x56 starting a parameterised list key", "foo; Va=1", 9, std::nullopt,
nullptr},
{"0x57 starting a parameterised list key", "foo; Wa=1", 9, std::nullopt,
nullptr},
{"0x58 starting a parameterised list key", "foo; Xa=1", 9, std::nullopt,
nullptr},
{"0x59 starting a parameterised list key", "foo; Ya=1", 9, std::nullopt,
nullptr},
{"0x5a starting a parameterised list key", "foo; Za=1", 9, std::nullopt,
nullptr},
{"0x5b starting a parameterised list key", "foo; [a=1", 9, std::nullopt,
nullptr},
{"0x5c starting a parameterised list key", "foo; \\a=1", 9, std::nullopt,
nullptr},
{"0x5d starting a parameterised list key", "foo; ]a=1", 9, std::nullopt,
nullptr},
{"0x5e starting a parameterised list key", "foo; ^a=1", 9, std::nullopt,
nullptr},
{"0x5f starting a parameterised list key", "foo; _a=1", 9, std::nullopt,
nullptr},
{"0x60 starting a parameterised list key", "foo; `a=1", 9, std::nullopt,
nullptr},
{"0x61 starting a parameterised list key",
"foo; aa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("aa", 1)}}}},
"foo;aa=1"},
{"0x62 starting a parameterised list key",
"foo; ba=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ba", 1)}}}},
"foo;ba=1"},
{"0x63 starting a parameterised list key",
"foo; ca=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ca", 1)}}}},
"foo;ca=1"},
{"0x64 starting a parameterised list key",
"foo; da=1",
9,
{{{Item("foo", Item::kTokenType), {Param("da", 1)}}}},
"foo;da=1"},
{"0x65 starting a parameterised list key",
"foo; ea=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ea", 1)}}}},
"foo;ea=1"},
{"0x66 starting a parameterised list key",
"foo; fa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("fa", 1)}}}},
"foo;fa=1"},
{"0x67 starting a parameterised list key",
"foo; ga=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ga", 1)}}}},
"foo;ga=1"},
{"0x68 starting a parameterised list key",
"foo; ha=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ha", 1)}}}},
"foo;ha=1"},
{"0x69 starting a parameterised list key",
"foo; ia=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ia", 1)}}}},
"foo;ia=1"},
{"0x6a starting a parameterised list key",
"foo; ja=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ja", 1)}}}},
"foo;ja=1"},
{"0x6b starting a parameterised list key",
"foo; ka=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ka", 1)}}}},
"foo;ka=1"},
{"0x6c starting a parameterised list key",
"foo; la=1",
9,
{{{Item("foo", Item::kTokenType), {Param("la", 1)}}}},
"foo;la=1"},
{"0x6d starting a parameterised list key",
"foo; ma=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ma", 1)}}}},
"foo;ma=1"},
{"0x6e starting a parameterised list key",
"foo; na=1",
9,
{{{Item("foo", Item::kTokenType), {Param("na", 1)}}}},
"foo;na=1"},
{"0x6f starting a parameterised list key",
"foo; oa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("oa", 1)}}}},
"foo;oa=1"},
{"0x70 starting a parameterised list key",
"foo; pa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("pa", 1)}}}},
"foo;pa=1"},
{"0x71 starting a parameterised list key",
"foo; qa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("qa", 1)}}}},
"foo;qa=1"},
{"0x72 starting a parameterised list key",
"foo; ra=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ra", 1)}}}},
"foo;ra=1"},
{"0x73 starting a parameterised list key",
"foo; sa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("sa", 1)}}}},
"foo;sa=1"},
{"0x74 starting a parameterised list key",
"foo; ta=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ta", 1)}}}},
"foo;ta=1"},
{"0x75 starting a parameterised list key",
"foo; ua=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ua", 1)}}}},
"foo;ua=1"},
{"0x76 starting a parameterised list key",
"foo; va=1",
9,
{{{Item("foo", Item::kTokenType), {Param("va", 1)}}}},
"foo;va=1"},
{"0x77 starting a parameterised list key",
"foo; wa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("wa", 1)}}}},
"foo;wa=1"},
{"0x78 starting a parameterised list key",
"foo; xa=1",
9,
{{{Item("foo", Item::kTokenType), {Param("xa", 1)}}}},
"foo;xa=1"},
{"0x79 starting a parameterised list key",
"foo; ya=1",
9,
{{{Item("foo", Item::kTokenType), {Param("ya", 1)}}}},
"foo;ya=1"},
{"0x7a starting a parameterised list key",
"foo; za=1",
9,
{{{Item("foo", Item::kTokenType), {Param("za", 1)}}}},
"foo;za=1"},
{"0x7b starting a parameterised list key", "foo; {a=1", 9, std::nullopt,
nullptr},
{"0x7c starting a parameterised list key", "foo; |a=1", 9, std::nullopt,
nullptr},
{"0x7d starting a parameterised list key", "foo; }a=1", 9, std::nullopt,
nullptr},
{"0x7e starting a parameterised list key", "foo; ~a=1", 9, std::nullopt,
nullptr},
{"0x7f starting a parameterised list key", "foo; \177a=1", 9, std::nullopt,
nullptr},
// large-generated.json
{"large list",
"a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, "
"a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, "
"a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, "
"a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, "
"a58, a59, a60, a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, a71, "
"a72, a73, a74, a75, a76, a77, a78, a79, a80, a81, a82, a83, a84, a85, "
"a86, a87, a88, a89, a90, a91, a92, a93, a94, a95, a96, a97, a98, a99, "
"a100, a101, a102, a103, a104, a105, a106, a107, a108, a109, a110, a111, "
"a112, a113, a114, a115, a116, a117, a118, a119, a120, a121, a122, a123, "
"a124, a125, a126, a127, a128, a129, a130, a131, a132, a133, a134, a135, "
"a136, a137, a138, a139, a140, a141, a142, a143, a144, a145, a146, a147, "
"a148, a149, a150, a151, a152, a153, a154, a155, a156, a157, a158, a159, "
"a160, a161, a162, a163, a164, a165, a166, a167, a168, a169, a170, a171, "
"a172, a173, a174, a175, a176, a177, a178, a179, a180, a181, a182, a183, "
"a184, a185, a186, a187, a188, a189, a190, a191, a192, a193, a194, a195, "
"a196, a197, a198, a199, a200, a201, a202, a203, a204, a205, a206, a207, "
"a208, a209, a210, a211, a212, a213, a214, a215, a216, a217, a218, a219, "
"a220, a221, a222, a223, a224, a225, a226, a227, a228, a229, a230, a231, "
"a232, a233, a234, a235, a236, a237, a238, a239, a240, a241, a242, a243, "
"a244, a245, a246, a247, a248, a249, a250, a251, a252, a253, a254, a255, "
"a256, a257, a258, a259, a260, a261, a262, a263, a264, a265, a266, a267, "
"a268, a269, a270, a271, a272, a273, a274, a275, a276, a277, a278, a279, "
"a280, a281, a282, a283, a284, a285, a286, a287, a288, a289, a290, a291, "
"a292, a293, a294, a295, a296, a297, a298, a299, a300, a301, a302, a303, "
"a304, a305, a306, a307, a308, a309, a310, a311, a312, a313, a314, a315, "
"a316, a317, a318, a319, a320, a321, a322, a323, a324, a325, a326, a327, "
"a328, a329, a330, a331, a332, a333, a334, a335, a336, a337, a338, a339, "
"a340, a341, a342, a343, a344, a345, a346, a347, a348, a349, a350, a351, "
"a352, a353, a354, a355, a356, a357, a358, a359, a360, a361, a362, a363, "
"a364, a365, a366, a367, a368, a369, a370, a371, a372, a373, a374, a375, "
"a376, a377, a378, a379, a380, a381, a382, a383, a384, a385, a386, a387, "
"a388, a389, a390, a391, a392, a393, a394, a395, a396, a397, a398, a399, "
"a400, a401, a402, a403, a404, a405, a406, a407, a408, a409, a410, a411, "
"a412, a413, a414, a415, a416, a417, a418, a419, a420, a421, a422, a423, "
"a424, a425, a426, a427, a428, a429, a430, a431, a432, a433, a434, a435, "
"a436, a437, a438, a439, a440, a441, a442, a443, a444, a445, a446, a447, "
"a448, a449, a450, a451, a452, a453, a454, a455, a456, a457, a458, a459, "
"a460, a461, a462, a463, a464, a465, a466, a467, a468, a469, a470, a471, "
"a472, a473, a474, a475, a476, a477, a478, a479, a480, a481, a482, a483, "
"a484, a485, a486, a487, a488, a489, a490, a491, a492, a493, a494, a495, "
"a496, a497, a498, a499, a500, a501, a502, a503, a504, a505, a506, a507, "
"a508, a509, a510, a511, a512, a513, a514, a515, a516, a517, a518, a519, "
"a520, a521, a522, a523, a524, a525, a526, a527, a528, a529, a530, a531, "
"a532, a533, a534, a535, a536, a537, a538, a539, a540, a541, a542, a543, "
"a544, a545, a546, a547, a548, a549, a550, a551, a552, a553, a554, a555, "
"a556, a557, a558, a559, a560, a561, a562, a563, a564, a565, a566, a567, "
"a568, a569, a570, a571, a572, a573, a574, a575, a576, a577, a578, a579, "
"a580, a581, a582, a583, a584, a585, a586, a587, a588, a589, a590, a591, "
"a592, a593, a594, a595, a596, a597, a598, a599, a600, a601, a602, a603, "
"a604, a605, a606, a607, a608, a609, a610, a611, a612, a613, a614, a615, "
"a616, a617, a618, a619, a620, a621, a622, a623, a624, a625, a626, a627, "
"a628, a629, a630, a631, a632, a633, a634, a635, a636, a637, a638, a639, "
"a640, a641, a642, a643, a644, a645, a646, a647, a648, a649, a650, a651, "
"a652, a653, a654, a655, a656, a657, a658, a659, a660, a661, a662, a663, "
"a664, a665, a666, a667, a668, a669, a670, a671, a672, a673, a674, a675, "
"a676, a677, a678, a679, a680, a681, a682, a683, a684, a685, a686, a687, "
"a688, a689, a690, a691, a692, a693, a694, a695, a696, a697, a698, a699, "
"a700, a701, a702, a703, a704, a705, a706, a707, a708, a709, a710, a711, "
"a712, a713, a714, a715, a716, a717, a718, a719, a720, a721, a722, a723, "
"a724, a725, a726, a727, a728, a729, a730, a731, a732, a733, a734, a735, "
"a736, a737, a738, a739, a740, a741, a742, a743, a744, a745, a746, a747, "
"a748, a749, a750, a751, a752, a753, a754, a755, a756, a757, a758, a759, "
"a760, a761, a762, a763, a764, a765, a766, a767, a768, a769, a770, a771, "
"a772, a773, a774, a775, a776, a777, a778, a779, a780, a781, a782, a783, "
"a784, a785, a786, a787, a788, a789, a790, a791, a792, a793, a794, a795, "
"a796, a797, a798, a799, a800, a801, a802, a803, a804, a805, a806, a807, "
"a808, a809, a810, a811, a812, a813, a814, a815, a816, a817, a818, a819, "
"a820, a821, a822, a823, a824, a825, a826, a827, a828, a829, a830, a831, "
"a832, a833, a834, a835, a836, a837, a838, a839, a840, a841, a842, a843, "
"a844, a845, a846, a847, a848, a849, a850, a851, a852, a853, a854, a855, "
"a856, a857, a858, a859, a860, a861, a862, a863, a864, a865, a866, a867, "
"a868, a869, a870, a871, a872, a873, a874, a875, a876, a877, a878, a879, "
"a880, a881, a882, a883, a884, a885, a886, a887, a888, a889, a890, a891, "
"a892, a893, a894, a895, a896, a897, a898, a899, a900, a901, a902, a903, "
"a904, a905, a906, a907, a908, a909, a910, a911, a912, a913, a914, a915, "
"a916, a917, a918, a919, a920, a921, a922, a923, a924, a925, a926, a927, "
"a928, a929, a930, a931, a932, a933, a934, a935, a936, a937, a938, a939, "
"a940, a941, a942, a943, a944, a945, a946, a947, a948, a949, a950, a951, "
"a952, a953, a954, a955, a956, a957, a958, a959, a960, a961, a962, a963, "
"a964, a965, a966, a967, a968, a969, a970, a971, a972, a973, a974, a975, "
"a976, a977, a978, a979, a980, a981, a982, a983, a984, a985, a986, a987, "
"a988, a989, a990, a991, a992, a993, a994, a995, a996, a997, a998, a999, "
"a1000, a1001, a1002, a1003, a1004, a1005, a1006, a1007, a1008, a1009, "
"a1010, a1011, a1012, a1013, a1014, a1015, a1016, a1017, a1018, a1019, "
"a1020, a1021, a1022, a1023",
6056,
{{{Item("a0", Item::kTokenType), {}},
{Item("a1", Item::kTokenType), {}},
{Item("a2", Item::kTokenType), {}},
{Item("a3", Item::kTokenType), {}},
{Item("a4", Item::kTokenType), {}},
{Item("a5", Item::kTokenType), {}},
{Item("a6", Item::kTokenType), {}},
{Item("a7", Item::kTokenType), {}},
{Item("a8", Item::kTokenType), {}},
{Item("a9", Item::kTokenType), {}},
{Item("a10", Item::kTokenType), {}},
{Item("a11", Item::kTokenType), {}},
{Item("a12", Item::kTokenType), {}},
{Item("a13", Item::kTokenType), {}},
{Item("a14", Item::kTokenType), {}},
{Item("a15", Item::kTokenType), {}},
{Item("a16", Item::kTokenType), {}},
{Item("a17", Item::kTokenType), {}},
{Item("a18", Item::kTokenType), {}},
{Item("a19", Item::kTokenType), {}},
{Item("a20", Item::kTokenType), {}},
{Item("a21", Item::kTokenType), {}},
{Item("a22", Item::kTokenType), {}},
{Item("a23", Item::kTokenType), {}},
{Item("a24", Item::kTokenType), {}},
{Item("a25", Item::kTokenType), {}},
{Item("a26", Item::kTokenType), {}},
{Item("a27", Item::kTokenType), {}},
{Item("a28", Item::kTokenType), {}},
{Item("a29", Item::kTokenType), {}},
{Item("a30", Item::kTokenType), {}},
{Item("a31", Item::kTokenType), {}},
{Item("a32", Item::kTokenType), {}},
{Item("a33", Item::kTokenType), {}},
{Item("a34", Item::kTokenType), {}},
{Item("a35", Item::kTokenType), {}},
{Item("a36", Item::kTokenType), {}},
{Item("a37", Item::kTokenType), {}},
{Item("a38", Item::kTokenType), {}},
{Item("a39", Item::kTokenType), {}},
{Item("a40", Item::kTokenType), {}},
{Item("a41", Item::kTokenType), {}},
{Item("a42", Item::kTokenType), {}},
{Item("a43", Item::kTokenType), {}},
{Item("a44", Item::kTokenType), {}},
{Item("a45", Item::kTokenType), {}},
{Item("a46", Item::kTokenType), {}},
{Item("a47", Item::kTokenType), {}},
{Item("a48", Item::kTokenType), {}},
{Item("a49", Item::kTokenType), {}},
{Item("a50", Item::kTokenType), {}},
{Item("a51", Item::kTokenType), {}},
{Item("a52", Item::kTokenType), {}},
{Item("a53", Item::kTokenType), {}},
{Item("a54", Item::kTokenType), {}},
{Item("a55", Item::kTokenType), {}},
{Item("a56", Item::kTokenType), {}},
{Item("a57", Item::kTokenType), {}},
{Item("a58", Item::kTokenType), {}},
{Item("a59", Item::kTokenType), {}},
{Item("a60", Item::kTokenType), {}},
{Item("a61", Item::kTokenType), {}},
{Item("a62", Item::kTokenType), {}},
{Item("a63", Item::kTokenType), {}},
{Item("a64", Item::kTokenType), {}},
{Item("a65", Item::kTokenType), {}},
{Item("a66", Item::kTokenType), {}},
{Item("a67", Item::kTokenType), {}},
{Item("a68", Item::kTokenType), {}},
{Item("a69", Item::kTokenType), {}},
{Item("a70", Item::kTokenType), {}},
{Item("a71", Item::kTokenType), {}},
{Item("a72", Item::kTokenType), {}},
{Item("a73", Item::kTokenType), {}},
{Item("a74", Item::kTokenType), {}},
{Item("a75", Item::kTokenType), {}},
{Item("a76", Item::kTokenType), {}},
{Item("a77", Item::kTokenType), {}},
{Item("a78", Item::kTokenType), {}},
{Item("a79", Item::kTokenType), {}},
{Item("a80", Item::kTokenType), {}},
{Item("a81", Item::kTokenType), {}},
{Item("a82", Item::kTokenType), {}},
{Item("a83", Item::kTokenType), {}},
{Item("a84", Item::kTokenType), {}},
{Item("a85", Item::kTokenType), {}},
{Item("a86", Item::kTokenType), {}},
{Item("a87", Item::kTokenType), {}},
{Item("a88", Item::kTokenType), {}},
{Item("a89", Item::kTokenType), {}},
{Item("a90", Item::kTokenType), {}},
{Item("a91", Item::kTokenType), {}},
{Item("a92", Item::kTokenType), {}},
{Item("a93", Item::kTokenType), {}},
{Item("a94", Item::kTokenType), {}},
{Item("a95", Item::kTokenType), {}},
{Item("a96", Item::kTokenType), {}},
{Item("a97", Item::kTokenType), {}},
{Item("a98", Item::kTokenType), {}},
{Item("a99", Item::kTokenType), {}},
{Item("a100", Item::kTokenType), {}},
{Item("a101", Item::kTokenType), {}},
{Item("a102", Item::kTokenType), {}},
{Item("a103", Item::kTokenType), {}},
{Item("a104", Item::kTokenType), {}},
{Item("a105", Item::kTokenType), {}},
{Item("a106", Item::kTokenType), {}},
{Item("a107", Item::kTokenType), {}},
{Item("a108", Item::kTokenType), {}},
{Item("a109", Item::kTokenType), {}},
{Item("a110", Item::kTokenType), {}},
{Item("a111", Item::kTokenType), {}},
{Item("a112", Item::kTokenType), {}},
{Item("a113", Item::kTokenType), {}},
{Item("a114", Item::kTokenType), {}},
{Item("a115", Item::kTokenType), {}},
{Item("a116", Item::kTokenType), {}},
{Item("a117", Item::kTokenType), {}},
{Item("a118", Item::kTokenType), {}},
{Item("a119", Item::kTokenType), {}},
{Item("a120", Item::kTokenType), {}},
{Item("a121", Item::kTokenType), {}},
{Item("a122", Item::kTokenType), {}},
{Item("a123", Item::kTokenType), {}},
{Item("a124", Item::kTokenType), {}},
{Item("a125", Item::kTokenType), {}},
{Item("a126", Item::kTokenType), {}},
{Item("a127", Item::kTokenType), {}},
{Item("a128", Item::kTokenType), {}},
{Item("a129", Item::kTokenType), {}},
{Item("a130", Item::kTokenType), {}},
{Item("a131", Item::kTokenType), {}},
{Item("a132", Item::kTokenType), {}},
{Item("a133", Item::kTokenType), {}},
{Item("a134", Item::kTokenType), {}},
{Item("a135", Item::kTokenType), {}},
{Item("a136", Item::kTokenType), {}},
{Item("a137", Item::kTokenType), {}},
{Item("a138", Item::kTokenType), {}},
{Item("a139", Item::kTokenType), {}},
{Item("a140", Item::kTokenType), {}},
{Item("a141", Item::kTokenType), {}},
{Item("a142", Item::kTokenType), {}},
{Item("a143", Item::kTokenType), {}},
{Item("a144", Item::kTokenType), {}},
{Item("a145", Item::kTokenType), {}},
{Item("a146", Item::kTokenType), {}},
{Item("a147", Item::kTokenType), {}},
{Item("a148", Item::kTokenType), {}},
{Item("a149", Item::kTokenType), {}},
{Item("a150", Item::kTokenType), {}},
{Item("a151", Item::kTokenType), {}},
{Item("a152", Item::kTokenType), {}},
{Item("a153", Item::kTokenType), {}},
{Item("a154", Item::kTokenType), {}},
{Item("a155", Item::kTokenType), {}},
{Item("a156", Item::kTokenType), {}},
{Item("a157", Item::kTokenType), {}},
{Item("a158", Item::kTokenType), {}},
{Item("a159", Item::kTokenType), {}},
{Item("a160", Item::kTokenType), {}},
{Item("a161", Item::kTokenType), {}},
{Item("a162", Item::kTokenType), {}},
{Item("a163", Item::kTokenType), {}},
{Item("a164", Item::kTokenType), {}},
{Item("a165", Item::kTokenType), {}},
{Item("a166", Item::kTokenType), {}},
{Item("a167", Item::kTokenType), {}},
{Item("a168", Item::kTokenType), {}},
{Item("a169", Item::kTokenType), {}},
{Item("a170", Item::kTokenType), {}},
{Item("a171", Item::kTokenType), {}},
{Item("a172", Item::kTokenType), {}},
{Item("a173", Item::kTokenType), {}},
{Item("a174", Item::kTokenType), {}},
{Item("a175", Item::kTokenType), {}},
{Item("a176", Item::kTokenType), {}},
{Item("a177", Item::kTokenType), {}},
{Item("a178", Item::kTokenType), {}},
{Item("a179", Item::kTokenType), {}},
{Item("a180", Item::kTokenType), {}},
{Item("a181", Item::kTokenType), {}},
{Item("a182", Item::kTokenType), {}},
{Item("a183", Item::kTokenType), {}},
{Item("a184", Item::kTokenType), {}},
{Item("a185", Item::kTokenType), {}},
{Item("a186", Item::kTokenType), {}},
{Item("a187", Item::kTokenType), {}},
{Item("a188", Item::kTokenType), {}},
{Item("a189", Item::kTokenType), {}},
{Item("a190", Item::kTokenType), {}},
{Item("a191", Item::kTokenType), {}},
{Item("a192", Item::kTokenType), {}},
{Item("a193", Item::kTokenType), {}},
{Item("a194", Item::kTokenType), {}},
{Item("a195", Item::kTokenType), {}},
{Item("a196", Item::kTokenType), {}},
{Item("a197", Item::kTokenType), {}},
{Item("a198", Item::kTokenType), {}},
{Item("a199", Item::kTokenType), {}},
{Item("a200", Item::kTokenType), {}},
{Item("a201", Item::kTokenType), {}},
{Item("a202", Item::kTokenType), {}},
{Item("a203", Item::kTokenType), {}},
{Item("a204", Item::kTokenType), {}},
{Item("a205", Item::kTokenType), {}},
{Item("a206", Item::kTokenType), {}},
{Item("a207", Item::kTokenType), {}},
{Item("a208", Item::kTokenType), {}},
{Item("a209", Item::kTokenType), {}},
{Item("a210", Item::kTokenType), {}},
{Item("a211", Item::kTokenType), {}},
{Item("a212", Item::kTokenType), {}},
{Item("a213", Item::kTokenType), {}},
{Item("a214", Item::kTokenType), {}},
{Item("a215", Item::kTokenType), {}},
{Item("a216", Item::kTokenType), {}},
{Item("a217", Item::kTokenType), {}},
{Item("a218", Item::kTokenType), {}},
{Item("a219", Item::kTokenType), {}},
{Item("a220", Item::kTokenType), {}},
{Item("a221", Item::kTokenType), {}},
{Item("a222", Item::kTokenType), {}},
{Item("a223", Item::kTokenType), {}},
{Item("a224", Item::kTokenType), {}},
{Item("a225", Item::kTokenType), {}},
{Item("a226", Item::kTokenType), {}},
{Item("a227", Item::kTokenType), {}},
{Item("a228", Item::kTokenType), {}},
{Item("a229", Item::kTokenType), {}},
{Item("a230", Item::kTokenType), {}},
{Item("a231", Item::kTokenType), {}},
{Item("a232", Item::kTokenType), {}},
{Item("a233", Item::kTokenType), {}},
{Item("a234", Item::kTokenType), {}},
{Item("a235", Item::kTokenType), {}},
{Item("a236", Item::kTokenType), {}},
{Item("a237", Item::kTokenType), {}},
{Item("a238", Item::kTokenType), {}},
{Item("a239", Item::kTokenType), {}},
{Item("a240", Item::kTokenType), {}},
{Item("a241", Item::kTokenType), {}},
{Item("a242", Item::kTokenType), {}},
{Item("a243", Item::kTokenType), {}},
{Item("a244", Item::kTokenType), {}},
{Item("a245", Item::kTokenType), {}},
{Item("a246", Item::kTokenType), {}},
{Item("a247", Item::kTokenType), {}},
{Item("a248", Item::kTokenType), {}},
{Item("a249", Item::kTokenType), {}},
{Item("a250", Item::kTokenType), {}},
{Item("a251", Item::kTokenType), {}},
{Item("a252", Item::kTokenType), {}},
{Item("a253", Item::kTokenType), {}},
{Item("a254", Item::kTokenType), {}},
{Item("a255", Item::kTokenType), {}},
{Item("a256", Item::kTokenType), {}},
{Item("a257", Item::kTokenType), {}},
{Item("a258", Item::kTokenType), {}},
{Item("a259", Item::kTokenType), {}},
{Item("a260", Item::kTokenType), {}},
{Item("a261", Item::kTokenType), {}},
{Item("a262", Item::kTokenType), {}},
{Item("a263", Item::kTokenType), {}},
{Item("a264", Item::kTokenType), {}},
{Item("a265", Item::kTokenType), {}},
{Item("a266", Item::kTokenType), {}},
{Item("a267", Item::kTokenType), {}},
{Item("a268", Item::kTokenType), {}},
{Item("a269", Item::kTokenType), {}},
{Item("a270", Item::kTokenType), {}},
{Item("a271", Item::kTokenType), {}},
{Item("a272", Item::kTokenType), {}},
{Item("a273", Item::kTokenType), {}},
{Item("a274", Item::kTokenType), {}},
{Item("a275", Item::kTokenType), {}},
{Item("a276", Item::kTokenType), {}},
{Item("a277", Item::kTokenType), {}},
{Item("a278", Item::kTokenType), {}},
{Item("a279", Item::kTokenType), {}},
{Item("a280", Item::kTokenType), {}},
{Item("a281", Item::kTokenType), {}},
{Item("a282", Item::kTokenType), {}},
{Item("a283", Item::kTokenType), {}},
{Item("a284", Item::kTokenType), {}},
{Item("a285", Item::kTokenType), {}},
{Item("a286", Item::kTokenType), {}},
{Item("a287", Item::kTokenType), {}},
{Item("a288", Item::kTokenType), {}},
{Item("a289", Item::kTokenType), {}},
{Item("a290", Item::kTokenType), {}},
{Item("a291", Item::kTokenType), {}},
{Item("a292", Item::kTokenType), {}},
{Item("a293", Item::kTokenType), {}},
{Item("a294", Item::kTokenType), {}},
{Item("a295", Item::kTokenType), {}},
{Item("a296", Item::kTokenType), {}},
{Item("a297", Item::kTokenType), {}},
{Item("a298", Item::kTokenType), {}},
{Item("a299", Item::kTokenType), {}},
{Item("a300", Item::kTokenType), {}},
{Item("a301", Item::kTokenType), {}},
{Item("a302", Item::kTokenType), {}},
{Item("a303", Item::kTokenType), {}},
{Item("a304", Item::kTokenType), {}},
{Item("a305", Item::kTokenType), {}},
{Item("a306", Item::kTokenType), {}},
{Item("a307", Item::kTokenType), {}},
{Item("a308", Item::kTokenType), {}},
{Item("a309", Item::kTokenType), {}},
{Item("a310", Item::kTokenType), {}},
{Item("a311", Item::kTokenType), {}},
{Item("a312", Item::kTokenType), {}},
{Item("a313", Item::kTokenType), {}},
{Item("a314", Item::kTokenType), {}},
{Item("a315", Item::kTokenType), {}},
{Item("a316", Item::kTokenType), {}},
{Item("a317", Item::kTokenType), {}},
{Item("a318", Item::kTokenType), {}},
{Item("a319", Item::kTokenType), {}},
{Item("a320", Item::kTokenType), {}},
{Item("a321", Item::kTokenType), {}},
{Item("a322", Item::kTokenType), {}},
{Item("a323", Item::kTokenType), {}},
{Item("a324", Item::kTokenType), {}},
{Item("a325", Item::kTokenType), {}},
{Item("a326", Item::kTokenType), {}},
{Item("a327", Item::kTokenType), {}},
{Item("a328", Item::kTokenType), {}},
{Item("a329", Item::kTokenType), {}},
{Item("a330", Item::kTokenType), {}},
{Item("a331", Item::kTokenType), {}},
{Item("a332", Item::kTokenType), {}},
{Item("a333", Item::kTokenType), {}},
{Item("a334", Item::kTokenType), {}},
{Item("a335", Item::kTokenType), {}},
{Item("a336", Item::kTokenType), {}},
{Item("a337", Item::kTokenType), {}},
{Item("a338", Item::kTokenType), {}},
{Item("a339", Item::kTokenType), {}},
{Item("a340", Item::kTokenType), {}},
{Item("a341", Item::kTokenType), {}},
{Item("a342", Item::kTokenType), {}},
{Item("a343", Item::kTokenType), {}},
{Item("a344", Item::kTokenType), {}},
{Item("a345", Item::kTokenType), {}},
{Item("a346", Item::kTokenType), {}},
{Item("a347", Item::kTokenType), {}},
{Item("a348", Item::kTokenType), {}},
{Item("a349", Item::kTokenType), {}},
{Item("a350", Item::kTokenType), {}},
{Item("a351", Item::kTokenType), {}},
{Item("a352", Item::kTokenType), {}},
{Item("a353", Item::kTokenType), {}},
{Item("a354", Item::kTokenType), {}},
{Item("a355", Item::kTokenType), {}},
{Item("a356", Item::kTokenType), {}},
{Item("a357", Item::kTokenType), {}},
{Item("a358", Item::kTokenType), {}},
{Item("a359", Item::kTokenType), {}},
{Item("a360", Item::kTokenType), {}},
{Item("a361", Item::kTokenType), {}},
{Item("a362", Item::kTokenType), {}},
{Item("a363", Item::kTokenType), {}},
{Item("a364", Item::kTokenType), {}},
{Item("a365", Item::kTokenType), {}},
{Item("a366", Item::kTokenType), {}},
{Item("a367", Item::kTokenType), {}},
{Item("a368", Item::kTokenType), {}},
{Item("a369", Item::kTokenType), {}},
{Item("a370", Item::kTokenType), {}},
{Item("a371", Item::kTokenType), {}},
{Item("a372", Item::kTokenType), {}},
{Item("a373", Item::kTokenType), {}},
{Item("a374", Item::kTokenType), {}},
{Item("a375", Item::kTokenType), {}},
{Item("a376", Item::kTokenType), {}},
{Item("a377", Item::kTokenType), {}},
{Item("a378", Item::kTokenType), {}},
{Item("a379", Item::kTokenType), {}},
{Item("a380", Item::kTokenType), {}},
{Item("a381", Item::kTokenType), {}},
{Item("a382", Item::kTokenType), {}},
{Item("a383", Item::kTokenType), {}},
{Item("a384", Item::kTokenType), {}},
{Item("a385", Item::kTokenType), {}},
{Item("a386", Item::kTokenType), {}},
{Item("a387", Item::kTokenType), {}},
{Item("a388", Item::kTokenType), {}},
{Item("a389", Item::kTokenType), {}},
{Item("a390", Item::kTokenType), {}},
{Item("a391", Item::kTokenType), {}},
{Item("a392", Item::kTokenType), {}},
{Item("a393", Item::kTokenType), {}},
{Item("a394", Item::kTokenType), {}},
{Item("a395", Item::kTokenType), {}},
{Item("a396", Item::kTokenType), {}},
{Item("a397", Item::kTokenType), {}},
{Item("a398", Item::kTokenType), {}},
{Item("a399", Item::kTokenType), {}},
{Item("a400", Item::kTokenType), {}},
{Item("a401", Item::kTokenType), {}},
{Item("a402", Item::kTokenType), {}},
{Item("a403", Item::kTokenType), {}},
{Item("a404", Item::kTokenType), {}},
{Item("a405", Item::kTokenType), {}},
{Item("a406", Item::kTokenType), {}},
{Item("a407", Item::kTokenType), {}},
{Item("a408", Item::kTokenType), {}},
{Item("a409", Item::kTokenType), {}},
{Item("a410", Item::kTokenType), {}},
{Item("a411", Item::kTokenType), {}},
{Item("a412", Item::kTokenType), {}},
{Item("a413", Item::kTokenType), {}},
{Item("a414", Item::kTokenType), {}},
{Item("a415", Item::kTokenType), {}},
{Item("a416", Item::kTokenType), {}},
{Item("a417", Item::kTokenType), {}},
{Item("a418", Item::kTokenType), {}},
{Item("a419", Item::kTokenType), {}},
{Item("a420", Item::kTokenType), {}},
{Item("a421", Item::kTokenType), {}},
{Item("a422", Item::kTokenType), {}},
{Item("a423", Item::kTokenType), {}},
{Item("a424", Item::kTokenType), {}},
{Item("a425", Item::kTokenType), {}},
{Item("a426", Item::kTokenType), {}},
{Item("a427", Item::kTokenType), {}},
{Item("a428", Item::kTokenType), {}},
{Item("a429", Item::kTokenType), {}},
{Item("a430", Item::kTokenType), {}},
{Item("a431", Item::kTokenType), {}},
{Item("a432", Item::kTokenType), {}},
{Item("a433", Item::kTokenType), {}},
{Item("a434", Item::kTokenType), {}},
{Item("a435", Item::kTokenType), {}},
{Item("a436", Item::kTokenType), {}},
{Item("a437", Item::kTokenType), {}},
{Item("a438", Item::kTokenType), {}},
{Item("a439", Item::kTokenType), {}},
{Item("a440", Item::kTokenType), {}},
{Item("a441", Item::kTokenType), {}},
{Item("a442", Item::kTokenType), {}},
{Item("a443", Item::kTokenType), {}},
{Item("a444", Item::kTokenType), {}},
{Item("a445", Item::kTokenType), {}},
{Item("a446", Item::kTokenType), {}},
{Item("a447", Item::kTokenType), {}},
{Item("a448", Item::kTokenType), {}},
{Item("a449", Item::kTokenType), {}},
{Item("a450", Item::kTokenType), {}},
{Item("a451", Item::kTokenType), {}},
{Item("a452", Item::kTokenType), {}},
{Item("a453", Item::kTokenType), {}},
{Item("a454", Item::kTokenType), {}},
{Item("a455", Item::kTokenType), {}},
{Item("a456", Item::kTokenType), {}},
{Item("a457", Item::kTokenType), {}},
{Item("a458", Item::kTokenType), {}},
{Item("a459", Item::kTokenType), {}},
{Item("a460", Item::kTokenType), {}},
{Item("a461", Item::kTokenType), {}},
{Item("a462", Item::kTokenType), {}},
{Item("a463", Item::kTokenType), {}},
{Item("a464", Item::kTokenType), {}},
{Item("a465", Item::kTokenType), {}},
{Item("a466", Item::kTokenType), {}},
{Item("a467", Item::kTokenType), {}},
{Item("a468", Item::kTokenType), {}},
{Item("a469", Item::kTokenType), {}},
{Item("a470", Item::kTokenType), {}},
{Item("a471", Item::kTokenType), {}},
{Item("a472", Item::kTokenType), {}},
{Item("a473", Item::kTokenType), {}},
{Item("a474", Item::kTokenType), {}},
{Item("a475", Item::kTokenType), {}},
{Item("a476", Item::kTokenType), {}},
{Item("a477", Item::kTokenType), {}},
{Item("a478", Item::kTokenType), {}},
{Item("a479", Item::kTokenType), {}},
{Item("a480", Item::kTokenType), {}},
{Item("a481", Item::kTokenType), {}},
{Item("a482", Item::kTokenType), {}},
{Item("a483", Item::kTokenType), {}},
{Item("a484", Item::kTokenType), {}},
{Item("a485", Item::kTokenType), {}},
{Item("a486", Item::kTokenType), {}},
{Item("a487", Item::kTokenType), {}},
{Item("a488", Item::kTokenType), {}},
{Item("a489", Item::kTokenType), {}},
{Item("a490", Item::kTokenType), {}},
{Item("a491", Item::kTokenType), {}},
{Item("a492", Item::kTokenType), {}},
{Item("a493", Item::kTokenType), {}},
{Item("a494", Item::kTokenType), {}},
{Item("a495", Item::kTokenType), {}},
{Item("a496", Item::kTokenType), {}},
{Item("a497", Item::kTokenType), {}},
{Item("a498", Item::kTokenType), {}},
{Item("a499", Item::kTokenType), {}},
{Item("a500", Item::kTokenType), {}},
{Item("a501", Item::kTokenType), {}},
{Item("a502", Item::kTokenType), {}},
{Item("a503", Item::kTokenType), {}},
{Item("a504", Item::kTokenType), {}},
{Item("a505", Item::kTokenType), {}},
{Item("a506", Item::kTokenType), {}},
{Item("a507", Item::kTokenType), {}},
{Item("a508", Item::kTokenType), {}},
{Item("a509", Item::kTokenType), {}},
{Item("a510", Item::kTokenType), {}},
{Item("a511", Item::kTokenType), {}},
{Item("a512", Item::kTokenType), {}},
{Item("a513", Item::kTokenType), {}},
{Item("a514", Item::kTokenType), {}},
{Item("a515", Item::kTokenType), {}},
{Item("a516", Item::kTokenType), {}},
{Item("a517", Item::kTokenType), {}},
{Item("a518", Item::kTokenType), {}},
{Item("a519", Item::kTokenType), {}},
{Item("a520", Item::kTokenType), {}},
{Item("a521", Item::kTokenType), {}},
{Item("a522", Item::kTokenType), {}},
{Item("a523", Item::kTokenType), {}},
{Item("a524", Item::kTokenType), {}},
{Item("a525", Item::kTokenType), {}},
{Item("a526", Item::kTokenType), {}},
{Item("a527", Item::kTokenType), {}},
{Item("a528", Item::kTokenType), {}},
{Item("a529", Item::kTokenType), {}},
{Item("a530", Item::kTokenType), {}},
{Item("a531", Item::kTokenType), {}},
{Item("a532", Item::kTokenType), {}},
{Item("a533", Item::kTokenType), {}},
{Item("a534", Item::kTokenType), {}},
{Item("a535", Item::kTokenType), {}},
{Item("a536", Item::kTokenType), {}},
{Item("a537", Item::kTokenType), {}},
{Item("a538", Item::kTokenType), {}},
{Item("a539", Item::kTokenType), {}},
{Item("a540", Item::kTokenType), {}},
{Item("a541", Item::kTokenType), {}},
{Item("a542", Item::kTokenType), {}},
{Item("a543", Item::kTokenType), {}},
{Item("a544", Item::kTokenType), {}},
{Item("a545", Item::kTokenType), {}},
{Item("a546", Item::kTokenType), {}},
{Item("a547", Item::kTokenType), {}},
{Item("a548", Item::kTokenType), {}},
{Item("a549", Item::kTokenType), {}},
{Item("a550", Item::kTokenType), {}},
{Item("a551", Item::kTokenType), {}},
{Item("a552", Item::kTokenType), {}},
{Item("a553", Item::kTokenType), {}},
{Item("a554", Item::kTokenType), {}},
{Item("a555", Item::kTokenType), {}},
{Item("a556", Item::kTokenType), {}},
{Item("a557", Item::kTokenType), {}},
{Item("a558", Item::kTokenType), {}},
{Item("a559", Item::kTokenType), {}},
{Item("a560", Item::kTokenType), {}},
{Item("a561", Item::kTokenType), {}},
{Item("a562", Item::kTokenType), {}},
{Item("a563", Item::kTokenType), {}},
{Item("a564", Item::kTokenType), {}},
{Item("a565", Item::kTokenType), {}},
{Item("a566", Item::kTokenType), {}},
{Item("a567", Item::kTokenType), {}},
{Item("a568", Item::kTokenType), {}},
{Item("a569", Item::kTokenType), {}},
{Item("a570", Item::kTokenType), {}},
{Item("a571", Item::kTokenType), {}},
{Item("a572", Item::kTokenType), {}},
{Item("a573", Item::kTokenType), {}},
{Item("a574", Item::kTokenType), {}},
{Item("a575", Item::kTokenType), {}},
{Item("a576", Item::kTokenType), {}},
{Item("a577", Item::kTokenType), {}},
{Item("a578", Item::kTokenType), {}},
{Item("a579", Item::kTokenType), {}},
{Item("a580", Item::kTokenType), {}},
{Item("a581", Item::kTokenType), {}},
{Item("a582", Item::kTokenType), {}},
{Item("a583", Item::kTokenType), {}},
{Item("a584", Item::kTokenType), {}},
{Item("a585", Item::kTokenType), {}},
{Item("a586", Item::kTokenType), {}},
{Item("a587", Item::kTokenType), {}},
{Item("a588", Item::kTokenType), {}},
{Item("a589", Item::kTokenType), {}},
{Item("a590", Item::kTokenType), {}},
{Item("a591", Item::kTokenType), {}},
{Item("a592", Item::kTokenType), {}},
{Item("a593", Item::kTokenType), {}},
{Item("a594", Item::kTokenType), {}},
{Item("a595", Item::kTokenType), {}},
{Item("a596", Item::kTokenType), {}},
{Item("a597", Item::kTokenType), {}},
{Item("a598", Item::kTokenType), {}},
{Item("a599", Item::kTokenType), {}},
{Item("a600", Item::kTokenType), {}},
{Item("a601", Item::kTokenType), {}},
{Item("a602", Item::kTokenType), {}},
{Item("a603", Item::kTokenType), {}},
{Item("a604", Item::kTokenType), {}},
{Item("a605", Item::kTokenType), {}},
{Item("a606", Item::kTokenType), {}},
{Item("a607", Item::kTokenType), {}},
{Item("a608", Item::kTokenType), {}},
{Item("a609", Item::kTokenType), {}},
{Item("a610", Item::kTokenType), {}},
{Item("a611", Item::kTokenType), {}},
{Item("a612", Item::kTokenType), {}},
{Item("a613", Item::kTokenType), {}},
{Item("a614", Item::kTokenType), {}},
{Item("a615", Item::kTokenType), {}},
{Item("a616", Item::kTokenType), {}},
{Item("a617", Item::kTokenType), {}},
{Item("a618", Item::kTokenType), {}},
{Item("a619", Item::kTokenType), {}},
{Item("a620", Item::kTokenType), {}},
{Item("a621", Item::kTokenType), {}},
{Item("a622", Item::kTokenType), {}},
{Item("a623", Item::kTokenType), {}},
{Item("a624", Item::kTokenType), {}},
{Item("a625", Item::kTokenType), {}},
{Item("a626", Item::kTokenType), {}},
{Item("a627", Item::kTokenType), {}},
{Item("a628", Item::kTokenType), {}},
{Item("a629", Item::kTokenType), {}},
{Item("a630", Item::kTokenType), {}},
{Item("a631", Item::kTokenType), {}},
{Item("a632", Item::kTokenType), {}},
{Item("a633", Item::kTokenType), {}},
{Item("a634", Item::kTokenType), {}},
{Item("a635", Item::kTokenType), {}},
{Item("a636", Item::kTokenType), {}},
{Item("a637", Item::kTokenType), {}},
{Item("a638", Item::kTokenType), {}},
{Item("a639", Item::kTokenType), {}},
{Item("a640", Item::kTokenType), {}},
{Item("a641", Item::kTokenType), {}},
{Item("a642", Item::kTokenType), {}},
{Item("a643", Item::kTokenType), {}},
{Item("a644", Item::kTokenType), {}},
{Item("a645", Item::kTokenType), {}},
{Item("a646", Item::kTokenType), {}},
{Item("a647", Item::kTokenType), {}},
{Item("a648", Item::kTokenType), {}},
{Item("a649", Item::kTokenType), {}},
{Item("a650", Item::kTokenType), {}},
{Item("a651", Item::kTokenType), {}},
{Item("a652", Item::kTokenType), {}},
{Item("a653", Item::kTokenType), {}},
{Item("a654", Item::kTokenType), {}},
{Item("a655", Item::kTokenType), {}},
{Item("a656", Item::kTokenType), {}},
{Item("a657", Item::kTokenType), {}},
{Item("a658", Item::kTokenType), {}},
{Item("a659", Item::kTokenType), {}},
{Item("a660", Item::kTokenType), {}},
{Item("a661", Item::kTokenType), {}},
{Item("a662", Item::kTokenType), {}},
{Item("a663", Item::kTokenType), {}},
{Item("a664", Item::kTokenType), {}},
{Item("a665", Item::kTokenType), {}},
{Item("a666", Item::kTokenType), {}},
{Item("a667", Item::kTokenType), {}},
{Item("a668", Item::kTokenType), {}},
{Item("a669", Item::kTokenType), {}},
{Item("a670", Item::kTokenType), {}},
{Item("a671", Item::kTokenType), {}},
{Item("a672", Item::kTokenType), {}},
{Item("a673", Item::kTokenType), {}},
{Item("a674", Item::kTokenType), {}},
{Item("a675", Item::kTokenType), {}},
{Item("a676", Item::kTokenType), {}},
{Item("a677", Item::kTokenType), {}},
{Item("a678", Item::kTokenType), {}},
{Item("a679", Item::kTokenType), {}},
{Item("a680", Item::kTokenType), {}},
{Item("a681", Item::kTokenType), {}},
{Item("a682", Item::kTokenType), {}},
{Item("a683", Item::kTokenType), {}},
{Item("a684", Item::kTokenType), {}},
{Item("a685", Item::kTokenType), {}},
{Item("a686", Item::kTokenType), {}},
{Item("a687", Item::kTokenType), {}},
{Item("a688", Item::kTokenType), {}},
{Item("a689", Item::kTokenType), {}},
{Item("a690", Item::kTokenType), {}},
{Item("a691", Item::kTokenType), {}},
{Item("a692", Item::kTokenType), {}},
{Item("a693", Item::kTokenType), {}},
{Item("a694", Item::kTokenType), {}},
{Item("a695", Item::kTokenType), {}},
{Item("a696", Item::kTokenType), {}},
{Item("a697", Item::kTokenType), {}},
{Item("a698", Item::kTokenType), {}},
{Item("a699", Item::kTokenType), {}},
{Item("a700", Item::kTokenType), {}},
{Item("a701", Item::kTokenType), {}},
{Item("a702", Item::kTokenType), {}},
{Item("a703", Item::kTokenType), {}},
{Item("a704", Item::kTokenType), {}},
{Item("a705", Item::kTokenType), {}},
{Item("a706", Item::kTokenType), {}},
{Item("a707", Item::kTokenType), {}},
{Item("a708", Item::kTokenType), {}},
{Item("a709", Item::kTokenType), {}},
{Item("a710", Item::kTokenType), {}},
{Item("a711", Item::kTokenType), {}},
{Item("a712", Item::kTokenType), {}},
{Item("a713", Item::kTokenType), {}},
{Item("a714", Item::kTokenType), {}},
{Item("a715", Item::kTokenType), {}},
{Item("a716", Item::kTokenType), {}},
{Item("a717", Item::kTokenType), {}},
{Item("a718", Item::kTokenType), {}},
{Item("a719", Item::kTokenType), {}},
{Item("a720", Item::kTokenType), {}},
{Item("a721", Item::kTokenType), {}},
{Item("a722", Item::kTokenType), {}},
{Item("a723", Item::kTokenType), {}},
{Item("a724", Item::kTokenType), {}},
{Item("a725", Item::kTokenType), {}},
{Item("a726", Item::kTokenType), {}},
{Item("a727", Item::kTokenType), {}},
{Item("a728", Item::kTokenType), {}},
{Item("a729", Item::kTokenType), {}},
{Item("a730", Item::kTokenType), {}},
{Item("a731", Item::kTokenType), {}},
{Item("a732", Item::kTokenType), {}},
{Item("a733", Item::kTokenType), {}},
{Item("a734", Item::kTokenType), {}},
{Item("a735", Item::kTokenType), {}},
{Item("a736", Item::kTokenType), {}},
{Item("a737", Item::kTokenType), {}},
{Item("a738", Item::kTokenType), {}},
{Item("a739", Item::kTokenType), {}},
{Item("a740", Item::kTokenType), {}},
{Item("a741", Item::kTokenType), {}},
{Item("a742", Item::kTokenType), {}},
{Item("a743", Item::kTokenType), {}},
{Item("a744", Item::kTokenType), {}},
{Item("a745", Item::kTokenType), {}},
{Item("a746", Item::kTokenType), {}},
{Item("a747", Item::kTokenType), {}},
{Item("a748", Item::kTokenType), {}},
{Item("a749", Item::kTokenType), {}},
{Item("a750", Item::kTokenType), {}},
{Item("a751", Item::kTokenType), {}},
{Item("a752", Item::kTokenType), {}},
{Item("a753", Item::kTokenType), {}},
{Item("a754", Item::kTokenType), {}},
{Item("a755", Item::kTokenType), {}},
{Item("a756", Item::kTokenType), {}},
{Item("a757", Item::kTokenType), {}},
{Item("a758", Item::kTokenType), {}},
{Item("a759", Item::kTokenType), {}},
{Item("a760", Item::kTokenType), {}},
{Item("a761", Item::kTokenType), {}},
{Item("a762", Item::kTokenType), {}},
{Item("a763", Item::kTokenType), {}},
{Item("a764", Item::kTokenType), {}},
{Item("a765", Item::kTokenType), {}},
{Item("a766", Item::kTokenType), {}},
{Item("a767", Item::kTokenType), {}},
{Item("a768", Item::kTokenType), {}},
{Item("a769", Item::kTokenType), {}},
{Item("a770", Item::kTokenType), {}},
{Item("a771", Item::kTokenType), {}},
{Item("a772", Item::kTokenType), {}},
{Item("a773", Item::kTokenType), {}},
{Item("a774", Item::kTokenType), {}},
{Item("a775", Item::kTokenType), {}},
{Item("a776", Item::kTokenType), {}},
{Item("a777", Item::kTokenType), {}},
{Item("a778", Item::kTokenType), {}},
{Item("a779", Item::kTokenType), {}},
{Item("a780", Item::kTokenType), {}},
{Item("a781", Item::kTokenType), {}},
{Item("a782", Item::kTokenType), {}},
{Item("a783", Item::kTokenType), {}},
{Item("a784", Item::kTokenType), {}},
{Item("a785", Item::kTokenType), {}},
{Item("a786", Item::kTokenType), {}},
{Item("a787", Item::kTokenType), {}},
{Item("a788", Item::kTokenType), {}},
{Item("a789", Item::kTokenType), {}},
{Item("a790", Item::kTokenType), {}},
{Item("a791", Item::kTokenType), {}},
{Item("a792", Item::kTokenType), {}},
{Item("a793", Item::kTokenType), {}},
{Item("a794", Item::kTokenType), {}},
{Item("a795", Item::kTokenType), {}},
{Item("a796", Item::kTokenType), {}},
{Item("a797", Item::kTokenType), {}},
{Item("a798", Item::kTokenType), {}},
{Item("a799", Item::kTokenType), {}},
{Item("a800", Item::kTokenType), {}},
{Item("a801", Item::kTokenType), {}},
{Item("a802", Item::kTokenType), {}},
{Item("a803", Item::kTokenType), {}},
{Item("a804", Item::kTokenType), {}},
{Item("a805", Item::kTokenType), {}},
{Item("a806", Item::kTokenType), {}},
{Item("a807", Item::kTokenType), {}},
{Item("a808", Item::kTokenType), {}},
{Item("a809", Item::kTokenType), {}},
{Item("a810", Item::kTokenType), {}},
{Item("a811", Item::kTokenType), {}},
{Item("a812", Item::kTokenType), {}},
{Item("a813", Item::kTokenType), {}},
{Item("a814", Item::kTokenType), {}},
{Item("a815", Item::kTokenType), {}},
{Item("a816", Item::kTokenType), {}},
{Item("a817", Item::kTokenType), {}},
{Item("a818", Item::kTokenType), {}},
{Item("a819", Item::kTokenType), {}},
{Item("a820", Item::kTokenType), {}},
{Item("a821", Item::kTokenType), {}},
{Item("a822", Item::kTokenType), {}},
{Item("a823", Item::kTokenType), {}},
{Item("a824", Item::kTokenType), {}},
{Item("a825", Item::kTokenType), {}},
{Item("a826", Item::kTokenType), {}},
{Item("a827", Item::kTokenType), {}},
{Item("a828", Item::kTokenType), {}},
{Item("a829", Item::kTokenType), {}},
{Item("a830", Item::kTokenType), {}},
{Item("a831", Item::kTokenType), {}},
{Item("a832", Item::kTokenType), {}},
{Item("a833", Item::kTokenType), {}},
{Item("a834", Item::kTokenType), {}},
{Item("a835", Item::kTokenType), {}},
{Item("a836", Item::kTokenType), {}},
{Item("a837", Item::kTokenType), {}},
{Item("a838", Item::kTokenType), {}},
{Item("a839", Item::kTokenType), {}},
{Item("a840", Item::kTokenType), {}},
{Item("a841", Item::kTokenType), {}},
{Item("a842", Item::kTokenType), {}},
{Item("a843", Item::kTokenType), {}},
{Item("a844", Item::kTokenType), {}},
{Item("a845", Item::kTokenType), {}},
{Item("a846", Item::kTokenType), {}},
{Item("a847", Item::kTokenType), {}},
{Item("a848", Item::kTokenType), {}},
{Item("a849", Item::kTokenType), {}},
{Item("a850", Item::kTokenType), {}},
{Item("a851", Item::kTokenType), {}},
{Item("a852", Item::kTokenType), {}},
{Item("a853", Item::kTokenType), {}},
{Item("a854", Item::kTokenType), {}},
{Item("a855", Item::kTokenType), {}},
{Item("a856", Item::kTokenType), {}},
{Item("a857", Item::kTokenType), {}},
{Item("a858", Item::kTokenType), {}},
{Item("a859", Item::kTokenType), {}},
{Item("a860", Item::kTokenType), {}},
{Item("a861", Item::kTokenType), {}},
{Item("a862", Item::kTokenType), {}},
{Item("a863", Item::kTokenType), {}},
{Item("a864", Item::kTokenType), {}},
{Item("a865", Item::kTokenType), {}},
{Item("a866", Item::kTokenType), {}},
{Item("a867", Item::kTokenType), {}},
{Item("a868", Item::kTokenType), {}},
{Item("a869", Item::kTokenType), {}},
{Item("a870", Item::kTokenType), {}},
{Item("a871", Item::kTokenType), {}},
{Item("a872", Item::kTokenType), {}},
{Item("a873", Item::kTokenType), {}},
{Item("a874", Item::kTokenType), {}},
{Item("a875", Item::kTokenType), {}},
{Item("a876", Item::kTokenType), {}},
{Item("a877", Item::kTokenType), {}},
{Item("a878", Item::kTokenType), {}},
{Item("a879", Item::kTokenType), {}},
{Item("a880", Item::kTokenType), {}},
{Item("a881", Item::kTokenType), {}},
{Item("a882", Item::kTokenType), {}},
{Item("a883", Item::kTokenType), {}},
{Item("a884", Item::kTokenType), {}},
{Item("a885", Item::kTokenType), {}},
{Item("a886", Item::kTokenType), {}},
{Item("a887", Item::kTokenType), {}},
{Item("a888", Item::kTokenType), {}},
{Item("a889", Item::kTokenType), {}},
{Item("a890", Item::kTokenType), {}},
{Item("a891", Item::kTokenType), {}},
{Item("a892", Item::kTokenType), {}},
{Item("a893", Item::kTokenType), {}},
{Item("a894", Item::kTokenType), {}},
{Item("a895", Item::kTokenType), {}},
{Item("a896", Item::kTokenType), {}},
{Item("a897", Item::kTokenType), {}},
{Item("a898", Item::kTokenType), {}},
{Item("a899", Item::kTokenType), {}},
{Item("a900", Item::kTokenType), {}},
{Item("a901", Item::kTokenType), {}},
{Item("a902", Item::kTokenType), {}},
{Item("a903", Item::kTokenType), {}},
{Item("a904", Item::kTokenType), {}},
{Item("a905", Item::kTokenType), {}},
{Item("a906", Item::kTokenType), {}},
{Item("a907", Item::kTokenType), {}},
{Item("a908", Item::kTokenType), {}},
{Item("a909", Item::kTokenType), {}},
{Item("a910", Item::kTokenType), {}},
{Item("a911", Item::kTokenType), {}},
{Item("a912", Item::kTokenType), {}},
{Item("a913", Item::kTokenType), {}},
{Item("a914", Item::kTokenType), {}},
{Item("a915", Item::kTokenType), {}},
{Item("a916", Item::kTokenType), {}},
{Item("a917", Item::kTokenType), {}},
{Item("a918", Item::kTokenType), {}},
{Item("a919", Item::kTokenType), {}},
{Item("a920", Item::kTokenType), {}},
{Item("a921", Item::kTokenType), {}},
{Item("a922", Item::kTokenType), {}},
{Item("a923", Item::kTokenType), {}},
{Item("a924", Item::kTokenType), {}},
{Item("a925", Item::kTokenType), {}},
{Item("a926", Item::kTokenType), {}},
{Item("a927", Item::kTokenType), {}},
{Item("a928", Item::kTokenType), {}},
{Item("a929", Item::kTokenType), {}},
{Item("a930", Item::kTokenType), {}},
{Item("a931", Item::kTokenType), {}},
{Item("a932", Item::kTokenType), {}},
{Item("a933", Item::kTokenType), {}},
{Item("a934", Item::kTokenType), {}},
{Item("a935", Item::kTokenType), {}},
{Item("a936", Item::kTokenType), {}},
{Item("a937", Item::kTokenType), {}},
{Item("a938", Item::kTokenType), {}},
{Item("a939", Item::kTokenType), {}},
{Item("a940", Item::kTokenType), {}},
{Item("a941", Item::kTokenType), {}},
{Item("a942", Item::kTokenType), {}},
{Item("a943", Item::kTokenType), {}},
{Item("a944", Item::kTokenType), {}},
{Item("a945", Item::kTokenType), {}},
{Item("a946", Item::kTokenType), {}},
{Item("a947", Item::kTokenType), {}},
{Item("a948", Item::kTokenType), {}},
{Item("a949", Item::kTokenType), {}},
{Item("a950", Item::kTokenType), {}},
{Item("a951", Item::kTokenType), {}},
{Item("a952", Item::kTokenType), {}},
{Item("a953", Item::kTokenType), {}},
{Item("a954", Item::kTokenType), {}},
{Item("a955", Item::kTokenType), {}},
{Item("a956", Item::kTokenType), {}},
{Item("a957", Item::kTokenType), {}},
{Item("a958", Item::kTokenType), {}},
{Item("a959", Item::kTokenType), {}},
{Item("a960", Item::kTokenType), {}},
{Item("a961", Item::kTokenType), {}},
{Item("a962", Item::kTokenType), {}},
{Item("a963", Item::kTokenType), {}},
{Item("a964", Item::kTokenType), {}},
{Item("a965", Item::kTokenType), {}},
{Item("a966", Item::kTokenType), {}},
{Item("a967", Item::kTokenType), {}},
{Item("a968", Item::kTokenType), {}},
{Item("a969", Item::kTokenType), {}},
{Item("a970", Item::kTokenType), {}},
{Item("a971", Item::kTokenType), {}},
{Item("a972", Item::kTokenType), {}},
{Item("a973", Item::kTokenType), {}},
{Item("a974", Item::kTokenType), {}},
{Item("a975", Item::kTokenType), {}},
{Item("a976", Item::kTokenType), {}},
{Item("a977", Item::kTokenType), {}},
{Item("a978", Item::kTokenType), {}},
{Item("a979", Item::kTokenType), {}},
{Item("a980", Item::kTokenType), {}},
{Item("a981", Item::kTokenType), {}},
{Item("a982", Item::kTokenType), {}},
{Item("a983", Item::kTokenType), {}},
{Item("a984", Item::kTokenType), {}},
{Item("a985", Item::kTokenType), {}},
{Item("a986", Item::kTokenType), {}},
{Item("a987", Item::kTokenType), {}},
{Item("a988", Item::kTokenType), {}},
{Item("a989", Item::kTokenType), {}},
{Item("a990", Item::kTokenType), {}},
{Item("a991", Item::kTokenType), {}},
{Item("a992", Item::kTokenType), {}},
{Item("a993", Item::kTokenType), {}},
{Item("a994", Item::kTokenType), {}},
{Item("a995", Item::kTokenType), {}},
{Item("a996", Item::kTokenType), {}},
{Item("a997", Item::kTokenType), {}},
{Item("a998", Item::kTokenType), {}},
{Item("a999", Item::kTokenType), {}},
{Item("a1000", Item::kTokenType), {}},
{Item("a1001", Item::kTokenType), {}},
{Item("a1002", Item::kTokenType), {}},
{Item("a1003", Item::kTokenType), {}},
{Item("a1004", Item::kTokenType), {}},
{Item("a1005", Item::kTokenType), {}},
{Item("a1006", Item::kTokenType), {}},
{Item("a1007", Item::kTokenType), {}},
{Item("a1008", Item::kTokenType), {}},
{Item("a1009", Item::kTokenType), {}},
{Item("a1010", Item::kTokenType), {}},
{Item("a1011", Item::kTokenType), {}},
{Item("a1012", Item::kTokenType), {}},
{Item("a1013", Item::kTokenType), {}},
{Item("a1014", Item::kTokenType), {}},
{Item("a1015", Item::kTokenType), {}},
{Item("a1016", Item::kTokenType), {}},
{Item("a1017", Item::kTokenType), {}},
{Item("a1018", Item::kTokenType), {}},
{Item("a1019", Item::kTokenType), {}},
{Item("a1020", Item::kTokenType), {}},
{Item("a1021", Item::kTokenType), {}},
{Item("a1022", Item::kTokenType), {}},
{Item("a1023", Item::kTokenType), {}}}},
nullptr},
{"large parameterised list",
"foo;a0=1, foo;a1=1, foo;a2=1, foo;a3=1, foo;a4=1, foo;a5=1, foo;a6=1, "
"foo;a7=1, foo;a8=1, foo;a9=1, foo;a10=1, foo;a11=1, foo;a12=1, "
"foo;a13=1, foo;a14=1, foo;a15=1, foo;a16=1, foo;a17=1, foo;a18=1, "
"foo;a19=1, foo;a20=1, foo;a21=1, foo;a22=1, foo;a23=1, foo;a24=1, "
"foo;a25=1, foo;a26=1, foo;a27=1, foo;a28=1, foo;a29=1, foo;a30=1, "
"foo;a31=1, foo;a32=1, foo;a33=1, foo;a34=1, foo;a35=1, foo;a36=1, "
"foo;a37=1, foo;a38=1, foo;a39=1, foo;a40=1, foo;a41=1, foo;a42=1, "
"foo;a43=1, foo;a44=1, foo;a45=1, foo;a46=1, foo;a47=1, foo;a48=1, "
"foo;a49=1, foo;a50=1, foo;a51=1, foo;a52=1, foo;a53=1, foo;a54=1, "
"foo;a55=1, foo;a56=1, foo;a57=1, foo;a58=1, foo;a59=1, foo;a60=1, "
"foo;a61=1, foo;a62=1, foo;a63=1, foo;a64=1, foo;a65=1, foo;a66=1, "
"foo;a67=1, foo;a68=1, foo;a69=1, foo;a70=1, foo;a71=1, foo;a72=1, "
"foo;a73=1, foo;a74=1, foo;a75=1, foo;a76=1, foo;a77=1, foo;a78=1, "
"foo;a79=1, foo;a80=1, foo;a81=1, foo;a82=1, foo;a83=1, foo;a84=1, "
"foo;a85=1, foo;a86=1, foo;a87=1, foo;a88=1, foo;a89=1, foo;a90=1, "
"foo;a91=1, foo;a92=1, foo;a93=1, foo;a94=1, foo;a95=1, foo;a96=1, "
"foo;a97=1, foo;a98=1, foo;a99=1, foo;a100=1, foo;a101=1, foo;a102=1, "
"foo;a103=1, foo;a104=1, foo;a105=1, foo;a106=1, foo;a107=1, foo;a108=1, "
"foo;a109=1, foo;a110=1, foo;a111=1, foo;a112=1, foo;a113=1, foo;a114=1, "
"foo;a115=1, foo;a116=1, foo;a117=1, foo;a118=1, foo;a119=1, foo;a120=1, "
"foo;a121=1, foo;a122=1, foo;a123=1, foo;a124=1, foo;a125=1, foo;a126=1, "
"foo;a127=1, foo;a128=1, foo;a129=1, foo;a130=1, foo;a131=1, foo;a132=1, "
"foo;a133=1, foo;a134=1, foo;a135=1, foo;a136=1, foo;a137=1, foo;a138=1, "
"foo;a139=1, foo;a140=1, foo;a141=1, foo;a142=1, foo;a143=1, foo;a144=1, "
"foo;a145=1, foo;a146=1, foo;a147=1, foo;a148=1, foo;a149=1, foo;a150=1, "
"foo;a151=1, foo;a152=1, foo;a153=1, foo;a154=1, foo;a155=1, foo;a156=1, "
"foo;a157=1, foo;a158=1, foo;a159=1, foo;a160=1, foo;a161=1, foo;a162=1, "
"foo;a163=1, foo;a164=1, foo;a165=1, foo;a166=1, foo;a167=1, foo;a168=1, "
"foo;a169=1, foo;a170=1, foo;a171=1, foo;a172=1, foo;a173=1, foo;a174=1, "
"foo;a175=1, foo;a176=1, foo;a177=1, foo;a178=1, foo;a179=1, foo;a180=1, "
"foo;a181=1, foo;a182=1, foo;a183=1, foo;a184=1, foo;a185=1, foo;a186=1, "
"foo;a187=1, foo;a188=1, foo;a189=1, foo;a190=1, foo;a191=1, foo;a192=1, "
"foo;a193=1, foo;a194=1, foo;a195=1, foo;a196=1, foo;a197=1, foo;a198=1, "
"foo;a199=1, foo;a200=1, foo;a201=1, foo;a202=1, foo;a203=1, foo;a204=1, "
"foo;a205=1, foo;a206=1, foo;a207=1, foo;a208=1, foo;a209=1, foo;a210=1, "
"foo;a211=1, foo;a212=1, foo;a213=1, foo;a214=1, foo;a215=1, foo;a216=1, "
"foo;a217=1, foo;a218=1, foo;a219=1, foo;a220=1, foo;a221=1, foo;a222=1, "
"foo;a223=1, foo;a224=1, foo;a225=1, foo;a226=1, foo;a227=1, foo;a228=1, "
"foo;a229=1, foo;a230=1, foo;a231=1, foo;a232=1, foo;a233=1, foo;a234=1, "
"foo;a235=1, foo;a236=1, foo;a237=1, foo;a238=1, foo;a239=1, foo;a240=1, "
"foo;a241=1, foo;a242=1, foo;a243=1, foo;a244=1, foo;a245=1, foo;a246=1, "
"foo;a247=1, foo;a248=1, foo;a249=1, foo;a250=1, foo;a251=1, foo;a252=1, "
"foo;a253=1, foo;a254=1, foo;a255=1, foo;a256=1, foo;a257=1, foo;a258=1, "
"foo;a259=1, foo;a260=1, foo;a261=1, foo;a262=1, foo;a263=1, foo;a264=1, "
"foo;a265=1, foo;a266=1, foo;a267=1, foo;a268=1, foo;a269=1, foo;a270=1, "
"foo;a271=1, foo;a272=1, foo;a273=1, foo;a274=1, foo;a275=1, foo;a276=1, "
"foo;a277=1, foo;a278=1, foo;a279=1, foo;a280=1, foo;a281=1, foo;a282=1, "
"foo;a283=1, foo;a284=1, foo;a285=1, foo;a286=1, foo;a287=1, foo;a288=1, "
"foo;a289=1, foo;a290=1, foo;a291=1, foo;a292=1, foo;a293=1, foo;a294=1, "
"foo;a295=1, foo;a296=1, foo;a297=1, foo;a298=1, foo;a299=1, foo;a300=1, "
"foo;a301=1, foo;a302=1, foo;a303=1, foo;a304=1, foo;a305=1, foo;a306=1, "
"foo;a307=1, foo;a308=1, foo;a309=1, foo;a310=1, foo;a311=1, foo;a312=1, "
"foo;a313=1, foo;a314=1, foo;a315=1, foo;a316=1, foo;a317=1, foo;a318=1, "
"foo;a319=1, foo;a320=1, foo;a321=1, foo;a322=1, foo;a323=1, foo;a324=1, "
"foo;a325=1, foo;a326=1, foo;a327=1, foo;a328=1, foo;a329=1, foo;a330=1, "
"foo;a331=1, foo;a332=1, foo;a333=1, foo;a334=1, foo;a335=1, foo;a336=1, "
"foo;a337=1, foo;a338=1, foo;a339=1, foo;a340=1, foo;a341=1, foo;a342=1, "
"foo;a343=1, foo;a344=1, foo;a345=1, foo;a346=1, foo;a347=1, foo;a348=1, "
"foo;a349=1, foo;a350=1, foo;a351=1, foo;a352=1, foo;a353=1, foo;a354=1, "
"foo;a355=1, foo;a356=1, foo;a357=1, foo;a358=1, foo;a359=1, foo;a360=1, "
"foo;a361=1, foo;a362=1, foo;a363=1, foo;a364=1, foo;a365=1, foo;a366=1, "
"foo;a367=1, foo;a368=1, foo;a369=1, foo;a370=1, foo;a371=1, foo;a372=1, "
"foo;a373=1, foo;a374=1, foo;a375=1, foo;a376=1, foo;a377=1, foo;a378=1, "
"foo;a379=1, foo;a380=1, foo;a381=1, foo;a382=1, foo;a383=1, foo;a384=1, "
"foo;a385=1, foo;a386=1, foo;a387=1, foo;a388=1, foo;a389=1, foo;a390=1, "
"foo;a391=1, foo;a392=1, foo;a393=1, foo;a394=1, foo;a395=1, foo;a396=1, "
"foo;a397=1, foo;a398=1, foo;a399=1, foo;a400=1, foo;a401=1, foo;a402=1, "
"foo;a403=1, foo;a404=1, foo;a405=1, foo;a406=1, foo;a407=1, foo;a408=1, "
"foo;a409=1, foo;a410=1, foo;a411=1, foo;a412=1, foo;a413=1, foo;a414=1, "
"foo;a415=1, foo;a416=1, foo;a417=1, foo;a418=1, foo;a419=1, foo;a420=1, "
"foo;a421=1, foo;a422=1, foo;a423=1, foo;a424=1, foo;a425=1, foo;a426=1, "
"foo;a427=1, foo;a428=1, foo;a429=1, foo;a430=1, foo;a431=1, foo;a432=1, "
"foo;a433=1, foo;a434=1, foo;a435=1, foo;a436=1, foo;a437=1, foo;a438=1, "
"foo;a439=1, foo;a440=1, foo;a441=1, foo;a442=1, foo;a443=1, foo;a444=1, "
"foo;a445=1, foo;a446=1, foo;a447=1, foo;a448=1, foo;a449=1, foo;a450=1, "
"foo;a451=1, foo;a452=1, foo;a453=1, foo;a454=1, foo;a455=1, foo;a456=1, "
"foo;a457=1, foo;a458=1, foo;a459=1, foo;a460=1, foo;a461=1, foo;a462=1, "
"foo;a463=1, foo;a464=1, foo;a465=1, foo;a466=1, foo;a467=1, foo;a468=1, "
"foo;a469=1, foo;a470=1, foo;a471=1, foo;a472=1, foo;a473=1, foo;a474=1, "
"foo;a475=1, foo;a476=1, foo;a477=1, foo;a478=1, foo;a479=1, foo;a480=1, "
"foo;a481=1, foo;a482=1, foo;a483=1, foo;a484=1, foo;a485=1, foo;a486=1, "
"foo;a487=1, foo;a488=1, foo;a489=1, foo;a490=1, foo;a491=1, foo;a492=1, "
"foo;a493=1, foo;a494=1, foo;a495=1, foo;a496=1, foo;a497=1, foo;a498=1, "
"foo;a499=1, foo;a500=1, foo;a501=1, foo;a502=1, foo;a503=1, foo;a504=1, "
"foo;a505=1, foo;a506=1, foo;a507=1, foo;a508=1, foo;a509=1, foo;a510=1, "
"foo;a511=1, foo;a512=1, foo;a513=1, foo;a514=1, foo;a515=1, foo;a516=1, "
"foo;a517=1, foo;a518=1, foo;a519=1, foo;a520=1, foo;a521=1, foo;a522=1, "
"foo;a523=1, foo;a524=1, foo;a525=1, foo;a526=1, foo;a527=1, foo;a528=1, "
"foo;a529=1, foo;a530=1, foo;a531=1, foo;a532=1, foo;a533=1, foo;a534=1, "
"foo;a535=1, foo;a536=1, foo;a537=1, foo;a538=1, foo;a539=1, foo;a540=1, "
"foo;a541=1, foo;a542=1, foo;a543=1, foo;a544=1, foo;a545=1, foo;a546=1, "
"foo;a547=1, foo;a548=1, foo;a549=1, foo;a550=1, foo;a551=1, foo;a552=1, "
"foo;a553=1, foo;a554=1, foo;a555=1, foo;a556=1, foo;a557=1, foo;a558=1, "
"foo;a559=1, foo;a560=1, foo;a561=1, foo;a562=1, foo;a563=1, foo;a564=1, "
"foo;a565=1, foo;a566=1, foo;a567=1, foo;a568=1, foo;a569=1, foo;a570=1, "
"foo;a571=1, foo;a572=1, foo;a573=1, foo;a574=1, foo;a575=1, foo;a576=1, "
"foo;a577=1, foo;a578=1, foo;a579=1, foo;a580=1, foo;a581=1, foo;a582=1, "
"foo;a583=1, foo;a584=1, foo;a585=1, foo;a586=1, foo;a587=1, foo;a588=1, "
"foo;a589=1, foo;a590=1, foo;a591=1, foo;a592=1, foo;a593=1, foo;a594=1, "
"foo;a595=1, foo;a596=1, foo;a597=1, foo;a598=1, foo;a599=1, foo;a600=1, "
"foo;a601=1, foo;a602=1, foo;a603=1, foo;a604=1, foo;a605=1, foo;a606=1, "
"foo;a607=1, foo;a608=1, foo;a609=1, foo;a610=1, foo;a611=1, foo;a612=1, "
"foo;a613=1, foo;a614=1, foo;a615=1, foo;a616=1, foo;a617=1, foo;a618=1, "
"foo;a619=1, foo;a620=1, foo;a621=1, foo;a622=1, foo;a623=1, foo;a624=1, "
"foo;a625=1, foo;a626=1, foo;a627=1, foo;a628=1, foo;a629=1, foo;a630=1, "
"foo;a631=1, foo;a632=1, foo;a633=1, foo;a634=1, foo;a635=1, foo;a636=1, "
"foo;a637=1, foo;a638=1, foo;a639=1, foo;a640=1, foo;a641=1, foo;a642=1, "
"foo;a643=1, foo;a644=1, foo;a645=1, foo;a646=1, foo;a647=1, foo;a648=1, "
"foo;a649=1, foo;a650=1, foo;a651=1, foo;a652=1, foo;a653=1, foo;a654=1, "
"foo;a655=1, foo;a656=1, foo;a657=1, foo;a658=1, foo;a659=1, foo;a660=1, "
"foo;a661=1, foo;a662=1, foo;a663=1, foo;a664=1, foo;a665=1, foo;a666=1, "
"foo;a667=1, foo;a668=1, foo;a669=1, foo;a670=1, foo;a671=1, foo;a672=1, "
"foo;a673=1, foo;a674=1, foo;a675=1, foo;a676=1, foo;a677=1, foo;a678=1, "
"foo;a679=1, foo;a680=1, foo;a681=1, foo;a682=1, foo;a683=1, foo;a684=1, "
"foo;a685=1, foo;a686=1, foo;a687=1, foo;a688=1, foo;a689=1, foo;a690=1, "
"foo;a691=1, foo;a692=1, foo;a693=1, foo;a694=1, foo;a695=1, foo;a696=1, "
"foo;a697=1, foo;a698=1, foo;a699=1, foo;a700=1, foo;a701=1, foo;a702=1, "
"foo;a703=1, foo;a704=1, foo;a705=1, foo;a706=1, foo;a707=1, foo;a708=1, "
"foo;a709=1, foo;a710=1, foo;a711=1, foo;a712=1, foo;a713=1, foo;a714=1, "
"foo;a715=1, foo;a716=1, foo;a717=1, foo;a718=1, foo;a719=1, foo;a720=1, "
"foo;a721=1, foo;a722=1, foo;a723=1, foo;a724=1, foo;a725=1, foo;a726=1, "
"foo;a727=1, foo;a728=1, foo;a729=1, foo;a730=1, foo;a731=1, foo;a732=1, "
"foo;a733=1, foo;a734=1, foo;a735=1, foo;a736=1, foo;a737=1, foo;a738=1, "
"foo;a739=1, foo;a740=1, foo;a741=1, foo;a742=1, foo;a743=1, foo;a744=1, "
"foo;a745=1, foo;a746=1, foo;a747=1, foo;a748=1, foo;a749=1, foo;a750=1, "
"foo;a751=1, foo;a752=1, foo;a753=1, foo;a754=1, foo;a755=1, foo;a756=1, "
"foo;a757=1, foo;a758=1, foo;a759=1, foo;a760=1, foo;a761=1, foo;a762=1, "
"foo;a763=1, foo;a764=1, foo;a765=1, foo;a766=1, foo;a767=1, foo;a768=1, "
"foo;a769=1, foo;a770=1, foo;a771=1, foo;a772=1, foo;a773=1, foo;a774=1, "
"foo;a775=1, foo;a776=1, foo;a777=1, foo;a778=1, foo;a779=1, foo;a780=1, "
"foo;a781=1, foo;a782=1, foo;a783=1, foo;a784=1, foo;a785=1, foo;a786=1, "
"foo;a787=1, foo;a788=1, foo;a789=1, foo;a790=1, foo;a791=1, foo;a792=1, "
"foo;a793=1, foo;a794=1, foo;a795=1, foo;a796=1, foo;a797=1, foo;a798=1, "
"foo;a799=1, foo;a800=1, foo;a801=1, foo;a802=1, foo;a803=1, foo;a804=1, "
"foo;a805=1, foo;a806=1, foo;a807=1, foo;a808=1, foo;a809=1, foo;a810=1, "
"foo;a811=1, foo;a812=1, foo;a813=1, foo;a814=1, foo;a815=1, foo;a816=1, "
"foo;a817=1, foo;a818=1, foo;a819=1, foo;a820=1, foo;a821=1, foo;a822=1, "
"foo;a823=1, foo;a824=1, foo;a825=1, foo;a826=1, foo;a827=1, foo;a828=1, "
"foo;a829=1, foo;a830=1, foo;a831=1, foo;a832=1, foo;a833=1, foo;a834=1, "
"foo;a835=1, foo;a836=1, foo;a837=1, foo;a838=1, foo;a839=1, foo;a840=1, "
"foo;a841=1, foo;a842=1, foo;a843=1, foo;a844=1, foo;a845=1, foo;a846=1, "
"foo;a847=1, foo;a848=1, foo;a849=1, foo;a850=1, foo;a851=1, foo;a852=1, "
"foo;a853=1, foo;a854=1, foo;a855=1, foo;a856=1, foo;a857=1, foo;a858=1, "
"foo;a859=1, foo;a860=1, foo;a861=1, foo;a862=1, foo;a863=1, foo;a864=1, "
"foo;a865=1, foo;a866=1, foo;a867=1, foo;a868=1, foo;a869=1, foo;a870=1, "
"foo;a871=1, foo;a872=1, foo;a873=1, foo;a874=1, foo;a875=1, foo;a876=1, "
"foo;a877=1, foo;a878=1, foo;a879=1, foo;a880=1, foo;a881=1, foo;a882=1, "
"foo;a883=1, foo;a884=1, foo;a885=1, foo;a886=1, foo;a887=1, foo;a888=1, "
"foo;a889=1, foo;a890=1, foo;a891=1, foo;a892=1, foo;a893=1, foo;a894=1, "
"foo;a895=1, foo;a896=1, foo;a897=1, foo;a898=1, foo;a899=1, foo;a900=1, "
"foo;a901=1, foo;a902=1, foo;a903=1, foo;a904=1, foo;a905=1, foo;a906=1, "
"foo;a907=1, foo;a908=1, foo;a909=1, foo;a910=1, foo;a911=1, foo;a912=1, "
"foo;a913=1, foo;a914=1, foo;a915=1, foo;a916=1, foo;a917=1, foo;a918=1, "
"foo;a919=1, foo;a920=1, foo;a921=1, foo;a922=1, foo;a923=1, foo;a924=1, "
"foo;a925=1, foo;a926=1, foo;a927=1, foo;a928=1, foo;a929=1, foo;a930=1, "
"foo;a931=1, foo;a932=1, foo;a933=1, foo;a934=1, foo;a935=1, foo;a936=1, "
"foo;a937=1, foo;a938=1, foo;a939=1, foo;a940=1, foo;a941=1, foo;a942=1, "
"foo;a943=1, foo;a944=1, foo;a945=1, foo;a946=1, foo;a947=1, foo;a948=1, "
"foo;a949=1, foo;a950=1, foo;a951=1, foo;a952=1, foo;a953=1, foo;a954=1, "
"foo;a955=1, foo;a956=1, foo;a957=1, foo;a958=1, foo;a959=1, foo;a960=1, "
"foo;a961=1, foo;a962=1, foo;a963=1, foo;a964=1, foo;a965=1, foo;a966=1, "
"foo;a967=1, foo;a968=1, foo;a969=1, foo;a970=1, foo;a971=1, foo;a972=1, "
"foo;a973=1, foo;a974=1, foo;a975=1, foo;a976=1, foo;a977=1, foo;a978=1, "
"foo;a979=1, foo;a980=1, foo;a981=1, foo;a982=1, foo;a983=1, foo;a984=1, "
"foo;a985=1, foo;a986=1, foo;a987=1, foo;a988=1, foo;a989=1, foo;a990=1, "
"foo;a991=1, foo;a992=1, foo;a993=1, foo;a994=1, foo;a995=1, foo;a996=1, "
"foo;a997=1, foo;a998=1, foo;a999=1, foo;a1000=1, foo;a1001=1, "
"foo;a1002=1, foo;a1003=1, foo;a1004=1, foo;a1005=1, foo;a1006=1, "
"foo;a1007=1, foo;a1008=1, foo;a1009=1, foo;a1010=1, foo;a1011=1, "
"foo;a1012=1, foo;a1013=1, foo;a1014=1, foo;a1015=1, foo;a1016=1, "
"foo;a1017=1, foo;a1018=1, foo;a1019=1, foo;a1020=1, foo;a1021=1, "
"foo;a1022=1, foo;a1023=1",
12200,
{{{Item("foo", Item::kTokenType), {Param("a0", 1)}},
{Item("foo", Item::kTokenType), {Param("a1", 1)}},
{Item("foo", Item::kTokenType), {Param("a2", 1)}},
{Item("foo", Item::kTokenType), {Param("a3", 1)}},
{Item("foo", Item::kTokenType), {Param("a4", 1)}},
{Item("foo", Item::kTokenType), {Param("a5", 1)}},
{Item("foo", Item::kTokenType), {Param("a6", 1)}},
{Item("foo", Item::kTokenType), {Param("a7", 1)}},
{Item("foo", Item::kTokenType), {Param("a8", 1)}},
{Item("foo", Item::kTokenType), {Param("a9", 1)}},
{Item("foo", Item::kTokenType), {Param("a10", 1)}},
{Item("foo", Item::kTokenType), {Param("a11", 1)}},
{Item("foo", Item::kTokenType), {Param("a12", 1)}},
{Item("foo", Item::kTokenType), {Param("a13", 1)}},
{Item("foo", Item::kTokenType), {Param("a14", 1)}},
{Item("foo", Item::kTokenType), {Param("a15", 1)}},
{Item("foo", Item::kTokenType), {Param("a16", 1)}},
{Item("foo", Item::kTokenType), {Param("a17", 1)}},
{Item("foo", Item::kTokenType), {Param("a18", 1)}},
{Item("foo", Item::kTokenType), {Param("a19", 1)}},
{Item("foo", Item::kTokenType), {Param("a20", 1)}},
{Item("foo", Item::kTokenType), {Param("a21", 1)}},
{Item("foo", Item::kTokenType), {Param("a22", 1)}},
{Item("foo", Item::kTokenType), {Param("a23", 1)}},
{Item("foo", Item::kTokenType), {Param("a24", 1)}},
{Item("foo", Item::kTokenType), {Param("a25", 1)}},
{Item("foo", Item::kTokenType), {Param("a26", 1)}},
{Item("foo", Item::kTokenType), {Param("a27", 1)}},
{Item("foo", Item::kTokenType), {Param("a28", 1)}},
{Item("foo", Item::kTokenType), {Param("a29", 1)}},
{Item("foo", Item::kTokenType), {Param("a30", 1)}},
{Item("foo", Item::kTokenType), {Param("a31", 1)}},
{Item("foo", Item::kTokenType), {Param("a32", 1)}},
{Item("foo", Item::kTokenType), {Param("a33", 1)}},
{Item("foo", Item::kTokenType), {Param("a34", 1)}},
{Item("foo", Item::kTokenType), {Param("a35", 1)}},
{Item("foo", Item::kTokenType), {Param("a36", 1)}},
{Item("foo", Item::kTokenType), {Param("a37", 1)}},
{Item("foo", Item::kTokenType), {Param("a38", 1)}},
{Item("foo", Item::kTokenType), {Param("a39", 1)}},
{Item("foo", Item::kTokenType), {Param("a40", 1)}},
{Item("foo", Item::kTokenType), {Param("a41", 1)}},
{Item("foo", Item::kTokenType), {Param("a42", 1)}},
{Item("foo", Item::kTokenType), {Param("a43", 1)}},
{Item("foo", Item::kTokenType), {Param("a44", 1)}},
{Item("foo", Item::kTokenType), {Param("a45", 1)}},
{Item("foo", Item::kTokenType), {Param("a46", 1)}},
{Item("foo", Item::kTokenType), {Param("a47", 1)}},
{Item("foo", Item::kTokenType), {Param("a48", 1)}},
{Item("foo", Item::kTokenType), {Param("a49", 1)}},
{Item("foo", Item::kTokenType), {Param("a50", 1)}},
{Item("foo", Item::kTokenType), {Param("a51", 1)}},
{Item("foo", Item::kTokenType), {Param("a52", 1)}},
{Item("foo", Item::kTokenType), {Param("a53", 1)}},
{Item("foo", Item::kTokenType), {Param("a54", 1)}},
{Item("foo", Item::kTokenType), {Param("a55", 1)}},
{Item("foo", Item::kTokenType), {Param("a56", 1)}},
{Item("foo", Item::kTokenType), {Param("a57", 1)}},
{Item("foo", Item::kTokenType), {Param("a58", 1)}},
{Item("foo", Item::kTokenType), {Param("a59", 1)}},
{Item("foo", Item::kTokenType), {Param("a60", 1)}},
{Item("foo", Item::kTokenType), {Param("a61", 1)}},
{Item("foo", Item::kTokenType), {Param("a62", 1)}},
{Item("foo", Item::kTokenType), {Param("a63", 1)}},
{Item("foo", Item::kTokenType), {Param("a64", 1)}},
{Item("foo", Item::kTokenType), {Param("a65", 1)}},
{Item("foo", Item::kTokenType), {Param("a66", 1)}},
{Item("foo", Item::kTokenType), {Param("a67", 1)}},
{Item("foo", Item::kTokenType), {Param("a68", 1)}},
{Item("foo", Item::kTokenType), {Param("a69", 1)}},
{Item("foo", Item::kTokenType), {Param("a70", 1)}},
{Item("foo", Item::kTokenType), {Param("a71", 1)}},
{Item("foo", Item::kTokenType), {Param("a72", 1)}},
{Item("foo", Item::kTokenType), {Param("a73", 1)}},
{Item("foo", Item::kTokenType), {Param("a74", 1)}},
{Item("foo", Item::kTokenType), {Param("a75", 1)}},
{Item("foo", Item::kTokenType), {Param("a76", 1)}},
{Item("foo", Item::kTokenType), {Param("a77", 1)}},
{Item("foo", Item::kTokenType), {Param("a78", 1)}},
{Item("foo", Item::kTokenType), {Param("a79", 1)}},
{Item("foo", Item::kTokenType), {Param("a80", 1)}},
{Item("foo", Item::kTokenType), {Param("a81", 1)}},
{Item("foo", Item::kTokenType), {Param("a82", 1)}},
{Item("foo", Item::kTokenType), {Param("a83", 1)}},
{Item("foo", Item::kTokenType), {Param("a84", 1)}},
{Item("foo", Item::kTokenType), {Param("a85", 1)}},
{Item("foo", Item::kTokenType), {Param("a86", 1)}},
{Item("foo", Item::kTokenType), {Param("a87", 1)}},
{Item("foo", Item::kTokenType), {Param("a88", 1)}},
{Item("foo", Item::kTokenType), {Param("a89", 1)}},
{Item("foo", Item::kTokenType), {Param("a90", 1)}},
{Item("foo", Item::kTokenType), {Param("a91", 1)}},
{Item("foo", Item::kTokenType), {Param("a92", 1)}},
{Item("foo", Item::kTokenType), {Param("a93", 1)}},
{Item("foo", Item::kTokenType), {Param("a94", 1)}},
{Item("foo", Item::kTokenType), {Param("a95", 1)}},
{Item("foo", Item::kTokenType), {Param("a96", 1)}},
{Item("foo", Item::kTokenType), {Param("a97", 1)}},
{Item("foo", Item::kTokenType), {Param("a98", 1)}},
{Item("foo", Item::kTokenType), {Param("a99", 1)}},
{Item("foo", Item::kTokenType), {Param("a100", 1)}},
{Item("foo", Item::kTokenType), {Param("a101", 1)}},
{Item("foo", Item::kTokenType), {Param("a102", 1)}},
{Item("foo", Item::kTokenType), {Param("a103", 1)}},
{Item("foo", Item::kTokenType), {Param("a104", 1)}},
{Item("foo", Item::kTokenType), {Param("a105", 1)}},
{Item("foo", Item::kTokenType), {Param("a106", 1)}},
{Item("foo", Item::kTokenType), {Param("a107", 1)}},
{Item("foo", Item::kTokenType), {Param("a108", 1)}},
{Item("foo", Item::kTokenType), {Param("a109", 1)}},
{Item("foo", Item::kTokenType), {Param("a110", 1)}},
{Item("foo", Item::kTokenType), {Param("a111", 1)}},
{Item("foo", Item::kTokenType), {Param("a112", 1)}},
{Item("foo", Item::kTokenType), {Param("a113", 1)}},
{Item("foo", Item::kTokenType), {Param("a114", 1)}},
{Item("foo", Item::kTokenType), {Param("a115", 1)}},
{Item("foo", Item::kTokenType), {Param("a116", 1)}},
{Item("foo", Item::kTokenType), {Param("a117", 1)}},
{Item("foo", Item::kTokenType), {Param("a118", 1)}},
{Item("foo", Item::kTokenType), {Param("a119", 1)}},
{Item("foo", Item::kTokenType), {Param("a120", 1)}},
{Item("foo", Item::kTokenType), {Param("a121", 1)}},
{Item("foo", Item::kTokenType), {Param("a122", 1)}},
{Item("foo", Item::kTokenType), {Param("a123", 1)}},
{Item("foo", Item::kTokenType), {Param("a124", 1)}},
{Item("foo", Item::kTokenType), {Param("a125", 1)}},
{Item("foo", Item::kTokenType), {Param("a126", 1)}},
{Item("foo", Item::kTokenType), {Param("a127", 1)}},
{Item("foo", Item::kTokenType), {Param("a128", 1)}},
{Item("foo", Item::kTokenType), {Param("a129", 1)}},
{Item("foo", Item::kTokenType), {Param("a130", 1)}},
{Item("foo", Item::kTokenType), {Param("a131", 1)}},
{Item("foo", Item::kTokenType), {Param("a132", 1)}},
{Item("foo", Item::kTokenType), {Param("a133", 1)}},
{Item("foo", Item::kTokenType), {Param("a134", 1)}},
{Item("foo", Item::kTokenType), {Param("a135", 1)}},
{Item("foo", Item::kTokenType), {Param("a136", 1)}},
{Item("foo", Item::kTokenType), {Param("a137", 1)}},
{Item("foo", Item::kTokenType), {Param("a138", 1)}},
{Item("foo", Item::kTokenType), {Param("a139", 1)}},
{Item("foo", Item::kTokenType), {Param("a140", 1)}},
{Item("foo", Item::kTokenType), {Param("a141", 1)}},
{Item("foo", Item::kTokenType), {Param("a142", 1)}},
{Item("foo", Item::kTokenType), {Param("a143", 1)}},
{Item("foo", Item::kTokenType), {Param("a144", 1)}},
{Item("foo", Item::kTokenType), {Param("a145", 1)}},
{Item("foo", Item::kTokenType), {Param("a146", 1)}},
{Item("foo", Item::kTokenType), {Param("a147", 1)}},
{Item("foo", Item::kTokenType), {Param("a148", 1)}},
{Item("foo", Item::kTokenType), {Param("a149", 1)}},
{Item("foo", Item::kTokenType), {Param("a150", 1)}},
{Item("foo", Item::kTokenType), {Param("a151", 1)}},
{Item("foo", Item::kTokenType), {Param("a152", 1)}},
{Item("foo", Item::kTokenType), {Param("a153", 1)}},
{Item("foo", Item::kTokenType), {Param("a154", 1)}},
{Item("foo", Item::kTokenType), {Param("a155", 1)}},
{Item("foo", Item::kTokenType), {Param("a156", 1)}},
{Item("foo", Item::kTokenType), {Param("a157", 1)}},
{Item("foo", Item::kTokenType), {Param("a158", 1)}},
{Item("foo", Item::kTokenType), {Param("a159", 1)}},
{Item("foo", Item::kTokenType), {Param("a160", 1)}},
{Item("foo", Item::kTokenType), {Param("a161", 1)}},
{Item("foo", Item::kTokenType), {Param("a162", 1)}},
{Item("foo", Item::kTokenType), {Param("a163", 1)}},
{Item("foo", Item::kTokenType), {Param("a164", 1)}},
{Item("foo", Item::kTokenType), {Param("a165", 1)}},
{Item("foo", Item::kTokenType), {Param("a166", 1)}},
{Item("foo", Item::kTokenType), {Param("a167", 1)}},
{Item("foo", Item::kTokenType), {Param("a168", 1)}},
{Item("foo", Item::kTokenType), {Param("a169", 1)}},
{Item("foo", Item::kTokenType), {Param("a170", 1)}},
{Item("foo", Item::kTokenType), {Param("a171", 1)}},
{Item("foo", Item::kTokenType), {Param("a172", 1)}},
{Item("foo", Item::kTokenType), {Param("a173", 1)}},
{Item("foo", Item::kTokenType), {Param("a174", 1)}},
{Item("foo", Item::kTokenType), {Param("a175", 1)}},
{Item("foo", Item::kTokenType), {Param("a176", 1)}},
{Item("foo", Item::kTokenType), {Param("a177", 1)}},
{Item("foo", Item::kTokenType), {Param("a178", 1)}},
{Item("foo", Item::kTokenType), {Param("a179", 1)}},
{Item("foo", Item::kTokenType), {Param("a180", 1)}},
{Item("foo", Item::kTokenType), {Param("a181", 1)}},
{Item("foo", Item::kTokenType), {Param("a182", 1)}},
{Item("foo", Item::kTokenType), {Param("a183", 1)}},
{Item("foo", Item::kTokenType), {Param("a184", 1)}},
{Item("foo", Item::kTokenType), {Param("a185", 1)}},
{Item("foo", Item::kTokenType), {Param("a186", 1)}},
{Item("foo", Item::kTokenType), {Param("a187", 1)}},
{Item("foo", Item::kTokenType), {Param("a188", 1)}},
{Item("foo", Item::kTokenType), {Param("a189", 1)}},
{Item("foo", Item::kTokenType), {Param("a190", 1)}},
{Item("foo", Item::kTokenType), {Param("a191", 1)}},
{Item("foo", Item::kTokenType), {Param("a192", 1)}},
{Item("foo", Item::kTokenType), {Param("a193", 1)}},
{Item("foo", Item::kTokenType), {Param("a194", 1)}},
{Item("foo", Item::kTokenType), {Param("a195", 1)}},
{Item("foo", Item::kTokenType), {Param("a196", 1)}},
{Item("foo", Item::kTokenType), {Param("a197", 1)}},
{Item("foo", Item::kTokenType), {Param("a198", 1)}},
{Item("foo", Item::kTokenType), {Param("a199", 1)}},
{Item("foo", Item::kTokenType), {Param("a200", 1)}},
{Item("foo", Item::kTokenType), {Param("a201", 1)}},
{Item("foo", Item::kTokenType), {Param("a202", 1)}},
{Item("foo", Item::kTokenType), {Param("a203", 1)}},
{Item("foo", Item::kTokenType), {Param("a204", 1)}},
{Item("foo", Item::kTokenType), {Param("a205", 1)}},
{Item("foo", Item::kTokenType), {Param("a206", 1)}},
{Item("foo", Item::kTokenType), {Param("a207", 1)}},
{Item("foo", Item::kTokenType), {Param("a208", 1)}},
{Item("foo", Item::kTokenType), {Param("a209", 1)}},
{Item("foo", Item::kTokenType), {Param("a210", 1)}},
{Item("foo", Item::kTokenType), {Param("a211", 1)}},
{Item("foo", Item::kTokenType), {Param("a212", 1)}},
{Item("foo", Item::kTokenType), {Param("a213", 1)}},
{Item("foo", Item::kTokenType), {Param("a214", 1)}},
{Item("foo", Item::kTokenType), {Param("a215", 1)}},
{Item("foo", Item::kTokenType), {Param("a216", 1)}},
{Item("foo", Item::kTokenType), {Param("a217", 1)}},
{Item("foo", Item::kTokenType), {Param("a218", 1)}},
{Item("foo", Item::kTokenType), {Param("a219", 1)}},
{Item("foo", Item::kTokenType), {Param("a220", 1)}},
{Item("foo", Item::kTokenType), {Param("a221", 1)}},
{Item("foo", Item::kTokenType), {Param("a222", 1)}},
{Item("foo", Item::kTokenType), {Param("a223", 1)}},
{Item("foo", Item::kTokenType), {Param("a224", 1)}},
{Item("foo", Item::kTokenType), {Param("a225", 1)}},
{Item("foo", Item::kTokenType), {Param("a226", 1)}},
{Item("foo", Item::kTokenType), {Param("a227", 1)}},
{Item("foo", Item::kTokenType), {Param("a228", 1)}},
{Item("foo", Item::kTokenType), {Param("a229", 1)}},
{Item("foo", Item::kTokenType), {Param("a230", 1)}},
{Item("foo", Item::kTokenType), {Param("a231", 1)}},
{Item("foo", Item::kTokenType), {Param("a232", 1)}},
{Item("foo", Item::kTokenType), {Param("a233", 1)}},
{Item("foo", Item::kTokenType), {Param("a234", 1)}},
{Item("foo", Item::kTokenType), {Param("a235", 1)}},
{Item("foo", Item::kTokenType), {Param("a236", 1)}},
{Item("foo", Item::kTokenType), {Param("a237", 1)}},
{Item("foo", Item::kTokenType), {Param("a238", 1)}},
{Item("foo", Item::kTokenType), {Param("a239", 1)}},
{Item("foo", Item::kTokenType), {Param("a240", 1)}},
{Item("foo", Item::kTokenType), {Param("a241", 1)}},
{Item("foo", Item::kTokenType), {Param("a242", 1)}},
{Item("foo", Item::kTokenType), {Param("a243", 1)}},
{Item("foo", Item::kTokenType), {Param("a244", 1)}},
{Item("foo", Item::kTokenType), {Param("a245", 1)}},
{Item("foo", Item::kTokenType), {Param("a246", 1)}},
{Item("foo", Item::kTokenType), {Param("a247", 1)}},
{Item("foo", Item::kTokenType), {Param("a248", 1)}},
{Item("foo", Item::kTokenType), {Param("a249", 1)}},
{Item("foo", Item::kTokenType), {Param("a250", 1)}},
{Item("foo", Item::kTokenType), {Param("a251", 1)}},
{Item("foo", Item::kTokenType), {Param("a252", 1)}},
{Item("foo", Item::kTokenType), {Param("a253", 1)}},
{Item("foo", Item::kTokenType), {Param("a254", 1)}},
{Item("foo", Item::kTokenType), {Param("a255", 1)}},
{Item("foo", Item::kTokenType), {Param("a256", 1)}},
{Item("foo", Item::kTokenType), {Param("a257", 1)}},
{Item("foo", Item::kTokenType), {Param("a258", 1)}},
{Item("foo", Item::kTokenType), {Param("a259", 1)}},
{Item("foo", Item::kTokenType), {Param("a260", 1)}},
{Item("foo", Item::kTokenType), {Param("a261", 1)}},
{Item("foo", Item::kTokenType), {Param("a262", 1)}},
{Item("foo", Item::kTokenType), {Param("a263", 1)}},
{Item("foo", Item::kTokenType), {Param("a264", 1)}},
{Item("foo", Item::kTokenType), {Param("a265", 1)}},
{Item("foo", Item::kTokenType), {Param("a266", 1)}},
{Item("foo", Item::kTokenType), {Param("a267", 1)}},
{Item("foo", Item::kTokenType), {Param("a268", 1)}},
{Item("foo", Item::kTokenType), {Param("a269", 1)}},
{Item("foo", Item::kTokenType), {Param("a270", 1)}},
{Item("foo", Item::kTokenType), {Param("a271", 1)}},
{Item("foo", Item::kTokenType), {Param("a272", 1)}},
{Item("foo", Item::kTokenType), {Param("a273", 1)}},
{Item("foo", Item::kTokenType), {Param("a274", 1)}},
{Item("foo", Item::kTokenType), {Param("a275", 1)}},
{Item("foo", Item::kTokenType), {Param("a276", 1)}},
{Item("foo", Item::kTokenType), {Param("a277", 1)}},
{Item("foo", Item::kTokenType), {Param("a278", 1)}},
{Item("foo", Item::kTokenType), {Param("a279", 1)}},
{Item("foo", Item::kTokenType), {Param("a280", 1)}},
{Item("foo", Item::kTokenType), {Param("a281", 1)}},
{Item("foo", Item::kTokenType), {Param("a282", 1)}},
{Item("foo", Item::kTokenType), {Param("a283", 1)}},
{Item("foo", Item::kTokenType), {Param("a284", 1)}},
{Item("foo", Item::kTokenType), {Param("a285", 1)}},
{Item("foo", Item::kTokenType), {Param("a286", 1)}},
{Item("foo", Item::kTokenType), {Param("a287", 1)}},
{Item("foo", Item::kTokenType), {Param("a288", 1)}},
{Item("foo", Item::kTokenType), {Param("a289", 1)}},
{Item("foo", Item::kTokenType), {Param("a290", 1)}},
{Item("foo", Item::kTokenType), {Param("a291", 1)}},
{Item("foo", Item::kTokenType), {Param("a292", 1)}},
{Item("foo", Item::kTokenType), {Param("a293", 1)}},
{Item("foo", Item::kTokenType), {Param("a294", 1)}},
{Item("foo", Item::kTokenType), {Param("a295", 1)}},
{Item("foo", Item::kTokenType), {Param("a296", 1)}},
{Item("foo", Item::kTokenType), {Param("a297", 1)}},
{Item("foo", Item::kTokenType), {Param("a298", 1)}},
{Item("foo", Item::kTokenType), {Param("a299", 1)}},
{Item("foo", Item::kTokenType), {Param("a300", 1)}},
{Item("foo", Item::kTokenType), {Param("a301", 1)}},
{Item("foo", Item::kTokenType), {Param("a302", 1)}},
{Item("foo", Item::kTokenType), {Param("a303", 1)}},
{Item("foo", Item::kTokenType), {Param("a304", 1)}},
{Item("foo", Item::kTokenType), {Param("a305", 1)}},
{Item("foo", Item::kTokenType), {Param("a306", 1)}},
{Item("foo", Item::kTokenType), {Param("a307", 1)}},
{Item("foo", Item::kTokenType), {Param("a308", 1)}},
{Item("foo", Item::kTokenType), {Param("a309", 1)}},
{Item("foo", Item::kTokenType), {Param("a310", 1)}},
{Item("foo", Item::kTokenType), {Param("a311", 1)}},
{Item("foo", Item::kTokenType), {Param("a312", 1)}},
{Item("foo", Item::kTokenType), {Param("a313", 1)}},
{Item("foo", Item::kTokenType), {Param("a314", 1)}},
{Item("foo", Item::kTokenType), {Param("a315", 1)}},
{Item("foo", Item::kTokenType), {Param("a316", 1)}},
{Item("foo", Item::kTokenType), {Param("a317", 1)}},
{Item("foo", Item::kTokenType), {Param("a318", 1)}},
{Item("foo", Item::kTokenType), {Param("a319", 1)}},
{Item("foo", Item::kTokenType), {Param("a320", 1)}},
{Item("foo", Item::kTokenType), {Param("a321", 1)}},
{Item("foo", Item::kTokenType), {Param("a322", 1)}},
{Item("foo", Item::kTokenType), {Param("a323", 1)}},
{Item("foo", Item::kTokenType), {Param("a324", 1)}},
{Item("foo", Item::kTokenType), {Param("a325", 1)}},
{Item("foo", Item::kTokenType), {Param("a326", 1)}},
{Item("foo", Item::kTokenType), {Param("a327", 1)}},
{Item("foo", Item::kTokenType), {Param("a328", 1)}},
{Item("foo", Item::kTokenType), {Param("a329", 1)}},
{Item("foo", Item::kTokenType), {Param("a330", 1)}},
{Item("foo", Item::kTokenType), {Param("a331", 1)}},
{Item("foo", Item::kTokenType), {Param("a332", 1)}},
{Item("foo", Item::kTokenType), {Param("a333", 1)}},
{Item("foo", Item::kTokenType), {Param("a334", 1)}},
{Item("foo", Item::kTokenType), {Param("a335", 1)}},
{Item("foo", Item::kTokenType), {Param("a336", 1)}},
{Item("foo", Item::kTokenType), {Param("a337", 1)}},
{Item("foo", Item::kTokenType), {Param("a338", 1)}},
{Item("foo", Item::kTokenType), {Param("a339", 1)}},
{Item("foo", Item::kTokenType), {Param("a340", 1)}},
{Item("foo", Item::kTokenType), {Param("a341", 1)}},
{Item("foo", Item::kTokenType), {Param("a342", 1)}},
{Item("foo", Item::kTokenType), {Param("a343", 1)}},
{Item("foo", Item::kTokenType), {Param("a344", 1)}},
{Item("foo", Item::kTokenType), {Param("a345", 1)}},
{Item("foo", Item::kTokenType), {Param("a346", 1)}},
{Item("foo", Item::kTokenType), {Param("a347", 1)}},
{Item("foo", Item::kTokenType), {Param("a348", 1)}},
{Item("foo", Item::kTokenType), {Param("a349", 1)}},
{Item("foo", Item::kTokenType), {Param("a350", 1)}},
{Item("foo", Item::kTokenType), {Param("a351", 1)}},
{Item("foo", Item::kTokenType), {Param("a352", 1)}},
{Item("foo", Item::kTokenType), {Param("a353", 1)}},
{Item("foo", Item::kTokenType), {Param("a354", 1)}},
{Item("foo", Item::kTokenType), {Param("a355", 1)}},
{Item("foo", Item::kTokenType), {Param("a356", 1)}},
{Item("foo", Item::kTokenType), {Param("a357", 1)}},
{Item("foo", Item::kTokenType), {Param("a358", 1)}},
{Item("foo", Item::kTokenType), {Param("a359", 1)}},
{Item("foo", Item::kTokenType), {Param("a360", 1)}},
{Item("foo", Item::kTokenType), {Param("a361", 1)}},
{Item("foo", Item::kTokenType), {Param("a362", 1)}},
{Item("foo", Item::kTokenType), {Param("a363", 1)}},
{Item("foo", Item::kTokenType), {Param("a364", 1)}},
{Item("foo", Item::kTokenType), {Param("a365", 1)}},
{Item("foo", Item::kTokenType), {Param("a366", 1)}},
{Item("foo", Item::kTokenType), {Param("a367", 1)}},
{Item("foo", Item::kTokenType), {Param("a368", 1)}},
{Item("foo", Item::kTokenType), {Param("a369", 1)}},
{Item("foo", Item::kTokenType), {Param("a370", 1)}},
{Item("foo", Item::kTokenType), {Param("a371", 1)}},
{Item("foo", Item::kTokenType), {Param("a372", 1)}},
{Item("foo", Item::kTokenType), {Param("a373", 1)}},
{Item("foo", Item::kTokenType), {Param("a374", 1)}},
{Item("foo", Item::kTokenType), {Param("a375", 1)}},
{Item("foo", Item::kTokenType), {Param("a376", 1)}},
{Item("foo", Item::kTokenType), {Param("a377", 1)}},
{Item("foo", Item::kTokenType), {Param("a378", 1)}},
{Item("foo", Item::kTokenType), {Param("a379", 1)}},
{Item("foo", Item::kTokenType), {Param("a380", 1)}},
{Item("foo", Item::kTokenType), {Param("a381", 1)}},
{Item("foo", Item::kTokenType), {Param("a382", 1)}},
{Item("foo", Item::kTokenType), {Param("a383", 1)}},
{Item("foo", Item::kTokenType), {Param("a384", 1)}},
{Item("foo", Item::kTokenType), {Param("a385", 1)}},
{Item("foo", Item::kTokenType), {Param("a386", 1)}},
{Item("foo", Item::kTokenType), {Param("a387", 1)}},
{Item("foo", Item::kTokenType), {Param("a388", 1)}},
{Item("foo", Item::kTokenType), {Param("a389", 1)}},
{Item("foo", Item::kTokenType), {Param("a390", 1)}},
{Item("foo", Item::kTokenType), {Param("a391", 1)}},
{Item("foo", Item::kTokenType), {Param("a392", 1)}},
{Item("foo", Item::kTokenType), {Param("a393", 1)}},
{Item("foo", Item::kTokenType), {Param("a394", 1)}},
{Item("foo", Item::kTokenType), {Param("a395", 1)}},
{Item("foo", Item::kTokenType), {Param("a396", 1)}},
{Item("foo", Item::kTokenType), {Param("a397", 1)}},
{Item("foo", Item::kTokenType), {Param("a398", 1)}},
{Item("foo", Item::kTokenType), {Param("a399", 1)}},
{Item("foo", Item::kTokenType), {Param("a400", 1)}},
{Item("foo", Item::kTokenType), {Param("a401", 1)}},
{Item("foo", Item::kTokenType), {Param("a402", 1)}},
{Item("foo", Item::kTokenType), {Param("a403", 1)}},
{Item("foo", Item::kTokenType), {Param("a404", 1)}},
{Item("foo", Item::kTokenType), {Param("a405", 1)}},
{Item("foo", Item::kTokenType), {Param("a406", 1)}},
{Item("foo", Item::kTokenType), {Param("a407", 1)}},
{Item("foo", Item::kTokenType), {Param("a408", 1)}},
{Item("foo", Item::kTokenType), {Param("a409", 1)}},
{Item("foo", Item::kTokenType), {Param("a410", 1)}},
{Item("foo", Item::kTokenType), {Param("a411", 1)}},
{Item("foo", Item::kTokenType), {Param("a412", 1)}},
{Item("foo", Item::kTokenType), {Param("a413", 1)}},
{Item("foo", Item::kTokenType), {Param("a414", 1)}},
{Item("foo", Item::kTokenType), {Param("a415", 1)}},
{Item("foo", Item::kTokenType), {Param("a416", 1)}},
{Item("foo", Item::kTokenType), {Param("a417", 1)}},
{Item("foo", Item::kTokenType), {Param("a418", 1)}},
{Item("foo", Item::kTokenType), {Param("a419", 1)}},
{Item("foo", Item::kTokenType), {Param("a420", 1)}},
{Item("foo", Item::kTokenType), {Param("a421", 1)}},
{Item("foo", Item::kTokenType), {Param("a422", 1)}},
{Item("foo", Item::kTokenType), {Param("a423", 1)}},
{Item("foo", Item::kTokenType), {Param("a424", 1)}},
{Item("foo", Item::kTokenType), {Param("a425", 1)}},
{Item("foo", Item::kTokenType), {Param("a426", 1)}},
{Item("foo", Item::kTokenType), {Param("a427", 1)}},
{Item("foo", Item::kTokenType), {Param("a428", 1)}},
{Item("foo", Item::kTokenType), {Param("a429", 1)}},
{Item("foo", Item::kTokenType), {Param("a430", 1)}},
{Item("foo", Item::kTokenType), {Param("a431", 1)}},
{Item("foo", Item::kTokenType), {Param("a432", 1)}},
{Item("foo", Item::kTokenType), {Param("a433", 1)}},
{Item("foo", Item::kTokenType), {Param("a434", 1)}},
{Item("foo", Item::kTokenType), {Param("a435", 1)}},
{Item("foo", Item::kTokenType), {Param("a436", 1)}},
{Item("foo", Item::kTokenType), {Param("a437", 1)}},
{Item("foo", Item::kTokenType), {Param("a438", 1)}},
{Item("foo", Item::kTokenType), {Param("a439", 1)}},
{Item("foo", Item::kTokenType), {Param("a440", 1)}},
{Item("foo", Item::kTokenType), {Param("a441", 1)}},
{Item("foo", Item::kTokenType), {Param("a442", 1)}},
{Item("foo", Item::kTokenType), {Param("a443", 1)}},
{Item("foo", Item::kTokenType), {Param("a444", 1)}},
{Item("foo", Item::kTokenType), {Param("a445", 1)}},
{Item("foo", Item::kTokenType), {Param("a446", 1)}},
{Item("foo", Item::kTokenType), {Param("a447", 1)}},
{Item("foo", Item::kTokenType), {Param("a448", 1)}},
{Item("foo", Item::kTokenType), {Param("a449", 1)}},
{Item("foo", Item::kTokenType), {Param("a450", 1)}},
{Item("foo", Item::kTokenType), {Param("a451", 1)}},
{Item("foo", Item::kTokenType), {Param("a452", 1)}},
{Item("foo", Item::kTokenType), {Param("a453", 1)}},
{Item("foo", Item::kTokenType), {Param("a454", 1)}},
{Item("foo", Item::kTokenType), {Param("a455", 1)}},
{Item("foo", Item::kTokenType), {Param("a456", 1)}},
{Item("foo", Item::kTokenType), {Param("a457", 1)}},
{Item("foo", Item::kTokenType), {Param("a458", 1)}},
{Item("foo", Item::kTokenType), {Param("a459", 1)}},
{Item("foo", Item::kTokenType), {Param("a460", 1)}},
{Item("foo", Item::kTokenType), {Param("a461", 1)}},
{Item("foo", Item::kTokenType), {Param("a462", 1)}},
{Item("foo", Item::kTokenType), {Param("a463", 1)}},
{Item("foo", Item::kTokenType), {Param("a464", 1)}},
{Item("foo", Item::kTokenType), {Param("a465", 1)}},
{Item("foo", Item::kTokenType), {Param("a466", 1)}},
{Item("foo", Item::kTokenType), {Param("a467", 1)}},
{Item("foo", Item::kTokenType), {Param("a468", 1)}},
{Item("foo", Item::kTokenType), {Param("a469", 1)}},
{Item("foo", Item::kTokenType), {Param("a470", 1)}},
{Item("foo", Item::kTokenType), {Param("a471", 1)}},
{Item("foo", Item::kTokenType), {Param("a472", 1)}},
{Item("foo", Item::kTokenType), {Param("a473", 1)}},
{Item("foo", Item::kTokenType), {Param("a474", 1)}},
{Item("foo", Item::kTokenType), {Param("a475", 1)}},
{Item("foo", Item::kTokenType), {Param("a476", 1)}},
{Item("foo", Item::kTokenType), {Param("a477", 1)}},
{Item("foo", Item::kTokenType), {Param("a478", 1)}},
{Item("foo", Item::kTokenType), {Param("a479", 1)}},
{Item("foo", Item::kTokenType), {Param("a480", 1)}},
{Item("foo", Item::kTokenType), {Param("a481", 1)}},
{Item("foo", Item::kTokenType), {Param("a482", 1)}},
{Item("foo", Item::kTokenType), {Param("a483", 1)}},
{Item("foo", Item::kTokenType), {Param("a484", 1)}},
{Item("foo", Item::kTokenType), {Param("a485", 1)}},
{Item("foo", Item::kTokenType), {Param("a486", 1)}},
{Item("foo", Item::kTokenType), {Param("a487", 1)}},
{Item("foo", Item::kTokenType), {Param("a488", 1)}},
{Item("foo", Item::kTokenType), {Param("a489", 1)}},
{Item("foo", Item::kTokenType), {Param("a490", 1)}},
{Item("foo", Item::kTokenType), {Param("a491", 1)}},
{Item("foo", Item::kTokenType), {Param("a492", 1)}},
{Item("foo", Item::kTokenType), {Param("a493", 1)}},
{Item("foo", Item::kTokenType), {Param("a494", 1)}},
{Item("foo", Item::kTokenType), {Param("a495", 1)}},
{Item("foo", Item::kTokenType), {Param("a496", 1)}},
{Item("foo", Item::kTokenType), {Param("a497", 1)}},
{Item("foo", Item::kTokenType), {Param("a498", 1)}},
{Item("foo", Item::kTokenType), {Param("a499", 1)}},
{Item("foo", Item::kTokenType), {Param("a500", 1)}},
{Item("foo", Item::kTokenType), {Param("a501", 1)}},
{Item("foo", Item::kTokenType), {Param("a502", 1)}},
{Item("foo", Item::kTokenType), {Param("a503", 1)}},
{Item("foo", Item::kTokenType), {Param("a504", 1)}},
{Item("foo", Item::kTokenType), {Param("a505", 1)}},
{Item("foo", Item::kTokenType), {Param("a506", 1)}},
{Item("foo", Item::kTokenType), {Param("a507", 1)}},
{Item("foo", Item::kTokenType), {Param("a508", 1)}},
{Item("foo", Item::kTokenType), {Param("a509", 1)}},
{Item("foo", Item::kTokenType), {Param("a510", 1)}},
{Item("foo", Item::kTokenType), {Param("a511", 1)}},
{Item("foo", Item::kTokenType), {Param("a512", 1)}},
{Item("foo", Item::kTokenType), {Param("a513", 1)}},
{Item("foo", Item::kTokenType), {Param("a514", 1)}},
{Item("foo", Item::kTokenType), {Param("a515", 1)}},
{Item("foo", Item::kTokenType), {Param("a516", 1)}},
{Item("foo", Item::kTokenType), {Param("a517", 1)}},
{Item("foo", Item::kTokenType), {Param("a518", 1)}},
{Item("foo", Item::kTokenType), {Param("a519", 1)}},
{Item("foo", Item::kTokenType), {Param("a520", 1)}},
{Item("foo", Item::kTokenType), {Param("a521", 1)}},
{Item("foo", Item::kTokenType), {Param("a522", 1)}},
{Item("foo", Item::kTokenType), {Param("a523", 1)}},
{Item("foo", Item::kTokenType), {Param("a524", 1)}},
{Item("foo", Item::kTokenType), {Param("a525", 1)}},
{Item("foo", Item::kTokenType), {Param("a526", 1)}},
{Item("foo", Item::kTokenType), {Param("a527", 1)}},
{Item("foo", Item::kTokenType), {Param("a528", 1)}},
{Item("foo", Item::kTokenType), {Param("a529", 1)}},
{Item("foo", Item::kTokenType), {Param("a530", 1)}},
{Item("foo", Item::kTokenType), {Param("a531", 1)}},
{Item("foo", Item::kTokenType), {Param("a532", 1)}},
{Item("foo", Item::kTokenType), {Param("a533", 1)}},
{Item("foo", Item::kTokenType), {Param("a534", 1)}},
{Item("foo", Item::kTokenType), {Param("a535", 1)}},
{Item("foo", Item::kTokenType), {Param("a536", 1)}},
{Item("foo", Item::kTokenType), {Param("a537", 1)}},
{Item("foo", Item::kTokenType), {Param("a538", 1)}},
{Item("foo", Item::kTokenType), {Param("a539", 1)}},
{Item("foo", Item::kTokenType), {Param("a540", 1)}},
{Item("foo", Item::kTokenType), {Param("a541", 1)}},
{Item("foo", Item::kTokenType), {Param("a542", 1)}},
{Item("foo", Item::kTokenType), {Param("a543", 1)}},
{Item("foo", Item::kTokenType), {Param("a544", 1)}},
{Item("foo", Item::kTokenType), {Param("a545", 1)}},
{Item("foo", Item::kTokenType), {Param("a546", 1)}},
{Item("foo", Item::kTokenType), {Param("a547", 1)}},
{Item("foo", Item::kTokenType), {Param("a548", 1)}},
{Item("foo", Item::kTokenType), {Param("a549", 1)}},
{Item("foo", Item::kTokenType), {Param("a550", 1)}},
{Item("foo", Item::kTokenType), {Param("a551", 1)}},
{Item("foo", Item::kTokenType), {Param("a552", 1)}},
{Item("foo", Item::kTokenType), {Param("a553", 1)}},
{Item("foo", Item::kTokenType), {Param("a554", 1)}},
{Item("foo", Item::kTokenType), {Param("a555", 1)}},
{Item("foo", Item::kTokenType), {Param("a556", 1)}},
{Item("foo", Item::kTokenType), {Param("a557", 1)}},
{Item("foo", Item::kTokenType), {Param("a558", 1)}},
{Item("foo", Item::kTokenType), {Param("a559", 1)}},
{Item("foo", Item::kTokenType), {Param("a560", 1)}},
{Item("foo", Item::kTokenType), {Param("a561", 1)}},
{Item("foo", Item::kTokenType), {Param("a562", 1)}},
{Item("foo", Item::kTokenType), {Param("a563", 1)}},
{Item("foo", Item::kTokenType), {Param("a564", 1)}},
{Item("foo", Item::kTokenType), {Param("a565", 1)}},
{Item("foo", Item::kTokenType), {Param("a566", 1)}},
{Item("foo", Item::kTokenType), {Param("a567", 1)}},
{Item("foo", Item::kTokenType), {Param("a568", 1)}},
{Item("foo", Item::kTokenType), {Param("a569", 1)}},
{Item("foo", Item::kTokenType), {Param("a570", 1)}},
{Item("foo", Item::kTokenType), {Param("a571", 1)}},
{Item("foo", Item::kTokenType), {Param("a572", 1)}},
{Item("foo", Item::kTokenType), {Param("a573", 1)}},
{Item("foo", Item::kTokenType), {Param("a574", 1)}},
{Item("foo", Item::kTokenType), {Param("a575", 1)}},
{Item("foo", Item::kTokenType), {Param("a576", 1)}},
{Item("foo", Item::kTokenType), {Param("a577", 1)}},
{Item("foo", Item::kTokenType), {Param("a578", 1)}},
{Item("foo", Item::kTokenType), {Param("a579", 1)}},
{Item("foo", Item::kTokenType), {Param("a580", 1)}},
{Item("foo", Item::kTokenType), {Param("a581", 1)}},
{Item("foo", Item::kTokenType), {Param("a582", 1)}},
{Item("foo", Item::kTokenType), {Param("a583", 1)}},
{Item("foo", Item::kTokenType), {Param("a584", 1)}},
{Item("foo", Item::kTokenType), {Param("a585", 1)}},
{Item("foo", Item::kTokenType), {Param("a586", 1)}},
{Item("foo", Item::kTokenType), {Param("a587", 1)}},
{Item("foo", Item::kTokenType), {Param("a588", 1)}},
{Item("foo", Item::kTokenType), {Param("a589", 1)}},
{Item("foo", Item::kTokenType), {Param("a590", 1)}},
{Item("foo", Item::kTokenType), {Param("a591", 1)}},
{Item("foo", Item::kTokenType), {Param("a592", 1)}},
{Item("foo", Item::kTokenType), {Param("a593", 1)}},
{Item("foo", Item::kTokenType), {Param("a594", 1)}},
{Item("foo", Item::kTokenType), {Param("a595", 1)}},
{Item("foo", Item::kTokenType), {Param("a596", 1)}},
{Item("foo", Item::kTokenType), {Param("a597", 1)}},
{Item("foo", Item::kTokenType), {Param("a598", 1)}},
{Item("foo", Item::kTokenType), {Param("a599", 1)}},
{Item("foo", Item::kTokenType), {Param("a600", 1)}},
{Item("foo", Item::kTokenType), {Param("a601", 1)}},
{Item("foo", Item::kTokenType), {Param("a602", 1)}},
{Item("foo", Item::kTokenType), {Param("a603", 1)}},
{Item("foo", Item::kTokenType), {Param("a604", 1)}},
{Item("foo", Item::kTokenType), {Param("a605", 1)}},
{Item("foo", Item::kTokenType), {Param("a606", 1)}},
{Item("foo", Item::kTokenType), {Param("a607", 1)}},
{Item("foo", Item::kTokenType), {Param("a608", 1)}},
{Item("foo", Item::kTokenType), {Param("a609", 1)}},
{Item("foo", Item::kTokenType), {Param("a610", 1)}},
{Item("foo", Item::kTokenType), {Param("a611", 1)}},
{Item("foo", Item::kTokenType), {Param("a612", 1)}},
{Item("foo", Item::kTokenType), {Param("a613", 1)}},
{Item("foo", Item::kTokenType), {Param("a614", 1)}},
{Item("foo", Item::kTokenType), {Param("a615", 1)}},
{Item("foo", Item::kTokenType), {Param("a616", 1)}},
{Item("foo", Item::kTokenType), {Param("a617", 1)}},
{Item("foo", Item::kTokenType), {Param("a618", 1)}},
{Item("foo", Item::kTokenType), {Param("a619", 1)}},
{Item("foo", Item::kTokenType), {Param("a620", 1)}},
{Item("foo", Item::kTokenType), {Param("a621", 1)}},
{Item("foo", Item::kTokenType), {Param("a622", 1)}},
{Item("foo", Item::kTokenType), {Param("a623", 1)}},
{Item("foo", Item::kTokenType), {Param("a624", 1)}},
{Item("foo", Item::kTokenType), {Param("a625", 1)}},
{Item("foo", Item::kTokenType), {Param("a626", 1)}},
{Item("foo", Item::kTokenType), {Param("a627", 1)}},
{Item("foo", Item::kTokenType), {Param("a628", 1)}},
{Item("foo", Item::kTokenType), {Param("a629", 1)}},
{Item("foo", Item::kTokenType), {Param("a630", 1)}},
{Item("foo", Item::kTokenType), {Param("a631", 1)}},
{Item("foo", Item::kTokenType), {Param("a632", 1)}},
{Item("foo", Item::kTokenType), {Param("a633", 1)}},
{Item("foo", Item::kTokenType), {Param("a634", 1)}},
{Item("foo", Item::kTokenType), {Param("a635", 1)}},
{Item("foo", Item::kTokenType), {Param("a636", 1)}},
{Item("foo", Item::kTokenType), {Param("a637", 1)}},
{Item("foo", Item::kTokenType), {Param("a638", 1)}},
{Item("foo", Item::kTokenType), {Param("a639", 1)}},
{Item("foo", Item::kTokenType), {Param("a640", 1)}},
{Item("foo", Item::kTokenType), {Param("a641", 1)}},
{Item("foo", Item::kTokenType), {Param("a642", 1)}},
{Item("foo", Item::kTokenType), {Param("a643", 1)}},
{Item("foo", Item::kTokenType), {Param("a644", 1)}},
{Item("foo", Item::kTokenType), {Param("a645", 1)}},
{Item("foo", Item::kTokenType), {Param("a646", 1)}},
{Item("foo", Item::kTokenType), {Param("a647", 1)}},
{Item("foo", Item::kTokenType), {Param("a648", 1)}},
{Item("foo", Item::kTokenType), {Param("a649", 1)}},
{Item("foo", Item::kTokenType), {Param("a650", 1)}},
{Item("foo", Item::kTokenType), {Param("a651", 1)}},
{Item("foo", Item::kTokenType), {Param("a652", 1)}},
{Item("foo", Item::kTokenType), {Param("a653", 1)}},
{Item("foo", Item::kTokenType), {Param("a654", 1)}},
{Item("foo", Item::kTokenType), {Param("a655", 1)}},
{Item("foo", Item::kTokenType), {Param("a656", 1)}},
{Item("foo", Item::kTokenType), {Param("a657", 1)}},
{Item("foo", Item::kTokenType), {Param("a658", 1)}},
{Item("foo", Item::kTokenType), {Param("a659", 1)}},
{Item("foo", Item::kTokenType), {Param("a660", 1)}},
{Item("foo", Item::kTokenType), {Param("a661", 1)}},
{Item("foo", Item::kTokenType), {Param("a662", 1)}},
{Item("foo", Item::kTokenType), {Param("a663", 1)}},
{Item("foo", Item::kTokenType), {Param("a664", 1)}},
{Item("foo", Item::kTokenType), {Param("a665", 1)}},
{Item("foo", Item::kTokenType), {Param("a666", 1)}},
{Item("foo", Item::kTokenType), {Param("a667", 1)}},
{Item("foo", Item::kTokenType), {Param("a668", 1)}},
{Item("foo", Item::kTokenType), {Param("a669", 1)}},
{Item("foo", Item::kTokenType), {Param("a670", 1)}},
{Item("foo", Item::kTokenType), {Param("a671", 1)}},
{Item("foo", Item::kTokenType), {Param("a672", 1)}},
{Item("foo", Item::kTokenType), {Param("a673", 1)}},
{Item("foo", Item::kTokenType), {Param("a674", 1)}},
{Item("foo", Item::kTokenType), {Param("a675", 1)}},
{Item("foo", Item::kTokenType), {Param("a676", 1)}},
{Item("foo", Item::kTokenType), {Param("a677", 1)}},
{Item("foo", Item::kTokenType), {Param("a678", 1)}},
{Item("foo", Item::kTokenType), {Param("a679", 1)}},
{Item("foo", Item::kTokenType), {Param("a680", 1)}},
{Item("foo", Item::kTokenType), {Param("a681", 1)}},
{Item("foo", Item::kTokenType), {Param("a682", 1)}},
{Item("foo", Item::kTokenType), {Param("a683", 1)}},
{Item("foo", Item::kTokenType), {Param("a684", 1)}},
{Item("foo", Item::kTokenType), {Param("a685", 1)}},
{Item("foo", Item::kTokenType), {Param("a686", 1)}},
{Item("foo", Item::kTokenType), {Param("a687", 1)}},
{Item("foo", Item::kTokenType), {Param("a688", 1)}},
{Item("foo", Item::kTokenType), {Param("a689", 1)}},
{Item("foo", Item::kTokenType), {Param("a690", 1)}},
{Item("foo", Item::kTokenType), {Param("a691", 1)}},
{Item("foo", Item::kTokenType), {Param("a692", 1)}},
{Item("foo", Item::kTokenType), {Param("a693", 1)}},
{Item("foo", Item::kTokenType), {Param("a694", 1)}},
{Item("foo", Item::kTokenType), {Param("a695", 1)}},
{Item("foo", Item::kTokenType), {Param("a696", 1)}},
{Item("foo", Item::kTokenType), {Param("a697", 1)}},
{Item("foo", Item::kTokenType), {Param("a698", 1)}},
{Item("foo", Item::kTokenType), {Param("a699", 1)}},
{Item("foo", Item::kTokenType), {Param("a700", 1)}},
{Item("foo", Item::kTokenType), {Param("a701", 1)}},
{Item("foo", Item::kTokenType), {Param("a702", 1)}},
{Item("foo", Item::kTokenType), {Param("a703", 1)}},
{Item("foo", Item::kTokenType), {Param("a704", 1)}},
{Item("foo", Item::kTokenType), {Param("a705", 1)}},
{Item("foo", Item::kTokenType), {Param("a706", 1)}},
{Item("foo", Item::kTokenType), {Param("a707", 1)}},
{Item("foo", Item::kTokenType), {Param("a708", 1)}},
{Item("foo", Item::kTokenType), {Param("a709", 1)}},
{Item("foo", Item::kTokenType), {Param("a710", 1)}},
{Item("foo", Item::kTokenType), {Param("a711", 1)}},
{Item("foo", Item::kTokenType), {Param("a712", 1)}},
{Item("foo", Item::kTokenType), {Param("a713", 1)}},
{Item("foo", Item::kTokenType), {Param("a714", 1)}},
{Item("foo", Item::kTokenType), {Param("a715", 1)}},
{Item("foo", Item::kTokenType), {Param("a716", 1)}},
{Item("foo", Item::kTokenType), {Param("a717", 1)}},
{Item("foo", Item::kTokenType), {Param("a718", 1)}},
{Item("foo", Item::kTokenType), {Param("a719", 1)}},
{Item("foo", Item::kTokenType), {Param("a720", 1)}},
{Item("foo", Item::kTokenType), {Param("a721", 1)}},
{Item("foo", Item::kTokenType), {Param("a722", 1)}},
{Item("foo", Item::kTokenType), {Param("a723", 1)}},
{Item("foo", Item::kTokenType), {Param("a724", 1)}},
{Item("foo", Item::kTokenType), {Param("a725", 1)}},
{Item("foo", Item::kTokenType), {Param("a726", 1)}},
{Item("foo", Item::kTokenType), {Param("a727", 1)}},
{Item("foo", Item::kTokenType), {Param("a728", 1)}},
{Item("foo", Item::kTokenType), {Param("a729", 1)}},
{Item("foo", Item::kTokenType), {Param("a730", 1)}},
{Item("foo", Item::kTokenType), {Param("a731", 1)}},
{Item("foo", Item::kTokenType), {Param("a732", 1)}},
{Item("foo", Item::kTokenType), {Param("a733", 1)}},
{Item("foo", Item::kTokenType), {Param("a734", 1)}},
{Item("foo", Item::kTokenType), {Param("a735", 1)}},
{Item("foo", Item::kTokenType), {Param("a736", 1)}},
{Item("foo", Item::kTokenType), {Param("a737", 1)}},
{Item("foo", Item::kTokenType), {Param("a738", 1)}},
{Item("foo", Item::kTokenType), {Param("a739", 1)}},
{Item("foo", Item::kTokenType), {Param("a740", 1)}},
{Item("foo", Item::kTokenType), {Param("a741", 1)}},
{Item("foo", Item::kTokenType), {Param("a742", 1)}},
{Item("foo", Item::kTokenType), {Param("a743", 1)}},
{Item("foo", Item::kTokenType), {Param("a744", 1)}},
{Item("foo", Item::kTokenType), {Param("a745", 1)}},
{Item("foo", Item::kTokenType), {Param("a746", 1)}},
{Item("foo", Item::kTokenType), {Param("a747", 1)}},
{Item("foo", Item::kTokenType), {Param("a748", 1)}},
{Item("foo", Item::kTokenType), {Param("a749", 1)}},
{Item("foo", Item::kTokenType), {Param("a750", 1)}},
{Item("foo", Item::kTokenType), {Param("a751", 1)}},
{Item("foo", Item::kTokenType), {Param("a752", 1)}},
{Item("foo", Item::kTokenType), {Param("a753", 1)}},
{Item("foo", Item::kTokenType), {Param("a754", 1)}},
{Item("foo", Item::kTokenType), {Param("a755", 1)}},
{Item("foo", Item::kTokenType), {Param("a756", 1)}},
{Item("foo", Item::kTokenType), {Param("a757", 1)}},
{Item("foo", Item::kTokenType), {Param("a758", 1)}},
{Item("foo", Item::kTokenType), {Param("a759", 1)}},
{Item("foo", Item::kTokenType), {Param("a760", 1)}},
{Item("foo", Item::kTokenType), {Param("a761", 1)}},
{Item("foo", Item::kTokenType), {Param("a762", 1)}},
{Item("foo", Item::kTokenType), {Param("a763", 1)}},
{Item("foo", Item::kTokenType), {Param("a764", 1)}},
{Item("foo", Item::kTokenType), {Param("a765", 1)}},
{Item("foo", Item::kTokenType), {Param("a766", 1)}},
{Item("foo", Item::kTokenType), {Param("a767", 1)}},
{Item("foo", Item::kTokenType), {Param("a768", 1)}},
{Item("foo", Item::kTokenType), {Param("a769", 1)}},
{Item("foo", Item::kTokenType), {Param("a770", 1)}},
{Item("foo", Item::kTokenType), {Param("a771", 1)}},
{Item("foo", Item::kTokenType), {Param("a772", 1)}},
{Item("foo", Item::kTokenType), {Param("a773", 1)}},
{Item("foo", Item::kTokenType), {Param("a774", 1)}},
{Item("foo", Item::kTokenType), {Param("a775", 1)}},
{Item("foo", Item::kTokenType), {Param("a776", 1)}},
{Item("foo", Item::kTokenType), {Param("a777", 1)}},
{Item("foo", Item::kTokenType), {Param("a778", 1)}},
{Item("foo", Item::kTokenType), {Param("a779", 1)}},
{Item("foo", Item::kTokenType), {Param("a780", 1)}},
{Item("foo", Item::kTokenType), {Param("a781", 1)}},
{Item("foo", Item::kTokenType), {Param("a782", 1)}},
{Item("foo", Item::kTokenType), {Param("a783", 1)}},
{Item("foo", Item::kTokenType), {Param("a784", 1)}},
{Item("foo", Item::kTokenType), {Param("a785", 1)}},
{Item("foo", Item::kTokenType), {Param("a786", 1)}},
{Item("foo", Item::kTokenType), {Param("a787", 1)}},
{Item("foo", Item::kTokenType), {Param("a788", 1)}},
{Item("foo", Item::kTokenType), {Param("a789", 1)}},
{Item("foo", Item::kTokenType), {Param("a790", 1)}},
{Item("foo", Item::kTokenType), {Param("a791", 1)}},
{Item("foo", Item::kTokenType), {Param("a792", 1)}},
{Item("foo", Item::kTokenType), {Param("a793", 1)}},
{Item("foo", Item::kTokenType), {Param("a794", 1)}},
{Item("foo", Item::kTokenType), {Param("a795", 1)}},
{Item("foo", Item::kTokenType), {Param("a796", 1)}},
{Item("foo", Item::kTokenType), {Param("a797", 1)}},
{Item("foo", Item::kTokenType), {Param("a798", 1)}},
{Item("foo", Item::kTokenType), {Param("a799", 1)}},
{Item("foo", Item::kTokenType), {Param("a800", 1)}},
{Item("foo", Item::kTokenType), {Param("a801", 1)}},
{Item("foo", Item::kTokenType), {Param("a802", 1)}},
{Item("foo", Item::kTokenType), {Param("a803", 1)}},
{Item("foo", Item::kTokenType), {Param("a804", 1)}},
{Item("foo", Item::kTokenType), {Param("a805", 1)}},
{Item("foo", Item::kTokenType), {Param("a806", 1)}},
{Item("foo", Item::kTokenType), {Param("a807", 1)}},
{Item("foo", Item::kTokenType), {Param("a808", 1)}},
{Item("foo", Item::kTokenType), {Param("a809", 1)}},
{Item("foo", Item::kTokenType), {Param("a810", 1)}},
{Item("foo", Item::kTokenType), {Param("a811", 1)}},
{Item("foo", Item::kTokenType), {Param("a812", 1)}},
{Item("foo", Item::kTokenType), {Param("a813", 1)}},
{Item("foo", Item::kTokenType), {Param("a814", 1)}},
{Item("foo", Item::kTokenType), {Param("a815", 1)}},
{Item("foo", Item::kTokenType), {Param("a816", 1)}},
{Item("foo", Item::kTokenType), {Param("a817", 1)}},
{Item("foo", Item::kTokenType), {Param("a818", 1)}},
{Item("foo", Item::kTokenType), {Param("a819", 1)}},
{Item("foo", Item::kTokenType), {Param("a820", 1)}},
{Item("foo", Item::kTokenType), {Param("a821", 1)}},
{Item("foo", Item::kTokenType), {Param("a822", 1)}},
{Item("foo", Item::kTokenType), {Param("a823", 1)}},
{Item("foo", Item::kTokenType), {Param("a824", 1)}},
{Item("foo", Item::kTokenType), {Param("a825", 1)}},
{Item("foo", Item::kTokenType), {Param("a826", 1)}},
{Item("foo", Item::kTokenType), {Param("a827", 1)}},
{Item("foo", Item::kTokenType), {Param("a828", 1)}},
{Item("foo", Item::kTokenType), {Param("a829", 1)}},
{Item("foo", Item::kTokenType), {Param("a830", 1)}},
{Item("foo", Item::kTokenType), {Param("a831", 1)}},
{Item("foo", Item::kTokenType), {Param("a832", 1)}},
{Item("foo", Item::kTokenType), {Param("a833", 1)}},
{Item("foo", Item::kTokenType), {Param("a834", 1)}},
{Item("foo", Item::kTokenType), {Param("a835", 1)}},
{Item("foo", Item::kTokenType), {Param("a836", 1)}},
{Item("foo", Item::kTokenType), {Param("a837", 1)}},
{Item("foo", Item::kTokenType), {Param("a838", 1)}},
{Item("foo", Item::kTokenType), {Param("a839", 1)}},
{Item("foo", Item::kTokenType), {Param("a840", 1)}},
{Item("foo", Item::kTokenType), {Param("a841", 1)}},
{Item("foo", Item::kTokenType), {Param("a842", 1)}},
{Item("foo", Item::kTokenType), {Param("a843", 1)}},
{Item("foo", Item::kTokenType), {Param("a844", 1)}},
{Item("foo", Item::kTokenType), {Param("a845", 1)}},
{Item("foo", Item::kTokenType), {Param("a846", 1)}},
{Item("foo", Item::kTokenType), {Param("a847", 1)}},
{Item("foo", Item::kTokenType), {Param("a848", 1)}},
{Item("foo", Item::kTokenType), {Param("a849", 1)}},
{Item("foo", Item::kTokenType), {Param("a850", 1)}},
{Item("foo", Item::kTokenType), {Param("a851", 1)}},
{Item("foo", Item::kTokenType), {Param("a852", 1)}},
{Item("foo", Item::kTokenType), {Param("a853", 1)}},
{Item("foo", Item::kTokenType), {Param("a854", 1)}},
{Item("foo", Item::kTokenType), {Param("a855", 1)}},
{Item("foo", Item::kTokenType), {Param("a856", 1)}},
{Item("foo", Item::kTokenType), {Param("a857", 1)}},
{Item("foo", Item::kTokenType), {Param("a858", 1)}},
{Item("foo", Item::kTokenType), {Param("a859", 1)}},
{Item("foo", Item::kTokenType), {Param("a860", 1)}},
{Item("foo", Item::kTokenType), {Param("a861", 1)}},
{Item("foo", Item::kTokenType), {Param("a862", 1)}},
{Item("foo", Item::kTokenType), {Param("a863", 1)}},
{Item("foo", Item::kTokenType), {Param("a864", 1)}},
{Item("foo", Item::kTokenType), {Param("a865", 1)}},
{Item("foo", Item::kTokenType), {Param("a866", 1)}},
{Item("foo", Item::kTokenType), {Param("a867", 1)}},
{Item("foo", Item::kTokenType), {Param("a868", 1)}},
{Item("foo", Item::kTokenType), {Param("a869", 1)}},
{Item("foo", Item::kTokenType), {Param("a870", 1)}},
{Item("foo", Item::kTokenType), {Param("a871", 1)}},
{Item("foo", Item::kTokenType), {Param("a872", 1)}},
{Item("foo", Item::kTokenType), {Param("a873", 1)}},
{Item("foo", Item::kTokenType), {Param("a874", 1)}},
{Item("foo", Item::kTokenType), {Param("a875", 1)}},
{Item("foo", Item::kTokenType), {Param("a876", 1)}},
{Item("foo", Item::kTokenType), {Param("a877", 1)}},
{Item("foo", Item::kTokenType), {Param("a878", 1)}},
{Item("foo", Item::kTokenType), {Param("a879", 1)}},
{Item("foo", Item::kTokenType), {Param("a880", 1)}},
{Item("foo", Item::kTokenType), {Param("a881", 1)}},
{Item("foo", Item::kTokenType), {Param("a882", 1)}},
{Item("foo", Item::kTokenType), {Param("a883", 1)}},
{Item("foo", Item::kTokenType), {Param("a884", 1)}},
{Item("foo", Item::kTokenType), {Param("a885", 1)}},
{Item("foo", Item::kTokenType), {Param("a886", 1)}},
{Item("foo", Item::kTokenType), {Param("a887", 1)}},
{Item("foo", Item::kTokenType), {Param("a888", 1)}},
{Item("foo", Item::kTokenType), {Param("a889", 1)}},
{Item("foo", Item::kTokenType), {Param("a890", 1)}},
{Item("foo", Item::kTokenType), {Param("a891", 1)}},
{Item("foo", Item::kTokenType), {Param("a892", 1)}},
{Item("foo", Item::kTokenType), {Param("a893", 1)}},
{Item("foo", Item::kTokenType), {Param("a894", 1)}},
{Item("foo", Item::kTokenType), {Param("a895", 1)}},
{Item("foo", Item::kTokenType), {Param("a896", 1)}},
{Item("foo", Item::kTokenType), {Param("a897", 1)}},
{Item("foo", Item::kTokenType), {Param("a898", 1)}},
{Item("foo", Item::kTokenType), {Param("a899", 1)}},
{Item("foo", Item::kTokenType), {Param("a900", 1)}},
{Item("foo", Item::kTokenType), {Param("a901", 1)}},
{Item("foo", Item::kTokenType), {Param("a902", 1)}},
{Item("foo", Item::kTokenType), {Param("a903", 1)}},
{Item("foo", Item::kTokenType), {Param("a904", 1)}},
{Item("foo", Item::kTokenType), {Param("a905", 1)}},
{Item("foo", Item::kTokenType), {Param("a906", 1)}},
{Item("foo", Item::kTokenType), {Param("a907", 1)}},
{Item("foo", Item::kTokenType), {Param("a908", 1)}},
{Item("foo", Item::kTokenType), {Param("a909", 1)}},
{Item("foo", Item::kTokenType), {Param("a910", 1)}},
{Item("foo", Item::kTokenType), {Param("a911", 1)}},
{Item("foo", Item::kTokenType), {Param("a912", 1)}},
{Item("foo", Item::kTokenType), {Param("a913", 1)}},
{Item("foo", Item::kTokenType), {Param("a914", 1)}},
{Item("foo", Item::kTokenType), {Param("a915", 1)}},
{Item("foo", Item::kTokenType), {Param("a916", 1)}},
{Item("foo", Item::kTokenType), {Param("a917", 1)}},
{Item("foo", Item::kTokenType), {Param("a918", 1)}},
{Item("foo", Item::kTokenType), {Param("a919", 1)}},
{Item("foo", Item::kTokenType), {Param("a920", 1)}},
{Item("foo", Item::kTokenType), {Param("a921", 1)}},
{Item("foo", Item::kTokenType), {Param("a922", 1)}},
{Item("foo", Item::kTokenType), {Param("a923", 1)}},
{Item("foo", Item::kTokenType), {Param("a924", 1)}},
{Item("foo", Item::kTokenType), {Param("a925", 1)}},
{Item("foo", Item::kTokenType), {Param("a926", 1)}},
{Item("foo", Item::kTokenType), {Param("a927", 1)}},
{Item("foo", Item::kTokenType), {Param("a928", 1)}},
{Item("foo", Item::kTokenType), {Param("a929", 1)}},
{Item("foo", Item::kTokenType), {Param("a930", 1)}},
{Item("foo", Item::kTokenType), {Param("a931", 1)}},
{Item("foo", Item::kTokenType), {Param("a932", 1)}},
{Item("foo", Item::kTokenType), {Param("a933", 1)}},
{Item("foo", Item::kTokenType), {Param("a934", 1)}},
{Item("foo", Item::kTokenType), {Param("a935", 1)}},
{Item("foo", Item::kTokenType), {Param("a936", 1)}},
{Item("foo", Item::kTokenType), {Param("a937", 1)}},
{Item("foo", Item::kTokenType), {Param("a938", 1)}},
{Item("foo", Item::kTokenType), {Param("a939", 1)}},
{Item("foo", Item::kTokenType), {Param("a940", 1)}},
{Item("foo", Item::kTokenType), {Param("a941", 1)}},
{Item("foo", Item::kTokenType), {Param("a942", 1)}},
{Item("foo", Item::kTokenType), {Param("a943", 1)}},
{Item("foo", Item::kTokenType), {Param("a944", 1)}},
{Item("foo", Item::kTokenType), {Param("a945", 1)}},
{Item("foo", Item::kTokenType), {Param("a946", 1)}},
{Item("foo", Item::kTokenType), {Param("a947", 1)}},
{Item("foo", Item::kTokenType), {Param("a948", 1)}},
{Item("foo", Item::kTokenType), {Param("a949", 1)}},
{Item("foo", Item::kTokenType), {Param("a950", 1)}},
{Item("foo", Item::kTokenType), {Param("a951", 1)}},
{Item("foo", Item::kTokenType), {Param("a952", 1)}},
{Item("foo", Item::kTokenType), {Param("a953", 1)}},
{Item("foo", Item::kTokenType), {Param("a954", 1)}},
{Item("foo", Item::kTokenType), {Param("a955", 1)}},
{Item("foo", Item::kTokenType), {Param("a956", 1)}},
{Item("foo", Item::kTokenType), {Param("a957", 1)}},
{Item("foo", Item::kTokenType), {Param("a958", 1)}},
{Item("foo", Item::kTokenType), {Param("a959", 1)}},
{Item("foo", Item::kTokenType), {Param("a960", 1)}},
{Item("foo", Item::kTokenType), {Param("a961", 1)}},
{Item("foo", Item::kTokenType), {Param("a962", 1)}},
{Item("foo", Item::kTokenType), {Param("a963", 1)}},
{Item("foo", Item::kTokenType), {Param("a964", 1)}},
{Item("foo", Item::kTokenType), {Param("a965", 1)}},
{Item("foo", Item::kTokenType), {Param("a966", 1)}},
{Item("foo", Item::kTokenType), {Param("a967", 1)}},
{Item("foo", Item::kTokenType), {Param("a968", 1)}},
{Item("foo", Item::kTokenType), {Param("a969", 1)}},
{Item("foo", Item::kTokenType), {Param("a970", 1)}},
{Item("foo", Item::kTokenType), {Param("a971", 1)}},
{Item("foo", Item::kTokenType), {Param("a972", 1)}},
{Item("foo", Item::kTokenType), {Param("a973", 1)}},
{Item("foo", Item::kTokenType), {Param("a974", 1)}},
{Item("foo", Item::kTokenType), {Param("a975", 1)}},
{Item("foo", Item::kTokenType), {Param("a976", 1)}},
{Item("foo", Item::kTokenType), {Param("a977", 1)}},
{Item("foo", Item::kTokenType), {Param("a978", 1)}},
{Item("foo", Item::kTokenType), {Param("a979", 1)}},
{Item("foo", Item::kTokenType), {Param("a980", 1)}},
{Item("foo", Item::kTokenType), {Param("a981", 1)}},
{Item("foo", Item::kTokenType), {Param("a982", 1)}},
{Item("foo", Item::kTokenType), {Param("a983", 1)}},
{Item("foo", Item::kTokenType), {Param("a984", 1)}},
{Item("foo", Item::kTokenType), {Param("a985", 1)}},
{Item("foo", Item::kTokenType), {Param("a986", 1)}},
{Item("foo", Item::kTokenType), {Param("a987", 1)}},
{Item("foo", Item::kTokenType), {Param("a988", 1)}},
{Item("foo", Item::kTokenType), {Param("a989", 1)}},
{Item("foo", Item::kTokenType), {Param("a990", 1)}},
{Item("foo", Item::kTokenType), {Param("a991", 1)}},
{Item("foo", Item::kTokenType), {Param("a992", 1)}},
{Item("foo", Item::kTokenType), {Param("a993", 1)}},
{Item("foo", Item::kTokenType), {Param("a994", 1)}},
{Item("foo", Item::kTokenType), {Param("a995", 1)}},
{Item("foo", Item::kTokenType), {Param("a996", 1)}},
{Item("foo", Item::kTokenType), {Param("a997", 1)}},
{Item("foo", Item::kTokenType), {Param("a998", 1)}},
{Item("foo", Item::kTokenType), {Param("a999", 1)}},
{Item("foo", Item::kTokenType), {Param("a1000", 1)}},
{Item("foo", Item::kTokenType), {Param("a1001", 1)}},
{Item("foo", Item::kTokenType), {Param("a1002", 1)}},
{Item("foo", Item::kTokenType), {Param("a1003", 1)}},
{Item("foo", Item::kTokenType), {Param("a1004", 1)}},
{Item("foo", Item::kTokenType), {Param("a1005", 1)}},
{Item("foo", Item::kTokenType), {Param("a1006", 1)}},
{Item("foo", Item::kTokenType), {Param("a1007", 1)}},
{Item("foo", Item::kTokenType), {Param("a1008", 1)}},
{Item("foo", Item::kTokenType), {Param("a1009", 1)}},
{Item("foo", Item::kTokenType), {Param("a1010", 1)}},
{Item("foo", Item::kTokenType), {Param("a1011", 1)}},
{Item("foo", Item::kTokenType), {Param("a1012", 1)}},
{Item("foo", Item::kTokenType), {Param("a1013", 1)}},
{Item("foo", Item::kTokenType), {Param("a1014", 1)}},
{Item("foo", Item::kTokenType), {Param("a1015", 1)}},
{Item("foo", Item::kTokenType), {Param("a1016", 1)}},
{Item("foo", Item::kTokenType), {Param("a1017", 1)}},
{Item("foo", Item::kTokenType), {Param("a1018", 1)}},
{Item("foo", Item::kTokenType), {Param("a1019", 1)}},
{Item("foo", Item::kTokenType), {Param("a1020", 1)}},
{Item("foo", Item::kTokenType), {Param("a1021", 1)}},
{Item("foo", Item::kTokenType), {Param("a1022", 1)}},
{Item("foo", Item::kTokenType), {Param("a1023", 1)}}}},
nullptr},
{"large params",
"foo;a0=1;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;a9=1;a10=1;a11=1;a12=1;"
"a13=1;a14=1;a15=1;a16=1;a17=1;a18=1;a19=1;a20=1;a21=1;a22=1;a23=1;a24=1;"
"a25=1;a26=1;a27=1;a28=1;a29=1;a30=1;a31=1;a32=1;a33=1;a34=1;a35=1;a36=1;"
"a37=1;a38=1;a39=1;a40=1;a41=1;a42=1;a43=1;a44=1;a45=1;a46=1;a47=1;a48=1;"
"a49=1;a50=1;a51=1;a52=1;a53=1;a54=1;a55=1;a56=1;a57=1;a58=1;a59=1;a60=1;"
"a61=1;a62=1;a63=1;a64=1;a65=1;a66=1;a67=1;a68=1;a69=1;a70=1;a71=1;a72=1;"
"a73=1;a74=1;a75=1;a76=1;a77=1;a78=1;a79=1;a80=1;a81=1;a82=1;a83=1;a84=1;"
"a85=1;a86=1;a87=1;a88=1;a89=1;a90=1;a91=1;a92=1;a93=1;a94=1;a95=1;a96=1;"
"a97=1;a98=1;a99=1;a100=1;a101=1;a102=1;a103=1;a104=1;a105=1;a106=1;a107="
"1;a108=1;a109=1;a110=1;a111=1;a112=1;a113=1;a114=1;a115=1;a116=1;a117=1;"
"a118=1;a119=1;a120=1;a121=1;a122=1;a123=1;a124=1;a125=1;a126=1;a127=1;"
"a128=1;a129=1;a130=1;a131=1;a132=1;a133=1;a134=1;a135=1;a136=1;a137=1;"
"a138=1;a139=1;a140=1;a141=1;a142=1;a143=1;a144=1;a145=1;a146=1;a147=1;"
"a148=1;a149=1;a150=1;a151=1;a152=1;a153=1;a154=1;a155=1;a156=1;a157=1;"
"a158=1;a159=1;a160=1;a161=1;a162=1;a163=1;a164=1;a165=1;a166=1;a167=1;"
"a168=1;a169=1;a170=1;a171=1;a172=1;a173=1;a174=1;a175=1;a176=1;a177=1;"
"a178=1;a179=1;a180=1;a181=1;a182=1;a183=1;a184=1;a185=1;a186=1;a187=1;"
"a188=1;a189=1;a190=1;a191=1;a192=1;a193=1;a194=1;a195=1;a196=1;a197=1;"
"a198=1;a199=1;a200=1;a201=1;a202=1;a203=1;a204=1;a205=1;a206=1;a207=1;"
"a208=1;a209=1;a210=1;a211=1;a212=1;a213=1;a214=1;a215=1;a216=1;a217=1;"
"a218=1;a219=1;a220=1;a221=1;a222=1;a223=1;a224=1;a225=1;a226=1;a227=1;"
"a228=1;a229=1;a230=1;a231=1;a232=1;a233=1;a234=1;a235=1;a236=1;a237=1;"
"a238=1;a239=1;a240=1;a241=1;a242=1;a243=1;a244=1;a245=1;a246=1;a247=1;"
"a248=1;a249=1;a250=1;a251=1;a252=1;a253=1;a254=1;a255=1",
1685,
{{{Item("foo", Item::kTokenType),
{Param("a0", 1), Param("a1", 1), Param("a2", 1),
Param("a3", 1), Param("a4", 1), Param("a5", 1),
Param("a6", 1), Param("a7", 1), Param("a8", 1),
Param("a9", 1), Param("a10", 1), Param("a11", 1),
Param("a12", 1), Param("a13", 1), Param("a14", 1),
Param("a15", 1), Param("a16", 1), Param("a17", 1),
Param("a18", 1), Param("a19", 1), Param("a20", 1),
Param("a21", 1), Param("a22", 1), Param("a23", 1),
Param("a24", 1), Param("a25", 1), Param("a26", 1),
Param("a27", 1), Param("a28", 1), Param("a29", 1),
Param("a30", 1), Param("a31", 1), Param("a32", 1),
Param("a33", 1), Param("a34", 1), Param("a35", 1),
Param("a36", 1), Param("a37", 1), Param("a38", 1),
Param("a39", 1), Param("a40", 1), Param("a41", 1),
Param("a42", 1), Param("a43", 1), Param("a44", 1),
Param("a45", 1), Param("a46", 1), Param("a47", 1),
Param("a48", 1), Param("a49", 1), Param("a50", 1),
Param("a51", 1), Param("a52", 1), Param("a53", 1),
Param("a54", 1), Param("a55", 1), Param("a56", 1),
Param("a57", 1), Param("a58", 1), Param("a59", 1),
Param("a60", 1), Param("a61", 1), Param("a62", 1),
Param("a63", 1), Param("a64", 1), Param("a65", 1),
Param("a66", 1), Param("a67", 1), Param("a68", 1),
Param("a69", 1), Param("a70", 1), Param("a71", 1),
Param("a72", 1), Param("a73", 1), Param("a74", 1),
Param("a75", 1), Param("a76", 1), Param("a77", 1),
Param("a78", 1), Param("a79", 1), Param("a80", 1),
Param("a81", 1), Param("a82", 1), Param("a83", 1),
Param("a84", 1), Param("a85", 1), Param("a86", 1),
Param("a87", 1), Param("a88", 1), Param("a89", 1),
Param("a90", 1), Param("a91", 1), Param("a92", 1),
Param("a93", 1), Param("a94", 1), Param("a95", 1),
Param("a96", 1), Param("a97", 1), Param("a98", 1),
Param("a99", 1), Param("a100", 1), Param("a101", 1),
Param("a102", 1), Param("a103", 1), Param("a104", 1),
Param("a105", 1), Param("a106", 1), Param("a107", 1),
Param("a108", 1), Param("a109", 1), Param("a110", 1),
Param("a111", 1), Param("a112", 1), Param("a113", 1),
Param("a114", 1), Param("a115", 1), Param("a116", 1),
Param("a117", 1), Param("a118", 1), Param("a119", 1),
Param("a120", 1), Param("a121", 1), Param("a122", 1),
Param("a123", 1), Param("a124", 1), Param("a125", 1),
Param("a126", 1), Param("a127", 1), Param("a128", 1),
Param("a129", 1), Param("a130", 1), Param("a131", 1),
Param("a132", 1), Param("a133", 1), Param("a134", 1),
Param("a135", 1), Param("a136", 1), Param("a137", 1),
Param("a138", 1), Param("a139", 1), Param("a140", 1),
Param("a141", 1), Param("a142", 1), Param("a143", 1),
Param("a144", 1), Param("a145", 1), Param("a146", 1),
Param("a147", 1), Param("a148", 1), Param("a149", 1),
Param("a150", 1), Param("a151", 1), Param("a152", 1),
Param("a153", 1), Param("a154", 1), Param("a155", 1),
Param("a156", 1), Param("a157", 1), Param("a158", 1),
Param("a159", 1), Param("a160", 1), Param("a161", 1),
Param("a162", 1), Param("a163", 1), Param("a164", 1),
Param("a165", 1), Param("a166", 1), Param("a167", 1),
Param("a168", 1), Param("a169", 1), Param("a170", 1),
Param("a171", 1), Param("a172", 1), Param("a173", 1),
Param("a174", 1), Param("a175", 1), Param("a176", 1),
Param("a177", 1), Param("a178", 1), Param("a179", 1),
Param("a180", 1), Param("a181", 1), Param("a182", 1),
Param("a183", 1), Param("a184", 1), Param("a185", 1),
Param("a186", 1), Param("a187", 1), Param("a188", 1),
Param("a189", 1), Param("a190", 1), Param("a191", 1),
Param("a192", 1), Param("a193", 1), Param("a194", 1),
Param("a195", 1), Param("a196", 1), Param("a197", 1),
Param("a198", 1), Param("a199", 1), Param("a200", 1),
Param("a201", 1), Param("a202", 1), Param("a203", 1),
Param("a204", 1), Param("a205", 1), Param("a206", 1),
Param("a207", 1), Param("a208", 1), Param("a209", 1),
Param("a210", 1), Param("a211", 1), Param("a212", 1),
Param("a213", 1), Param("a214", 1), Param("a215", 1),
Param("a216", 1), Param("a217", 1), Param("a218", 1),
Param("a219", 1), Param("a220", 1), Param("a221", 1),
Param("a222", 1), Param("a223", 1), Param("a224", 1),
Param("a225", 1), Param("a226", 1), Param("a227", 1),
Param("a228", 1), Param("a229", 1), Param("a230", 1),
Param("a231", 1), Param("a232", 1), Param("a233", 1),
Param("a234", 1), Param("a235", 1), Param("a236", 1),
Param("a237", 1), Param("a238", 1), Param("a239", 1),
Param("a240", 1), Param("a241", 1), Param("a242", 1),
Param("a243", 1), Param("a244", 1), Param("a245", 1),
Param("a246", 1), Param("a247", 1), Param("a248", 1),
Param("a249", 1), Param("a250", 1), Param("a251", 1),
Param("a252", 1), Param("a253", 1), Param("a254", 1),
Param("a255", 1)}}}},
nullptr},
{"large param key",
"foo;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=1",
70,
{{{Item("foo", Item::kTokenType),
{Param(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1)}}}},
nullptr},
{"large inner list",
"(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 "
"27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 "
"51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 "
"75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 "
"99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 "
"117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 "
"135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 "
"153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 "
"171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 "
"189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 "
"207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 "
"225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 "
"243 244 245 246 247 248 249 250 251 252 253 254 255)",
915,
{{{{{Integer(0), {}}, {Integer(1), {}}, {Integer(2), {}},
{Integer(3), {}}, {Integer(4), {}}, {Integer(5), {}},
{Integer(6), {}}, {Integer(7), {}}, {Integer(8), {}},
{Integer(9), {}}, {Integer(10), {}}, {Integer(11), {}},
{Integer(12), {}}, {Integer(13), {}}, {Integer(14), {}},
{Integer(15), {}}, {Integer(16), {}}, {Integer(17), {}},
{Integer(18), {}}, {Integer(19), {}}, {Integer(20), {}},
{Integer(21), {}}, {Integer(22), {}}, {Integer(23), {}},
{Integer(24), {}}, {Integer(25), {}}, {Integer(26), {}},
{Integer(27), {}}, {Integer(28), {}}, {Integer(29), {}},
{Integer(30), {}}, {Integer(31), {}}, {Integer(32), {}},
{Integer(33), {}}, {Integer(34), {}}, {Integer(35), {}},
{Integer(36), {}}, {Integer(37), {}}, {Integer(38), {}},
{Integer(39), {}}, {Integer(40), {}}, {Integer(41), {}},
{Integer(42), {}}, {Integer(43), {}}, {Integer(44), {}},
{Integer(45), {}}, {Integer(46), {}}, {Integer(47), {}},
{Integer(48), {}}, {Integer(49), {}}, {Integer(50), {}},
{Integer(51), {}}, {Integer(52), {}}, {Integer(53), {}},
{Integer(54), {}}, {Integer(55), {}}, {Integer(56), {}},
{Integer(57), {}}, {Integer(58), {}}, {Integer(59), {}},
{Integer(60), {}}, {Integer(61), {}}, {Integer(62), {}},
{Integer(63), {}}, {Integer(64), {}}, {Integer(65), {}},
{Integer(66), {}}, {Integer(67), {}}, {Integer(68), {}},
{Integer(69), {}}, {Integer(70), {}}, {Integer(71), {}},
{Integer(72), {}}, {Integer(73), {}}, {Integer(74), {}},
{Integer(75), {}}, {Integer(76), {}}, {Integer(77), {}},
{Integer(78), {}}, {Integer(79), {}}, {Integer(80), {}},
{Integer(81), {}}, {Integer(82), {}}, {Integer(83), {}},
{Integer(84), {}}, {Integer(85), {}}, {Integer(86), {}},
{Integer(87), {}}, {Integer(88), {}}, {Integer(89), {}},
{Integer(90), {}}, {Integer(91), {}}, {Integer(92), {}},
{Integer(93), {}}, {Integer(94), {}}, {Integer(95), {}},
{Integer(96), {}}, {Integer(97), {}}, {Integer(98), {}},
{Integer(99), {}}, {Integer(100), {}}, {Integer(101), {}},
{Integer(102), {}}, {Integer(103), {}}, {Integer(104), {}},
{Integer(105), {}}, {Integer(106), {}}, {Integer(107), {}},
{Integer(108), {}}, {Integer(109), {}}, {Integer(110), {}},
{Integer(111), {}}, {Integer(112), {}}, {Integer(113), {}},
{Integer(114), {}}, {Integer(115), {}}, {Integer(116), {}},
{Integer(117), {}}, {Integer(118), {}}, {Integer(119), {}},
{Integer(120), {}}, {Integer(121), {}}, {Integer(122), {}},
{Integer(123), {}}, {Integer(124), {}}, {Integer(125), {}},
{Integer(126), {}}, {Integer(127), {}}, {Integer(128), {}},
{Integer(129), {}}, {Integer(130), {}}, {Integer(131), {}},
{Integer(132), {}}, {Integer(133), {}}, {Integer(134), {}},
{Integer(135), {}}, {Integer(136), {}}, {Integer(137), {}},
{Integer(138), {}}, {Integer(139), {}}, {Integer(140), {}},
{Integer(141), {}}, {Integer(142), {}}, {Integer(143), {}},
{Integer(144), {}}, {Integer(145), {}}, {Integer(146), {}},
{Integer(147), {}}, {Integer(148), {}}, {Integer(149), {}},
{Integer(150), {}}, {Integer(151), {}}, {Integer(152), {}},
{Integer(153), {}}, {Integer(154), {}}, {Integer(155), {}},
{Integer(156), {}}, {Integer(157), {}}, {Integer(158), {}},
{Integer(159), {}}, {Integer(160), {}}, {Integer(161), {}},
{Integer(162), {}}, {Integer(163), {}}, {Integer(164), {}},
{Integer(165), {}}, {Integer(166), {}}, {Integer(167), {}},
{Integer(168), {}}, {Integer(169), {}}, {Integer(170), {}},
{Integer(171), {}}, {Integer(172), {}}, {Integer(173), {}},
{Integer(174), {}}, {Integer(175), {}}, {Integer(176), {}},
{Integer(177), {}}, {Integer(178), {}}, {Integer(179), {}},
{Integer(180), {}}, {Integer(181), {}}, {Integer(182), {}},
{Integer(183), {}}, {Integer(184), {}}, {Integer(185), {}},
{Integer(186), {}}, {Integer(187), {}}, {Integer(188), {}},
{Integer(189), {}}, {Integer(190), {}}, {Integer(191), {}},
{Integer(192), {}}, {Integer(193), {}}, {Integer(194), {}},
{Integer(195), {}}, {Integer(196), {}}, {Integer(197), {}},
{Integer(198), {}}, {Integer(199), {}}, {Integer(200), {}},
{Integer(201), {}}, {Integer(202), {}}, {Integer(203), {}},
{Integer(204), {}}, {Integer(205), {}}, {Integer(206), {}},
{Integer(207), {}}, {Integer(208), {}}, {Integer(209), {}},
{Integer(210), {}}, {Integer(211), {}}, {Integer(212), {}},
{Integer(213), {}}, {Integer(214), {}}, {Integer(215), {}},
{Integer(216), {}}, {Integer(217), {}}, {Integer(218), {}},
{Integer(219), {}}, {Integer(220), {}}, {Integer(221), {}},
{Integer(222), {}}, {Integer(223), {}}, {Integer(224), {}},
{Integer(225), {}}, {Integer(226), {}}, {Integer(227), {}},
{Integer(228), {}}, {Integer(229), {}}, {Integer(230), {}},
{Integer(231), {}}, {Integer(232), {}}, {Integer(233), {}},
{Integer(234), {}}, {Integer(235), {}}, {Integer(236), {}},
{Integer(237), {}}, {Integer(238), {}}, {Integer(239), {}},
{Integer(240), {}}, {Integer(241), {}}, {Integer(242), {}},
{Integer(243), {}}, {Integer(244), {}}, {Integer(245), {}},
{Integer(246), {}}, {Integer(247), {}}, {Integer(248), {}},
{Integer(249), {}}, {Integer(250), {}}, {Integer(251), {}},
{Integer(252), {}}, {Integer(253), {}}, {Integer(254), {}},
{Integer(255), {}}},
{}}}},
nullptr},
// list.json
{"basic list",
"1, 42",
5,
{{{Integer(1), {}}, {Integer(42), {}}}},
nullptr},
{"empty list", "", 0, {{}}, nullptr},
{"leading SP list",
" 42, 43",
8,
{{{Integer(42), {}}, {Integer(43), {}}}},
"42, 43"},
{"single item list", "42", 2, {{{Integer(42), {}}}}, nullptr},
{"no whitespace list",
"1,42",
4,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"extra whitespace list",
"1 , 42",
6,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"tab separated list",
"1\t,\t42",
6,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"two line list",
"1, 42",
5,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"trailing comma list", "1, 42,", 6, std::nullopt, nullptr},
{"empty item list", "1,,42", 5, std::nullopt, nullptr},
{"empty item list (multiple field lines)", "1, , 42", 7, std::nullopt,
nullptr},
// listlist.json
{"basic list of lists",
"(1 2), (42 43)",
14,
{{{{{Integer(1), {}}, {Integer(2), {}}}, {}},
{{{Integer(42), {}}, {Integer(43), {}}}, {}}}},
nullptr},
{"single item list of lists",
"(42)",
4,
{{{{{Integer(42), {}}}, {}}}},
nullptr},
{"empty item list of lists",
"()",
2,
{{{std::vector<ParameterizedItem>(), {}}}},
nullptr},
{"empty middle item list of lists",
"(1),(),(42)",
11,
{{{{{Integer(1), {}}}, {}},
{std::vector<ParameterizedItem>(), {}},
{{{Integer(42), {}}}, {}}}},
"(1), (), (42)"},
{"extra whitespace list of lists",
"( 1 42 )",
11,
{{{{{Integer(1), {}}, {Integer(42), {}}}, {}}}},
"(1 42)"},
{"wrong whitespace list of lists", "(1\t 42)", 7, std::nullopt, nullptr},
{"no trailing parenthesis list of lists", "(1 42", 5, std::nullopt,
nullptr},
{"no trailing parenthesis middle list of lists", "(1 2, (42 43)", 13,
std::nullopt, nullptr},
{"no spaces in inner-list", "(abc\"def\"?0123*dXZ3*xyz)", 24, std::nullopt,
nullptr},
{"no closing parenthesis", "(", 1, std::nullopt, nullptr},
{"nested inner lists", "((1))", 5, std::nullopt, nullptr},
{"dictionary in inner list", "(a=1)", 5, std::nullopt, nullptr},
// number.json
{"long integer followed by comma",
"123456789012345, 1",
18,
{{{Integer(123456789012345), {}}, {Integer(1), {}}}},
nullptr},
{"too long integer followed by comma", "1234567890123456, 1", 19,
std::nullopt, nullptr},
{"decimal, followed by comma",
"123456789012.123, 1.1",
21,
{{{Item(123456789012.123), {}}, {Item(1.1), {}}}},
nullptr},
// param-list.json
{"basic parameterised list",
"abc_123;a=1;b=2; cdef_456, ghi;q=9;r=\"+w\"",
41,
{{{Item("abc_123", Item::kTokenType),
{Param("a", 1), Param("b", 2), BooleanParam("cdef_456", true)}},
{Item("ghi", Item::kTokenType), {Param("q", 9), Param("r", "+w")}}}},
"abc_123;a=1;b=2;cdef_456, ghi;q=9;r=\"+w\""},
{"single item parameterised list",
"text/html;q=1.0",
15,
{{{Item("text/html", Item::kTokenType), {DoubleParam("q", 1.0)}}}},
nullptr},
{"missing parameter value parameterised list",
"text/html;a;q=1.0",
17,
{{{Item("text/html", Item::kTokenType),
{BooleanParam("a", true), DoubleParam("q", 1.0)}}}},
nullptr},
{"missing terminal parameter value parameterised list",
"text/html;q=1.0;a",
17,
{{{Item("text/html", Item::kTokenType),
{DoubleParam("q", 1.0), BooleanParam("a", true)}}}},
nullptr},
{"no whitespace parameterised list",
"text/html,text/plain;q=0.5",
26,
{{{Item("text/html", Item::kTokenType), {}},
{Item("text/plain", Item::kTokenType), {DoubleParam("q", 0.5)}}}},
"text/html, text/plain;q=0.5"},
{"whitespace before = parameterised list", "text/html, text/plain;q =0.5",
28, std::nullopt, nullptr},
{"whitespace after = parameterised list", "text/html, text/plain;q= 0.5",
28, std::nullopt, nullptr},
{"whitespace before ; parameterised list", "text/html, text/plain ;q=0.5",
28, std::nullopt, nullptr},
{"whitespace after ; parameterised list",
"text/html, text/plain; q=0.5",
28,
{{{Item("text/html", Item::kTokenType), {}},
{Item("text/plain", Item::kTokenType), {DoubleParam("q", 0.5)}}}},
"text/html, text/plain;q=0.5"},
{"extra whitespace parameterised list",
"text/html , text/plain; q=0.5; charset=utf-8",
48,
{{{Item("text/html", Item::kTokenType), {}},
{Item("text/plain", Item::kTokenType),
{DoubleParam("q", 0.5), TokenParam("charset", "utf-8")}}}},
"text/html, text/plain;q=0.5;charset=utf-8"},
{"two lines parameterised list",
"text/html, text/plain;q=0.5",
27,
{{{Item("text/html", Item::kTokenType), {}},
{Item("text/plain", Item::kTokenType), {DoubleParam("q", 0.5)}}}},
"text/html, text/plain;q=0.5"},
{"trailing comma parameterised list", "text/html,text/plain;q=0.5,", 27,
std::nullopt, nullptr},
{"empty item parameterised list", "text/html,,text/plain;q=0.5,", 28,
std::nullopt, nullptr},
{"duplicate parameter with different positions",
"a;b=1;c=2;b=3",
13,
{{{Item("a", Item::kTokenType), {Param("b", 3), Param("c", 2)}}}},
"a;b=3;c=2"},
{"parameter ordering",
"a;m;z;t",
7,
{{{Item("a", Item::kTokenType),
{BooleanParam("m", true), BooleanParam("z", true),
BooleanParam("t", true)}}}},
nullptr},
{"trailing semicolon in parameters", "a;b=1;", 6, std::nullopt, nullptr},
{"trailing semicolon and space in parameters", "a;b=1; ", 7, std::nullopt,
nullptr},
{"empty parameter key", "a;=1", 4, std::nullopt, nullptr},
{"parameter prefix only", "a;", 2, std::nullopt, nullptr},
{"parameter prefix and space only", "a; ", 3, std::nullopt, nullptr},
// param-listlist.json
{"parameterised inner list",
"(abc_123);a=1;b=2, cdef_456",
27,
{{{{{Item("abc_123", Item::kTokenType), {}}},
{Param("a", 1), Param("b", 2)}},
{Item("cdef_456", Item::kTokenType), {}}}},
nullptr},
{"parameterised inner list item",
"(abc_123;a=1;b=2;cdef_456)",
26,
{{{{{Item("abc_123", Item::kTokenType),
{Param("a", 1), Param("b", 2), BooleanParam("cdef_456", true)}}},
{}}}},
nullptr},
{"parameterised inner list with parameterised item",
"(abc_123;a=1;b=2);cdef_456",
26,
{{{{{Item("abc_123", Item::kTokenType), {Param("a", 1), Param("b", 2)}}},
{BooleanParam("cdef_456", true)}}}},
nullptr},
// token.json
{"basic token - list",
"a_b-c3/*",
8,
{{{Item("a_b-c3/*", Item::kTokenType), {}}}},
nullptr},
{"token with capitals - list",
"fooBar",
6,
{{{Item("fooBar", Item::kTokenType), {}}}},
nullptr},
{"token starting with capitals - list",
"FooBar",
6,
{{{Item("FooBar", Item::kTokenType), {}}}},
nullptr},
};
const struct DictionaryTestCase {
const char* name;
const char* raw;
size_t raw_len;
const std::optional<Dictionary>
expected; // nullopt if parse error is expected.
const char* canonical; // nullptr if parse error is expected, or if canonical
// format is identical to raw.
const char* known_bug = nullptr;
} dictionary_test_cases[] = {
// dictionary.json
{"basic dictionary",
"en=\"Applepie\", da=:w4ZibGV0w6ZydGUK:",
36,
{Dictionary{
{{"en", {Item("Applepie"), {}}},
{"da",
{Item("\303\206blet\303\246rte\012", Item::kByteSequenceType),
{}}}}}},
nullptr},
{"empty dictionary", "", 0, {Dictionary{{}}}, nullptr},
{"single item dictionary",
"a=1",
3,
{Dictionary{{{"a", {Integer(1), {}}}}}},
nullptr},
{"list item dictionary",
"a=(1 2)",
7,
{Dictionary{{{"a", {{{Integer(1), {}}, {Integer(2), {}}}, {}}}}}},
nullptr},
{"single list item dictionary",
"a=(1)",
5,
{Dictionary{{{"a", {{{Integer(1), {}}}, {}}}}}},
nullptr},
{"empty list item dictionary",
"a=()",
4,
{Dictionary{{{"a", {std::vector<ParameterizedItem>(), {}}}}}},
nullptr},
{"no whitespace dictionary",
"a=1,b=2",
7,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"extra whitespace dictionary",
"a=1 , b=2",
10,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"tab separated dictionary",
"a=1\t,\tb=2",
9,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"leading whitespace dictionary",
" a=1 , b=2",
15,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"whitespace before = dictionary", "a =1, b=2", 9, std::nullopt, nullptr},
{"whitespace after = dictionary", "a=1, b= 2", 9, std::nullopt, nullptr},
{"two lines dictionary",
"a=1, b=2",
8,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"missing value dictionary",
"a=1, b, c=3",
11,
{Dictionary{{{"a", {Integer(1), {}}},
{"b", {Item(true), {}}},
{"c", {Integer(3), {}}}}}},
nullptr},
{"all missing value dictionary",
"a, b, c",
7,
{Dictionary{{{"a", {Item(true), {}}},
{"b", {Item(true), {}}},
{"c", {Item(true), {}}}}}},
nullptr},
{"start missing value dictionary",
"a, b=2",
6,
{Dictionary{{{"a", {Item(true), {}}}, {"b", {Integer(2), {}}}}}},
nullptr},
{"end missing value dictionary",
"a=1, b",
6,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Item(true), {}}}}}},
nullptr},
{"missing value with params dictionary",
"a=1, b;foo=9, c=3",
17,
{Dictionary{{{"a", {Integer(1), {}}},
{"b", {Item(true), {Param("foo", 9)}}},
{"c", {Integer(3), {}}}}}},
nullptr},
{"explicit true value with params dictionary",
"a=1, b=?1;foo=9, c=3",
20,
{Dictionary{{{"a", {Integer(1), {}}},
{"b", {Item(true), {Param("foo", 9)}}},
{"c", {Integer(3), {}}}}}},
"a=1, b;foo=9, c=3"},
{"trailing comma dictionary", "a=1, b=2,", 9, std::nullopt, nullptr},
{"empty item dictionary", "a=1,,b=2,", 9, std::nullopt, nullptr},
{"duplicate key dictionary",
"a=1,b=2,a=3",
11,
{Dictionary{{{"a", {Integer(3), {}}}, {"b", {Integer(2), {}}}}}},
"a=3, b=2"},
{"dictionary key ordering",
"m, z, t",
7,
{Dictionary{{{"m", {Item(true), {}}},
{"z", {Item(true), {}}},
{"t", {Item(true), {}}}}}},
nullptr},
{"numeric key dictionary", "a=1,1b=2,a=1", 12, std::nullopt, nullptr},
{"uppercase key dictionary", "a=1,B=2,a=1", 11, std::nullopt, nullptr},
{"bad key dictionary", "a=1,b!=2,a=1", 12, std::nullopt, nullptr},
// examples.json
{"Example-DictHeader",
"en=\"Applepie\", da=:w4ZibGV0w6ZydGU=:",
36,
{Dictionary{
{{"en", {Item("Applepie"), {}}},
{"da",
{Item("\303\206blet\303\246rte", Item::kByteSequenceType), {}}}}}},
nullptr},
{"Example-DictHeader (boolean values)",
"a=?0, b, c; foo=bar",
19,
{Dictionary{{{"a", {Item(false), {}}},
{"b", {Item(true), {}}},
{"c", {Item(true), {TokenParam("foo", "bar")}}}}}},
"a=?0, b, c;foo=bar"},
{"Example-DictListHeader",
"rating=1.5, feelings=(joy sadness)",
34,
{Dictionary{{{"rating", {Item(1.5), {}}},
{"feelings",
{{{Item("joy", Item::kTokenType), {}},
{Item("sadness", Item::kTokenType), {}}},
{}}}}}},
nullptr},
{"Example-MixDict",
"a=(1 2), b=3, c=4;aa=bb, d=(5 6);valid",
38,
{Dictionary{{{"a", {{{Integer(1), {}}, {Integer(2), {}}}, {}}},
{"b", {Integer(3), {}}},
{"c", {Integer(4), {TokenParam("aa", "bb")}}},
{"d",
{{{Integer(5), {}}, {Integer(6), {}}},
{BooleanParam("valid", true)}}}}}},
"a=(1 2), b=3, c=4;aa=bb, d=(5 6);valid"},
{"Example-Hdr (dictionary on one line)",
"foo=1, bar=2",
12,
{Dictionary{{{"foo", {Integer(1), {}}}, {"bar", {Integer(2), {}}}}}},
nullptr},
{"Example-Hdr (dictionary on two lines)",
"foo=1, bar=2",
12,
{Dictionary{{{"foo", {Integer(1), {}}}, {"bar", {Integer(2), {}}}}}},
"foo=1, bar=2"},
// key-generated.json
{"0x00 as a single-character dictionary key", "\000=1", 3, std::nullopt,
nullptr},
{"0x01 as a single-character dictionary key", "\001=1", 3, std::nullopt,
nullptr},
{"0x02 as a single-character dictionary key", "\002=1", 3, std::nullopt,
nullptr},
{"0x03 as a single-character dictionary key", "\003=1", 3, std::nullopt,
nullptr},
{"0x04 as a single-character dictionary key", "\004=1", 3, std::nullopt,
nullptr},
{"0x05 as a single-character dictionary key", "\005=1", 3, std::nullopt,
nullptr},
{"0x06 as a single-character dictionary key", "\006=1", 3, std::nullopt,
nullptr},
{"0x07 as a single-character dictionary key", "\007=1", 3, std::nullopt,
nullptr},
{"0x08 as a single-character dictionary key", "\010=1", 3, std::nullopt,
nullptr},
{"0x09 as a single-character dictionary key", "\t=1", 3, std::nullopt,
nullptr},
{"0x0a as a single-character dictionary key", "\n=1", 3, std::nullopt,
nullptr},
{"0x0b as a single-character dictionary key", "\013=1", 3, std::nullopt,
nullptr},
{"0x0c as a single-character dictionary key", "\014=1", 3, std::nullopt,
nullptr},
{"0x0d as a single-character dictionary key", "\r=1", 3, std::nullopt,
nullptr},
{"0x0e as a single-character dictionary key", "\016=1", 3, std::nullopt,
nullptr},
{"0x0f as a single-character dictionary key", "\017=1", 3, std::nullopt,
nullptr},
{"0x10 as a single-character dictionary key", "\020=1", 3, std::nullopt,
nullptr},
{"0x11 as a single-character dictionary key", "\021=1", 3, std::nullopt,
nullptr},
{"0x12 as a single-character dictionary key", "\022=1", 3, std::nullopt,
nullptr},
{"0x13 as a single-character dictionary key", "\023=1", 3, std::nullopt,
nullptr},
{"0x14 as a single-character dictionary key", "\024=1", 3, std::nullopt,
nullptr},
{"0x15 as a single-character dictionary key", "\025=1", 3, std::nullopt,
nullptr},
{"0x16 as a single-character dictionary key", "\026=1", 3, std::nullopt,
nullptr},
{"0x17 as a single-character dictionary key", "\027=1", 3, std::nullopt,
nullptr},
{"0x18 as a single-character dictionary key", "\030=1", 3, std::nullopt,
nullptr},
{"0x19 as a single-character dictionary key", "\031=1", 3, std::nullopt,
nullptr},
{"0x1a as a single-character dictionary key", "\032=1", 3, std::nullopt,
nullptr},
{"0x1b as a single-character dictionary key", "\033=1", 3, std::nullopt,
nullptr},
{"0x1c as a single-character dictionary key", "\034=1", 3, std::nullopt,
nullptr},
{"0x1d as a single-character dictionary key", "\035=1", 3, std::nullopt,
nullptr},
{"0x1e as a single-character dictionary key", "\036=1", 3, std::nullopt,
nullptr},
{"0x1f as a single-character dictionary key", "\037=1", 3, std::nullopt,
nullptr},
{"0x20 as a single-character dictionary key", "=1", 2, std::nullopt,
nullptr},
{"0x21 as a single-character dictionary key", "!=1", 3, std::nullopt,
nullptr},
{"0x22 as a single-character dictionary key", "\"=1", 3, std::nullopt,
nullptr},
{"0x23 as a single-character dictionary key", "#=1", 3, std::nullopt,
nullptr},
{"0x24 as a single-character dictionary key", "$=1", 3, std::nullopt,
nullptr},
{"0x25 as a single-character dictionary key", "%=1", 3, std::nullopt,
nullptr},
{"0x26 as a single-character dictionary key", "&=1", 3, std::nullopt,
nullptr},
{"0x27 as a single-character dictionary key", "'=1", 3, std::nullopt,
nullptr},
{"0x28 as a single-character dictionary key", "(=1", 3, std::nullopt,
nullptr},
{"0x29 as a single-character dictionary key", ")=1", 3, std::nullopt,
nullptr},
{"0x2a as a single-character dictionary key",
"*=1",
3,
{Dictionary{{{"*", {Integer(1), {}}}}}},
nullptr},
{"0x2b as a single-character dictionary key", "+=1", 3, std::nullopt,
nullptr},
{"0x2c as a single-character dictionary key", ",=1", 3, std::nullopt,
nullptr},
{"0x2d as a single-character dictionary key", "-=1", 3, std::nullopt,
nullptr},
{"0x2e as a single-character dictionary key", ".=1", 3, std::nullopt,
nullptr},
{"0x2f as a single-character dictionary key", "/=1", 3, std::nullopt,
nullptr},
{"0x30 as a single-character dictionary key", "0=1", 3, std::nullopt,
nullptr},
{"0x31 as a single-character dictionary key", "1=1", 3, std::nullopt,
nullptr},
{"0x32 as a single-character dictionary key", "2=1", 3, std::nullopt,
nullptr},
{"0x33 as a single-character dictionary key", "3=1", 3, std::nullopt,
nullptr},
{"0x34 as a single-character dictionary key", "4=1", 3, std::nullopt,
nullptr},
{"0x35 as a single-character dictionary key", "5=1", 3, std::nullopt,
nullptr},
{"0x36 as a single-character dictionary key", "6=1", 3, std::nullopt,
nullptr},
{"0x37 as a single-character dictionary key", "7=1", 3, std::nullopt,
nullptr},
{"0x38 as a single-character dictionary key", "8=1", 3, std::nullopt,
nullptr},
{"0x39 as a single-character dictionary key", "9=1", 3, std::nullopt,
nullptr},
{"0x3a as a single-character dictionary key", ":=1", 3, std::nullopt,
nullptr},
{"0x3b as a single-character dictionary key", ";=1", 3, std::nullopt,
nullptr},
{"0x3c as a single-character dictionary key", "<=1", 3, std::nullopt,
nullptr},
{"0x3d as a single-character dictionary key", "==1", 3, std::nullopt,
nullptr},
{"0x3e as a single-character dictionary key", ">=1", 3, std::nullopt,
nullptr},
{"0x3f as a single-character dictionary key", "?=1", 3, std::nullopt,
nullptr},
{"0x40 as a single-character dictionary key", "@=1", 3, std::nullopt,
nullptr},
{"0x41 as a single-character dictionary key", "A=1", 3, std::nullopt,
nullptr},
{"0x42 as a single-character dictionary key", "B=1", 3, std::nullopt,
nullptr},
{"0x43 as a single-character dictionary key", "C=1", 3, std::nullopt,
nullptr},
{"0x44 as a single-character dictionary key", "D=1", 3, std::nullopt,
nullptr},
{"0x45 as a single-character dictionary key", "E=1", 3, std::nullopt,
nullptr},
{"0x46 as a single-character dictionary key", "F=1", 3, std::nullopt,
nullptr},
{"0x47 as a single-character dictionary key", "G=1", 3, std::nullopt,
nullptr},
{"0x48 as a single-character dictionary key", "H=1", 3, std::nullopt,
nullptr},
{"0x49 as a single-character dictionary key", "I=1", 3, std::nullopt,
nullptr},
{"0x4a as a single-character dictionary key", "J=1", 3, std::nullopt,
nullptr},
{"0x4b as a single-character dictionary key", "K=1", 3, std::nullopt,
nullptr},
{"0x4c as a single-character dictionary key", "L=1", 3, std::nullopt,
nullptr},
{"0x4d as a single-character dictionary key", "M=1", 3, std::nullopt,
nullptr},
{"0x4e as a single-character dictionary key", "N=1", 3, std::nullopt,
nullptr},
{"0x4f as a single-character dictionary key", "O=1", 3, std::nullopt,
nullptr},
{"0x50 as a single-character dictionary key", "P=1", 3, std::nullopt,
nullptr},
{"0x51 as a single-character dictionary key", "Q=1", 3, std::nullopt,
nullptr},
{"0x52 as a single-character dictionary key", "R=1", 3, std::nullopt,
nullptr},
{"0x53 as a single-character dictionary key", "S=1", 3, std::nullopt,
nullptr},
{"0x54 as a single-character dictionary key", "T=1", 3, std::nullopt,
nullptr},
{"0x55 as a single-character dictionary key", "U=1", 3, std::nullopt,
nullptr},
{"0x56 as a single-character dictionary key", "V=1", 3, std::nullopt,
nullptr},
{"0x57 as a single-character dictionary key", "W=1", 3, std::nullopt,
nullptr},
{"0x58 as a single-character dictionary key", "X=1", 3, std::nullopt,
nullptr},
{"0x59 as a single-character dictionary key", "Y=1", 3, std::nullopt,
nullptr},
{"0x5a as a single-character dictionary key", "Z=1", 3, std::nullopt,
nullptr},
{"0x5b as a single-character dictionary key", "[=1", 3, std::nullopt,
nullptr},
{"0x5c as a single-character dictionary key", "\\=1", 3, std::nullopt,
nullptr},
{"0x5d as a single-character dictionary key", "]=1", 3, std::nullopt,
nullptr},
{"0x5e as a single-character dictionary key", "^=1", 3, std::nullopt,
nullptr},
{"0x5f as a single-character dictionary key", "_=1", 3, std::nullopt,
nullptr},
{"0x60 as a single-character dictionary key", "`=1", 3, std::nullopt,
nullptr},
{"0x61 as a single-character dictionary key",
"a=1",
3,
{Dictionary{{{"a", {Integer(1), {}}}}}},
nullptr},
{"0x62 as a single-character dictionary key",
"b=1",
3,
{Dictionary{{{"b", {Integer(1), {}}}}}},
nullptr},
{"0x63 as a single-character dictionary key",
"c=1",
3,
{Dictionary{{{"c", {Integer(1), {}}}}}},
nullptr},
{"0x64 as a single-character dictionary key",
"d=1",
3,
{Dictionary{{{"d", {Integer(1), {}}}}}},
nullptr},
{"0x65 as a single-character dictionary key",
"e=1",
3,
{Dictionary{{{"e", {Integer(1), {}}}}}},
nullptr},
{"0x66 as a single-character dictionary key",
"f=1",
3,
{Dictionary{{{"f", {Integer(1), {}}}}}},
nullptr},
{"0x67 as a single-character dictionary key",
"g=1",
3,
{Dictionary{{{"g", {Integer(1), {}}}}}},
nullptr},
{"0x68 as a single-character dictionary key",
"h=1",
3,
{Dictionary{{{"h", {Integer(1), {}}}}}},
nullptr},
{"0x69 as a single-character dictionary key",
"i=1",
3,
{Dictionary{{{"i", {Integer(1), {}}}}}},
nullptr},
{"0x6a as a single-character dictionary key",
"j=1",
3,
{Dictionary{{{"j", {Integer(1), {}}}}}},
nullptr},
{"0x6b as a single-character dictionary key",
"k=1",
3,
{Dictionary{{{"k", {Integer(1), {}}}}}},
nullptr},
{"0x6c as a single-character dictionary key",
"l=1",
3,
{Dictionary{{{"l", {Integer(1), {}}}}}},
nullptr},
{"0x6d as a single-character dictionary key",
"m=1",
3,
{Dictionary{{{"m", {Integer(1), {}}}}}},
nullptr},
{"0x6e as a single-character dictionary key",
"n=1",
3,
{Dictionary{{{"n", {Integer(1), {}}}}}},
nullptr},
{"0x6f as a single-character dictionary key",
"o=1",
3,
{Dictionary{{{"o", {Integer(1), {}}}}}},
nullptr},
{"0x70 as a single-character dictionary key",
"p=1",
3,
{Dictionary{{{"p", {Integer(1), {}}}}}},
nullptr},
{"0x71 as a single-character dictionary key",
"q=1",
3,
{Dictionary{{{"q", {Integer(1), {}}}}}},
nullptr},
{"0x72 as a single-character dictionary key",
"r=1",
3,
{Dictionary{{{"r", {Integer(1), {}}}}}},
nullptr},
{"0x73 as a single-character dictionary key",
"s=1",
3,
{Dictionary{{{"s", {Integer(1), {}}}}}},
nullptr},
{"0x74 as a single-character dictionary key",
"t=1",
3,
{Dictionary{{{"t", {Integer(1), {}}}}}},
nullptr},
{"0x75 as a single-character dictionary key",
"u=1",
3,
{Dictionary{{{"u", {Integer(1), {}}}}}},
nullptr},
{"0x76 as a single-character dictionary key",
"v=1",
3,
{Dictionary{{{"v", {Integer(1), {}}}}}},
nullptr},
{"0x77 as a single-character dictionary key",
"w=1",
3,
{Dictionary{{{"w", {Integer(1), {}}}}}},
nullptr},
{"0x78 as a single-character dictionary key",
"x=1",
3,
{Dictionary{{{"x", {Integer(1), {}}}}}},
nullptr},
{"0x79 as a single-character dictionary key",
"y=1",
3,
{Dictionary{{{"y", {Integer(1), {}}}}}},
nullptr},
{"0x7a as a single-character dictionary key",
"z=1",
3,
{Dictionary{{{"z", {Integer(1), {}}}}}},
nullptr},
{"0x7b as a single-character dictionary key", "{=1", 3, std::nullopt,
nullptr},
{"0x7c as a single-character dictionary key", "|=1", 3, std::nullopt,
nullptr},
{"0x7d as a single-character dictionary key", "}=1", 3, std::nullopt,
nullptr},
{"0x7e as a single-character dictionary key", "~=1", 3, std::nullopt,
nullptr},
{"0x7f as a single-character dictionary key", "\177=1", 3, std::nullopt,
nullptr},
{"0x00 in dictionary key", "a\000a=1", 5, std::nullopt, nullptr},
{"0x01 in dictionary key", "a\001a=1", 5, std::nullopt, nullptr},
{"0x02 in dictionary key", "a\002a=1", 5, std::nullopt, nullptr},
{"0x03 in dictionary key", "a\003a=1", 5, std::nullopt, nullptr},
{"0x04 in dictionary key", "a\004a=1", 5, std::nullopt, nullptr},
{"0x05 in dictionary key", "a\005a=1", 5, std::nullopt, nullptr},
{"0x06 in dictionary key", "a\006a=1", 5, std::nullopt, nullptr},
{"0x07 in dictionary key", "a\007a=1", 5, std::nullopt, nullptr},
{"0x08 in dictionary key", "a\010a=1", 5, std::nullopt, nullptr},
{"0x09 in dictionary key", "a\ta=1", 5, std::nullopt, nullptr},
{"0x0a in dictionary key", "a\na=1", 5, std::nullopt, nullptr},
{"0x0b in dictionary key", "a\013a=1", 5, std::nullopt, nullptr},
{"0x0c in dictionary key", "a\014a=1", 5, std::nullopt, nullptr},
{"0x0d in dictionary key", "a\ra=1", 5, std::nullopt, nullptr},
{"0x0e in dictionary key", "a\016a=1", 5, std::nullopt, nullptr},
{"0x0f in dictionary key", "a\017a=1", 5, std::nullopt, nullptr},
{"0x10 in dictionary key", "a\020a=1", 5, std::nullopt, nullptr},
{"0x11 in dictionary key", "a\021a=1", 5, std::nullopt, nullptr},
{"0x12 in dictionary key", "a\022a=1", 5, std::nullopt, nullptr},
{"0x13 in dictionary key", "a\023a=1", 5, std::nullopt, nullptr},
{"0x14 in dictionary key", "a\024a=1", 5, std::nullopt, nullptr},
{"0x15 in dictionary key", "a\025a=1", 5, std::nullopt, nullptr},
{"0x16 in dictionary key", "a\026a=1", 5, std::nullopt, nullptr},
{"0x17 in dictionary key", "a\027a=1", 5, std::nullopt, nullptr},
{"0x18 in dictionary key", "a\030a=1", 5, std::nullopt, nullptr},
{"0x19 in dictionary key", "a\031a=1", 5, std::nullopt, nullptr},
{"0x1a in dictionary key", "a\032a=1", 5, std::nullopt, nullptr},
{"0x1b in dictionary key", "a\033a=1", 5, std::nullopt, nullptr},
{"0x1c in dictionary key", "a\034a=1", 5, std::nullopt, nullptr},
{"0x1d in dictionary key", "a\035a=1", 5, std::nullopt, nullptr},
{"0x1e in dictionary key", "a\036a=1", 5, std::nullopt, nullptr},
{"0x1f in dictionary key", "a\037a=1", 5, std::nullopt, nullptr},
{"0x20 in dictionary key", "a a=1", 5, std::nullopt, nullptr},
{"0x21 in dictionary key", "a!a=1", 5, std::nullopt, nullptr},
{"0x22 in dictionary key", "a\"a=1", 5, std::nullopt, nullptr},
{"0x23 in dictionary key", "a#a=1", 5, std::nullopt, nullptr},
{"0x24 in dictionary key", "a$a=1", 5, std::nullopt, nullptr},
{"0x25 in dictionary key", "a%a=1", 5, std::nullopt, nullptr},
{"0x26 in dictionary key", "a&a=1", 5, std::nullopt, nullptr},
{"0x27 in dictionary key", "a'a=1", 5, std::nullopt, nullptr},
{"0x28 in dictionary key", "a(a=1", 5, std::nullopt, nullptr},
{"0x29 in dictionary key", "a)a=1", 5, std::nullopt, nullptr},
{"0x2a in dictionary key",
"a*a=1",
5,
{Dictionary{{{"a*a", {Integer(1), {}}}}}},
nullptr},
{"0x2b in dictionary key", "a+a=1", 5, std::nullopt, nullptr},
{"0x2c in dictionary key",
"a,a=1",
5,
{Dictionary{{{"a", {Integer(1), {}}}}}},
"a=1"},
{"0x2d in dictionary key",
"a-a=1",
5,
{Dictionary{{{"a-a", {Integer(1), {}}}}}},
nullptr},
{"0x2e in dictionary key",
"a.a=1",
5,
{Dictionary{{{"a.a", {Integer(1), {}}}}}},
nullptr},
{"0x2f in dictionary key", "a/a=1", 5, std::nullopt, nullptr},
{"0x30 in dictionary key",
"a0a=1",
5,
{Dictionary{{{"a0a", {Integer(1), {}}}}}},
nullptr},
{"0x31 in dictionary key",
"a1a=1",
5,
{Dictionary{{{"a1a", {Integer(1), {}}}}}},
nullptr},
{"0x32 in dictionary key",
"a2a=1",
5,
{Dictionary{{{"a2a", {Integer(1), {}}}}}},
nullptr},
{"0x33 in dictionary key",
"a3a=1",
5,
{Dictionary{{{"a3a", {Integer(1), {}}}}}},
nullptr},
{"0x34 in dictionary key",
"a4a=1",
5,
{Dictionary{{{"a4a", {Integer(1), {}}}}}},
nullptr},
{"0x35 in dictionary key",
"a5a=1",
5,
{Dictionary{{{"a5a", {Integer(1), {}}}}}},
nullptr},
{"0x36 in dictionary key",
"a6a=1",
5,
{Dictionary{{{"a6a", {Integer(1), {}}}}}},
nullptr},
{"0x37 in dictionary key",
"a7a=1",
5,
{Dictionary{{{"a7a", {Integer(1), {}}}}}},
nullptr},
{"0x38 in dictionary key",
"a8a=1",
5,
{Dictionary{{{"a8a", {Integer(1), {}}}}}},
nullptr},
{"0x39 in dictionary key",
"a9a=1",
5,
{Dictionary{{{"a9a", {Integer(1), {}}}}}},
nullptr},
{"0x3a in dictionary key", "a:a=1", 5, std::nullopt, nullptr},
{"0x3b in dictionary key",
"a;a=1",
5,
{Dictionary{{{"a", {Item(true), {Param("a", 1)}}}}}},
nullptr},
{"0x3c in dictionary key", "a<a=1", 5, std::nullopt, nullptr},
{"0x3d in dictionary key", "a=a=1", 5, std::nullopt, nullptr},
{"0x3e in dictionary key", "a>a=1", 5, std::nullopt, nullptr},
{"0x3f in dictionary key", "a?a=1", 5, std::nullopt, nullptr},
{"0x40 in dictionary key", "a@a=1", 5, std::nullopt, nullptr},
{"0x41 in dictionary key", "aAa=1", 5, std::nullopt, nullptr},
{"0x42 in dictionary key", "aBa=1", 5, std::nullopt, nullptr},
{"0x43 in dictionary key", "aCa=1", 5, std::nullopt, nullptr},
{"0x44 in dictionary key", "aDa=1", 5, std::nullopt, nullptr},
{"0x45 in dictionary key", "aEa=1", 5, std::nullopt, nullptr},
{"0x46 in dictionary key", "aFa=1", 5, std::nullopt, nullptr},
{"0x47 in dictionary key", "aGa=1", 5, std::nullopt, nullptr},
{"0x48 in dictionary key", "aHa=1", 5, std::nullopt, nullptr},
{"0x49 in dictionary key", "aIa=1", 5, std::nullopt, nullptr},
{"0x4a in dictionary key", "aJa=1", 5, std::nullopt, nullptr},
{"0x4b in dictionary key", "aKa=1", 5, std::nullopt, nullptr},
{"0x4c in dictionary key", "aLa=1", 5, std::nullopt, nullptr},
{"0x4d in dictionary key", "aMa=1", 5, std::nullopt, nullptr},
{"0x4e in dictionary key", "aNa=1", 5, std::nullopt, nullptr},
{"0x4f in dictionary key", "aOa=1", 5, std::nullopt, nullptr},
{"0x50 in dictionary key", "aPa=1", 5, std::nullopt, nullptr},
{"0x51 in dictionary key", "aQa=1", 5, std::nullopt, nullptr},
{"0x52 in dictionary key", "aRa=1", 5, std::nullopt, nullptr},
{"0x53 in dictionary key", "aSa=1", 5, std::nullopt, nullptr},
{"0x54 in dictionary key", "aTa=1", 5, std::nullopt, nullptr},
{"0x55 in dictionary key", "aUa=1", 5, std::nullopt, nullptr},
{"0x56 in dictionary key", "aVa=1", 5, std::nullopt, nullptr},
{"0x57 in dictionary key", "aWa=1", 5, std::nullopt, nullptr},
{"0x58 in dictionary key", "aXa=1", 5, std::nullopt, nullptr},
{"0x59 in dictionary key", "aYa=1", 5, std::nullopt, nullptr},
{"0x5a in dictionary key", "aZa=1", 5, std::nullopt, nullptr},
{"0x5b in dictionary key", "a[a=1", 5, std::nullopt, nullptr},
{"0x5c in dictionary key", "a\\a=1", 5, std::nullopt, nullptr},
{"0x5d in dictionary key", "a]a=1", 5, std::nullopt, nullptr},
{"0x5e in dictionary key", "a^a=1", 5, std::nullopt, nullptr},
{"0x5f in dictionary key",
"a_a=1",
5,
{Dictionary{{{"a_a", {Integer(1), {}}}}}},
nullptr},
{"0x60 in dictionary key", "a`a=1", 5, std::nullopt, nullptr},
{"0x61 in dictionary key",
"aaa=1",
5,
{Dictionary{{{"aaa", {Integer(1), {}}}}}},
nullptr},
{"0x62 in dictionary key",
"aba=1",
5,
{Dictionary{{{"aba", {Integer(1), {}}}}}},
nullptr},
{"0x63 in dictionary key",
"aca=1",
5,
{Dictionary{{{"aca", {Integer(1), {}}}}}},
nullptr},
{"0x64 in dictionary key",
"ada=1",
5,
{Dictionary{{{"ada", {Integer(1), {}}}}}},
nullptr},
{"0x65 in dictionary key",
"aea=1",
5,
{Dictionary{{{"aea", {Integer(1), {}}}}}},
nullptr},
{"0x66 in dictionary key",
"afa=1",
5,
{Dictionary{{{"afa", {Integer(1), {}}}}}},
nullptr},
{"0x67 in dictionary key",
"aga=1",
5,
{Dictionary{{{"aga", {Integer(1), {}}}}}},
nullptr},
{"0x68 in dictionary key",
"aha=1",
5,
{Dictionary{{{"aha", {Integer(1), {}}}}}},
nullptr},
{"0x69 in dictionary key",
"aia=1",
5,
{Dictionary{{{"aia", {Integer(1), {}}}}}},
nullptr},
{"0x6a in dictionary key",
"aja=1",
5,
{Dictionary{{{"aja", {Integer(1), {}}}}}},
nullptr},
{"0x6b in dictionary key",
"aka=1",
5,
{Dictionary{{{"aka", {Integer(1), {}}}}}},
nullptr},
{"0x6c in dictionary key",
"ala=1",
5,
{Dictionary{{{"ala", {Integer(1), {}}}}}},
nullptr},
{"0x6d in dictionary key",
"ama=1",
5,
{Dictionary{{{"ama", {Integer(1), {}}}}}},
nullptr},
{"0x6e in dictionary key",
"ana=1",
5,
{Dictionary{{{"ana", {Integer(1), {}}}}}},
nullptr},
{"0x6f in dictionary key",
"aoa=1",
5,
{Dictionary{{{"aoa", {Integer(1), {}}}}}},
nullptr},
{"0x70 in dictionary key",
"apa=1",
5,
{Dictionary{{{"apa", {Integer(1), {}}}}}},
nullptr},
{"0x71 in dictionary key",
"aqa=1",
5,
{Dictionary{{{"aqa", {Integer(1), {}}}}}},
nullptr},
{"0x72 in dictionary key",
"ara=1",
5,
{Dictionary{{{"ara", {Integer(1), {}}}}}},
nullptr},
{"0x73 in dictionary key",
"asa=1",
5,
{Dictionary{{{"asa", {Integer(1), {}}}}}},
nullptr},
{"0x74 in dictionary key",
"ata=1",
5,
{Dictionary{{{"ata", {Integer(1), {}}}}}},
nullptr},
{"0x75 in dictionary key",
"aua=1",
5,
{Dictionary{{{"aua", {Integer(1), {}}}}}},
nullptr},
{"0x76 in dictionary key",
"ava=1",
5,
{Dictionary{{{"ava", {Integer(1), {}}}}}},
nullptr},
{"0x77 in dictionary key",
"awa=1",
5,
{Dictionary{{{"awa", {Integer(1), {}}}}}},
nullptr},
{"0x78 in dictionary key",
"axa=1",
5,
{Dictionary{{{"axa", {Integer(1), {}}}}}},
nullptr},
{"0x79 in dictionary key",
"aya=1",
5,
{Dictionary{{{"aya", {Integer(1), {}}}}}},
nullptr},
{"0x7a in dictionary key",
"aza=1",
5,
{Dictionary{{{"aza", {Integer(1), {}}}}}},
nullptr},
{"0x7b in dictionary key", "a{a=1", 5, std::nullopt, nullptr},
{"0x7c in dictionary key", "a|a=1", 5, std::nullopt, nullptr},
{"0x7d in dictionary key", "a}a=1", 5, std::nullopt, nullptr},
{"0x7e in dictionary key", "a~a=1", 5, std::nullopt, nullptr},
{"0x7f in dictionary key", "a\177a=1", 5, std::nullopt, nullptr},
{"0x00 starting a dictionary key", "\000a=1", 4, std::nullopt, nullptr},
{"0x01 starting a dictionary key", "\001a=1", 4, std::nullopt, nullptr},
{"0x02 starting a dictionary key", "\002a=1", 4, std::nullopt, nullptr},
{"0x03 starting a dictionary key", "\003a=1", 4, std::nullopt, nullptr},
{"0x04 starting a dictionary key", "\004a=1", 4, std::nullopt, nullptr},
{"0x05 starting a dictionary key", "\005a=1", 4, std::nullopt, nullptr},
{"0x06 starting a dictionary key", "\006a=1", 4, std::nullopt, nullptr},
{"0x07 starting a dictionary key", "\007a=1", 4, std::nullopt, nullptr},
{"0x08 starting a dictionary key", "\010a=1", 4, std::nullopt, nullptr},
{"0x09 starting a dictionary key", "\ta=1", 4, std::nullopt, nullptr},
{"0x0a starting a dictionary key", "\na=1", 4, std::nullopt, nullptr},
{"0x0b starting a dictionary key", "\013a=1", 4, std::nullopt, nullptr},
{"0x0c starting a dictionary key", "\014a=1", 4, std::nullopt, nullptr},
{"0x0d starting a dictionary key", "\ra=1", 4, std::nullopt, nullptr},
{"0x0e starting a dictionary key", "\016a=1", 4, std::nullopt, nullptr},
{"0x0f starting a dictionary key", "\017a=1", 4, std::nullopt, nullptr},
{"0x10 starting a dictionary key", "\020a=1", 4, std::nullopt, nullptr},
{"0x11 starting a dictionary key", "\021a=1", 4, std::nullopt, nullptr},
{"0x12 starting a dictionary key", "\022a=1", 4, std::nullopt, nullptr},
{"0x13 starting a dictionary key", "\023a=1", 4, std::nullopt, nullptr},
{"0x14 starting a dictionary key", "\024a=1", 4, std::nullopt, nullptr},
{"0x15 starting a dictionary key", "\025a=1", 4, std::nullopt, nullptr},
{"0x16 starting a dictionary key", "\026a=1", 4, std::nullopt, nullptr},
{"0x17 starting a dictionary key", "\027a=1", 4, std::nullopt, nullptr},
{"0x18 starting a dictionary key", "\030a=1", 4, std::nullopt, nullptr},
{"0x19 starting a dictionary key", "\031a=1", 4, std::nullopt, nullptr},
{"0x1a starting a dictionary key", "\032a=1", 4, std::nullopt, nullptr},
{"0x1b starting a dictionary key", "\033a=1", 4, std::nullopt, nullptr},
{"0x1c starting a dictionary key", "\034a=1", 4, std::nullopt, nullptr},
{"0x1d starting a dictionary key", "\035a=1", 4, std::nullopt, nullptr},
{"0x1e starting a dictionary key", "\036a=1", 4, std::nullopt, nullptr},
{"0x1f starting a dictionary key", "\037a=1", 4, std::nullopt, nullptr},
{"0x20 starting a dictionary key",
" a=1",
4,
{Dictionary{{{"a", {Integer(1), {}}}}}},
"a=1"},
{"0x21 starting a dictionary key", "!a=1", 4, std::nullopt, nullptr},
{"0x22 starting a dictionary key", "\"a=1", 4, std::nullopt, nullptr},
{"0x23 starting a dictionary key", "#a=1", 4, std::nullopt, nullptr},
{"0x24 starting a dictionary key", "$a=1", 4, std::nullopt, nullptr},
{"0x25 starting a dictionary key", "%a=1", 4, std::nullopt, nullptr},
{"0x26 starting a dictionary key", "&a=1", 4, std::nullopt, nullptr},
{"0x27 starting a dictionary key", "'a=1", 4, std::nullopt, nullptr},
{"0x28 starting a dictionary key", "(a=1", 4, std::nullopt, nullptr},
{"0x29 starting a dictionary key", ")a=1", 4, std::nullopt, nullptr},
{"0x2a starting a dictionary key",
"*a=1",
4,
{Dictionary{{{"*a", {Integer(1), {}}}}}},
nullptr},
{"0x2b starting a dictionary key", "+a=1", 4, std::nullopt, nullptr},
{"0x2c starting a dictionary key", ",a=1", 4, std::nullopt, nullptr},
{"0x2d starting a dictionary key", "-a=1", 4, std::nullopt, nullptr},
{"0x2e starting a dictionary key", ".a=1", 4, std::nullopt, nullptr},
{"0x2f starting a dictionary key", "/a=1", 4, std::nullopt, nullptr},
{"0x30 starting a dictionary key", "0a=1", 4, std::nullopt, nullptr},
{"0x31 starting a dictionary key", "1a=1", 4, std::nullopt, nullptr},
{"0x32 starting a dictionary key", "2a=1", 4, std::nullopt, nullptr},
{"0x33 starting a dictionary key", "3a=1", 4, std::nullopt, nullptr},
{"0x34 starting a dictionary key", "4a=1", 4, std::nullopt, nullptr},
{"0x35 starting a dictionary key", "5a=1", 4, std::nullopt, nullptr},
{"0x36 starting a dictionary key", "6a=1", 4, std::nullopt, nullptr},
{"0x37 starting a dictionary key", "7a=1", 4, std::nullopt, nullptr},
{"0x38 starting a dictionary key", "8a=1", 4, std::nullopt, nullptr},
{"0x39 starting a dictionary key", "9a=1", 4, std::nullopt, nullptr},
{"0x3a starting a dictionary key", ":a=1", 4, std::nullopt, nullptr},
{"0x3b starting a dictionary key", ";a=1", 4, std::nullopt, nullptr},
{"0x3c starting a dictionary key", "<a=1", 4, std::nullopt, nullptr},
{"0x3d starting a dictionary key", "=a=1", 4, std::nullopt, nullptr},
{"0x3e starting a dictionary key", ">a=1", 4, std::nullopt, nullptr},
{"0x3f starting a dictionary key", "?a=1", 4, std::nullopt, nullptr},
{"0x40 starting a dictionary key", "@a=1", 4, std::nullopt, nullptr},
{"0x41 starting a dictionary key", "Aa=1", 4, std::nullopt, nullptr},
{"0x42 starting a dictionary key", "Ba=1", 4, std::nullopt, nullptr},
{"0x43 starting a dictionary key", "Ca=1", 4, std::nullopt, nullptr},
{"0x44 starting a dictionary key", "Da=1", 4, std::nullopt, nullptr},
{"0x45 starting a dictionary key", "Ea=1", 4, std::nullopt, nullptr},
{"0x46 starting a dictionary key", "Fa=1", 4, std::nullopt, nullptr},
{"0x47 starting a dictionary key", "Ga=1", 4, std::nullopt, nullptr},
{"0x48 starting a dictionary key", "Ha=1", 4, std::nullopt, nullptr},
{"0x49 starting a dictionary key", "Ia=1", 4, std::nullopt, nullptr},
{"0x4a starting a dictionary key", "Ja=1", 4, std::nullopt, nullptr},
{"0x4b starting a dictionary key", "Ka=1", 4, std::nullopt, nullptr},
{"0x4c starting a dictionary key", "La=1", 4, std::nullopt, nullptr},
{"0x4d starting a dictionary key", "Ma=1", 4, std::nullopt, nullptr},
{"0x4e starting a dictionary key", "Na=1", 4, std::nullopt, nullptr},
{"0x4f starting a dictionary key", "Oa=1", 4, std::nullopt, nullptr},
{"0x50 starting a dictionary key", "Pa=1", 4, std::nullopt, nullptr},
{"0x51 starting a dictionary key", "Qa=1", 4, std::nullopt, nullptr},
{"0x52 starting a dictionary key", "Ra=1", 4, std::nullopt, nullptr},
{"0x53 starting a dictionary key", "Sa=1", 4, std::nullopt, nullptr},
{"0x54 starting a dictionary key", "Ta=1", 4, std::nullopt, nullptr},
{"0x55 starting a dictionary key", "Ua=1", 4, std::nullopt, nullptr},
{"0x56 starting a dictionary key", "Va=1", 4, std::nullopt, nullptr},
{"0x57 starting a dictionary key", "Wa=1", 4, std::nullopt, nullptr},
{"0x58 starting a dictionary key", "Xa=1", 4, std::nullopt, nullptr},
{"0x59 starting a dictionary key", "Ya=1", 4, std::nullopt, nullptr},
{"0x5a starting a dictionary key", "Za=1", 4, std::nullopt, nullptr},
{"0x5b starting a dictionary key", "[a=1", 4, std::nullopt, nullptr},
{"0x5c starting a dictionary key", "\\a=1", 4, std::nullopt, nullptr},
{"0x5d starting a dictionary key", "]a=1", 4, std::nullopt, nullptr},
{"0x5e starting a dictionary key", "^a=1", 4, std::nullopt, nullptr},
{"0x5f starting a dictionary key", "_a=1", 4, std::nullopt, nullptr},
{"0x60 starting a dictionary key", "`a=1", 4, std::nullopt, nullptr},
{"0x61 starting a dictionary key",
"aa=1",
4,
{Dictionary{{{"aa", {Integer(1), {}}}}}},
nullptr},
{"0x62 starting a dictionary key",
"ba=1",
4,
{Dictionary{{{"ba", {Integer(1), {}}}}}},
nullptr},
{"0x63 starting a dictionary key",
"ca=1",
4,
{Dictionary{{{"ca", {Integer(1), {}}}}}},
nullptr},
{"0x64 starting a dictionary key",
"da=1",
4,
{Dictionary{{{"da", {Integer(1), {}}}}}},
nullptr},
{"0x65 starting a dictionary key",
"ea=1",
4,
{Dictionary{{{"ea", {Integer(1), {}}}}}},
nullptr},
{"0x66 starting a dictionary key",
"fa=1",
4,
{Dictionary{{{"fa", {Integer(1), {}}}}}},
nullptr},
{"0x67 starting a dictionary key",
"ga=1",
4,
{Dictionary{{{"ga", {Integer(1), {}}}}}},
nullptr},
{"0x68 starting a dictionary key",
"ha=1",
4,
{Dictionary{{{"ha", {Integer(1), {}}}}}},
nullptr},
{"0x69 starting a dictionary key",
"ia=1",
4,
{Dictionary{{{"ia", {Integer(1), {}}}}}},
nullptr},
{"0x6a starting a dictionary key",
"ja=1",
4,
{Dictionary{{{"ja", {Integer(1), {}}}}}},
nullptr},
{"0x6b starting a dictionary key",
"ka=1",
4,
{Dictionary{{{"ka", {Integer(1), {}}}}}},
nullptr},
{"0x6c starting a dictionary key",
"la=1",
4,
{Dictionary{{{"la", {Integer(1), {}}}}}},
nullptr},
{"0x6d starting a dictionary key",
"ma=1",
4,
{Dictionary{{{"ma", {Integer(1), {}}}}}},
nullptr},
{"0x6e starting a dictionary key",
"na=1",
4,
{Dictionary{{{"na", {Integer(1), {}}}}}},
nullptr},
{"0x6f starting a dictionary key",
"oa=1",
4,
{Dictionary{{{"oa", {Integer(1), {}}}}}},
nullptr},
{"0x70 starting a dictionary key",
"pa=1",
4,
{Dictionary{{{"pa", {Integer(1), {}}}}}},
nullptr},
{"0x71 starting a dictionary key",
"qa=1",
4,
{Dictionary{{{"qa", {Integer(1), {}}}}}},
nullptr},
{"0x72 starting a dictionary key",
"ra=1",
4,
{Dictionary{{{"ra", {Integer(1), {}}}}}},
nullptr},
{"0x73 starting a dictionary key",
"sa=1",
4,
{Dictionary{{{"sa", {Integer(1), {}}}}}},
nullptr},
{"0x74 starting a dictionary key",
"ta=1",
4,
{Dictionary{{{"ta", {Integer(1), {}}}}}},
nullptr},
{"0x75 starting a dictionary key",
"ua=1",
4,
{Dictionary{{{"ua", {Integer(1), {}}}}}},
nullptr},
{"0x76 starting a dictionary key",
"va=1",
4,
{Dictionary{{{"va", {Integer(1), {}}}}}},
nullptr},
{"0x77 starting a dictionary key",
"wa=1",
4,
{Dictionary{{{"wa", {Integer(1), {}}}}}},
nullptr},
{"0x78 starting a dictionary key",
"xa=1",
4,
{Dictionary{{{"xa", {Integer(1), {}}}}}},
nullptr},
{"0x79 starting a dictionary key",
"ya=1",
4,
{Dictionary{{{"ya", {Integer(1), {}}}}}},
nullptr},
{"0x7a starting a dictionary key",
"za=1",
4,
{Dictionary{{{"za", {Integer(1), {}}}}}},
nullptr},
{"0x7b starting a dictionary key", "{a=1", 4, std::nullopt, nullptr},
{"0x7c starting a dictionary key", "|a=1", 4, std::nullopt, nullptr},
{"0x7d starting a dictionary key", "}a=1", 4, std::nullopt, nullptr},
{"0x7e starting a dictionary key", "~a=1", 4, std::nullopt, nullptr},
{"0x7f starting a dictionary key", "\177a=1", 4, std::nullopt, nullptr},
// large-generated.json
{"large dictionary",
"a0=1, a1=1, a2=1, a3=1, a4=1, a5=1, a6=1, a7=1, a8=1, a9=1, a10=1, "
"a11=1, a12=1, a13=1, a14=1, a15=1, a16=1, a17=1, a18=1, a19=1, a20=1, "
"a21=1, a22=1, a23=1, a24=1, a25=1, a26=1, a27=1, a28=1, a29=1, a30=1, "
"a31=1, a32=1, a33=1, a34=1, a35=1, a36=1, a37=1, a38=1, a39=1, a40=1, "
"a41=1, a42=1, a43=1, a44=1, a45=1, a46=1, a47=1, a48=1, a49=1, a50=1, "
"a51=1, a52=1, a53=1, a54=1, a55=1, a56=1, a57=1, a58=1, a59=1, a60=1, "
"a61=1, a62=1, a63=1, a64=1, a65=1, a66=1, a67=1, a68=1, a69=1, a70=1, "
"a71=1, a72=1, a73=1, a74=1, a75=1, a76=1, a77=1, a78=1, a79=1, a80=1, "
"a81=1, a82=1, a83=1, a84=1, a85=1, a86=1, a87=1, a88=1, a89=1, a90=1, "
"a91=1, a92=1, a93=1, a94=1, a95=1, a96=1, a97=1, a98=1, a99=1, a100=1, "
"a101=1, a102=1, a103=1, a104=1, a105=1, a106=1, a107=1, a108=1, a109=1, "
"a110=1, a111=1, a112=1, a113=1, a114=1, a115=1, a116=1, a117=1, a118=1, "
"a119=1, a120=1, a121=1, a122=1, a123=1, a124=1, a125=1, a126=1, a127=1, "
"a128=1, a129=1, a130=1, a131=1, a132=1, a133=1, a134=1, a135=1, a136=1, "
"a137=1, a138=1, a139=1, a140=1, a141=1, a142=1, a143=1, a144=1, a145=1, "
"a146=1, a147=1, a148=1, a149=1, a150=1, a151=1, a152=1, a153=1, a154=1, "
"a155=1, a156=1, a157=1, a158=1, a159=1, a160=1, a161=1, a162=1, a163=1, "
"a164=1, a165=1, a166=1, a167=1, a168=1, a169=1, a170=1, a171=1, a172=1, "
"a173=1, a174=1, a175=1, a176=1, a177=1, a178=1, a179=1, a180=1, a181=1, "
"a182=1, a183=1, a184=1, a185=1, a186=1, a187=1, a188=1, a189=1, a190=1, "
"a191=1, a192=1, a193=1, a194=1, a195=1, a196=1, a197=1, a198=1, a199=1, "
"a200=1, a201=1, a202=1, a203=1, a204=1, a205=1, a206=1, a207=1, a208=1, "
"a209=1, a210=1, a211=1, a212=1, a213=1, a214=1, a215=1, a216=1, a217=1, "
"a218=1, a219=1, a220=1, a221=1, a222=1, a223=1, a224=1, a225=1, a226=1, "
"a227=1, a228=1, a229=1, a230=1, a231=1, a232=1, a233=1, a234=1, a235=1, "
"a236=1, a237=1, a238=1, a239=1, a240=1, a241=1, a242=1, a243=1, a244=1, "
"a245=1, a246=1, a247=1, a248=1, a249=1, a250=1, a251=1, a252=1, a253=1, "
"a254=1, a255=1, a256=1, a257=1, a258=1, a259=1, a260=1, a261=1, a262=1, "
"a263=1, a264=1, a265=1, a266=1, a267=1, a268=1, a269=1, a270=1, a271=1, "
"a272=1, a273=1, a274=1, a275=1, a276=1, a277=1, a278=1, a279=1, a280=1, "
"a281=1, a282=1, a283=1, a284=1, a285=1, a286=1, a287=1, a288=1, a289=1, "
"a290=1, a291=1, a292=1, a293=1, a294=1, a295=1, a296=1, a297=1, a298=1, "
"a299=1, a300=1, a301=1, a302=1, a303=1, a304=1, a305=1, a306=1, a307=1, "
"a308=1, a309=1, a310=1, a311=1, a312=1, a313=1, a314=1, a315=1, a316=1, "
"a317=1, a318=1, a319=1, a320=1, a321=1, a322=1, a323=1, a324=1, a325=1, "
"a326=1, a327=1, a328=1, a329=1, a330=1, a331=1, a332=1, a333=1, a334=1, "
"a335=1, a336=1, a337=1, a338=1, a339=1, a340=1, a341=1, a342=1, a343=1, "
"a344=1, a345=1, a346=1, a347=1, a348=1, a349=1, a350=1, a351=1, a352=1, "
"a353=1, a354=1, a355=1, a356=1, a357=1, a358=1, a359=1, a360=1, a361=1, "
"a362=1, a363=1, a364=1, a365=1, a366=1, a367=1, a368=1, a369=1, a370=1, "
"a371=1, a372=1, a373=1, a374=1, a375=1, a376=1, a377=1, a378=1, a379=1, "
"a380=1, a381=1, a382=1, a383=1, a384=1, a385=1, a386=1, a387=1, a388=1, "
"a389=1, a390=1, a391=1, a392=1, a393=1, a394=1, a395=1, a396=1, a397=1, "
"a398=1, a399=1, a400=1, a401=1, a402=1, a403=1, a404=1, a405=1, a406=1, "
"a407=1, a408=1, a409=1, a410=1, a411=1, a412=1, a413=1, a414=1, a415=1, "
"a416=1, a417=1, a418=1, a419=1, a420=1, a421=1, a422=1, a423=1, a424=1, "
"a425=1, a426=1, a427=1, a428=1, a429=1, a430=1, a431=1, a432=1, a433=1, "
"a434=1, a435=1, a436=1, a437=1, a438=1, a439=1, a440=1, a441=1, a442=1, "
"a443=1, a444=1, a445=1, a446=1, a447=1, a448=1, a449=1, a450=1, a451=1, "
"a452=1, a453=1, a454=1, a455=1, a456=1, a457=1, a458=1, a459=1, a460=1, "
"a461=1, a462=1, a463=1, a464=1, a465=1, a466=1, a467=1, a468=1, a469=1, "
"a470=1, a471=1, a472=1, a473=1, a474=1, a475=1, a476=1, a477=1, a478=1, "
"a479=1, a480=1, a481=1, a482=1, a483=1, a484=1, a485=1, a486=1, a487=1, "
"a488=1, a489=1, a490=1, a491=1, a492=1, a493=1, a494=1, a495=1, a496=1, "
"a497=1, a498=1, a499=1, a500=1, a501=1, a502=1, a503=1, a504=1, a505=1, "
"a506=1, a507=1, a508=1, a509=1, a510=1, a511=1, a512=1, a513=1, a514=1, "
"a515=1, a516=1, a517=1, a518=1, a519=1, a520=1, a521=1, a522=1, a523=1, "
"a524=1, a525=1, a526=1, a527=1, a528=1, a529=1, a530=1, a531=1, a532=1, "
"a533=1, a534=1, a535=1, a536=1, a537=1, a538=1, a539=1, a540=1, a541=1, "
"a542=1, a543=1, a544=1, a545=1, a546=1, a547=1, a548=1, a549=1, a550=1, "
"a551=1, a552=1, a553=1, a554=1, a555=1, a556=1, a557=1, a558=1, a559=1, "
"a560=1, a561=1, a562=1, a563=1, a564=1, a565=1, a566=1, a567=1, a568=1, "
"a569=1, a570=1, a571=1, a572=1, a573=1, a574=1, a575=1, a576=1, a577=1, "
"a578=1, a579=1, a580=1, a581=1, a582=1, a583=1, a584=1, a585=1, a586=1, "
"a587=1, a588=1, a589=1, a590=1, a591=1, a592=1, a593=1, a594=1, a595=1, "
"a596=1, a597=1, a598=1, a599=1, a600=1, a601=1, a602=1, a603=1, a604=1, "
"a605=1, a606=1, a607=1, a608=1, a609=1, a610=1, a611=1, a612=1, a613=1, "
"a614=1, a615=1, a616=1, a617=1, a618=1, a619=1, a620=1, a621=1, a622=1, "
"a623=1, a624=1, a625=1, a626=1, a627=1, a628=1, a629=1, a630=1, a631=1, "
"a632=1, a633=1, a634=1, a635=1, a636=1, a637=1, a638=1, a639=1, a640=1, "
"a641=1, a642=1, a643=1, a644=1, a645=1, a646=1, a647=1, a648=1, a649=1, "
"a650=1, a651=1, a652=1, a653=1, a654=1, a655=1, a656=1, a657=1, a658=1, "
"a659=1, a660=1, a661=1, a662=1, a663=1, a664=1, a665=1, a666=1, a667=1, "
"a668=1, a669=1, a670=1, a671=1, a672=1, a673=1, a674=1, a675=1, a676=1, "
"a677=1, a678=1, a679=1, a680=1, a681=1, a682=1, a683=1, a684=1, a685=1, "
"a686=1, a687=1, a688=1, a689=1, a690=1, a691=1, a692=1, a693=1, a694=1, "
"a695=1, a696=1, a697=1, a698=1, a699=1, a700=1, a701=1, a702=1, a703=1, "
"a704=1, a705=1, a706=1, a707=1, a708=1, a709=1, a710=1, a711=1, a712=1, "
"a713=1, a714=1, a715=1, a716=1, a717=1, a718=1, a719=1, a720=1, a721=1, "
"a722=1, a723=1, a724=1, a725=1, a726=1, a727=1, a728=1, a729=1, a730=1, "
"a731=1, a732=1, a733=1, a734=1, a735=1, a736=1, a737=1, a738=1, a739=1, "
"a740=1, a741=1, a742=1, a743=1, a744=1, a745=1, a746=1, a747=1, a748=1, "
"a749=1, a750=1, a751=1, a752=1, a753=1, a754=1, a755=1, a756=1, a757=1, "
"a758=1, a759=1, a760=1, a761=1, a762=1, a763=1, a764=1, a765=1, a766=1, "
"a767=1, a768=1, a769=1, a770=1, a771=1, a772=1, a773=1, a774=1, a775=1, "
"a776=1, a777=1, a778=1, a779=1, a780=1, a781=1, a782=1, a783=1, a784=1, "
"a785=1, a786=1, a787=1, a788=1, a789=1, a790=1, a791=1, a792=1, a793=1, "
"a794=1, a795=1, a796=1, a797=1, a798=1, a799=1, a800=1, a801=1, a802=1, "
"a803=1, a804=1, a805=1, a806=1, a807=1, a808=1, a809=1, a810=1, a811=1, "
"a812=1, a813=1, a814=1, a815=1, a816=1, a817=1, a818=1, a819=1, a820=1, "
"a821=1, a822=1, a823=1, a824=1, a825=1, a826=1, a827=1, a828=1, a829=1, "
"a830=1, a831=1, a832=1, a833=1, a834=1, a835=1, a836=1, a837=1, a838=1, "
"a839=1, a840=1, a841=1, a842=1, a843=1, a844=1, a845=1, a846=1, a847=1, "
"a848=1, a849=1, a850=1, a851=1, a852=1, a853=1, a854=1, a855=1, a856=1, "
"a857=1, a858=1, a859=1, a860=1, a861=1, a862=1, a863=1, a864=1, a865=1, "
"a866=1, a867=1, a868=1, a869=1, a870=1, a871=1, a872=1, a873=1, a874=1, "
"a875=1, a876=1, a877=1, a878=1, a879=1, a880=1, a881=1, a882=1, a883=1, "
"a884=1, a885=1, a886=1, a887=1, a888=1, a889=1, a890=1, a891=1, a892=1, "
"a893=1, a894=1, a895=1, a896=1, a897=1, a898=1, a899=1, a900=1, a901=1, "
"a902=1, a903=1, a904=1, a905=1, a906=1, a907=1, a908=1, a909=1, a910=1, "
"a911=1, a912=1, a913=1, a914=1, a915=1, a916=1, a917=1, a918=1, a919=1, "
"a920=1, a921=1, a922=1, a923=1, a924=1, a925=1, a926=1, a927=1, a928=1, "
"a929=1, a930=1, a931=1, a932=1, a933=1, a934=1, a935=1, a936=1, a937=1, "
"a938=1, a939=1, a940=1, a941=1, a942=1, a943=1, a944=1, a945=1, a946=1, "
"a947=1, a948=1, a949=1, a950=1, a951=1, a952=1, a953=1, a954=1, a955=1, "
"a956=1, a957=1, a958=1, a959=1, a960=1, a961=1, a962=1, a963=1, a964=1, "
"a965=1, a966=1, a967=1, a968=1, a969=1, a970=1, a971=1, a972=1, a973=1, "
"a974=1, a975=1, a976=1, a977=1, a978=1, a979=1, a980=1, a981=1, a982=1, "
"a983=1, a984=1, a985=1, a986=1, a987=1, a988=1, a989=1, a990=1, a991=1, "
"a992=1, a993=1, a994=1, a995=1, a996=1, a997=1, a998=1, a999=1, a1000=1, "
"a1001=1, a1002=1, a1003=1, a1004=1, a1005=1, a1006=1, a1007=1, a1008=1, "
"a1009=1, a1010=1, a1011=1, a1012=1, a1013=1, a1014=1, a1015=1, a1016=1, "
"a1017=1, a1018=1, a1019=1, a1020=1, a1021=1, a1022=1, a1023=1",
8104,
{Dictionary{{{"a0", {Integer(1), {}}}, {"a1", {Integer(1), {}}},
{"a2", {Integer(1), {}}}, {"a3", {Integer(1), {}}},
{"a4", {Integer(1), {}}}, {"a5", {Integer(1), {}}},
{"a6", {Integer(1), {}}}, {"a7", {Integer(1), {}}},
{"a8", {Integer(1), {}}}, {"a9", {Integer(1), {}}},
{"a10", {Integer(1), {}}}, {"a11", {Integer(1), {}}},
{"a12", {Integer(1), {}}}, {"a13", {Integer(1), {}}},
{"a14", {Integer(1), {}}}, {"a15", {Integer(1), {}}},
{"a16", {Integer(1), {}}}, {"a17", {Integer(1), {}}},
{"a18", {Integer(1), {}}}, {"a19", {Integer(1), {}}},
{"a20", {Integer(1), {}}}, {"a21", {Integer(1), {}}},
{"a22", {Integer(1), {}}}, {"a23", {Integer(1), {}}},
{"a24", {Integer(1), {}}}, {"a25", {Integer(1), {}}},
{"a26", {Integer(1), {}}}, {"a27", {Integer(1), {}}},
{"a28", {Integer(1), {}}}, {"a29", {Integer(1), {}}},
{"a30", {Integer(1), {}}}, {"a31", {Integer(1), {}}},
{"a32", {Integer(1), {}}}, {"a33", {Integer(1), {}}},
{"a34", {Integer(1), {}}}, {"a35", {Integer(1), {}}},
{"a36", {Integer(1), {}}}, {"a37", {Integer(1), {}}},
{"a38", {Integer(1), {}}}, {"a39", {Integer(1), {}}},
{"a40", {Integer(1), {}}}, {"a41", {Integer(1), {}}},
{"a42", {Integer(1), {}}}, {"a43", {Integer(1), {}}},
{"a44", {Integer(1), {}}}, {"a45", {Integer(1), {}}},
{"a46", {Integer(1), {}}}, {"a47", {Integer(1), {}}},
{"a48", {Integer(1), {}}}, {"a49", {Integer(1), {}}},
{"a50", {Integer(1), {}}}, {"a51", {Integer(1), {}}},
{"a52", {Integer(1), {}}}, {"a53", {Integer(1), {}}},
{"a54", {Integer(1), {}}}, {"a55", {Integer(1), {}}},
{"a56", {Integer(1), {}}}, {"a57", {Integer(1), {}}},
{"a58", {Integer(1), {}}}, {"a59", {Integer(1), {}}},
{"a60", {Integer(1), {}}}, {"a61", {Integer(1), {}}},
{"a62", {Integer(1), {}}}, {"a63", {Integer(1), {}}},
{"a64", {Integer(1), {}}}, {"a65", {Integer(1), {}}},
{"a66", {Integer(1), {}}}, {"a67", {Integer(1), {}}},
{"a68", {Integer(1), {}}}, {"a69", {Integer(1), {}}},
{"a70", {Integer(1), {}}}, {"a71", {Integer(1), {}}},
{"a72", {Integer(1), {}}}, {"a73", {Integer(1), {}}},
{"a74", {Integer(1), {}}}, {"a75", {Integer(1), {}}},
{"a76", {Integer(1), {}}}, {"a77", {Integer(1), {}}},
{"a78", {Integer(1), {}}}, {"a79", {Integer(1), {}}},
{"a80", {Integer(1), {}}}, {"a81", {Integer(1), {}}},
{"a82", {Integer(1), {}}}, {"a83", {Integer(1), {}}},
{"a84", {Integer(1), {}}}, {"a85", {Integer(1), {}}},
{"a86", {Integer(1), {}}}, {"a87", {Integer(1), {}}},
{"a88", {Integer(1), {}}}, {"a89", {Integer(1), {}}},
{"a90", {Integer(1), {}}}, {"a91", {Integer(1), {}}},
{"a92", {Integer(1), {}}}, {"a93", {Integer(1), {}}},
{"a94", {Integer(1), {}}}, {"a95", {Integer(1), {}}},
{"a96", {Integer(1), {}}}, {"a97", {Integer(1), {}}},
{"a98", {Integer(1), {}}}, {"a99", {Integer(1), {}}},
{"a100", {Integer(1), {}}}, {"a101", {Integer(1), {}}},
{"a102", {Integer(1), {}}}, {"a103", {Integer(1), {}}},
{"a104", {Integer(1), {}}}, {"a105", {Integer(1), {}}},
{"a106", {Integer(1), {}}}, {"a107", {Integer(1), {}}},
{"a108", {Integer(1), {}}}, {"a109", {Integer(1), {}}},
{"a110", {Integer(1), {}}}, {"a111", {Integer(1), {}}},
{"a112", {Integer(1), {}}}, {"a113", {Integer(1), {}}},
{"a114", {Integer(1), {}}}, {"a115", {Integer(1), {}}},
{"a116", {Integer(1), {}}}, {"a117", {Integer(1), {}}},
{"a118", {Integer(1), {}}}, {"a119", {Integer(1), {}}},
{"a120", {Integer(1), {}}}, {"a121", {Integer(1), {}}},
{"a122", {Integer(1), {}}}, {"a123", {Integer(1), {}}},
{"a124", {Integer(1), {}}}, {"a125", {Integer(1), {}}},
{"a126", {Integer(1), {}}}, {"a127", {Integer(1), {}}},
{"a128", {Integer(1), {}}}, {"a129", {Integer(1), {}}},
{"a130", {Integer(1), {}}}, {"a131", {Integer(1), {}}},
{"a132", {Integer(1), {}}}, {"a133", {Integer(1), {}}},
{"a134", {Integer(1), {}}}, {"a135", {Integer(1), {}}},
{"a136", {Integer(1), {}}}, {"a137", {Integer(1), {}}},
{"a138", {Integer(1), {}}}, {"a139", {Integer(1), {}}},
{"a140", {Integer(1), {}}}, {"a141", {Integer(1), {}}},
{"a142", {Integer(1), {}}}, {"a143", {Integer(1), {}}},
{"a144", {Integer(1), {}}}, {"a145", {Integer(1), {}}},
{"a146", {Integer(1), {}}}, {"a147", {Integer(1), {}}},
{"a148", {Integer(1), {}}}, {"a149", {Integer(1), {}}},
{"a150", {Integer(1), {}}}, {"a151", {Integer(1), {}}},
{"a152", {Integer(1), {}}}, {"a153", {Integer(1), {}}},
{"a154", {Integer(1), {}}}, {"a155", {Integer(1), {}}},
{"a156", {Integer(1), {}}}, {"a157", {Integer(1), {}}},
{"a158", {Integer(1), {}}}, {"a159", {Integer(1), {}}},
{"a160", {Integer(1), {}}}, {"a161", {Integer(1), {}}},
{"a162", {Integer(1), {}}}, {"a163", {Integer(1), {}}},
{"a164", {Integer(1), {}}}, {"a165", {Integer(1), {}}},
{"a166", {Integer(1), {}}}, {"a167", {Integer(1), {}}},
{"a168", {Integer(1), {}}}, {"a169", {Integer(1), {}}},
{"a170", {Integer(1), {}}}, {"a171", {Integer(1), {}}},
{"a172", {Integer(1), {}}}, {"a173", {Integer(1), {}}},
{"a174", {Integer(1), {}}}, {"a175", {Integer(1), {}}},
{"a176", {Integer(1), {}}}, {"a177", {Integer(1), {}}},
{"a178", {Integer(1), {}}}, {"a179", {Integer(1), {}}},
{"a180", {Integer(1), {}}}, {"a181", {Integer(1), {}}},
{"a182", {Integer(1), {}}}, {"a183", {Integer(1), {}}},
{"a184", {Integer(1), {}}}, {"a185", {Integer(1), {}}},
{"a186", {Integer(1), {}}}, {"a187", {Integer(1), {}}},
{"a188", {Integer(1), {}}}, {"a189", {Integer(1), {}}},
{"a190", {Integer(1), {}}}, {"a191", {Integer(1), {}}},
{"a192", {Integer(1), {}}}, {"a193", {Integer(1), {}}},
{"a194", {Integer(1), {}}}, {"a195", {Integer(1), {}}},
{"a196", {Integer(1), {}}}, {"a197", {Integer(1), {}}},
{"a198", {Integer(1), {}}}, {"a199", {Integer(1), {}}},
{"a200", {Integer(1), {}}}, {"a201", {Integer(1), {}}},
{"a202", {Integer(1), {}}}, {"a203", {Integer(1), {}}},
{"a204", {Integer(1), {}}}, {"a205", {Integer(1), {}}},
{"a206", {Integer(1), {}}}, {"a207", {Integer(1), {}}},
{"a208", {Integer(1), {}}}, {"a209", {Integer(1), {}}},
{"a210", {Integer(1), {}}}, {"a211", {Integer(1), {}}},
{"a212", {Integer(1), {}}}, {"a213", {Integer(1), {}}},
{"a214", {Integer(1), {}}}, {"a215", {Integer(1), {}}},
{"a216", {Integer(1), {}}}, {"a217", {Integer(1), {}}},
{"a218", {Integer(1), {}}}, {"a219", {Integer(1), {}}},
{"a220", {Integer(1), {}}}, {"a221", {Integer(1), {}}},
{"a222", {Integer(1), {}}}, {"a223", {Integer(1), {}}},
{"a224", {Integer(1), {}}}, {"a225", {Integer(1), {}}},
{"a226", {Integer(1), {}}}, {"a227", {Integer(1), {}}},
{"a228", {Integer(1), {}}}, {"a229", {Integer(1), {}}},
{"a230", {Integer(1), {}}}, {"a231", {Integer(1), {}}},
{"a232", {Integer(1), {}}}, {"a233", {Integer(1), {}}},
{"a234", {Integer(1), {}}}, {"a235", {Integer(1), {}}},
{"a236", {Integer(1), {}}}, {"a237", {Integer(1), {}}},
{"a238", {Integer(1), {}}}, {"a239", {Integer(1), {}}},
{"a240", {Integer(1), {}}}, {"a241", {Integer(1), {}}},
{"a242", {Integer(1), {}}}, {"a243", {Integer(1), {}}},
{"a244", {Integer(1), {}}}, {"a245", {Integer(1), {}}},
{"a246", {Integer(1), {}}}, {"a247", {Integer(1), {}}},
{"a248", {Integer(1), {}}}, {"a249", {Integer(1), {}}},
{"a250", {Integer(1), {}}}, {"a251", {Integer(1), {}}},
{"a252", {Integer(1), {}}}, {"a253", {Integer(1), {}}},
{"a254", {Integer(1), {}}}, {"a255", {Integer(1), {}}},
{"a256", {Integer(1), {}}}, {"a257", {Integer(1), {}}},
{"a258", {Integer(1), {}}}, {"a259", {Integer(1), {}}},
{"a260", {Integer(1), {}}}, {"a261", {Integer(1), {}}},
{"a262", {Integer(1), {}}}, {"a263", {Integer(1), {}}},
{"a264", {Integer(1), {}}}, {"a265", {Integer(1), {}}},
{"a266", {Integer(1), {}}}, {"a267", {Integer(1), {}}},
{"a268", {Integer(1), {}}}, {"a269", {Integer(1), {}}},
{"a270", {Integer(1), {}}}, {"a271", {Integer(1), {}}},
{"a272", {Integer(1), {}}}, {"a273", {Integer(1), {}}},
{"a274", {Integer(1), {}}}, {"a275", {Integer(1), {}}},
{"a276", {Integer(1), {}}}, {"a277", {Integer(1), {}}},
{"a278", {Integer(1), {}}}, {"a279", {Integer(1), {}}},
{"a280", {Integer(1), {}}}, {"a281", {Integer(1), {}}},
{"a282", {Integer(1), {}}}, {"a283", {Integer(1), {}}},
{"a284", {Integer(1), {}}}, {"a285", {Integer(1), {}}},
{"a286", {Integer(1), {}}}, {"a287", {Integer(1), {}}},
{"a288", {Integer(1), {}}}, {"a289", {Integer(1), {}}},
{"a290", {Integer(1), {}}}, {"a291", {Integer(1), {}}},
{"a292", {Integer(1), {}}}, {"a293", {Integer(1), {}}},
{"a294", {Integer(1), {}}}, {"a295", {Integer(1), {}}},
{"a296", {Integer(1), {}}}, {"a297", {Integer(1), {}}},
{"a298", {Integer(1), {}}}, {"a299", {Integer(1), {}}},
{"a300", {Integer(1), {}}}, {"a301", {Integer(1), {}}},
{"a302", {Integer(1), {}}}, {"a303", {Integer(1), {}}},
{"a304", {Integer(1), {}}}, {"a305", {Integer(1), {}}},
{"a306", {Integer(1), {}}}, {"a307", {Integer(1), {}}},
{"a308", {Integer(1), {}}}, {"a309", {Integer(1), {}}},
{"a310", {Integer(1), {}}}, {"a311", {Integer(1), {}}},
{"a312", {Integer(1), {}}}, {"a313", {Integer(1), {}}},
{"a314", {Integer(1), {}}}, {"a315", {Integer(1), {}}},
{"a316", {Integer(1), {}}}, {"a317", {Integer(1), {}}},
{"a318", {Integer(1), {}}}, {"a319", {Integer(1), {}}},
{"a320", {Integer(1), {}}}, {"a321", {Integer(1), {}}},
{"a322", {Integer(1), {}}}, {"a323", {Integer(1), {}}},
{"a324", {Integer(1), {}}}, {"a325", {Integer(1), {}}},
{"a326", {Integer(1), {}}}, {"a327", {Integer(1), {}}},
{"a328", {Integer(1), {}}}, {"a329", {Integer(1), {}}},
{"a330", {Integer(1), {}}}, {"a331", {Integer(1), {}}},
{"a332", {Integer(1), {}}}, {"a333", {Integer(1), {}}},
{"a334", {Integer(1), {}}}, {"a335", {Integer(1), {}}},
{"a336", {Integer(1), {}}}, {"a337", {Integer(1), {}}},
{"a338", {Integer(1), {}}}, {"a339", {Integer(1), {}}},
{"a340", {Integer(1), {}}}, {"a341", {Integer(1), {}}},
{"a342", {Integer(1), {}}}, {"a343", {Integer(1), {}}},
{"a344", {Integer(1), {}}}, {"a345", {Integer(1), {}}},
{"a346", {Integer(1), {}}}, {"a347", {Integer(1), {}}},
{"a348", {Integer(1), {}}}, {"a349", {Integer(1), {}}},
{"a350", {Integer(1), {}}}, {"a351", {Integer(1), {}}},
{"a352", {Integer(1), {}}}, {"a353", {Integer(1), {}}},
{"a354", {Integer(1), {}}}, {"a355", {Integer(1), {}}},
{"a356", {Integer(1), {}}}, {"a357", {Integer(1), {}}},
{"a358", {Integer(1), {}}}, {"a359", {Integer(1), {}}},
{"a360", {Integer(1), {}}}, {"a361", {Integer(1), {}}},
{"a362", {Integer(1), {}}}, {"a363", {Integer(1), {}}},
{"a364", {Integer(1), {}}}, {"a365", {Integer(1), {}}},
{"a366", {Integer(1), {}}}, {"a367", {Integer(1), {}}},
{"a368", {Integer(1), {}}}, {"a369", {Integer(1), {}}},
{"a370", {Integer(1), {}}}, {"a371", {Integer(1), {}}},
{"a372", {Integer(1), {}}}, {"a373", {Integer(1), {}}},
{"a374", {Integer(1), {}}}, {"a375", {Integer(1), {}}},
{"a376", {Integer(1), {}}}, {"a377", {Integer(1), {}}},
{"a378", {Integer(1), {}}}, {"a379", {Integer(1), {}}},
{"a380", {Integer(1), {}}}, {"a381", {Integer(1), {}}},
{"a382", {Integer(1), {}}}, {"a383", {Integer(1), {}}},
{"a384", {Integer(1), {}}}, {"a385", {Integer(1), {}}},
{"a386", {Integer(1), {}}}, {"a387", {Integer(1), {}}},
{"a388", {Integer(1), {}}}, {"a389", {Integer(1), {}}},
{"a390", {Integer(1), {}}}, {"a391", {Integer(1), {}}},
{"a392", {Integer(1), {}}}, {"a393", {Integer(1), {}}},
{"a394", {Integer(1), {}}}, {"a395", {Integer(1), {}}},
{"a396", {Integer(1), {}}}, {"a397", {Integer(1), {}}},
{"a398", {Integer(1), {}}}, {"a399", {Integer(1), {}}},
{"a400", {Integer(1), {}}}, {"a401", {Integer(1), {}}},
{"a402", {Integer(1), {}}}, {"a403", {Integer(1), {}}},
{"a404", {Integer(1), {}}}, {"a405", {Integer(1), {}}},
{"a406", {Integer(1), {}}}, {"a407", {Integer(1), {}}},
{"a408", {Integer(1), {}}}, {"a409", {Integer(1), {}}},
{"a410", {Integer(1), {}}}, {"a411", {Integer(1), {}}},
{"a412", {Integer(1), {}}}, {"a413", {Integer(1), {}}},
{"a414", {Integer(1), {}}}, {"a415", {Integer(1), {}}},
{"a416", {Integer(1), {}}}, {"a417", {Integer(1), {}}},
{"a418", {Integer(1), {}}}, {"a419", {Integer(1), {}}},
{"a420", {Integer(1), {}}}, {"a421", {Integer(1), {}}},
{"a422", {Integer(1), {}}}, {"a423", {Integer(1), {}}},
{"a424", {Integer(1), {}}}, {"a425", {Integer(1), {}}},
{"a426", {Integer(1), {}}}, {"a427", {Integer(1), {}}},
{"a428", {Integer(1), {}}}, {"a429", {Integer(1), {}}},
{"a430", {Integer(1), {}}}, {"a431", {Integer(1), {}}},
{"a432", {Integer(1), {}}}, {"a433", {Integer(1), {}}},
{"a434", {Integer(1), {}}}, {"a435", {Integer(1), {}}},
{"a436", {Integer(1), {}}}, {"a437", {Integer(1), {}}},
{"a438", {Integer(1), {}}}, {"a439", {Integer(1), {}}},
{"a440", {Integer(1), {}}}, {"a441", {Integer(1), {}}},
{"a442", {Integer(1), {}}}, {"a443", {Integer(1), {}}},
{"a444", {Integer(1), {}}}, {"a445", {Integer(1), {}}},
{"a446", {Integer(1), {}}}, {"a447", {Integer(1), {}}},
{"a448", {Integer(1), {}}}, {"a449", {Integer(1), {}}},
{"a450", {Integer(1), {}}}, {"a451", {Integer(1), {}}},
{"a452", {Integer(1), {}}}, {"a453", {Integer(1), {}}},
{"a454", {Integer(1), {}}}, {"a455", {Integer(1), {}}},
{"a456", {Integer(1), {}}}, {"a457", {Integer(1), {}}},
{"a458", {Integer(1), {}}}, {"a459", {Integer(1), {}}},
{"a460", {Integer(1), {}}}, {"a461", {Integer(1), {}}},
{"a462", {Integer(1), {}}}, {"a463", {Integer(1), {}}},
{"a464", {Integer(1), {}}}, {"a465", {Integer(1), {}}},
{"a466", {Integer(1), {}}}, {"a467", {Integer(1), {}}},
{"a468", {Integer(1), {}}}, {"a469", {Integer(1), {}}},
{"a470", {Integer(1), {}}}, {"a471", {Integer(1), {}}},
{"a472", {Integer(1), {}}}, {"a473", {Integer(1), {}}},
{"a474", {Integer(1), {}}}, {"a475", {Integer(1), {}}},
{"a476", {Integer(1), {}}}, {"a477", {Integer(1), {}}},
{"a478", {Integer(1), {}}}, {"a479", {Integer(1), {}}},
{"a480", {Integer(1), {}}}, {"a481", {Integer(1), {}}},
{"a482", {Integer(1), {}}}, {"a483", {Integer(1), {}}},
{"a484", {Integer(1), {}}}, {"a485", {Integer(1), {}}},
{"a486", {Integer(1), {}}}, {"a487", {Integer(1), {}}},
{"a488", {Integer(1), {}}}, {"a489", {Integer(1), {}}},
{"a490", {Integer(1), {}}}, {"a491", {Integer(1), {}}},
{"a492", {Integer(1), {}}}, {"a493", {Integer(1), {}}},
{"a494", {Integer(1), {}}}, {"a495", {Integer(1), {}}},
{"a496", {Integer(1), {}}}, {"a497", {Integer(1), {}}},
{"a498", {Integer(1), {}}}, {"a499", {Integer(1), {}}},
{"a500", {Integer(1), {}}}, {"a501", {Integer(1), {}}},
{"a502", {Integer(1), {}}}, {"a503", {Integer(1), {}}},
{"a504", {Integer(1), {}}}, {"a505", {Integer(1), {}}},
{"a506", {Integer(1), {}}}, {"a507", {Integer(1), {}}},
{"a508", {Integer(1), {}}}, {"a509", {Integer(1), {}}},
{"a510", {Integer(1), {}}}, {"a511", {Integer(1), {}}},
{"a512", {Integer(1), {}}}, {"a513", {Integer(1), {}}},
{"a514", {Integer(1), {}}}, {"a515", {Integer(1), {}}},
{"a516", {Integer(1), {}}}, {"a517", {Integer(1), {}}},
{"a518", {Integer(1), {}}}, {"a519", {Integer(1), {}}},
{"a520", {Integer(1), {}}}, {"a521", {Integer(1), {}}},
{"a522", {Integer(1), {}}}, {"a523", {Integer(1), {}}},
{"a524", {Integer(1), {}}}, {"a525", {Integer(1), {}}},
{"a526", {Integer(1), {}}}, {"a527", {Integer(1), {}}},
{"a528", {Integer(1), {}}}, {"a529", {Integer(1), {}}},
{"a530", {Integer(1), {}}}, {"a531", {Integer(1), {}}},
{"a532", {Integer(1), {}}}, {"a533", {Integer(1), {}}},
{"a534", {Integer(1), {}}}, {"a535", {Integer(1), {}}},
{"a536", {Integer(1), {}}}, {"a537", {Integer(1), {}}},
{"a538", {Integer(1), {}}}, {"a539", {Integer(1), {}}},
{"a540", {Integer(1), {}}}, {"a541", {Integer(1), {}}},
{"a542", {Integer(1), {}}}, {"a543", {Integer(1), {}}},
{"a544", {Integer(1), {}}}, {"a545", {Integer(1), {}}},
{"a546", {Integer(1), {}}}, {"a547", {Integer(1), {}}},
{"a548", {Integer(1), {}}}, {"a549", {Integer(1), {}}},
{"a550", {Integer(1), {}}}, {"a551", {Integer(1), {}}},
{"a552", {Integer(1), {}}}, {"a553", {Integer(1), {}}},
{"a554", {Integer(1), {}}}, {"a555", {Integer(1), {}}},
{"a556", {Integer(1), {}}}, {"a557", {Integer(1), {}}},
{"a558", {Integer(1), {}}}, {"a559", {Integer(1), {}}},
{"a560", {Integer(1), {}}}, {"a561", {Integer(1), {}}},
{"a562", {Integer(1), {}}}, {"a563", {Integer(1), {}}},
{"a564", {Integer(1), {}}}, {"a565", {Integer(1), {}}},
{"a566", {Integer(1), {}}}, {"a567", {Integer(1), {}}},
{"a568", {Integer(1), {}}}, {"a569", {Integer(1), {}}},
{"a570", {Integer(1), {}}}, {"a571", {Integer(1), {}}},
{"a572", {Integer(1), {}}}, {"a573", {Integer(1), {}}},
{"a574", {Integer(1), {}}}, {"a575", {Integer(1), {}}},
{"a576", {Integer(1), {}}}, {"a577", {Integer(1), {}}},
{"a578", {Integer(1), {}}}, {"a579", {Integer(1), {}}},
{"a580", {Integer(1), {}}}, {"a581", {Integer(1), {}}},
{"a582", {Integer(1), {}}}, {"a583", {Integer(1), {}}},
{"a584", {Integer(1), {}}}, {"a585", {Integer(1), {}}},
{"a586", {Integer(1), {}}}, {"a587", {Integer(1), {}}},
{"a588", {Integer(1), {}}}, {"a589", {Integer(1), {}}},
{"a590", {Integer(1), {}}}, {"a591", {Integer(1), {}}},
{"a592", {Integer(1), {}}}, {"a593", {Integer(1), {}}},
{"a594", {Integer(1), {}}}, {"a595", {Integer(1), {}}},
{"a596", {Integer(1), {}}}, {"a597", {Integer(1), {}}},
{"a598", {Integer(1), {}}}, {"a599", {Integer(1), {}}},
{"a600", {Integer(1), {}}}, {"a601", {Integer(1), {}}},
{"a602", {Integer(1), {}}}, {"a603", {Integer(1), {}}},
{"a604", {Integer(1), {}}}, {"a605", {Integer(1), {}}},
{"a606", {Integer(1), {}}}, {"a607", {Integer(1), {}}},
{"a608", {Integer(1), {}}}, {"a609", {Integer(1), {}}},
{"a610", {Integer(1), {}}}, {"a611", {Integer(1), {}}},
{"a612", {Integer(1), {}}}, {"a613", {Integer(1), {}}},
{"a614", {Integer(1), {}}}, {"a615", {Integer(1), {}}},
{"a616", {Integer(1), {}}}, {"a617", {Integer(1), {}}},
{"a618", {Integer(1), {}}}, {"a619", {Integer(1), {}}},
{"a620", {Integer(1), {}}}, {"a621", {Integer(1), {}}},
{"a622", {Integer(1), {}}}, {"a623", {Integer(1), {}}},
{"a624", {Integer(1), {}}}, {"a625", {Integer(1), {}}},
{"a626", {Integer(1), {}}}, {"a627", {Integer(1), {}}},
{"a628", {Integer(1), {}}}, {"a629", {Integer(1), {}}},
{"a630", {Integer(1), {}}}, {"a631", {Integer(1), {}}},
{"a632", {Integer(1), {}}}, {"a633", {Integer(1), {}}},
{"a634", {Integer(1), {}}}, {"a635", {Integer(1), {}}},
{"a636", {Integer(1), {}}}, {"a637", {Integer(1), {}}},
{"a638", {Integer(1), {}}}, {"a639", {Integer(1), {}}},
{"a640", {Integer(1), {}}}, {"a641", {Integer(1), {}}},
{"a642", {Integer(1), {}}}, {"a643", {Integer(1), {}}},
{"a644", {Integer(1), {}}}, {"a645", {Integer(1), {}}},
{"a646", {Integer(1), {}}}, {"a647", {Integer(1), {}}},
{"a648", {Integer(1), {}}}, {"a649", {Integer(1), {}}},
{"a650", {Integer(1), {}}}, {"a651", {Integer(1), {}}},
{"a652", {Integer(1), {}}}, {"a653", {Integer(1), {}}},
{"a654", {Integer(1), {}}}, {"a655", {Integer(1), {}}},
{"a656", {Integer(1), {}}}, {"a657", {Integer(1), {}}},
{"a658", {Integer(1), {}}}, {"a659", {Integer(1), {}}},
{"a660", {Integer(1), {}}}, {"a661", {Integer(1), {}}},
{"a662", {Integer(1), {}}}, {"a663", {Integer(1), {}}},
{"a664", {Integer(1), {}}}, {"a665", {Integer(1), {}}},
{"a666", {Integer(1), {}}}, {"a667", {Integer(1), {}}},
{"a668", {Integer(1), {}}}, {"a669", {Integer(1), {}}},
{"a670", {Integer(1), {}}}, {"a671", {Integer(1), {}}},
{"a672", {Integer(1), {}}}, {"a673", {Integer(1), {}}},
{"a674", {Integer(1), {}}}, {"a675", {Integer(1), {}}},
{"a676", {Integer(1), {}}}, {"a677", {Integer(1), {}}},
{"a678", {Integer(1), {}}}, {"a679", {Integer(1), {}}},
{"a680", {Integer(1), {}}}, {"a681", {Integer(1), {}}},
{"a682", {Integer(1), {}}}, {"a683", {Integer(1), {}}},
{"a684", {Integer(1), {}}}, {"a685", {Integer(1), {}}},
{"a686", {Integer(1), {}}}, {"a687", {Integer(1), {}}},
{"a688", {Integer(1), {}}}, {"a689", {Integer(1), {}}},
{"a690", {Integer(1), {}}}, {"a691", {Integer(1), {}}},
{"a692", {Integer(1), {}}}, {"a693", {Integer(1), {}}},
{"a694", {Integer(1), {}}}, {"a695", {Integer(1), {}}},
{"a696", {Integer(1), {}}}, {"a697", {Integer(1), {}}},
{"a698", {Integer(1), {}}}, {"a699", {Integer(1), {}}},
{"a700", {Integer(1), {}}}, {"a701", {Integer(1), {}}},
{"a702", {Integer(1), {}}}, {"a703", {Integer(1), {}}},
{"a704", {Integer(1), {}}}, {"a705", {Integer(1), {}}},
{"a706", {Integer(1), {}}}, {"a707", {Integer(1), {}}},
{"a708", {Integer(1), {}}}, {"a709", {Integer(1), {}}},
{"a710", {Integer(1), {}}}, {"a711", {Integer(1), {}}},
{"a712", {Integer(1), {}}}, {"a713", {Integer(1), {}}},
{"a714", {Integer(1), {}}}, {"a715", {Integer(1), {}}},
{"a716", {Integer(1), {}}}, {"a717", {Integer(1), {}}},
{"a718", {Integer(1), {}}}, {"a719", {Integer(1), {}}},
{"a720", {Integer(1), {}}}, {"a721", {Integer(1), {}}},
{"a722", {Integer(1), {}}}, {"a723", {Integer(1), {}}},
{"a724", {Integer(1), {}}}, {"a725", {Integer(1), {}}},
{"a726", {Integer(1), {}}}, {"a727", {Integer(1), {}}},
{"a728", {Integer(1), {}}}, {"a729", {Integer(1), {}}},
{"a730", {Integer(1), {}}}, {"a731", {Integer(1), {}}},
{"a732", {Integer(1), {}}}, {"a733", {Integer(1), {}}},
{"a734", {Integer(1), {}}}, {"a735", {Integer(1), {}}},
{"a736", {Integer(1), {}}}, {"a737", {Integer(1), {}}},
{"a738", {Integer(1), {}}}, {"a739", {Integer(1), {}}},
{"a740", {Integer(1), {}}}, {"a741", {Integer(1), {}}},
{"a742", {Integer(1), {}}}, {"a743", {Integer(1), {}}},
{"a744", {Integer(1), {}}}, {"a745", {Integer(1), {}}},
{"a746", {Integer(1), {}}}, {"a747", {Integer(1), {}}},
{"a748", {Integer(1), {}}}, {"a749", {Integer(1), {}}},
{"a750", {Integer(1), {}}}, {"a751", {Integer(1), {}}},
{"a752", {Integer(1), {}}}, {"a753", {Integer(1), {}}},
{"a754", {Integer(1), {}}}, {"a755", {Integer(1), {}}},
{"a756", {Integer(1), {}}}, {"a757", {Integer(1), {}}},
{"a758", {Integer(1), {}}}, {"a759", {Integer(1), {}}},
{"a760", {Integer(1), {}}}, {"a761", {Integer(1), {}}},
{"a762", {Integer(1), {}}}, {"a763", {Integer(1), {}}},
{"a764", {Integer(1), {}}}, {"a765", {Integer(1), {}}},
{"a766", {Integer(1), {}}}, {"a767", {Integer(1), {}}},
{"a768", {Integer(1), {}}}, {"a769", {Integer(1), {}}},
{"a770", {Integer(1), {}}}, {"a771", {Integer(1), {}}},
{"a772", {Integer(1), {}}}, {"a773", {Integer(1), {}}},
{"a774", {Integer(1), {}}}, {"a775", {Integer(1), {}}},
{"a776", {Integer(1), {}}}, {"a777", {Integer(1), {}}},
{"a778", {Integer(1), {}}}, {"a779", {Integer(1), {}}},
{"a780", {Integer(1), {}}}, {"a781", {Integer(1), {}}},
{"a782", {Integer(1), {}}}, {"a783", {Integer(1), {}}},
{"a784", {Integer(1), {}}}, {"a785", {Integer(1), {}}},
{"a786", {Integer(1), {}}}, {"a787", {Integer(1), {}}},
{"a788", {Integer(1), {}}}, {"a789", {Integer(1), {}}},
{"a790", {Integer(1), {}}}, {"a791", {Integer(1), {}}},
{"a792", {Integer(1), {}}}, {"a793", {Integer(1), {}}},
{"a794", {Integer(1), {}}}, {"a795", {Integer(1), {}}},
{"a796", {Integer(1), {}}}, {"a797", {Integer(1), {}}},
{"a798", {Integer(1), {}}}, {"a799", {Integer(1), {}}},
{"a800", {Integer(1), {}}}, {"a801", {Integer(1), {}}},
{"a802", {Integer(1), {}}}, {"a803", {Integer(1), {}}},
{"a804", {Integer(1), {}}}, {"a805", {Integer(1), {}}},
{"a806", {Integer(1), {}}}, {"a807", {Integer(1), {}}},
{"a808", {Integer(1), {}}}, {"a809", {Integer(1), {}}},
{"a810", {Integer(1), {}}}, {"a811", {Integer(1), {}}},
{"a812", {Integer(1), {}}}, {"a813", {Integer(1), {}}},
{"a814", {Integer(1), {}}}, {"a815", {Integer(1), {}}},
{"a816", {Integer(1), {}}}, {"a817", {Integer(1), {}}},
{"a818", {Integer(1), {}}}, {"a819", {Integer(1), {}}},
{"a820", {Integer(1), {}}}, {"a821", {Integer(1), {}}},
{"a822", {Integer(1), {}}}, {"a823", {Integer(1), {}}},
{"a824", {Integer(1), {}}}, {"a825", {Integer(1), {}}},
{"a826", {Integer(1), {}}}, {"a827", {Integer(1), {}}},
{"a828", {Integer(1), {}}}, {"a829", {Integer(1), {}}},
{"a830", {Integer(1), {}}}, {"a831", {Integer(1), {}}},
{"a832", {Integer(1), {}}}, {"a833", {Integer(1), {}}},
{"a834", {Integer(1), {}}}, {"a835", {Integer(1), {}}},
{"a836", {Integer(1), {}}}, {"a837", {Integer(1), {}}},
{"a838", {Integer(1), {}}}, {"a839", {Integer(1), {}}},
{"a840", {Integer(1), {}}}, {"a841", {Integer(1), {}}},
{"a842", {Integer(1), {}}}, {"a843", {Integer(1), {}}},
{"a844", {Integer(1), {}}}, {"a845", {Integer(1), {}}},
{"a846", {Integer(1), {}}}, {"a847", {Integer(1), {}}},
{"a848", {Integer(1), {}}}, {"a849", {Integer(1), {}}},
{"a850", {Integer(1), {}}}, {"a851", {Integer(1), {}}},
{"a852", {Integer(1), {}}}, {"a853", {Integer(1), {}}},
{"a854", {Integer(1), {}}}, {"a855", {Integer(1), {}}},
{"a856", {Integer(1), {}}}, {"a857", {Integer(1), {}}},
{"a858", {Integer(1), {}}}, {"a859", {Integer(1), {}}},
{"a860", {Integer(1), {}}}, {"a861", {Integer(1), {}}},
{"a862", {Integer(1), {}}}, {"a863", {Integer(1), {}}},
{"a864", {Integer(1), {}}}, {"a865", {Integer(1), {}}},
{"a866", {Integer(1), {}}}, {"a867", {Integer(1), {}}},
{"a868", {Integer(1), {}}}, {"a869", {Integer(1), {}}},
{"a870", {Integer(1), {}}}, {"a871", {Integer(1), {}}},
{"a872", {Integer(1), {}}}, {"a873", {Integer(1), {}}},
{"a874", {Integer(1), {}}}, {"a875", {Integer(1), {}}},
{"a876", {Integer(1), {}}}, {"a877", {Integer(1), {}}},
{"a878", {Integer(1), {}}}, {"a879", {Integer(1), {}}},
{"a880", {Integer(1), {}}}, {"a881", {Integer(1), {}}},
{"a882", {Integer(1), {}}}, {"a883", {Integer(1), {}}},
{"a884", {Integer(1), {}}}, {"a885", {Integer(1), {}}},
{"a886", {Integer(1), {}}}, {"a887", {Integer(1), {}}},
{"a888", {Integer(1), {}}}, {"a889", {Integer(1), {}}},
{"a890", {Integer(1), {}}}, {"a891", {Integer(1), {}}},
{"a892", {Integer(1), {}}}, {"a893", {Integer(1), {}}},
{"a894", {Integer(1), {}}}, {"a895", {Integer(1), {}}},
{"a896", {Integer(1), {}}}, {"a897", {Integer(1), {}}},
{"a898", {Integer(1), {}}}, {"a899", {Integer(1), {}}},
{"a900", {Integer(1), {}}}, {"a901", {Integer(1), {}}},
{"a902", {Integer(1), {}}}, {"a903", {Integer(1), {}}},
{"a904", {Integer(1), {}}}, {"a905", {Integer(1), {}}},
{"a906", {Integer(1), {}}}, {"a907", {Integer(1), {}}},
{"a908", {Integer(1), {}}}, {"a909", {Integer(1), {}}},
{"a910", {Integer(1), {}}}, {"a911", {Integer(1), {}}},
{"a912", {Integer(1), {}}}, {"a913", {Integer(1), {}}},
{"a914", {Integer(1), {}}}, {"a915", {Integer(1), {}}},
{"a916", {Integer(1), {}}}, {"a917", {Integer(1), {}}},
{"a918", {Integer(1), {}}}, {"a919", {Integer(1), {}}},
{"a920", {Integer(1), {}}}, {"a921", {Integer(1), {}}},
{"a922", {Integer(1), {}}}, {"a923", {Integer(1), {}}},
{"a924", {Integer(1), {}}}, {"a925", {Integer(1), {}}},
{"a926", {Integer(1), {}}}, {"a927", {Integer(1), {}}},
{"a928", {Integer(1), {}}}, {"a929", {Integer(1), {}}},
{"a930", {Integer(1), {}}}, {"a931", {Integer(1), {}}},
{"a932", {Integer(1), {}}}, {"a933", {Integer(1), {}}},
{"a934", {Integer(1), {}}}, {"a935", {Integer(1), {}}},
{"a936", {Integer(1), {}}}, {"a937", {Integer(1), {}}},
{"a938", {Integer(1), {}}}, {"a939", {Integer(1), {}}},
{"a940", {Integer(1), {}}}, {"a941", {Integer(1), {}}},
{"a942", {Integer(1), {}}}, {"a943", {Integer(1), {}}},
{"a944", {Integer(1), {}}}, {"a945", {Integer(1), {}}},
{"a946", {Integer(1), {}}}, {"a947", {Integer(1), {}}},
{"a948", {Integer(1), {}}}, {"a949", {Integer(1), {}}},
{"a950", {Integer(1), {}}}, {"a951", {Integer(1), {}}},
{"a952", {Integer(1), {}}}, {"a953", {Integer(1), {}}},
{"a954", {Integer(1), {}}}, {"a955", {Integer(1), {}}},
{"a956", {Integer(1), {}}}, {"a957", {Integer(1), {}}},
{"a958", {Integer(1), {}}}, {"a959", {Integer(1), {}}},
{"a960", {Integer(1), {}}}, {"a961", {Integer(1), {}}},
{"a962", {Integer(1), {}}}, {"a963", {Integer(1), {}}},
{"a964", {Integer(1), {}}}, {"a965", {Integer(1), {}}},
{"a966", {Integer(1), {}}}, {"a967", {Integer(1), {}}},
{"a968", {Integer(1), {}}}, {"a969", {Integer(1), {}}},
{"a970", {Integer(1), {}}}, {"a971", {Integer(1), {}}},
{"a972", {Integer(1), {}}}, {"a973", {Integer(1), {}}},
{"a974", {Integer(1), {}}}, {"a975", {Integer(1), {}}},
{"a976", {Integer(1), {}}}, {"a977", {Integer(1), {}}},
{"a978", {Integer(1), {}}}, {"a979", {Integer(1), {}}},
{"a980", {Integer(1), {}}}, {"a981", {Integer(1), {}}},
{"a982", {Integer(1), {}}}, {"a983", {Integer(1), {}}},
{"a984", {Integer(1), {}}}, {"a985", {Integer(1), {}}},
{"a986", {Integer(1), {}}}, {"a987", {Integer(1), {}}},
{"a988", {Integer(1), {}}}, {"a989", {Integer(1), {}}},
{"a990", {Integer(1), {}}}, {"a991", {Integer(1), {}}},
{"a992", {Integer(1), {}}}, {"a993", {Integer(1), {}}},
{"a994", {Integer(1), {}}}, {"a995", {Integer(1), {}}},
{"a996", {Integer(1), {}}}, {"a997", {Integer(1), {}}},
{"a998", {Integer(1), {}}}, {"a999", {Integer(1), {}}},
{"a1000", {Integer(1), {}}}, {"a1001", {Integer(1), {}}},
{"a1002", {Integer(1), {}}}, {"a1003", {Integer(1), {}}},
{"a1004", {Integer(1), {}}}, {"a1005", {Integer(1), {}}},
{"a1006", {Integer(1), {}}}, {"a1007", {Integer(1), {}}},
{"a1008", {Integer(1), {}}}, {"a1009", {Integer(1), {}}},
{"a1010", {Integer(1), {}}}, {"a1011", {Integer(1), {}}},
{"a1012", {Integer(1), {}}}, {"a1013", {Integer(1), {}}},
{"a1014", {Integer(1), {}}}, {"a1015", {Integer(1), {}}},
{"a1016", {Integer(1), {}}}, {"a1017", {Integer(1), {}}},
{"a1018", {Integer(1), {}}}, {"a1019", {Integer(1), {}}},
{"a1020", {Integer(1), {}}}, {"a1021", {Integer(1), {}}},
{"a1022", {Integer(1), {}}}, {"a1023", {Integer(1), {}}}}}},
nullptr},
{"large dictionary key",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=1",
66,
{Dictionary{
{{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
{Integer(1), {}}}}}},
nullptr},
// param-dict.json
{"basic parameterised dict",
"abc=123;a=1;b=2, def=456, ghi=789;q=9;r=\"+w\"",
44,
{Dictionary{{{"abc", {Integer(123), {Param("a", 1), Param("b", 2)}}},
{"def", {Integer(456), {}}},
{"ghi", {Integer(789), {Param("q", 9), Param("r", "+w")}}}}}},
nullptr},
{"single item parameterised dict",
"a=b; q=1.0",
10,
{Dictionary{
{{"a", {Item("b", Item::kTokenType), {DoubleParam("q", 1.0)}}}}}},
"a=b;q=1.0"},
{"list item parameterised dictionary",
"a=(1 2); q=1.0",
14,
{Dictionary{
{{"a",
{{{Integer(1), {}}, {Integer(2), {}}}, {DoubleParam("q", 1.0)}}}}}},
"a=(1 2);q=1.0"},
{"missing parameter value parameterised dict",
"a=3;c;d=5",
9,
{Dictionary{
{{"a", {Integer(3), {BooleanParam("c", true), Param("d", 5)}}}}}},
nullptr},
{"terminal missing parameter value parameterised dict",
"a=3;c=5;d",
9,
{Dictionary{
{{"a", {Integer(3), {Param("c", 5), BooleanParam("d", true)}}}}}},
nullptr},
{"no whitespace parameterised dict",
"a=b;c=1,d=e;f=2",
15,
{Dictionary{{{"a", {Item("b", Item::kTokenType), {Param("c", 1)}}},
{"d", {Item("e", Item::kTokenType), {Param("f", 2)}}}}}},
"a=b;c=1, d=e;f=2"},
{"whitespace before = parameterised dict", "a=b;q =0.5", 10, std::nullopt,
nullptr},
{"whitespace after = parameterised dict", "a=b;q= 0.5", 10, std::nullopt,
nullptr},
{"whitespace before ; parameterised dict", "a=b ;q=0.5", 10, std::nullopt,
nullptr},
{"whitespace after ; parameterised dict",
"a=b; q=0.5",
10,
{Dictionary{
{{"a", {Item("b", Item::kTokenType), {DoubleParam("q", 0.5)}}}}}},
"a=b;q=0.5"},
{"extra whitespace parameterised dict",
"a=b; c=1 , d=e; f=2; g=3",
27,
{Dictionary{
{{"a", {Item("b", Item::kTokenType), {Param("c", 1)}}},
{"d",
{Item("e", Item::kTokenType), {Param("f", 2), Param("g", 3)}}}}}},
"a=b;c=1, d=e;f=2;g=3"},
{"two lines parameterised list",
"a=b;c=1, d=e;f=2",
16,
{Dictionary{{{"a", {Item("b", Item::kTokenType), {Param("c", 1)}}},
{"d", {Item("e", Item::kTokenType), {Param("f", 2)}}}}}},
"a=b;c=1, d=e;f=2"},
{"trailing comma parameterised list", "a=b; q=1.0,", 11, std::nullopt,
nullptr},
{"empty item parameterised list", "a=b; q=1.0,,c=d", 15, std::nullopt,
nullptr},
};
const struct SerializationOnlyItemTestCase {
const char* name;
const ParameterizedItem expected;
const std::optional<std::string> canonical;
} serialization_only_item_test_cases[] = {
// serialisation-tests/number.json
{"too big positive integer - serialize",
{Integer(1000000000000000), {}},
std::nullopt},
{"too big negative integer - serialize",
{Integer(-1000000000000000), {}},
std::nullopt},
{"too big positive decimal - serialize",
{Item(1000000000000.1), {}},
std::nullopt},
{"too big negative decimal - serialize",
{Item(-1000000000000.1), {}},
std::nullopt},
{"round positive odd decimal - serialize", {Item(0.0015), {}}, "0.002"},
{"round positive even decimal - serialize", {Item(0.0025), {}}, "0.002"},
{"round negative odd decimal - serialize", {Item(-0.0015), {}}, "-0.002"},
{"round negative even decimal - serialize", {Item(-0.0025), {}}, "-0.002"},
{"decimal round up to integer part - serialize",
{Item(9.9995), {}},
"10.0"},
// serialisation-tests/string-generated.json
{"0x00 in string - serialise only",
{Item(std::string("\000", 1)), {}},
std::nullopt},
{"0x01 in string - serialise only", {Item("\001"), {}}, std::nullopt},
{"0x02 in string - serialise only", {Item("\002"), {}}, std::nullopt},
{"0x03 in string - serialise only", {Item("\003"), {}}, std::nullopt},
{"0x04 in string - serialise only", {Item("\004"), {}}, std::nullopt},
{"0x05 in string - serialise only", {Item("\005"), {}}, std::nullopt},
{"0x06 in string - serialise only", {Item("\006"), {}}, std::nullopt},
{"0x07 in string - serialise only", {Item("\007"), {}}, std::nullopt},
{"0x08 in string - serialise only", {Item("\010"), {}}, std::nullopt},
{"0x09 in string - serialise only", {Item("\t"), {}}, std::nullopt},
{"0x0a in string - serialise only", {Item("\n"), {}}, std::nullopt},
{"0x0b in string - serialise only", {Item("\013"), {}}, std::nullopt},
{"0x0c in string - serialise only", {Item("\014"), {}}, std::nullopt},
{"0x0d in string - serialise only", {Item("\r"), {}}, std::nullopt},
{"0x0e in string - serialise only", {Item("\016"), {}}, std::nullopt},
{"0x0f in string - serialise only", {Item("\017"), {}}, std::nullopt},
{"0x10 in string - serialise only", {Item("\020"), {}}, std::nullopt},
{"0x11 in string - serialise only", {Item("\021"), {}}, std::nullopt},
{"0x12 in string - serialise only", {Item("\022"), {}}, std::nullopt},
{"0x13 in string - serialise only", {Item("\023"), {}}, std::nullopt},
{"0x14 in string - serialise only", {Item("\024"), {}}, std::nullopt},
{"0x15 in string - serialise only", {Item("\025"), {}}, std::nullopt},
{"0x16 in string - serialise only", {Item("\026"), {}}, std::nullopt},
{"0x17 in string - serialise only", {Item("\027"), {}}, std::nullopt},
{"0x18 in string - serialise only", {Item("\030"), {}}, std::nullopt},
{"0x19 in string - serialise only", {Item("\031"), {}}, std::nullopt},
{"0x1a in string - serialise only", {Item("\032"), {}}, std::nullopt},
{"0x1b in string - serialise only", {Item("\033"), {}}, std::nullopt},
{"0x1c in string - serialise only", {Item("\034"), {}}, std::nullopt},
{"0x1d in string - serialise only", {Item("\035"), {}}, std::nullopt},
{"0x1e in string - serialise only", {Item("\036"), {}}, std::nullopt},
{"0x1f in string - serialise only", {Item("\037"), {}}, std::nullopt},
{"0x7f in string - serialise only", {Item("\177"), {}}, std::nullopt},
// serialisation-tests/token-generated.json
{"0x00 in token - serialise only",
{Item(std::string("a\000a", 3), Item::kTokenType), {}},
std::nullopt},
{"0x01 in token - serialise only",
{Item("a\001a", Item::kTokenType), {}},
std::nullopt},
{"0x02 in token - serialise only",
{Item("a\002a", Item::kTokenType), {}},
std::nullopt},
{"0x03 in token - serialise only",
{Item("a\003a", Item::kTokenType), {}},
std::nullopt},
{"0x04 in token - serialise only",
{Item("a\004a", Item::kTokenType), {}},
std::nullopt},
{"0x05 in token - serialise only",
{Item("a\005a", Item::kTokenType), {}},
std::nullopt},
{"0x06 in token - serialise only",
{Item("a\006a", Item::kTokenType), {}},
std::nullopt},
{"0x07 in token - serialise only",
{Item("a\007a", Item::kTokenType), {}},
std::nullopt},
{"0x08 in token - serialise only",
{Item("a\010a", Item::kTokenType), {}},
std::nullopt},
{"0x09 in token - serialise only",
{Item("a\ta", Item::kTokenType), {}},
std::nullopt},
{"0x0a in token - serialise only",
{Item("a\na", Item::kTokenType), {}},
std::nullopt},
{"0x0b in token - serialise only",
{Item("a\013a", Item::kTokenType), {}},
std::nullopt},
{"0x0c in token - serialise only",
{Item("a\014a", Item::kTokenType), {}},
std::nullopt},
{"0x0d in token - serialise only",
{Item("a\ra", Item::kTokenType), {}},
std::nullopt},
{"0x0e in token - serialise only",
{Item("a\016a", Item::kTokenType), {}},
std::nullopt},
{"0x0f in token - serialise only",
{Item("a\017a", Item::kTokenType), {}},
std::nullopt},
{"0x10 in token - serialise only",
{Item("a\020a", Item::kTokenType), {}},
std::nullopt},
{"0x11 in token - serialise only",
{Item("a\021a", Item::kTokenType), {}},
std::nullopt},
{"0x12 in token - serialise only",
{Item("a\022a", Item::kTokenType), {}},
std::nullopt},
{"0x13 in token - serialise only",
{Item("a\023a", Item::kTokenType), {}},
std::nullopt},
{"0x14 in token - serialise only",
{Item("a\024a", Item::kTokenType), {}},
std::nullopt},
{"0x15 in token - serialise only",
{Item("a\025a", Item::kTokenType), {}},
std::nullopt},
{"0x16 in token - serialise only",
{Item("a\026a", Item::kTokenType), {}},
std::nullopt},
{"0x17 in token - serialise only",
{Item("a\027a", Item::kTokenType), {}},
std::nullopt},
{"0x18 in token - serialise only",
{Item("a\030a", Item::kTokenType), {}},
std::nullopt},
{"0x19 in token - serialise only",
{Item("a\031a", Item::kTokenType), {}},
std::nullopt},
{"0x1a in token - serialise only",
{Item("a\032a", Item::kTokenType), {}},
std::nullopt},
{"0x1b in token - serialise only",
{Item("a\033a", Item::kTokenType), {}},
std::nullopt},
{"0x1c in token - serialise only",
{Item("a\034a", Item::kTokenType), {}},
std::nullopt},
{"0x1d in token - serialise only",
{Item("a\035a", Item::kTokenType), {}},
std::nullopt},
{"0x1e in token - serialise only",
{Item("a\036a", Item::kTokenType), {}},
std::nullopt},
{"0x1f in token - serialise only",
{Item("a\037a", Item::kTokenType), {}},
std::nullopt},
{"0x20 in token - serialise only",
{Item("a a", Item::kTokenType), {}},
std::nullopt},
{"0x22 in token - serialise only",
{Item("a\"a", Item::kTokenType), {}},
std::nullopt},
{"0x28 in token - serialise only",
{Item("a(a", Item::kTokenType), {}},
std::nullopt},
{"0x29 in token - serialise only",
{Item("a)a", Item::kTokenType), {}},
std::nullopt},
{"0x2c in token - serialise only",
{Item("a,a", Item::kTokenType), {}},
std::nullopt},
{"0x3b in token - serialise only",
{Item("a;a", Item::kTokenType), {}},
std::nullopt},
{"0x3c in token - serialise only",
{Item("a<a", Item::kTokenType), {}},
std::nullopt},
{"0x3d in token - serialise only",
{Item("a=a", Item::kTokenType), {}},
std::nullopt},
{"0x3e in token - serialise only",
{Item("a>a", Item::kTokenType), {}},
std::nullopt},
{"0x3f in token - serialise only",
{Item("a?a", Item::kTokenType), {}},
std::nullopt},
{"0x40 in token - serialise only",
{Item("a@a", Item::kTokenType), {}},
std::nullopt},
{"0x5b in token - serialise only",
{Item("a[a", Item::kTokenType), {}},
std::nullopt},
{"0x5c in token - serialise only",
{Item("a\\a", Item::kTokenType), {}},
std::nullopt},
{"0x5d in token - serialise only",
{Item("a]a", Item::kTokenType), {}},
std::nullopt},
{"0x7b in token - serialise only",
{Item("a{a", Item::kTokenType), {}},
std::nullopt},
{"0x7d in token - serialise only",
{Item("a}a", Item::kTokenType), {}},
std::nullopt},
{"0x7f in token - serialise only",
{Item("a\177a", Item::kTokenType), {}},
std::nullopt},
{"0x00 starting a token - serialise only",
{Item(std::string("\000a", 2), Item::kTokenType), {}},
std::nullopt},
{"0x01 starting a token - serialise only",
{Item("\001a", Item::kTokenType), {}},
std::nullopt},
{"0x02 starting a token - serialise only",
{Item("\002a", Item::kTokenType), {}},
std::nullopt},
{"0x03 starting a token - serialise only",
{Item("\003a", Item::kTokenType), {}},
std::nullopt},
{"0x04 starting a token - serialise only",
{Item("\004a", Item::kTokenType), {}},
std::nullopt},
{"0x05 starting a token - serialise only",
{Item("\005a", Item::kTokenType), {}},
std::nullopt},
{"0x06 starting a token - serialise only",
{Item("\006a", Item::kTokenType), {}},
std::nullopt},
{"0x07 starting a token - serialise only",
{Item("\007a", Item::kTokenType), {}},
std::nullopt},
{"0x08 starting a token - serialise only",
{Item("\010a", Item::kTokenType), {}},
std::nullopt},
{"0x09 starting a token - serialise only",
{Item("\ta", Item::kTokenType), {}},
std::nullopt},
{"0x0a starting a token - serialise only",
{Item("\na", Item::kTokenType), {}},
std::nullopt},
{"0x0b starting a token - serialise only",
{Item("\013a", Item::kTokenType), {}},
std::nullopt},
{"0x0c starting a token - serialise only",
{Item("\014a", Item::kTokenType), {}},
std::nullopt},
{"0x0d starting a token - serialise only",
{Item("\ra", Item::kTokenType), {}},
std::nullopt},
{"0x0e starting a token - serialise only",
{Item("\016a", Item::kTokenType), {}},
std::nullopt},
{"0x0f starting a token - serialise only",
{Item("\017a", Item::kTokenType), {}},
std::nullopt},
{"0x10 starting a token - serialise only",
{Item("\020a", Item::kTokenType), {}},
std::nullopt},
{"0x11 starting a token - serialise only",
{Item("\021a", Item::kTokenType), {}},
std::nullopt},
{"0x12 starting a token - serialise only",
{Item("\022a", Item::kTokenType), {}},
std::nullopt},
{"0x13 starting a token - serialise only",
{Item("\023a", Item::kTokenType), {}},
std::nullopt},
{"0x14 starting a token - serialise only",
{Item("\024a", Item::kTokenType), {}},
std::nullopt},
{"0x15 starting a token - serialise only",
{Item("\025a", Item::kTokenType), {}},
std::nullopt},
{"0x16 starting a token - serialise only",
{Item("\026a", Item::kTokenType), {}},
std::nullopt},
{"0x17 starting a token - serialise only",
{Item("\027a", Item::kTokenType), {}},
std::nullopt},
{"0x18 starting a token - serialise only",
{Item("\030a", Item::kTokenType), {}},
std::nullopt},
{"0x19 starting a token - serialise only",
{Item("\031a", Item::kTokenType), {}},
std::nullopt},
{"0x1a starting a token - serialise only",
{Item("\032a", Item::kTokenType), {}},
std::nullopt},
{"0x1b starting a token - serialise only",
{Item("\033a", Item::kTokenType), {}},
std::nullopt},
{"0x1c starting a token - serialise only",
{Item("\034a", Item::kTokenType), {}},
std::nullopt},
{"0x1d starting a token - serialise only",
{Item("\035a", Item::kTokenType), {}},
std::nullopt},
{"0x1e starting a token - serialise only",
{Item("\036a", Item::kTokenType), {}},
std::nullopt},
{"0x1f starting a token - serialise only",
{Item("\037a", Item::kTokenType), {}},
std::nullopt},
{"0x20 starting a token - serialise only",
{Item(" a", Item::kTokenType), {}},
std::nullopt},
{"0x21 starting a token - serialise only",
{Item("!a", Item::kTokenType), {}},
std::nullopt},
{"0x22 starting a token - serialise only",
{Item("\"a", Item::kTokenType), {}},
std::nullopt},
{"0x23 starting a token - serialise only",
{Item("#a", Item::kTokenType), {}},
std::nullopt},
{"0x24 starting a token - serialise only",
{Item("$a", Item::kTokenType), {}},
std::nullopt},
{"0x25 starting a token - serialise only",
{Item("%a", Item::kTokenType), {}},
std::nullopt},
{"0x26 starting a token - serialise only",
{Item("&a", Item::kTokenType), {}},
std::nullopt},
{"0x27 starting a token - serialise only",
{Item("'a", Item::kTokenType), {}},
std::nullopt},
{"0x28 starting a token - serialise only",
{Item("(a", Item::kTokenType), {}},
std::nullopt},
{"0x29 starting a token - serialise only",
{Item(")a", Item::kTokenType), {}},
std::nullopt},
{"0x2b starting a token - serialise only",
{Item("+a", Item::kTokenType), {}},
std::nullopt},
{"0x2c starting a token - serialise only",
{Item(",a", Item::kTokenType), {}},
std::nullopt},
{"0x2d starting a token - serialise only",
{Item("-a", Item::kTokenType), {}},
std::nullopt},
{"0x2e starting a token - serialise only",
{Item(".a", Item::kTokenType), {}},
std::nullopt},
{"0x2f starting a token - serialise only",
{Item("/a", Item::kTokenType), {}},
std::nullopt},
{"0x30 starting a token - serialise only",
{Item("0a", Item::kTokenType), {}},
std::nullopt},
{"0x31 starting a token - serialise only",
{Item("1a", Item::kTokenType), {}},
std::nullopt},
{"0x32 starting a token - serialise only",
{Item("2a", Item::kTokenType), {}},
std::nullopt},
{"0x33 starting a token - serialise only",
{Item("3a", Item::kTokenType), {}},
std::nullopt},
{"0x34 starting a token - serialise only",
{Item("4a", Item::kTokenType), {}},
std::nullopt},
{"0x35 starting a token - serialise only",
{Item("5a", Item::kTokenType), {}},
std::nullopt},
{"0x36 starting a token - serialise only",
{Item("6a", Item::kTokenType), {}},
std::nullopt},
{"0x37 starting a token - serialise only",
{Item("7a", Item::kTokenType), {}},
std::nullopt},
{"0x38 starting a token - serialise only",
{Item("8a", Item::kTokenType), {}},
std::nullopt},
{"0x39 starting a token - serialise only",
{Item("9a", Item::kTokenType), {}},
std::nullopt},
{"0x3a starting a token - serialise only",
{Item(":a", Item::kTokenType), {}},
std::nullopt},
{"0x3b starting a token - serialise only",
{Item(";a", Item::kTokenType), {}},
std::nullopt},
{"0x3c starting a token - serialise only",
{Item("<a", Item::kTokenType), {}},
std::nullopt},
{"0x3d starting a token - serialise only",
{Item("=a", Item::kTokenType), {}},
std::nullopt},
{"0x3e starting a token - serialise only",
{Item(">a", Item::kTokenType), {}},
std::nullopt},
{"0x3f starting a token - serialise only",
{Item("?a", Item::kTokenType), {}},
std::nullopt},
{"0x40 starting a token - serialise only",
{Item("@a", Item::kTokenType), {}},
std::nullopt},
{"0x5b starting a token - serialise only",
{Item("[a", Item::kTokenType), {}},
std::nullopt},
{"0x5c starting a token - serialise only",
{Item("\\a", Item::kTokenType), {}},
std::nullopt},
{"0x5d starting a token - serialise only",
{Item("]a", Item::kTokenType), {}},
std::nullopt},
{"0x5e starting a token - serialise only",
{Item("^a", Item::kTokenType), {}},
std::nullopt},
{"0x5f starting a token - serialise only",
{Item("_a", Item::kTokenType), {}},
std::nullopt},
{"0x60 starting a token - serialise only",
{Item("`a", Item::kTokenType), {}},
std::nullopt},
{"0x7b starting a token - serialise only",
{Item("{a", Item::kTokenType), {}},
std::nullopt},
{"0x7c starting a token - serialise only",
{Item("|a", Item::kTokenType), {}},
std::nullopt},
{"0x7d starting a token - serialise only",
{Item("}a", Item::kTokenType), {}},
std::nullopt},
{"0x7e starting a token - serialise only",
{Item("~a", Item::kTokenType), {}},
std::nullopt},
{"0x7f starting a token - serialise only",
{Item("\177a", Item::kTokenType), {}},
std::nullopt},
};
const struct SerializationOnlyListTestCase {
const char* name;
const List expected;
const std::optional<std::string> canonical;
} serialization_only_list_test_cases[] = {
// serialisation-tests/key-generated.json
{"0x00 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param(std::string("a\000a", 3), 1)}}},
std::nullopt},
{"0x01 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\001a", 1)}}},
std::nullopt},
{"0x02 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\002a", 1)}}},
std::nullopt},
{"0x03 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\003a", 1)}}},
std::nullopt},
{"0x04 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\004a", 1)}}},
std::nullopt},
{"0x05 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\005a", 1)}}},
std::nullopt},
{"0x06 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\006a", 1)}}},
std::nullopt},
{"0x07 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\007a", 1)}}},
std::nullopt},
{"0x08 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\010a", 1)}}},
std::nullopt},
{"0x09 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\ta", 1)}}},
std::nullopt},
{"0x0a in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\na", 1)}}},
std::nullopt},
{"0x0b in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\013a", 1)}}},
std::nullopt},
{"0x0c in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\014a", 1)}}},
std::nullopt},
{"0x0d in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\ra", 1)}}},
std::nullopt},
{"0x0e in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\016a", 1)}}},
std::nullopt},
{"0x0f in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\017a", 1)}}},
std::nullopt},
{"0x10 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\020a", 1)}}},
std::nullopt},
{"0x11 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\021a", 1)}}},
std::nullopt},
{"0x12 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\022a", 1)}}},
std::nullopt},
{"0x13 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\023a", 1)}}},
std::nullopt},
{"0x14 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\024a", 1)}}},
std::nullopt},
{"0x15 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\025a", 1)}}},
std::nullopt},
{"0x16 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\026a", 1)}}},
std::nullopt},
{"0x17 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\027a", 1)}}},
std::nullopt},
{"0x18 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\030a", 1)}}},
std::nullopt},
{"0x19 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\031a", 1)}}},
std::nullopt},
{"0x1a in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\032a", 1)}}},
std::nullopt},
{"0x1b in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\033a", 1)}}},
std::nullopt},
{"0x1c in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\034a", 1)}}},
std::nullopt},
{"0x1d in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\035a", 1)}}},
std::nullopt},
{"0x1e in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\036a", 1)}}},
std::nullopt},
{"0x1f in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\037a", 1)}}},
std::nullopt},
{"0x20 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a a", 1)}}},
std::nullopt},
{"0x21 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a!a", 1)}}},
std::nullopt},
{"0x22 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\"a", 1)}}},
std::nullopt},
{"0x23 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a#a", 1)}}},
std::nullopt},
{"0x24 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a$a", 1)}}},
std::nullopt},
{"0x25 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a%a", 1)}}},
std::nullopt},
{"0x26 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a&a", 1)}}},
std::nullopt},
{"0x27 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a'a", 1)}}},
std::nullopt},
{"0x28 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a(a", 1)}}},
std::nullopt},
{"0x29 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a)a", 1)}}},
std::nullopt},
{"0x2b in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a+a", 1)}}},
std::nullopt},
{"0x2c in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a,a", 1)}}},
std::nullopt},
{"0x2f in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a/a", 1)}}},
std::nullopt},
{"0x3a in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a:a", 1)}}},
std::nullopt},
{"0x3b in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a;a", 1)}}},
std::nullopt},
{"0x3c in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a<a", 1)}}},
std::nullopt},
{"0x3d in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a=a", 1)}}},
std::nullopt},
{"0x3e in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a>a", 1)}}},
std::nullopt},
{"0x3f in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a?a", 1)}}},
std::nullopt},
{"0x40 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a@a", 1)}}},
std::nullopt},
{"0x41 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aAa", 1)}}},
std::nullopt},
{"0x42 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aBa", 1)}}},
std::nullopt},
{"0x43 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aCa", 1)}}},
std::nullopt},
{"0x44 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aDa", 1)}}},
std::nullopt},
{"0x45 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aEa", 1)}}},
std::nullopt},
{"0x46 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aFa", 1)}}},
std::nullopt},
{"0x47 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aGa", 1)}}},
std::nullopt},
{"0x48 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aHa", 1)}}},
std::nullopt},
{"0x49 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aIa", 1)}}},
std::nullopt},
{"0x4a in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aJa", 1)}}},
std::nullopt},
{"0x4b in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aKa", 1)}}},
std::nullopt},
{"0x4c in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aLa", 1)}}},
std::nullopt},
{"0x4d in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aMa", 1)}}},
std::nullopt},
{"0x4e in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aNa", 1)}}},
std::nullopt},
{"0x4f in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aOa", 1)}}},
std::nullopt},
{"0x50 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aPa", 1)}}},
std::nullopt},
{"0x51 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aQa", 1)}}},
std::nullopt},
{"0x52 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aRa", 1)}}},
std::nullopt},
{"0x53 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aSa", 1)}}},
std::nullopt},
{"0x54 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aTa", 1)}}},
std::nullopt},
{"0x55 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aUa", 1)}}},
std::nullopt},
{"0x56 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aVa", 1)}}},
std::nullopt},
{"0x57 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aWa", 1)}}},
std::nullopt},
{"0x58 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aXa", 1)}}},
std::nullopt},
{"0x59 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aYa", 1)}}},
std::nullopt},
{"0x5a in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("aZa", 1)}}},
std::nullopt},
{"0x5b in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a[a", 1)}}},
std::nullopt},
{"0x5c in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\\a", 1)}}},
std::nullopt},
{"0x5d in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a]a", 1)}}},
std::nullopt},
{"0x5e in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a^a", 1)}}},
std::nullopt},
{"0x60 in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a`a", 1)}}},
std::nullopt},
{"0x7b in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a{a", 1)}}},
std::nullopt},
{"0x7c in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a|a", 1)}}},
std::nullopt},
{"0x7d in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a}a", 1)}}},
std::nullopt},
{"0x7e in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a~a", 1)}}},
std::nullopt},
{"0x7f in parameterised list key - serialise only",
{{Item("foo", Item::kTokenType), {Param("a\177a", 1)}}},
std::nullopt},
{"0x00 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(std::string("\000a", 2), 1)}}},
std::nullopt},
{"0x01 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\001a", 1)}}},
std::nullopt},
{"0x02 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\002a", 1)}}},
std::nullopt},
{"0x03 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\003a", 1)}}},
std::nullopt},
{"0x04 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\004a", 1)}}},
std::nullopt},
{"0x05 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\005a", 1)}}},
std::nullopt},
{"0x06 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\006a", 1)}}},
std::nullopt},
{"0x07 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\007a", 1)}}},
std::nullopt},
{"0x08 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\010a", 1)}}},
std::nullopt},
{"0x09 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\ta", 1)}}},
std::nullopt},
{"0x0a starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\na", 1)}}},
std::nullopt},
{"0x0b starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\013a", 1)}}},
std::nullopt},
{"0x0c starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\014a", 1)}}},
std::nullopt},
{"0x0d starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\ra", 1)}}},
std::nullopt},
{"0x0e starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\016a", 1)}}},
std::nullopt},
{"0x0f starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\017a", 1)}}},
std::nullopt},
{"0x10 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\020a", 1)}}},
std::nullopt},
{"0x11 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\021a", 1)}}},
std::nullopt},
{"0x12 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\022a", 1)}}},
std::nullopt},
{"0x13 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\023a", 1)}}},
std::nullopt},
{"0x14 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\024a", 1)}}},
std::nullopt},
{"0x15 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\025a", 1)}}},
std::nullopt},
{"0x16 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\026a", 1)}}},
std::nullopt},
{"0x17 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\027a", 1)}}},
std::nullopt},
{"0x18 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\030a", 1)}}},
std::nullopt},
{"0x19 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\031a", 1)}}},
std::nullopt},
{"0x1a starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\032a", 1)}}},
std::nullopt},
{"0x1b starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\033a", 1)}}},
std::nullopt},
{"0x1c starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\034a", 1)}}},
std::nullopt},
{"0x1d starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\035a", 1)}}},
std::nullopt},
{"0x1e starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\036a", 1)}}},
std::nullopt},
{"0x1f starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\037a", 1)}}},
std::nullopt},
{"0x20 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(" a", 1)}}},
std::nullopt},
{"0x21 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("!a", 1)}}},
std::nullopt},
{"0x22 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\"a", 1)}}},
std::nullopt},
{"0x23 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("#a", 1)}}},
std::nullopt},
{"0x24 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("$a", 1)}}},
std::nullopt},
{"0x25 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("%a", 1)}}},
std::nullopt},
{"0x26 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("&a", 1)}}},
std::nullopt},
{"0x27 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("'a", 1)}}},
std::nullopt},
{"0x28 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("(a", 1)}}},
std::nullopt},
{"0x29 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(")a", 1)}}},
std::nullopt},
{"0x2b starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("+a", 1)}}},
std::nullopt},
{"0x2c starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(",a", 1)}}},
std::nullopt},
{"0x2d starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("-a", 1)}}},
std::nullopt},
{"0x2e starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(".a", 1)}}},
std::nullopt},
{"0x2f starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("/a", 1)}}},
std::nullopt},
{"0x30 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("0a", 1)}}},
std::nullopt},
{"0x31 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("1a", 1)}}},
std::nullopt},
{"0x32 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("2a", 1)}}},
std::nullopt},
{"0x33 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("3a", 1)}}},
std::nullopt},
{"0x34 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("4a", 1)}}},
std::nullopt},
{"0x35 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("5a", 1)}}},
std::nullopt},
{"0x36 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("6a", 1)}}},
std::nullopt},
{"0x37 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("7a", 1)}}},
std::nullopt},
{"0x38 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("8a", 1)}}},
std::nullopt},
{"0x39 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("9a", 1)}}},
std::nullopt},
{"0x3a starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(":a", 1)}}},
std::nullopt},
{"0x3b starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(";a", 1)}}},
std::nullopt},
{"0x3c starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("<a", 1)}}},
std::nullopt},
{"0x3d starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("=a", 1)}}},
std::nullopt},
{"0x3e starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param(">a", 1)}}},
std::nullopt},
{"0x3f starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("?a", 1)}}},
std::nullopt},
{"0x40 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("@a", 1)}}},
std::nullopt},
{"0x41 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Aa", 1)}}},
std::nullopt},
{"0x42 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ba", 1)}}},
std::nullopt},
{"0x43 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ca", 1)}}},
std::nullopt},
{"0x44 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Da", 1)}}},
std::nullopt},
{"0x45 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ea", 1)}}},
std::nullopt},
{"0x46 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Fa", 1)}}},
std::nullopt},
{"0x47 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ga", 1)}}},
std::nullopt},
{"0x48 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ha", 1)}}},
std::nullopt},
{"0x49 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ia", 1)}}},
std::nullopt},
{"0x4a starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ja", 1)}}},
std::nullopt},
{"0x4b starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ka", 1)}}},
std::nullopt},
{"0x4c starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("La", 1)}}},
std::nullopt},
{"0x4d starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ma", 1)}}},
std::nullopt},
{"0x4e starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Na", 1)}}},
std::nullopt},
{"0x4f starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Oa", 1)}}},
std::nullopt},
{"0x50 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Pa", 1)}}},
std::nullopt},
{"0x51 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Qa", 1)}}},
std::nullopt},
{"0x52 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ra", 1)}}},
std::nullopt},
{"0x53 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Sa", 1)}}},
std::nullopt},
{"0x54 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ta", 1)}}},
std::nullopt},
{"0x55 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ua", 1)}}},
std::nullopt},
{"0x56 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Va", 1)}}},
std::nullopt},
{"0x57 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Wa", 1)}}},
std::nullopt},
{"0x58 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Xa", 1)}}},
std::nullopt},
{"0x59 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Ya", 1)}}},
std::nullopt},
{"0x5a starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("Za", 1)}}},
std::nullopt},
{"0x5b starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("[a", 1)}}},
std::nullopt},
{"0x5c starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\\a", 1)}}},
std::nullopt},
{"0x5d starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("]a", 1)}}},
std::nullopt},
{"0x5e starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("^a", 1)}}},
std::nullopt},
{"0x5f starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("_a", 1)}}},
std::nullopt},
{"0x60 starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("`a", 1)}}},
std::nullopt},
{"0x7b starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("{a", 1)}}},
std::nullopt},
{"0x7c starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("|a", 1)}}},
std::nullopt},
{"0x7d starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("}a", 1)}}},
std::nullopt},
{"0x7e starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("~a", 1)}}},
std::nullopt},
{"0x7f starting a parameterised list key",
{{Item("foo", Item::kTokenType), {Param("\177a", 1)}}},
std::nullopt},
};
const struct SerializationOnlyDictionaryTestCase {
const char* name;
const Dictionary expected;
const std::optional<std::string> canonical;
} serialization_only_dictionary_test_cases[] = {
// serialisation-tests/key-generated.json
{"0x00 in dictionary key - serialise only",
Dictionary{{{std::string("a\000a", 3), {Integer(1), {}}}}}, std::nullopt},
{"0x01 in dictionary key - serialise only",
Dictionary{{{"a\001a", {Integer(1), {}}}}}, std::nullopt},
{"0x02 in dictionary key - serialise only",
Dictionary{{{"a\002a", {Integer(1), {}}}}}, std::nullopt},
{"0x03 in dictionary key - serialise only",
Dictionary{{{"a\003a", {Integer(1), {}}}}}, std::nullopt},
{"0x04 in dictionary key - serialise only",
Dictionary{{{"a\004a", {Integer(1), {}}}}}, std::nullopt},
{"0x05 in dictionary key - serialise only",
Dictionary{{{"a\005a", {Integer(1), {}}}}}, std::nullopt},
{"0x06 in dictionary key - serialise only",
Dictionary{{{"a\006a", {Integer(1), {}}}}}, std::nullopt},
{"0x07 in dictionary key - serialise only",
Dictionary{{{"a\007a", {Integer(1), {}}}}}, std::nullopt},
{"0x08 in dictionary key - serialise only",
Dictionary{{{"a\010a", {Integer(1), {}}}}}, std::nullopt},
{"0x09 in dictionary key - serialise only",
Dictionary{{{"a\ta", {Integer(1), {}}}}}, std::nullopt},
{"0x0a in dictionary key - serialise only",
Dictionary{{{"a\na", {Integer(1), {}}}}}, std::nullopt},
{"0x0b in dictionary key - serialise only",
Dictionary{{{"a\013a", {Integer(1), {}}}}}, std::nullopt},
{"0x0c in dictionary key - serialise only",
Dictionary{{{"a\014a", {Integer(1), {}}}}}, std::nullopt},
{"0x0d in dictionary key - serialise only",
Dictionary{{{"a\ra", {Integer(1), {}}}}}, std::nullopt},
{"0x0e in dictionary key - serialise only",
Dictionary{{{"a\016a", {Integer(1), {}}}}}, std::nullopt},
{"0x0f in dictionary key - serialise only",
Dictionary{{{"a\017a", {Integer(1), {}}}}}, std::nullopt},
{"0x10 in dictionary key - serialise only",
Dictionary{{{"a\020a", {Integer(1), {}}}}}, std::nullopt},
{"0x11 in dictionary key - serialise only",
Dictionary{{{"a\021a", {Integer(1), {}}}}}, std::nullopt},
{"0x12 in dictionary key - serialise only",
Dictionary{{{"a\022a", {Integer(1), {}}}}}, std::nullopt},
{"0x13 in dictionary key - serialise only",
Dictionary{{{"a\023a", {Integer(1), {}}}}}, std::nullopt},
{"0x14 in dictionary key - serialise only",
Dictionary{{{"a\024a", {Integer(1), {}}}}}, std::nullopt},
{"0x15 in dictionary key - serialise only",
Dictionary{{{"a\025a", {Integer(1), {}}}}}, std::nullopt},
{"0x16 in dictionary key - serialise only",
Dictionary{{{"a\026a", {Integer(1), {}}}}}, std::nullopt},
{"0x17 in dictionary key - serialise only",
Dictionary{{{"a\027a", {Integer(1), {}}}}}, std::nullopt},
{"0x18 in dictionary key - serialise only",
Dictionary{{{"a\030a", {Integer(1), {}}}}}, std::nullopt},
{"0x19 in dictionary key - serialise only",
Dictionary{{{"a\031a", {Integer(1), {}}}}}, std::nullopt},
{"0x1a in dictionary key - serialise only",
Dictionary{{{"a\032a", {Integer(1), {}}}}}, std::nullopt},
{"0x1b in dictionary key - serialise only",
Dictionary{{{"a\033a", {Integer(1), {}}}}}, std::nullopt},
{"0x1c in dictionary key - serialise only",
Dictionary{{{"a\034a", {Integer(1), {}}}}}, std::nullopt},
{"0x1d in dictionary key - serialise only",
Dictionary{{{"a\035a", {Integer(1), {}}}}}, std::nullopt},
{"0x1e in dictionary key - serialise only",
Dictionary{{{"a\036a", {Integer(1), {}}}}}, std::nullopt},
{"0x1f in dictionary key - serialise only",
Dictionary{{{"a\037a", {Integer(1), {}}}}}, std::nullopt},
{"0x20 in dictionary key - serialise only",
Dictionary{{{"a a", {Integer(1), {}}}}}, std::nullopt},
{"0x21 in dictionary key - serialise only",
Dictionary{{{"a!a", {Integer(1), {}}}}}, std::nullopt},
{"0x22 in dictionary key - serialise only",
Dictionary{{{"a\"a", {Integer(1), {}}}}}, std::nullopt},
{"0x23 in dictionary key - serialise only",
Dictionary{{{"a#a", {Integer(1), {}}}}}, std::nullopt},
{"0x24 in dictionary key - serialise only",
Dictionary{{{"a$a", {Integer(1), {}}}}}, std::nullopt},
{"0x25 in dictionary key - serialise only",
Dictionary{{{"a%a", {Integer(1), {}}}}}, std::nullopt},
{"0x26 in dictionary key - serialise only",
Dictionary{{{"a&a", {Integer(1), {}}}}}, std::nullopt},
{"0x27 in dictionary key - serialise only",
Dictionary{{{"a'a", {Integer(1), {}}}}}, std::nullopt},
{"0x28 in dictionary key - serialise only",
Dictionary{{{"a(a", {Integer(1), {}}}}}, std::nullopt},
{"0x29 in dictionary key - serialise only",
Dictionary{{{"a)a", {Integer(1), {}}}}}, std::nullopt},
{"0x2b in dictionary key - serialise only",
Dictionary{{{"a+a", {Integer(1), {}}}}}, std::nullopt},
{"0x2c in dictionary key - serialise only",
Dictionary{{{"a,a", {Integer(1), {}}}}}, std::nullopt},
{"0x2f in dictionary key - serialise only",
Dictionary{{{"a/a", {Integer(1), {}}}}}, std::nullopt},
{"0x3a in dictionary key - serialise only",
Dictionary{{{"a:a", {Integer(1), {}}}}}, std::nullopt},
{"0x3b in dictionary key - serialise only",
Dictionary{{{"a;a", {Integer(1), {}}}}}, std::nullopt},
{"0x3c in dictionary key - serialise only",
Dictionary{{{"a<a", {Integer(1), {}}}}}, std::nullopt},
{"0x3d in dictionary key - serialise only",
Dictionary{{{"a=a", {Integer(1), {}}}}}, std::nullopt},
{"0x3e in dictionary key - serialise only",
Dictionary{{{"a>a", {Integer(1), {}}}}}, std::nullopt},
{"0x3f in dictionary key - serialise only",
Dictionary{{{"a?a", {Integer(1), {}}}}}, std::nullopt},
{"0x40 in dictionary key - serialise only",
Dictionary{{{"a@a", {Integer(1), {}}}}}, std::nullopt},
{"0x41 in dictionary key - serialise only",
Dictionary{{{"aAa", {Integer(1), {}}}}}, std::nullopt},
{"0x42 in dictionary key - serialise only",
Dictionary{{{"aBa", {Integer(1), {}}}}}, std::nullopt},
{"0x43 in dictionary key - serialise only",
Dictionary{{{"aCa", {Integer(1), {}}}}}, std::nullopt},
{"0x44 in dictionary key - serialise only",
Dictionary{{{"aDa", {Integer(1), {}}}}}, std::nullopt},
{"0x45 in dictionary key - serialise only",
Dictionary{{{"aEa", {Integer(1), {}}}}}, std::nullopt},
{"0x46 in dictionary key - serialise only",
Dictionary{{{"aFa", {Integer(1), {}}}}}, std::nullopt},
{"0x47 in dictionary key - serialise only",
Dictionary{{{"aGa", {Integer(1), {}}}}}, std::nullopt},
{"0x48 in dictionary key - serialise only",
Dictionary{{{"aHa", {Integer(1), {}}}}}, std::nullopt},
{"0x49 in dictionary key - serialise only",
Dictionary{{{"aIa", {Integer(1), {}}}}}, std::nullopt},
{"0x4a in dictionary key - serialise only",
Dictionary{{{"aJa", {Integer(1), {}}}}}, std::nullopt},
{"0x4b in dictionary key - serialise only",
Dictionary{{{"aKa", {Integer(1), {}}}}}, std::nullopt},
{"0x4c in dictionary key - serialise only",
Dictionary{{{"aLa", {Integer(1), {}}}}}, std::nullopt},
{"0x4d in dictionary key - serialise only",
Dictionary{{{"aMa", {Integer(1), {}}}}}, std::nullopt},
{"0x4e in dictionary key - serialise only",
Dictionary{{{"aNa", {Integer(1), {}}}}}, std::nullopt},
{"0x4f in dictionary key - serialise only",
Dictionary{{{"aOa", {Integer(1), {}}}}}, std::nullopt},
{"0x50 in dictionary key - serialise only",
Dictionary{{{"aPa", {Integer(1), {}}}}}, std::nullopt},
{"0x51 in dictionary key - serialise only",
Dictionary{{{"aQa", {Integer(1), {}}}}}, std::nullopt},
{"0x52 in dictionary key - serialise only",
Dictionary{{{"aRa", {Integer(1), {}}}}}, std::nullopt},
{"0x53 in dictionary key - serialise only",
Dictionary{{{"aSa", {Integer(1), {}}}}}, std::nullopt},
{"0x54 in dictionary key - serialise only",
Dictionary{{{"aTa", {Integer(1), {}}}}}, std::nullopt},
{"0x55 in dictionary key - serialise only",
Dictionary{{{"aUa", {Integer(1), {}}}}}, std::nullopt},
{"0x56 in dictionary key - serialise only",
Dictionary{{{"aVa", {Integer(1), {}}}}}, std::nullopt},
{"0x57 in dictionary key - serialise only",
Dictionary{{{"aWa", {Integer(1), {}}}}}, std::nullopt},
{"0x58 in dictionary key - serialise only",
Dictionary{{{"aXa", {Integer(1), {}}}}}, std::nullopt},
{"0x59 in dictionary key - serialise only",
Dictionary{{{"aYa", {Integer(1), {}}}}}, std::nullopt},
{"0x5a in dictionary key - serialise only",
Dictionary{{{"aZa", {Integer(1), {}}}}}, std::nullopt},
{"0x5b in dictionary key - serialise only",
Dictionary{{{"a[a", {Integer(1), {}}}}}, std::nullopt},
{"0x5c in dictionary key - serialise only",
Dictionary{{{"a\\a", {Integer(1), {}}}}}, std::nullopt},
{"0x5d in dictionary key - serialise only",
Dictionary{{{"a]a", {Integer(1), {}}}}}, std::nullopt},
{"0x5e in dictionary key - serialise only",
Dictionary{{{"a^a", {Integer(1), {}}}}}, std::nullopt},
{"0x60 in dictionary key - serialise only",
Dictionary{{{"a`a", {Integer(1), {}}}}}, std::nullopt},
{"0x7b in dictionary key - serialise only",
Dictionary{{{"a{a", {Integer(1), {}}}}}, std::nullopt},
{"0x7c in dictionary key - serialise only",
Dictionary{{{"a|a", {Integer(1), {}}}}}, std::nullopt},
{"0x7d in dictionary key - serialise only",
Dictionary{{{"a}a", {Integer(1), {}}}}}, std::nullopt},
{"0x7e in dictionary key - serialise only",
Dictionary{{{"a~a", {Integer(1), {}}}}}, std::nullopt},
{"0x7f in dictionary key - serialise only",
Dictionary{{{"a\177a", {Integer(1), {}}}}}, std::nullopt},
{"0x00 starting a dictionary key - serialise only",
Dictionary{{{std::string("\000a", 2), {Integer(1), {}}}}}, std::nullopt},
{"0x01 starting a dictionary key - serialise only",
Dictionary{{{"\001a", {Integer(1), {}}}}}, std::nullopt},
{"0x02 starting a dictionary key - serialise only",
Dictionary{{{"\002a", {Integer(1), {}}}}}, std::nullopt},
{"0x03 starting a dictionary key - serialise only",
Dictionary{{{"\003a", {Integer(1), {}}}}}, std::nullopt},
{"0x04 starting a dictionary key - serialise only",
Dictionary{{{"\004a", {Integer(1), {}}}}}, std::nullopt},
{"0x05 starting a dictionary key - serialise only",
Dictionary{{{"\005a", {Integer(1), {}}}}}, std::nullopt},
{"0x06 starting a dictionary key - serialise only",
Dictionary{{{"\006a", {Integer(1), {}}}}}, std::nullopt},
{"0x07 starting a dictionary key - serialise only",
Dictionary{{{"\007a", {Integer(1), {}}}}}, std::nullopt},
{"0x08 starting a dictionary key - serialise only",
Dictionary{{{"\010a", {Integer(1), {}}}}}, std::nullopt},
{"0x09 starting a dictionary key - serialise only",
Dictionary{{{"\ta", {Integer(1), {}}}}}, std::nullopt},
{"0x0a starting a dictionary key - serialise only",
Dictionary{{{"\na", {Integer(1), {}}}}}, std::nullopt},
{"0x0b starting a dictionary key - serialise only",
Dictionary{{{"\013a", {Integer(1), {}}}}}, std::nullopt},
{"0x0c starting a dictionary key - serialise only",
Dictionary{{{"\014a", {Integer(1), {}}}}}, std::nullopt},
{"0x0d starting a dictionary key - serialise only",
Dictionary{{{"\ra", {Integer(1), {}}}}}, std::nullopt},
{"0x0e starting a dictionary key - serialise only",
Dictionary{{{"\016a", {Integer(1), {}}}}}, std::nullopt},
{"0x0f starting a dictionary key - serialise only",
Dictionary{{{"\017a", {Integer(1), {}}}}}, std::nullopt},
{"0x10 starting a dictionary key - serialise only",
Dictionary{{{"\020a", {Integer(1), {}}}}}, std::nullopt},
{"0x11 starting a dictionary key - serialise only",
Dictionary{{{"\021a", {Integer(1), {}}}}}, std::nullopt},
{"0x12 starting a dictionary key - serialise only",
Dictionary{{{"\022a", {Integer(1), {}}}}}, std::nullopt},
{"0x13 starting a dictionary key - serialise only",
Dictionary{{{"\023a", {Integer(1), {}}}}}, std::nullopt},
{"0x14 starting a dictionary key - serialise only",
Dictionary{{{"\024a", {Integer(1), {}}}}}, std::nullopt},
{"0x15 starting a dictionary key - serialise only",
Dictionary{{{"\025a", {Integer(1), {}}}}}, std::nullopt},
{"0x16 starting a dictionary key - serialise only",
Dictionary{{{"\026a", {Integer(1), {}}}}}, std::nullopt},
{"0x17 starting a dictionary key - serialise only",
Dictionary{{{"\027a", {Integer(1), {}}}}}, std::nullopt},
{"0x18 starting a dictionary key - serialise only",
Dictionary{{{"\030a", {Integer(1), {}}}}}, std::nullopt},
{"0x19 starting a dictionary key - serialise only",
Dictionary{{{"\031a", {Integer(1), {}}}}}, std::nullopt},
{"0x1a starting a dictionary key - serialise only",
Dictionary{{{"\032a", {Integer(1), {}}}}}, std::nullopt},
{"0x1b starting a dictionary key - serialise only",
Dictionary{{{"\033a", {Integer(1), {}}}}}, std::nullopt},
{"0x1c starting a dictionary key - serialise only",
Dictionary{{{"\034a", {Integer(1), {}}}}}, std::nullopt},
{"0x1d starting a dictionary key - serialise only",
Dictionary{{{"\035a", {Integer(1), {}}}}}, std::nullopt},
{"0x1e starting a dictionary key - serialise only",
Dictionary{{{"\036a", {Integer(1), {}}}}}, std::nullopt},
{"0x1f starting a dictionary key - serialise only",
Dictionary{{{"\037a", {Integer(1), {}}}}}, std::nullopt},
{"0x20 starting a dictionary key - serialise only",
Dictionary{{{" a", {Integer(1), {}}}}}, std::nullopt},
{"0x21 starting a dictionary key - serialise only",
Dictionary{{{"!a", {Integer(1), {}}}}}, std::nullopt},
{"0x22 starting a dictionary key - serialise only",
Dictionary{{{"\"a", {Integer(1), {}}}}}, std::nullopt},
{"0x23 starting a dictionary key - serialise only",
Dictionary{{{"#a", {Integer(1), {}}}}}, std::nullopt},
{"0x24 starting a dictionary key - serialise only",
Dictionary{{{"$a", {Integer(1), {}}}}}, std::nullopt},
{"0x25 starting a dictionary key - serialise only",
Dictionary{{{"%a", {Integer(1), {}}}}}, std::nullopt},
{"0x26 starting a dictionary key - serialise only",
Dictionary{{{"&a", {Integer(1), {}}}}}, std::nullopt},
{"0x27 starting a dictionary key - serialise only",
Dictionary{{{"'a", {Integer(1), {}}}}}, std::nullopt},
{"0x28 starting a dictionary key - serialise only",
Dictionary{{{"(a", {Integer(1), {}}}}}, std::nullopt},
{"0x29 starting a dictionary key - serialise only",
Dictionary{{{")a", {Integer(1), {}}}}}, std::nullopt},
{"0x2b starting a dictionary key - serialise only",
Dictionary{{{"+a", {Integer(1), {}}}}}, std::nullopt},
{"0x2c starting a dictionary key - serialise only",
Dictionary{{{",a", {Integer(1), {}}}}}, std::nullopt},
{"0x2d starting a dictionary key - serialise only",
Dictionary{{{"-a", {Integer(1), {}}}}}, std::nullopt},
{"0x2e starting a dictionary key - serialise only",
Dictionary{{{".a", {Integer(1), {}}}}}, std::nullopt},
{"0x2f starting a dictionary key - serialise only",
Dictionary{{{"/a", {Integer(1), {}}}}}, std::nullopt},
{"0x30 starting a dictionary key - serialise only",
Dictionary{{{"0a", {Integer(1), {}}}}}, std::nullopt},
{"0x31 starting a dictionary key - serialise only",
Dictionary{{{"1a", {Integer(1), {}}}}}, std::nullopt},
{"0x32 starting a dictionary key - serialise only",
Dictionary{{{"2a", {Integer(1), {}}}}}, std::nullopt},
{"0x33 starting a dictionary key - serialise only",
Dictionary{{{"3a", {Integer(1), {}}}}}, std::nullopt},
{"0x34 starting a dictionary key - serialise only",
Dictionary{{{"4a", {Integer(1), {}}}}}, std::nullopt},
{"0x35 starting a dictionary key - serialise only",
Dictionary{{{"5a", {Integer(1), {}}}}}, std::nullopt},
{"0x36 starting a dictionary key - serialise only",
Dictionary{{{"6a", {Integer(1), {}}}}}, std::nullopt},
{"0x37 starting a dictionary key - serialise only",
Dictionary{{{"7a", {Integer(1), {}}}}}, std::nullopt},
{"0x38 starting a dictionary key - serialise only",
Dictionary{{{"8a", {Integer(1), {}}}}}, std::nullopt},
{"0x39 starting a dictionary key - serialise only",
Dictionary{{{"9a", {Integer(1), {}}}}}, std::nullopt},
{"0x3a starting a dictionary key - serialise only",
Dictionary{{{":a", {Integer(1), {}}}}}, std::nullopt},
{"0x3b starting a dictionary key - serialise only",
Dictionary{{{";a", {Integer(1), {}}}}}, std::nullopt},
{"0x3c starting a dictionary key - serialise only",
Dictionary{{{"<a", {Integer(1), {}}}}}, std::nullopt},
{"0x3d starting a dictionary key - serialise only",
Dictionary{{{"=a", {Integer(1), {}}}}}, std::nullopt},
{"0x3e starting a dictionary key - serialise only",
Dictionary{{{">a", {Integer(1), {}}}}}, std::nullopt},
{"0x3f starting a dictionary key - serialise only",
Dictionary{{{"?a", {Integer(1), {}}}}}, std::nullopt},
{"0x40 starting a dictionary key - serialise only",
Dictionary{{{"@a", {Integer(1), {}}}}}, std::nullopt},
{"0x41 starting a dictionary key - serialise only",
Dictionary{{{"Aa", {Integer(1), {}}}}}, std::nullopt},
{"0x42 starting a dictionary key - serialise only",
Dictionary{{{"Ba", {Integer(1), {}}}}}, std::nullopt},
{"0x43 starting a dictionary key - serialise only",
Dictionary{{{"Ca", {Integer(1), {}}}}}, std::nullopt},
{"0x44 starting a dictionary key - serialise only",
Dictionary{{{"Da", {Integer(1), {}}}}}, std::nullopt},
{"0x45 starting a dictionary key - serialise only",
Dictionary{{{"Ea", {Integer(1), {}}}}}, std::nullopt},
{"0x46 starting a dictionary key - serialise only",
Dictionary{{{"Fa", {Integer(1), {}}}}}, std::nullopt},
{"0x47 starting a dictionary key - serialise only",
Dictionary{{{"Ga", {Integer(1), {}}}}}, std::nullopt},
{"0x48 starting a dictionary key - serialise only",
Dictionary{{{"Ha", {Integer(1), {}}}}}, std::nullopt},
{"0x49 starting a dictionary key - serialise only",
Dictionary{{{"Ia", {Integer(1), {}}}}}, std::nullopt},
{"0x4a starting a dictionary key - serialise only",
Dictionary{{{"Ja", {Integer(1), {}}}}}, std::nullopt},
{"0x4b starting a dictionary key - serialise only",
Dictionary{{{"Ka", {Integer(1), {}}}}}, std::nullopt},
{"0x4c starting a dictionary key - serialise only",
Dictionary{{{"La", {Integer(1), {}}}}}, std::nullopt},
{"0x4d starting a dictionary key - serialise only",
Dictionary{{{"Ma", {Integer(1), {}}}}}, std::nullopt},
{"0x4e starting a dictionary key - serialise only",
Dictionary{{{"Na", {Integer(1), {}}}}}, std::nullopt},
{"0x4f starting a dictionary key - serialise only",
Dictionary{{{"Oa", {Integer(1), {}}}}}, std::nullopt},
{"0x50 starting a dictionary key - serialise only",
Dictionary{{{"Pa", {Integer(1), {}}}}}, std::nullopt},
{"0x51 starting a dictionary key - serialise only",
Dictionary{{{"Qa", {Integer(1), {}}}}}, std::nullopt},
{"0x52 starting a dictionary key - serialise only",
Dictionary{{{"Ra", {Integer(1), {}}}}}, std::nullopt},
{"0x53 starting a dictionary key - serialise only",
Dictionary{{{"Sa", {Integer(1), {}}}}}, std::nullopt},
{"0x54 starting a dictionary key - serialise only",
Dictionary{{{"Ta", {Integer(1), {}}}}}, std::nullopt},
{"0x55 starting a dictionary key - serialise only",
Dictionary{{{"Ua", {Integer(1), {}}}}}, std::nullopt},
{"0x56 starting a dictionary key - serialise only",
Dictionary{{{"Va", {Integer(1), {}}}}}, std::nullopt},
{"0x57 starting a dictionary key - serialise only",
Dictionary{{{"Wa", {Integer(1), {}}}}}, std::nullopt},
{"0x58 starting a dictionary key - serialise only",
Dictionary{{{"Xa", {Integer(1), {}}}}}, std::nullopt},
{"0x59 starting a dictionary key - serialise only",
Dictionary{{{"Ya", {Integer(1), {}}}}}, std::nullopt},
{"0x5a starting a dictionary key - serialise only",
Dictionary{{{"Za", {Integer(1), {}}}}}, std::nullopt},
{"0x5b starting a dictionary key - serialise only",
Dictionary{{{"[a", {Integer(1), {}}}}}, std::nullopt},
{"0x5c starting a dictionary key - serialise only",
Dictionary{{{"\\a", {Integer(1), {}}}}}, std::nullopt},
{"0x5d starting a dictionary key - serialise only",
Dictionary{{{"]a", {Integer(1), {}}}}}, std::nullopt},
{"0x5e starting a dictionary key - serialise only",
Dictionary{{{"^a", {Integer(1), {}}}}}, std::nullopt},
{"0x5f starting a dictionary key - serialise only",
Dictionary{{{"_a", {Integer(1), {}}}}}, std::nullopt},
{"0x60 starting a dictionary key - serialise only",
Dictionary{{{"`a", {Integer(1), {}}}}}, std::nullopt},
{"0x7b starting a dictionary key - serialise only",
Dictionary{{{"{a", {Integer(1), {}}}}}, std::nullopt},
{"0x7c starting a dictionary key - serialise only",
Dictionary{{{"|a", {Integer(1), {}}}}}, std::nullopt},
{"0x7d starting a dictionary key - serialise only",
Dictionary{{{"}a", {Integer(1), {}}}}}, std::nullopt},
{"0x7e starting a dictionary key - serialise only",
Dictionary{{{"~a", {Integer(1), {}}}}}, std::nullopt},
{"0x7f starting a dictionary key - serialise only",
Dictionary{{{"\177a", {Integer(1), {}}}}}, std::nullopt},
};
} // namespace
TEST(StructuredHeaderGeneratedTest, ParseItem) {
for (const auto& c : parameterized_item_test_cases) {
if (c.raw) {
SCOPED_TRACE(c.name);
std::string raw{c.raw, c.raw_len};
std::optional<ParameterizedItem> result = ParseItem(raw);
if (c.known_bug) {
if (result == c.expected) {
ADD_FAILURE() << "Test " << c.name
<< " passed but was expected to fail (" << c.known_bug
<< "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, c.expected);
}
}
}
}
TEST(StructuredHeaderGeneratedTest, ParseList) {
for (const auto& c : list_test_cases) {
if (c.raw) {
SCOPED_TRACE(c.name);
std::string raw{c.raw, c.raw_len};
std::optional<List> result = ParseList(raw);
if (c.known_bug) {
if (result == c.expected) {
ADD_FAILURE() << "Test " << c.name
<< " passed but was expected to fail (" << c.known_bug
<< "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, c.expected);
}
}
}
}
TEST(StructuredHeaderGeneratedTest, ParseDictionary) {
for (const auto& c : dictionary_test_cases) {
if (c.raw) {
SCOPED_TRACE(c.name);
std::string raw{c.raw, c.raw_len};
std::optional<Dictionary> result = ParseDictionary(raw);
if (c.known_bug) {
if (result == c.expected) {
ADD_FAILURE() << "Test " << c.name
<< " passed but was expected to fail (" << c.known_bug
<< "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, c.expected);
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializeItem) {
for (const auto& c : parameterized_item_test_cases) {
SCOPED_TRACE(c.name);
if (c.expected) {
std::optional<std::string> result = SerializeItem(*c.expected);
if (c.raw || c.canonical) {
if (c.known_bug) {
if (result == std::string(c.canonical ? c.canonical : c.raw)) {
ADD_FAILURE() << "Test " << c.name
<< " passed serialization but was expected to fail ("
<< c.known_bug << "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, std::string(c.canonical ? c.canonical : c.raw));
}
} else {
EXPECT_FALSE(result.has_value());
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializeList) {
for (const auto& c : list_test_cases) {
SCOPED_TRACE(c.name);
if (c.expected) {
std::optional<std::string> result = SerializeList(*c.expected);
if (c.raw || c.canonical) {
if (c.known_bug) {
if (result == std::string(c.canonical ? c.canonical : c.raw)) {
ADD_FAILURE() << "Test " << c.name
<< " passed serialization but was expected to fail ("
<< c.known_bug << "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, std::string(c.canonical ? c.canonical : c.raw));
}
} else {
EXPECT_FALSE(result.has_value());
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializeDictionary) {
for (const auto& c : dictionary_test_cases) {
SCOPED_TRACE(c.name);
if (c.expected) {
std::optional<std::string> result = SerializeDictionary(*c.expected);
if (c.raw || c.canonical) {
if (c.known_bug) {
if (result == std::string(c.canonical ? c.canonical : c.raw)) {
ADD_FAILURE() << "Test " << c.name
<< " passed serialization but was expected to fail ("
<< c.known_bug << "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, std::string(c.canonical ? c.canonical : c.raw));
}
} else {
EXPECT_FALSE(result.has_value());
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializationOnlyItem) {
for (const auto& c : serialization_only_item_test_cases) {
SCOPED_TRACE(c.name);
std::optional<std::string> result = SerializeItem(c.expected);
EXPECT_EQ(result, c.canonical);
}
}
TEST(StructuredHeaderGeneratedTest, SerializationOnlyList) {
for (const auto& c : serialization_only_list_test_cases) {
SCOPED_TRACE(c.name);
std::optional<std::string> result = SerializeList(c.expected);
EXPECT_EQ(result, c.canonical);
}
}
TEST(StructuredHeaderGeneratedTest, SerializationOnlyDictionary) {
for (const auto& c : serialization_only_dictionary_test_cases) {
SCOPED_TRACE(c.name);
std::optional<std::string> result = SerializeDictionary(c.expected);
EXPECT_EQ(result, c.canonical);
}
}
} // namespace structured_headers
} // namespace quiche