././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/LICENSE 0000644 0000000 0000000 00000002046 00000000000 011103 0 ustar 00 Copyright (c) 2018 Sébastien Eustace
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/README.md 0000644 0000000 0000000 00000003652 00000000000 011361 0 ustar 00 [github_release]: https://img.shields.io/github/release/sdispater/tomlkit.svg?logo=github&logoColor=white
[pypi_version]: https://img.shields.io/pypi/v/tomlkit.svg?logo=python&logoColor=white
[python_versions]: https://img.shields.io/pypi/pyversions/tomlkit.svg?logo=python&logoColor=white
[github_license]: https://img.shields.io/github/license/sdispater/tomlkit.svg?logo=github&logoColor=white
[github_action]: https://github.com/sdispater/tomlkit/actions/workflows/tests.yml/badge.svg
[![GitHub Release][github_release]](https://github.com/sdispater/tomlkit/releases/)
[![PyPI Version][pypi_version]](https://pypi.org/project/tomlkit/)
[![Python Versions][python_versions]](https://pypi.org/project/tomlkit/)
[![License][github_license]](https://github.com/sdispater/tomlkit/blob/master/LICENSE)
[![Tests][github_action]](https://github.com/sdispater/tomlkit/actions/workflows/tests.yml)
# TOML Kit - Style-preserving TOML library for Python
TOML Kit is a **1.0.0-compliant** [TOML](https://toml.io/) library.
It includes a parser that preserves all comments, indentations, whitespace and internal element ordering,
and makes them accessible and editable via an intuitive API.
You can also create new TOML documents from scratch using the provided helpers.
Part of the implementation as been adapted, improved and fixed from [Molten](https://github.com/LeopoldArkham/Molten).
## Usage
See the [documentation](docs/quickstart.rst) for more information.
## Installation
If you are using [Poetry](https://poetry.eustace.io),
add `tomlkit` to your `pyproject.toml` file by using:
```bash
poetry add tomlkit
```
If not, you can use `pip`:
```bash
pip install tomlkit
```
## Running tests
Please clone the repo with submodules with the following command
`git clone --recurse-submodules https://github.com/sdispater/tomlkit.git`.
We need the submodule - `toml-test` for running the tests.
You can run the tests with `poetry run pytest -q tests`
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/pyproject.toml 0000644 0000000 0000000 00000002066 00000000000 013014 0 ustar 00 [tool.poetry]
name = "tomlkit"
version = "0.9.2"
description = "Style preserving TOML library"
authors = ["Sébastien Eustace "]
license = "MIT"
readme = "README.md"
homepage = "https://github.com/sdispater/tomlkit"
repository = "https://github.com/sdispater/tomlkit"
include = [
{ path = "tomlkit/py.typed" },
{ path = "tests", format = "sdist" }
]
[tool.poetry.dependencies]
python = "^3.6"
[tool.poetry.dev-dependencies]
pytest = "^6.2.5"
pytest-cov = "^3.0.0"
PyYAML = "^6.0"
pre-commit = {version = "^2.1.0", python = "^3.6.1"}
mypy = "^0.920"
Sphinx = "^4.3.2"
furo = "^2021.11.23"
[tool.black]
line-length = 88
include = '\.pyi?$'
exclude = '''
/(
\.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| build
| dist
| tests/toml-test
)/
'''
[tool.isort]
profile = "black"
force_single_line = true
atomic = true
lines_after_imports = 2
lines_between_types = 1
known_first_party = ["tomlkit"]
known_third_party = ["pytest"]
[build-system]
requires = ["poetry-core>=1.0.0a9"]
build-backend = "poetry.core.masonry.api"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/__init__.py 0000644 0000000 0000000 00000000000 00000000000 013335 0 ustar 00 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/conftest.py 0000644 0000000 0000000 00000005615 00000000000 013444 0 ustar 00 import os
import pytest
@pytest.fixture
def example():
def _example(name):
with open(
os.path.join(os.path.dirname(__file__), "examples", name + ".toml"),
encoding="utf-8",
) as f:
return f.read()
return _example
@pytest.fixture
def json_example():
def _example(name):
with open(
os.path.join(os.path.dirname(__file__), "examples", "json", name + ".json"),
encoding="utf-8",
) as f:
return f.read()
return _example
@pytest.fixture
def invalid_example():
def _example(name):
with open(
os.path.join(
os.path.dirname(__file__), "examples", "invalid", name + ".toml"
),
encoding="utf-8",
) as f:
return f.read()
return _example
TEST_DIR = os.path.join(os.path.dirname(__file__), "toml-test", "tests")
IGNORED_TESTS = {
"valid": [
"float/inf-and-nan", # Can't compare nan
]
}
def get_tomltest_cases():
dirs = sorted(
f for f in os.listdir(TEST_DIR) if os.path.isdir(os.path.join(TEST_DIR, f))
)
assert dirs == ["invalid", "valid"]
rv = {"invalid_encode": {}}
for d in dirs:
rv[d] = {}
ignored = IGNORED_TESTS.get(d, [])
for root, _, files in os.walk(os.path.join(TEST_DIR, d)):
relpath = os.path.relpath(root, os.path.join(TEST_DIR, d))
if relpath == ".":
relpath = ""
for f in files:
try:
bn, ext = f.rsplit(".", 1)
except ValueError:
bn, ext = f.rsplit("-", 1)
key = f"{relpath}/{bn}"
if ext == "multi":
continue
if key in ignored:
continue
if d == "invalid" and relpath == "encoding":
rv["invalid_encode"][bn] = os.path.join(root, f)
continue
if key not in rv[d]:
rv[d][key] = {}
with open(os.path.join(root, f), encoding="utf-8") as inp:
rv[d][key][ext] = inp.read()
return rv
def pytest_generate_tests(metafunc):
test_list = get_tomltest_cases()
if "valid_case" in metafunc.fixturenames:
metafunc.parametrize(
"valid_case",
test_list["valid"].values(),
ids=list(test_list["valid"].keys()),
)
elif "invalid_decode_case" in metafunc.fixturenames:
metafunc.parametrize(
"invalid_decode_case",
test_list["invalid"].values(),
ids=list(test_list["invalid"].keys()),
)
elif "invalid_encode_case" in metafunc.fixturenames:
metafunc.parametrize(
"invalid_encode_case",
test_list["invalid_encode"].values(),
ids=list(test_list["invalid_encode"].keys()),
)
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/0.5.0.toml 0000644 0000000 0000000 00000001302 00000000000 014405 0 ustar 00 date = 1979-05-27
time = 07:32:00
plus-infinity = +inf
# infinity
sf1 = inf # positive infinity
sf2 = +inf # positive infinity
sf3 = -inf # negative infinity
# not a number
sf4 = nan # actual sNaN/qNaN encoding is implementation specific
sf5 = +nan # same as `nan`
sf6 = -nan # valid, actual encoding is implementation specific
# hexadecimal with prefix `0x`
hex1 = 0xDEADBEEF
hex2 = 0xdeadbeef
hex3 = 0xdead_beef
# octal with prefix `0o`
oct1 = 0o01234567
oct2 = 0o755 # useful for Unix file permissions
# binary with prefix `0b`
bin1 = 0b11010110
# Dotted keys
physical.color = "orange"
physical.shape = "round"
site."google.com" = true
a.b.c = 1
a.b.d = 2
[table]
a.b.c = 1
a.b.d = 2
a.c = 3
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/example.toml 0000644 0000000 0000000 00000001546 00000000000 015412 0 ustar 00 # This is a TOML document. Boom.
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
organization = "GitHub"
bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
dob = 1979-05-27T07:32:00Z # First class dates? Why not?
[database]
server = "192.168.1.1"
ports = [8001, 8001, 8002]
connection_max = 5000
enabled = true
[servers]
# You can indent as you please. Tabs or spaces. TOML don't care.
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
country = "中国" # This should be parsed as UTF-8
[clients]
data = [["gamma", "delta"], [1, 2]] # just an update to make sure parsers support it
# Line breaks are OK when inside arrays
hosts = [
"alpha",
"omega"
]
# Products
[[products]]
name = "Hammer"
sku = 738594937
[[products]]
name = "Nail"
sku = 284758393
color = "gray"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/fruit.toml 0000644 0000000 0000000 00000000302 00000000000 015075 0 ustar 00 [[fruit.blah]]
name = "apple"
[fruit.blah.physical]
color = "red"
shape = "round"
[[fruit.blah]]
name = "banana"
[fruit.blah.physical]
color = "yellow"
shape = "bent"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/hard.toml 0000644 0000000 0000000 00000002575 00000000000 014700 0 ustar 00 # Test file for TOML
# Only this one tries to emulate a TOML file written by a user of the kind of parser writers probably hate
# This part you'll really hate
[the]
test_string = "You'll hate me after this - #" # " Annoying, isn't it?
[the.hard]
test_array = [ "] ", " # "] # ] There you go, parse this!
test_array2 = [ "Test #11 ]proved that", "Experiment #9 was a success" ]
# You didn't think it'd as easy as chucking out the last #, did you?
another_test_string = " Same thing, but with a string #"
harder_test_string = " And when \"'s are in the string, along with # \"" # "and comments are there too"
# Things will get harder
[the.hard."bit#"]
"what?" = "You don't think some user won't do that?"
multi_line_array = [
"]",
# ] Oh yes I did
]
# Each of the following keygroups/key value pairs should produce an error. Uncomment to them to test
#[error] if you didn't catch this, your parser is broken
#string = "Anything other than tabs, spaces and newline after a keygroup or key value pair has ended should produce an error unless it is a comment" like this
#array = [
# "This might most likely happen in multiline arrays",
# Like here,
# "or here,
# and here"
# ] End of array comment, forgot the #
#number = 3.14 pi <--again forgot the #
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/array_duplicate_comma.toml 0000644 0000000 0000000 00000000024 00000000000 021717 0 ustar 00 simple = [ 1 ,, 2 ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/array_leading_comma.toml 0000644 0000000 0000000 00000000021 00000000000 021345 0 ustar 00 simple = [ , 1 ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/array_no_comma.toml 0000644 0000000 0000000 00000000021 00000000000 020356 0 ustar 00 simple = [ 1 2 ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/array_with_invalid_chars.toml 0000644 0000000 0000000 00000000215 00000000000 022434 0 ustar 00 array = [
"This might most likely happen in multiline arrays",
Like here,
"or here,
and here"
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/inline_table_duplicate_comma.toml 0000644 0000000 0000000 00000000033 00000000000 023226 0 ustar 00 simple = { a = 1 ,, b = 2}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/inline_table_leading_comma.toml 0000644 0000000 0000000 00000000025 00000000000 022660 0 ustar 00 simple = { , a = 1 }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/inline_table_no_comma.toml 0000644 0000000 0000000 00000000030 00000000000 021665 0 ustar 00 simple = { a = 1 b = 2}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/inline_table_trailing_comma.toml 0000644 0000000 0000000 00000000025 00000000000 023066 0 ustar 00 simple = { a = 1 , }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/invalid_date.toml 0000644 0000000 0000000 00000000022 00000000000 020014 0 ustar 00 date = 2018-13-33
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/invalid_datetime.toml 0000644 0000000 0000000 00000000037 00000000000 020701 0 ustar 00 datetime = 2018-13-33T23:12:34
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/invalid_number.toml 0000644 0000000 0000000 00000000017 00000000000 020373 0 ustar 00 number = 34"5"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/invalid_time.toml 0000644 0000000 0000000 00000000024 00000000000 020037 0 ustar 00 datetime = 26:61:61
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/key_value_with_trailing_chars.toml 0000644 0000000 0000000 00000000240 00000000000 023463 0 ustar 00 string = "Anything other than tabs, spaces and newline after a keygroup or key value pair has ended should produce an error unless it is a comment" like this
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/newline_in_singleline_string.toml 0000644 0000000 0000000 00000000030 00000000000 023316 0 ustar 00 this = "this
that
more"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/section_with_trailing_characters.toml 0000644 0000000 0000000 00000000072 00000000000 024165 0 ustar 00 [error] if you didn't catch this, your parser is broken
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/string_slash_whitespace_char.toml 0000644 0000000 0000000 00000000046 00000000000 023310 0 ustar 00 invalid_escape = """this \ more"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/invalid/trailing_comma.toml 0000644 0000000 0000000 00000000035 00000000000 020362 0 ustar 00 hello = "world" , # this
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/json/0.5.0.json 0000644 0000000 0000000 00000001244 00000000000 015361 0 ustar 00 {
"date": "1979-05-27",
"time": "07:32:00",
"plus-infinity": Infinity,
"sf1": Infinity,
"sf2": Infinity,
"sf3": -Infinity,
"sf4": NaN,
"sf5": NaN,
"sf6": NaN,
"hex1": 3735928559,
"hex2": 3735928559,
"hex3": 3735928559,
"oct1": 342391,
"oct2": 493,
"bin1": 214,
"physical": {
"color": "orange",
"shape": "round"
},
"site": {
"google.com": true
},
"a": {
"b": {
"c": 1,
"d": 2
}
},
"table": {
"a": {
"b": {
"c": 1,
"d": 2
},
"c": 3
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/json/pyproject.json 0000644 0000000 0000000 00000006414 00000000000 016744 0 ustar 00 {
"tool": {
"poetry": {
"name": "poetry",
"version": "0.11.2",
"description": "Python dependency management and packaging made easy.",
"authors": [
"S\u00e9bastien Eustace "
],
"license": "MIT",
"readme": "README.md",
"homepage": "https://poetry.eustace.io/",
"repository": "https://github.com/sdispater/poet",
"documentation": "https://poetry.eustace.io/docs",
"keywords": [
"packaging",
"dependency",
"poetry"
],
"classifiers": [
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"dependencies": {
"python": "~2.7 || ^3.4",
"cleo": "^0.6.7",
"pytoml": "^0.1.16",
"requests": "^2.18",
"cachy": "^0.2",
"requests-toolbelt": "^0.8.0",
"jsonschema": "^2.6",
"pyrsistent": "^0.14.2",
"pyparsing": "^2.2",
"cachecontrol": {
"version": "^0.12.4",
"extras": [
"filecache"
]
},
"pkginfo": "^1.4",
"html5lib": "^1.0",
"shellingham": "^1.1",
"typing": {
"version": "^3.6",
"python": "~2.7 || ~3.4"
},
"pathlib2": {
"version": "^2.3",
"python": "~2.7 || ~3.4"
},
"virtualenv": {
"version": "^16.0",
"python": "~2.7"
}
},
"dev-dependencies": {
"pytest": "^3.4",
"pytest-cov": "^2.5",
"mkdocs": "^0.17.3",
"pymdown-extensions": "^4.9",
"pygments": "^2.2",
"pytest-mock": "^1.9",
"pygments-github-lexers": "^0.0.5",
"black": {
"version": "^18.3-alpha.0",
"python": "^3.6"
},
"pre-commit": "^1.10",
"tox": "^3.0"
},
"scripts": {
"poetry": "poetry.console:main"
}
},
"black": {
"line-length": 88,
"py36": true,
"include": "\\.pyi?$",
"exclude": "/(\n \\.git\n | \\.hg\n | \\.mypy_cache\n | \\.tox\n | \\.venv\n | _build\n | build\n | dist\n | tests/toml-test\n)/\n"
},
"foo": [
{
"name": "first"
},
{
"name": "second"
},
{
"name": "third"
},
{
"name": "fourth"
}
],
"bar": [
{
"foo": "bar"
}
]
},
"build-system": {
"requires": [
"poetry-core>=1.0.0a3"
],
"build-backend": "poetry.core.masonry.api"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/json/table_names.json 0000644 0000000 0000000 00000000453 00000000000 017174 0 ustar 00 {
"Special \"table\"": {
"foo": "bar"
},
"BJ's Restaurant": {
"account": "dining"
},
"]": {
"foo": 1
},
"[bracket]": {
"bar": 2
},
"a": {
"b.c": {
"d": {
"baz": 3
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/newline_in_strings.toml 0000644 0000000 0000000 00000000065 00000000000 017652 0 ustar 00 this = "this\\nthat\\nmore"
foo = """bar
baz
qux
"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/preserve_quotes_in_string.toml 0000644 0000000 0000000 00000000032 00000000000 021253 0 ustar 00 this = """this
""
more"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/pyproject.toml 0000644 0000000 0000000 00000003712 00000000000 015773 0 ustar 00 [tool.poetry]
name = "poetry"
version = "0.11.2"
description = "Python dependency management and packaging made easy."
authors = [
"Sébastien Eustace "
]
license = "MIT"
readme = "README.md"
homepage = "https://poetry.eustace.io/"
repository = "https://github.com/sdispater/poet"
documentation = "https://poetry.eustace.io/docs"
keywords = ["packaging", "dependency", "poetry"]
classifiers = [
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules"
]
# Requirements
[tool.poetry.dependencies]
python = "~2.7 || ^3.4"
cleo = "^0.6.7"
pytoml = "^0.1.16"
requests = "^2.18"
cachy = "^0.2"
requests-toolbelt = "^0.8.0"
jsonschema = "^2.6"
pyrsistent = "^0.14.2"
pyparsing = "^2.2"
cachecontrol = { version = "^0.12.4", extras = ["filecache"] }
pkginfo = "^1.4"
html5lib = "^1.0"
shellingham = "^1.1"
# The typing module is not in the stdlib in Python 2.7 and 3.4
typing = { version = "^3.6", python = "~2.7 || ~3.4" }
# Use pathlib2 for Python 2.7 and 3.4
pathlib2 = { version = "^2.3", python = "~2.7 || ~3.4" }
# Use virtualenv for Python 2.7 since venv does not exist
virtualenv = { version = "^16.0", python = "~2.7" }
[tool.poetry.dev-dependencies]
pytest = "^3.4"
pytest-cov = "^2.5"
mkdocs = "^0.17.3"
pymdown-extensions = "^4.9"
pygments = "^2.2"
pytest-mock = "^1.9"
pygments-github-lexers = "^0.0.5"
black = { version = "^18.3-alpha.0", python = "^3.6" }
pre-commit = "^1.10"
tox = "^3.0"
[tool.poetry.scripts]
poetry = "poetry.console:main"
[build-system]
requires = ["poetry-core>=1.0.0a3"]
build-backend = "poetry.core.masonry.api"
[tool.black]
line-length = 88
py36 = true
include = '\.pyi?$'
exclude = '''
/(
\.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| build
| dist
| tests/toml-test
)/
'''
[[tool.foo]]
name = 'first'
[[tool.foo]]
name = 'second'
# CS
[[tool.foo]]
name = 'third'
[[tool.foo]]
name = 'fourth'
[[tool.bar]]
foo = "bar"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/sections_with_same_start.toml 0000644 0000000 0000000 00000000144 00000000000 021054 0 ustar 00 [section]
key = "value"
[section2]
"key2" = 12.34
[section2.sub-section]
"key3" = "something"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/string_slash_whitespace_newline.toml 0000644 0000000 0000000 00000000122 00000000000 022401 0 ustar 00 no_whitespace = """hello \
world"""
has_whitespace = """hello \
world"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/table_names.toml 0000644 0000000 0000000 00000000217 00000000000 016223 0 ustar 00 ['Special "table"']
foo = "bar"
["BJ's Restaurant"]
account = "dining"
["]"]
foo = 1
[ "[bracket]" ]
bar = 2
[ a . "b.c" . d ]
baz = 3
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/examples/test.toml 0000644 0000000 0000000 00000003053 00000000000 014731 0 ustar 00 # This is a TOML document.
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # First class dates
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
# Indentation (tabs and/or spaces) is allowed but not required
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
[clients]
data = [ ["gamma", "delta"], [1, 2] ]
# Line breaks are OK when inside arrays
hosts = [
"alpha",
"omega"
]
str_multiline = """
Roses are red
Violets are blue"""
str_quoted = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."
str2 = """
The quick brown \
fox jumps over \
the lazy dog."""
key3 = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""
# What you see is what you get.
winpath = 'C:\Users\nodejs\templates'
winpath2 = '\\ServerX\admin$\system32\'
quoted = 'Tom "Dubs" Preston-Werner'
regex = '<\i\c*\s*>'
regex2 = '''I [dw]on't need \d{2} apples'''
lines = '''
The first newline is
trimmed in raw strings.
All other whitespace
is preserved.
'''
[[fruit]]
name = "apple"
[fruit.physical]
color = "red"
shape = "round"
[[fruit.variety]]
name = "red delicious"
[[fruit.variety]]
name = "granny smith"
[[fruit]]
name = "banana"
[[fruit.variety]]
name = "plantain"
points = [ { x = 1, y = 2, z = 3 }, # This value is so special to me
{ x = 7, y = 8, z = 9 },
{ x = 2, y = 4, z = 8 } ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_api.py 0000644 0000000 0000000 00000022427 00000000000 013427 0 ustar 00 import io
import json
import os
from datetime import date
from datetime import datetime
from datetime import time
from types import MappingProxyType
import pytest
import tomlkit
from tomlkit import dump
from tomlkit import dumps
from tomlkit import load
from tomlkit import loads
from tomlkit import parse
from tomlkit.exceptions import InvalidCharInStringError
from tomlkit.exceptions import InvalidControlChar
from tomlkit.exceptions import InvalidDateError
from tomlkit.exceptions import InvalidDateTimeError
from tomlkit.exceptions import InvalidNumberError
from tomlkit.exceptions import InvalidTimeError
from tomlkit.exceptions import UnexpectedCharError
from tomlkit.items import AoT
from tomlkit.items import Array
from tomlkit.items import Bool
from tomlkit.items import Date
from tomlkit.items import DateTime
from tomlkit.items import Float
from tomlkit.items import InlineTable
from tomlkit.items import Integer
from tomlkit.items import Key
from tomlkit.items import Table
from tomlkit.items import Time
from tomlkit.toml_document import TOMLDocument
def json_serial(obj):
"""JSON serializer for objects not serializable by default json code"""
if isinstance(obj, (datetime, date, time)):
return obj.isoformat()
raise TypeError(f"Type {type(obj)} not serializable")
@pytest.mark.parametrize(
"example_name",
[
"example",
"fruit",
"hard",
"sections_with_same_start",
"pyproject",
"0.5.0",
"test",
"newline_in_strings",
"preserve_quotes_in_string",
"string_slash_whitespace_newline",
"table_names",
],
)
def test_parse_can_parse_valid_toml_files(example, example_name):
assert isinstance(parse(example(example_name)), TOMLDocument)
assert isinstance(loads(example(example_name)), TOMLDocument)
@pytest.mark.parametrize(
"example_name",
[
"example",
"fruit",
"hard",
"sections_with_same_start",
"pyproject",
"0.5.0",
"test",
"newline_in_strings",
"preserve_quotes_in_string",
"string_slash_whitespace_newline",
"table_names",
],
)
def test_load_from_file_object(example_name):
with open(
os.path.join(os.path.dirname(__file__), "examples", example_name + ".toml"),
encoding="utf-8",
) as fp:
assert isinstance(load(fp), TOMLDocument)
@pytest.mark.parametrize("example_name", ["0.5.0", "pyproject", "table_names"])
def test_parsed_document_are_properly_json_representable(
example, json_example, example_name
):
doc = json.loads(json.dumps(parse(example(example_name)), default=json_serial))
json_doc = json.loads(json_example(example_name))
assert doc == json_doc
@pytest.mark.parametrize(
"example_name,error",
[
("section_with_trailing_characters", UnexpectedCharError),
("key_value_with_trailing_chars", UnexpectedCharError),
("array_with_invalid_chars", UnexpectedCharError),
("invalid_number", InvalidNumberError),
("invalid_date", InvalidDateError),
("invalid_time", InvalidTimeError),
("invalid_datetime", InvalidDateTimeError),
("trailing_comma", UnexpectedCharError),
("newline_in_singleline_string", InvalidControlChar),
("string_slash_whitespace_char", InvalidCharInStringError),
("array_no_comma", UnexpectedCharError),
("array_duplicate_comma", UnexpectedCharError),
("array_leading_comma", UnexpectedCharError),
("inline_table_no_comma", UnexpectedCharError),
("inline_table_duplicate_comma", UnexpectedCharError),
("inline_table_leading_comma", UnexpectedCharError),
("inline_table_trailing_comma", UnexpectedCharError),
],
)
def test_parse_raises_errors_for_invalid_toml_files(
invalid_example, error, example_name
):
with pytest.raises(error):
parse(invalid_example(example_name))
@pytest.mark.parametrize(
"example_name",
[
"example",
"fruit",
"hard",
"sections_with_same_start",
"pyproject",
"0.5.0",
"test",
"table_names",
],
)
def test_original_string_and_dumped_string_are_equal(example, example_name):
content = example(example_name)
parsed = parse(content)
assert content == dumps(parsed)
def test_a_raw_dict_can_be_dumped():
s = dumps({"foo": "bar"})
assert s == 'foo = "bar"\n'
def test_mapping_types_can_be_dumped():
x = MappingProxyType({"foo": "bar"})
assert dumps(x) == 'foo = "bar"\n'
def test_dumps_weird_object():
with pytest.raises(TypeError):
dumps(object())
def test_dump_tuple_value_as_array():
x = {"foo": (1, 2)}
assert dumps(x) == "foo = [1, 2]\n"
x = {"foo": ({"a": 1}, {"a": 2})}
assert dumps(x) == "[[foo]]\na = 1\n\n[[foo]]\na = 2\n"
def test_dump_to_file_object():
doc = {"foo": "bar"}
fp = io.StringIO()
dump(doc, fp)
assert fp.getvalue() == 'foo = "bar"\n'
def test_integer():
i = tomlkit.integer("34")
assert isinstance(i, Integer)
def test_float():
i = tomlkit.float_("34.56")
assert isinstance(i, Float)
def test_boolean():
i = tomlkit.boolean("true")
assert isinstance(i, Bool)
def test_date():
dt = tomlkit.date("1979-05-13")
assert isinstance(dt, Date)
with pytest.raises(ValueError):
tomlkit.date("12:34:56")
def test_time():
dt = tomlkit.time("12:34:56")
assert isinstance(dt, Time)
with pytest.raises(ValueError):
tomlkit.time("1979-05-13")
def test_datetime():
dt = tomlkit.datetime("1979-05-13T12:34:56")
assert isinstance(dt, DateTime)
with pytest.raises(ValueError):
tomlkit.time("1979-05-13")
def test_array():
a = tomlkit.array()
assert isinstance(a, Array)
a = tomlkit.array("[1,2, 3]")
assert isinstance(a, Array)
def test_table():
t = tomlkit.table()
assert isinstance(t, Table)
def test_inline_table():
t = tomlkit.inline_table()
assert isinstance(t, InlineTable)
def test_aot():
t = tomlkit.aot()
assert isinstance(t, AoT)
def test_key():
k = tomlkit.key("foo")
assert isinstance(k, Key)
def test_key_value():
k, i = tomlkit.key_value("foo = 12")
assert isinstance(k, Key)
assert isinstance(i, Integer)
def test_string():
s = tomlkit.string('foo "')
assert s.value == 'foo "'
assert s.as_string() == '"foo \\""'
def test_item_dict_to_table():
t = tomlkit.item({"foo": {"bar": "baz"}})
assert t.value == {"foo": {"bar": "baz"}}
assert (
t.as_string()
== """[foo]
bar = "baz"
"""
)
def test_item_mixed_aray():
example = [{"a": 3}, "b", 42]
expected = '[{a = 3}, "b", 42]'
t = tomlkit.item(example)
assert t.as_string().strip() == expected
assert dumps({"x": {"y": example}}).strip() == "[x]\ny = " + expected
def test_build_super_table():
doc = tomlkit.document()
table = tomlkit.table(True)
table.add("bar", {"x": 1})
doc.add("foo", table)
assert doc.as_string() == "[foo.bar]\nx = 1\n"
def test_add_dotted_key():
doc = tomlkit.document()
doc.add(tomlkit.key(["foo", "bar"]), 1)
assert doc.as_string() == "foo.bar = 1\n"
table = tomlkit.table()
table.add(tomlkit.key(["foo", "bar"]), 1)
assert table.as_string() == "foo.bar = 1\n"
@pytest.mark.parametrize(
("raw", "expected"),
[
("true", True),
("false", False),
],
)
def test_value_parses_boolean(raw, expected):
parsed = tomlkit.value(raw)
assert parsed == expected
@pytest.mark.parametrize(
"raw", ["t", "f", "tru", "fals", "test", "friend", "truthy", "falsify"]
)
def test_value_rejects_values_looking_like_bool_at_start(raw):
"""Reproduces https://github.com/sdispater/tomlkit/issues/165"""
with pytest.raises(tomlkit.exceptions.ParseError):
tomlkit.value(raw)
@pytest.mark.parametrize(
"raw",
[
"truee",
"truely",
"true-thoughts",
"true_hip_hop",
],
)
def test_value_rejects_values_having_true_prefix(raw):
"""Values that have ``true`` or ``false`` as prefix but then have additional chars are rejected."""
with pytest.raises(tomlkit.exceptions.ParseError):
tomlkit.value(raw)
@pytest.mark.parametrize(
"raw",
[
"falsee",
"falsely",
"false-ideas",
"false_prophet",
],
)
def test_value_rejects_values_having_false_prefix(raw):
"""Values that have ``true`` or ``false`` as prefix but then have additional chars are rejected."""
with pytest.raises(tomlkit.exceptions.ParseError):
tomlkit.value(raw)
@pytest.mark.parametrize(
"raw",
[
'"foo"1.2',
"truefalse",
"1.0false",
"100true",
"truetrue",
"falsefalse",
"1.2.3.4",
"[][]",
"{a=[][]}[]",
"true[]",
"false{a=1}",
],
)
def test_value_rejects_values_with_appendage(raw):
"""Values that appear valid at the beginning but leave chars unparsed are rejected."""
with pytest.raises(tomlkit.exceptions.ParseError):
tomlkit.value(raw)
def test_create_super_table_with_table():
data = {"foo": {"bar": {"a": 1}}}
assert dumps(data) == "[foo.bar]\na = 1\n"
def test_create_super_table_with_aot():
data = {"foo": {"bar": [{"a": 1}]}}
assert dumps(data) == "[[foo.bar]]\na = 1\n"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_build.py 0000644 0000000 0000000 00000006021 00000000000 013745 0 ustar 00 import datetime
from tomlkit import aot
from tomlkit import array
from tomlkit import comment
from tomlkit import document
from tomlkit import item
from tomlkit import nl
from tomlkit import parse
from tomlkit import table
from tomlkit._utils import _utc
def test_build_example(example):
content = example("example")
doc = document()
doc.add(comment("This is a TOML document. Boom."))
doc.add(nl())
doc.add("title", "TOML Example")
owner = table()
owner.add("name", "Tom Preston-Werner")
owner.add("organization", "GitHub")
owner.add("bio", "GitHub Cofounder & CEO\nLikes tater tots and beer.")
owner.add("dob", datetime.datetime(1979, 5, 27, 7, 32, tzinfo=_utc))
owner["dob"].comment("First class dates? Why not?")
doc.add("owner", owner)
database = table()
database["server"] = "192.168.1.1"
database["ports"] = [8001, 8001, 8002]
database["connection_max"] = 5000
database["enabled"] = True
doc["database"] = database
servers = table()
servers.add(nl())
c = comment(
"You can indent as you please. Tabs or spaces. TOML don't care."
).indent(2)
c.trivia.trail = ""
servers.add(c)
alpha = table()
servers.append("alpha", alpha)
alpha.indent(2)
alpha.add("ip", "10.0.0.1")
alpha.add("dc", "eqdc10")
beta = table()
servers.append("beta", beta)
beta.add("ip", "10.0.0.2")
beta.add("dc", "eqdc10")
beta.add("country", "中国")
beta["country"].comment("This should be parsed as UTF-8")
beta.indent(2)
doc["servers"] = servers
clients = table()
doc.add("clients", clients)
clients["data"] = item([["gamma", "delta"], [1, 2]]).comment(
"just an update to make sure parsers support it"
)
clients.add(nl())
clients.add(comment("Line breaks are OK when inside arrays"))
clients["hosts"] = array(
"""[
"alpha",
"omega"
]"""
)
doc.add(nl())
doc.add(comment("Products"))
products = aot()
doc["products"] = products
hammer = table().indent(2)
hammer["name"] = "Hammer"
hammer["sku"] = 738594937
nail = table().indent(2)
nail["name"] = "Nail"
nail["sku"] = 284758393
nail["color"] = "gray"
products.append(hammer)
products.append(nail)
assert content == doc.as_string()
def test_add_remove():
content = ""
doc = parse(content)
doc.append("foo", "bar")
assert (
doc.as_string()
== """foo = "bar"
"""
)
doc.remove("foo")
assert doc.as_string() == ""
def test_append_table_after_multiple_indices():
content = """
[packages]
foo = "*"
[settings]
enable = false
[packages.bar]
version = "*"
"""
doc = parse(content)
doc.append("foobar", {"name": "John"})
def test_top_level_keys_are_put_at_the_root_of_the_document():
doc = document()
doc.add(comment("Comment"))
doc["foo"] = {"name": "test"}
doc["bar"] = 1
expected = """\
# Comment
bar = 1
[foo]
name = "test"
"""
assert doc.as_string() == expected
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_items.py 0000644 0000000 0000000 00000032160 00000000000 013772 0 ustar 00 import math
import pickle
from datetime import date
from datetime import datetime
from datetime import time
from datetime import timedelta
import pytest
from tomlkit import inline_table
from tomlkit import parse
from tomlkit.api import array
from tomlkit.api import ws
from tomlkit.exceptions import NonExistentKey
from tomlkit.items import Bool
from tomlkit.items import Comment
from tomlkit.items import InlineTable
from tomlkit.items import Integer
from tomlkit.items import KeyType
from tomlkit.items import SingleKey as Key
from tomlkit.items import String
from tomlkit.items import StringType
from tomlkit.items import Table
from tomlkit.items import Trivia
from tomlkit.items import item
from tomlkit.parser import Parser
def test_key_comparison():
k = Key("foo")
assert k == Key("foo")
assert k == "foo"
assert k != "bar"
assert k != 5
def test_items_can_be_appended_to_and_removed_from_a_table():
string = """[table]
"""
parser = Parser(string)
_, table = parser._parse_table()
assert isinstance(table, Table)
assert "" == table.as_string()
table.append(Key("foo"), String(StringType.SLB, "bar", "bar", Trivia(trail="\n")))
assert 'foo = "bar"\n' == table.as_string()
table.append(
Key("baz"),
Integer(34, Trivia(comment_ws=" ", comment="# Integer", trail=""), "34"),
)
assert 'foo = "bar"\nbaz = 34 # Integer' == table.as_string()
table.remove(Key("baz"))
assert 'foo = "bar"\n' == table.as_string()
table.remove(Key("foo"))
assert "" == table.as_string()
with pytest.raises(NonExistentKey):
table.remove(Key("foo"))
def test_items_can_be_appended_to_and_removed_from_an_inline_table():
string = """table = {}
"""
parser = Parser(string)
_, table = parser._parse_item()
assert isinstance(table, InlineTable)
assert "{}" == table.as_string()
table.append(Key("foo"), String(StringType.SLB, "bar", "bar", Trivia(trail="")))
assert '{foo = "bar"}' == table.as_string()
table.append(Key("baz"), Integer(34, Trivia(trail=""), "34"))
assert '{foo = "bar", baz = 34}' == table.as_string()
table.remove(Key("baz"))
assert '{foo = "bar"}' == table.as_string()
table.remove(Key("foo"))
assert "{}" == table.as_string()
with pytest.raises(NonExistentKey):
table.remove(Key("foo"))
def test_inf_and_nan_are_supported(example):
content = example("0.5.0")
doc = parse(content)
assert doc["sf1"] == float("inf")
assert doc["sf2"] == float("inf")
assert doc["sf3"] == float("-inf")
assert math.isnan(doc["sf4"])
assert math.isnan(doc["sf5"])
assert math.isnan(doc["sf6"])
def test_hex_octal_and_bin_integers_are_supported(example):
content = example("0.5.0")
doc = parse(content)
assert doc["hex1"] == 3735928559
assert doc["hex2"] == 3735928559
assert doc["hex3"] == 3735928559
assert doc["oct1"] == 342391
assert doc["oct2"] == 493
assert doc["bin1"] == 214
def test_key_automatically_sets_proper_string_type_if_not_bare():
key = Key("foo.bar")
assert key.t == KeyType.Basic
key = Key("")
assert key.t == KeyType.Basic
def test_array_behaves_like_a_list():
a = item([1, 2])
assert a == [1, 2]
assert a.as_string() == "[1, 2]"
a += [3, 4]
assert a == [1, 2, 3, 4]
assert a.as_string() == "[1, 2, 3, 4]"
del a[2]
assert a == [1, 2, 4]
assert a.as_string() == "[1, 2, 4]"
assert a.pop() == 4
assert a == [1, 2]
assert a.as_string() == "[1, 2]"
a[0] = 4
assert a == [4, 2]
a[-2] = 0
assert a == [0, 2]
del a[-2]
assert a == [2]
assert a.as_string() == "[2]"
a.clear()
assert a == []
assert a.as_string() == "[]"
content = """a = [1, 2,] # Comment
"""
doc = parse(content)
assert doc["a"] == [1, 2]
doc["a"] += [3, 4]
assert doc["a"] == [1, 2, 3, 4]
assert (
doc.as_string()
== """a = [1, 2, 3, 4] # Comment
"""
)
def test_array_multiline():
t = item([1, 2, 3, 4, 5, 6, 7, 8])
t.multiline(True)
expected = """\
[
1,
2,
3,
4,
5,
6,
7,
8,
]"""
assert expected == t.as_string()
t = item([])
t.multiline(True)
assert "[]" == t.as_string()
def test_array_multiline_modify():
doc = parse(
"""\
a = [
"abc"
]"""
)
doc["a"].append("def")
expected = """\
a = [
"abc",
"def"
]"""
assert expected == doc.as_string()
doc["a"].insert(1, "ghi")
expected = """\
a = [
"abc",
"ghi",
"def"
]"""
assert expected == doc.as_string()
def test_append_to_empty_array():
doc = parse("x = [ ]")
doc["x"].append("a")
assert doc.as_string() == 'x = [ "a" ]'
doc = parse("x = [\n]")
doc["x"].append("a")
assert doc.as_string() == 'x = [\n "a"\n]'
def test_modify_array_with_comment():
doc = parse("x = [ # comment\n]")
doc["x"].append("a")
assert doc.as_string() == 'x = [ # comment\n "a"\n]'
doc = parse(
"""\
x = [
"a",
# comment
"b"
]"""
)
doc["x"].insert(1, "c")
expected = """\
x = [
"a",
# comment
"c",
"b"
]"""
assert doc.as_string() == expected
doc = parse(
"""\
x = [
1 # comment
]"""
)
doc["x"].append(2)
assert (
doc.as_string()
== """\
x = [
1, # comment
2
]"""
)
def test_append_dict_to_array():
doc = parse("x = [ ]")
doc["x"].append({"name": "John Doe", "email": "john@doe.com"})
expected = 'x = [ {name = "John Doe",email = "john@doe.com"} ]'
assert doc.as_string() == expected
# Make sure the produced string is valid
assert parse(doc.as_string()) == doc
def test_dicts_are_converted_to_tables():
t = item({"foo": {"bar": "baz"}})
assert (
t.as_string()
== """[foo]
bar = "baz"
"""
)
def test_array_add_line():
t = array()
t.add_line(1, 2, 3, comment="Line 1")
t.add_line(4, 5, 6, comment="Line 2")
t.add_line(7, ws(","), ws(" "), 8, add_comma=False)
t.add_line(indent="")
assert len(t) == 8
assert list(t) == [1, 2, 3, 4, 5, 6, 7, 8]
assert (
t.as_string()
== """[
1, 2, 3, # Line 1
4, 5, 6, # Line 2
7, 8
]"""
)
def test_array_add_line_invalid_value():
t = array()
with pytest.raises(ValueError, match="is not allowed"):
t.add_line(1, ws(" "))
with pytest.raises(ValueError, match="is not allowed"):
t.add_line(Comment(Trivia(" ", comment="test")))
assert len(t) == 0
def test_dicts_are_converted_to_tables_and_keep_order():
t = item(
{
"foo": {
"bar": "baz",
"abc": 123,
"baz": [{"c": 3, "b": 2, "a": 1}],
},
}
)
assert (
t.as_string()
== """[foo]
bar = "baz"
abc = 123
[[foo.baz]]
c = 3
b = 2
a = 1
"""
)
def test_dicts_are_converted_to_tables_and_are_sorted_if_requested():
t = item(
{
"foo": {
"bar": "baz",
"abc": 123,
"baz": [{"c": 3, "b": 2, "a": 1}],
},
},
_sort_keys=True,
)
assert (
t.as_string()
== """[foo]
abc = 123
bar = "baz"
[[foo.baz]]
a = 1
b = 2
c = 3
"""
)
def test_dicts_with_sub_dicts_are_properly_converted():
t = item(
{"foo": {"bar": {"string": "baz"}, "int": 34, "float": 3.14}}, _sort_keys=True
)
assert (
t.as_string()
== """[foo]
float = 3.14
int = 34
[foo.bar]
string = "baz"
"""
)
def test_item_array_of_dicts_converted_to_aot():
a = item({"foo": [{"bar": "baz"}]})
assert (
a.as_string()
== """[[foo]]
bar = "baz"
"""
)
def test_integers_behave_like_ints():
i = item(34)
assert i == 34
assert i.as_string() == "34"
i += 1
assert i == 35
assert i.as_string() == "35"
i -= 2
assert i == 33
assert i.as_string() == "33"
doc = parse("int = +34")
doc["int"] += 1
assert doc.as_string() == "int = +35"
def test_floats_behave_like_floats():
i = item(34.12)
assert i == 34.12
assert i.as_string() == "34.12"
i += 1
assert i == 35.12
assert i.as_string() == "35.12"
i -= 2
assert i == 33.12
assert i.as_string() == "33.12"
doc = parse("float = +34.12")
doc["float"] += 1
assert doc.as_string() == "float = +35.12"
def test_datetimes_behave_like_datetimes():
i = item(datetime(2018, 7, 22, 12, 34, 56))
assert i == datetime(2018, 7, 22, 12, 34, 56)
assert i.as_string() == "2018-07-22T12:34:56"
i += timedelta(days=1)
assert i == datetime(2018, 7, 23, 12, 34, 56)
assert i.as_string() == "2018-07-23T12:34:56"
i -= timedelta(days=2)
assert i == datetime(2018, 7, 21, 12, 34, 56)
assert i.as_string() == "2018-07-21T12:34:56"
doc = parse("dt = 2018-07-22T12:34:56-05:00")
doc["dt"] += timedelta(days=1)
assert doc.as_string() == "dt = 2018-07-23T12:34:56-05:00"
def test_dates_behave_like_dates():
i = item(date(2018, 7, 22))
assert i == date(2018, 7, 22)
assert i.as_string() == "2018-07-22"
i += timedelta(days=1)
assert i == datetime(2018, 7, 23)
assert i.as_string() == "2018-07-23"
i -= timedelta(days=2)
assert i == date(2018, 7, 21)
assert i.as_string() == "2018-07-21"
doc = parse("dt = 2018-07-22 # Comment")
doc["dt"] += timedelta(days=1)
assert doc.as_string() == "dt = 2018-07-23 # Comment"
def test_times_behave_like_times():
i = item(time(12, 34, 56))
assert i == time(12, 34, 56)
assert i.as_string() == "12:34:56"
def test_strings_behave_like_strs():
i = item("foo")
assert i == "foo"
assert i.as_string() == '"foo"'
i += " bar"
assert i == "foo bar"
assert i.as_string() == '"foo bar"'
i += " é"
assert i == "foo bar é"
assert i.as_string() == '"foo bar é"'
doc = parse('str = "foo" # Comment')
doc["str"] += " bar"
assert doc.as_string() == 'str = "foo bar" # Comment'
def test_tables_behave_like_dicts():
t = item({"foo": "bar"})
assert (
t.as_string()
== """foo = "bar"
"""
)
t.update({"bar": "baz"})
assert (
t.as_string()
== """foo = "bar"
bar = "baz"
"""
)
t.update({"bar": "boom"})
assert (
t.as_string()
== """foo = "bar"
bar = "boom"
"""
)
assert t.get("bar") == "boom"
assert t.setdefault("foobar", "fuzz") == "fuzz"
assert (
t.as_string()
== """foo = "bar"
bar = "boom"
foobar = "fuzz"
"""
)
def test_items_are_pickable():
n = item(12)
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == "12"
n = item(12.34)
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == "12.34"
n = item(True)
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == "true"
n = item(datetime(2018, 10, 11, 12, 34, 56, 123456))
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == "2018-10-11T12:34:56.123456"
n = item(date(2018, 10, 11))
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == "2018-10-11"
n = item(time(12, 34, 56, 123456))
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == "12:34:56.123456"
n = item([1, 2, 3])
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == "[1, 2, 3]"
n = item({"foo": "bar"})
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == 'foo = "bar"\n'
n = inline_table()
n["foo"] = "bar"
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == '{foo = "bar"}'
n = item("foo")
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == '"foo"'
n = item([{"foo": "bar"}])
s = pickle.dumps(n)
assert pickle.loads(s).as_string() == 'foo = "bar"\n'
def test_trim_comments_when_building_inline_table():
table = inline_table()
row = parse('foo = "bar" # Comment')
table.update(row)
assert table.as_string() == '{foo = "bar"}'
value = item("foobaz")
value.comment("Another comment")
table.append("baz", value)
assert "# Another comment" not in table.as_string()
assert '{foo = "bar", baz = "foobaz"}' == table.as_string()
def test_deleting_inline_table_elemeent_does_not_leave_trailing_separator():
table = inline_table()
table["foo"] = "bar"
table["baz"] = "boom"
assert '{foo = "bar", baz = "boom"}' == table.as_string()
del table["baz"]
assert '{foo = "bar"}' == table.as_string()
table = inline_table()
table["foo"] = "bar"
del table["foo"]
table["baz"] = "boom"
assert '{baz = "boom"}' == table.as_string()
def test_booleans_comparison():
boolean = Bool(True, Trivia())
assert boolean
boolean = Bool(False, Trivia())
assert not boolean
s = """[foo]
value = false
"""
content = parse(s)
assert {"foo": {"value": False}} == content
assert {"value": False} == content["foo"]
def test_table_copy():
table = item({"foo": "bar"})
table_copy = table.copy()
assert isinstance(table_copy, Table)
table["foo"] = "baz"
assert table_copy["foo"] == "bar"
assert table_copy.as_string() == 'foo = "bar"\n'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_parser.py 0000644 0000000 0000000 00000001702 00000000000 014143 0 ustar 00 import pytest
from tomlkit.exceptions import EmptyTableNameError
from tomlkit.exceptions import InternalParserError
from tomlkit.exceptions import UnexpectedCharError
from tomlkit.items import StringType
from tomlkit.parser import Parser
def test_parser_should_raise_an_internal_error_if_parsing_wrong_type_of_string():
parser = Parser('"foo"')
with pytest.raises(InternalParserError) as e:
parser._parse_string(StringType.SLL)
assert e.value.line == 1
assert e.value.col == 0
def test_parser_should_raise_an_error_for_empty_tables():
content = """
[one]
[]
"""
parser = Parser(content)
with pytest.raises(EmptyTableNameError) as e:
parser.parse()
assert e.value.line == 3
assert e.value.col == 1
def test_parser_should_raise_an_error_if_equal_not_found():
content = """[foo]
a {c = 1, d = 2}
"""
parser = Parser(content)
with pytest.raises(UnexpectedCharError):
parser.parse()
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_toml_document.py 0000644 0000000 0000000 00000040366 00000000000 015531 0 ustar 00 import copy
import json
import pickle
from datetime import datetime
from textwrap import dedent
import pytest
import tomlkit
from tomlkit import parse
from tomlkit import ws
from tomlkit._utils import _utc
from tomlkit.exceptions import NonExistentKey
def test_document_is_a_dict(example):
content = example("example")
doc = parse(content)
assert isinstance(doc, dict)
assert "owner" in doc
# owner
owner = doc["owner"]
assert doc.get("owner") == owner
assert isinstance(owner, dict)
assert "name" in owner
assert owner["name"] == "Tom Preston-Werner"
assert owner["organization"] == "GitHub"
assert owner["bio"] == "GitHub Cofounder & CEO\nLikes tater tots and beer."
assert owner["dob"] == datetime(1979, 5, 27, 7, 32, tzinfo=_utc)
# database
database = doc["database"]
assert isinstance(database, dict)
assert database["server"] == "192.168.1.1"
assert database["ports"] == [8001, 8001, 8002]
assert database["connection_max"] == 5000
assert database["enabled"] is True
# servers
servers = doc["servers"]
assert isinstance(servers, dict)
alpha = servers["alpha"]
assert servers.get("alpha") == alpha
assert isinstance(alpha, dict)
assert alpha["ip"] == "10.0.0.1"
assert alpha["dc"] == "eqdc10"
beta = servers["beta"]
assert isinstance(beta, dict)
assert beta["ip"] == "10.0.0.2"
assert beta["dc"] == "eqdc10"
assert beta["country"] == "中国"
# clients
clients = doc["clients"]
assert isinstance(clients, dict)
data = clients["data"]
assert isinstance(data, list)
assert data[0] == ["gamma", "delta"]
assert data[1] == [1, 2]
assert clients["hosts"] == ["alpha", "omega"]
# Products
products = doc["products"]
assert isinstance(products, list)
hammer = products[0]
assert hammer == {"name": "Hammer", "sku": 738594937}
nail = products[1]
assert nail["name"] == "Nail"
assert nail["sku"] == 284758393
assert nail["color"] == "gray"
nail["color"] = "black"
assert nail["color"] == "black"
assert doc["products"][1]["color"] == "black"
assert nail.get("color") == "black"
content = """foo = "bar"
"""
doc = parse(content)
doc.update({"bar": "baz"})
assert (
doc.as_string()
== """foo = "bar"
bar = "baz"
"""
)
doc.update({"bar": "boom"})
assert (
doc.as_string()
== """foo = "bar"
bar = "boom"
"""
)
assert doc.setdefault("bar", "waldo") == "boom"
assert (
doc.as_string()
== """foo = "bar"
bar = "boom"
"""
)
assert doc.setdefault("thud", "waldo") == "waldo"
assert (
doc.as_string()
== """foo = "bar"
bar = "boom"
thud = "waldo"
"""
)
def test_toml_document_without_super_tables():
content = """[tool.poetry]
name = "foo"
"""
doc = parse(content)
assert "tool" in doc
assert "poetry" in doc["tool"]
assert doc["tool"]["poetry"]["name"] == "foo"
doc["tool"]["poetry"]["name"] = "bar"
assert (
doc.as_string()
== """[tool.poetry]
name = "bar"
"""
)
d = {}
d.update(doc)
assert "tool" in d
def test_toml_document_with_dotted_keys(example):
content = example("0.5.0")
doc = parse(content)
assert "physical" in doc
assert "color" in doc["physical"]
assert "shape" in doc["physical"]
assert doc["physical"]["color"] == "orange"
assert doc["physical"]["shape"] == "round"
assert "site" in doc
assert "google.com" in doc["site"]
assert doc["site"]["google.com"]
assert doc["a"]["b"]["c"] == 1
assert doc["a"]["b"]["d"] == 2
def test_toml_document_super_table_with_different_sub_sections(example):
content = example("pyproject")
doc = parse(content)
tool = doc["tool"]
assert "poetry" in tool
assert "black" in tool
def test_adding_an_element_to_existing_table_with_ws_remove_ws():
content = """[foo]
[foo.bar]
"""
doc = parse(content)
doc["foo"]["int"] = 34
expected = """[foo]
int = 34
[foo.bar]
"""
assert expected == doc.as_string()
def test_document_with_aot_after_sub_tables():
content = """[foo.bar]
name = "Bar"
[foo.bar.baz]
name = "Baz"
[[foo.bar.tests]]
name = "Test 1"
"""
doc = parse(content)
assert doc["foo"]["bar"]["tests"][0]["name"] == "Test 1"
def test_document_with_new_sub_table_after_other_table():
content = """[foo]
name = "Bar"
[bar]
name = "Baz"
[foo.baz]
name = "Test 1"
"""
doc = parse(content)
assert doc["foo"]["name"] == "Bar"
assert doc["bar"]["name"] == "Baz"
assert doc["foo"]["baz"]["name"] == "Test 1"
assert doc.as_string() == content
def test_document_with_new_sub_table_after_other_table_delete():
content = """[foo]
name = "Bar"
[bar]
name = "Baz"
[foo.baz]
name = "Test 1"
"""
doc = parse(content)
del doc["foo"]
assert (
doc.as_string()
== """[bar]
name = "Baz"
"""
)
def test_document_with_new_sub_table_after_other_table_replace():
content = """[foo]
name = "Bar"
[bar]
name = "Baz"
[foo.baz]
name = "Test 1"
"""
doc = parse(content)
doc["foo"] = {"a": "b"}
assert (
doc.as_string()
== """[foo]
a = "b"
[bar]
name = "Baz"
"""
)
def test_inserting_after_element_with_no_new_line_adds_a_new_line():
doc = parse("foo = 10")
doc["bar"] = 11
expected = """foo = 10
bar = 11
"""
assert expected == doc.as_string()
doc = parse("# Comment")
doc["bar"] = 11
expected = """# Comment
bar = 11
"""
assert expected == doc.as_string()
def test_inserting_after_deletion():
doc = parse("foo = 10\n")
del doc["foo"]
doc["bar"] = 11
expected = """bar = 11
"""
assert expected == doc.as_string()
def test_toml_document_with_dotted_keys_inside_table(example):
content = example("0.5.0")
doc = parse(content)
t = doc["table"]
assert "a" in t
assert t["a"]["b"]["c"] == 1
assert t["a"]["b"]["d"] == 2
assert t["a"]["c"] == 3
def test_toml_document_with_super_aot_after_super_table(example):
content = example("pyproject")
doc = parse(content)
aot = doc["tool"]["foo"]
assert isinstance(aot, list)
first = aot[0]
assert first["name"] == "first"
second = aot[1]
assert second["name"] == "second"
def test_toml_document_has_always_a_new_line_after_table_header():
content = """[section.sub]"""
doc = parse(content)
assert doc.as_string() == """[section.sub]"""
doc["section"]["sub"]["foo"] = "bar"
assert (
doc.as_string()
== """[section.sub]
foo = "bar"
"""
)
del doc["section"]["sub"]["foo"]
assert doc.as_string() == """[section.sub]"""
def test_toml_document_is_pickable(example):
content = example("example")
doc = parse(content)
assert pickle.loads(pickle.dumps(doc)).as_string() == content
def test_toml_document_set_super_table_element():
content = """[site.user]
name = "John"
"""
doc = parse(content)
doc["site"]["user"] = "Tom"
assert (
doc.as_string()
== """[site]
user = "Tom"
"""
)
def test_toml_document_can_be_copied():
content = "[foo]\nbar=1"
doc = parse(content)
doc = copy.copy(doc)
assert (
doc.as_string()
== """[foo]
bar=1"""
)
assert doc == {"foo": {"bar": 1}}
assert doc["foo"]["bar"] == 1
assert json.loads(json.dumps(doc)) == {"foo": {"bar": 1}}
doc = parse(content)
doc = doc.copy()
assert (
doc.as_string()
== """[foo]
bar=1"""
)
assert doc == {"foo": {"bar": 1}}
assert doc["foo"]["bar"] == 1
assert json.loads(json.dumps(doc)) == {"foo": {"bar": 1}}
def test_getting_inline_table_is_still_an_inline_table():
content = """\
[tool.poetry]
name = "foo"
[tool.poetry.dependencies]
[tool.poetry.dev-dependencies]
"""
doc = parse(content)
poetry_section = doc["tool"]["poetry"]
dependencies = poetry_section["dependencies"]
dependencies["foo"] = tomlkit.inline_table()
dependencies["foo"]["version"] = "^2.0"
dependencies["foo"]["source"] = "local"
dependencies["bar"] = tomlkit.inline_table()
dependencies["bar"]["version"] = "^3.0"
dependencies["bar"]["source"] = "remote"
dev_dependencies = poetry_section["dev-dependencies"]
dev_dependencies["baz"] = tomlkit.inline_table()
dev_dependencies["baz"]["version"] = "^4.0"
dev_dependencies["baz"]["source"] = "other"
assert (
"""\
[tool.poetry]
name = "foo"
[tool.poetry.dependencies]
foo = {version = "^2.0", source = "local"}
bar = {version = "^3.0", source = "remote"}
[tool.poetry.dev-dependencies]
baz = {version = "^4.0", source = "other"}
"""
== doc.as_string()
)
def test_declare_sub_table_with_intermediate_table():
content = """
[students]
tommy = 87
mary = 66
[subjects]
maths = "maths"
english = "english"
[students.bob]
score = 91
"""
doc = parse(content)
assert {"tommy": 87, "mary": 66, "bob": {"score": 91}} == doc["students"]
assert {"tommy": 87, "mary": 66, "bob": {"score": 91}} == doc.get("students")
def test_values_can_still_be_set_for_out_of_order_tables():
content = """
[a.a]
key = "value"
[a.b]
[a.a.c]
"""
doc = parse(content)
doc["a"]["a"]["key"] = "new_value"
assert "new_value" == doc["a"]["a"]["key"]
expected = """
[a.a]
key = "new_value"
[a.b]
[a.a.c]
"""
assert expected == doc.as_string()
doc["a"]["a"]["bar"] = "baz"
expected = """
[a.a]
key = "new_value"
bar = "baz"
[a.b]
[a.a.c]
"""
assert expected == doc.as_string()
del doc["a"]["a"]["key"]
expected = """
[a.a]
bar = "baz"
[a.b]
[a.a.c]
"""
assert expected == doc.as_string()
with pytest.raises(NonExistentKey):
doc["a"]["a"]["key"]
with pytest.raises(NonExistentKey):
del doc["a"]["a"]["key"]
def test_out_of_order_table_can_add_multiple_tables():
content = """\
[a.a.b]
x = 1
[foo]
bar = 1
[a.a.c]
y = 1
[a.a.d]
z = 1
"""
doc = parse(content)
assert doc.as_string() == content
assert doc["a"]["a"] == {"b": {"x": 1}, "c": {"y": 1}, "d": {"z": 1}}
def test_out_of_order_tables_are_still_dicts():
content = """
[a.a]
key = "value"
[a.b]
[a.a.c]
"""
doc = parse(content)
assert isinstance(doc["a"], dict)
assert isinstance(doc["a"]["a"], dict)
table = doc["a"]["a"]
assert "key" in table
assert "c" in table
assert "value" == table.get("key")
assert {} == table.get("c")
assert table.get("d") is None
assert "foo" == table.get("d", "foo")
assert "bar" == table.setdefault("d", "bar")
assert "bar" == table["d"]
assert "value" == table.pop("key")
assert "key" not in table
assert "baz" == table.pop("missing", default="baz")
with pytest.raises(KeyError):
table.pop("missing")
def test_string_output_order_is_preserved_for_out_of_order_tables():
content = """
[tool.poetry]
name = "foo"
[tool.poetry.dependencies]
python = "^3.6"
bar = "^1.0"
[build-system]
requires = ["poetry-core"]
backend = "poetry.core.masonry.api"
[tool.other]
a = "b"
"""
doc = parse(content)
constraint = tomlkit.inline_table()
constraint["version"] = "^1.0"
doc["tool"]["poetry"]["dependencies"]["bar"] = constraint
assert "^1.0" == doc["tool"]["poetry"]["dependencies"]["bar"]["version"]
expected = """
[tool.poetry]
name = "foo"
[tool.poetry.dependencies]
python = "^3.6"
bar = {version = "^1.0"}
[build-system]
requires = ["poetry-core"]
backend = "poetry.core.masonry.api"
[tool.other]
a = "b"
"""
assert expected == doc.as_string()
def test_updating_nested_value_keeps_correct_indent():
content = """
[Key1]
[key1.Key2]
Value1 = 10
Value2 = 30
"""
doc = parse(content)
doc["key1"]["Key2"]["Value1"] = 20
expected = """
[Key1]
[key1.Key2]
Value1 = 20
Value2 = 30
"""
assert doc.as_string() == expected
def test_repr():
content = """
namespace.key1 = "value1"
namespace.key2 = "value2"
[tool.poetry.foo]
option = "test"
[tool.poetry.bar]
option = "test"
inline = {"foo" = "bar", "bar" = "baz"}
"""
doc = parse(content)
assert (
repr(doc)
== "{'namespace': {'key1': 'value1', 'key2': 'value2'}, 'tool': {'poetry': {'foo': {'option': 'test'}, 'bar': {'option': 'test', 'inline': {'foo': 'bar', 'bar': 'baz'}}}}}"
)
assert (
repr(doc["tool"])
== "{'poetry': {'foo': {'option': 'test'}, 'bar': {'option': 'test', 'inline': {'foo': 'bar', 'bar': 'baz'}}}}"
)
assert repr(doc["namespace"]) == "{'key1': 'value1', 'key2': 'value2'}"
def test_deepcopy():
content = """
[tool]
name = "foo"
[tool.project.section]
option = "test"
"""
doc = parse(content)
copied = copy.deepcopy(doc)
assert copied == doc
assert copied.as_string() == content
def test_move_table():
content = """a = 1
[x]
a = 1
[y]
b = 1
"""
doc = parse(content)
doc["a"] = doc.pop("x")
doc["z"] = doc.pop("y")
assert (
doc.as_string()
== """[a]
a = 1
[z]
b = 1
"""
)
def test_replace_with_table():
content = """a = 1
b = 2
c = 3
"""
doc = parse(content)
doc["b"] = {"foo": "bar"}
assert (
doc.as_string()
== """a = 1
c = 3
[b]
foo = "bar"
"""
)
def test_replace_table_with_value():
content = """[foo]
a = 1
[bar]
b = 2
"""
doc = parse(content)
doc["bar"] = 42
assert (
doc.as_string()
== """bar = 42
[foo]
a = 1
"""
)
def test_replace_preserve_sep():
content = """a = 1
[foo]
b = "what"
"""
doc = parse(content)
doc["a"] = 2
doc["foo"]["b"] = "how"
assert (
doc.as_string()
== """a = 2
[foo]
b = "how"
"""
)
def test_replace_with_table_of_nested():
example = """\
[a]
x = 1
[a.b]
y = 2
"""
doc = parse(dedent(example))
doc["c"] = doc.pop("a")
expected = """\
[c]
x = 1
[c.b]
y = 2
"""
assert doc.as_string().strip() == dedent(expected).strip()
def test_replace_with_aot_of_nested():
example = """\
[a]
x = 1
[[a.b]]
y = 2
[[a.b]]
[a.b.c]
z = 2
[[a.b.c.d]]
w = 2
"""
doc = parse(dedent(example))
doc["f"] = doc.pop("a")
expected = """\
[f]
x = 1
[[f.b]]
y = 2
[[f.b]]
[f.b.c]
z = 2
[[f.b.c.d]]
w = 2
"""
assert doc.as_string().strip() == dedent(expected).strip()
def test_replace_with_comment():
content = 'a = "1"'
doc = parse(content)
a = tomlkit.item(int(doc["a"]))
a.comment("`a` should be an int")
doc["a"] = a
expected = "a = 1 # `a` should be an int"
assert doc.as_string() == expected
content = 'a = "1, 2, 3"'
doc = parse(content)
a = tomlkit.array()
a.comment("`a` should be an array")
for x in doc["a"].split(","):
a.append(int(x.strip()))
doc["a"] = a
expected = "a = [1, 2, 3] # `a` should be an array"
assert doc.as_string() == expected
doc = parse(content)
a = tomlkit.inline_table()
a.comment("`a` should be an inline-table")
for x in doc["a"].split(","):
i = int(x.strip())
a.append(chr(ord("a") + i - 1), i)
doc["a"] = a
expected = "a = {a = 1, b = 2, c = 3} # `a` should be an inline-table"
assert doc.as_string() == expected
def test_no_spurious_whitespaces():
content = """\
[x]
a = 1
[y]
b = 2
"""
doc = parse(dedent(content))
doc["z"] = doc.pop("y")
expected = """\
[x]
a = 1
[z]
b = 2
"""
assert doc.as_string() == dedent(expected)
doc["w"] = {"c": 3}
expected = """\
[x]
a = 1
[z]
b = 2
[w]
c = 3
"""
assert doc.as_string() == dedent(expected)
doc = parse(dedent(content))
del doc["x"]
doc["z"] = {"c": 3}
expected = """\
[y]
b = 2
[z]
c = 3
"""
assert doc.as_string() == dedent(expected)
def test_pop_add_whitespace_and_insert_table_work_togheter():
content = """\
a = 1
b = 2
c = 3
d = 4
"""
doc = parse(dedent(content))
doc.pop("a")
doc.pop("b")
doc.add(ws("\n"))
doc["e"] = {"foo": "bar"}
expected = """\
c = 3
d = 4
[e]
foo = "bar"
"""
text = doc.as_string()
out = parse(text)
assert out["d"] == 4
assert "d" not in out["e"]
assert text == dedent(expected)
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_toml_file.py 0000644 0000000 0000000 00000003146 00000000000 014625 0 ustar 00 import os
from tomlkit.toml_document import TOMLDocument
from tomlkit.toml_file import TOMLFile
def test_toml_file(example):
original_content = example("example")
toml_file = os.path.join(os.path.dirname(__file__), "examples", "example.toml")
toml = TOMLFile(toml_file)
content = toml.read()
assert isinstance(content, TOMLDocument)
assert content["owner"]["organization"] == "GitHub"
toml.write(content)
try:
with open(toml_file, encoding="utf-8") as f:
assert original_content == f.read()
finally:
with open(toml_file, "w", encoding="utf-8", newline="") as f:
assert f.write(original_content)
def test_keep_old_eol(tmpdir):
toml_path = str(tmpdir / "pyproject.toml")
with open(toml_path, "wb+") as f:
f.write(b"a = 1\r\nb = 2\r\n")
f = TOMLFile(toml_path)
content = f.read()
content["b"] = 3
f.write(content)
with open(toml_path, "rb") as f:
assert f.read() == b"a = 1\r\nb = 3\r\n"
def test_keep_old_eol_2(tmpdir):
toml_path = str(tmpdir / "pyproject.toml")
with open(toml_path, "wb+") as f:
f.write(b"a = 1\nb = 2\n")
f = TOMLFile(toml_path)
content = f.read()
content["b"] = 3
f.write(content)
with open(toml_path, "rb") as f:
assert f.read() == b"a = 1\nb = 3\n"
def test_mixed_eol(tmpdir):
toml_path = str(tmpdir / "pyproject.toml")
with open(toml_path, "wb+") as f:
f.write(b"a = 1\r\nrb = 2\n")
f = TOMLFile(toml_path)
f.write(f.read())
with open(toml_path, "rb") as f:
assert f.read() == b"a = 1\r\nrb = 2\n"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_toml_spec_tests.py 0000644 0000000 0000000 00000006632 00000000000 016065 0 ustar 00 import json
import os
import re
import pytest
import yaml
from tomlkit import parse
from tomlkit._compat import decode
from tomlkit._utils import parse_rfc3339
from tomlkit.exceptions import TOMLKitError
IGNORED_TESTS = []
# The following tests trigger a RecursionError
IGNORED_TESTS += ["qa-array-inline-nested-1000", "qa-table-inline-nested-1000"]
# The following tests don't work due to time microseconds precision of the tests
IGNORED_TESTS += ["spec-date-time-6", "spec-date-time-local-2", "spec-time-2"]
# The following tests don't work due to nan always comparing to False
IGNORED_TESTS += ["spec-float-13", "spec-float-14", "spec-float-15"]
# The following tests don't work due to issues with th epyyaml library
IGNORED_TESTS += ["spec-key-value-pair-9"]
SPEC_TEST_DIR = os.path.join(os.path.dirname(__file__), "toml-spec-tests")
VALID_TESTS = sorted(
os.path.basename(f).rsplit(".", 1)[0]
for f in os.listdir(os.path.join(SPEC_TEST_DIR, "values"))
if os.path.basename(f).rsplit(".", 1)[0] not in IGNORED_TESTS
)
ERROR_TESTS = sorted(
os.path.basename(f).rsplit(".", 1)[0]
for f in os.listdir(os.path.join(SPEC_TEST_DIR, "errors"))
if os.path.basename(f).rsplit(".", 1)[0] not in IGNORED_TESTS
)
def to_bool(s):
assert s in ["true", "false"]
return s == "true"
stypes = {
"string": str,
"bool": to_bool,
"integer": int,
"float": float,
"datetime": parse_rfc3339,
"datetime-local": parse_rfc3339,
"date": parse_rfc3339,
"time": parse_rfc3339,
}
loader = yaml.SafeLoader
loader.add_implicit_resolver(
"tag:yaml.org,2002:float",
re.compile(
"""^(?:
[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+]?[0-9]+)?
|[-+]?(?:[0-9][0-9_]*)(?:[eE][-+]?[0-9]+)
|\\.[0-9_]+(?:[eE][-+][0-9]+)?
|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*
|[-+]?\\.(?:inf|Inf|INF)
|\\.(?:nan|NaN|NAN))$""",
re.X,
),
list("-+0123456789."),
)
def untag(value):
if isinstance(value, list):
return [untag(i) for i in value]
elif "type" in value and "value" in value and len(value) == 2:
if value["type"] in stypes:
val = decode(value["value"])
return stypes[value["type"]](val)
elif value["type"] == "array":
return [untag(i) for i in value["value"]]
else:
raise Exception("Unsupported type {}".format(value["type"]))
else:
return {k: untag(v) for k, v in value.items()}
@pytest.mark.parametrize("test", VALID_TESTS)
def test_valid_decode(test):
toml_file = os.path.join(SPEC_TEST_DIR, "values", test + ".toml")
yaml_file = os.path.join(SPEC_TEST_DIR, "values", test + ".yaml")
with open(toml_file, encoding="utf-8") as f:
toml_content = f.read()
toml_val = parse(toml_content)
if os.path.exists(yaml_file):
with open(yaml_file, encoding="utf-8") as f:
yaml_val = yaml.load(f.read(), Loader=loader)
else:
with open(
os.path.join(SPEC_TEST_DIR, "values", test + ".json"), encoding="utf-8"
) as f:
yaml_val = untag(json.loads(f.read()))
assert toml_val == yaml_val
assert toml_val.as_string() == toml_content
@pytest.mark.parametrize("test", ERROR_TESTS)
def test_invalid_decode(test):
toml_file = os.path.join(SPEC_TEST_DIR, "errors", test + ".toml")
with pytest.raises(TOMLKitError):
with open(toml_file, encoding="utf-8") as f:
parse(f.read())
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_toml_tests.py 0000644 0000000 0000000 00000003043 00000000000 015044 0 ustar 00 import json
import pytest
from tomlkit import load
from tomlkit import parse
from tomlkit._compat import decode
from tomlkit._utils import parse_rfc3339
from tomlkit.exceptions import TOMLKitError
def to_bool(s):
assert s in ["true", "false"]
return s == "true"
stypes = {
"string": str,
"bool": to_bool,
"integer": int,
"float": float,
"datetime": parse_rfc3339,
"datetime-local": parse_rfc3339,
"date-local": parse_rfc3339,
"time-local": parse_rfc3339,
}
def untag(value):
if isinstance(value, list):
return [untag(i) for i in value]
elif "type" in value and "value" in value and len(value) == 2:
if value["type"] in stypes:
val = decode(value["value"])
return stypes[value["type"]](val)
elif value["type"] == "array":
return [untag(i) for i in value["value"]]
else:
raise Exception("Unsupported type {}".format(value["type"]))
else:
return {k: untag(v) for k, v in value.items()}
def test_valid_decode(valid_case):
json_val = untag(json.loads(valid_case["json"]))
toml_val = parse(valid_case["toml"])
assert toml_val == json_val
assert toml_val.as_string() == valid_case["toml"]
def test_invalid_decode(invalid_decode_case):
with pytest.raises(TOMLKitError):
parse(invalid_decode_case["toml"])
def test_invalid_encode(invalid_encode_case):
with pytest.raises((TOMLKitError, UnicodeDecodeError)):
with open(invalid_encode_case, encoding="utf-8") as f:
load(f)
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_utils.py 0000644 0000000 0000000 00000002572 00000000000 014015 0 ustar 00 from datetime import date
from datetime import datetime as dt
from datetime import time
from datetime import timedelta as td
from datetime import timezone as tz
import pytest
from tomlkit._utils import _utc
from tomlkit._utils import parse_rfc3339
@pytest.mark.parametrize(
"string, expected",
[
("1979-05-27T07:32:00", dt(1979, 5, 27, 7, 32, 0)),
("1979-05-27T07:32:00Z", dt(1979, 5, 27, 7, 32, 0, tzinfo=_utc)),
(
"1979-05-27T07:32:00-07:00",
dt(1979, 5, 27, 7, 32, 0, tzinfo=tz(td(seconds=-7 * 3600), "-07:00")),
),
(
"1979-05-27T00:32:00.999999-07:00",
dt(
1979,
5,
27,
0,
32,
0,
999999,
tzinfo=tz(td(seconds=-7 * 3600), "-07:00"),
),
),
],
)
def test_parse_rfc3339_datetime(string, expected):
assert parse_rfc3339(string) == expected
@pytest.mark.parametrize("string, expected", [("1979-05-27", date(1979, 5, 27))])
def test_parse_rfc3339_date(string, expected):
assert parse_rfc3339(string) == expected
@pytest.mark.parametrize(
"string, expected",
[("12:34:56", time(12, 34, 56)), ("12:34:56.123456", time(12, 34, 56, 123456))],
)
def test_parse_rfc3339_time(string, expected):
assert parse_rfc3339(string) == expected
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/test_write.py 0000644 0000000 0000000 00000000665 00000000000 014010 0 ustar 00 from tomlkit import dumps
from tomlkit import loads
def test_write_backslash():
d = {"foo": "\\e\u25E6\r"}
expected = """foo = "\\\\e\u25E6\\r"
"""
assert expected == dumps(d)
assert loads(dumps(d))["foo"] == "\\e\u25E6\r"
def test_escape_special_characters_in_key():
d = {"foo\nbar": "baz"}
expected = '"foo\\nbar" = "baz"\n'
assert expected == dumps(d)
assert loads(dumps(d))["foo\nbar"] == "baz"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/.gitattributes 0000644 0000000 0000000 00000000104 00000000000 017167 0 ustar 00 *.toml text=auto
*.yaml text=auto
values/spec-newline-*.toml binary
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/LICENSE 0000644 0000000 0000000 00000001346 00000000000 015312 0 ustar 00 Copyright Rebecca Turner
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/README.md 0000644 0000000 0000000 00000001176 00000000000 015565 0 ustar 00 These are the spec tests for TOML used by @iarna/toml.
The errors folder contains TOML files that should cause a parser to report an error.
The values folder contains TOML files and paired YAML or JSON files. The
YAML files should parse to a structure that's deeply equal to the TOML
structure. The JSON files match the patterns found in [BurntSushi 0.4 TOML
tests](https://github.com/BurntSushi/toml-test#json-encoding).
We introduce the following new types to match TOML 0.5.0:
* _datetime-local_ - A datetime without a timezone. Floating.
* _date_ - A date without any time component
* _time_ - A time without any date component
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/array-of-tables-1.toml 0000644 0000000 0000000 00000000067 00000000000 021643 0 ustar 00 # INVALID TOML DOC
fruit = []
[[fruit]] # Not allowed
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/array-of-tables-2.toml 0000644 0000000 0000000 00000000274 00000000000 021644 0 ustar 00 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
# This table conflicts with the previous table
[fruit.variety]
name = "granny smith"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/bare-key-1.toml 0000644 0000000 0000000 00000000017 00000000000 020345 0 ustar 00 bare!key = 123
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/bare-key-2.toml 0000644 0000000 0000000 00000000021 00000000000 020341 0 ustar 00 barekey
= 123
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/bare-key-3.toml 0000644 0000000 0000000 00000000011 00000000000 020341 0 ustar 00 barekey = ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/comment-control-1.toml 0000644 0000000 0000000 00000000017 00000000000 021766 0 ustar 00 a = "null" #
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/comment-control-2.toml 0000644 0000000 0000000 00000000021 00000000000 021762 0 ustar 00 a = "ctrl-P" #
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/comment-control-3.toml 0000644 0000000 0000000 00000000021 00000000000 021763 0 ustar 00 a = "ctrl-_" #
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/comment-control-4.toml 0000644 0000000 0000000 00000000017 00000000000 021771 0 ustar 00 a = "0x7f" #
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/inline-table-imutable-1.toml 0000644 0000000 0000000 00000000102 00000000000 023004 0 ustar 00 [product]
type = { name = "Nail" }
type.edible = false # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/inline-table-imutable-2.toml 0000644 0000000 0000000 00000000102 00000000000 023005 0 ustar 00 [product]
type.name = "Nail"
type = { edible = false } # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/inline-table-trailing-comma.toml 0000644 0000000 0000000 00000000025 00000000000 023753 0 ustar 00 abc = { abc = 123, }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/int-0-padded.toml 0000644 0000000 0000000 00000000013 00000000000 020652 0 ustar 00 int = 0123
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/int-signed-bin.toml 0000644 0000000 0000000 00000000014 00000000000 021314 0 ustar 00 bin = +0b10
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/int-signed-hex.toml 0000644 0000000 0000000 00000000014 00000000000 021330 0 ustar 00 hex = +0xab
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/int-signed-oct.toml 0000644 0000000 0000000 00000000014 00000000000 021331 0 ustar 00 oct = +0o23
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/key-value-pair-1.toml 0000644 0000000 0000000 00000000020 00000000000 021473 0 ustar 00 key = # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/key-value-pair-2.toml 0000644 0000000 0000000 00000000060 00000000000 021500 0 ustar 00 first = "Tom" last = "Preston-Werner" # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/multiple-dot-key.toml 0000644 0000000 0000000 00000000341 00000000000 021715 0 ustar 00 # THE FOLLOWING IS INVALID
# This defines the value of fruit.apple to be an integer.
fruit.apple = 1
# But then this treats fruit.apple like it's a table.
# You can't turn an integer into a table.
fruit.apple.smooth = true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/multiple-key.toml 0000644 0000000 0000000 00000000057 00000000000 021135 0 ustar 00 # DO NOT DO THIS
name = "Tom"
name = "Pradyun"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/no-key-name.toml 0000644 0000000 0000000 00000000033 00000000000 020626 0 ustar 00 = "no key name" # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-control-1.toml 0000644 0000000 0000000 00000000014 00000000000 022706 0 ustar 00 a = "null "
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-control-2.toml 0000644 0000000 0000000 00000000016 00000000000 022711 0 ustar 00 a = "ctrl-P"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-control-3.toml 0000644 0000000 0000000 00000000016 00000000000 022712 0 ustar 00 a = "ctrl-_"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-control-4.toml 0000644 0000000 0000000 00000000014 00000000000 022711 0 ustar 00 a = "0x7f"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-control-1.toml 0000644 0000000 0000000 00000000020 00000000000 024703 0 ustar 00 a = """null """
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-control-2.toml 0000644 0000000 0000000 00000000020 00000000000 024704 0 ustar 00 a = """null"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-control-3.toml 0000644 0000000 0000000 00000000020 00000000000 024705 0 ustar 00 a = """null"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-control-4.toml 0000644 0000000 0000000 00000000020 00000000000 024706 0 ustar 00 a = """null"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-invalid-backslash.toml 0000644 0000000 0000000 00000000034 00000000000 026451 0 ustar 00 a = """
foo \ \n
bar"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-out-of-range-unicode-escape-1.toml0000644 0000000 0000000 00000000025 00000000000 030415 0 ustar 00 a = """\UFFFFFFFF"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-out-of-range-unicode-escape-2.toml0000644 0000000 0000000 00000000025 00000000000 030416 0 ustar 00 a = """\U00D80000"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-quotes.toml 0000644 0000000 0000000 00000000062 00000000000 024413 0 ustar 00 str5 = """Here are three quotation marks: """."""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-multiline-unknown-escape.toml 0000644 0000000 0000000 00000000015 00000000000 026026 0 ustar 00 a = """\@"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-out-of-range-unicode-escape-1.toml 0000644 0000000 0000000 00000000021 00000000000 026411 0 ustar 00 a = "\UFFFFFFFF"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-out-of-range-unicode-escape-2.toml 0000644 0000000 0000000 00000000021 00000000000 026412 0 ustar 00 a = "\U00D80000"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-basic-unknown-escape.toml 0000644 0000000 0000000 00000000011 00000000000 024022 0 ustar 00 a = "\@"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-control-1.toml 0000644 0000000 0000000 00000000014 00000000000 023261 0 ustar 00 a = 'null '
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-control-2.toml 0000644 0000000 0000000 00000000014 00000000000 023262 0 ustar 00 a = 'null'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-control-3.toml 0000644 0000000 0000000 00000000014 00000000000 023263 0 ustar 00 a = 'null'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-control-4.toml 0000644 0000000 0000000 00000000014 00000000000 023264 0 ustar 00 a = 'null'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-multiline-control-1.toml 0000644 0000000 0000000 00000000020 00000000000 025256 0 ustar 00 a = '''null '''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-multiline-control-2.toml 0000644 0000000 0000000 00000000020 00000000000 025257 0 ustar 00 a = '''null'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-multiline-control-3.toml 0000644 0000000 0000000 00000000020 00000000000 025260 0 ustar 00 a = '''null'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-multiline-control-4.toml 0000644 0000000 0000000 00000000020 00000000000 025261 0 ustar 00 a = '''null'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/string-literal-multiline-quotes.toml 0000644 0000000 0000000 00000000110 00000000000 024760 0 ustar 00 apos15 = '''Here are fifteen apostrophes: '''''''''''''''''' # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-1.toml 0000644 0000000 0000000 00000000103 00000000000 017731 0 ustar 00 # DO NOT DO THIS
[fruit]
apple = "red"
[fruit]
orange = "orange"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-2.toml 0000644 0000000 0000000 00000000121 00000000000 017732 0 ustar 00 # DO NOT DO THIS EITHER
[fruit]
apple = "red"
[fruit.apple]
texture = "smooth"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-3.toml 0000644 0000000 0000000 00000000117 00000000000 017740 0 ustar 00 [fruit]
apple.color = "red"
apple.taste.sweet = true
[fruit.apple] # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-4.toml 0000644 0000000 0000000 00000000125 00000000000 017740 0 ustar 00 [fruit]
apple.color = "red"
apple.taste.sweet = true
[fruit.apple.taste] # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-invalid-1.toml 0000644 0000000 0000000 00000000362 00000000000 021364 0 ustar 00 [fruit.physical] # subtable, but to which parent element should it belong?
color = "red"
shape = "round"
[[fruit]] # parser must throw an error upon discovering that "fruit" is
# an array rather than a table
name = "apple" ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-invalid-2.toml 0000644 0000000 0000000 00000000067 00000000000 021367 0 ustar 00 # INVALID TOML DOC
fruit = []
[[fruit]] # Not allowed
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-invalid-3.toml 0000644 0000000 0000000 00000000411 00000000000 021361 0 ustar 00 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
# INVALID: This table conflicts with the previous array of tables
[fruit.variety]
name = "granny smith"
[fruit.physical]
color = "red"
shape = "round"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/errors/table-invalid-4.toml 0000644 0000000 0000000 00000000406 00000000000 021366 0 ustar 00 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
[fruit.physical]
color = "red"
shape = "round"
# INVALID: This array of tables conflicts with the previous table
[[fruit.physical]]
color = "green"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-array-inline-1000.toml 0000644 0000000 0000000 00000031332 00000000000 022046 0 ustar 00 key = [
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"abcdefg",
"end"]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3815331
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-array-inline-1000.yaml 0000644 0000000 0000000 00000027356 00000000000 022050 0 ustar 00 key:
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- abcdefg
- end
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-array-inline-nested-1000.toml 0000644 0000000 0000000 00000003732 00000000000 023331 0 ustar 00 key = [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-array-inline-nested-1000.yaml 0000644 0000000 0000000 00000003733 00000000000 023321 0 ustar 00 key:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - []
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-key-literal-40kb.toml 0000644 0000000 0000000 00000116117 00000000000 022063 0 ustar 00 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.' = 'long'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-key-literal-40kb.yaml 0000644 0000000 0000000 00000116120 00000000000 022044 0 ustar 00 ? 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.'
: long
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-key-string-40kb.toml 0000644 0000000 0000000 00000116117 00000000000 021735 0 ustar 00 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in." = "long"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-key-string-40kb.yaml 0000644 0000000 0000000 00000116120 00000000000 021716 0 ustar 00 ? 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.'
: long
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-literal-40kb.toml 0000644 0000000 0000000 00000116115 00000000000 022536 0 ustar 00 long = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-literal-40kb.yaml 0000644 0000000 0000000 00000120162 00000000000 022522 0 ustar 00 long: >-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla
facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed
velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et.
Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper
feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet
consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus.
Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu
ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue
quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl
pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices
eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus
cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in
cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer
malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget
egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis
parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla
facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec
tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo
integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus
urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id
cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam
ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit
cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas
egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus
egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper
a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu
non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis
eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci.
Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique
senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt.
Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus
in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur
adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi
tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl.
Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu
feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi
tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit
amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam.
Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis
aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet
lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit
aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim
cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras
semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia
quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie
nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio
facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque
felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus
pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam
pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut
aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra
ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis
vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit
aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et
netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus
elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare
arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in
pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique
senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere
morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique
senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in
metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh
mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget.
Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis
lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio
euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies.
Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna
molestie at elementum eu facilisis sed. In fermentum posuere urna nec
tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate
dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit
amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie
nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis
convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis
vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed
arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor.
Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices
dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi
tincidunt ornare massa eget egestas purus. Ac felis donec et odio
pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed
turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor
id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec
ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet
consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum
pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse
faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet
consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus
turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus
nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus
vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet
porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem
fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At
ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam
dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non.
Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet
sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem
nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in.
Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi
proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus
imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis
cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra
massa massa. Dolor purus non enim praesent elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor
consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non.
Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget
egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus
venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus
viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor
lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum.
Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed
euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim
neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi
blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae
nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla
phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas
erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis
aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst
vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod
nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget
lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea
dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim.
Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum
quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum
lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at
ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed
tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum
rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus
et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla
pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam
erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum
neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper
malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse
interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique
nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut
lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra
pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing.
Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare
massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet
cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At
erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices
gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam
ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar
elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida
quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt.
Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc
aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi
quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque
massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor
sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit
amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat
pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc
sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque
massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut.
Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla.
Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo
ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam
tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque
dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros
donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras
adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus
turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin
nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa.
Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis
feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci
sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar
elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque
sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque
ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat.
Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis
massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet
non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla
facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam
volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida
in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at
lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet
nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna
condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet
sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh
ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi
sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac
tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere
urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est
pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin.
Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate
eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec
adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum
nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies
lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis
mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec
ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed
turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam
vestibulum. Semper eget duis at tellus at urna condimentum mattis
pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin.
Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus
venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum
pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu
lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis
hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula
ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id.
Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus
non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius
vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula
ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et
odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla
pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam
quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis
eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis
tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus
scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum
tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus
egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae
proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc
id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh.
Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget
gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi
quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero
nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor
id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum
consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue
interdum velit euismod in pellentesque. Pharetra pharetra massa massa
ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida
neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper.
Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean.
Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh
ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris
pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio
facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum
sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis
egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet
aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis
urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat.
Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis
magna etiam tempor. In mollis nunc sed id semper risus in hendrerit.
Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus
in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet
dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque.
Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut
venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non
consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit
amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam.
Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id
consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec
dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet
facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel
risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu
consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat
mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna
molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus
accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero
nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum
curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium
vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar.
Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida
neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu
cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae
tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta
nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in
eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent
elementum facilisis leo vel fringilla est ullamcorper. Semper risus in
hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas
pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien
eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh
nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit
amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus
feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut
etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci
nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis
varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in
arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim
lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat
scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat
pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque
habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing
elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue
mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae
justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in
tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis.
Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet
porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem
donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat
velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse
platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus.
Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi
quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non
consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit
amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in
ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed
tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula
ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor
purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed
libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec
ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus
eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis
aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem
fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla
facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh
venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur
gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam
faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna
fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim
sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis
at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis
gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet
cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a
pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat
vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam
quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam
erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel
fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque
egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis
gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel
elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum.
Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie
a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam
id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae
justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh
mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat
ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam.
Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat
est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet.
Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus
aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a.
Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus
semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus
feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue
lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam
vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non
diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra
et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi
tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat.
Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum.
Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus
nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor
massa id neque aliquam vestibulum. Augue interdum velit euismod in
pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat.
Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam
quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent
tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit
amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu
mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus
accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est
pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor.
Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc
consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium
aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit
amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a
diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat
consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus.
Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed
risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa
ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit
libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna
fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus
quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit
amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra.
Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas
sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante
in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis
enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar
etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu.
Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius
quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla.
Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra
ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut.
Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras
pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum.
Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non
odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing
enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat
id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat
ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium
lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu
dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis
aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna
porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum
leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis
nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt.
Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam.
Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna
fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut
aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam.
Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices
eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel
turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet
est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus.
Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis
dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed
cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas
sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed
ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem
donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque
eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis
rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor
eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis
auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi
scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque
nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus
feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus
pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien
faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus
ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis
tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet
enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et
malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas
maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in
dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique
sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar
pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet
tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae
congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris
cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut
placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus
turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere
sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc
pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt.
Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et
malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id
donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc
eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa
tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris
augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet
risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer
malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam
quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae.
Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere
urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus
molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus
vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus
eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum
suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare
arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare
arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique
senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis
aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque
felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet
massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet
mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor
aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra
justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus.
Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus
sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere
sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi
scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum
tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue
eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque
massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque
in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper
velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget.
Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies
tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim
diam quis enim lobortis scelerisque. Adipiscing elit duis tristique
sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac
tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem
viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi
non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus
dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi
enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus
in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam
lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla
aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam
libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper
velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur
vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a
arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque
dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra.
Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec
tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis
nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis
imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque
dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque
non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris
rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui
faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et
netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus
nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim
lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus
imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur
lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus
et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi
ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui
vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur
ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque.
Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed
pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque
in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus
feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse
platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa
ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer.
Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis
auctor elit sed. In est ante in nibh mauris cursus mattis molestie.
Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est
placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a
condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit
amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla
posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna
neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet
eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim
neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida
in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra
aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam
pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus
risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at
quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa
enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque.
Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum
fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat
scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio
aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices.
Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing
elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus
molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare
suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo.
Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam
maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo
nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida.
Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis
risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis
pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet.
Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst
quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi
etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel
pretium lectus quam id leo in.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-literal-multiline-40kb.toml 0000644 0000000 0000000 00000116121 00000000000 024533 0 ustar 00 long = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra.
Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim.
Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor.
Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed.
Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed.
In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.
At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed.
Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc.
Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet.
In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.
Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id.
Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.
Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet.
Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet.
Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.
Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit.
Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id.
Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris.
Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum.
Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel.
Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam.
Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus.
Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia.
Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis.
Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.
Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis.
Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras.
Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa.
Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.
Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in.
Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa.
Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.
Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.
Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi.
Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci.
Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.
Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor.
In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.
Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit.
Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.
Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet.
Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at.
Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus.
Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi.
Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-literal-multiline-40kb.yaml 0000644 0000000 0000000 00000120303 00000000000 024517 0 ustar 00 long: >-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla
facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed
velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et.
Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper
feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet
consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus.
Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu
ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue
quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl
pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices
eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus
cras adipiscing enim eu turpis egestas pretium aenean pharetra.
Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo
integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa
eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis
dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam
nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec
tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo
integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus
urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id
cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam
ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit
cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas
egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus
egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper
a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu
non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis
eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci.
Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique
senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt.
Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus
in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur
adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi
tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl.
Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu
feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi
tincidunt. Ultrices dui sapien eget mi proin sed libero enim.
Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper
viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec
sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id
aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis
eget velit aliquet sagittis id consectetur purus. Pellentesque elit
ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet
venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae
tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a
lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci
sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae.
Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus
rutrum tellus pellentesque eu tincidunt tortor.
Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor
sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet
purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu
bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla
aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in
dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et
molestie ac feugiat sed.
Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh.
Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in
pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique
senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere
morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique
senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in
metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh
mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget.
Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis
lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio
euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies.
Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna
molestie at elementum eu facilisis sed.
In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi
blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh
mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu
lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut
pharetra sit amet aliquam. Convallis convallis tellus id interdum velit
laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet
porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor
pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum
pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio
facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa
eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium
lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.
At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra
diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus
euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing
elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non.
Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet
lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur
adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi
bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt
eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu.
Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor
morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi
tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus
imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam
quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas
erat imperdiet sed.
Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at
augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor
at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus
euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam
maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit
eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed
tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent
elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor
consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non.
Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget
egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus
venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus
viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor
lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum.
Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed
euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim
neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi
blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae
nunc.
Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla
phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas
erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis
aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst
vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod
nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget
lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea
dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim.
Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum
quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum
lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at
ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed
tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum
rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus
et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla
pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam
erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum
neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper
malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse
interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique
nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut
lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra
pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing.
Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare
massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet
cursus sit amet.
In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque
adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce.
Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci
a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu
odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis
cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis
egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim
facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at
tellus at urna condimentum mattis. Euismod in pellentesque massa placerat.
Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum
nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed
lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing
commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.
Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna
etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut
placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo
odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non
pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis
elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus
sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum
pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis.
Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum.
Lectus proin nibh nisl condimentum id.
Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra
massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras
tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam
viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus
pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed.
Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et
ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim
blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis
nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id
volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat.
Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio
pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.
Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium
nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas
integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu
ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id.
In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet
tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio
facilisis mauris sit amet.
Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac
tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere
urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est
pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin.
Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate
eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec
adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum
nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies
lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis
mauris sit amet.
Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit.
Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id.
Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget
duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent
semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla
pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna.
Quam quisque id diam vel quam elementum pulvinar. At tempor commodo
ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices
gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.
Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin.
Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar
proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend
mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio
ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc
consequat interdum varius. Donec et odio pellentesque diam volutpat commodo.
Id ornare arcu odio ut sem nulla pharetra diam sit.
Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis
vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam.
Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique
sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus
scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum
tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus
egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae
proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc
id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh.
Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget
gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi
quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero
nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor
id.
Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum
consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue
interdum velit euismod in pellentesque. Pharetra pharetra massa massa
ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida
neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper.
Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean.
Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh
ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris
pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio
facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum
sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis
egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet
aliquam id diam maecenas ultricies mi eget mauris.
Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat
pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non
nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper
risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam.
Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet
cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien
pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat
diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum
non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam
sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam.
Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id
consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec
dui nunc mattis enim ut tellus elementum.
Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci
ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus.
Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla.
Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis
posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet
porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper
malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing
tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales
ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa
tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet
mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae.
Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum.
Mauris sit amet massa vitae tortor condimentum lacinia quis vel.
Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id
semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie
nunc non blandit massa enim. Enim praesent elementum facilisis leo vel
fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque
non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere
sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero.
In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id
venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget.
Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus
dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus
aliquam.
Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue
ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas
congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh
tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in.
In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie
a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar
pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur
adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor
augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer
vitae justo eget. Sed egestas egestas fringilla phasellus.
Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus
gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis
vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius
duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in
metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis
cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi
vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa
massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id
ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio
facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod
lacinia.
Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis.
Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi
nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris.
Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit.
Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum
faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit
amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis
hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque
viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum
dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper
dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus
urna duis.
Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc
lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus
venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt
id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse
potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet
bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor
urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.
Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra
magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi
etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat
blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non
pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque
egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet
bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue
mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique
et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis
vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo
laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris
pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed.
Suspendisse in est ante in nibh mauris cursus mattis.
Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae.
Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh
tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui.
Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu
turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi
in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis
enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at
tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus
orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor
aliquam nulla facilisi cras.
Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna
fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi
quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in
massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus
vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus
suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit
massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et
egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue
interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing
tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum
velit. Vitae et leo duis ut diam quam nulla porttitor massa.
Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin
aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis
varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat
sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac.
Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra
suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo
vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis
vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum
lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi
vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci
sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui
nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.
Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare
quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget.
Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem
integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis.
Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper
feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui
faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras
fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate
dignissim suspendisse in est ante in.
Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut
tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non
quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at
in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque
id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis
tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet
bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor
pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis
nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros
in cursus turpis massa.
Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in
iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum
varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis
eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium
nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue
interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum
ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus
venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi
ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend
quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in
cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio
aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea
dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.
Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget
magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac
placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam
in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis
volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam
adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent.
Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur
ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus.
Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper
viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus
viverra accumsan in nisl nisi scelerisque eu ultrices.
Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna
neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor
morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed
vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.
Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor
purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo
donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate
dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac
feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique
nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis
ullamcorper velit sed ullamcorper morbi.
Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies
tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu
volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac
turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit
scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus.
Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque
pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit
amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra
vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh
mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum
fusce ut placerat orci.
Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id
cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra
adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec
feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris
pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis
risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque
habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed
viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar
sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.
Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor
pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus
commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada
bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris
ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna
etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu
odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla
pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra
mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse
ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui
vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare
arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique
senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis
aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque
felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet
massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet
mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor
aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra
justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus.
Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus
sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere
sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi
scelerisque eu ultrices vitae auctor.
In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit
amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue
interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra
aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed
lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a
pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque
varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor
at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque.
Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque
habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.
Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at
imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna
porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat
scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis
aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend.
Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus
ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut
consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc
sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est.
Vitae elementum curabitur vitae nunc sed velit.
Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec
feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit
amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas
diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper
feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus
urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel.
Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis
massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris
augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.
Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi
tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo.
Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare
suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in
ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget.
Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi
tristique senectus et netus et. A iaculis at erat pellentesque adipiscing
commodo elit at imperdiet.
Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui
vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur
ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque.
Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed
pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque
in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus
feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse
platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa
ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer.
Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis
auctor elit sed. In est ante in nibh mauris cursus mattis molestie.
Scelerisque in dictum non consectetur a erat nam at.
Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl
condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum
integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus
aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus
in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget.
Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas
congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue
mauris augue neque gravida in fermentum. Velit aliquet sagittis id
consectetur. Enim ut sem viverra aliquet eget sit amet tellus.
Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim
nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet
nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at
consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum
consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas
quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla
pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero
volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas
quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum.
Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit.
Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec.
Tortor vitae purus faucibus ornare suspendisse sed nisi.
Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel
fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis
tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id
volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus
sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim
blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id.
Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium.
Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla
est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et
leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-string-40kb.toml 0000644 0000000 0000000 00000116115 00000000000 022410 0 ustar 00 long = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna. Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed. In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel. Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci. Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis. Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-string-40kb.yaml 0000644 0000000 0000000 00000120162 00000000000 022374 0 ustar 00 long: >-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla
facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed
velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et.
Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper
feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet
consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus.
Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu
ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue
quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl
pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices
eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus
cras adipiscing enim eu turpis egestas pretium aenean pharetra. Eros in
cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer
malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget
egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis
parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla
facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec
tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo
integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus
urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id
cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam
ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit
cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas
egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus
egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper
a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu
non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis
eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci.
Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique
senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt.
Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus
in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur
adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi
tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl.
Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu
feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi
tincidunt. Ultrices dui sapien eget mi proin sed libero enim. Nisi est sit
amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam.
Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis
aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet
lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit
aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim
cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras
semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia
quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie
nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio
facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque
felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus
pellentesque eu tincidunt tortor. Cras semper auctor neque vitae tempus quam
pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut
aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra
ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis
vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit
aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et
netus et malesuada fames ac. Faucibus et molestie ac feugiat sed. Tellus
elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare
arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in
pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique
senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere
morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique
senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in
metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh
mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget.
Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis
lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio
euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies.
Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna
molestie at elementum eu facilisis sed. In fermentum posuere urna nec
tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate
dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit
amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie
nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis
convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis
vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed
arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor.
Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices
dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi
tincidunt ornare massa eget egestas purus. Ac felis donec et odio
pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed
turpis tincidunt id. At urna condimentum mattis pellentesque id nibh tortor
id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec
ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet
consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum
pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse
faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet
consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus
turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus
nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus
vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet
porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem
fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At
ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam
dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non.
Placerat in egestas erat imperdiet sed. Placerat in egestas erat imperdiet
sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem
nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in.
Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi
proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus
imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis
cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra
massa massa. Dolor purus non enim praesent elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor
consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non.
Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget
egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus
venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus
viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor
lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum.
Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed
euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim
neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi
blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae
nunc. Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla
phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas
erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis
aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst
vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod
nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget
lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea
dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim.
Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum
quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum
lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at
ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed
tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum
rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus
et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla
pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam
erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum
neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper
malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse
interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique
nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut
lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra
pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing.
Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare
massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet
cursus sit amet. In metus vulputate eu scelerisque felis imperdiet proin. At
erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices
gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam
ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar
elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida
quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt.
Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc
aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi
quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque
massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor
sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit
amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat
pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc
sed id semper risus. Tincidunt augue interdum velit euismod in pellentesque
massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut.
Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla.
Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo
ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam
tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque
dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros
donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras
adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus
turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id. Sollicitudin
nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa.
Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis
feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci
sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar
elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque
sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque
ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat.
Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis
massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet
non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla
facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam
volutpat commodo sed. Etiam non quam lacus suspendisse. Augue neque gravida
in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at
lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet
nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna
condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet
sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh
ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet. Mi
sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac
tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere
urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est
pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin.
Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate
eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec
adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum
nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies
lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis
mauris sit amet. Adipiscing vitae proin sagittis nisl. Vitae aliquet nec
ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed
turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam
vestibulum. Semper eget duis at tellus at urna condimentum mattis
pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin.
Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus
venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum
pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu
lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis
hendrerit dolor magna. Massa tincidunt nunc pulvinar sapien et ligula
ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id.
Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus
non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius
vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula
ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et
odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla
pharetra diam sit. Est ullamcorper eget nulla facilisi etiam dignissim diam
quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis
eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis
tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus
scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum
tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus
egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae
proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc
id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh.
Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget
gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi
quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero
nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor
id. Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum
consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue
interdum velit euismod in pellentesque. Pharetra pharetra massa massa
ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida
neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper.
Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean.
Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh
ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris
pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio
facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum
sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis
egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet
aliquam id diam maecenas ultricies mi eget mauris. Enim sit amet venenatis
urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat.
Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis
magna etiam tempor. In mollis nunc sed id semper risus in hendrerit.
Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus
in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet
dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque.
Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut
venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non
consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit
amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam.
Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id
consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec
dui nunc mattis enim ut tellus elementum. Nullam non nisi est sit amet
facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel
risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu
consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat
mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna
molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus
accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero
nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum
curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium
vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar.
Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida
neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu
cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae
tortor condimentum lacinia quis vel. Aliquam sem et tortor consequat id porta
nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in
eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent
elementum facilisis leo vel fringilla est ullamcorper. Semper risus in
hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas
pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien
eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh
nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit
amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus
feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut
etiam. Nunc id cursus metus aliquam. Gravida dictum fusce ut placerat orci
nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis
varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in
arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim
lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat
scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat
pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque
habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing
elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue
mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae
justo eget. Sed egestas egestas fringilla phasellus. Viverra adipiscing at in
tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis.
Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet
porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem
donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat
velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse
platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus.
Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi
quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non
consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit
amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia. Feugiat in
ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed
tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula
ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor
purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed
libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec
ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus
eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis
aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem
fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla
facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh
venenatis cras sed felis eget. Nam at lectus urna duis. Laoreet non curabitur
gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam
faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna
fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim
sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis
at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis
gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet
cursus sit amet dictum sit amet justo donec enim. Enim nunc faucibus a
pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat
vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam
quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam
erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel
fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque
egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis
gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel
elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum.
Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie
a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam
id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae
justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh
mauris cursus mattis. Faucibus pulvinar elementum integer enim neque volutpat
ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam.
Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat
est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet.
Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus
aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a.
Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus
semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus
feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue
lacus. Tincidunt tortor aliquam nulla facilisi cras. Nulla facilisi nullam
vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non
diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra
et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi
tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat.
Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum.
Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus
nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor
massa id neque aliquam vestibulum. Augue interdum velit euismod in
pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat.
Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam
quam nulla porttitor massa. Egestas integer eget aliquet nibh praesent
tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit
amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu
mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus
accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est
pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor.
Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc
consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium
aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit
amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a
diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat
consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus.
Adipiscing elit ut aliquam purus sit amet luctus. Tempus egestas sed sed
risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa
ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit
libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna
fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus
quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit
amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra.
Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas
sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante
in. Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis
enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar
etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu.
Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius
quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla.
Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra
ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut.
Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras
pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum.
Mauris ultrices eros in cursus turpis massa. Lacus vestibulum sed arcu non
odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing
enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat
id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat
ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium
lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu
dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis
aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna
porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum
leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis
nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt.
Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam.
Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna
fringilla urna porttitor rhoncus dolor. Amet consectetur adipiscing elit ut
aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam.
Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices
eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel
turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet
est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus.
Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis
dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed
cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas
sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed
ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem
donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque
eu ultrices. Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis
rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor
eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis
auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi
scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque
nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus
feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus
pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien
faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus
ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper morbi. Lacus sed turpis
tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet
enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et
malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas
maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in
dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique
sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar
pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet
tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae
congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris
cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut
placerat orci. Et tortor at risus viverra. Sed libero enim sed faucibus
turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere
sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc
pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt.
Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et
malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id
donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc
eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa
tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris
augue neque gravida in. Faucibus vitae aliquet nec ullamcorper sit amet
risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer
malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam
quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae.
Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere
urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus
molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus
vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus
eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum
suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare
arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare
arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique
senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis
aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque
felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet
massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet
mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor
aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra
justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus.
Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus
sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere
sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi
scelerisque eu ultrices vitae auctor. In vitae turpis massa sed elementum
tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue
eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque
massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque
in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper
velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget.
Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies
tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim
diam quis enim lobortis scelerisque. Adipiscing elit duis tristique
sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac
tincidunt vitae semper quis lectus nulla at. Maecenas sed enim ut sem
viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi
non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus
dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi
enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus
in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam
lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla
aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam
libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper
velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur
vitae nunc sed velit. Sit amet commodo nulla facilisi nullam vehicula ipsum a
arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque
dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra.
Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec
tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis
nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis
imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque
dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque
non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris
rhoncus aenean vel elit scelerisque mauris. Scelerisque fermentum dui
faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et
netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus
nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim
lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus
imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur
lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus
et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Mi
ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui
vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur
ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque.
Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed
pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque
in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus
feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse
platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa
ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer.
Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis
auctor elit sed. In est ante in nibh mauris cursus mattis molestie.
Scelerisque in dictum non consectetur a erat nam at. Lectus sit amet est
placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a
condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit
amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla
posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna
neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet
eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim
neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida
in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra
aliquet eget sit amet tellus. Semper auctor neque vitae tempus quam
pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus
risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at
quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa
enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque.
Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum
fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat
scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio
aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices.
Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing
elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus
molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare
suspendisse sed nisi. Nascetur ridiculus mus mauris vitae ultricies leo.
Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam
maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo
nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida.
Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis
risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis
pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet.
Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst
quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi
etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel
pretium lectus quam id leo in.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-string-multiline-40kb.toml 0000644 0000000 0000000 00000116121 00000000000 024405 0 ustar 00 long = '''Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et. Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus. Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra.
Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt. Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl. Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Ultrices dui sapien eget mi proin sed libero enim.
Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis eget velit aliquet sagittis id consectetur purus. Pellentesque elit ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus rutrum tellus pellentesque eu tincidunt tortor.
Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et molestie ac feugiat sed.
Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh. Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget. Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies. Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna molestie at elementum eu facilisis sed.
In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut pharetra sit amet aliquam. Convallis convallis tellus id interdum velit laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.
At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu. Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas erat imperdiet sed.
Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non. Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum. Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae nunc.
Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet cursus sit amet.
In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce. Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at tellus at urna condimentum mattis. Euismod in pellentesque massa placerat. Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.
Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis. Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum. Lectus proin nibh nisl condimentum id.
Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed. Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat. Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.
Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id. In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio facilisis mauris sit amet.
Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin. Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis mauris sit amet.
Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit. Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna. Quam quisque id diam vel quam elementum pulvinar. At tempor commodo ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.
Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius. Donec et odio pellentesque diam volutpat commodo. Id ornare arcu odio ut sem nulla pharetra diam sit.
Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam. Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh. Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor id.
Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue interdum velit euismod in pellentesque. Pharetra pharetra massa massa ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean. Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet aliquam id diam maecenas ultricies mi eget mauris.
Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam. Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam. Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec dui nunc mattis enim ut tellus elementum.
Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus. Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla. Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae. Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum. Mauris sit amet massa vitae tortor condimentum lacinia quis vel.
Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie nunc non blandit massa enim. Enim praesent elementum facilisis leo vel fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero. In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget. Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus aliquam.
Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in. In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer vitae justo eget. Sed egestas egestas fringilla phasellus.
Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod lacinia.
Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis. Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris. Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit. Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus urna duis.
Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.
Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed. Suspendisse in est ante in nibh mauris cursus mattis.
Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui. Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor aliquam nulla facilisi cras.
Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum velit. Vitae et leo duis ut diam quam nulla porttitor massa.
Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac. Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.
Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis. Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate dignissim suspendisse in est ante in.
Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros in cursus turpis massa.
Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.
Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent. Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus. Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.
Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices. Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi.
Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci.
Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.
Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus. Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi scelerisque eu ultrices vitae auctor.
In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.
Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend. Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est. Vitae elementum curabitur vitae nunc sed velit.
Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel. Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.
Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo. Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget. Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi tristique senectus et netus et. A iaculis at erat pellentesque adipiscing commodo elit at imperdiet.
Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis auctor elit sed. In est ante in nibh mauris cursus mattis molestie. Scelerisque in dictum non consectetur a erat nam at.
Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget. Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue mauris augue neque gravida in fermentum. Velit aliquet sagittis id consectetur. Enim ut sem viverra aliquet eget sit amet tellus.
Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec. Tortor vitae purus faucibus ornare suspendisse sed nisi.
Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id. Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium. Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-scalar-string-multiline-40kb.yaml 0000644 0000000 0000000 00000120303 00000000000 024371 0 ustar 00 long: >-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor. Amet consectetur adipiscing elit ut. Nulla
facilisi etiam dignissim diam quis enim lobortis. Curabitur vitae nunc sed
velit dignissim sodales ut eu. Fames ac turpis egestas sed tempus urna et.
Facilisi cras fermentum odio eu feugiat pretium. Nec tincidunt praesent semper
feugiat nibh sed pulvinar proin gravida. Est lorem ipsum dolor sit amet
consectetur adipiscing elit. Vel quam elementum pulvinar etiam non quam lacus.
Pharetra et ultrices neque ornare aenean euismod. Nisl nisi scelerisque eu
ultrices. Eget dolor morbi non arcu risus. Bibendum neque egestas congue
quisque egestas diam in arcu cursus. Faucibus nisl tincidunt eget nullam. Nisl
pretium fusce id velit ut tortor pretium viverra suspendisse. Mauris ultrices
eros in cursus. Donec ac odio tempor orci dapibus ultrices in iaculis. Tellus
cras adipiscing enim eu turpis egestas pretium aenean pharetra.
Eros in cursus turpis massa. Nascetur ridiculus mus mauris vitae ultricies leo
integer malesuada nunc. Velit sed ullamcorper morbi tincidunt ornare massa
eget egestas purus. Aenean euismod elementum nisi quis eleifend quam. Magnis
dis parturient montes nascetur ridiculus mus. Eu tincidunt tortor aliquam
nulla facilisi cras. Tristique senectus et netus et malesuada fames. Urna nec
tincidunt praesent semper feugiat nibh sed pulvinar. Vitae ultricies leo
integer malesuada nunc vel risus commodo viverra. Ac turpis egestas sed tempus
urna et. Amet mauris commodo quis imperdiet massa tincidunt. Urna nunc id
cursus metus aliquam eleifend mi. In nulla posuere sollicitudin aliquam
ultrices sagittis orci a scelerisque. Neque aliquam vestibulum morbi blandit
cursus. Pulvinar mattis nunc sed blandit libero volutpat sed. Sed egestas
egestas fringilla phasellus faucibus scelerisque eleifend donec pretium.
Blandit cursus risus at ultrices mi tempus. Turpis massa sed elementum tempus
egestas sed sed. Dictum varius duis at consectetur lorem. Commodo ullamcorper
a lacus vestibulum sed arcu non. Dolor magna eget est lorem. Tincidunt arcu
non sodales neque sodales ut etiam sit amet. Sit amet risus nullam eget felis
eget nunc lobortis. Risus in hendrerit gravida rutrum quisque non tellus orci.
Elementum pulvinar etiam non quam lacus suspendisse faucibus. Morbi tristique
senectus et netus et malesuada. In aliquam sem fringilla ut morbi tincidunt.
Ornare aenean euismod elementum nisi quis eleifend quam. Sed id semper risus
in hendrerit gravida rutrum quisque. Lorem ipsum dolor sit amet consectetur
adipiscing elit. A condimentum vitae sapien pellentesque habitant morbi
tristique senectus et. Faucibus purus in massa tempor nec feugiat nisl.
Vehicula ipsum a arcu cursus vitae congue. Facilisi cras fermentum odio eu
feugiat pretium nibh. Viverra mauris in aliquam sem fringilla ut morbi
tincidunt. Ultrices dui sapien eget mi proin sed libero enim.
Nisi est sit amet facilisis magna etiam tempor. Posuere ac ut consequat semper
viverra nam. Dis parturient montes nascetur ridiculus mus mauris vitae. Nec
sagittis aliquam malesuada bibendum. Mattis pellentesque id nibh tortor id
aliquet lectus. Vitae congue eu consequat ac felis donec et. Cras sed felis
eget velit aliquet sagittis id consectetur purus. Pellentesque elit
ullamcorper dignissim cras tincidunt. Pellentesque dignissim enim sit amet
venenatis urna. A cras semper auctor neque vitae tempus. Amet massa vitae
tortor condimentum lacinia quis vel eros donec. Tempor commodo ullamcorper a
lacus. Nibh tellus molestie nunc non blandit massa enim nec dui. Viverra orci
sagittis eu volutpat odio facilisis mauris sit. Sed augue lacus viverra vitae.
Vulputate eu scelerisque felis imperdiet proin fermentum leo vel orci. Tellus
rutrum tellus pellentesque eu tincidunt tortor.
Cras semper auctor neque vitae tempus quam pellentesque nec. Lorem ipsum dolor
sit amet consectetur adipiscing elit ut aliquam. Tristique magna sit amet
purus gravida quis blandit turpis. Viverra ipsum nunc aliquet bibendum. Arcu
bibendum at varius vel. Amet mattis vulputate enim nulla. Vulputate enim nulla
aliquet porttitor. Volutpat blandit aliquam etiam erat velit scelerisque in
dictum. Morbi tristique senectus et netus et malesuada fames ac. Faucibus et
molestie ac feugiat sed.
Tellus elementum sagittis vitae et leo duis. Id aliquet lectus proin nibh.
Ornare arcu dui vivamus arcu. Morbi tincidunt augue interdum velit euismod in
pellentesque massa placerat. Quis eleifend quam adipiscing vitae. Tristique
senectus et netus et malesuada fames ac turpis. Pharetra convallis posuere
morbi leo. Ornare arcu odio ut sem nulla pharetra diam sit. Morbi tristique
senectus et netus et. Dictum non consectetur a erat nam at lectus urna.
Varius vel pharetra vel turpis. Mi ipsum faucibus vitae aliquet. Tellus in
metus vulputate eu scelerisque felis imperdiet proin. In est ante in nibh
mauris cursus mattis. Massa ultricies mi quis hendrerit dolor magna eget.
Fermentum leo vel orci porta. Elit ut aliquam purus sit amet luctus venenatis
lectus. Eget aliquet nibh praesent tristique magna sit amet. Arcu non odio
euismod lacinia at quis. Montes nascetur ridiculus mus mauris vitae ultricies.
Tempus quam pellentesque nec nam aliquam sem et tortor. Morbi leo urna
molestie at elementum eu facilisis sed.
In fermentum posuere urna nec tincidunt. Neque aliquam vestibulum morbi
blandit cursus risus. Vulputate dignissim suspendisse in est ante in nibh
mauris cursus. Lorem ipsum dolor sit amet consectetur adipiscing. Orci eu
lobortis elementum nibh tellus molestie nunc non. Enim diam vulputate ut
pharetra sit amet aliquam. Convallis convallis tellus id interdum velit
laoreet id donec ultrices. Sit amet mattis vulputate enim nulla aliquet
porttitor lacus luctus. A lacus vestibulum sed arcu non odio. Ut tortor
pretium viverra suspendisse potenti nullam ac tortor. Diam vel quam elementum
pulvinar etiam non quam. Viverra justo nec ultrices dui. Eu volutpat odio
facilisis mauris sit amet massa. Sed ullamcorper morbi tincidunt ornare massa
eget egestas purus. Ac felis donec et odio pellentesque. Nisl vel pretium
lectus quam id leo in. Ultricies lacus sed turpis tincidunt id.
At urna condimentum mattis pellentesque id nibh tortor id. Sem nulla pharetra
diam sit amet nisl suscipit. Neque viverra justo nec ultrices. Arcu cursus
euismod quis viverra nibh cras pulvinar. Dolor sit amet consectetur adipiscing
elit ut aliquam purus. Id diam vel quam elementum pulvinar etiam non.
Elementum pulvinar etiam non quam lacus suspendisse faucibus. Id aliquet
lectus proin nibh nisl condimentum id venenatis. Sit amet consectetur
adipiscing elit duis tristique sollicitudin nibh. Sed faucibus turpis in eu mi
bibendum neque egestas congue. Consectetur libero id faucibus nisl tincidunt
eget nullam. At volutpat diam ut venenatis tellus in metus vulputate eu.
Condimentum lacinia quis vel eros donec ac odio. Sit amet porttitor eget dolor
morbi non arcu risus quis. Viverra mauris in aliquam sem fringilla ut morbi
tincidunt. Metus dictum at tempor commodo ullamcorper. At ultrices mi tempus
imperdiet nulla. Est ullamcorper eget nulla facilisi etiam dignissim diam
quis. Lobortis elementum nibh tellus molestie nunc non. Placerat in egestas
erat imperdiet sed.
Placerat in egestas erat imperdiet sed euismod. Lobortis feugiat vivamus at
augue eget arcu dictum varius. Ut sem nulla pharetra diam sit amet. Et tortor
at risus viverra adipiscing at in. Tempor nec feugiat nisl pretium. Cursus
euismod quis viverra nibh. Eget mi proin sed libero enim sed. Aliquam id diam
maecenas ultricies. Mi tempus imperdiet nulla malesuada pellentesque elit
eget. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Sed
tempus urna et pharetra pharetra massa massa. Dolor purus non enim praesent
elementum facilisis leo vel.
Pharetra vel turpis nunc eget. Quam pellentesque nec nam aliquam sem et tortor
consequat id. Orci eu lobortis elementum nibh tellus molestie nunc non.
Porttitor leo a diam sollicitudin tempor id. Tincidunt ornare massa eget
egestas purus viverra accumsan in nisl. Quam lacus suspendisse faucibus
interdum posuere lorem ipsum dolor sit. Elit ut aliquam purus sit amet luctus
venenatis lectus. Velit egestas dui id ornare arcu odio ut sem nulla. Lacus
viverra vitae congue eu consequat ac felis donec. Nulla aliquet porttitor
lacus luctus accumsan tortor posuere ac ut. Lorem dolor sed viverra ipsum.
Blandit libero volutpat sed cras ornare arcu. Egestas erat imperdiet sed
euismod nisi porta lorem mollis. Viverra maecenas accumsan lacus vel. Enim
neque volutpat ac tincidunt. Porttitor massa id neque aliquam vestibulum morbi
blandit cursus risus. Malesuada bibendum arcu vitae elementum curabitur vitae
nunc.
Et malesuada fames ac turpis egestas integer. Egestas egestas fringilla
phasellus faucibus scelerisque eleifend donec pretium. Est placerat in egestas
erat imperdiet sed. Non arcu risus quis varius quam quisque. Lorem mollis
aliquam ut porttitor leo a. Viverra tellus in hac habitasse platea dictumst
vestibulum rhoncus. Fermentum iaculis eu non diam. Erat imperdiet sed euismod
nisi porta lorem mollis aliquam. Varius vel pharetra vel turpis nunc eget
lorem dolor. Rhoncus mattis rhoncus urna neque viverra. Hac habitasse platea
dictumst quisque sagittis purus sit. At quis risus sed vulputate odio ut enim.
Pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Rutrum
quisque non tellus orci ac auctor. Iaculis eu non diam phasellus vestibulum
lorem sed. Ut sem nulla pharetra diam sit amet nisl suscipit. Risus at
ultrices mi tempus. Vitae tortor condimentum lacinia quis vel eros donec. Sed
tempus urna et pharetra. Posuere sollicitudin aliquam ultrices sagittis orci.
Congue quisque egestas diam in arcu. Hac habitasse platea dictumst vestibulum
rhoncus est pellentesque elit. Pellentesque habitant morbi tristique senectus
et netus et. Id interdum velit laoreet id. Fusce ut placerat orci nulla
pellentesque dignissim. Pretium nibh ipsum consequat nisl vel pretium. Etiam
erat velit scelerisque in dictum non consectetur a. Turpis in eu mi bibendum
neque egestas congue quisque egestas. Pulvinar sapien et ligula ullamcorper
malesuada. Ultricies tristique nulla aliquet enim tortor at. Suspendisse
interdum consectetur libero id faucibus. Lorem sed risus ultricies tristique
nulla aliquet. Tristique senectus et netus et malesuada fames. Eu augue ut
lectus arcu bibendum at varius vel. Egestas sed tempus urna et pharetra
pharetra massa massa ultricies. Aliquet eget sit amet tellus cras adipiscing.
Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Ornare
massa eget egestas purus viverra accumsan in nisl. Justo laoreet sit amet
cursus sit amet.
In metus vulputate eu scelerisque felis imperdiet proin. At erat pellentesque
adipiscing commodo elit at. Ipsum suspendisse ultrices gravida dictum fusce.
Lectus sit amet est placerat in egestas erat. Aliquam ultrices sagittis orci
a. Sagittis id consectetur purus ut faucibus pulvinar elementum. Ornare arcu
odio ut sem nulla pharetra diam. Sit amet purus gravida quis blandit turpis
cursus. Duis ultricies lacus sed turpis tincidunt. Malesuada fames ac turpis
egestas sed tempus urna et. Viverra ipsum nunc aliquet bibendum enim
facilisis. Et pharetra pharetra massa massa ultricies mi quis. Eget duis at
tellus at urna condimentum mattis. Euismod in pellentesque massa placerat.
Enim nunc faucibus a pellentesque sit amet porttitor. Dolor sed viverra ipsum
nunc aliquet. Donec enim diam vulputate ut pharetra sit amet. Feugiat sed
lectus vestibulum mattis ullamcorper velit sed. Erat pellentesque adipiscing
commodo elit at imperdiet. Nisl purus in mollis nunc sed id semper risus.
Tincidunt augue interdum velit euismod in pellentesque massa. Facilisis magna
etiam tempor orci. Mauris in aliquam sem fringilla ut. Gravida dictum fusce ut
placerat orci. Sed risus ultricies tristique nulla. Odio morbi quis commodo
odio. Feugiat in ante metus dictum at tempor commodo ullamcorper. Porta non
pulvinar neque laoreet suspendisse interdum. Etiam tempor orci eu lobortis
elementum. Fusce ut placerat orci nulla pellentesque dignissim. Ornare lectus
sit amet est placerat in egestas erat. Quis vel eros donec ac. Elementum
pulvinar etiam non quam lacus. Sit amet tellus cras adipiscing enim eu turpis.
Amet tellus cras adipiscing enim eu. Sed faucibus turpis in eu mi bibendum.
Lectus proin nibh nisl condimentum id.
Sollicitudin nibh sit amet commodo nulla. Sed tempus urna et pharetra pharetra
massa massa. Magna eget est lorem ipsum. Elit ullamcorper dignissim cras
tincidunt lobortis feugiat vivamus at. Fermentum dui faucibus in ornare quam
viverra orci sagittis eu. Dignissim convallis aenean et tortor. Ut faucibus
pulvinar elementum integer enim neque. Nibh cras pulvinar mattis nunc sed.
Pellentesque sit amet porttitor eget dolor morbi. Mi eget mauris pharetra et
ultrices neque ornare aenean euismod. Quis risus sed vulputate odio ut enim
blandit volutpat. Nisi quis eleifend quam adipiscing vitae proin sagittis
nisl. In vitae turpis massa sed elementum tempus egestas sed sed. Urna id
volutpat lacus laoreet non. Egestas pretium aenean pharetra magna ac placerat.
Amet commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Donec et odio
pellentesque diam volutpat commodo sed. Etiam non quam lacus suspendisse.
Augue neque gravida in fermentum et sollicitudin ac orci. Eu feugiat pretium
nibh ipsum. Nam at lectus urna duis convallis convallis tellus id. Egestas
integer eget aliquet nibh. Viverra accumsan in nisl nisi scelerisque eu
ultrices vitae auctor. Urna condimentum mattis pellentesque id nibh tortor id.
In egestas erat imperdiet sed euismod. Ut sem viverra aliquet eget sit amet
tellus. Feugiat pretium nibh ipsum consequat nisl vel pretium. Volutpat odio
facilisis mauris sit amet.
Mi sit amet mauris commodo quis imperdiet massa tincidunt. Neque volutpat ac
tincidunt vitae semper quis lectus nulla at. Nec feugiat in fermentum posuere
urna nec. Ut venenatis tellus in metus vulputate eu. Vestibulum rhoncus est
pellentesque elit ullamcorper dignissim. Eu scelerisque felis imperdiet proin.
Vitae et leo duis ut diam quam nulla. Ut venenatis tellus in metus vulputate
eu scelerisque. Tincidunt dui ut ornare lectus sit amet. Adipiscing diam donec
adipiscing tristique risus. Turpis nunc eget lorem dolor sed viverra ipsum
nunc aliquet. Non sodales neque sodales ut. Massa placerat duis ultricies
lacus sed turpis tincidunt. Viverra orci sagittis eu volutpat odio facilisis
mauris sit amet.
Adipiscing vitae proin sagittis nisl. Vitae aliquet nec ullamcorper sit.
Potenti nullam ac tortor vitae purus. Ultricies lacus sed turpis tincidunt id.
Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Semper eget
duis at tellus at urna condimentum mattis pellentesque. Nec tincidunt praesent
semper feugiat nibh sed pulvinar proin. Dictum fusce ut placerat orci nulla
pellentesque dignissim. Amet luctus venenatis lectus magna fringilla urna.
Quam quisque id diam vel quam elementum pulvinar. At tempor commodo
ullamcorper a. Magna etiam tempor orci eu lobortis. Suspendisse ultrices
gravida dictum fusce. Massa ultricies mi quis hendrerit dolor magna.
Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin.
Aliquet enim tortor at auctor urna nunc id. Semper feugiat nibh sed pulvinar
proin gravida. Porttitor rhoncus dolor purus non enim. Metus aliquam eleifend
mi in nulla. Lectus arcu bibendum at varius vel pharetra. Sed vulputate odio
ut enim blandit volutpat. Et ligula ullamcorper malesuada proin libero nunc
consequat interdum varius. Donec et odio pellentesque diam volutpat commodo.
Id ornare arcu odio ut sem nulla pharetra diam sit.
Est ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Sagittis
vitae et leo duis ut diam quam nulla. Elementum nisi quis eleifend quam.
Congue mauris rhoncus aenean vel elit. Adipiscing elit duis tristique
sollicitudin nibh sit. Egestas egestas fringilla phasellus faucibus
scelerisque. Morbi tincidunt augue interdum velit euismod. Massa sed elementum
tempus egestas sed sed. Id leo in vitae turpis massa sed elementum tempus
egestas. In pellentesque massa placerat duis ultricies lacus sed turpis. Vitae
proin sagittis nisl rhoncus mattis rhoncus. Enim tortor at auctor urna nunc
id. In fermentum posuere urna nec tincidunt praesent semper feugiat nibh.
Aliquam ut porttitor leo a diam sollicitudin tempor id. Pellentesque elit eget
gravida cum sociis natoque. Molestie at elementum eu facilisis sed odio morbi
quis. Tristique senectus et netus et malesuada fames ac turpis. Proin libero
nunc consequat interdum varius sit amet mattis. Pellentesque id nibh tortor
id.
Risus sed vulputate odio ut enim blandit. Laoreet suspendisse interdum
consectetur libero id faucibus nisl tincidunt eget. Morbi tincidunt augue
interdum velit euismod in pellentesque. Pharetra pharetra massa massa
ultricies mi quis hendrerit. Nunc aliquet bibendum enim facilisis gravida
neque. Feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper.
Risus quis varius quam quisque id diam vel. Et ultrices neque ornare aenean.
Aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Nibh
ipsum consequat nisl vel. Mauris rhoncus aenean vel elit scelerisque mauris
pellentesque pulvinar. Ornare quam viverra orci sagittis eu volutpat odio
facilisis. Euismod nisi porta lorem mollis aliquam. Enim ut tellus elementum
sagittis. Rhoncus mattis rhoncus urna neque. Malesuada fames ac turpis
egestas. Cursus in hac habitasse platea dictumst quisque sagittis. Sit amet
aliquam id diam maecenas ultricies mi eget mauris.
Enim sit amet venenatis urna cursus eget nunc. Fermentum odio eu feugiat
pretium nibh ipsum consequat. Eu scelerisque felis imperdiet proin. Nullam non
nisi est sit amet facilisis magna etiam tempor. In mollis nunc sed id semper
risus in hendrerit. Sollicitudin nibh sit amet commodo nulla facilisi nullam.
Sit amet nisl purus in mollis nunc sed id. Nam libero justo laoreet sit amet
cursus sit amet dictum. Condimentum id venenatis a condimentum vitae sapien
pellentesque. Porta nibh venenatis cras sed felis. Lectus nulla at volutpat
diam ut venenatis tellus in. Aliquam etiam erat velit scelerisque in dictum
non consectetur a. Leo vel fringilla est ullamcorper eget. Sodales ut etiam
sit amet nisl purus in mollis nunc. Euismod nisi porta lorem mollis aliquam.
Ornare arcu odio ut sem nulla. Sed felis eget velit aliquet sagittis id
consectetur. Pellentesque nec nam aliquam sem et tortor consequat id. Enim nec
dui nunc mattis enim ut tellus elementum.
Nullam non nisi est sit amet facilisis magna. Rutrum quisque non tellus orci
ac auctor augue. Nunc vel risus commodo viverra maecenas accumsan lacus.
Viverra vitae congue eu consequat. Sollicitudin nibh sit amet commodo nulla.
Amet volutpat consequat mauris nunc congue nisi. Maecenas pharetra convallis
posuere morbi leo urna molestie at. Mattis vulputate enim nulla aliquet
porttitor lacus luctus accumsan tortor. Pulvinar sapien et ligula ullamcorper
malesuada proin libero nunc consequat. Adipiscing diam donec adipiscing
tristique risus. Elementum curabitur vitae nunc sed velit dignissim sodales
ut. Eleifend donec pretium vulputate sapien nec. Commodo quis imperdiet massa
tincidunt nunc pulvinar. Proin libero nunc consequat interdum varius sit amet
mattis. Facilisis gravida neque convallis a cras semper auctor neque vitae.
Quisque egestas diam in arcu cursus. Nunc eget lorem dolor sed viverra ipsum.
Mauris sit amet massa vitae tortor condimentum lacinia quis vel.
Aliquam sem et tortor consequat id porta nibh venenatis cras. Nunc sed id
semper risus in. Enim sed faucibus turpis in eu mi bibendum neque. Molestie
nunc non blandit massa enim. Enim praesent elementum facilisis leo vel
fringilla est ullamcorper. Semper risus in hendrerit gravida rutrum quisque
non tellus orci. Ac turpis egestas maecenas pharetra. In nulla posuere
sollicitudin aliquam. Justo nec ultrices dui sapien eget mi proin sed libero.
In ornare quam viverra orci sagittis eu. Proin nibh nisl condimentum id
venenatis. Morbi enim nunc faucibus a pellentesque sit amet porttitor eget.
Quis risus sed vulputate odio ut enim blandit. Risus feugiat in ante metus
dictum at tempor commodo. Sodales neque sodales ut etiam. Nunc id cursus metus
aliquam.
Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim. Augue
ut lectus arcu bibendum at. Quis varius quam quisque id diam vel quam. Egestas
congue quisque egestas diam in arcu. Condimentum mattis pellentesque id nibh
tortor id aliquet lectus. Enim lobortis scelerisque fermentum dui faucibus in.
In tellus integer feugiat scelerisque varius morbi enim nunc. Mattis molestie
a iaculis at erat pellentesque. Elit scelerisque mauris pellentesque pulvinar
pellentesque habitant morbi tristique. Lorem ipsum dolor sit amet consectetur
adipiscing elit ut aliquam. Nisl rhoncus mattis rhoncus urna neque. Ac auctor
augue mauris augue neque gravida in fermentum et. Sodales ut eu sem integer
vitae justo eget. Sed egestas egestas fringilla phasellus.
Viverra adipiscing at in tellus integer feugiat scelerisque varius. Purus
gravida quis blandit turpis. Id porta nibh venenatis cras sed. Mattis
vulputate enim nulla aliquet porttitor lacus. Augue eget arcu dictum varius
duis at consectetur lorem donec. Nulla at volutpat diam ut venenatis tellus in
metus. Aliquam etiam erat velit scelerisque in dictum non consectetur. Turpis
cursus in hac habitasse platea dictumst. Consequat mauris nunc congue nisi
vitae suscipit tellus. Volutpat maecenas volutpat blandit aliquam etiam. Massa
massa ultricies mi quis hendrerit dolor magna eget est. Velit egestas dui id
ornare arcu. Non consectetur a erat nam at. Orci sagittis eu volutpat odio
facilisis mauris sit amet. Dui id ornare arcu odio. Sed arcu non odio euismod
lacinia.
Feugiat in ante metus dictum. Gravida arcu ac tortor dignissim convallis.
Egestas sed tempus urna et pharetra pharetra massa massa. Nulla facilisi
nullam vehicula ipsum a arcu. Ipsum a arcu cursus vitae congue mauris.
Porttitor rhoncus dolor purus non. Magna sit amet purus gravida quis blandit.
Sapien eget mi proin sed libero enim sed faucibus turpis. Nisl nunc mi ipsum
faucibus vitae aliquet nec ullamcorper sit. Pellentesque dignissim enim sit
amet venenatis urna cursus eget. Pharetra massa massa ultricies mi quis
hendrerit. Sapien nec sagittis aliquam malesuada bibendum. Nunc scelerisque
viverra mauris in aliquam sem fringilla ut. Dolor magna eget est lorem ipsum
dolor. Amet commodo nulla facilisi nullam. Pellentesque elit ullamcorper
dignissim cras. Id porta nibh venenatis cras sed felis eget. Nam at lectus
urna duis.
Laoreet non curabitur gravida arcu ac tortor dignissim convallis. Nunc
lobortis mattis aliquam faucibus purus in massa tempor. Sit amet luctus
venenatis lectus magna fringilla. Duis ultricies lacus sed turpis tincidunt
id. Sed velit dignissim sodales ut eu. Ut tortor pretium viverra suspendisse
potenti nullam. Iaculis at erat pellentesque adipiscing. Ipsum nunc aliquet
bibendum enim facilisis gravida neque. Nulla aliquet enim tortor at auctor
urna nunc id cursus. Amet cursus sit amet dictum sit amet justo donec enim.
Enim nunc faucibus a pellentesque sit amet porttitor eget dolor. Pharetra
magna ac placerat vestibulum lectus mauris ultrices eros in. Nulla facilisi
etiam dignissim diam quis enim. Ut enim blandit volutpat maecenas volutpat
blandit aliquam etiam erat. Imperdiet proin fermentum leo vel orci porta non
pulvinar neque. Vel fringilla est ullamcorper eget nulla. Bibendum neque
egestas congue quisque egestas diam in arcu cursus. Ipsum nunc aliquet
bibendum enim facilisis gravida neque convallis a. Arcu cursus vitae congue
mauris rhoncus aenean vel elit. Augue eget arcu dictum varius duis. Tristique
et egestas quis ipsum. Quis varius quam quisque id. Varius sit amet mattis
vulputate. Mattis molestie a iaculis at erat pellentesque. Libero justo
laoreet sit amet cursus. Aliquam id diam maecenas ultricies mi eget mauris
pharetra. Ut eu sem integer vitae justo eget. Fames ac turpis egestas sed.
Suspendisse in est ante in nibh mauris cursus mattis.
Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae.
Neque vitae tempus quam pellentesque nec nam aliquam. Lobortis elementum nibh
tellus molestie nunc non. Lacus vel facilisis volutpat est velit egestas dui.
Justo laoreet sit amet cursus sit amet dictum sit amet. Adipiscing enim eu
turpis egestas pretium aenean pharetra magna. Cursus metus aliquam eleifend mi
in nulla posuere. Nibh mauris cursus mattis molestie a. Dignissim diam quis
enim lobortis scelerisque fermentum. A scelerisque purus semper eget duis at
tellus. Lacus sed turpis tincidunt id aliquet risus feugiat in. Non tellus
orci ac auctor. Ultrices in iaculis nunc sed augue lacus. Tincidunt tortor
aliquam nulla facilisi cras.
Nulla facilisi nullam vehicula ipsum a arcu cursus vitae congue. Eget magna
fermentum iaculis eu non diam phasellus. Pharetra massa massa ultricies mi
quis. Eget mauris pharetra et ultrices neque ornare. Aliquam faucibus purus in
massa. Facilisi morbi tempus iaculis urna id volutpat lacus. Accumsan lacus
vel facilisis volutpat. Curabitur gravida arcu ac tortor. Quam lacus
suspendisse faucibus interdum. Elementum nibh tellus molestie nunc non blandit
massa enim. Libero id faucibus nisl tincidunt. Bibendum ut tristique et
egestas. Ut diam quam nulla porttitor massa id neque aliquam vestibulum. Augue
interdum velit euismod in pellentesque. Adipiscing diam donec adipiscing
tristique risus nec feugiat. Fringilla ut morbi tincidunt augue interdum
velit. Vitae et leo duis ut diam quam nulla porttitor massa.
Egestas integer eget aliquet nibh praesent tristique. Posuere sollicitudin
aliquam ultrices sagittis orci a. Nisi est sit amet facilisis. Risus quis
varius quam quisque id diam. Faucibus turpis in eu mi. Et molestie ac feugiat
sed lectus vestibulum. Porttitor lacus luctus accumsan tortor posuere ac.
Platea dictumst vestibulum rhoncus est pellentesque. Tortor pretium viverra
suspendisse potenti nullam ac tortor. Enim praesent elementum facilisis leo
vel fringilla est. Proin libero nunc consequat interdum varius sit amet mattis
vulputate. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum
lectus. Nulla pharetra diam sit amet nisl suscipit. Mauris nunc congue nisi
vitae suscipit tellus mauris a diam. Faucibus in ornare quam viverra orci
sagittis eu volutpat. Volutpat consequat mauris nunc congue nisi vitae. Dui
nunc mattis enim ut tellus. Adipiscing elit ut aliquam purus sit amet luctus.
Tempus egestas sed sed risus. Scelerisque fermentum dui faucibus in ornare
quam viverra orci. Massa ultricies mi quis hendrerit dolor magna eget.
Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ut eu sem
integer vitae justo eget magna fermentum. Ornare quam viverra orci sagittis.
Eget dolor morbi non arcu risus quis varius quam. Tincidunt praesent semper
feugiat nibh sed pulvinar. Sit amet justo donec enim diam vulputate. Dui
faucibus in ornare quam viverra. Tincidunt tortor aliquam nulla facilisi cras
fermentum odio eu. Turpis egestas sed tempus urna et. Pretium quam vulputate
dignissim suspendisse in est ante in.
Morbi quis commodo odio aenean sed adipiscing diam donec. Nunc mattis enim ut
tellus elementum sagittis vitae et. Diam vel quam elementum pulvinar etiam non
quam. Convallis posuere morbi leo urna molestie at elementum eu. Adipiscing at
in tellus integer feugiat scelerisque varius morbi. Quis varius quam quisque
id diam vel quam elementum. Dui accumsan sit amet nulla. Adipiscing elit duis
tristique sollicitudin nibh sit amet commodo. Viverra ipsum nunc aliquet
bibendum enim facilisis. Porta lorem mollis aliquam ut. Velit ut tortor
pretium viverra suspendisse potenti. Quis viverra nibh cras pulvinar mattis
nunc sed blandit. Pharetra magna ac placerat vestibulum. Mauris ultrices eros
in cursus turpis massa.
Lacus vestibulum sed arcu non odio euismod lacinia at. Dapibus ultrices in
iaculis nunc sed. Cras adipiscing enim eu turpis egestas. Eget arcu dictum
varius duis at consectetur. Consequat id porta nibh venenatis cras sed felis
eget velit. Integer enim neque volutpat ac tincidunt vitae. Feugiat pretium
nibh ipsum consequat nisl vel pretium lectus. Ut morbi tincidunt augue
interdum velit euismod. Sed cras ornare arcu dui vivamus arcu felis bibendum
ut. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Luctus
venenatis lectus magna fringilla urna porttitor rhoncus dolor. Nisl nunc mi
ipsum faucibus vitae. Proin fermentum leo vel orci porta. Nisi quis eleifend
quam adipiscing vitae proin sagittis nisl. Et leo duis ut diam quam. Eros in
cursus turpis massa tincidunt. Volutpat est velit egestas dui id. Commodo odio
aenean sed adipiscing diam. Quis blandit turpis cursus in hac habitasse platea
dictumst quisque. Magna fringilla urna porttitor rhoncus dolor.
Amet consectetur adipiscing elit ut aliquam purus sit amet. Vitae justo eget
magna fermentum iaculis eu non diam. Hendrerit dolor magna eget est. Ac
placerat vestibulum lectus mauris ultrices eros in cursus turpis. Egestas diam
in arcu cursus. At varius vel pharetra vel turpis nunc. Lacus vel facilisis
volutpat est velit. Ut ornare lectus sit amet est placerat in egestas. Quam
adipiscing vitae proin sagittis nisl rhoncus. Dolor purus non enim praesent.
Urna condimentum mattis pellentesque id. Magnis dis parturient montes nascetur
ridiculus. Feugiat nisl pretium fusce id. Sed cras ornare arcu dui vivamus.
Vitae turpis massa sed elementum tempus egestas sed sed. Ac feugiat sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper. Ac ut consequat semper
viverra nam libero. Consectetur lorem donec massa sapien faucibus. Purus
viverra accumsan in nisl nisi scelerisque eu ultrices.
Eu turpis egestas pretium aenean pharetra. Nisl rhoncus mattis rhoncus urna
neque viverra justo nec ultrices. Pellentesque sit amet porttitor eget dolor
morbi non arcu. Vitae justo eget magna fermentum iaculis. Quis auctor elit sed
vulputate mi sit. Purus viverra accumsan in nisl nisi scelerisque eu ultrices.
Semper auctor neque vitae tempus quam pellentesque nec nam. Rhoncus dolor
purus non enim. Sed turpis tincidunt id aliquet risus feugiat. Sit amet justo
donec enim diam vulputate ut pharetra sit. Risus pretium quam vulputate
dignissim suspendisse in est ante in. Massa sapien faucibus et molestie ac
feugiat. Id aliquet risus feugiat in ante metus. Risus ultricies tristique
nulla aliquet enim tortor at auctor urna. Sed lectus vestibulum mattis
ullamcorper velit sed ullamcorper morbi.
Lacus sed turpis tincidunt id aliquet risus feugiat in. Risus ultricies
tristique nulla aliquet enim tortor. In ornare quam viverra orci sagittis eu
volutpat. Netus et malesuada fames ac turpis egestas sed tempus urna. Fames ac
turpis egestas maecenas pharetra convallis posuere morbi. Etiam erat velit
scelerisque in dictum non. Cursus turpis massa tincidunt dui ut ornare lectus.
Tristique sollicitudin nibh sit amet commodo nulla facilisi. Pellentesque
pulvinar pellentesque habitant morbi tristique senectus et. Aliquet eget sit
amet tellus cras. Nullam ac tortor vitae purus faucibus ornare. Lacus viverra
vitae congue eu consequat. Vulputate ut pharetra sit amet. Est ante in nibh
mauris cursus mattis molestie a. Ipsum suspendisse ultrices gravida dictum
fusce ut placerat orci.
Et tortor at risus viverra. Sed libero enim sed faucibus turpis in eu. Id
cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Risus viverra
adipiscing at in. Imperdiet massa tincidunt nunc pulvinar sapien et. Nec
feugiat in fermentum posuere urna nec tincidunt. Ultricies mi eget mauris
pharetra et. Morbi tristique senectus et netus et malesuada fames ac. At quis
risus sed vulputate. Interdum velit laoreet id donec. Sapien pellentesque
habitant morbi tristique. Pharetra vel turpis nunc eget lorem dolor sed
viverra. In massa tempor nec feugiat nisl. Massa tincidunt nunc pulvinar
sapien et ligula ullamcorper malesuada proin. Mauris augue neque gravida in.
Faucibus vitae aliquet nec ullamcorper sit amet risus. Id velit ut tortor
pretium viverra suspendisse potenti. Leo integer malesuada nunc vel risus
commodo viverra maecenas. Risus quis varius quam quisque id. Aliquam malesuada
bibendum arcu vitae elementum curabitur vitae. Vestibulum lectus mauris
ultrices eros in cursus turpis. Fermentum posuere urna nec tincidunt. Magna
etiam tempor orci eu lobortis elementum nibh tellus molestie. Id ornare arcu
odio ut. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Nulla
pellentesque dignissim enim sit amet venenatis urna cursus eget. Viverra
mauris in aliquam sem fringilla ut morbi tincidunt. Quis ipsum suspendisse
ultrices gravida dictum fusce ut placerat orci. Sed cras ornare arcu dui
vivamus arcu felis. Egestas diam in arcu cursus euismod quis.
Tincidunt dui ut ornare lectus. Morbi tristique senectus et netus et. Ornare
arcu dui vivamus arcu felis bibendum ut tristique. Habitant morbi tristique
senectus et netus et malesuada fames ac. Ut tristique et egestas quis. Mollis
aliquam ut porttitor leo. Venenatis tellus in metus vulputate eu scelerisque
felis imperdiet proin. Sagittis eu volutpat odio facilisis mauris sit amet
massa. Eu facilisis sed odio morbi. Nunc consequat interdum varius sit amet
mattis. Velit dignissim sodales ut eu. Pellentesque eu tincidunt tortor
aliquam. Porta lorem mollis aliquam ut porttitor. Rhoncus urna neque viverra
justo nec ultrices. Viverra suspendisse potenti nullam ac tortor vitae purus.
Fermentum posuere urna nec tincidunt praesent semper feugiat nibh sed. Purus
sit amet luctus venenatis lectus magna fringilla urna porttitor. Sed lectus
vestibulum mattis ullamcorper velit sed ullamcorper. Nulla posuere
sollicitudin aliquam ultrices sagittis orci a scelerisque. Nisl nisi
scelerisque eu ultrices vitae auctor.
In vitae turpis massa sed elementum tempus egestas. Cursus sit amet dictum sit
amet justo donec enim. Vitae congue eu consequat ac felis donec et. Augue
interdum velit euismod in pellentesque massa placerat. Enim ut sem viverra
aliquet eget sit amet. Velit scelerisque in dictum non consectetur a erat. Sed
lectus vestibulum mattis ullamcorper velit sed ullamcorper. Nunc faucibus a
pellentesque sit amet porttitor eget. Tellus integer feugiat scelerisque
varius morbi. Lorem sed risus ultricies tristique nulla aliquet enim tortor
at. Eget nulla facilisi etiam dignissim diam quis enim lobortis scelerisque.
Adipiscing elit duis tristique sollicitudin. Adipiscing elit pellentesque
habitant morbi tristique. Ac tincidunt vitae semper quis lectus nulla at.
Maecenas sed enim ut sem viverra. Erat pellentesque adipiscing commodo elit at
imperdiet. Dolor morbi non arcu risus quis varius quam quisque. Fringilla urna
porttitor rhoncus dolor purus non enim praesent. Tellus integer feugiat
scelerisque varius morbi enim nunc faucibus a. Felis eget nunc lobortis mattis
aliquam faucibus purus in. Fringilla phasellus faucibus scelerisque eleifend.
Pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Risus
ultricies tristique nulla aliquet. Lectus sit amet est placerat. Ac ut
consequat semper viverra nam libero justo. Dapibus ultrices in iaculis nunc
sed augue. Mattis ullamcorper velit sed ullamcorper. Eget nullam non nisi est.
Vitae elementum curabitur vitae nunc sed velit.
Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempor nec
feugiat nisl pretium fusce id velit ut. Nulla pellentesque dignissim enim sit
amet venenatis. Sed tempus urna et pharetra pharetra. Congue quisque egestas
diam in. Convallis posuere morbi leo urna. Nec tincidunt praesent semper
feugiat nibh sed pulvinar proin gravida. Sagittis nisl rhoncus mattis rhoncus
urna neque viverra justo. Scelerisque felis imperdiet proin fermentum leo vel.
Ut placerat orci nulla pellentesque dignissim enim sit amet. In cursus turpis
massa tincidunt dui. Rutrum quisque non tellus orci ac auctor augue mauris
augue. Cursus vitae congue mauris rhoncus aenean vel elit scelerisque mauris.
Scelerisque fermentum dui faucibus in ornare quam viverra orci. Habitant morbi
tristique senectus et netus et. Ridiculus mus mauris vitae ultricies leo.
Vitae semper quis lectus nulla at volutpat diam. Purus faucibus ornare
suspendisse sed nisi. Enim lobortis scelerisque fermentum dui faucibus in
ornare quam. Mi tempus imperdiet nulla malesuada pellentesque elit eget.
Varius duis at consectetur lorem donec. Pulvinar pellentesque habitant morbi
tristique senectus et netus et. A iaculis at erat pellentesque adipiscing
commodo elit at imperdiet.
Mi ipsum faucibus vitae aliquet nec. Libero volutpat sed cras ornare arcu dui
vivamus arcu. Natoque penatibus et magnis dis parturient montes nascetur
ridiculus. Maecenas volutpat blandit aliquam etiam erat velit scelerisque.
Cras adipiscing enim eu turpis. Nec tincidunt praesent semper feugiat nibh sed
pulvinar. Justo laoreet sit amet cursus sit amet dictum sit. Velit scelerisque
in dictum non consectetur a erat nam. Turpis tincidunt id aliquet risus
feugiat in ante. Aliquet risus feugiat in ante metus dictum. Hac habitasse
platea dictumst quisque sagittis purus sit. Et pharetra pharetra massa massa
ultricies. Sit amet nisl suscipit adipiscing bibendum est ultricies integer.
Venenatis urna cursus eget nunc scelerisque viverra mauris in. Integer quis
auctor elit sed. In est ante in nibh mauris cursus mattis molestie.
Scelerisque in dictum non consectetur a erat nam at.
Lectus sit amet est placerat in. Sit amet cursus sit amet. Nibh nisl
condimentum id venenatis a condimentum. Purus ut faucibus pulvinar elementum
integer enim. Pharetra sit amet aliquam id diam maecenas. Id cursus metus
aliquam eleifend mi in nulla posuere. Lobortis mattis aliquam faucibus purus
in massa tempor nec. Urna neque viverra justo nec ultrices dui sapien eget.
Enim ut sem viverra aliquet eget sit amet. In eu mi bibendum neque egestas
congue quisque egestas. Enim neque volutpat ac tincidunt. Orci ac auctor augue
mauris augue neque gravida in fermentum. Velit aliquet sagittis id
consectetur. Enim ut sem viverra aliquet eget sit amet tellus.
Semper auctor neque vitae tempus quam pellentesque nec. Non blandit massa enim
nec dui nunc. Morbi blandit cursus risus at ultrices mi tempus imperdiet
nulla. Arcu non odio euismod lacinia at quis risus. Dictum varius duis at
consectetur lorem donec massa. Blandit massa enim nec dui. Nibh ipsum
consequat nisl vel. Turpis in eu mi bibendum neque. Ut tristique et egestas
quis. Ac odio tempor orci dapibus. Gravida dictum fusce ut placerat orci nulla
pellentesque dignissim. Integer feugiat scelerisque varius morbi enim. Libero
volutpat sed cras ornare arcu dui. Odio aenean sed adipiscing diam. Et egestas
quis ipsum suspendisse ultrices. Aliquet lectus proin nibh nisl condimentum.
Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit.
Blandit massa enim nec dui. Tellus molestie nunc non blandit massa enim nec.
Tortor vitae purus faucibus ornare suspendisse sed nisi.
Nascetur ridiculus mus mauris vitae ultricies leo. Elementum facilisis leo vel
fringilla est ullamcorper eget nulla. Diam maecenas ultricies mi eget. Duis
tristique sollicitudin nibh sit amet commodo nulla. Tempus iaculis urna id
volutpat lacus laoreet non curabitur gravida. Dictumst quisque sagittis purus
sit amet. Viverra mauris in aliquam sem. Quis risus sed vulputate odio ut enim
blandit volutpat maecenas. Condimentum mattis pellentesque id nibh tortor id.
Non sodales neque sodales ut etiam sit amet. Ipsum consequat nisl vel pretium.
Cursus in hac habitasse platea dictumst quisque sagittis purus sit. Fringilla
est ullamcorper eget nulla facilisi etiam. Tellus elementum sagittis vitae et
leo duis ut diam quam. Nisl vel pretium lectus quam id leo in.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-table-inline-1000.toml 0000644 0000000 0000000 00000046711 00000000000 022026 0 ustar 00 key = { key1 = "abcdefg", key2 = "abcdefg", key3 = "abcdefg", key4 = "abcdefg", key5 = "abcdefg", key6 = "abcdefg", key7 = "abcdefg", key8 = "abcdefg", key9 = "abcdefg", key10 = "abcdefg", key11 = "abcdefg", key12 = "abcdefg", key13 = "abcdefg", key14 = "abcdefg", key15 = "abcdefg", key16 = "abcdefg", key17 = "abcdefg", key18 = "abcdefg", key19 = "abcdefg", key20 = "abcdefg", key21 = "abcdefg", key22 = "abcdefg", key23 = "abcdefg", key24 = "abcdefg", key25 = "abcdefg", key26 = "abcdefg", key27 = "abcdefg", key28 = "abcdefg", key29 = "abcdefg", key30 = "abcdefg", key31 = "abcdefg", key32 = "abcdefg", key33 = "abcdefg", key34 = "abcdefg", key35 = "abcdefg", key36 = "abcdefg", key37 = "abcdefg", key38 = "abcdefg", key39 = "abcdefg", key40 = "abcdefg", key41 = "abcdefg", key42 = "abcdefg", key43 = "abcdefg", key44 = "abcdefg", key45 = "abcdefg", key46 = "abcdefg", key47 = "abcdefg", key48 = "abcdefg", key49 = "abcdefg", key50 = "abcdefg", key51 = "abcdefg", key52 = "abcdefg", key53 = "abcdefg", key54 = "abcdefg", key55 = "abcdefg", key56 = "abcdefg", key57 = "abcdefg", key58 = "abcdefg", key59 = "abcdefg", key60 = "abcdefg", key61 = "abcdefg", key62 = "abcdefg", key63 = "abcdefg", key64 = "abcdefg", key65 = "abcdefg", key66 = "abcdefg", key67 = "abcdefg", key68 = "abcdefg", key69 = "abcdefg", key70 = "abcdefg", key71 = "abcdefg", key72 = "abcdefg", key73 = "abcdefg", key74 = "abcdefg", key75 = "abcdefg", key76 = "abcdefg", key77 = "abcdefg", key78 = "abcdefg", key79 = "abcdefg", key80 = "abcdefg", key81 = "abcdefg", key82 = "abcdefg", key83 = "abcdefg", key84 = "abcdefg", key85 = "abcdefg", key86 = "abcdefg", key87 = "abcdefg", key88 = "abcdefg", key89 = "abcdefg", key90 = "abcdefg", key91 = "abcdefg", key92 = "abcdefg", key93 = "abcdefg", key94 = "abcdefg", key95 = "abcdefg", key96 = "abcdefg", key97 = "abcdefg", key98 = "abcdefg", key99 = "abcdefg", key100 = "abcdefg", key101 = "abcdefg", key102 = "abcdefg", key103 = "abcdefg", key104 = "abcdefg", key105 = "abcdefg", key106 = "abcdefg", key107 = "abcdefg", key108 = "abcdefg", key109 = "abcdefg", key110 = "abcdefg", key111 = "abcdefg", key112 = "abcdefg", key113 = "abcdefg", key114 = "abcdefg", key115 = "abcdefg", key116 = "abcdefg", key117 = "abcdefg", key118 = "abcdefg", key119 = "abcdefg", key120 = "abcdefg", key121 = "abcdefg", key122 = "abcdefg", key123 = "abcdefg", key124 = "abcdefg", key125 = "abcdefg", key126 = "abcdefg", key127 = "abcdefg", key128 = "abcdefg", key129 = "abcdefg", key130 = "abcdefg", key131 = "abcdefg", key132 = "abcdefg", key133 = "abcdefg", key134 = "abcdefg", key135 = "abcdefg", key136 = "abcdefg", key137 = "abcdefg", key138 = "abcdefg", key139 = "abcdefg", key140 = "abcdefg", key141 = "abcdefg", key142 = "abcdefg", key143 = "abcdefg", key144 = "abcdefg", key145 = "abcdefg", key146 = "abcdefg", key147 = "abcdefg", key148 = "abcdefg", key149 = "abcdefg", key150 = "abcdefg", key151 = "abcdefg", key152 = "abcdefg", key153 = "abcdefg", key154 = "abcdefg", key155 = "abcdefg", key156 = "abcdefg", key157 = "abcdefg", key158 = "abcdefg", key159 = "abcdefg", key160 = "abcdefg", key161 = "abcdefg", key162 = "abcdefg", key163 = "abcdefg", key164 = "abcdefg", key165 = "abcdefg", key166 = "abcdefg", key167 = "abcdefg", key168 = "abcdefg", key169 = "abcdefg", key170 = "abcdefg", key171 = "abcdefg", key172 = "abcdefg", key173 = "abcdefg", key174 = "abcdefg", key175 = "abcdefg", key176 = "abcdefg", key177 = "abcdefg", key178 = "abcdefg", key179 = "abcdefg", key180 = "abcdefg", key181 = "abcdefg", key182 = "abcdefg", key183 = "abcdefg", key184 = "abcdefg", key185 = "abcdefg", key186 = "abcdefg", key187 = "abcdefg", key188 = "abcdefg", key189 = "abcdefg", key190 = "abcdefg", key191 = "abcdefg", key192 = "abcdefg", key193 = "abcdefg", key194 = "abcdefg", key195 = "abcdefg", key196 = "abcdefg", key197 = "abcdefg", key198 = "abcdefg", key199 = "abcdefg", key200 = "abcdefg", key201 = "abcdefg", key202 = "abcdefg", key203 = "abcdefg", key204 = "abcdefg", key205 = "abcdefg", key206 = "abcdefg", key207 = "abcdefg", key208 = "abcdefg", key209 = "abcdefg", key210 = "abcdefg", key211 = "abcdefg", key212 = "abcdefg", key213 = "abcdefg", key214 = "abcdefg", key215 = "abcdefg", key216 = "abcdefg", key217 = "abcdefg", key218 = "abcdefg", key219 = "abcdefg", key220 = "abcdefg", key221 = "abcdefg", key222 = "abcdefg", key223 = "abcdefg", key224 = "abcdefg", key225 = "abcdefg", key226 = "abcdefg", key227 = "abcdefg", key228 = "abcdefg", key229 = "abcdefg", key230 = "abcdefg", key231 = "abcdefg", key232 = "abcdefg", key233 = "abcdefg", key234 = "abcdefg", key235 = "abcdefg", key236 = "abcdefg", key237 = "abcdefg", key238 = "abcdefg", key239 = "abcdefg", key240 = "abcdefg", key241 = "abcdefg", key242 = "abcdefg", key243 = "abcdefg", key244 = "abcdefg", key245 = "abcdefg", key246 = "abcdefg", key247 = "abcdefg", key248 = "abcdefg", key249 = "abcdefg", key250 = "abcdefg", key251 = "abcdefg", key252 = "abcdefg", key253 = "abcdefg", key254 = "abcdefg", key255 = "abcdefg", key256 = "abcdefg", key257 = "abcdefg", key258 = "abcdefg", key259 = "abcdefg", key260 = "abcdefg", key261 = "abcdefg", key262 = "abcdefg", key263 = "abcdefg", key264 = "abcdefg", key265 = "abcdefg", key266 = "abcdefg", key267 = "abcdefg", key268 = "abcdefg", key269 = "abcdefg", key270 = "abcdefg", key271 = "abcdefg", key272 = "abcdefg", key273 = "abcdefg", key274 = "abcdefg", key275 = "abcdefg", key276 = "abcdefg", key277 = "abcdefg", key278 = "abcdefg", key279 = "abcdefg", key280 = "abcdefg", key281 = "abcdefg", key282 = "abcdefg", key283 = "abcdefg", key284 = "abcdefg", key285 = "abcdefg", key286 = "abcdefg", key287 = "abcdefg", key288 = "abcdefg", key289 = "abcdefg", key290 = "abcdefg", key291 = "abcdefg", key292 = "abcdefg", key293 = "abcdefg", key294 = "abcdefg", key295 = "abcdefg", key296 = "abcdefg", key297 = "abcdefg", key298 = "abcdefg", key299 = "abcdefg", key300 = "abcdefg", key301 = "abcdefg", key302 = "abcdefg", key303 = "abcdefg", key304 = "abcdefg", key305 = "abcdefg", key306 = "abcdefg", key307 = "abcdefg", key308 = "abcdefg", key309 = "abcdefg", key310 = "abcdefg", key311 = "abcdefg", key312 = "abcdefg", key313 = "abcdefg", key314 = "abcdefg", key315 = "abcdefg", key316 = "abcdefg", key317 = "abcdefg", key318 = "abcdefg", key319 = "abcdefg", key320 = "abcdefg", key321 = "abcdefg", key322 = "abcdefg", key323 = "abcdefg", key324 = "abcdefg", key325 = "abcdefg", key326 = "abcdefg", key327 = "abcdefg", key328 = "abcdefg", key329 = "abcdefg", key330 = "abcdefg", key331 = "abcdefg", key332 = "abcdefg", key333 = "abcdefg", key334 = "abcdefg", key335 = "abcdefg", key336 = "abcdefg", key337 = "abcdefg", key338 = "abcdefg", key339 = "abcdefg", key340 = "abcdefg", key341 = "abcdefg", key342 = "abcdefg", key343 = "abcdefg", key344 = "abcdefg", key345 = "abcdefg", key346 = "abcdefg", key347 = "abcdefg", key348 = "abcdefg", key349 = "abcdefg", key350 = "abcdefg", key351 = "abcdefg", key352 = "abcdefg", key353 = "abcdefg", key354 = "abcdefg", key355 = "abcdefg", key356 = "abcdefg", key357 = "abcdefg", key358 = "abcdefg", key359 = "abcdefg", key360 = "abcdefg", key361 = "abcdefg", key362 = "abcdefg", key363 = "abcdefg", key364 = "abcdefg", key365 = "abcdefg", key366 = "abcdefg", key367 = "abcdefg", key368 = "abcdefg", key369 = "abcdefg", key370 = "abcdefg", key371 = "abcdefg", key372 = "abcdefg", key373 = "abcdefg", key374 = "abcdefg", key375 = "abcdefg", key376 = "abcdefg", key377 = "abcdefg", key378 = "abcdefg", key379 = "abcdefg", key380 = "abcdefg", key381 = "abcdefg", key382 = "abcdefg", key383 = "abcdefg", key384 = "abcdefg", key385 = "abcdefg", key386 = "abcdefg", key387 = "abcdefg", key388 = "abcdefg", key389 = "abcdefg", key390 = "abcdefg", key391 = "abcdefg", key392 = "abcdefg", key393 = "abcdefg", key394 = "abcdefg", key395 = "abcdefg", key396 = "abcdefg", key397 = "abcdefg", key398 = "abcdefg", key399 = "abcdefg", key400 = "abcdefg", key401 = "abcdefg", key402 = "abcdefg", key403 = "abcdefg", key404 = "abcdefg", key405 = "abcdefg", key406 = "abcdefg", key407 = "abcdefg", key408 = "abcdefg", key409 = "abcdefg", key410 = "abcdefg", key411 = "abcdefg", key412 = "abcdefg", key413 = "abcdefg", key414 = "abcdefg", key415 = "abcdefg", key416 = "abcdefg", key417 = "abcdefg", key418 = "abcdefg", key419 = "abcdefg", key420 = "abcdefg", key421 = "abcdefg", key422 = "abcdefg", key423 = "abcdefg", key424 = "abcdefg", key425 = "abcdefg", key426 = "abcdefg", key427 = "abcdefg", key428 = "abcdefg", key429 = "abcdefg", key430 = "abcdefg", key431 = "abcdefg", key432 = "abcdefg", key433 = "abcdefg", key434 = "abcdefg", key435 = "abcdefg", key436 = "abcdefg", key437 = "abcdefg", key438 = "abcdefg", key439 = "abcdefg", key440 = "abcdefg", key441 = "abcdefg", key442 = "abcdefg", key443 = "abcdefg", key444 = "abcdefg", key445 = "abcdefg", key446 = "abcdefg", key447 = "abcdefg", key448 = "abcdefg", key449 = "abcdefg", key450 = "abcdefg", key451 = "abcdefg", key452 = "abcdefg", key453 = "abcdefg", key454 = "abcdefg", key455 = "abcdefg", key456 = "abcdefg", key457 = "abcdefg", key458 = "abcdefg", key459 = "abcdefg", key460 = "abcdefg", key461 = "abcdefg", key462 = "abcdefg", key463 = "abcdefg", key464 = "abcdefg", key465 = "abcdefg", key466 = "abcdefg", key467 = "abcdefg", key468 = "abcdefg", key469 = "abcdefg", key470 = "abcdefg", key471 = "abcdefg", key472 = "abcdefg", key473 = "abcdefg", key474 = "abcdefg", key475 = "abcdefg", key476 = "abcdefg", key477 = "abcdefg", key478 = "abcdefg", key479 = "abcdefg", key480 = "abcdefg", key481 = "abcdefg", key482 = "abcdefg", key483 = "abcdefg", key484 = "abcdefg", key485 = "abcdefg", key486 = "abcdefg", key487 = "abcdefg", key488 = "abcdefg", key489 = "abcdefg", key490 = "abcdefg", key491 = "abcdefg", key492 = "abcdefg", key493 = "abcdefg", key494 = "abcdefg", key495 = "abcdefg", key496 = "abcdefg", key497 = "abcdefg", key498 = "abcdefg", key499 = "abcdefg", key500 = "abcdefg", key501 = "abcdefg", key502 = "abcdefg", key503 = "abcdefg", key504 = "abcdefg", key505 = "abcdefg", key506 = "abcdefg", key507 = "abcdefg", key508 = "abcdefg", key509 = "abcdefg", key510 = "abcdefg", key511 = "abcdefg", key512 = "abcdefg", key513 = "abcdefg", key514 = "abcdefg", key515 = "abcdefg", key516 = "abcdefg", key517 = "abcdefg", key518 = "abcdefg", key519 = "abcdefg", key520 = "abcdefg", key521 = "abcdefg", key522 = "abcdefg", key523 = "abcdefg", key524 = "abcdefg", key525 = "abcdefg", key526 = "abcdefg", key527 = "abcdefg", key528 = "abcdefg", key529 = "abcdefg", key530 = "abcdefg", key531 = "abcdefg", key532 = "abcdefg", key533 = "abcdefg", key534 = "abcdefg", key535 = "abcdefg", key536 = "abcdefg", key537 = "abcdefg", key538 = "abcdefg", key539 = "abcdefg", key540 = "abcdefg", key541 = "abcdefg", key542 = "abcdefg", key543 = "abcdefg", key544 = "abcdefg", key545 = "abcdefg", key546 = "abcdefg", key547 = "abcdefg", key548 = "abcdefg", key549 = "abcdefg", key550 = "abcdefg", key551 = "abcdefg", key552 = "abcdefg", key553 = "abcdefg", key554 = "abcdefg", key555 = "abcdefg", key556 = "abcdefg", key557 = "abcdefg", key558 = "abcdefg", key559 = "abcdefg", key560 = "abcdefg", key561 = "abcdefg", key562 = "abcdefg", key563 = "abcdefg", key564 = "abcdefg", key565 = "abcdefg", key566 = "abcdefg", key567 = "abcdefg", key568 = "abcdefg", key569 = "abcdefg", key570 = "abcdefg", key571 = "abcdefg", key572 = "abcdefg", key573 = "abcdefg", key574 = "abcdefg", key575 = "abcdefg", key576 = "abcdefg", key577 = "abcdefg", key578 = "abcdefg", key579 = "abcdefg", key580 = "abcdefg", key581 = "abcdefg", key582 = "abcdefg", key583 = "abcdefg", key584 = "abcdefg", key585 = "abcdefg", key586 = "abcdefg", key587 = "abcdefg", key588 = "abcdefg", key589 = "abcdefg", key590 = "abcdefg", key591 = "abcdefg", key592 = "abcdefg", key593 = "abcdefg", key594 = "abcdefg", key595 = "abcdefg", key596 = "abcdefg", key597 = "abcdefg", key598 = "abcdefg", key599 = "abcdefg", key600 = "abcdefg", key601 = "abcdefg", key602 = "abcdefg", key603 = "abcdefg", key604 = "abcdefg", key605 = "abcdefg", key606 = "abcdefg", key607 = "abcdefg", key608 = "abcdefg", key609 = "abcdefg", key610 = "abcdefg", key611 = "abcdefg", key612 = "abcdefg", key613 = "abcdefg", key614 = "abcdefg", key615 = "abcdefg", key616 = "abcdefg", key617 = "abcdefg", key618 = "abcdefg", key619 = "abcdefg", key620 = "abcdefg", key621 = "abcdefg", key622 = "abcdefg", key623 = "abcdefg", key624 = "abcdefg", key625 = "abcdefg", key626 = "abcdefg", key627 = "abcdefg", key628 = "abcdefg", key629 = "abcdefg", key630 = "abcdefg", key631 = "abcdefg", key632 = "abcdefg", key633 = "abcdefg", key634 = "abcdefg", key635 = "abcdefg", key636 = "abcdefg", key637 = "abcdefg", key638 = "abcdefg", key639 = "abcdefg", key640 = "abcdefg", key641 = "abcdefg", key642 = "abcdefg", key643 = "abcdefg", key644 = "abcdefg", key645 = "abcdefg", key646 = "abcdefg", key647 = "abcdefg", key648 = "abcdefg", key649 = "abcdefg", key650 = "abcdefg", key651 = "abcdefg", key652 = "abcdefg", key653 = "abcdefg", key654 = "abcdefg", key655 = "abcdefg", key656 = "abcdefg", key657 = "abcdefg", key658 = "abcdefg", key659 = "abcdefg", key660 = "abcdefg", key661 = "abcdefg", key662 = "abcdefg", key663 = "abcdefg", key664 = "abcdefg", key665 = "abcdefg", key666 = "abcdefg", key667 = "abcdefg", key668 = "abcdefg", key669 = "abcdefg", key670 = "abcdefg", key671 = "abcdefg", key672 = "abcdefg", key673 = "abcdefg", key674 = "abcdefg", key675 = "abcdefg", key676 = "abcdefg", key677 = "abcdefg", key678 = "abcdefg", key679 = "abcdefg", key680 = "abcdefg", key681 = "abcdefg", key682 = "abcdefg", key683 = "abcdefg", key684 = "abcdefg", key685 = "abcdefg", key686 = "abcdefg", key687 = "abcdefg", key688 = "abcdefg", key689 = "abcdefg", key690 = "abcdefg", key691 = "abcdefg", key692 = "abcdefg", key693 = "abcdefg", key694 = "abcdefg", key695 = "abcdefg", key696 = "abcdefg", key697 = "abcdefg", key698 = "abcdefg", key699 = "abcdefg", key700 = "abcdefg", key701 = "abcdefg", key702 = "abcdefg", key703 = "abcdefg", key704 = "abcdefg", key705 = "abcdefg", key706 = "abcdefg", key707 = "abcdefg", key708 = "abcdefg", key709 = "abcdefg", key710 = "abcdefg", key711 = "abcdefg", key712 = "abcdefg", key713 = "abcdefg", key714 = "abcdefg", key715 = "abcdefg", key716 = "abcdefg", key717 = "abcdefg", key718 = "abcdefg", key719 = "abcdefg", key720 = "abcdefg", key721 = "abcdefg", key722 = "abcdefg", key723 = "abcdefg", key724 = "abcdefg", key725 = "abcdefg", key726 = "abcdefg", key727 = "abcdefg", key728 = "abcdefg", key729 = "abcdefg", key730 = "abcdefg", key731 = "abcdefg", key732 = "abcdefg", key733 = "abcdefg", key734 = "abcdefg", key735 = "abcdefg", key736 = "abcdefg", key737 = "abcdefg", key738 = "abcdefg", key739 = "abcdefg", key740 = "abcdefg", key741 = "abcdefg", key742 = "abcdefg", key743 = "abcdefg", key744 = "abcdefg", key745 = "abcdefg", key746 = "abcdefg", key747 = "abcdefg", key748 = "abcdefg", key749 = "abcdefg", key750 = "abcdefg", key751 = "abcdefg", key752 = "abcdefg", key753 = "abcdefg", key754 = "abcdefg", key755 = "abcdefg", key756 = "abcdefg", key757 = "abcdefg", key758 = "abcdefg", key759 = "abcdefg", key760 = "abcdefg", key761 = "abcdefg", key762 = "abcdefg", key763 = "abcdefg", key764 = "abcdefg", key765 = "abcdefg", key766 = "abcdefg", key767 = "abcdefg", key768 = "abcdefg", key769 = "abcdefg", key770 = "abcdefg", key771 = "abcdefg", key772 = "abcdefg", key773 = "abcdefg", key774 = "abcdefg", key775 = "abcdefg", key776 = "abcdefg", key777 = "abcdefg", key778 = "abcdefg", key779 = "abcdefg", key780 = "abcdefg", key781 = "abcdefg", key782 = "abcdefg", key783 = "abcdefg", key784 = "abcdefg", key785 = "abcdefg", key786 = "abcdefg", key787 = "abcdefg", key788 = "abcdefg", key789 = "abcdefg", key790 = "abcdefg", key791 = "abcdefg", key792 = "abcdefg", key793 = "abcdefg", key794 = "abcdefg", key795 = "abcdefg", key796 = "abcdefg", key797 = "abcdefg", key798 = "abcdefg", key799 = "abcdefg", key800 = "abcdefg", key801 = "abcdefg", key802 = "abcdefg", key803 = "abcdefg", key804 = "abcdefg", key805 = "abcdefg", key806 = "abcdefg", key807 = "abcdefg", key808 = "abcdefg", key809 = "abcdefg", key810 = "abcdefg", key811 = "abcdefg", key812 = "abcdefg", key813 = "abcdefg", key814 = "abcdefg", key815 = "abcdefg", key816 = "abcdefg", key817 = "abcdefg", key818 = "abcdefg", key819 = "abcdefg", key820 = "abcdefg", key821 = "abcdefg", key822 = "abcdefg", key823 = "abcdefg", key824 = "abcdefg", key825 = "abcdefg", key826 = "abcdefg", key827 = "abcdefg", key828 = "abcdefg", key829 = "abcdefg", key830 = "abcdefg", key831 = "abcdefg", key832 = "abcdefg", key833 = "abcdefg", key834 = "abcdefg", key835 = "abcdefg", key836 = "abcdefg", key837 = "abcdefg", key838 = "abcdefg", key839 = "abcdefg", key840 = "abcdefg", key841 = "abcdefg", key842 = "abcdefg", key843 = "abcdefg", key844 = "abcdefg", key845 = "abcdefg", key846 = "abcdefg", key847 = "abcdefg", key848 = "abcdefg", key849 = "abcdefg", key850 = "abcdefg", key851 = "abcdefg", key852 = "abcdefg", key853 = "abcdefg", key854 = "abcdefg", key855 = "abcdefg", key856 = "abcdefg", key857 = "abcdefg", key858 = "abcdefg", key859 = "abcdefg", key860 = "abcdefg", key861 = "abcdefg", key862 = "abcdefg", key863 = "abcdefg", key864 = "abcdefg", key865 = "abcdefg", key866 = "abcdefg", key867 = "abcdefg", key868 = "abcdefg", key869 = "abcdefg", key870 = "abcdefg", key871 = "abcdefg", key872 = "abcdefg", key873 = "abcdefg", key874 = "abcdefg", key875 = "abcdefg", key876 = "abcdefg", key877 = "abcdefg", key878 = "abcdefg", key879 = "abcdefg", key880 = "abcdefg", key881 = "abcdefg", key882 = "abcdefg", key883 = "abcdefg", key884 = "abcdefg", key885 = "abcdefg", key886 = "abcdefg", key887 = "abcdefg", key888 = "abcdefg", key889 = "abcdefg", key890 = "abcdefg", key891 = "abcdefg", key892 = "abcdefg", key893 = "abcdefg", key894 = "abcdefg", key895 = "abcdefg", key896 = "abcdefg", key897 = "abcdefg", key898 = "abcdefg", key899 = "abcdefg", key900 = "abcdefg", key901 = "abcdefg", key902 = "abcdefg", key903 = "abcdefg", key904 = "abcdefg", key905 = "abcdefg", key906 = "abcdefg", key907 = "abcdefg", key908 = "abcdefg", key909 = "abcdefg", key910 = "abcdefg", key911 = "abcdefg", key912 = "abcdefg", key913 = "abcdefg", key914 = "abcdefg", key915 = "abcdefg", key916 = "abcdefg", key917 = "abcdefg", key918 = "abcdefg", key919 = "abcdefg", key920 = "abcdefg", key921 = "abcdefg", key922 = "abcdefg", key923 = "abcdefg", key924 = "abcdefg", key925 = "abcdefg", key926 = "abcdefg", key927 = "abcdefg", key928 = "abcdefg", key929 = "abcdefg", key930 = "abcdefg", key931 = "abcdefg", key932 = "abcdefg", key933 = "abcdefg", key934 = "abcdefg", key935 = "abcdefg", key936 = "abcdefg", key937 = "abcdefg", key938 = "abcdefg", key939 = "abcdefg", key940 = "abcdefg", key941 = "abcdefg", key942 = "abcdefg", key943 = "abcdefg", key944 = "abcdefg", key945 = "abcdefg", key946 = "abcdefg", key947 = "abcdefg", key948 = "abcdefg", key949 = "abcdefg", key950 = "abcdefg", key951 = "abcdefg", key952 = "abcdefg", key953 = "abcdefg", key954 = "abcdefg", key955 = "abcdefg", key956 = "abcdefg", key957 = "abcdefg", key958 = "abcdefg", key959 = "abcdefg", key960 = "abcdefg", key961 = "abcdefg", key962 = "abcdefg", key963 = "abcdefg", key964 = "abcdefg", key965 = "abcdefg", key966 = "abcdefg", key967 = "abcdefg", key968 = "abcdefg", key969 = "abcdefg", key970 = "abcdefg", key971 = "abcdefg", key972 = "abcdefg", key973 = "abcdefg", key974 = "abcdefg", key975 = "abcdefg", key976 = "abcdefg", key977 = "abcdefg", key978 = "abcdefg", key979 = "abcdefg", key980 = "abcdefg", key981 = "abcdefg", key982 = "abcdefg", key983 = "abcdefg", key984 = "abcdefg", key985 = "abcdefg", key986 = "abcdefg", key987 = "abcdefg", key988 = "abcdefg", key989 = "abcdefg", key990 = "abcdefg", key991 = "abcdefg", key992 = "abcdefg", key993 = "abcdefg", key994 = "abcdefg", key995 = "abcdefg", key996 = "abcdefg", key997 = "abcdefg", key998 = "abcdefg", key999 = "abcdefg", key1000 = "abcdefg", end = true}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-table-inline-1000.yaml 0000644 0000000 0000000 00000042767 00000000000 022024 0 ustar 00 key:
key1: abcdefg
key2: abcdefg
key3: abcdefg
key4: abcdefg
key5: abcdefg
key6: abcdefg
key7: abcdefg
key8: abcdefg
key9: abcdefg
key10: abcdefg
key11: abcdefg
key12: abcdefg
key13: abcdefg
key14: abcdefg
key15: abcdefg
key16: abcdefg
key17: abcdefg
key18: abcdefg
key19: abcdefg
key20: abcdefg
key21: abcdefg
key22: abcdefg
key23: abcdefg
key24: abcdefg
key25: abcdefg
key26: abcdefg
key27: abcdefg
key28: abcdefg
key29: abcdefg
key30: abcdefg
key31: abcdefg
key32: abcdefg
key33: abcdefg
key34: abcdefg
key35: abcdefg
key36: abcdefg
key37: abcdefg
key38: abcdefg
key39: abcdefg
key40: abcdefg
key41: abcdefg
key42: abcdefg
key43: abcdefg
key44: abcdefg
key45: abcdefg
key46: abcdefg
key47: abcdefg
key48: abcdefg
key49: abcdefg
key50: abcdefg
key51: abcdefg
key52: abcdefg
key53: abcdefg
key54: abcdefg
key55: abcdefg
key56: abcdefg
key57: abcdefg
key58: abcdefg
key59: abcdefg
key60: abcdefg
key61: abcdefg
key62: abcdefg
key63: abcdefg
key64: abcdefg
key65: abcdefg
key66: abcdefg
key67: abcdefg
key68: abcdefg
key69: abcdefg
key70: abcdefg
key71: abcdefg
key72: abcdefg
key73: abcdefg
key74: abcdefg
key75: abcdefg
key76: abcdefg
key77: abcdefg
key78: abcdefg
key79: abcdefg
key80: abcdefg
key81: abcdefg
key82: abcdefg
key83: abcdefg
key84: abcdefg
key85: abcdefg
key86: abcdefg
key87: abcdefg
key88: abcdefg
key89: abcdefg
key90: abcdefg
key91: abcdefg
key92: abcdefg
key93: abcdefg
key94: abcdefg
key95: abcdefg
key96: abcdefg
key97: abcdefg
key98: abcdefg
key99: abcdefg
key100: abcdefg
key101: abcdefg
key102: abcdefg
key103: abcdefg
key104: abcdefg
key105: abcdefg
key106: abcdefg
key107: abcdefg
key108: abcdefg
key109: abcdefg
key110: abcdefg
key111: abcdefg
key112: abcdefg
key113: abcdefg
key114: abcdefg
key115: abcdefg
key116: abcdefg
key117: abcdefg
key118: abcdefg
key119: abcdefg
key120: abcdefg
key121: abcdefg
key122: abcdefg
key123: abcdefg
key124: abcdefg
key125: abcdefg
key126: abcdefg
key127: abcdefg
key128: abcdefg
key129: abcdefg
key130: abcdefg
key131: abcdefg
key132: abcdefg
key133: abcdefg
key134: abcdefg
key135: abcdefg
key136: abcdefg
key137: abcdefg
key138: abcdefg
key139: abcdefg
key140: abcdefg
key141: abcdefg
key142: abcdefg
key143: abcdefg
key144: abcdefg
key145: abcdefg
key146: abcdefg
key147: abcdefg
key148: abcdefg
key149: abcdefg
key150: abcdefg
key151: abcdefg
key152: abcdefg
key153: abcdefg
key154: abcdefg
key155: abcdefg
key156: abcdefg
key157: abcdefg
key158: abcdefg
key159: abcdefg
key160: abcdefg
key161: abcdefg
key162: abcdefg
key163: abcdefg
key164: abcdefg
key165: abcdefg
key166: abcdefg
key167: abcdefg
key168: abcdefg
key169: abcdefg
key170: abcdefg
key171: abcdefg
key172: abcdefg
key173: abcdefg
key174: abcdefg
key175: abcdefg
key176: abcdefg
key177: abcdefg
key178: abcdefg
key179: abcdefg
key180: abcdefg
key181: abcdefg
key182: abcdefg
key183: abcdefg
key184: abcdefg
key185: abcdefg
key186: abcdefg
key187: abcdefg
key188: abcdefg
key189: abcdefg
key190: abcdefg
key191: abcdefg
key192: abcdefg
key193: abcdefg
key194: abcdefg
key195: abcdefg
key196: abcdefg
key197: abcdefg
key198: abcdefg
key199: abcdefg
key200: abcdefg
key201: abcdefg
key202: abcdefg
key203: abcdefg
key204: abcdefg
key205: abcdefg
key206: abcdefg
key207: abcdefg
key208: abcdefg
key209: abcdefg
key210: abcdefg
key211: abcdefg
key212: abcdefg
key213: abcdefg
key214: abcdefg
key215: abcdefg
key216: abcdefg
key217: abcdefg
key218: abcdefg
key219: abcdefg
key220: abcdefg
key221: abcdefg
key222: abcdefg
key223: abcdefg
key224: abcdefg
key225: abcdefg
key226: abcdefg
key227: abcdefg
key228: abcdefg
key229: abcdefg
key230: abcdefg
key231: abcdefg
key232: abcdefg
key233: abcdefg
key234: abcdefg
key235: abcdefg
key236: abcdefg
key237: abcdefg
key238: abcdefg
key239: abcdefg
key240: abcdefg
key241: abcdefg
key242: abcdefg
key243: abcdefg
key244: abcdefg
key245: abcdefg
key246: abcdefg
key247: abcdefg
key248: abcdefg
key249: abcdefg
key250: abcdefg
key251: abcdefg
key252: abcdefg
key253: abcdefg
key254: abcdefg
key255: abcdefg
key256: abcdefg
key257: abcdefg
key258: abcdefg
key259: abcdefg
key260: abcdefg
key261: abcdefg
key262: abcdefg
key263: abcdefg
key264: abcdefg
key265: abcdefg
key266: abcdefg
key267: abcdefg
key268: abcdefg
key269: abcdefg
key270: abcdefg
key271: abcdefg
key272: abcdefg
key273: abcdefg
key274: abcdefg
key275: abcdefg
key276: abcdefg
key277: abcdefg
key278: abcdefg
key279: abcdefg
key280: abcdefg
key281: abcdefg
key282: abcdefg
key283: abcdefg
key284: abcdefg
key285: abcdefg
key286: abcdefg
key287: abcdefg
key288: abcdefg
key289: abcdefg
key290: abcdefg
key291: abcdefg
key292: abcdefg
key293: abcdefg
key294: abcdefg
key295: abcdefg
key296: abcdefg
key297: abcdefg
key298: abcdefg
key299: abcdefg
key300: abcdefg
key301: abcdefg
key302: abcdefg
key303: abcdefg
key304: abcdefg
key305: abcdefg
key306: abcdefg
key307: abcdefg
key308: abcdefg
key309: abcdefg
key310: abcdefg
key311: abcdefg
key312: abcdefg
key313: abcdefg
key314: abcdefg
key315: abcdefg
key316: abcdefg
key317: abcdefg
key318: abcdefg
key319: abcdefg
key320: abcdefg
key321: abcdefg
key322: abcdefg
key323: abcdefg
key324: abcdefg
key325: abcdefg
key326: abcdefg
key327: abcdefg
key328: abcdefg
key329: abcdefg
key330: abcdefg
key331: abcdefg
key332: abcdefg
key333: abcdefg
key334: abcdefg
key335: abcdefg
key336: abcdefg
key337: abcdefg
key338: abcdefg
key339: abcdefg
key340: abcdefg
key341: abcdefg
key342: abcdefg
key343: abcdefg
key344: abcdefg
key345: abcdefg
key346: abcdefg
key347: abcdefg
key348: abcdefg
key349: abcdefg
key350: abcdefg
key351: abcdefg
key352: abcdefg
key353: abcdefg
key354: abcdefg
key355: abcdefg
key356: abcdefg
key357: abcdefg
key358: abcdefg
key359: abcdefg
key360: abcdefg
key361: abcdefg
key362: abcdefg
key363: abcdefg
key364: abcdefg
key365: abcdefg
key366: abcdefg
key367: abcdefg
key368: abcdefg
key369: abcdefg
key370: abcdefg
key371: abcdefg
key372: abcdefg
key373: abcdefg
key374: abcdefg
key375: abcdefg
key376: abcdefg
key377: abcdefg
key378: abcdefg
key379: abcdefg
key380: abcdefg
key381: abcdefg
key382: abcdefg
key383: abcdefg
key384: abcdefg
key385: abcdefg
key386: abcdefg
key387: abcdefg
key388: abcdefg
key389: abcdefg
key390: abcdefg
key391: abcdefg
key392: abcdefg
key393: abcdefg
key394: abcdefg
key395: abcdefg
key396: abcdefg
key397: abcdefg
key398: abcdefg
key399: abcdefg
key400: abcdefg
key401: abcdefg
key402: abcdefg
key403: abcdefg
key404: abcdefg
key405: abcdefg
key406: abcdefg
key407: abcdefg
key408: abcdefg
key409: abcdefg
key410: abcdefg
key411: abcdefg
key412: abcdefg
key413: abcdefg
key414: abcdefg
key415: abcdefg
key416: abcdefg
key417: abcdefg
key418: abcdefg
key419: abcdefg
key420: abcdefg
key421: abcdefg
key422: abcdefg
key423: abcdefg
key424: abcdefg
key425: abcdefg
key426: abcdefg
key427: abcdefg
key428: abcdefg
key429: abcdefg
key430: abcdefg
key431: abcdefg
key432: abcdefg
key433: abcdefg
key434: abcdefg
key435: abcdefg
key436: abcdefg
key437: abcdefg
key438: abcdefg
key439: abcdefg
key440: abcdefg
key441: abcdefg
key442: abcdefg
key443: abcdefg
key444: abcdefg
key445: abcdefg
key446: abcdefg
key447: abcdefg
key448: abcdefg
key449: abcdefg
key450: abcdefg
key451: abcdefg
key452: abcdefg
key453: abcdefg
key454: abcdefg
key455: abcdefg
key456: abcdefg
key457: abcdefg
key458: abcdefg
key459: abcdefg
key460: abcdefg
key461: abcdefg
key462: abcdefg
key463: abcdefg
key464: abcdefg
key465: abcdefg
key466: abcdefg
key467: abcdefg
key468: abcdefg
key469: abcdefg
key470: abcdefg
key471: abcdefg
key472: abcdefg
key473: abcdefg
key474: abcdefg
key475: abcdefg
key476: abcdefg
key477: abcdefg
key478: abcdefg
key479: abcdefg
key480: abcdefg
key481: abcdefg
key482: abcdefg
key483: abcdefg
key484: abcdefg
key485: abcdefg
key486: abcdefg
key487: abcdefg
key488: abcdefg
key489: abcdefg
key490: abcdefg
key491: abcdefg
key492: abcdefg
key493: abcdefg
key494: abcdefg
key495: abcdefg
key496: abcdefg
key497: abcdefg
key498: abcdefg
key499: abcdefg
key500: abcdefg
key501: abcdefg
key502: abcdefg
key503: abcdefg
key504: abcdefg
key505: abcdefg
key506: abcdefg
key507: abcdefg
key508: abcdefg
key509: abcdefg
key510: abcdefg
key511: abcdefg
key512: abcdefg
key513: abcdefg
key514: abcdefg
key515: abcdefg
key516: abcdefg
key517: abcdefg
key518: abcdefg
key519: abcdefg
key520: abcdefg
key521: abcdefg
key522: abcdefg
key523: abcdefg
key524: abcdefg
key525: abcdefg
key526: abcdefg
key527: abcdefg
key528: abcdefg
key529: abcdefg
key530: abcdefg
key531: abcdefg
key532: abcdefg
key533: abcdefg
key534: abcdefg
key535: abcdefg
key536: abcdefg
key537: abcdefg
key538: abcdefg
key539: abcdefg
key540: abcdefg
key541: abcdefg
key542: abcdefg
key543: abcdefg
key544: abcdefg
key545: abcdefg
key546: abcdefg
key547: abcdefg
key548: abcdefg
key549: abcdefg
key550: abcdefg
key551: abcdefg
key552: abcdefg
key553: abcdefg
key554: abcdefg
key555: abcdefg
key556: abcdefg
key557: abcdefg
key558: abcdefg
key559: abcdefg
key560: abcdefg
key561: abcdefg
key562: abcdefg
key563: abcdefg
key564: abcdefg
key565: abcdefg
key566: abcdefg
key567: abcdefg
key568: abcdefg
key569: abcdefg
key570: abcdefg
key571: abcdefg
key572: abcdefg
key573: abcdefg
key574: abcdefg
key575: abcdefg
key576: abcdefg
key577: abcdefg
key578: abcdefg
key579: abcdefg
key580: abcdefg
key581: abcdefg
key582: abcdefg
key583: abcdefg
key584: abcdefg
key585: abcdefg
key586: abcdefg
key587: abcdefg
key588: abcdefg
key589: abcdefg
key590: abcdefg
key591: abcdefg
key592: abcdefg
key593: abcdefg
key594: abcdefg
key595: abcdefg
key596: abcdefg
key597: abcdefg
key598: abcdefg
key599: abcdefg
key600: abcdefg
key601: abcdefg
key602: abcdefg
key603: abcdefg
key604: abcdefg
key605: abcdefg
key606: abcdefg
key607: abcdefg
key608: abcdefg
key609: abcdefg
key610: abcdefg
key611: abcdefg
key612: abcdefg
key613: abcdefg
key614: abcdefg
key615: abcdefg
key616: abcdefg
key617: abcdefg
key618: abcdefg
key619: abcdefg
key620: abcdefg
key621: abcdefg
key622: abcdefg
key623: abcdefg
key624: abcdefg
key625: abcdefg
key626: abcdefg
key627: abcdefg
key628: abcdefg
key629: abcdefg
key630: abcdefg
key631: abcdefg
key632: abcdefg
key633: abcdefg
key634: abcdefg
key635: abcdefg
key636: abcdefg
key637: abcdefg
key638: abcdefg
key639: abcdefg
key640: abcdefg
key641: abcdefg
key642: abcdefg
key643: abcdefg
key644: abcdefg
key645: abcdefg
key646: abcdefg
key647: abcdefg
key648: abcdefg
key649: abcdefg
key650: abcdefg
key651: abcdefg
key652: abcdefg
key653: abcdefg
key654: abcdefg
key655: abcdefg
key656: abcdefg
key657: abcdefg
key658: abcdefg
key659: abcdefg
key660: abcdefg
key661: abcdefg
key662: abcdefg
key663: abcdefg
key664: abcdefg
key665: abcdefg
key666: abcdefg
key667: abcdefg
key668: abcdefg
key669: abcdefg
key670: abcdefg
key671: abcdefg
key672: abcdefg
key673: abcdefg
key674: abcdefg
key675: abcdefg
key676: abcdefg
key677: abcdefg
key678: abcdefg
key679: abcdefg
key680: abcdefg
key681: abcdefg
key682: abcdefg
key683: abcdefg
key684: abcdefg
key685: abcdefg
key686: abcdefg
key687: abcdefg
key688: abcdefg
key689: abcdefg
key690: abcdefg
key691: abcdefg
key692: abcdefg
key693: abcdefg
key694: abcdefg
key695: abcdefg
key696: abcdefg
key697: abcdefg
key698: abcdefg
key699: abcdefg
key700: abcdefg
key701: abcdefg
key702: abcdefg
key703: abcdefg
key704: abcdefg
key705: abcdefg
key706: abcdefg
key707: abcdefg
key708: abcdefg
key709: abcdefg
key710: abcdefg
key711: abcdefg
key712: abcdefg
key713: abcdefg
key714: abcdefg
key715: abcdefg
key716: abcdefg
key717: abcdefg
key718: abcdefg
key719: abcdefg
key720: abcdefg
key721: abcdefg
key722: abcdefg
key723: abcdefg
key724: abcdefg
key725: abcdefg
key726: abcdefg
key727: abcdefg
key728: abcdefg
key729: abcdefg
key730: abcdefg
key731: abcdefg
key732: abcdefg
key733: abcdefg
key734: abcdefg
key735: abcdefg
key736: abcdefg
key737: abcdefg
key738: abcdefg
key739: abcdefg
key740: abcdefg
key741: abcdefg
key742: abcdefg
key743: abcdefg
key744: abcdefg
key745: abcdefg
key746: abcdefg
key747: abcdefg
key748: abcdefg
key749: abcdefg
key750: abcdefg
key751: abcdefg
key752: abcdefg
key753: abcdefg
key754: abcdefg
key755: abcdefg
key756: abcdefg
key757: abcdefg
key758: abcdefg
key759: abcdefg
key760: abcdefg
key761: abcdefg
key762: abcdefg
key763: abcdefg
key764: abcdefg
key765: abcdefg
key766: abcdefg
key767: abcdefg
key768: abcdefg
key769: abcdefg
key770: abcdefg
key771: abcdefg
key772: abcdefg
key773: abcdefg
key774: abcdefg
key775: abcdefg
key776: abcdefg
key777: abcdefg
key778: abcdefg
key779: abcdefg
key780: abcdefg
key781: abcdefg
key782: abcdefg
key783: abcdefg
key784: abcdefg
key785: abcdefg
key786: abcdefg
key787: abcdefg
key788: abcdefg
key789: abcdefg
key790: abcdefg
key791: abcdefg
key792: abcdefg
key793: abcdefg
key794: abcdefg
key795: abcdefg
key796: abcdefg
key797: abcdefg
key798: abcdefg
key799: abcdefg
key800: abcdefg
key801: abcdefg
key802: abcdefg
key803: abcdefg
key804: abcdefg
key805: abcdefg
key806: abcdefg
key807: abcdefg
key808: abcdefg
key809: abcdefg
key810: abcdefg
key811: abcdefg
key812: abcdefg
key813: abcdefg
key814: abcdefg
key815: abcdefg
key816: abcdefg
key817: abcdefg
key818: abcdefg
key819: abcdefg
key820: abcdefg
key821: abcdefg
key822: abcdefg
key823: abcdefg
key824: abcdefg
key825: abcdefg
key826: abcdefg
key827: abcdefg
key828: abcdefg
key829: abcdefg
key830: abcdefg
key831: abcdefg
key832: abcdefg
key833: abcdefg
key834: abcdefg
key835: abcdefg
key836: abcdefg
key837: abcdefg
key838: abcdefg
key839: abcdefg
key840: abcdefg
key841: abcdefg
key842: abcdefg
key843: abcdefg
key844: abcdefg
key845: abcdefg
key846: abcdefg
key847: abcdefg
key848: abcdefg
key849: abcdefg
key850: abcdefg
key851: abcdefg
key852: abcdefg
key853: abcdefg
key854: abcdefg
key855: abcdefg
key856: abcdefg
key857: abcdefg
key858: abcdefg
key859: abcdefg
key860: abcdefg
key861: abcdefg
key862: abcdefg
key863: abcdefg
key864: abcdefg
key865: abcdefg
key866: abcdefg
key867: abcdefg
key868: abcdefg
key869: abcdefg
key870: abcdefg
key871: abcdefg
key872: abcdefg
key873: abcdefg
key874: abcdefg
key875: abcdefg
key876: abcdefg
key877: abcdefg
key878: abcdefg
key879: abcdefg
key880: abcdefg
key881: abcdefg
key882: abcdefg
key883: abcdefg
key884: abcdefg
key885: abcdefg
key886: abcdefg
key887: abcdefg
key888: abcdefg
key889: abcdefg
key890: abcdefg
key891: abcdefg
key892: abcdefg
key893: abcdefg
key894: abcdefg
key895: abcdefg
key896: abcdefg
key897: abcdefg
key898: abcdefg
key899: abcdefg
key900: abcdefg
key901: abcdefg
key902: abcdefg
key903: abcdefg
key904: abcdefg
key905: abcdefg
key906: abcdefg
key907: abcdefg
key908: abcdefg
key909: abcdefg
key910: abcdefg
key911: abcdefg
key912: abcdefg
key913: abcdefg
key914: abcdefg
key915: abcdefg
key916: abcdefg
key917: abcdefg
key918: abcdefg
key919: abcdefg
key920: abcdefg
key921: abcdefg
key922: abcdefg
key923: abcdefg
key924: abcdefg
key925: abcdefg
key926: abcdefg
key927: abcdefg
key928: abcdefg
key929: abcdefg
key930: abcdefg
key931: abcdefg
key932: abcdefg
key933: abcdefg
key934: abcdefg
key935: abcdefg
key936: abcdefg
key937: abcdefg
key938: abcdefg
key939: abcdefg
key940: abcdefg
key941: abcdefg
key942: abcdefg
key943: abcdefg
key944: abcdefg
key945: abcdefg
key946: abcdefg
key947: abcdefg
key948: abcdefg
key949: abcdefg
key950: abcdefg
key951: abcdefg
key952: abcdefg
key953: abcdefg
key954: abcdefg
key955: abcdefg
key956: abcdefg
key957: abcdefg
key958: abcdefg
key959: abcdefg
key960: abcdefg
key961: abcdefg
key962: abcdefg
key963: abcdefg
key964: abcdefg
key965: abcdefg
key966: abcdefg
key967: abcdefg
key968: abcdefg
key969: abcdefg
key970: abcdefg
key971: abcdefg
key972: abcdefg
key973: abcdefg
key974: abcdefg
key975: abcdefg
key976: abcdefg
key977: abcdefg
key978: abcdefg
key979: abcdefg
key980: abcdefg
key981: abcdefg
key982: abcdefg
key983: abcdefg
key984: abcdefg
key985: abcdefg
key986: abcdefg
key987: abcdefg
key988: abcdefg
key989: abcdefg
key990: abcdefg
key991: abcdefg
key992: abcdefg
key993: abcdefg
key994: abcdefg
key995: abcdefg
key996: abcdefg
key997: abcdefg
key998: abcdefg
key999: abcdefg
key1000: abcdefg
end: true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-table-inline-nested-1000.toml 0000644 0000000 0000000 00000017512 00000000000 023303 0 ustar 00 key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {key = {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3855333
tomlkit-0.9.2/tests/toml-spec-tests/values/qa-table-inline-nested-1000.yaml 0000644 0000000 0000000 00003654671 00000000000 023312 0 ustar 00 key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key:
key: {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-1.toml 0000644 0000000 0000000 00000000027 00000000000 020700 0 ustar 00 integers = [ 1, 2, 3 ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-1.yaml 0000644 0000000 0000000 00000000026 00000000000 020666 0 ustar 00 integers: [ 1, 2, 3 ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-2.toml 0000644 0000000 0000000 00000000046 00000000000 020702 0 ustar 00 colors = [ "red", "yellow", "green" ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-2.yaml 0000644 0000000 0000000 00000000045 00000000000 020670 0 ustar 00 colors: [ "red", "yellow", "green" ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-3.toml 0000644 0000000 0000000 00000000056 00000000000 020704 0 ustar 00 nested_array_of_int = [ [ 1, 2 ], [3, 4, 5] ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-3.yaml 0000644 0000000 0000000 00000000055 00000000000 020672 0 ustar 00 nested_array_of_int: [ [ 1, 2 ], [3, 4, 5] ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-4.toml 0000644 0000000 0000000 00000000103 00000000000 020676 0 ustar 00 string_array = [ "all", 'strings', """are the same""", '''type''']
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-4.yaml 0000644 0000000 0000000 00000000073 00000000000 020673 0 ustar 00 string_array: [ "all", "strings", "are the same", "type" ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-5.toml 0000644 0000000 0000000 00000000063 00000000000 020704 0 ustar 00 nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-5.yaml 0000644 0000000 0000000 00000000062 00000000000 020672 0 ustar 00 nested_mixed_array: [ [ 1, 2 ], ["a", "b", "c"] ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-7.toml 0000644 0000000 0000000 00000000032 00000000000 020702 0 ustar 00 integers2 = [
1, 2, 3
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-7.yaml 0000644 0000000 0000000 00000000031 00000000000 020670 0 ustar 00 integers2: [
1, 2, 3
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-8.toml 0000644 0000000 0000000 00000000047 00000000000 020711 0 ustar 00 integers3 = [
1,
2, # this is ok
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-8.yaml 0000644 0000000 0000000 00000000046 00000000000 020677 0 ustar 00 integers3: [
1,
2, # this is ok
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-mixed-number-types.toml 0000644 0000000 0000000 00000000045 00000000000 024276 0 ustar 00 numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-mixed-number-types.yaml 0000644 0000000 0000000 00000000044 00000000000 024264 0 ustar 00 numbers: [ 0.1, 0.2, 0.5, 1, 2, 5 ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-more-mixed-types.toml 0000644 0000000 0000000 00000000212 00000000000 023744 0 ustar 00 contributors = [
"Foo Bar ",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
] ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-more-mixed-types.yaml 0000644 0000000 0000000 00000000207 00000000000 023737 0 ustar 00 contributors: [
"Foo Bar ",
{ name: "Baz Qux", email: "bazqux@example.com", url: "https://example.com/bazqux" }
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-of-tables-1.toml 0000644 0000000 0000000 00000000166 00000000000 022556 0 ustar 00 [[products]]
name = "Hammer"
sku = 738594937
[[products]]
[[products]]
name = "Nail"
sku = 284758393
color = "gray"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-of-tables-1.yaml 0000644 0000000 0000000 00000000151 00000000000 022537 0 ustar 00 products: [
{name: "Hammer", sku: 738594937},
{},
{name: "Nail", sku: 284758393, color: "gray" }
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-of-tables-2.toml 0000644 0000000 0000000 00000000374 00000000000 022560 0 ustar 00 [[fruit]]
name = "apple"
[fruit.physical]
color = "red"
shape = "round"
[[fruit.variety]]
name = "red delicious"
[[fruit.variety]]
name = "granny smith"
[[fruit]]
name = "banana"
[[fruit.variety]]
name = "plantain"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-of-tables-2.yaml 0000644 0000000 0000000 00000000410 00000000000 022536 0 ustar 00 fruit: [
{
name: "apple",
physical: {
color: "red",
shape: "round"
},
variety: [
{ name: "red delicious" },
{ name: "granny smith" }
]
},
{
name: "banana",
variety: [
{ name: "plantain" }
]
}
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-of-tables-3.toml 0000644 0000000 0000000 00000000155 00000000000 022556 0 ustar 00 points = [ { x = 1, y = 2, z = 3 },
{ x = 7, y = 8, z = 9 },
{ x = 2, y = 4, z = 8 } ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-array-of-tables-3.yaml 0000644 0000000 0000000 00000000141 00000000000 022540 0 ustar 00 points: [ { x: 1, y: 2, z: 3 },
{ x: 7, y: 8, z: 9 },
{ x: 2, y: 4, z: 8 } ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-boolean-1.toml 0000644 0000000 0000000 00000000015 00000000000 021176 0 ustar 00 bool1 = true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-boolean-1.yaml 0000644 0000000 0000000 00000000014 00000000000 021164 0 ustar 00 bool1: true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-boolean-2.toml 0000644 0000000 0000000 00000000016 00000000000 021200 0 ustar 00 bool1 = false
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-boolean-2.yaml 0000644 0000000 0000000 00000000015 00000000000 021166 0 ustar 00 bool1: false
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-case-sensitive.toml 0000644 0000000 0000000 00000000056 00000000000 022350 0 ustar 00 # TOML is case sensitive.
abc = 123
ABC = 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-case-sensitive.yaml 0000644 0000000 0000000 00000000022 00000000000 022330 0 ustar 00 abc: 123
ABC: 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment-mid-array.toml 0000644 0000000 0000000 00000000170 00000000000 022750 0 ustar 00 # eol commetns can go anywhere
abc = [ # this is valid
123,#as is this
456 #so is this
]# and this
# here too
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment-mid-array.yaml 0000644 0000000 0000000 00000000167 00000000000 022745 0 ustar 00 # eol commetns can go anywhere
abc: [ # this is valid
123,#as is this
456 #so is this
]# and this
# here too
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment-mid-string.toml 0000644 0000000 0000000 00000000044 00000000000 023140 0 ustar 00 another = "# This is not a comment"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment-mid-string.yaml 0000644 0000000 0000000 00000000043 00000000000 023126 0 ustar 00 another: "# This is not a comment"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment-tab.toml 0000644 0000000 0000000 00000000206 00000000000 021631 0 ustar 00 # This is a full-line comment with a tab in the middle
key = "value" # This is a commen with a tab in the middle at the end of a line
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment-tab.yaml 0000644 0000000 0000000 00000000015 00000000000 021616 0 ustar 00 key: "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment.toml 0000644 0000000 0000000 00000000125 00000000000 021065 0 ustar 00 # This is a full-line comment
key = "value" # This is a comment at the end of a line
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-comment.yaml 0000644 0000000 0000000 00000000124 00000000000 021053 0 ustar 00 # This is a full-line comment
key: "value" # This is a comment at the end of a line
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-local-1.json 0000644 0000000 0000000 00000000101 00000000000 021556 0 ustar 00 {
"ld1": {
"type": "date",
"value": "1979-05-27"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-local-1.toml 0000644 0000000 0000000 00000000021 00000000000 021561 0 ustar 00 ld1 = 1979-05-27
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-1.toml 0000644 0000000 0000000 00000000034 00000000000 021431 0 ustar 00 odt1 = 1979-05-27T07:32:00Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-1.yaml 0000644 0000000 0000000 00000000033 00000000000 021417 0 ustar 00 odt1: 1979-05-27T07:32:00Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-2.toml 0000644 0000000 0000000 00000000041 00000000000 021430 0 ustar 00 odt2 = 1979-05-27T00:32:00-07:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-2.yaml 0000644 0000000 0000000 00000000040 00000000000 021416 0 ustar 00 odt2: 1979-05-27T00:32:00-07:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-3.toml 0000644 0000000 0000000 00000000050 00000000000 021431 0 ustar 00 odt3 = 1979-05-27T00:32:00.999999-07:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-3.yaml 0000644 0000000 0000000 00000000047 00000000000 021426 0 ustar 00 odt3: 1979-05-27T00:32:00.999999-07:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-4.toml 0000644 0000000 0000000 00000000034 00000000000 021434 0 ustar 00 odt4 = 1979-05-27 07:32:00Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-4.yaml 0000644 0000000 0000000 00000000033 00000000000 021422 0 ustar 00 odt4: 1979-05-27 07:32:00Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-5.toml 0000644 0000000 0000000 00000000040 00000000000 021432 0 ustar 00 odt5 = 1979-05-27T07:32:00.123Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-5.yaml 0000644 0000000 0000000 00000000037 00000000000 021427 0 ustar 00 odt5: 1979-05-27T07:32:00.123Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-6.toml 0000644 0000000 0000000 00000000041 00000000000 021434 0 ustar 00 odt6 = 1979-05-27T07:32:00.1239Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-6.yaml 0000644 0000000 0000000 00000000037 00000000000 021430 0 ustar 00 odt6: 1979-05-27T07:32:00.123Z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-local-1.json 0000644 0000000 0000000 00000000131 00000000000 022515 0 ustar 00 {
"ldt1": {
"type": "datetime-local",
"value": "1979-05-27T07:32:00.000"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-local-1.toml 0000644 0000000 0000000 00000000033 00000000000 022520 0 ustar 00 ldt1 = 1979-05-27T07:32:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-local-2.json 0000644 0000000 0000000 00000000131 00000000000 022516 0 ustar 00 {
"ldt2": {
"type": "datetime-local",
"value": "1979-05-27T00:32:00.999"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-date-time-local-2.toml 0000644 0000000 0000000 00000000042 00000000000 022521 0 ustar 00 ldt2 = 1979-05-27T00:32:00.999999
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-dotted-keys-1.toml 0000644 0000000 0000000 00000000134 00000000000 022015 0 ustar 00 name = "Orange"
physical.color = "orange"
physical.shape = "round"
site."google.com" = true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-dotted-keys-1.yaml 0000644 0000000 0000000 00000000127 00000000000 022006 0 ustar 00 name: "Orange"
physical:
color: "orange"
shape: "round"
site:
"google.com": true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-dotted-keys-2.toml 0000644 0000000 0000000 00000000015 00000000000 022014 0 ustar 00 a . b = 23
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-dotted-keys-2.yaml 0000644 0000000 0000000 00000000013 00000000000 022001 0 ustar 00 a:
b: 23
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-dotted-keys-3.toml 0000644 0000000 0000000 00000000016 00000000000 022016 0 ustar 00 a . b = 23
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-dotted-keys-3.yaml 0000644 0000000 0000000 00000000013 00000000000 022002 0 ustar 00 a:
b: 23
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-empty-key-name-1.toml 0000644 0000000 0000000 00000000051 00000000000 022421 0 ustar 00 "" = "blank" # VALID but discouraged
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-empty-key-name-1.yaml 0000644 0000000 0000000 00000000014 00000000000 022407 0 ustar 00 "": "blank"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-empty-key-name-2.toml 0000644 0000000 0000000 00000000051 00000000000 022422 0 ustar 00 '' = "blank" # VALID but discouraged
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-empty-key-name-2.yaml 0000644 0000000 0000000 00000000014 00000000000 022410 0 ustar 00 "": "blank"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-extend-dotted-object-1.toml 0000644 0000000 0000000 00000000213 00000000000 023573 0 ustar 00 # This makes the key "fruit" into a table.
fruit.apple.smooth = true
# So then you can add to the table "fruit" like so:
fruit.orange = 2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-extend-dotted-object-1.yaml 0000644 0000000 0000000 00000000055 00000000000 023566 0 ustar 00 fruit:
apple:
smooth: true
orange: 2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-extend-dotted-object-2.toml 0000644 0000000 0000000 00000000234 00000000000 023577 0 ustar 00 # VALID BUT DISCOURAGED
apple.type = "fruit"
orange.type = "fruit"
apple.skin = "thin"
orange.skin = "thick"
apple.color = "red"
orange.color = "orange"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-extend-dotted-object-2.yaml 0000644 0000000 0000000 00000000160 00000000000 023564 0 ustar 00 apple:
type: "fruit"
skin: "thin"
color: "red"
orange:
type: "fruit"
skin: "thick"
color: "orange"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-extend-dotted-object-3.toml 0000644 0000000 0000000 00000000221 00000000000 023574 0 ustar 00 # RECOMMENDED
apple.type = "fruit"
apple.skin = "thin"
apple.color = "red"
orange.type = "fruit"
orange.skin = "thick"
orange.color = "orange"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-extend-dotted-object-3.yaml 0000644 0000000 0000000 00000000160 00000000000 023565 0 ustar 00 apple:
type: "fruit"
skin: "thin"
color: "red"
orange:
type: "fruit"
skin: "thick"
color: "orange"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-1.toml 0000644 0000000 0000000 00000000014 00000000000 020663 0 ustar 00 flt1 = +1.0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-1.yaml 0000644 0000000 0000000 00000000012 00000000000 020650 0 ustar 00 flt1: 1.0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-10.toml 0000644 0000000 0000000 00000000037 00000000000 020750 0 ustar 00 sf1 = inf # positive infinity
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-10.yaml 0000644 0000000 0000000 00000000037 00000000000 020737 0 ustar 00 sf1: .inf # positive infinity
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-11.toml 0000644 0000000 0000000 00000000037 00000000000 020751 0 ustar 00 sf2 = +inf # positive infinity
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-11.yaml 0000644 0000000 0000000 00000000037 00000000000 020740 0 ustar 00 sf2: .inf # positive infinity
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-12.toml 0000644 0000000 0000000 00000000037 00000000000 020752 0 ustar 00 sf2 = -inf # negative infinity
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-12.yaml 0000644 0000000 0000000 00000000040 00000000000 020733 0 ustar 00 sf2: -.inf # negative infinity
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-13.toml 0000644 0000000 0000000 00000000102 00000000000 020744 0 ustar 00 sf4 = nan # actual sNaN/qNaN encoding is implementation specific
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-13.yaml 0000644 0000000 0000000 00000000102 00000000000 020733 0 ustar 00 sf4: .NAN # actual sNaN/qNaN encoding is implementation specific
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-14.toml 0000644 0000000 0000000 00000000033 00000000000 020750 0 ustar 00 sf5 = +nan # same as `nan`
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-14.yaml 0000644 0000000 0000000 00000000012 00000000000 020734 0 ustar 00 sf5: .nan
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-15.toml 0000644 0000000 0000000 00000000077 00000000000 020761 0 ustar 00 sf6 = -nan # valid, actual encoding is implementation specific
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-15.yaml 0000644 0000000 0000000 00000000012 00000000000 020735 0 ustar 00 sf6: .NAN
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-2.toml 0000644 0000000 0000000 00000000016 00000000000 020666 0 ustar 00 flt2 = 3.1415
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-2.yaml 0000644 0000000 0000000 00000000015 00000000000 020654 0 ustar 00 flt2: 3.1415
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-3.toml 0000644 0000000 0000000 00000000015 00000000000 020666 0 ustar 00 flt3 = -0.01
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-3.yaml 0000644 0000000 0000000 00000000014 00000000000 020654 0 ustar 00 flt3: -0.01
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-4.toml 0000644 0000000 0000000 00000000015 00000000000 020667 0 ustar 00 flt4 = 5e+22
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-4.yaml 0000644 0000000 0000000 00000000014 00000000000 020655 0 ustar 00 flt4: 5e+22
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-5.toml 0000644 0000000 0000000 00000000014 00000000000 020667 0 ustar 00 flt5 = 1e06
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-5.yaml 0000644 0000000 0000000 00000000012 00000000000 020654 0 ustar 00 flt5: 1e6
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-6.toml 0000644 0000000 0000000 00000000015 00000000000 020671 0 ustar 00 flt6 = -2E-2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-6.yaml 0000644 0000000 0000000 00000000014 00000000000 020657 0 ustar 00 flt6: -2E-2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-7.toml 0000644 0000000 0000000 00000000021 00000000000 020667 0 ustar 00 flt7 = 6.626e-34
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-7.yaml 0000644 0000000 0000000 00000000020 00000000000 020655 0 ustar 00 flt7: 6.626e-34
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-8.toml 0000644 0000000 0000000 00000000033 00000000000 020673 0 ustar 00 flt8 = 224_617.445_991_228
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-8.yaml 0000644 0000000 0000000 00000000031 00000000000 020660 0 ustar 00 flt8: 224_617.445_991_228 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-9.toml 0000644 0000000 0000000 00000000014 00000000000 020673 0 ustar 00 flt9 = -0e0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-float-9.yaml 0000644 0000000 0000000 00000000013 00000000000 020661 0 ustar 00 flt9: -0e0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-1.toml 0000644 0000000 0000000 00000000013 00000000000 020347 0 ustar 00 int1 = +99
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-1.yaml 0000644 0000000 0000000 00000000011 00000000000 020334 0 ustar 00 int1: 99
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-2.toml 0000644 0000000 0000000 00000000012 00000000000 020347 0 ustar 00 int2 = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-2.yaml 0000644 0000000 0000000 00000000011 00000000000 020335 0 ustar 00 int2: 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-3.toml 0000644 0000000 0000000 00000000011 00000000000 020347 0 ustar 00 int3 = 0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-3.yaml 0000644 0000000 0000000 00000000010 00000000000 020335 0 ustar 00 int3: 0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-3a.toml 0000644 0000000 0000000 00000000012 00000000000 020511 0 ustar 00 int3 = +0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-3a.yaml 0000644 0000000 0000000 00000000010 00000000000 020476 0 ustar 00 int3: 0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-3b.toml 0000644 0000000 0000000 00000000012 00000000000 020512 0 ustar 00 int3 = -0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-3b.yaml 0000644 0000000 0000000 00000000010 00000000000 020477 0 ustar 00 int3: 0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-4.toml 0000644 0000000 0000000 00000000013 00000000000 020352 0 ustar 00 int4 = -17
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-4.yaml 0000644 0000000 0000000 00000000012 00000000000 020340 0 ustar 00 int4: -17
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-5.toml 0000644 0000000 0000000 00000000015 00000000000 020355 0 ustar 00 int5 = 1_000
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-5.yaml 0000644 0000000 0000000 00000000014 00000000000 020343 0 ustar 00 int5: 1_000
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-6.toml 0000644 0000000 0000000 00000000021 00000000000 020353 0 ustar 00 int6 = 5_349_221
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-6.yaml 0000644 0000000 0000000 00000000020 00000000000 020341 0 ustar 00 int6: 5_349_221
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-7.toml 0000644 0000000 0000000 00000000055 00000000000 020363 0 ustar 00 int7 = 1_2_3_4_5 # VALID but discouraged
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-7.yaml 0000644 0000000 0000000 00000000054 00000000000 020351 0 ustar 00 int7: 1_2_3_4_5 # VALID but discouraged
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-bin1.toml 0000644 0000000 0000000 00000000022 00000000000 021040 0 ustar 00 bin1 = 0b11010110
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-bin1.yaml 0000644 0000000 0000000 00000000012 00000000000 021026 0 ustar 00 bin1: 214
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-hex1.toml 0000644 0000000 0000000 00000000022 00000000000 021054 0 ustar 00 hex1 = 0xDEADBEEF
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-hex1.yaml 0000644 0000000 0000000 00000000021 00000000000 021042 0 ustar 00 hex1: 3735928559
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-hex2.toml 0000644 0000000 0000000 00000000022 00000000000 021055 0 ustar 00 hex2 = 0xdeadbeef
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-hex2.yaml 0000644 0000000 0000000 00000000021 00000000000 021043 0 ustar 00 hex2: 3735928559
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-hex3.toml 0000644 0000000 0000000 00000000023 00000000000 021057 0 ustar 00 hex3 = 0xdead_beef
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-hex3.yaml 0000644 0000000 0000000 00000000021 00000000000 021044 0 ustar 00 hex3: 3735928559
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-max.json 0000644 0000000 0000000 00000000103 00000000000 020772 0 ustar 00 {
"max": {"type": "integer", "value": "9223372036854775807"}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-max.toml 0000644 0000000 0000000 00000000036 00000000000 021001 0 ustar 00 max=9_223_372_036_854_775_807
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-min.json 0000644 0000000 0000000 00000000104 00000000000 020771 0 ustar 00 {
"min": {"type": "integer", "value": "-9223372036854775808"}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-min.toml 0000644 0000000 0000000 00000000037 00000000000 021000 0 ustar 00 min=-9_223_372_036_854_775_808
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-oct1.toml 0000644 0000000 0000000 00000000022 00000000000 021055 0 ustar 00 oct1 = 0o01234567
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-oct1.yaml 0000644 0000000 0000000 00000000015 00000000000 021046 0 ustar 00 oct1: 342391
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-oct2.toml 0000644 0000000 0000000 00000000060 00000000000 021060 0 ustar 00 oct2 = 0o755 # useful for Unix file permissions
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-int-oct2.yaml 0000644 0000000 0000000 00000000012 00000000000 021044 0 ustar 00 oct2: 493
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-1.toml 0000644 0000000 0000000 00000000016 00000000000 022413 0 ustar 00 key = "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-1.yaml 0000644 0000000 0000000 00000000015 00000000000 022401 0 ustar 00 key: "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-2.toml 0000644 0000000 0000000 00000000023 00000000000 022412 0 ustar 00 bare_key = "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-2.yaml 0000644 0000000 0000000 00000000022 00000000000 022400 0 ustar 00 bare_key: "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-3.toml 0000644 0000000 0000000 00000000023 00000000000 022413 0 ustar 00 bare-key = "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-3.yaml 0000644 0000000 0000000 00000000022 00000000000 022401 0 ustar 00 bare-key: "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-4.toml 0000644 0000000 0000000 00000000017 00000000000 022417 0 ustar 00 1234 = "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-4.yaml 0000644 0000000 0000000 00000000020 00000000000 022400 0 ustar 00 "1234": "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-5.toml 0000644 0000000 0000000 00000000015 00000000000 022416 0 ustar 00 1234="value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-5.yaml 0000644 0000000 0000000 00000000020 00000000000 022401 0 ustar 00 "1234": "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-6.toml 0000644 0000000 0000000 00000000004 00000000000 022415 0 ustar 00 -=1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-6.yaml 0000644 0000000 0000000 00000000006 00000000000 022406 0 ustar 00 "-": 1 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-7.toml 0000644 0000000 0000000 00000000004 00000000000 022416 0 ustar 00 _=1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-7.yaml 0000644 0000000 0000000 00000000006 00000000000 022407 0 ustar 00 "_": 1 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-8.toml 0000644 0000000 0000000 00000000014 00000000000 022420 0 ustar 00 -_-_-_-_-=1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-8.yaml 0000644 0000000 0000000 00000000016 00000000000 022411 0 ustar 00 "-_-_-_-_-": 1 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-9.toml 0000644 0000000 0000000 00000000017 00000000000 022424 0 ustar 00 3.14159 = "pi"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-key-value-pair-9.yaml 0000644 0000000 0000000 00000000021 00000000000 022406 0 ustar 00 3:
14159: "pi"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-newline-1.toml 0000644 0000000 0000000 00000000024 00000000000 021220 0 ustar 00 abc = 123
def = 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-newline-1.yaml 0000644 0000000 0000000 00000000022 00000000000 021205 0 ustar 00 abc: 123
def: 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-newline-2.toml 0000644 0000000 0000000 00000000026 00000000000 021223 0 ustar 00 abc = 123
def = 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-newline-2.yaml 0000644 0000000 0000000 00000000022 00000000000 021206 0 ustar 00 abc: 123
def: 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-newline-3.toml 0000644 0000000 0000000 00000000036 00000000000 021225 0 ustar 00 abc = 123
def = 456
ghi = 789 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-newline-3.yaml 0000644 0000000 0000000 00000000033 00000000000 021211 0 ustar 00 abc: 123
def: 456
ghi: 789
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-quoted-basic-keys-1.toml 0000644 0000000 0000000 00000000023 00000000000 023107 0 ustar 00 "ʎǝʞ" = "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-quoted-basic-keys-1.yaml 0000644 0000000 0000000 00000000022 00000000000 023075 0 ustar 00 "ʎǝʞ": "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-quoted-literal-keys-1.toml 0000644 0000000 0000000 00000000033 00000000000 023463 0 ustar 00 'quoted "value"' = "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-quoted-literal-keys-1.yaml 0000644 0000000 0000000 00000000032 00000000000 023451 0 ustar 00 'quoted "value"': "value"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-readme-example.toml 0000644 0000000 0000000 00000001041 00000000000 022307 0 ustar 00 # This is a TOML document.
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # First class dates
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
# Indentation (tabs and/or spaces) is allowed but not required
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
[clients]
data = [ ["gamma", "delta"], [1, 2] ]
# Line breaks are OK when inside arrays
hosts = [
"alpha",
"omega"
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-readme-example.yaml 0000644 0000000 0000000 00000000660 00000000000 022304 0 ustar 00 # This is a TOML document.
title: "TOML Example"
owner:
name: "Tom Preston-Werner"
dob: 1979-05-27T07:32:00-08:00 # First class dates
database:
server: "192.168.1.1"
ports: [ 8001, 8001, 8002 ]
connection_max: 5000
enabled: true
servers:
alpha:
ip: "10.0.0.1"
dc: "eqdc10"
beta:
ip: "10.0.0.2"
dc: "eqdc10"
clients:
data: [ ["gamma", "delta"], [1, 2] ]
hosts: [
"alpha",
"omega"
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-1.toml 0000644 0000000 0000000 00000000055 00000000000 024150 0 ustar 00 str1 = """
Roses are red
Violets are blue"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-1.yaml 0000644 0000000 0000000 00000000050 00000000000 024132 0 ustar 00 str1: "Roses are red\nViolets are blue"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-2.toml 0000644 0000000 0000000 00000000106 00000000000 024146 0 ustar 00 str = """
The quick brown \
fox jumps over \
the lazy dog."""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3895335
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-2.yaml 0000644 0000000 0000000 00000000064 00000000000 024140 0 ustar 00 str: "The quick brown fox jumps over the lazy dog."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-3.toml 0000644 0000000 0000000 00000000131 00000000000 024145 0 ustar 00 str = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-3.yaml 0000644 0000000 0000000 00000000064 00000000000 024141 0 ustar 00 str: "The quick brown fox jumps over the lazy dog."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-4.toml 0000644 0000000 0000000 00000000026 00000000000 024151 0 ustar 00 a = """abc\
def"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-4.yaml 0000644 0000000 0000000 00000000014 00000000000 024135 0 ustar 00 a: "abcdef"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-5.toml 0000644 0000000 0000000 00000000071 00000000000 024152 0 ustar 00 ml-escaped-nl = """
foo \
bar \\
baz \\\
quux"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-5.yaml 0000644 0000000 0000000 00000000054 00000000000 024142 0 ustar 00 ml-escaped-nl: " foo bar \\\n baz \\quux"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-6.toml 0000644 0000000 0000000 00000000076 00000000000 024160 0 ustar 00 str4 = """Here are two quotation marks: "". Simple enough."""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-6.yaml 0000644 0000000 0000000 00000000071 00000000000 024142 0 ustar 00 str4: 'Here are two quotation marks: "". Simple enough.'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-7.toml 0000644 0000000 0000000 00000000063 00000000000 024155 0 ustar 00 str5 = """Here are three quotation marks: ""\"."""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-7.yaml 0000644 0000000 0000000 00000000055 00000000000 024145 0 ustar 00 str5: 'Here are three quotation marks: """.'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-8.toml 0000644 0000000 0000000 00000000105 00000000000 024153 0 ustar 00 str6 = """Here are fifteen quotation marks: ""\"""\"""\"""\"""\"."""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-8.yaml 0000644 0000000 0000000 00000000073 00000000000 024146 0 ustar 00 str6: 'Here are fifteen quotation marks: """"""""""""""".'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-9.toml 0000644 0000000 0000000 00000000100 00000000000 024147 0 ustar 00 str7 = """"This," she said, "is just a pointless statement.""""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-multiline-9.yaml 0000644 0000000 0000000 00000000073 00000000000 024147 0 ustar 00 str7: '"This," she said, "is just a pointless statement."'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-tab-multiline.toml 0000644 0000000 0000000 00000000032 00000000000 024551 0 ustar 00 str = """This is a tab"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-tab-multiline.yaml 0000644 0000000 0000000 00000000026 00000000000 024543 0 ustar 00 str: "This is a\ttab"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-tab.toml 0000644 0000000 0000000 00000000026 00000000000 022554 0 ustar 00 str = "This is a tab"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic-tab.yaml 0000644 0000000 0000000 00000000026 00000000000 022543 0 ustar 00 str: "This is a\ttab"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic.toml 0000644 0000000 0000000 00000000113 00000000000 022005 0 ustar 00 str = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-basic.yaml 0000644 0000000 0000000 00000000112 00000000000 021773 0 ustar 00 str: "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-1.toml 0000644 0000000 0000000 00000000011 00000000000 022317 0 ustar 00 a = "\b"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-1.yaml 0000644 0000000 0000000 00000000010 00000000000 022305 0 ustar 00 a: "\b"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-2.toml 0000644 0000000 0000000 00000000011 00000000000 022320 0 ustar 00 a = "\t"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-2.yaml 0000644 0000000 0000000 00000000010 00000000000 022306 0 ustar 00 a: "\t"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-3.toml 0000644 0000000 0000000 00000000011 00000000000 022321 0 ustar 00 a = "\n"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-3.yaml 0000644 0000000 0000000 00000000010 00000000000 022307 0 ustar 00 a: "\n"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-4.toml 0000644 0000000 0000000 00000000011 00000000000 022322 0 ustar 00 a = "\f"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-4.yaml 0000644 0000000 0000000 00000000010 00000000000 022310 0 ustar 00 a: "\f"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-5.toml 0000644 0000000 0000000 00000000011 00000000000 022323 0 ustar 00 a = "\r"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-5.yaml 0000644 0000000 0000000 00000000010 00000000000 022311 0 ustar 00 a: "\r"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-6.toml 0000644 0000000 0000000 00000000011 00000000000 022324 0 ustar 00 a = "\""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-6.yaml 0000644 0000000 0000000 00000000010 00000000000 022312 0 ustar 00 a: "\""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-7.toml 0000644 0000000 0000000 00000000011 00000000000 022325 0 ustar 00 a = "\\"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-7.yaml 0000644 0000000 0000000 00000000010 00000000000 022313 0 ustar 00 a: "\\"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-8.toml 0000644 0000000 0000000 00000000015 00000000000 022332 0 ustar 00 a = "\u0000"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-8.yaml 0000644 0000000 0000000 00000000012 00000000000 022316 0 ustar 00 a: "\x00"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-9.toml 0000644 0000000 0000000 00000000021 00000000000 022330 0 ustar 00 a = "\U00000000"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-escape-9.yaml 0000644 0000000 0000000 00000000012 00000000000 022317 0 ustar 00 a: "\x00"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-1.toml 0000644 0000000 0000000 00000000047 00000000000 022524 0 ustar 00 winpath = 'C:\Users\nodejs\templates'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-1.yaml 0000644 0000000 0000000 00000000045 00000000000 022511 0 ustar 00 winpath: 'C:\Users\nodejs\templates'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-2.toml 0000644 0000000 0000000 00000000050 00000000000 022517 0 ustar 00 winpath2 = '\\ServerX\admin$\system32\'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-2.yaml 0000644 0000000 0000000 00000000047 00000000000 022514 0 ustar 00 winpath2: '\\ServerX\admin$\system32\'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-3.toml 0000644 0000000 0000000 00000000047 00000000000 022526 0 ustar 00 quoted = 'Tom "Dubs" Preston-Werner'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-3.yaml 0000644 0000000 0000000 00000000044 00000000000 022512 0 ustar 00 quoted: 'Tom "Dubs" Preston-Werner'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-4.toml 0000644 0000000 0000000 00000000030 00000000000 022517 0 ustar 00 regex = '<\i\c*\s*>'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-4.yaml 0000644 0000000 0000000 00000000024 00000000000 022511 0 ustar 00 regex: '<\i\c*\s*>'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-1.toml 0000644 0000000 0000000 00000000054 00000000000 024522 0 ustar 00 regex2 = '''I [dw]on't need \d{2} apples'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-1.yaml 0000644 0000000 0000000 00000000050 00000000000 024505 0 ustar 00 regex2: "I [dw]on't need \\d{2} apples"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-2.toml 0000644 0000000 0000000 00000000147 00000000000 024526 0 ustar 00 lines = '''
The first newline is
trimmed in raw strings.
All other whitespace
is preserved.
'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-2.yaml 0000644 0000000 0000000 00000000144 00000000000 024512 0 ustar 00 lines: "The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-3.toml 0000644 0000000 0000000 00000000101 00000000000 024515 0 ustar 00 quot15 = '''Here are fifteen quotation marks: """""""""""""""'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-3.yaml 0000644 0000000 0000000 00000000074 00000000000 024515 0 ustar 00 quot15: 'Here are fifteen quotation marks: """""""""""""""'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-4.toml 0000644 0000000 0000000 00000000064 00000000000 024526 0 ustar 00 str = ''''That,' she said, 'is still pointless.''''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-string-literal-multiline-4.yaml 0000644 0000000 0000000 00000000057 00000000000 024517 0 ustar 00 str: "'That,' she said, 'is still pointless.'"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-1.toml 0000644 0000000 0000000 00000000130 00000000000 020644 0 ustar 00 [table-1]
key1 = "some string"
key2 = 123
[table-2]
key1 = "another string"
key2 = 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-1.yaml 0000644 0000000 0000000 00000000131 00000000000 020634 0 ustar 00 table-1:
key1: "some string"
key2: 123
table-2:
key1: "another string"
key2: 456
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-2.toml 0000644 0000000 0000000 00000000044 00000000000 020651 0 ustar 00 [dog."tater.man"]
type.name = "pug"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-2.yaml 0000644 0000000 0000000 00000000060 00000000000 020636 0 ustar 00 dog:
"tater.man":
type:
name: "pug"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-3.toml 0000644 0000000 0000000 00000000010 00000000000 020643 0 ustar 00 [a.b.c]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-3.yaml 0000644 0000000 0000000 00000000022 00000000000 020635 0 ustar 00 a:
b:
c: {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-4.toml 0000644 0000000 0000000 00000000045 00000000000 020654 0 ustar 00 [ d.e.f ] # same as [d.e.f]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-4.yaml 0000644 0000000 0000000 00000000022 00000000000 020636 0 ustar 00 d:
e:
f: {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-5.toml 0000644 0000000 0000000 00000000045 00000000000 020655 0 ustar 00 [ g . h . i ] # same as [g.h.i]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-5.yaml 0000644 0000000 0000000 00000000022 00000000000 020637 0 ustar 00 g:
h:
i: {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-6.toml 0000644 0000000 0000000 00000000053 00000000000 020655 0 ustar 00 [ j . "ʞ" . 'l' ] # same as [j."ʞ".'l']
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-6.yaml 0000644 0000000 0000000 00000000025 00000000000 020643 0 ustar 00 j:
"ʞ":
l: {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-7.toml 0000644 0000000 0000000 00000000170 00000000000 020656 0 ustar 00 # [x] you
# [x.y] don't
# [x.y.z] need these
[x.y.z.w] # for this to work
[x] # defining a super-table afterwards is ok
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-7.yaml 0000644 0000000 0000000 00000000033 00000000000 020643 0 ustar 00 x:
y:
z:
w: {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-8.toml 0000644 0000000 0000000 00000000164 00000000000 020662 0 ustar 00 [fruit]
apple.color = "red"
apple.taste.sweet = true
[fruit.apple.texture] # you can add sub-tables
smooth = true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-8.yaml 0000644 0000000 0000000 00000000136 00000000000 020650 0 ustar 00 fruit:
apple:
color: "red"
taste:
sweet: true
texture:
smooth: true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-inline-1.toml 0000644 0000000 0000000 00000000062 00000000000 022124 0 ustar 00 name = { first = "Tom", last = "Preston-Werner" }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-inline-1.yaml 0000644 0000000 0000000 00000000057 00000000000 022117 0 ustar 00 name: { first: "Tom", last: "Preston-Werner" }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-inline-2.toml 0000644 0000000 0000000 00000000031 00000000000 022121 0 ustar 00 point = { x = 1, y = 2 }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-inline-2.yaml 0000644 0000000 0000000 00000000031 00000000000 022110 0 ustar 00 point: { x: 1, y: 2 }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-inline-3.toml 0000644 0000000 0000000 00000000040 00000000000 022122 0 ustar 00 animal = { type.name = "pug" }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table-inline-3.yaml 0000644 0000000 0000000 00000000045 00000000000 022116 0 ustar 00 animal: { type: { name: "pug" } }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table.toml 0000644 0000000 0000000 00000000010 00000000000 020503 0 ustar 00 [table]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-table.yaml 0000644 0000000 0000000 00000000012 00000000000 020474 0 ustar 00 table: {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-time-1.json 0000644 0000000 0000000 00000000103 00000000000 020511 0 ustar 00 {
"lt1": {
"type": "time",
"value": "07:32:00.000"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-time-1.toml 0000644 0000000 0000000 00000000017 00000000000 020517 0 ustar 00 lt1 = 07:32:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-time-2.json 0000644 0000000 0000000 00000000103 00000000000 020512 0 ustar 00 {
"lt2": {
"type": "time",
"value": "00:32:00.999"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tests/toml-spec-tests/values/spec-time-2.toml 0000644 0000000 0000000 00000000026 00000000000 020520 0 ustar 00 lt2 = 00:32:00.999999
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.6935482
tomlkit-0.9.2/tests/toml-test/.git 0000644 0000000 0000000 00000000053 00000000000 013750 0 ustar 00 gitdir: ../../.git/modules/tests/toml-test
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/.github/workflows/test.yml 0000644 0000000 0000000 00000001372 00000000000 020270 0 ustar 00 {
"name": "go test",
"on": ["push", "pull_request"],
"jobs": {
"test": {
"strategy": {
"matrix": {
"go-version": ["1.16.x"],
"os": ["ubuntu-latest", "macos-latest", "windows-latest"]
}
},
"runs-on": "${{ matrix.os }}",
"steps": [
{
"name": "Install Go",
"uses": "actions/setup-go@v2",
"with": {"go-version": "${{ matrix.go-version }}"}
},
{
"name": "Checkout code",
"uses": "actions/checkout@v2"
},
{
"name": "Test",
"run": "go test -v ./..."
},
{
"name": "Install",
"run": "go install -v ./cmd/toml-test"
}
]
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/.gitignore 0000644 0000000 0000000 00000000021 00000000000 015147 0 ustar 00 /dist
/toml-test
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/.gogo-release 0000644 0000000 0000000 00000000053 00000000000 015536 0 ustar 00 build_flags="$build_flags ./cmd/toml-test"
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/COPYING 0000644 0000000 0000000 00000002067 00000000000 014226 0 ustar 00 The MIT License (MIT)
Copyright (c) 2018 TOML authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/README.md 0000644 0000000 0000000 00000021701 00000000000 014446 0 ustar 00 `toml-test` is a language-agnostic test suite to verify the correctness of
[TOML][t] parsers and writers.
Tests are divided into two groups: "invalid" and "valid". Decoders or encoders
that reject "invalid" tests pass the tests, and decoders that accept "valid"
tests and output precisely what is expected pass the tests. The output format is
JSON, described below.
Both encoders and decoders share valid tests, except an encoder accepts JSON and
outputs TOML rather than the reverse. The TOML representations are read with a
blessed decoder and is compared. Encoders have their own set of invalid tests in
the invalid-encoder directory. The JSON given to a TOML encoder is in the same
format as the JSON that a TOML decoder should output.
Compatible with TOML version [v1.0.0][v1].
[t]: https://toml.io
[v1]: https://toml.io/en/v1.0.0
Installation
------------
There are binaries on the [release page][r]; these are statically compiled and
should run in most environments. It's recommended you use a binary, or a tagged
release if you build from source especially in CI environments. This prevents
your tests from breaking on changes to tests in this tool.
To compile from source you will need Go 1.16 or newer (older versions will *not*
work):
$ git clone https://github.com/BurntSushi/toml-test.git
$ cd toml-test
$ go build ./cmd/toml-test
This will build a `./toml-test` binary.
[r]: https://github.com/BurntSushi/toml-test/releases
Usage
-----
`toml-test` accepts an encoder or decoder as the first positional argument, for
example:
$ toml-test my-toml-decoder
$ toml-test my-toml-encoder -encoder
The `-encoder` flag is used to signal that this is an encoder rather than a
decoder.
For example, to run the tests against the Go TOML library:
# Install my parser
$ go install github.com/BurntSushi/toml/cmd/toml-test-decoder@master
$ go install github.com/BurntSushi/toml/cmd/toml-test-encoder@master
$ toml-test toml-test-decoder
toml-test [toml-test-decoder]: using embeded tests: 278 passed
$ toml-test -encoder toml-test-encoder
toml-test [toml-test-encoder]: using embeded tests: 94 passed, 0 failed
The default is to use the tests compiled in the binary; you can use `-testdir`
to load tests from the filesystem. You can use `-run [name]` or `-skip [name]`
to run or skip specific tests. Both flags can be given more than once and accept
glob patterns: `-run 'valid/string/*'`.
See `toml-test -help` for detailed usage.
### Implementing a decoder
For your decoder to be compatible with `toml-test` it **must** satisfy the
expected interface:
- Your decoder **must** accept TOML data on `stdin` until EOF.
- If the TOML data is invalid, your decoder **must** return with a non-zero
exit, code indicating an error.
- If the TOML data is valid, your decoder **must** output a JSON encoding of
that data on `stdout` and return with a zero exit code indicating success.
An example in pseudocode:
toml_data = read_stdin()
parsed_toml = decode_toml(toml_data)
if error_parsing_toml():
print_error_to_stderr()
exit(1)
print_as_tagged_json(parsed_toml)
exit(0)
Details on the tagged JSON is explained below in "JSON encoding".
### Implementing an encoder
For your encoder to be compatible with `toml-test`, it **must** satisfy the
expected interface:
- Your encoder **must** accept JSON data on `stdin` until EOF.
- If the JSON data cannot be converted to a valid TOML representation, your
encoder **must** return with a non-zero exit code indicating an error.
- If the JSON data can be converted to a valid TOML representation, your encoder
**must** output a TOML encoding of that data on `stdout` and return with a
zero exit code indicating success.
An example in pseudocode:
json_data = read_stdin()
parsed_json_with_tags = decode_json(json_data)
if error_parsing_json():
print_error_to_stderr()
exit(1)
print_as_toml(parsed_json_with_tags)
exit(0)
JSON encoding
-------------
The following JSON encoding applies equally to both encoders and decoders:
- TOML tables correspond to JSON objects.
- TOML table arrays correspond to JSON arrays.
- TOML values correspond to a special JSON object of the form:
`{"type": "{TTYPE}", "value": {TVALUE}}`
In the above, `TTYPE` may be one of:
- string
- integer
- float
- bool
- datetime
- datetime-local
- date-local
- time-local
`TVALUE` is always a JSON string.
Empty hashes correspond to empty JSON objects (`{}`) and empty arrays correspond
to empty JSON arrays (`[]`).
Offset datetimes should be encoded in RFC 3339; Local datetimes should be
encoded following RFC 3339 without the offset part. Local dates should be
encoded as the date part of RFC 3339 and Local times as the time part.
Examples:
TOML JSON
a = 42 {"type": "integer": "value": "42}
---
[tbl] {"tbl": {
a = 42 "a": {"type": "integer": "value": "42}
}}
---
a = ["a", 2] {"a": [
{"type": "string", "value": "1"},
{"type: "integer": "value": "2"}
]}
Or a more complex example:
```toml
best-day-ever = 1987-07-05T17:45:00Z
[numtheory]
boring = false
perfection = [6, 28, 496]
```
And the JSON encoding expected by `toml-test` is:
```json
{
"best-day-ever": {"type": "datetime", "value": "1987-07-05T17:45:00Z"},
"numtheory": {
"boring": {"type": "bool", "value": "false"},
"perfection": [
{"type": "integer", "value": "6"},
{"type": "integer", "value": "28"},
{"type": "integer", "value": "496"}
]
}
}
```
Note that the only JSON values ever used are objects, arrays and strings.
An example implementation can be found in the BurnSushi/toml:
- [Add tags](https://github.com/BurntSushi/toml/blob/master/internal/tag/add.go)
- [Remove tags](https://github.com/BurntSushi/toml/blob/master/internal/tag/rm.go)
Assumptions of Truth
--------------------
The following are taken as ground truths by `toml-test`:
- All tests classified as `invalid` **are** invalid.
- All tests classified as `valid` **are** valid.
- All expected outputs in `valid/test-name.json` are exactly correct.
- The Go standard library package `encoding/json` decodes JSON correctly.
- When testing encoders, the TOML decoder at
[BurntSushi/toml](https://github.com/BurntSushi/toml) is assumed to be
correct. (Note that this assumption is not made when testing decoders!)
Of particular note is that **no TOML decoder** is taken as ground truth when
testing decoders. This means that most changes to the spec will only require an
update of the tests in `toml-test`. (Bigger changes may require an adjustment of
how two things are considered equal. Particularly if a new type of data is
added.) Obviously, this advantage does not apply to testing TOML encoders since
there must exist a TOML decoder that conforms to the specification in order to
read the output of a TOML encoder.
Adding tests
------------
`toml-test` was designed so that tests can be easily added and removed. As
mentioned above, tests are split into two groups: invalid and valid tests.
Invalid tests **only check if a decoder rejects invalid TOML data**. Or, in the
case of testing encoders, invalid tests **only check if an encoder rejects an
invalid representation of TOML** (e.g., a hetergeneous array). Therefore, all
invalid tests should try to **test one thing and one thing only**. Invalid tests
should be named after the fault it is trying to expose. Invalid tests for
decoders are in the `tests/invalid` directory while invalid tests for encoders
are in the `tests/invalid-encoder` directory.
Valid tests check that a decoder accepts valid TOML data **and** that the parser
has the correct representation of the TOML data. Therefore, valid tests need a
JSON encoding in addition to the TOML data. The tests should be small enough
that writing the JSON encoding by hand will not give you brain damage. The exact
reverse is true when testing encoders.
A valid test without either a `.json` or `.toml` file will automatically fail.
If you have tests that you'd like to add, please submit a pull request.
Why JSON?
---------
In order for a language agnostic test suite to work, we need some kind of data
exchange format. TOML cannot be used, as it would imply that a particular parser
has a blessing of correctness.
My decision to use JSON was not a careful one. It was based on expediency. The
Go standard library has an excellent `encoding/json` package built in, which
made it easy to compare JSON data.
The problem with JSON is that the types in TOML are not in one-to-one
correspondence with JSON. This is why every TOML value represented in JSON is
tagged with a type annotation, as described above.
YAML may be closer in correspondence with TOML, but I don't believe we should
rely on that correspondence. Making things explicit with JSON means that writing
tests is a little more cumbersome, but it also reduces the number of assumptions
we need to make.
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/cmd/toml-test/main.go 0000644 0000000 0000000 00000010756 00000000000 017145 0 ustar 00 package main
import (
"fmt"
"io/fs"
"os"
"path/filepath"
"strings"
tomltest "github.com/BurntSushi/toml-test"
"zgo.at/zli"
)
var hlErr = zli.ColorHex("#f6d6d6").Bg() | zli.Black | zli.Bold
var version = "git"
func parseFlags() (tomltest.Runner, []string, int, string) {
f := zli.NewFlags(os.Args)
var (
help = f.Bool(false, "help", "h")
versionFlag = f.Bool(false, "version", "V")
encoder = f.Bool(false, "encoder")
testDir = f.String("", "testdir")
showAll = f.IntCounter(0, "v")
color = f.String("always", "color")
skip = f.StringList(nil, "skip")
run = f.StringList(nil, "run")
)
zli.F(f.Parse())
if help.Bool() {
fmt.Printf(usage, filepath.Base(os.Args[0]))
zli.Exit(0)
}
if versionFlag.Bool() {
fmt.Println(version)
zli.Exit(0)
}
r := tomltest.Runner{
Encoder: encoder.Bool(),
RunTests: run.StringsSplit(","),
SkipTests: skip.StringsSplit(","),
}
if len(f.Args) == 0 {
zli.Fatalf("no parser command")
}
for _, r := range r.RunTests {
_, err := filepath.Match(r, "")
if err != nil {
zli.Fatalf("invalid glob pattern %q in -run: %s", r, err)
}
}
for _, r := range r.SkipTests {
_, err := filepath.Match(r, "")
if err != nil {
zli.Fatalf("invalid glob pattern %q in -skip: %s", r, err)
}
}
r.Files = tomltest.EmbeddedTests()
if testDir.Set() {
r.Files = os.DirFS(testDir.String())
// So I used the path to toml-dir a few times, be forgiving by looking
// for a "tests" directory and sub-ing to that.
ls, err := fs.ReadDir(r.Files, ".")
zli.F(err)
var f, t int
for _, l := range ls {
if l.IsDir() && (l.Name() == "valid" || l.Name() == "invalid") {
f++
}
if l.IsDir() && l.Name() == "tests" {
t++
}
}
if f < 2 {
if t == 0 {
zli.Fatalf("%q does not seem to contain any tests (no valid and/or invalid directory)", testDir)
}
r.Files, err = fs.Sub(r.Files, "tests")
zli.F(err)
}
}
r.Parser = tomltest.NewCommandParser(r.Files, f.Args)
switch color.String() {
case "always", "yes":
zli.WantColor = true
case "never", "no":
zli.WantColor = false
case "bold", "monochrome":
zli.WantColor = true
hlErr = zli.Bold
default:
zli.Fatalf("invalid value for -color: %q", color)
}
return r, f.Args, showAll.Int(), testDir.String()
}
func main() {
runner, cmd, showAll, testDir := parseFlags()
tests, err := runner.Run()
zli.F(err)
for _, t := range tests.Tests {
if t.Failed() || showAll > 1 {
fmt.Print(detailed(runner, t))
} else if showAll == 1 {
fmt.Print(short(runner, t))
}
}
fmt.Printf("toml-test %s: ", cmd)
if testDir == "" {
fmt.Print("using embeded tests: ")
} else {
fmt.Printf("tests from %q: ", testDir)
}
fmt.Printf("%3d passed, %2d failed", tests.Passed, tests.Failed)
if tests.Skipped > 0 {
fmt.Printf(", %2d skipped", tests.Skipped)
}
fmt.Println()
if tests.Failed > 0 {
zli.Exit(1)
}
zli.Exit(0)
}
func short(r tomltest.Runner, t tomltest.Test) string {
b := new(strings.Builder)
switch {
case t.Failure != "":
b.WriteString(zli.Colorf("FAIL", hlErr))
b.WriteByte(' ')
b.WriteString(zli.Bold.String())
b.WriteString(t.Path)
b.WriteString(zli.Reset.String())
case t.Skipped:
b.WriteString(hlErr.String())
b.WriteString("SKIP")
b.WriteString(zli.Reset.String())
b.WriteByte(' ')
b.WriteString(t.Path)
default:
b.WriteString("PASS ")
b.WriteString(t.Path)
}
b.WriteByte('\n')
return b.String()
}
func detailed(r tomltest.Runner, t tomltest.Test) string {
b := new(strings.Builder)
b.WriteString(short(r, t))
if t.Failed() {
b.WriteString(indentWith(
indent(t.Failure, 4),
zli.Colorf(" ", hlErr)))
b.WriteByte('\n')
}
showStream(b, "input sent to parser-cmd", t.Input)
if t.OutputFromStderr {
showStream(b, "output from parser-cmd (stderr)", t.Output)
} else {
showStream(b, "output from parser-cmd (stdout)", t.Output)
}
if t.Type() == tomltest.TypeValid {
showStream(b, "want", t.Want)
} else {
showStream(b, "want", "Exit code 1")
}
b.WriteByte('\n')
return b.String()
}
func showStream(b *strings.Builder, name, s string) {
b.WriteByte('\n')
fmt.Fprintln(b, zli.Colorf(" "+name+":", zli.Bold))
if s == "" {
fmt.Fprintln(b, " ")
return
}
fmt.Fprintln(b, indent(s, 7))
}
func indentWith(s, with string) string {
return with + strings.ReplaceAll(strings.TrimRight(s, "\n"), "\n", "\n"+with)
}
func indent(s string, n int) string {
sp := strings.Repeat(" ", n)
return sp + strings.ReplaceAll(strings.TrimRight(s, "\n"), "\n", "\n"+sp)
}
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/cmd/toml-test/usage.go 0000644 0000000 0000000 00000006602 00000000000 017320 0 ustar 00 package main
const usage = `Usage: %[1]s parser-cmd [ parser-cmd-flags ]
toml-test is a tool to verify the correctness of TOML parsers and writers.
https://github.com/BurntSushi/toml-test
The parser-cmd positional argument should be a program that accepts TOML data
on stdin until EOF, and is expected to write the corresponding JSON encoding on
stdout. Please see 'README.md' for details on how to satisfy the interface
expected by 'toml-test' with your own parser.
Any positional arguments are use as the parser-cmd; to pass flags, remember to
stop toml-test's flag parsing with --
$ %[1]s -- my-parser -x -y
There are two tests:
decoder This is the default.
encoder When -encoder is given.
Tests are split in to two groups:
valid Valid TOML files
invalid Invalid TOML files that should be rejected with an error.
invalid-encoder Invalid input for the encoder
All tests are referred to relative to to the tests/ directory: valid/dir/name or
invalid/dir/name.
Flags:
-help Show this help and exit.
-version Show version and exit.
-encoder The given parser-cmd will be tested as a TOML encoder.
The parser-cmd will be sent JSON on stdin and is expected to
write TOML to stdout. The JSON will be in the same format as
specified in the toml-test README. Note that this depends on the
correctness of my TOML parser!
-v List all tests, even passing ones. Add twice to show detailed
output for passing tests.
-run Specify a list of tests to run; the default is to run all tests.
Test names include the directory, i.e. "valid/test-name" or
"invalid/test-name". You can use globbing patterns , for example
to run all string tests:
$ toml-test toml-test-decoder -run 'valid/string*'
You can specify this argument more than once, and/or specify
multiple tests by separating them with a comma:
$ toml-test toml-test-decoder \
-run valid/string-empty \
-run valid/string-nl,valid/string-simple
This will run three tests (string-empty, string-nl,
string-simple).
Globbing patterns: https://pkg.go.dev/path/filepath#Match
-skip Tests to skip, this uses the same syntax as the -run flag.
-color Output color; possible values:
always Show test failures in bold and red (default).
bold Show test failures in bold only.
never Never output any escape codes.
-testdir Location of the tests; the default is to use the tests compiled
in the binary; this is only useful if you want to add or modify
tests.
A test in the invalid directory is a toml file that is known to
be invalid and should be rejected by the parser.
A test in the valid directory is a toml and json file with the
same name, where the json file is the JSON representation of the
TOML file according to the syntax described in the README.
For encoders, the same directory scheme above is used, except
the invalid-encoder directory is used instead of the invalid
directory.
`
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/gen-multi.py 0000755 0000000 0000000 00000000606 00000000000 015446 0 ustar 00 #!/usr/bin/env python3
import glob
import os.path
for f in glob.glob('tests/invalid/*/*.multi'):
base = os.path.dirname(f[:-6])
for l in open(f, 'rb').readlines():
name = l.split(b'=')[0].strip().decode()
if name == '' or name[0] == '#':
continue
path = base + "/" + name + '.toml'
with open(path, 'wb+') as fp:
fp.write(l)
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/go.mod 0000644 0000000 0000000 00000000314 00000000000 014272 0 ustar 00 module github.com/BurntSushi/toml-test
go 1.16
require (
github.com/BurntSushi/toml v0.4.0
// no_term branch, which doesn't depend on x/term and x/sys
zgo.at/zli v0.0.0-20210619044753-e7020a328e59
)
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/go.sum 0000644 0000000 0000000 00000002472 00000000000 014326 0 ustar 00 github.com/BurntSushi/toml v0.3.2-0.20210614224209-34d990aa228d/go.mod h1:2QZjSXA5e+XyFeCAxxtL8Z4StYUsTquL8ODGPR3C3MA=
github.com/BurntSushi/toml v0.3.2-0.20210621044154-20a94d639b8e/go.mod h1:t4zg8TkHfP16Vb3x4WKIw7zVYMit5QFtPEO8lOWxzTg=
github.com/BurntSushi/toml v0.3.2-0.20210624061728-01bfc69d1057/go.mod h1:NMj2lD5LfMqcE0w8tnqOsH6944oaqpI1974lrIwerfE=
github.com/BurntSushi/toml v0.3.2-0.20210704081116-ccff24ee4463/go.mod h1:EkRrMiQQmfxK6kIldz3QbPlhmVkrjW1RDJUnbDqGYvc=
github.com/BurntSushi/toml v0.4.0 h1:qD/r9AL67srjW6O3fcSKZDsXqzBNX6ieSRywr2hRrdE=
github.com/BurntSushi/toml v0.4.0/go.mod h1:wtejDu7Q0FhCWAo2aXkywSJyYFg01EDTKozLNCz2JBA=
github.com/BurntSushi/toml-test v0.1.1-0.20210620192437-de01089bbf76/go.mod h1:P/PrhmZ37t5llHfDuiouWXtFgqOoQ12SAh9j6EjrBR4=
github.com/BurntSushi/toml-test v0.1.1-0.20210624055653-1f6389604dc6/go.mod h1:UAIt+Eo8itMZAAgImXkPGDMYsT1SsJkVdB5TuONl86A=
github.com/BurntSushi/toml-test v0.1.1-0.20210704062846-269931e74e3f/go.mod h1:fnFWrIwqgHsEjVsW3RYCJmDo86oq9eiJ9u6bnqhtm2g=
github.com/BurntSushi/toml-test v0.1.1-0.20210723065233-facb9eccd4da/go.mod h1:ve9Q/RRu2vHi42LocPLNvagxuUJh993/95b18bw/Nws=
zgo.at/zli v0.0.0-20210619044753-e7020a328e59 h1:NId7flXh2TTB7XD/0/WBTuZ8L5mpNMCdYyqJ/VQIlFM=
zgo.at/zli v0.0.0-20210619044753-e7020a328e59/go.mod h1:HLAc12TjNGT+VRXr76JnsNE3pbooQtwKWhX+RlDjQ2Y=
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/json.go 0000644 0000000 0000000 00000015051 00000000000 014470 0 ustar 00 package tomltest
import (
"strconv"
"strings"
"time"
)
// cmpJSON consumes the recursive structure of both want and have
// simultaneously. If anything is unequal, the result has failed and comparison
// stops.
//
// reflect.DeepEqual could work here, but it won't tell us how the two
// structures are different.
func (r Test) cmpJSON(want, have interface{}) Test {
switch w := want.(type) {
case map[string]interface{}:
return r.cmpJSONMaps(w, have)
case []interface{}:
return r.cmpJSONArrays(w, have)
default:
return r.fail(
"Key '%s' in expected output should be a map or a list of maps, but it's a %T",
r.Key, want)
}
}
func (r Test) cmpJSONMaps(want map[string]interface{}, have interface{}) Test {
haveMap, ok := have.(map[string]interface{})
if !ok {
return r.mismatch("table", want, haveMap)
}
// Check to make sure both or neither are values.
if isValue(want) && !isValue(haveMap) {
return r.fail(
"Key '%s' is supposed to be a value, but the parser reports it as a table",
r.Key)
}
if !isValue(want) && isValue(haveMap) {
return r.fail(
"Key '%s' is supposed to be a table, but the parser reports it as a value",
r.Key)
}
if isValue(want) && isValue(haveMap) {
return r.cmpJSONValues(want, haveMap)
}
// Check that the keys of each map are equivalent.
for k := range want {
if _, ok := haveMap[k]; !ok {
bunk := r.kjoin(k)
return bunk.fail("Could not find key '%s' in parser output.",
bunk.Key)
}
}
for k := range haveMap {
if _, ok := want[k]; !ok {
bunk := r.kjoin(k)
return bunk.fail("Could not find key '%s' in expected output.",
bunk.Key)
}
}
// Okay, now make sure that each value is equivalent.
for k := range want {
if sub := r.kjoin(k).cmpJSON(want[k], haveMap[k]); sub.Failed() {
return sub
}
}
return r
}
func (r Test) cmpJSONArrays(want, have interface{}) Test {
wantSlice, ok := want.([]interface{})
if !ok {
return r.bug("'value' should be a JSON array when 'type=array', but it is a %T", want)
}
haveSlice, ok := have.([]interface{})
if !ok {
return r.fail(
"Malformed output from your encoder: 'value' is not a JSON array: %T", have)
}
if len(wantSlice) != len(haveSlice) {
return r.fail("Array lengths differ for key '%s':\n"+
" Expected: %d\n"+
" Your encoder: %d",
r.Key, len(wantSlice), len(haveSlice))
}
for i := 0; i < len(wantSlice); i++ {
if sub := r.cmpJSON(wantSlice[i], haveSlice[i]); sub.Failed() {
return sub
}
}
return r
}
func (r Test) cmpJSONValues(want, have map[string]interface{}) Test {
wantType, ok := want["type"].(string)
if !ok {
return r.bug("'type' should be a string, but it is a %T", want["type"])
}
haveType, ok := have["type"].(string)
if !ok {
return r.fail("Malformed output from your encoder: 'type' is not a string: %T", have["type"])
}
if wantType != haveType {
return r.valMismatch(wantType, haveType, want, have)
}
// If this is an array, then we've got to do some work to check equality.
if wantType == "array" {
return r.cmpJSONArrays(want, have)
}
// Atomic values are always strings
wantVal, ok := want["value"].(string)
if !ok {
return r.bug("'value' %v should be a string, but it is a %[1]T", want["value"])
}
haveVal, ok := have["value"].(string)
if !ok {
return r.fail("Malformed output from your encoder: %T is not a string", have["value"])
}
// Excepting floats and datetimes, other values can be compared as strings.
switch wantType {
case "float":
return r.cmpFloats(wantVal, haveVal)
case "datetime", "datetime-local", "date-local", "time-local":
return r.cmpAsDatetimes(wantType, wantVal, haveVal)
default:
return r.cmpAsStrings(wantVal, haveVal)
}
}
func (r Test) cmpAsStrings(want, have string) Test {
if want != have {
return r.fail("Values for key '%s' don't match:\n"+
" Expected: %s\n"+
" Your encoder: %s",
r.Key, want, have)
}
return r
}
func (r Test) cmpFloats(want, have string) Test {
// Special case for NaN, since NaN != NaN.
if strings.HasSuffix(want, "nan") || strings.HasSuffix(have, "nan") {
if want != have {
return r.fail("Values for key '%s' don't match:\n"+
" Expected: %v\n"+
" Your encoder: %v",
r.Key, want, have)
}
return r
}
wantF, err := strconv.ParseFloat(want, 64)
if err != nil {
return r.bug("Could not read '%s' as a float value for key '%s'", want, r.Key)
}
haveF, err := strconv.ParseFloat(have, 64)
if err != nil {
return r.fail("Malformed output from your encoder: key '%s' is not a float: '%s'", r.Key, have)
}
if wantF != haveF {
return r.fail("Values for key '%s' don't match:\n"+
" Expected: %v\n"+
" Your encoder: %v",
r.Key, wantF, haveF)
}
return r
}
var datetimeRepl = strings.NewReplacer(
" ", "T",
"t", "T",
"z", "Z")
var layouts = map[string]string{
"datetime": time.RFC3339Nano,
"datetime-local": "2006-01-02T15:04:05.999999999",
"date-local": "2006-01-02",
"time-local": "15:04:05",
}
func (r Test) cmpAsDatetimes(kind, want, have string) Test {
layout, ok := layouts[kind]
if !ok {
panic("should never happen")
}
wantT, err := time.Parse(layout, datetimeRepl.Replace(want))
if err != nil {
return r.bug("Could not read '%s' as a datetime value for key '%s'", want, r.Key)
}
haveT, err := time.Parse(layout, datetimeRepl.Replace(want))
if err != nil {
return r.fail("Malformed output from your encoder: key '%s' is not a datetime: '%s'", r.Key, have)
}
if !wantT.Equal(haveT) {
return r.fail("Values for key '%s' don't match:\n"+
" Expected: %v\n"+
" Your encoder: %v",
r.Key, wantT, haveT)
}
return r
}
func (r Test) cmpAsDatetimesLocal(want, have string) Test {
if datetimeRepl.Replace(want) != datetimeRepl.Replace(have) {
return r.fail("Values for key '%s' don't match:\n"+
" Expected: %v\n"+
" Your encoder: %v",
r.Key, want, have)
}
return r
}
func (r Test) kjoin(key string) Test {
if len(r.Key) == 0 {
r.Key = key
} else {
r.Key += "." + key
}
return r
}
func isValue(m map[string]interface{}) bool {
if len(m) != 2 {
return false
}
if _, ok := m["type"]; !ok {
return false
}
if _, ok := m["value"]; !ok {
return false
}
return true
}
func (r Test) mismatch(wantType string, want, have interface{}) Test {
return r.fail("Key '%s' is not an %s but %[4]T:\n"+
" Expected: %#[3]v\n"+
" Your encoder: %#[4]v",
r.Key, wantType, want, have)
}
func (r Test) valMismatch(wantType, haveType string, want, have interface{}) Test {
return r.fail("Key '%s' is not an %s but %s:\n"+
" Expected: %#[3]v\n"+
" Your encoder: %#[4]v",
r.Key, wantType, want, have)
}
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/runner.go 0000644 0000000 0000000 00000022656 00000000000 015041 0 ustar 00 //go:generate ./gen-multi.py
package tomltest
import (
"bytes"
"embed"
"encoding/json"
"errors"
"fmt"
"io/fs"
"os"
"os/exec"
"path/filepath"
"strings"
"github.com/BurntSushi/toml"
)
type testType uint8
const (
TypeValid testType = iota
TypeInvalid
)
//go:embed tests/*
var embeddedTests embed.FS
// EmbeddedTests are the tests embedded in toml-test, rooted to the "test/"
// directory.
func EmbeddedTests() fs.FS {
f, err := fs.Sub(embeddedTests, "tests")
if err != nil {
panic(err)
}
return f
}
// Runner runs a set of tests.
//
// The validity of the parameters is not checked extensively; the caller should
// verify this if need be. See ./cmd/toml-test for an example.
type Runner struct {
Files fs.FS // Test files.
Encoder bool // Are we testing an encoder?
RunTests []string // Tests to run; run all if blank.
SkipTests []string // Tests to skip.
Parser Parser // Send data to a parser.
}
// A Parser instance is used to call the TOML parser we test.
//
// By default this is done through an external command.
type Parser interface {
// Encode a JSON string to TOML.
//
// The output is the TOML string; if outputIsError is true then it's assumed
// that an encoding error occurred.
//
// An error return should only be used in case an unrecoverable error
// occurred; failing to encode to TOML is not an error, but the encoder
// unexpectedly panicking is.
Encode(jsonInput string) (output string, outputIsError bool, err error)
// Decode a TOML string to JSON. The same semantics as Encode apply.
Decode(tomlInput string) (output string, outputIsError bool, err error)
}
// CommandParser calls an external command.
type CommandParser struct {
fsys fs.FS
cmd []string
}
// Tests are tests to run.
type Tests struct {
Tests []Test
// Set when test are run.
Skipped, Passed, Failed int
}
// Result is the result of a single test.
type Test struct {
Path string // Path of test, e.g. "valid/string-test"
// Set when a test is run.
Skipped bool // Skipped this test?
Failure string // Failure message.
Key string // TOML key the failure occured on; may be blank.
Encoder bool // Encoder test?
Input string // The test case that we sent to the external program.
Output string // Output from the external program.
Want string // The output we want.
OutputFromStderr bool // The Output came from stderr, not stdout.
}
// List all tests in Files.
func (r Runner) List() ([]string, error) {
ls := make([]string, 0, 256)
if err := r.findTOML("valid", &ls); err != nil {
return nil, fmt.Errorf("reading 'valid/' dir: %w", err)
}
d := "invalid" + map[bool]string{true: "-encoder", false: ""}[r.Encoder]
if err := r.findTOML(d, &ls); err != nil {
return nil, fmt.Errorf("reading %q dir: %w", d, err)
}
return ls, nil
}
// Run all tests listed in t.RunTests.
//
// TODO: give option to:
// - Run all tests with \n replaced with \r\n
// - Run all tests with '# comment' appended to every line.
func (r Runner) Run() (Tests, error) {
skipped, err := r.findTests()
if err != nil {
return Tests{}, fmt.Errorf("tomltest.Runner.Run: %w", err)
}
tests := Tests{Tests: make([]Test, 0, len(r.RunTests)), Skipped: skipped}
for _, p := range r.RunTests {
if r.hasSkip(p) {
tests.Skipped++
tests.Tests = append(tests.Tests, Test{Path: p, Skipped: true, Encoder: r.Encoder})
continue
}
t := Test{Path: p, Encoder: r.Encoder}.Run(r.Parser, r.Files)
tests.Tests = append(tests.Tests, t)
if t.Failed() {
tests.Failed++
} else {
tests.Passed++
}
}
return tests, nil
}
// find all TOML files in 'path' relative to the test directory.
func (r Runner) findTOML(path string, appendTo *[]string) error {
err := fs.WalkDir(r.Files, path, func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
}
if d.IsDir() || !strings.HasSuffix(path, ".toml") {
return nil
}
*appendTo = append(*appendTo, strings.TrimSuffix(path, ".toml"))
return nil
})
// It's okay if the directory doesn't exist.
var pErr *os.PathError
if errors.As(err, &pErr) && pErr.Op == "open" && pErr.Path == path {
return nil
}
return err
}
// Expand RunTest glob patterns, or return all tests if RunTests if empty.
func (r *Runner) findTests() (int, error) {
ls, err := r.List()
if err != nil {
return 0, err
}
var skip int
if len(r.RunTests) == 0 {
r.RunTests = ls
} else {
run := make([]string, 0, len(r.RunTests))
for _, l := range ls {
for _, r := range r.RunTests {
if m, _ := filepath.Match(r, l); m {
run = append(run, l)
break
}
}
}
r.RunTests, skip = run, len(ls)-len(run)
}
// Expand invalid tests ending in ".multi.toml"
expanded := make([]string, 0, len(r.RunTests))
for _, path := range r.RunTests {
if !strings.HasSuffix(path, ".multi") {
expanded = append(expanded, path)
continue
}
d, err := fs.ReadFile(r.Files, path+".toml")
if err != nil {
return 0, err
}
fmt.Println(string(d))
}
r.RunTests = expanded
return skip, nil
}
func (r Runner) hasSkip(path string) bool {
for _, s := range r.SkipTests {
if m, _ := filepath.Match(s, path); m {
return true
}
}
return false
}
func (c CommandParser) Encode(input string) (output string, outputIsError bool, err error) {
stdout, stderr := new(bytes.Buffer), new(bytes.Buffer)
cmd := exec.Command(c.cmd[0])
cmd.Args = c.cmd
cmd.Stdin, cmd.Stdout, cmd.Stderr = strings.NewReader(input), stdout, stderr
err = cmd.Run()
if err != nil {
eErr := &exec.ExitError{}
if errors.As(err, &eErr) {
fmt.Fprintf(stderr, "\nExit %d\n", eErr.ProcessState.ExitCode())
err = nil
}
}
if stderr.Len() > 0 {
return strings.TrimSpace(stderr.String()) + "\n", true, err
}
return strings.TrimSpace(stdout.String()) + "\n", false, err
}
func NewCommandParser(fsys fs.FS, cmd []string) CommandParser { return CommandParser{fsys, cmd} }
func (c CommandParser) Decode(input string) (string, bool, error) { return c.Encode(input) }
// Run this test.
func (t Test) Run(p Parser, fsys fs.FS) Test {
if t.Type() == TypeInvalid {
return t.runInvalid(p, fsys)
}
return t.runValid(p, fsys)
}
func (t Test) runInvalid(p Parser, fsys fs.FS) Test {
var err error
_, t.Input, err = t.ReadInput(fsys)
if err != nil {
return t.bug(err.Error())
}
if t.Encoder {
t.Output, t.OutputFromStderr, err = p.Encode(t.Input)
} else {
t.Output, t.OutputFromStderr, err = p.Decode(t.Input)
}
if err != nil {
return t.fail(err.Error())
}
if !t.OutputFromStderr {
return t.fail("Expected an error, but no error was reported.")
}
return t
}
func (t Test) runValid(p Parser, fsys fs.FS) Test {
var err error
_, t.Input, err = t.ReadInput(fsys)
if err != nil {
return t.bug(err.Error())
}
if t.Encoder {
t.Output, t.OutputFromStderr, err = p.Encode(t.Input)
} else {
t.Output, t.OutputFromStderr, err = p.Decode(t.Input)
}
if err != nil {
return t.fail(err.Error())
}
if t.OutputFromStderr {
return t.fail(t.Output)
}
if t.Output == "" {
// Special case: we expect an empty output here.
if t.Path != "valid/empty-file" {
return t.fail("stdout is empty")
}
}
// Compare for encoder test
if t.Encoder {
want, err := t.ReadWantTOML(fsys)
if err != nil {
return t.bug(err.Error())
}
var have interface{}
if _, err := toml.Decode(t.Output, &have); err != nil {
//return t.fail("decode TOML from encoder %q:\n %s", cmd, err)
return t.fail("decode TOML from encoder:\n %s", err)
}
return t.cmpTOML(want, have)
}
// Compare for decoder test
want, err := t.ReadWantJSON(fsys)
if err != nil {
return t.fail(err.Error())
}
var have interface{}
if err := json.Unmarshal([]byte(t.Output), &have); err != nil {
return t.fail("decode JSON output from parser:\n %s", err)
}
return t.cmpJSON(want, have)
}
// ReadInput reads the file sent to the encoder.
func (t Test) ReadInput(fsys fs.FS) (path, data string, err error) {
path = t.Path + map[bool]string{true: ".json", false: ".toml"}[t.Encoder]
d, err := fs.ReadFile(fsys, path)
if err != nil {
return path, "", err
}
return path, string(d), nil
}
func (t Test) ReadWant(fsys fs.FS) (path, data string, err error) {
if t.Type() == TypeInvalid {
panic("testoml.Test.ReadWant: invalid tests do not have a 'correct' version")
}
path = t.Path + map[bool]string{true: ".toml", false: ".json"}[t.Encoder]
d, err := fs.ReadFile(fsys, path)
if err != nil {
return path, "", err
}
return path, string(d), nil
}
func (t *Test) ReadWantJSON(fsys fs.FS) (v interface{}, err error) {
var path string
path, t.Want, err = t.ReadWant(fsys)
if err != nil {
return nil, err
}
if err := json.Unmarshal([]byte(t.Want), &v); err != nil {
return nil, fmt.Errorf("decode JSON file %q:\n %s", path, err)
}
return v, nil
}
func (t *Test) ReadWantTOML(fsys fs.FS) (v interface{}, err error) {
var path string
path, t.Want, err = t.ReadWant(fsys)
if err != nil {
return nil, err
}
_, err = toml.Decode(t.Want, &v)
if err != nil {
return nil, fmt.Errorf("Could not decode TOML file %q:\n %s", path, err)
}
return v, nil
}
// Test type: "valid", "invalid"
func (t Test) Type() testType {
if strings.HasPrefix(t.Path, "invalid") {
return TypeInvalid
}
return TypeValid
}
func (t Test) fail(format string, v ...interface{}) Test {
t.Failure = fmt.Sprintf(format, v...)
return t
}
func (t Test) bug(format string, v ...interface{}) Test {
return t.fail("BUG IN TEST CASE: "+format, v...)
}
func (t Test) Failed() bool { return t.Failure != "" }
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/.gitattributes 0000644 0000000 0000000 00000000016 00000000000 017220 0 ustar 00 *.toml -text
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/missing-separator.toml 0000644 0000000 0000000 00000000022 00000000000 023432 0 ustar 00 wrong = [ 1 2 3 ]
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/no-close-2.toml 0000644 0000000 0000000 00000000012 00000000000 021640 0 ustar 00 x = [42 #
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/no-close-table-2.toml 0000644 0000000 0000000 00000000022 00000000000 022726 0 ustar 00 x = [{ key = 42 #
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/no-close-table.toml 0000644 0000000 0000000 00000000020 00000000000 022565 0 ustar 00 x = [{ key = 42
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/no-close.toml 0000644 0000000 0000000 00000000027 00000000000 021507 0 ustar 00 long_array = [ 1, 2, 3
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/tables-1.toml 0000644 0000000 0000000 00000000067 00000000000 021404 0 ustar 00 # INVALID TOML DOC
fruit = []
[[fruit]] # Not allowed
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/tables-2.toml 0000644 0000000 0000000 00000000274 00000000000 021405 0 ustar 00 # INVALID TOML DOC
[[fruit]]
name = "apple"
[[fruit.variety]]
name = "red delicious"
# This table conflicts with the previous table
[fruit.variety]
name = "granny smith"
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/text-after-array-entries.toml 0000644 0000000 0000000 00000000106 00000000000 024634 0 ustar 00 array = [
"Is there life after an array separator?", No
"Entry"
]
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/text-before-array-separator.toml 0000644 0000000 0000000 00000000107 00000000000 025325 0 ustar 00 array = [
"Is there life before an array separator?" No,
"Entry"
]
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/array/text-in-array.toml 0000644 0000000 0000000 00000000070 00000000000 022472 0 ustar 00 array = [
"Entry 1",
I don't belong,
"Entry 2",
]
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/bool/mixed-case.toml 0000644 0000000 0000000 00000000016 00000000000 021622 0 ustar 00 valid = False
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/bool/wrong-case-false.toml 0000644 0000000 0000000 00000000012 00000000000 022734 0 ustar 00 b = FALSE
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/bool/wrong-case-true.toml 0000644 0000000 0000000 00000000011 00000000000 022620 0 ustar 00 a = TRUE
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/comment-del.toml 0000644 0000000 0000000 00000000031 00000000000 022531 0 ustar 00 comment-del = "0x7f" #
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/comment-lf.toml 0000644 0000000 0000000 00000000032 00000000000 022367 0 ustar 00 comment-lf = "ctrl-P" #
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/comment-null.toml 0000644 0000000 0000000 00000000032 00000000000 022740 0 ustar 00 comment-null = "null" #
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/comment-us.toml 0000644 0000000 0000000 00000000032 00000000000 022415 0 ustar 00 comment-us = "ctrl-_" #
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/control.multi 0000644 0000000 0000000 00000001070 00000000000 022170 0 ustar 00 # NOTE: this file contains literal control characters.
comment-null = "null" #
comment-lf = "ctrl-P" #
comment-us = "ctrl-_" #
comment-del = "0x7f" #
string-null = "null "
string-lf = "null"
string-us = "null"
string-del = "null"
rawstring-null = 'null '
rawstring-lf = 'null'
rawstring-us = 'null'
rawstring-del = 'null'
multi-null = """null """
multi-lf = """null"""
multi-us = """null"""
multi-del = """null"""
rawmulti-null = '''null '''
rawmulti-lf = '''null'''
rawmulti-us = '''null'''
rawmulti-del = '''null'''
string-bs = "backspace"
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/multi-del.toml 0000644 0000000 0000000 00000000030 00000000000 022220 0 ustar 00 multi-del = """null"""
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/multi-lf.toml 0000644 0000000 0000000 00000000027 00000000000 022063 0 ustar 00 multi-lf = """null"""
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/multi-null.toml 0000644 0000000 0000000 00000000031 00000000000 022427 0 ustar 00 multi-null = """null """
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/multi-us.toml 0000644 0000000 0000000 00000000027 00000000000 022111 0 ustar 00 multi-us = """null"""
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawmulti-del.toml 0000644 0000000 0000000 00000000033 00000000000 022735 0 ustar 00 rawmulti-del = '''null'''
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawmulti-lf.toml 0000644 0000000 0000000 00000000032 00000000000 022571 0 ustar 00 rawmulti-lf = '''null'''
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawmulti-null.toml 0000644 0000000 0000000 00000000034 00000000000 023144 0 ustar 00 rawmulti-null = '''null '''
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawmulti-us.toml 0000644 0000000 0000000 00000000032 00000000000 022617 0 ustar 00 rawmulti-us = '''null'''
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawstring-del.toml 0000644 0000000 0000000 00000000030 00000000000 023106 0 ustar 00 rawstring-del = 'null'
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawstring-lf.toml 0000644 0000000 0000000 00000000027 00000000000 022751 0 ustar 00 rawstring-lf = 'null'
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawstring-null.toml 0000644 0000000 0000000 00000000031 00000000000 023315 0 ustar 00 rawstring-null = 'null '
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/rawstring-us.toml 0000644 0000000 0000000 00000000027 00000000000 022777 0 ustar 00 rawstring-us = 'null'
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/string-bs.toml 0000644 0000000 0000000 00000000031 00000000000 022235 0 ustar 00 string-bs = "backspace"
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/string-del.toml 0000644 0000000 0000000 00000000025 00000000000 022400 0 ustar 00 string-del = "null"
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/string-lf.toml 0000644 0000000 0000000 00000000024 00000000000 022234 0 ustar 00 string-lf = "null"
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/string-null.toml 0000644 0000000 0000000 00000000026 00000000000 022607 0 ustar 00 string-null = "null "
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/control/string-us.toml 0000644 0000000 0000000 00000000024 00000000000 022262 0 ustar 00 string-us = "null"
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/datetime/impossible-date.toml 0000644 0000000 0000000 00000000031 00000000000 023522 0 ustar 00 d = 2006-01-50T00:00:00Z
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/datetime/no-leads-with-milli.toml 0000644 0000000 0000000 00000000044 00000000000 024224 0 ustar 00 with-milli = 1987-07-5T17:45:00.12Z
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/datetime/no-leads.toml 0000644 0000000 0000000 00000000037 00000000000 022151 0 ustar 00 no-leads = 1987-7-05T17:45:00Z
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/datetime/no-secs.toml 0000644 0000000 0000000 00000000034 00000000000 022013 0 ustar 00 no-secs = 1987-07-05T17:45Z
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/datetime/no-t.toml 0000644 0000000 0000000 00000000033 00000000000 021320 0 ustar 00 no-t = 1987-07-0517:45:00Z
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/datetime/trailing-t.toml 0000644 0000000 0000000 00000000020 00000000000 022511 0 ustar 00 d = 2006-01-30T
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/encoding/bad-utf8-at-end.toml 0000644 0000000 0000000 00000000362 00000000000 023222 0 ustar 00 # There is a 0xda at after the quotes, and no EOL at the end of the file.
#
# This is a bit of an edge case: This indicates there should be two bytes
# (0b1101_1010) but there is no byte to follow because it's the end of the file.
x = """""" ././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/encoding/bad-utf8-in-comment.toml 0000644 0000000 0000000 00000000004 00000000000 024111 0 ustar 00 #
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/encoding/bad-utf8-in-string.toml 0000644 0000000 0000000 00000000103 00000000000 023755 0 ustar 00 # The following line contains an invalid UTF-8 sequence.
bad = ""
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/encoding/bom-not-at-start-1.toml 0000644 0000000 0000000 00000000024 00000000000 023703 0 ustar 00 bom-not-at-start
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/encoding/bom-not-at-start-2.toml 0000644 0000000 0000000 00000000025 00000000000 023705 0 ustar 00 bom-not-at-start=
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/encoding/utf16-bom.toml 0000644 0000000 0000000 00000000046 00000000000 022161 0 ustar 00 # U T F - 1 6 w i t h B O M
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/encoding/utf16.toml 0000644 0000000 0000000 00000000052 00000000000 021403 0 ustar 00 # U T F - 1 6 w i t h o u t B O M
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/double-point-1.toml 0000644 0000000 0000000 00000000026 00000000000 022515 0 ustar 00 double-point-1 = 0..1
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/double-point-2.toml 0000644 0000000 0000000 00000000027 00000000000 022517 0 ustar 00 double-point-2 = 0.1.2
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/exp-double-e-1.toml 0000644 0000000 0000000 00000000026 00000000000 022402 0 ustar 00 exp-double-e-1 = 1ee2
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/exp-double-e-2.toml 0000644 0000000 0000000 00000000027 00000000000 022404 0 ustar 00 exp-double-e-2 = 1e2e3
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/exp-double-us.toml 0000644 0000000 0000000 00000000027 00000000000 022450 0 ustar 00 exp-double-us = 1e__23
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/exp-leading-us.toml 0000644 0000000 0000000 00000000027 00000000000 022601 0 ustar 00 exp-leading-us = 1e_23
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/exp-point-1.toml 0000644 0000000 0000000 00000000024 00000000000 022035 0 ustar 00 exp-point-1 = 1e2.3
././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1644319432.225574
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/exp-point-2.toml 0000644 0000000 0000000 00000000023 00000000000 022035 0 ustar 00 exp-point-2 = 1.e2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/exp-trailing-us.toml 0000644 0000000 0000000 00000000031 00000000000 023002 0 ustar 00 exp-trailing-us = 1e_23_
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/float.multi 0000644 0000000 0000000 00000001271 00000000000 021245 0 ustar 00 leading-zero = 03.14
leading-zero-neg = -03.14
leading-zero-plus = +03.14
leading-point = .12345
leading-point-neg = -.12345
leading-point-plus = +.12345
trailing-point = 1.
trailing-point-min = -1.
trailing-point-plus = +1.
trailing-us = 1.2_
leading-us = _1.2
us-before-point = 1_.2
us-after-point = 1._2
double-point-1 = 0..1
double-point-2 = 0.1.2
exp-point-1 = 1e2.3
exp-point-2 = 1.e2
exp-double-e-1 = 1ee2
exp-double-e-2 = 1e2e3
exp-leading-us = 1e_23
exp-trailing-us = 1e_23_
exp-double-us = 1e__23
inf-incomplete-1 = in
inf-incomplete-2 = +in
inf-incomplete-3 = -in
nan-incomplete-1 = na
nan-incomplete-2 = +na
nan-incomplete-3 = -na
nan_underscore = na_n
inf_underscore = in_f
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/inf-incomplete-1.toml 0000644 0000000 0000000 00000000026 00000000000 023025 0 ustar 00 inf-incomplete-1 = in
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/inf-incomplete-2.toml 0000644 0000000 0000000 00000000027 00000000000 023027 0 ustar 00 inf-incomplete-2 = +in
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/inf-incomplete-3.toml 0000644 0000000 0000000 00000000027 00000000000 023030 0 ustar 00 inf-incomplete-3 = -in
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/inf_underscore.toml 0000644 0000000 0000000 00000000026 00000000000 022763 0 ustar 00 inf_underscore = in_f
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/leading-point-neg.toml 0000644 0000000 0000000 00000000034 00000000000 023256 0 ustar 00 leading-point-neg = -.12345
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/leading-point-plus.toml 0000644 0000000 0000000 00000000035 00000000000 023471 0 ustar 00 leading-point-plus = +.12345
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/leading-point.toml 0000644 0000000 0000000 00000000027 00000000000 022511 0 ustar 00 leading-point = .12345
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/leading-us.toml 0000644 0000000 0000000 00000000022 00000000000 022002 0 ustar 00 leading-us = _1.2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/leading-zero-neg.toml 0000644 0000000 0000000 00000000032 00000000000 023102 0 ustar 00 leading-zero-neg = -03.14
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/leading-zero-plus.toml 0000644 0000000 0000000 00000000033 00000000000 023315 0 ustar 00 leading-zero-plus = +03.14
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/leading-zero.toml 0000644 0000000 0000000 00000000025 00000000000 022335 0 ustar 00 leading-zero = 03.14
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/nan-incomplete-1.toml 0000644 0000000 0000000 00000000026 00000000000 023025 0 ustar 00 nan-incomplete-1 = na
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/nan-incomplete-2.toml 0000644 0000000 0000000 00000000027 00000000000 023027 0 ustar 00 nan-incomplete-2 = +na
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/nan-incomplete-3.toml 0000644 0000000 0000000 00000000027 00000000000 023030 0 ustar 00 nan-incomplete-3 = -na
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/nan_underscore.toml 0000644 0000000 0000000 00000000026 00000000000 022763 0 ustar 00 nan_underscore = na_n
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/trailing-point-min.toml 0000644 0000000 0000000 00000000031 00000000000 023473 0 ustar 00 trailing-point-min = -1.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/trailing-point-plus.toml 0000644 0000000 0000000 00000000032 00000000000 023674 0 ustar 00 trailing-point-plus = +1.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/trailing-point.toml 0000644 0000000 0000000 00000000024 00000000000 022714 0 ustar 00 trailing-point = 1.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/trailing-us.toml 0000644 0000000 0000000 00000000023 00000000000 022211 0 ustar 00 trailing-us = 1.2_
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/us-after-point.toml 0000644 0000000 0000000 00000000026 00000000000 022633 0 ustar 00 us-after-point = 1._2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/float/us-before-point.toml 0000644 0000000 0000000 00000000027 00000000000 022775 0 ustar 00 us-before-point = 1_.2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/double-comma.toml 0000644 0000000 0000000 00000000017 00000000000 023560 0 ustar 00 t = {x=3,,y=4}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/empty.toml 0000644 0000000 0000000 00000000010 00000000000 022343 0 ustar 00 t = {,}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/linebreak-1.toml 0000644 0000000 0000000 00000000157 00000000000 023313 0 ustar 00 # No newlines are allowed between the curly braces unless they are valid within
# a value.
simple = { a = 1
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/linebreak-2.toml 0000644 0000000 0000000 00000000017 00000000000 023307 0 ustar 00 t = {a=1,
b=2}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/linebreak-3.toml 0000644 0000000 0000000 00000000017 00000000000 023310 0 ustar 00 t = {a=1
,b=2}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/linebreak-4.toml 0000644 0000000 0000000 00000000113 00000000000 023306 0 ustar 00 json_like = {
first = "Tom",
last = "Preston-Werner"
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/no-comma.toml 0000644 0000000 0000000 00000000022 00000000000 022716 0 ustar 00 t = {x = 3 y = 4}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/inline-table/trailing-comma.toml 0000644 0000000 0000000 00000000214 00000000000 024116 0 ustar 00 # A terminating comma (also called trailing comma) is not permitted after the
# last key/value pair in an inline table
abc = { abc = 123, }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/capital-bin.toml 0000644 0000000 0000000 00000000022 00000000000 022465 0 ustar 00 capital-bin = 0B0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/capital-hex.toml 0000644 0000000 0000000 00000000022 00000000000 022501 0 ustar 00 capital-hex = 0X1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/capital-oct.toml 0000644 0000000 0000000 00000000022 00000000000 022502 0 ustar 00 capital-oct = 0O0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/double-sign-nex.toml 0000644 0000000 0000000 00000000027 00000000000 023307 0 ustar 00 double-sign-nex = --99
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/double-sign-plus.toml 0000644 0000000 0000000 00000000030 00000000000 023472 0 ustar 00 double-sign-plus = ++99
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/double-us.toml 0000644 0000000 0000000 00000000022 00000000000 022201 0 ustar 00 double-us = 1__23
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/integer.multi 0000644 0000000 0000000 00000001214 00000000000 022122 0 ustar 00 leading-zero-1 = 01
leading-zero-2 = 00
leading-zero-sign-1 = -01
leading-zero-sign-2 = +01
double-sign-plus = ++99
double-sign-nex = --99
negative-hex = -0xff
negative-bin = -0b11010110
negative-oct = -0o99
positive-hex = +0xff
positive-bin = +0b11010110
positive-oct = +0o99
trailing-us = 123_
leading-us = _123
double-us = 1__23
us-after-hex = 0x_1
us-after-oct = 0o_1
us-after-bin = 0b_1
trailing-us-hex = 0x1_
trailing-us-oct = 0o1_
trailing-us-bin = 0b1_
leading-us-hex = _0o1
leading-us-oct = _0o1
leading-us-bin = _0o1
invalid-hex = 0xaafz
invalid-oct = 0o778
invalid-bin = 0b0012
capital-hex = 0X1
capital-oct = 0O0
capital-bin = 0B0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/invalid-bin.toml 0000644 0000000 0000000 00000000025 00000000000 022501 0 ustar 00 invalid-bin = 0b0012
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/invalid-hex.toml 0000644 0000000 0000000 00000000025 00000000000 022515 0 ustar 00 invalid-hex = 0xaafz
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/invalid-oct.toml 0000644 0000000 0000000 00000000024 00000000000 022515 0 ustar 00 invalid-oct = 0o778
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-us-bin.toml 0000644 0000000 0000000 00000000026 00000000000 023104 0 ustar 00 leading-us-bin = _0o1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-us-hex.toml 0000644 0000000 0000000 00000000026 00000000000 023120 0 ustar 00 leading-us-hex = _0o1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-us-oct.toml 0000644 0000000 0000000 00000000026 00000000000 023121 0 ustar 00 leading-us-oct = _0o1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-us.toml 0000644 0000000 0000000 00000000022 00000000000 022332 0 ustar 00 leading-us = _123
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-zero-1.toml 0000644 0000000 0000000 00000000024 00000000000 023022 0 ustar 00 leading-zero-1 = 01
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-zero-2.toml 0000644 0000000 0000000 00000000024 00000000000 023023 0 ustar 00 leading-zero-2 = 00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-zero-sign-1.toml 0000644 0000000 0000000 00000000032 00000000000 023757 0 ustar 00 leading-zero-sign-1 = -01
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/leading-zero-sign-2.toml 0000644 0000000 0000000 00000000032 00000000000 023760 0 ustar 00 leading-zero-sign-2 = +01
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/negative-bin.toml 0000644 0000000 0000000 00000000033 00000000000 022654 0 ustar 00 negative-bin = -0b11010110
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/negative-hex.toml 0000644 0000000 0000000 00000000025 00000000000 022671 0 ustar 00 negative-hex = -0xff
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/negative-oct.toml 0000644 0000000 0000000 00000000025 00000000000 022672 0 ustar 00 negative-oct = -0o99
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/positive-bin.toml 0000644 0000000 0000000 00000000033 00000000000 022714 0 ustar 00 positive-bin = +0b11010110
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/positive-hex.toml 0000644 0000000 0000000 00000000025 00000000000 022731 0 ustar 00 positive-hex = +0xff
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/positive-oct.toml 0000644 0000000 0000000 00000000025 00000000000 022732 0 ustar 00 positive-oct = +0o99
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/text-after-integer.toml 0000644 0000000 0000000 00000000041 00000000000 024021 0 ustar 00 answer = 42 the ultimate answer?
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/trailing-us-bin.toml 0000644 0000000 0000000 00000000027 00000000000 023313 0 ustar 00 trailing-us-bin = 0b1_
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/trailing-us-hex.toml 0000644 0000000 0000000 00000000027 00000000000 023327 0 ustar 00 trailing-us-hex = 0x1_
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/trailing-us-oct.toml 0000644 0000000 0000000 00000000027 00000000000 023330 0 ustar 00 trailing-us-oct = 0o1_
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/trailing-us.toml 0000644 0000000 0000000 00000000023 00000000000 022541 0 ustar 00 trailing-us = 123_
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/us-after-bin.toml 0000644 0000000 0000000 00000000024 00000000000 022600 0 ustar 00 us-after-bin = 0b_1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/us-after-hex.toml 0000644 0000000 0000000 00000000024 00000000000 022614 0 ustar 00 us-after-hex = 0x_1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/integer/us-after-oct.toml 0000644 0000000 0000000 00000000024 00000000000 022615 0 ustar 00 us-after-oct = 0o_1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/after-array.toml 0000644 0000000 0000000 00000000040 00000000000 021652 0 ustar 00 [[agencies]] owner = "S Cjelli"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/after-table.toml 0000644 0000000 0000000 00000000044 00000000000 021627 0 ustar 00 [error] this = "should not be here"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/after-value.toml 0000644 0000000 0000000 00000000060 00000000000 021652 0 ustar 00 first = "Tom" last = "Preston-Werner" # INVALID
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/bare-invalid-character.toml 0000644 0000000 0000000 00000000017 00000000000 023730 0 ustar 00 bare!key = 123
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/dotted-redefine-table.toml 0000644 0000000 0000000 00000000114 00000000000 023566 0 ustar 00 # Defined a.b as int
a.b = 1
# Tries to access it as table: error
a.b.c = 2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/duplicate-keys.toml 0000644 0000000 0000000 00000000031 00000000000 022360 0 ustar 00 dupe = false
dupe = true
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/duplicate.toml 0000644 0000000 0000000 00000000057 00000000000 021417 0 ustar 00 # DO NOT DO THIS
name = "Tom"
name = "Pradyun"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/empty.toml 0000644 0000000 0000000 00000000005 00000000000 020574 0 ustar 00 = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/escape.toml 0000644 0000000 0000000 00000000055 00000000000 020703 0 ustar 00 \u00c0 = "latin capital letter A with grave"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/hash.toml 0000644 0000000 0000000 00000000007 00000000000 020363 0 ustar 00 a# = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/multiline.toml 0000644 0000000 0000000 00000000023 00000000000 021440 0 ustar 00 """long
key""" = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/newline.toml 0000644 0000000 0000000 00000000021 00000000000 021075 0 ustar 00 barekey
= 123
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/no-eol.toml 0000644 0000000 0000000 00000000014 00000000000 020627 0 ustar 00 a = 1 b = 2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/open-bracket.toml 0000644 0000000 0000000 00000000011 00000000000 022005 0 ustar 00 [abc = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/partial-quoted.toml 0000644 0000000 0000000 00000000024 00000000000 022372 0 ustar 00 partial"quoted" = 5
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/single-open-bracket.toml 0000644 0000000 0000000 00000000002 00000000000 023264 0 ustar 00 [
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/space.toml 0000644 0000000 0000000 00000000010 00000000000 020525 0 ustar 00 a b = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/special-character.toml 0000644 0000000 0000000 00000000035 00000000000 023013 0 ustar 00 μ = "greek small letter mu"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/start-bracket.toml 0000644 0000000 0000000 00000000021 00000000000 022202 0 ustar 00 [a]
[xyz = 5
[b]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/two-equals.toml 0000644 0000000 0000000 00000000011 00000000000 021534 0 ustar 00 key= = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/two-equals2.toml 0000644 0000000 0000000 00000000005 00000000000 021621 0 ustar 00 a==1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/two-equals3.toml 0000644 0000000 0000000 00000000006 00000000000 021623 0 ustar 00 a=b=1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/without-value-1.toml 0000644 0000000 0000000 00000000004 00000000000 022410 0 ustar 00 key
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/key/without-value-2.toml 0000644 0000000 0000000 00000000007 00000000000 022414 0 ustar 00 key =
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/bad-byte-escape.toml 0000644 0000000 0000000 00000000021 00000000000 023077 0 ustar 00 naughty = "\xAg"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/bad-codepoint.toml 0000644 0000000 0000000 00000000121 00000000000 022663 0 ustar 00 invalid-codepoint = "This string contains a non scalar unicode codepoint \uD801"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/bad-concat.toml 0000644 0000000 0000000 00000000035 00000000000 022152 0 ustar 00 no_concat = "first" "second"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/bad-escape.toml 0000644 0000000 0000000 00000000076 00000000000 022150 0 ustar 00 invalid-escape = "This string has a bad \a escape character."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/bad-multiline.toml 0000644 0000000 0000000 00000000041 00000000000 022702 0 ustar 00 multi = "first line
second line"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/bad-slash-escape.toml 0000644 0000000 0000000 00000000076 00000000000 023260 0 ustar 00 invalid-escape = "This string has a bad \/ escape character."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/bad-uni-esc.toml 0000644 0000000 0000000 00000000017 00000000000 022246 0 ustar 00 str = "val\ue"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-byte-escapes.toml 0000644 0000000 0000000 00000000020 00000000000 023614 0 ustar 00 answer = "\x33"
././@PaxHeader 0000000 0000000 0000000 00000000213 00000000000 010211 x ustar 00 111 path=tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-1.toml
28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-1.tom0000644 0000000 0000000 00000000025 00000000000 030404 0 ustar 00 a = """\UFFFFFFFF"""
././@PaxHeader 0000000 0000000 0000000 00000000213 00000000000 010211 x ustar 00 111 path=tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-2.toml
28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-multiline-out-of-range-unicode-escape-2.tom0000644 0000000 0000000 00000000025 00000000000 030405 0 ustar 00 a = """\U00D80000"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-multiline-quotes.toml 0000644 0000000 0000000 00000000062 00000000000 024556 0 ustar 00 str5 = """Here are three quotation marks: """."""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-multiline-unknown-escape.toml 0000644 0000000 0000000 00000000015 00000000000 026171 0 ustar 00 a = """\@"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-1.toml 0000644 0000000 0000000 00000000021 00000000000 026554 0 ustar 00 a = "\UFFFFFFFF"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-out-of-range-unicode-escape-2.toml 0000644 0000000 0000000 00000000021 00000000000 026555 0 ustar 00 a = "\U00D80000"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/basic-unknown-escape.toml 0000644 0000000 0000000 00000000011 00000000000 024165 0 ustar 00 a = "\@"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/literal-multiline-quotes-1.toml 0000644 0000000 0000000 00000000036 00000000000 025270 0 ustar 00 a = '''6 apostrophes: ''''''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/literal-multiline-quotes-2.toml 0000644 0000000 0000000 00000000052 00000000000 025267 0 ustar 00 a = '''15 apostrophes: ''''''''''''''''''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/missing-quotes.toml 0000644 0000000 0000000 00000000015 00000000000 023144 0 ustar 00 name = value
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/multiline-escape-space.toml 0000644 0000000 0000000 00000000034 00000000000 024507 0 ustar 00 a = """
foo \ \n
bar"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/multiline-no-close-2.toml 0000644 0000000 0000000 00000000006 00000000000 024033 0 ustar 00 x="""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/multiline-no-close.toml 0000644 0000000 0000000 00000000041 00000000000 023673 0 ustar 00 invalid = """
this will fail
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/multiline-quotes-1.toml 0000644 0000000 0000000 00000000030 00000000000 023630 0 ustar 00 a = """6 quotes: """"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/multiline-quotes-2.toml 0000644 0000000 0000000 00000000030 00000000000 023631 0 ustar 00 a = """6 quotes: """"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/no-close.toml 0000644 0000000 0000000 00000000052 00000000000 021675 0 ustar 00 no-ending-quote = "One time, at band camp
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/text-after-string.toml 0000644 0000000 0000000 00000000054 00000000000 023547 0 ustar 00 string = "Is there life after strings?" No.
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/string/wrong-close.toml 0000644 0000000 0000000 00000000047 00000000000 022421 0 ustar 00 bad-ending-quote = "double and single'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/array-empty.toml 0000644 0000000 0000000 00000000032 00000000000 022207 0 ustar 00 [[]]
name = "Born to Run"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/array-implicit.toml 0000644 0000000 0000000 00000001156 00000000000 022673 0 ustar 00 # This test is a bit tricky. It should fail because the first use of
# `[[albums.songs]]` without first declaring `albums` implies that `albums`
# must be a table. The alternative would be quite weird. Namely, it wouldn't
# comply with the TOML spec: "Each double-bracketed sub-table will belong to
# the most *recently* defined table element *above* it."
#
# This is in contrast to the *valid* test, table-array-implicit where
# `[[albums.songs]]` works by itself, so long as `[[albums]]` isn't declared
# later. (Although, `[albums]` could be.)
[[albums.songs]]
name = "Glory Days"
[[albums]]
name = "Born in the USA"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/array-missing-bracket.toml 0000644 0000000 0000000 00000000037 00000000000 024140 0 ustar 00 [[albums]
name = "Born to Run"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/duplicate-key-table.toml 0000644 0000000 0000000 00000000063 00000000000 023566 0 ustar 00 [fruit]
type = "apple"
[fruit.type]
apple = "yes"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/duplicate-table-array.toml 0000644 0000000 0000000 00000000016 00000000000 024112 0 ustar 00 [tbl]
[[tbl]]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/duplicate-table-array2.toml 0000644 0000000 0000000 00000000016 00000000000 024174 0 ustar 00 [[tbl]]
[tbl]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/duplicate.toml 0000644 0000000 0000000 00000000025 00000000000 021711 0 ustar 00 [a]
b = 1
[a]
c = 2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/empty-implicit-table.toml 0000644 0000000 0000000 00000000023 00000000000 023770 0 ustar 00 [naughty..naughty]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/empty.toml 0000644 0000000 0000000 00000000003 00000000000 021071 0 ustar 00 []
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/equals-sign.toml 0000644 0000000 0000000 00000000013 00000000000 022164 0 ustar 00 [name=bad]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/llbrace.toml 0000644 0000000 0000000 00000000013 00000000000 021340 0 ustar 00 [ [table]]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/nested-brackets-close.toml 0000644 0000000 0000000 00000000017 00000000000 024121 0 ustar 00 [a]b]
zyx = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/nested-brackets-open.toml 0000644 0000000 0000000 00000000017 00000000000 023755 0 ustar 00 [a[b]
zyx = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/quoted-no-close.toml 0000644 0000000 0000000 00000000042 00000000000 022754 0 ustar 00 ["where will it end]
name = value
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/redefine.toml 0000644 0000000 0000000 00000000116 00000000000 021521 0 ustar 00 # Define b as int, and try to use it as a table: error
[a]
b = 1
[a.b]
c = 2
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/rrbrace.toml 0000644 0000000 0000000 00000000013 00000000000 021354 0 ustar 00 [[table] ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/text-after-table.toml 0000644 0000000 0000000 00000000037 00000000000 023112 0 ustar 00 [error] this shouldn't be here
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/whitespace.toml 0000644 0000000 0000000 00000000016 00000000000 022073 0 ustar 00 [invalid key]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/invalid/table/with-pound.toml 0000644 0000000 0000000 00000000030 00000000000 022031 0 ustar 00 [key#group]
answer = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/array.json 0000644 0000000 0000000 00000001664 00000000000 020565 0 ustar 00 {
"comments": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
],
"dates": [
{
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
},
{
"type": "datetime",
"value": "1979-05-27T07:32:00Z"
},
{
"type": "datetime",
"value": "2006-06-01T11:00:00Z"
}
],
"floats": [
{
"type": "float",
"value": "1.1"
},
{
"type": "float",
"value": "2.1"
},
{
"type": "float",
"value": "3.1"
}
],
"ints": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
{
"type": "integer",
"value": "3"
}
],
"strings": [
{
"type": "string",
"value": "a"
},
{
"type": "string",
"value": "b"
},
{
"type": "string",
"value": "c"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/array.toml 0000644 0000000 0000000 00000000315 00000000000 020557 0 ustar 00 ints = [1, 2, 3, ]
floats = [1.1, 2.1, 3.1]
strings = ["a", "b", "c"]
dates = [
1987-07-05T17:45:00Z,
1979-05-27T07:32:00Z,
2006-06-01T11:00:00Z,
]
comments = [
1,
2, #this is ok
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/bool.json 0000644 0000000 0000000 00000000203 00000000000 020366 0 ustar 00 {
"a": [
{
"type": "bool",
"value": "true"
},
{
"type": "bool",
"value": "false"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/bool.toml 0000644 0000000 0000000 00000000022 00000000000 020367 0 ustar 00 a = [true, false]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/empty.json 0000644 0000000 0000000 00000000124 00000000000 020573 0 ustar 00 {
"thevoid": [
[
[
[
[]
]
]
]
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/empty.toml 0000644 0000000 0000000 00000000025 00000000000 020575 0 ustar 00 thevoid = [[[[[]]]]]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/hetergeneous.json 0000644 0000000 0000000 00000000674 00000000000 022144 0 ustar 00 {
"mixed": [
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
],
[
{
"type": "string",
"value": "a"
},
{
"type": "string",
"value": "b"
}
],
[
{
"type": "float",
"value": "1.1"
},
{
"type": "float",
"value": "2.1"
}
]
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/hetergeneous.toml 0000644 0000000 0000000 00000000051 00000000000 022133 0 ustar 00 mixed = [[1, 2], ["a", "b"], [1.1, 2.1]]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-int-array.json 0000644 0000000 0000000 00000000272 00000000000 022453 0 ustar 00 {
"arrays-and-ints": [
{
"type": "integer",
"value": "1"
},
[
{
"type": "string",
"value": "Arrays are not integers."
}
]
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-int-array.toml 0000644 0000000 0000000 00000000065 00000000000 022455 0 ustar 00 arrays-and-ints = [1, ["Arrays are not integers."]]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-int-float.json 0000644 0000000 0000000 00000000220 00000000000 022433 0 ustar 00 {
"ints-and-floats": [
{
"type": "integer",
"value": "1"
},
{
"type": "float",
"value": "1.1"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-int-float.toml 0000644 0000000 0000000 00000000033 00000000000 022437 0 ustar 00 ints-and-floats = [1, 1.1]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-int-string.json 0000644 0000000 0000000 00000000222 00000000000 022636 0 ustar 00 {
"strings-and-ints": [
{
"type": "string",
"value": "hi"
},
{
"type": "integer",
"value": "42"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-int-string.toml 0000644 0000000 0000000 00000000036 00000000000 022643 0 ustar 00 strings-and-ints = ["hi", 42]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-string-table.json 0000644 0000000 0000000 00000000611 00000000000 023135 0 ustar 00 {
"contributors": [
{
"type": "string",
"value": "Foo Bar \u003cfoo@example.com\u003e"
},
{
"email": {
"type": "string",
"value": "bazqux@example.com"
},
"name": {
"type": "string",
"value": "Baz Qux"
},
"url": {
"type": "string",
"value": "https://example.com/bazqux"
}
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/mixed-string-table.toml 0000644 0000000 0000000 00000000213 00000000000 023135 0 ustar 00 contributors = [
"Foo Bar ",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nested-double.json 0000644 0000000 0000000 00000000576 00000000000 022202 0 ustar 00 {
"nest": [
[
[
{
"type": "string",
"value": "a"
}
],
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
[
{
"type": "integer",
"value": "3"
}
]
]
]
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nested-double.toml 0000644 0000000 0000000 00000000050 00000000000 022167 0 ustar 00 nest = [
[
["a"],
[1, 2, [3]]
]
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nested-inline-table.json 0000644 0000000 0000000 00000000053 00000000000 023261 0 ustar 00 {
"a": [
{
"b": {}
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nested-inline-table.toml 0000644 0000000 0000000 00000000023 00000000000 023260 0 ustar 00 a = [ { b = {} } ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nested.json 0000644 0000000 0000000 00000000253 00000000000 020722 0 ustar 00 {
"nest": [
[
{
"type": "string",
"value": "a"
}
],
[
{
"type": "string",
"value": "b"
}
]
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nested.toml 0000644 0000000 0000000 00000000026 00000000000 020722 0 ustar 00 nest = [["a"], ["b"]]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nospaces.json 0000644 0000000 0000000 00000000276 00000000000 021260 0 ustar 00 {
"ints": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
{
"type": "integer",
"value": "3"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/nospaces.toml 0000644 0000000 0000000 00000000017 00000000000 021253 0 ustar 00 ints = [1,2,3]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/string-quote-comma-2.json 0000644 0000000 0000000 00000000120 00000000000 023323 0 ustar 00 {
"title": [
{
"type": "string",
"value": " \", "
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/string-quote-comma-2.toml 0000644 0000000 0000000 00000000024 00000000000 023330 0 ustar 00 title = [ " \", ",]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/string-quote-comma.json 0000644 0000000 0000000 00000000247 00000000000 023176 0 ustar 00 {
"title": [
{
"type": "string",
"value": "Client: \"XXXX\", Job: XXXX"
},
{
"type": "string",
"value": "Code: XXXX"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/string-quote-comma.toml 0000644 0000000 0000000 00000000070 00000000000 023172 0 ustar 00 title = [
"Client: \"XXXX\", Job: XXXX",
"Code: XXXX"
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/string-with-comma.json 0000644 0000000 0000000 00000000243 00000000000 023010 0 ustar 00 {
"title": [
{
"type": "string",
"value": "Client: XXXX, Job: XXXX"
},
{
"type": "string",
"value": "Code: XXXX"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/string-with-comma.toml 0000644 0000000 0000000 00000000064 00000000000 023013 0 ustar 00 title = [
"Client: XXXX, Job: XXXX",
"Code: XXXX"
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/strings.json 0000644 0000000 0000000 00000000421 00000000000 021126 0 ustar 00 {
"string_array": [
{
"type": "string",
"value": "all"
},
{
"type": "string",
"value": "strings"
},
{
"type": "string",
"value": "are the same"
},
{
"type": "string",
"value": "type"
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/strings.toml 0000644 0000000 0000000 00000000103 00000000000 021125 0 ustar 00 string_array = [ "all", 'strings', """are the same""", '''type''']
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/table-array-string-backslash.json 0000644 0000000 0000000 00000000157 00000000000 025103 0 ustar 00 {
"foo": [
{
"bar": {
"type": "string",
"value": "\"{{baz}}\""
}
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/array/table-array-string-backslash.toml 0000644 0000000 0000000 00000000037 00000000000 025102 0 ustar 00 foo = [ { bar="\"{{baz}}\""} ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/bool/bool.json 0000644 0000000 0000000 00000000160 00000000000 020205 0 ustar 00 {
"f": {
"type": "bool",
"value": "false"
},
"t": {
"type": "bool",
"value": "true"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/bool/bool.toml 0000644 0000000 0000000 00000000023 00000000000 020205 0 ustar 00 t = true
f = false
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/at-eof.json 0000644 0000000 0000000 00000000076 00000000000 021142 0 ustar 00 {
"key": {
"type": "string",
"value": "value"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/at-eof.toml 0000644 0000000 0000000 00000000125 00000000000 021137 0 ustar 00 # This is a full-line comment
key = "value" # This is a comment at the end of a line
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/at-eof2.json 0000644 0000000 0000000 00000000076 00000000000 021224 0 ustar 00 {
"key": {
"type": "string",
"value": "value"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/at-eof2.toml 0000644 0000000 0000000 00000000125 00000000000 021221 0 ustar 00 # This is a full-line comment
key = "value" # This is a comment at the end of a line
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/everywhere.json 0000644 0000000 0000000 00000000507 00000000000 022153 0 ustar 00 {
"group": {
"answer": {
"type": "integer",
"value": "42"
},
"d": {
"type": "datetime",
"value": "1979-05-27T07:32:12-07:00"
},
"more": [
{
"type": "integer",
"value": "42"
},
{
"type": "integer",
"value": "42"
}
]
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/everywhere.toml 0000644 0000000 0000000 00000001054 00000000000 022153 0 ustar 00 # Top comment.
# Top comment.
# Top comment.
# [no-extraneous-groups-please]
[group] # Comment
answer = 42 # Comment
# no-extraneous-keys-please = 999
# Inbetween comment.
more = [ # Comment
# What about multiple # comments?
# Can you handle it?
#
# Evil.
# Evil.
42, 42, # Comments within arrays are fun.
# What about multiple # comments?
# Can you handle it?
#
# Evil.
# Evil.
# ] Did I fool you?
] # Hopefully not.
# Make sure the space between the datetime and "#" isn't lexed.
d = 1979-05-27T07:32:12-07:00 # c
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/tricky.json 0000644 0000000 0000000 00000002771 00000000000 021300 0 ustar 00 {
"hash#tag": {
"#!": {
"type": "string",
"value": "hash bang"
},
"arr3": [
{
"type": "string",
"value": "#"
},
{
"type": "string",
"value": "#"
},
{
"type": "string",
"value": "###"
}
],
"arr4": [
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
},
{
"type": "integer",
"value": "3"
},
{
"type": "integer",
"value": "4"
}
],
"arr5": [
[
[
[
[
{
"type": "string",
"value": "#"
}
]
]
]
]
],
"tbl1": {
"#": {
"type": "string",
"value": "}#"
}
}
},
"section": {
"8": {
"type": "string",
"value": "eight"
},
"eleven": {
"type": "float",
"value": "11.1"
},
"five": {
"type": "float",
"value": "5.5"
},
"four": {
"type": "string",
"value": "# no comment\n# nor this\n#also not comment"
},
"one": {
"type": "string",
"value": "11"
},
"six": {
"type": "integer",
"value": "6"
},
"ten": {
"type": "float",
"value": "1000.0"
},
"three": {
"type": "string",
"value": "#"
},
"two": {
"type": "string",
"value": "22#"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/comment/tricky.toml 0000644 0000000 0000000 00000000601 00000000000 021270 0 ustar 00 [section]#attached comment
#[notsection]
one = "11"#cmt
two = "22#"
three = '#'
four = """# no comment
# nor this
#also not comment"""#is_comment
five = 5.5#66
six = 6#7
8 = "eight"
#nine = 99
ten = 10e2#1
eleven = 1.11e1#23
["hash#tag"]
"#!" = "hash bang"
arr3 = [ "#", '#', """###""" ]
arr4 = [ 1,# 9, 9,
2#,9
,#9
3#]
,4]
arr5 = [[[[#["#"],
["#"]]]]#]
]
tbl1 = { "#" = '}#'}#}}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/datetime.json 0000644 0000000 0000000 00000000237 00000000000 021714 0 ustar 00 {
"lower": {
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
},
"space": {
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/datetime.toml 0000644 0000000 0000000 00000000072 00000000000 021713 0 ustar 00 space = 1987-07-05 17:45:00Z
lower = 1987-07-05t17:45:00z
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/local-date.json 0000644 0000000 0000000 00000000117 00000000000 022122 0 ustar 00 {
"bestdayever": {
"type": "date-local",
"value": "1987-07-05"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/local-date.toml 0000644 0000000 0000000 00000000031 00000000000 022117 0 ustar 00 bestdayever = 1987-07-05
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/local-time.json 0000644 0000000 0000000 00000000235 00000000000 022144 0 ustar 00 {
"besttimeever": {
"type": "time-local",
"value": "17:45:00"
},
"milliseconds": {
"type": "time-local",
"value": "10:32:00.555"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/local-time.toml 0000644 0000000 0000000 00000000064 00000000000 022146 0 ustar 00 besttimeever = 17:45:00
milliseconds = 10:32:00.555
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/local.json 0000644 0000000 0000000 00000000400 00000000000 021202 0 ustar 00 {
"local": {
"type": "datetime-local",
"value": "1987-07-05T17:45:00"
},
"milli": {
"type": "datetime-local",
"value": "1977-12-21T10:32:00.555"
},
"space": {
"type": "datetime-local",
"value": "1987-07-05T17:45:00"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/local.toml 0000644 0000000 0000000 00000000130 00000000000 021204 0 ustar 00 local = 1987-07-05T17:45:00
milli = 1977-12-21T10:32:00.555
space = 1987-07-05 17:45:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2295742
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/milliseconds.json 0000644 0000000 0000000 00000000537 00000000000 022610 0 ustar 00 {
"utc1": {
"type": "datetime",
"value": "1987-07-05T17:45:56.123456Z"
},
"utc2": {
"type": "datetime",
"value": "1987-07-05T17:45:56.600000Z"
},
"wita1": {
"type": "datetime",
"value": "1987-07-05T17:45:56.123456+08:00"
},
"wita2": {
"type": "datetime",
"value": "1987-07-05T17:45:56.600000+08:00"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/milliseconds.toml 0000644 0000000 0000000 00000000220 00000000000 022577 0 ustar 00 utc1 = 1987-07-05T17:45:56.123456Z
utc2 = 1987-07-05T17:45:56.6Z
wita1 = 1987-07-05T17:45:56.123456+08:00
wita2 = 1987-07-05T17:45:56.6+08:00
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/timezone.json 0000644 0000000 0000000 00000000504 00000000000 021747 0 ustar 00 {
"nzdt": {
"type": "datetime",
"value": "1987-07-05T17:45:56+13:00"
},
"nzst": {
"type": "datetime",
"value": "1987-07-05T17:45:56+12:00"
},
"pdt": {
"type": "datetime",
"value": "1987-07-05T17:45:56-05:00"
},
"utc": {
"type": "datetime",
"value": "1987-07-05T17:45:56Z"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/datetime/timezone.toml 0000644 0000000 0000000 00000000206 00000000000 021750 0 ustar 00 utc = 1987-07-05T17:45:56Z
pdt = 1987-07-05T17:45:56-05:00
nzst = 1987-07-05T17:45:56+12:00
nzdt = 1987-07-05T17:45:56+13:00 # DST
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/empty-file.json 0000644 0000000 0000000 00000000003 00000000000 020366 0 ustar 00 {}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/empty-file.toml 0000644 0000000 0000000 00000000000 00000000000 020365 0 ustar 00 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/example.json 0000644 0000000 0000000 00000000622 00000000000 017755 0 ustar 00 {
"best-day-ever": {
"type": "datetime",
"value": "1987-07-05T17:45:00Z"
},
"numtheory": {
"boring": {
"type": "bool",
"value": "false"
},
"perfection": [
{
"type": "integer",
"value": "6"
},
{
"type": "integer",
"value": "28"
},
{
"type": "integer",
"value": "496"
}
]
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/example.toml 0000644 0000000 0000000 00000000133 00000000000 017754 0 ustar 00 best-day-ever = 1987-07-05T17:45:00Z
[numtheory]
boring = false
perfection = [6, 28, 496]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/exponent.json 0000644 0000000 0000000 00000000751 00000000000 021272 0 ustar 00 {
"lower": {
"type": "float",
"value": "300.0"
},
"minustenth": {
"type": "float",
"value": "-0.1"
},
"neg": {
"type": "float",
"value": "0.03"
},
"pointlower": {
"type": "float",
"value": "310.0"
},
"pointupper": {
"type": "float",
"value": "310.0"
},
"pos": {
"type": "float",
"value": "300.0"
},
"upper": {
"type": "float",
"value": "300.0"
},
"zero": {
"type": "float",
"value": "3.0"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/exponent.toml 0000644 0000000 0000000 00000000162 00000000000 021270 0 ustar 00 lower = 3e2
upper = 3E2
neg = 3e-2
pos = 3E+2
zero = 3e0
pointlower = 3.1e2
pointupper = 3.1E2
minustenth = -1E-1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/float.json 0000644 0000000 0000000 00000000365 00000000000 020540 0 ustar 00 {
"negpi": {
"type": "float",
"value": "-3.14"
},
"pi": {
"type": "float",
"value": "3.14"
},
"pospi": {
"type": "float",
"value": "3.14"
},
"zero-intpart": {
"type": "float",
"value": "0.123"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/float.toml 0000644 0000000 0000000 00000000073 00000000000 020536 0 ustar 00 pi = 3.14
pospi = +3.14
negpi = -3.14
zero-intpart = 0.123
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/inf-and-nan.json 0000644 0000000 0000000 00000000566 00000000000 021524 0 ustar 00 {
"infinity": {
"type": "float",
"value": "inf"
},
"infinity_neg": {
"type": "float",
"value": "-inf"
},
"infinity_plus": {
"type": "float",
"value": "+inf"
},
"nan": {
"type": "float",
"value": "nan"
},
"nan_neg": {
"type": "float",
"value": "nan"
},
"nan_plus": {
"type": "float",
"value": "nan"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/inf-and-nan.toml 0000644 0000000 0000000 00000000350 00000000000 021515 0 ustar 00 # We don't encode +nan and -nan back with the signs; many languages don't
# support a sign on NaN (it doesn't really make much sense).
nan = nan
nan_neg = -nan
nan_plus = +nan
infinity = inf
infinity_neg = -inf
infinity_plus = +inf
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/long.json 0000644 0000000 0000000 00000000231 00000000000 020362 0 ustar 00 {
"longpi": {
"type": "float",
"value": "3.141592653589793"
},
"neglongpi": {
"type": "float",
"value": "-3.141592653589793"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/long.toml 0000644 0000000 0000000 00000000072 00000000000 020367 0 ustar 00 longpi = 3.141592653589793
neglongpi = -3.141592653589793
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/underscore.json 0000644 0000000 0000000 00000000304 00000000000 021575 0 ustar 00 {
"after": {
"type": "float",
"value": "3141.5927"
},
"before": {
"type": "float",
"value": "3141.5927"
},
"exponent": {
"type": "float",
"value": "3.0e14"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/underscore.toml 0000644 0000000 0000000 00000000070 00000000000 021577 0 ustar 00 before = 3_141.5927
after = 3141.592_7
exponent = 3e1_4
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/zero.json 0000644 0000000 0000000 00000000566 00000000000 020415 0 ustar 00 {
"f1": {
"type": "float",
"value": "0"
},
"f2": {
"type": "float",
"value": "0"
},
"f3": {
"type": "float",
"value": "0"
},
"f4": {
"type": "float",
"value": "0"
},
"f5": {
"type": "float",
"value": "0"
},
"f6": {
"type": "float",
"value": "0"
},
"f7": {
"type": "float",
"value": "0"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/float/zero.toml 0000644 0000000 0000000 00000000104 00000000000 020403 0 ustar 00 f1 = 0.0
f2 = +0.0
f3 = -0.0
f4 = 0e0
f5 = 0e00
f6 = +0e0
f7 = -0e0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/implicit-and-explicit-after.json 0000644 0000000 0000000 00000000316 00000000000 023612 0 ustar 00 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
},
"better": {
"type": "integer",
"value": "43"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/implicit-and-explicit-after.toml 0000644 0000000 0000000 00000000045 00000000000 023613 0 ustar 00 [a.b.c]
answer = 42
[a]
better = 43
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/implicit-and-explicit-before.json 0000644 0000000 0000000 00000000316 00000000000 023753 0 ustar 00 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
},
"better": {
"type": "integer",
"value": "43"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/implicit-and-explicit-before.toml 0000644 0000000 0000000 00000000045 00000000000 023754 0 ustar 00 [a]
better = 43
[a.b.c]
answer = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/implicit-groups.json 0000644 0000000 0000000 00000000212 00000000000 021444 0 ustar 00 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/implicit-groups.toml 0000644 0000000 0000000 00000000024 00000000000 021447 0 ustar 00 [a.b.c]
answer = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/array.json 0000644 0000000 0000000 00000001047 00000000000 022005 0 ustar 00 {
"people": [
{
"first_name": {
"type": "string",
"value": "Bruce"
},
"last_name": {
"type": "string",
"value": "Springsteen"
}
},
{
"first_name": {
"type": "string",
"value": "Eric"
},
"last_name": {
"type": "string",
"value": "Clapton"
}
},
{
"first_name": {
"type": "string",
"value": "Bob"
},
"last_name": {
"type": "string",
"value": "Seger"
}
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/array.toml 0000644 0000000 0000000 00000000252 00000000000 022004 0 ustar 00 people = [{first_name = "Bruce", last_name = "Springsteen"},
{first_name = "Eric", last_name = "Clapton"},
{first_name = "Bob", last_name = "Seger"}]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/bool.json 0000644 0000000 0000000 00000000215 00000000000 021616 0 ustar 00 {
"a": {
"a": {
"type": "bool",
"value": "true"
},
"b": {
"type": "bool",
"value": "false"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/bool.toml 0000644 0000000 0000000 00000000032 00000000000 021615 0 ustar 00 a = {a = true, b = false}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/empty.json 0000644 0000000 0000000 00000000563 00000000000 022027 0 ustar 00 {
"empty1": {},
"empty2": {},
"empty_in_array": [
{
"not_empty": {
"type": "integer",
"value": "1"
}
},
{}
],
"empty_in_array2": [
{},
{
"not_empty": {
"type": "integer",
"value": "1"
}
}
],
"many_empty": [
{},
{},
{}
],
"nested_empty": {
"empty": {}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/empty.toml 0000644 0000000 0000000 00000000235 00000000000 022025 0 ustar 00 empty1 = {}
empty2 = { }
empty_in_array = [ { not_empty = 1 }, {} ]
empty_in_array2 = [{},{not_empty=1}]
many_empty = [{},{},{}]
nested_empty = {"empty"={}}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/end-in-bool.json 0000644 0000000 0000000 00000000373 00000000000 022773 0 ustar 00 {
"black": {
"allow_prereleases": {
"type": "bool",
"value": "true"
},
"python": {
"type": "string",
"value": "\u003e3.6"
},
"version": {
"type": "string",
"value": "\u003e=18.9b0"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/end-in-bool.toml 0000644 0000000 0000000 00000000106 00000000000 022767 0 ustar 00 black = { python=">3.6", version=">=18.9b0", allow_prereleases=true }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/inline-table.json 0000644 0000000 0000000 00000001214 00000000000 023226 0 ustar 00 {
"name": {
"first": {
"type": "string",
"value": "Tom"
},
"last": {
"type": "string",
"value": "Preston-Werner"
}
},
"point": {
"x": {
"type": "integer",
"value": "1"
},
"y": {
"type": "integer",
"value": "2"
}
},
"simple": {
"a": {
"type": "integer",
"value": "1"
}
},
"str-key": {
"a": {
"type": "integer",
"value": "1"
}
},
"table-array": [
{
"a": {
"type": "integer",
"value": "1"
}
},
{
"b": {
"type": "integer",
"value": "2"
}
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/inline-table.toml 0000644 0000000 0000000 00000000235 00000000000 023232 0 ustar 00 name = { first = "Tom", last = "Preston-Werner" }
point = { x = 1, y = 2 }
simple = { a = 1 }
str-key = { "a" = 1 }
table-array = [{ "a" = 1 }, { "b" = 2 }]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/key-dotted.json 0000644 0000000 0000000 00000004027 00000000000 022741 0 ustar 00 {
"a": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"arr": [
{
"T": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"t": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
}
},
{
"T": {
"a": {
"b": {
"type": "integer",
"value": "2"
}
}
},
"t": {
"a": {
"b": {
"type": "integer",
"value": "2"
}
}
}
}
],
"b": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"c": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"d": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"e": {
"a": {
"b": {
"type": "integer",
"value": "1"
}
}
},
"inline": {
"a": {
"b": {
"type": "integer",
"value": "42"
}
}
},
"many": {
"dots": {
"here": {
"dot": {
"dot": {
"dot": {
"a": {
"b": {
"c": {
"type": "integer",
"value": "1"
},
"d": {
"type": "integer",
"value": "2"
}
}
}
}
}
}
}
}
},
"tbl": {
"a": {
"b": {
"c": {
"d": {
"e": {
"type": "integer",
"value": "1"
}
}
}
}
},
"x": {
"a": {
"b": {
"c": {
"d": {
"e": {
"type": "integer",
"value": "1"
}
}
}
}
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/key-dotted.toml 0000644 0000000 0000000 00000000464 00000000000 022744 0 ustar 00 inline = {a.b = 42}
many.dots.here.dot.dot.dot = {a.b.c = 1, a.b.d = 2}
a = { a.b = 1 }
b = { "a"."b" = 1 }
c = { a . b = 1 }
d = { 'a' . "b" = 1 }
e = {a.b=1}
[tbl]
a.b.c = {d.e=1}
[tbl.x]
a.b.c = {d.e=1}
[[arr]]
t = {a.b=1}
T = {a.b=1}
[[arr]]
t = {a.b=2}
T = {a.b=2}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/multiline.json 0000644 0000000 0000000 00000000460 00000000000 022667 0 ustar 00 {
"tbl_multiline": {
"a": {
"type": "integer",
"value": "1"
},
"b": {
"type": "string",
"value": "multiline\n"
},
"c": {
"type": "string",
"value": "and yet\nanother line"
},
"d": {
"type": "integer",
"value": "4"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/multiline.toml 0000644 0000000 0000000 00000000130 00000000000 022663 0 ustar 00 tbl_multiline = { a = 1, b = """
multiline
""", c = """and yet
another line""", d = 4 }
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/nest.json 0000644 0000000 0000000 00000001527 00000000000 021643 0 ustar 00 {
"arr_arr_tbl_empty": [
[
{}
]
],
"arr_arr_tbl_val": [
[
{
"one": {
"type": "integer",
"value": "1"
}
}
]
],
"arr_arr_tbls": [
[
{
"one": {
"type": "integer",
"value": "1"
}
},
{
"two": {
"type": "integer",
"value": "2"
}
}
]
],
"arr_tbl_tbl": [
{
"tbl": {
"one": {
"type": "integer",
"value": "1"
}
}
}
],
"tbl_arr_tbl": {
"arr_tbl": [
{
"one": {
"type": "integer",
"value": "1"
}
}
]
},
"tbl_tbl_empty": {
"tbl_0": {}
},
"tbl_tbl_val": {
"tbl_1": {
"one": {
"type": "integer",
"value": "1"
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/inline-table/nest.toml 0000644 0000000 0000000 00000000564 00000000000 021645 0 ustar 00 tbl_tbl_empty = { tbl_0 = {} }
tbl_tbl_val = { tbl_1 = { one = 1 } }
tbl_arr_tbl = { arr_tbl = [ { one = 1 } ] }
arr_tbl_tbl = [ { tbl = { one = 1 } } ]
# Array-of-array-of-table is interesting because it can only
# be represented in inline form.
arr_arr_tbl_empty = [ [ {} ] ]
arr_arr_tbl_val = [ [ { one = 1 } ] ]
arr_arr_tbls = [ [ { one = 1 }, { two = 2 } ] ]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/integer.json 0000644 0000000 0000000 00000000367 00000000000 021422 0 ustar 00 {
"answer": {
"type": "integer",
"value": "42"
},
"neganswer": {
"type": "integer",
"value": "-42"
},
"posanswer": {
"type": "integer",
"value": "42"
},
"zero": {
"type": "integer",
"value": "0"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/integer.toml 0000644 0000000 0000000 00000000065 00000000000 021417 0 ustar 00 answer = 42
posanswer = +42
neganswer = -42
zero = 0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/literals.json 0000644 0000000 0000000 00000001055 00000000000 021577 0 ustar 00 {
"bin1": {
"type": "integer",
"value": "214"
},
"bin2": {
"type": "integer",
"value": "5"
},
"hex1": {
"type": "integer",
"value": "3735928559"
},
"hex2": {
"type": "integer",
"value": "3735928559"
},
"hex3": {
"type": "integer",
"value": "3735928559"
},
"hex4": {
"type": "integer",
"value": "2439"
},
"oct1": {
"type": "integer",
"value": "342391"
},
"oct2": {
"type": "integer",
"value": "493"
},
"oct3": {
"type": "integer",
"value": "501"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/literals.toml 0000644 0000000 0000000 00000000227 00000000000 021601 0 ustar 00 bin1 = 0b11010110
bin2 = 0b1_0_1
oct1 = 0o01234567
oct2 = 0o755
oct3 = 0o7_6_5
hex1 = 0xDEADBEEF
hex2 = 0xdeadbeef
hex3 = 0xdead_beef
hex4 = 0x00987
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/long.json 0000644 0000000 0000000 00000000250 00000000000 020713 0 ustar 00 {
"int64-max": {
"type": "integer",
"value": "9223372036854775807"
},
"int64-max-neg": {
"type": "integer",
"value": "-9223372036854775808"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/long.toml 0000644 0000000 0000000 00000000105 00000000000 020714 0 ustar 00 int64-max = 9223372036854775807
int64-max-neg = -9223372036854775808
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/underscore.json 0000644 0000000 0000000 00000000170 00000000000 022126 0 ustar 00 {
"kilo": {
"type": "integer",
"value": "1000"
},
"x": {
"type": "integer",
"value": "1111"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/underscore.toml 0000644 0000000 0000000 00000000031 00000000000 022124 0 ustar 00 kilo = 1_000
x = 1_1_1_1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/zero.json 0000644 0000000 0000000 00000001227 00000000000 020740 0 ustar 00 {
"a2": {
"type": "integer",
"value": "0"
},
"a3": {
"type": "integer",
"value": "0"
},
"b1": {
"type": "integer",
"value": "0"
},
"b2": {
"type": "integer",
"value": "0"
},
"b3": {
"type": "integer",
"value": "0"
},
"d1": {
"type": "integer",
"value": "0"
},
"d2": {
"type": "integer",
"value": "0"
},
"d3": {
"type": "integer",
"value": "0"
},
"h1": {
"type": "integer",
"value": "0"
},
"h2": {
"type": "integer",
"value": "0"
},
"h3": {
"type": "integer",
"value": "0"
},
"o1": {
"type": "integer",
"value": "0"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/integer/zero.toml 0000644 0000000 0000000 00000000172 00000000000 020740 0 ustar 00 d1 = 0
d2 = +0
d3 = -0
h1 = 0x0
h2 = 0x00
h3 = 0x00000
o1 = 0o0
a2 = 0o00
a3 = 0o00000
b1 = 0b0
b2 = 0b00
b3 = 0b00000
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/alphanum.json 0000644 0000000 0000000 00000001230 00000000000 020713 0 ustar 00 {
"000111": {
"type": "string",
"value": "leading"
},
"10e3": {
"type": "string",
"value": "false float"
},
"123": {
"type": "string",
"value": "num"
},
"2018_10": {
"001": {
"type": "integer",
"value": "1"
}
},
"34-11": {
"type": "integer",
"value": "23"
},
"a-a-a": {
"_": {
"type": "bool",
"value": "false"
}
},
"alpha": {
"type": "string",
"value": "a"
},
"one1two2": {
"type": "string",
"value": "mixed"
},
"under_score": {
"type": "string",
"value": "___"
},
"with-dash": {
"type": "string",
"value": "dashed"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/alphanum.toml 0000644 0000000 0000000 00000000255 00000000000 020723 0 ustar 00 alpha = "a"
123 = "num"
000111 = "leading"
10e3 = "false float"
one1two2 = "mixed"
with-dash = "dashed"
under_score = "___"
34-11 = 23
[2018_10]
001 = 1
[a-a-a]
_ = false
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/case-sensitive.json 0000644 0000000 0000000 00000001171 00000000000 022034 0 ustar 00 {
"Section": {
"M": {
"type": "string",
"value": "latin letter M"
},
"name": {
"type": "string",
"value": "different section!!"
},
"Μ": {
"type": "string",
"value": "greek capital letter MU"
},
"μ": {
"type": "string",
"value": "greek small letter mu"
}
},
"sectioN": {
"type": "string",
"value": "NN"
},
"section": {
"NAME": {
"type": "string",
"value": "upper"
},
"Name": {
"type": "string",
"value": "capitalized"
},
"name": {
"type": "string",
"value": "lower"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/case-sensitive.toml 0000644 0000000 0000000 00000000313 00000000000 022033 0 ustar 00 sectioN = "NN"
[section]
name = "lower"
NAME = "upper"
Name = "capitalized"
[Section]
name = "different section!!"
"μ" = "greek small letter mu"
"Μ" = "greek capital letter MU"
M = "latin letter M"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/dotted.json 0000644 0000000 0000000 00000003741 00000000000 020402 0 ustar 00 {
"a": {
"few": {
"dots": {
"polka": {
"dance-with": {
"type": "string",
"value": "Dot"
},
"dot": {
"type": "string",
"value": "again?"
}
}
}
}
},
"arr": [
{
"a": {
"b": {
"c": {
"type": "integer",
"value": "1"
},
"d": {
"type": "integer",
"value": "2"
}
}
}
},
{
"a": {
"b": {
"c": {
"type": "integer",
"value": "3"
},
"d": {
"type": "integer",
"value": "4"
}
}
}
}
],
"count": {
"a": {
"type": "integer",
"value": "1"
},
"b": {
"type": "integer",
"value": "2"
},
"c": {
"type": "integer",
"value": "3"
},
"d": {
"type": "integer",
"value": "4"
},
"e": {
"type": "integer",
"value": "5"
},
"f": {
"type": "integer",
"value": "6"
},
"g": {
"type": "integer",
"value": "7"
},
"h": {
"type": "integer",
"value": "8"
},
"i": {
"type": "integer",
"value": "9"
},
"j": {
"type": "integer",
"value": "10"
},
"k": {
"type": "integer",
"value": "11"
},
"l": {
"type": "integer",
"value": "12"
}
},
"many": {
"dots": {
"here": {
"dot": {
"dot": {
"dot": {
"type": "integer",
"value": "42"
}
}
}
}
}
},
"name": {
"first": {
"type": "string",
"value": "Arthur"
},
"last": {
"type": "string",
"value": "Dent"
}
},
"tbl": {
"a": {
"b": {
"c": {
"type": "float",
"value": "42.666"
}
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/dotted.toml 0000644 0000000 0000000 00000001027 00000000000 020377 0 ustar 00 # Note: this file contains literal tab characters.
name.first = "Arthur"
"name".'last' = "Dent"
many.dots.here.dot.dot.dot = 42
# Space are ignored, and key parts can be quoted.
count.a = 1
count . b = 2
"count"."c" = 3
"count" . "d" = 4
'count'.'e' = 5
'count' . 'f' = 6
"count".'g' = 7
"count" . 'h' = 8
count.'i' = 9
count . 'j' = 10
"count".k = 11
"count" . l = 12
[tbl]
a.b.c = 42.666
[a.few.dots]
polka.dot = "again?"
polka.dance-with = "Dot"
[[arr]]
a.b.c=1
a.b.d=2
[[arr]]
a.b.c=3
a.b.d=4
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/empty.json 0000644 0000000 0000000 00000000073 00000000000 020250 0 ustar 00 {
"": {
"type": "string",
"value": "blank"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/empty.toml 0000644 0000000 0000000 00000000015 00000000000 020246 0 ustar 00 "" = "blank"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/equals-nospace.json 0000644 0000000 0000000 00000000077 00000000000 022036 0 ustar 00 {
"answer": {
"type": "integer",
"value": "42"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/equals-nospace.toml 0000644 0000000 0000000 00000000012 00000000000 022025 0 ustar 00 answer=42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/escapes.json 0000644 0000000 0000000 00000000547 00000000000 020543 0 ustar 00 {
"\n": {
"type": "string",
"value": "newline"
},
"\"": {
"type": "string",
"value": "just a quote"
},
"\"quoted\"": {
"quote": {
"type": "bool",
"value": "true"
}
},
"a.b": {
"À": {}
},
"backsp\u0008\u0008": {},
"À": {
"type": "string",
"value": "latin capital letter A with grave"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/escapes.toml 0000644 0000000 0000000 00000000225 00000000000 020536 0 ustar 00 "\n" = "newline"
"\u00c0" = "latin capital letter A with grave"
"\"" = "just a quote"
["backsp\b\b"]
["\"quoted\""]
quote = true
["a.b"."\u00c0"]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/numeric-dotted.json 0000644 0000000 0000000 00000000116 00000000000 022033 0 ustar 00 {
"1": {
"2": {
"type": "integer",
"value": "3"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/numeric-dotted.toml 0000644 0000000 0000000 00000000010 00000000000 022026 0 ustar 00 1.2 = 3
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/numeric.json 0000644 0000000 0000000 00000000071 00000000000 020552 0 ustar 00 {
"1": {
"type": "integer",
"value": "1"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/numeric.toml 0000644 0000000 0000000 00000000006 00000000000 020552 0 ustar 00 1 = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/quoted-dots.json 0000644 0000000 0000000 00000000734 00000000000 021366 0 ustar 00 {
"plain": {
"type": "integer",
"value": "1"
},
"plain_table": {
"plain": {
"type": "integer",
"value": "3"
},
"with.dot": {
"type": "integer",
"value": "4"
}
},
"table": {
"withdot": {
"key.with.dots": {
"type": "integer",
"value": "6"
},
"plain": {
"type": "integer",
"value": "5"
}
}
},
"with.dot": {
"type": "integer",
"value": "2"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/quoted-dots.toml 0000644 0000000 0000000 00000000160 00000000000 021361 0 ustar 00 plain = 1
"with.dot" = 2
[plain_table]
plain = 3
"with.dot" = 4
[table.withdot]
plain = 5
"key.with.dots" = 6
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/space.json 0000644 0000000 0000000 00000000073 00000000000 020205 0 ustar 00 {
"a b": {
"type": "integer",
"value": "1"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/space.toml 0000644 0000000 0000000 00000000012 00000000000 020200 0 ustar 00 "a b" = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/special-chars.json 0000644 0000000 0000000 00000000152 00000000000 021626 0 ustar 00 {
"~!@$^\u0026*()_+-`1234567890[]|/?\u003e\u003c.,;:'": {
"type": "integer",
"value": "1"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/special-chars.toml 0000644 0000000 0000000 00000000052 00000000000 021627 0 ustar 00 "~!@$^&*()_+-`1234567890[]|/?><.,;:'" = 1
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/special-word.json 0000644 0000000 0000000 00000000405 00000000000 021502 0 ustar 00 {
"false": {
"type": "bool",
"value": "false"
},
"inf": {
"type": "integer",
"value": "100000000"
},
"nan": {
"type": "string",
"value": "ceci n'est pas un nombre"
},
"true": {
"type": "integer",
"value": "1"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/key/special-word.toml 0000644 0000000 0000000 00000000111 00000000000 021476 0 ustar 00 false = false
true = 1
inf = 100000000
nan = "ceci n'est pas un nombre"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/newline-crlf.json 0000644 0000000 0000000 00000000171 00000000000 020706 0 ustar 00 {
"newline": {
"type": "string",
"value": "crlf"
},
"os": {
"type": "string",
"value": "DOS"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/newline-crlf.toml 0000644 0000000 0000000 00000000036 00000000000 020710 0 ustar 00 os = "DOS"
newline = "crlf"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/newline-lf.json 0000644 0000000 0000000 00000000170 00000000000 020360 0 ustar 00 {
"newline": {
"type": "string",
"value": "lf"
},
"os": {
"type": "string",
"value": "unix"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/newline-lf.toml 0000644 0000000 0000000 00000000033 00000000000 020360 0 ustar 00 os = "unix"
newline = "lf"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/spec-example-1-compact.json 0000644 0000000 0000000 00000003113 00000000000 022465 0 ustar 00 {
"clients": {
"data": [
[
{
"type": "string",
"value": "gamma"
},
{
"type": "string",
"value": "delta"
}
],
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
]
],
"hosts": [
{
"type": "string",
"value": "alpha"
},
{
"type": "string",
"value": "omega"
}
]
},
"database": {
"connection_max": {
"type": "integer",
"value": "5000"
},
"enabled": {
"type": "bool",
"value": "true"
},
"ports": [
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8002"
}
],
"server": {
"type": "string",
"value": "192.168.1.1"
}
},
"owner": {
"dob": {
"type": "datetime",
"value": "1979-05-27T07:32:00-08:00"
},
"name": {
"type": "string",
"value": "Lance Uppercut"
}
},
"servers": {
"alpha": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.1"
}
},
"beta": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.2"
}
}
},
"title": {
"type": "string",
"value": "TOML Example"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/spec-example-1-compact.toml 0000644 0000000 0000000 00000000570 00000000000 022473 0 ustar 00 #Useless spaces eliminated.
title="TOML Example"
[owner]
name="Lance Uppercut"
dob=1979-05-27T07:32:00-08:00#First class dates
[database]
server="192.168.1.1"
ports=[8001,8001,8002]
connection_max=5000
enabled=true
[servers]
[servers.alpha]
ip="10.0.0.1"
dc="eqdc10"
[servers.beta]
ip="10.0.0.2"
dc="eqdc10"
[clients]
data=[["gamma","delta"],[1,2]]
hosts=[
"alpha",
"omega"
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/spec-example-1.json 0000644 0000000 0000000 00000003113 00000000000 021041 0 ustar 00 {
"clients": {
"data": [
[
{
"type": "string",
"value": "gamma"
},
{
"type": "string",
"value": "delta"
}
],
[
{
"type": "integer",
"value": "1"
},
{
"type": "integer",
"value": "2"
}
]
],
"hosts": [
{
"type": "string",
"value": "alpha"
},
{
"type": "string",
"value": "omega"
}
]
},
"database": {
"connection_max": {
"type": "integer",
"value": "5000"
},
"enabled": {
"type": "bool",
"value": "true"
},
"ports": [
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8001"
},
{
"type": "integer",
"value": "8002"
}
],
"server": {
"type": "string",
"value": "192.168.1.1"
}
},
"owner": {
"dob": {
"type": "datetime",
"value": "1979-05-27T07:32:00-08:00"
},
"name": {
"type": "string",
"value": "Lance Uppercut"
}
},
"servers": {
"alpha": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.1"
}
},
"beta": {
"dc": {
"type": "string",
"value": "eqdc10"
},
"ip": {
"type": "string",
"value": "10.0.0.2"
}
}
},
"title": {
"type": "string",
"value": "TOML Example"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/spec-example-1.toml 0000644 0000000 0000000 00000001057 00000000000 021050 0 ustar 00 # This is a TOML document. Boom.
title = "TOML Example"
[owner]
name = "Lance Uppercut"
dob = 1979-05-27T07:32:00-08:00 # First class dates? Why not?
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
# You can indent as you please. Tabs or spaces. TOML don't care.
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
[clients]
data = [ ["gamma", "delta"], [1, 2] ]
# Line breaks are OK when inside arrays
hosts = [
"alpha",
"omega"
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/double-quote-escape.json 0000644 0000000 0000000 00000000101 00000000000 023463 0 ustar 00 {
"test": {
"type": "string",
"value": "\"one\""
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/double-quote-escape.toml 0000644 0000000 0000000 00000000021 00000000000 023466 0 ustar 00 test = "\"one\""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/empty.json 0000644 0000000 0000000 00000000074 00000000000 020767 0 ustar 00 {
"answer": {
"type": "string",
"value": ""
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/empty.toml 0000644 0000000 0000000 00000000014 00000000000 020763 0 ustar 00 answer = ""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/escape-tricky.json 0000644 0000000 0000000 00000001155 00000000000 022375 0 ustar 00 {
"end_esc": {
"type": "string",
"value": "String does not end here\" but ends here\\"
},
"lit_end_esc": {
"type": "string",
"value": "String ends here\\"
},
"lit_multiline_end": {
"type": "string",
"value": "There is no escape\\"
},
"lit_multiline_not_unicode": {
"type": "string",
"value": "\\u007f"
},
"multiline_end_esc": {
"type": "string",
"value": "When will it end? \"\"\"...\"\"\" should be here\""
},
"multiline_not_unicode": {
"type": "string",
"value": "\\u0041"
},
"multiline_unicode": {
"type": "string",
"value": " "
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/escape-tricky.toml 0000644 0000000 0000000 00000000510 00000000000 022371 0 ustar 00 end_esc = "String does not end here\" but ends here\\"
lit_end_esc = 'String ends here\'
multiline_unicode = """
\u00a0"""
multiline_not_unicode = """
\\u0041"""
multiline_end_esc = """When will it end? \"""...""\" should be here\""""
lit_multiline_not_unicode = '''
\u007f'''
lit_multiline_end = '''There is no escape\'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/escaped-escape.json 0000644 0000000 0000000 00000000101 00000000000 022462 0 ustar 00 {
"answer": {
"type": "string",
"value": "\\x64"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/escaped-escape.toml 0000644 0000000 0000000 00000000021 00000000000 022465 0 ustar 00 answer = "\\x64"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/escapes.json 0000644 0000000 0000000 00000002511 00000000000 021252 0 ustar 00 {
"backslash": {
"type": "string",
"value": "This string has a \\ backslash character."
},
"backspace": {
"type": "string",
"value": "This string has a \u0008 backspace character."
},
"carriage": {
"type": "string",
"value": "This string has a \r carriage return character."
},
"delete": {
"type": "string",
"value": "This string has a delete control code."
},
"formfeed": {
"type": "string",
"value": "This string has a \u000c form feed character."
},
"newline": {
"type": "string",
"value": "This string has a \n new line character."
},
"notunicode1": {
"type": "string",
"value": "This string does not have a unicode \\u escape."
},
"notunicode2": {
"type": "string",
"value": "This string does not have a unicode \\u escape."
},
"notunicode3": {
"type": "string",
"value": "This string does not have a unicode \\u0075 escape."
},
"notunicode4": {
"type": "string",
"value": "This string does not have a unicode \\u escape."
},
"quote": {
"type": "string",
"value": "This string has a \" quote character."
},
"tab": {
"type": "string",
"value": "This string has a \t tab character."
},
"unitseparator": {
"type": "string",
"value": "This string has a \u001f unit separator control code."
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/escapes.toml 0000644 0000000 0000000 00000001403 00000000000 021253 0 ustar 00 backspace = "This string has a \b backspace character."
tab = "This string has a \t tab character."
newline = "This string has a \n new line character."
formfeed = "This string has a \f form feed character."
carriage = "This string has a \r carriage return character."
quote = "This string has a \" quote character."
backslash = "This string has a \\ backslash character."
notunicode1 = "This string does not have a unicode \\u escape."
notunicode2 = "This string does not have a unicode \u005Cu escape."
notunicode3 = "This string does not have a unicode \\u0075 escape."
notunicode4 = "This string does not have a unicode \\\u0075 escape."
delete = "This string has a \u007F delete control code."
unitseparator = "This string has a \u001F unit separator control code."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/multiline-json 0000644 0000000 0000000 00000002057 00000000000 021635 0 ustar 00 {
"equivalent_one": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
},
"equivalent_three": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
},
"equivalent_two": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
},
"escape-bs-1": {
"type": "string",
"value": "a \\\nb"
},
"escape-bs-2": {
"type": "string",
"value": "a \\b"
},
"escape-bs-3": {
"type": "string",
"value": "a \\\\\n b"
},
"keep-ws-before": {
"type": "string",
"value": "a \tb"
},
"multiline_empty_four": {
"type": "string",
"value": ""
},
"multiline_empty_one": {
"type": "string",
"value": ""
},
"multiline_empty_three": {
"type": "string",
"value": ""
},
"multiline_empty_two": {
"type": "string",
"value": ""
},
"no-space": {
"type": "string",
"value": "ab"
},
"whitespace-after-bs": {
"type": "string",
"value": "The quick brown fox jumps over the lazy dog."
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/multiline-quotes.json 0000644 0000000 0000000 00000001340 00000000000 023146 0 ustar 00 {
"lit_one": {
"type": "string",
"value": "'one quote'"
},
"lit_one_space": {
"type": "string",
"value": " 'one quote' "
},
"lit_two": {
"type": "string",
"value": "''two quotes''"
},
"lit_two_space": {
"type": "string",
"value": " ''two quotes'' "
},
"mismatch1": {
"type": "string",
"value": "aaa'''bbb"
},
"mismatch2": {
"type": "string",
"value": "aaa\"\"\"bbb"
},
"one": {
"type": "string",
"value": "\"one quote\""
},
"one_space": {
"type": "string",
"value": " \"one quote\" "
},
"two": {
"type": "string",
"value": "\"\"two quotes\"\""
},
"two_space": {
"type": "string",
"value": " \"\"two quotes\"\" "
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/multiline-quotes.toml 0000644 0000000 0000000 00000000700 00000000000 023147 0 ustar 00 # Make sure that quotes inside multiline strings are allowed, including right
# after the opening '''/""" and before the closing '''/"""
lit_one = ''''one quote''''
lit_two = '''''two quotes'''''
lit_one_space = ''' 'one quote' '''
lit_two_space = ''' ''two quotes'' '''
one = """"one quote""""
two = """""two quotes"""""
one_space = """ "one quote" """
two_space = """ ""two quotes"" """
mismatch1 = """aaa'''bbb"""
mismatch2 = '''aaa"""bbb'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/multiline-toml 0000644 0000000 0000000 00000001317 00000000000 021635 0 ustar 00 # NOTE: this file includes some literal tab characters.
multiline_empty_one = """"""
multiline_empty_two = """
"""
multiline_empty_three = """\
"""
multiline_empty_four = """\
\
\
"""
equivalent_one = "The quick brown fox jumps over the lazy dog."
equivalent_two = """
The quick brown \
fox jumps over \
the lazy dog."""
equivalent_three = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""
whitespace-after-bs = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""
no-space = """a\
b"""
keep-ws-before = """a \
b"""
escape-bs-1 = """a \\
b"""
escape-bs-2 = """a \\\
b"""
escape-bs-3 = """a \\\\
b"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/nl.json 0000644 0000000 0000000 00000000521 00000000000 020237 0 ustar 00 {
"lit_nl_end": {
"type": "string",
"value": "value\\n"
},
"lit_nl_mid": {
"type": "string",
"value": "val\\nue"
},
"lit_nl_uni": {
"type": "string",
"value": "val\\ue"
},
"nl_end": {
"type": "string",
"value": "value\n"
},
"nl_mid": {
"type": "string",
"value": "val\nue"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/nl.toml 0000644 0000000 0000000 00000000163 00000000000 020243 0 ustar 00 nl_mid = "val\nue"
nl_end = """value\n"""
lit_nl_end = '''value\n'''
lit_nl_mid = 'val\nue'
lit_nl_uni = 'val\ue'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/raw-multiline.json 0000644 0000000 0000000 00000000503 00000000000 022417 0 ustar 00 {
"firstnl": {
"type": "string",
"value": "This string has a ' quote character."
},
"multiline": {
"type": "string",
"value": "This string\nhas ' a quote character\nand more than\none newline\nin it."
},
"oneline": {
"type": "string",
"value": "This string has a ' quote character."
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/raw-multiline.toml 0000644 0000000 0000000 00000000303 00000000000 022417 0 ustar 00 oneline = '''This string has a ' quote character.'''
firstnl = '''
This string has a ' quote character.'''
multiline = '''
This string
has ' a quote character
and more than
one newline
in it.'''
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/raw.json 0000644 0000000 0000000 00000001273 00000000000 020424 0 ustar 00 {
"backslash": {
"type": "string",
"value": "This string has a \\\\ backslash character."
},
"backspace": {
"type": "string",
"value": "This string has a \\b backspace character."
},
"carriage": {
"type": "string",
"value": "This string has a \\r carriage return character."
},
"formfeed": {
"type": "string",
"value": "This string has a \\f form feed character."
},
"newline": {
"type": "string",
"value": "This string has a \\n new line character."
},
"slash": {
"type": "string",
"value": "This string has a \\/ slash character."
},
"tab": {
"type": "string",
"value": "This string has a \\t tab character."
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/raw.toml 0000644 0000000 0000000 00000000565 00000000000 020431 0 ustar 00 backspace = 'This string has a \b backspace character.'
tab = 'This string has a \t tab character.'
newline = 'This string has a \n new line character.'
formfeed = 'This string has a \f form feed character.'
carriage = 'This string has a \r carriage return character.'
slash = 'This string has a \/ slash character.'
backslash = 'This string has a \\ backslash character.'
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/simple.json 0000644 0000000 0000000 00000000137 00000000000 021122 0 ustar 00 {
"answer": {
"type": "string",
"value": "You are not drinking enough whisky."
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/simple.toml 0000644 0000000 0000000 00000000057 00000000000 021125 0 ustar 00 answer = "You are not drinking enough whisky."
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/unicode-escape.json 0000644 0000000 0000000 00000000173 00000000000 022515 0 ustar 00 {
"answer4": {
"type": "string",
"value": "δ"
},
"answer8": {
"type": "string",
"value": "δ"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/unicode-escape.toml 0000644 0000000 0000000 00000000052 00000000000 022513 0 ustar 00 answer4 = "\u03B4"
answer8 = "\U000003B4"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/unicode-literal.json 0000644 0000000 0000000 00000000076 00000000000 022713 0 ustar 00 {
"answer": {
"type": "string",
"value": "δ"
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/unicode-literal.toml 0000644 0000000 0000000 00000000016 00000000000 022707 0 ustar 00 answer = "δ"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/with-pound.json 0000644 0000000 0000000 00000000267 00000000000 021733 0 ustar 00 {
"pound": {
"type": "string",
"value": "We see no # comments here."
},
"poundcomment": {
"type": "string",
"value": "But there are # some comments here."
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/string/with-pound.toml 0000644 0000000 0000000 00000000161 00000000000 021726 0 ustar 00 pound = "We see no # comments here."
poundcomment = "But there are # some comments here." # Did I # mess you up?
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-implicit.json 0000644 0000000 0000000 00000000223 00000000000 022334 0 ustar 00 {
"albums": {
"songs": [
{
"name": {
"type": "string",
"value": "Glory Days"
}
}
]
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-implicit.toml 0000644 0000000 0000000 00000000045 00000000000 022340 0 ustar 00 [[albums.songs]]
name = "Glory Days"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-many.json 0000644 0000000 0000000 00000001047 00000000000 021473 0 ustar 00 {
"people": [
{
"first_name": {
"type": "string",
"value": "Bruce"
},
"last_name": {
"type": "string",
"value": "Springsteen"
}
},
{
"first_name": {
"type": "string",
"value": "Eric"
},
"last_name": {
"type": "string",
"value": "Clapton"
}
},
{
"first_name": {
"type": "string",
"value": "Bob"
},
"last_name": {
"type": "string",
"value": "Seger"
}
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-many.toml 0000644 0000000 0000000 00000000243 00000000000 021472 0 ustar 00 [[people]]
first_name = "Bruce"
last_name = "Springsteen"
[[people]]
first_name = "Eric"
last_name = "Clapton"
[[people]]
first_name = "Bob"
last_name = "Seger"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-nest.json 0000644 0000000 0000000 00000001362 00000000000 021500 0 ustar 00 {
"albums": [
{
"name": {
"type": "string",
"value": "Born to Run"
},
"songs": [
{
"name": {
"type": "string",
"value": "Jungleland"
}
},
{
"name": {
"type": "string",
"value": "Meeting Across the River"
}
}
]
},
{
"name": {
"type": "string",
"value": "Born in the USA"
},
"songs": [
{
"name": {
"type": "string",
"value": "Glory Days"
}
},
{
"name": {
"type": "string",
"value": "Dancing in the Dark"
}
}
]
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-nest.toml 0000644 0000000 0000000 00000000406 00000000000 021500 0 ustar 00 [[albums]]
name = "Born to Run"
[[albums.songs]]
name = "Jungleland"
[[albums.songs]]
name = "Meeting Across the River"
[[albums]]
name = "Born in the USA"
[[albums.songs]]
name = "Glory Days"
[[albums.songs]]
name = "Dancing in the Dark"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-one.json 0000644 0000000 0000000 00000000312 00000000000 021302 0 ustar 00 {
"people": [
{
"first_name": {
"type": "string",
"value": "Bruce"
},
"last_name": {
"type": "string",
"value": "Springsteen"
}
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-one.toml 0000644 0000000 0000000 00000000072 00000000000 021307 0 ustar 00 [[people]]
first_name = "Bruce"
last_name = "Springsteen"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-table-array.json 0000644 0000000 0000000 00000000523 00000000000 022730 0 ustar 00 {
"a": [
{
"b": [
{
"c": {
"d": {
"type": "string",
"value": "val0"
}
}
},
{
"c": {
"d": {
"type": "string",
"value": "val1"
}
}
}
]
}
]
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/array-table-array.toml 0000644 0000000 0000000 00000000154 00000000000 022732 0 ustar 00 [[a]]
[[a.b]]
[a.b.c]
d = "val0"
[[a.b]]
[a.b.c]
d = "val1"
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/empty.json 0000644 0000000 0000000 00000000016 00000000000 020544 0 ustar 00 {
"a": {}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/empty.toml 0000644 0000000 0000000 00000000004 00000000000 020543 0 ustar 00 [a]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/keyword.json 0000644 0000000 0000000 00000000072 00000000000 021074 0 ustar 00 {
"true": {},
"false": {},
"inf": {},
"nan": {}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/keyword.toml 0000644 0000000 0000000 00000000040 00000000000 021071 0 ustar 00 [true]
[false]
[inf]
[nan]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/names.json 0000644 0000000 0000000 00000000422 00000000000 020512 0 ustar 00 {
"a": {
" x ": {},
"b": {
"c": {}
},
"b.c": {},
"d.e": {}
},
"d": {
"e": {
"f": {}
}
},
"g": {
"h": {
"i": {}
}
},
"j": {
"ʞ": {
"l": {}
}
},
"x": {
"1": {
"2": {}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/names.toml 0000644 0000000 0000000 00000000132 00000000000 020512 0 ustar 00 [a.b.c]
[a."b.c"]
[a.'d.e']
[a.' x ']
[ d.e.f ]
[ g . h . i ]
[ j . "ʞ" . 'l' ]
[x.1.2]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/no-eol.json 0000644 0000000 0000000 00000000022 00000000000 020574 0 ustar 00 {
"table": {}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/no-eol.toml 0000644 0000000 0000000 00000000010 00000000000 020573 0 ustar 00 [table]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/sub-empty.json 0000644 0000000 0000000 00000000035 00000000000 021334 0 ustar 00 {
"a": {
"b": {}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/sub-empty.toml 0000644 0000000 0000000 00000000012 00000000000 021331 0 ustar 00 [a]
[a.b]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/whitespace.json 0000644 0000000 0000000 00000000026 00000000000 021543 0 ustar 00 {
"valid key": {}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/whitespace.toml 0000644 0000000 0000000 00000000016 00000000000 021544 0 ustar 00 ["valid key"]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/with-literal-string.json 0000644 0000000 0000000 00000000216 00000000000 023321 0 ustar 00 {
"a": {
"\"b\"": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/with-literal-string.toml 0000644 0000000 0000000 00000000051 00000000000 023320 0 ustar 00 ['a']
[a.'"b"']
[a.'"b"'.c]
answer = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/with-pound.json 0000644 0000000 0000000 00000000134 00000000000 021505 0 ustar 00 {
"key#group": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/with-pound.toml 0000644 0000000 0000000 00000000032 00000000000 021504 0 ustar 00 ["key#group"]
answer = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/with-single-quotes.json 0000644 0000000 0000000 00000000212 00000000000 023154 0 ustar 00 {
"a": {
"b": {
"c": {
"answer": {
"type": "integer",
"value": "42"
}
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/with-single-quotes.toml 0000644 0000000 0000000 00000000045 00000000000 023162 0 ustar 00 ['a']
[a.'b']
[a.'b'.c]
answer = 42
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/without-super.json 0000644 0000000 0000000 00000000107 00000000000 022246 0 ustar 00 {
"x": {
"y": {
"z": {
"w": {}
}
}
}
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/tests/valid/table/without-super.toml 0000644 0000000 0000000 00000000170 00000000000 022250 0 ustar 00 # [x] you
# [x.y] don't
# [x.y.z] need these
[x.y.z.w] # for this to work
[x] # defining a super-table afterwards is ok
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319432.2335744
tomlkit-0.9.2/tests/toml-test/toml.go 0000644 0000000 0000000 00000006132 00000000000 014472 0 ustar 00 package tomltest
import (
"math"
"reflect"
)
// cmpTOML consumes the recursive structure of both want and have
// simultaneously. If anything is unequal the result has failed and comparison
// stops.
//
// reflect.DeepEqual could work here, but it won't tell us how the two
// structures are different.
func (r Test) cmpTOML(want, have interface{}) Test {
if isTomlValue(want) {
if !isTomlValue(have) {
return r.fail("Type for key '%s' differs:\n"+
" Expected: %[2]v (%[2]T)\n"+
" Your encoder: %[3]v (%[3]T)",
r.Key, want, have)
}
if !deepEqual(want, have) {
return r.fail("Values for key '%s' differ:\n"+
" Expected: %[2]v (%[2]T)\n"+
" Your encoder: %[3]v (%[3]T)",
r.Key, want, have)
}
return r
}
switch w := want.(type) {
case map[string]interface{}:
return r.cmpTOMLMap(w, have)
case []interface{}:
return r.cmpTOMLArrays(w, have)
default:
return r.fail("Unrecognized TOML structure: %T", want)
}
}
func (r Test) cmpTOMLMap(want map[string]interface{}, have interface{}) Test {
haveMap, ok := have.(map[string]interface{})
if !ok {
return r.mismatch("table", want, haveMap)
}
// Check that the keys of each map are equivalent.
for k := range want {
if _, ok := haveMap[k]; !ok {
bunk := r.kjoin(k)
return bunk.fail("Could not find key '%s' in encoder output", bunk.Key)
}
}
for k := range haveMap {
if _, ok := want[k]; !ok {
bunk := r.kjoin(k)
return bunk.fail("Could not find key '%s' in expected output", bunk.Key)
}
}
// Okay, now make sure that each value is equivalent.
for k := range want {
if sub := r.kjoin(k).cmpTOML(want[k], haveMap[k]); sub.Failed() {
return sub
}
}
return r
}
func (r Test) cmpTOMLArrays(want []interface{}, have interface{}) Test {
// Slice can be decoded to []interface{} for an array of primitives, or
// []map[string]interface{} for an array of tables.
//
// TODO: it would be nicer if it could always decode to []interface{}?
haveSlice, ok := have.([]interface{})
if !ok {
tblArray, ok := have.([]map[string]interface{})
if !ok {
return r.mismatch("array", want, have)
}
haveSlice = make([]interface{}, len(tblArray))
for i := range tblArray {
haveSlice[i] = tblArray[i]
}
}
if len(want) != len(haveSlice) {
return r.fail("Array lengths differ for key '%s'"+
" Expected: %[2]v (len=%[4]d)\n"+
" Your encoder: %[3]v (len=%[5]d)",
r.Key, want, haveSlice, len(want), len(haveSlice))
}
for i := 0; i < len(want); i++ {
if sub := r.cmpTOML(want[i], haveSlice[i]); sub.Failed() {
return sub
}
}
return r
}
// reflect.DeepEqual() that deals with NaN != NaN
func deepEqual(want, have interface{}) bool {
var wantF, haveF float64
switch f := want.(type) {
case float32:
wantF = float64(f)
case float64:
wantF = f
}
switch f := have.(type) {
case float32:
haveF = float64(f)
case float64:
haveF = f
}
if math.IsNaN(wantF) && math.IsNaN(haveF) {
return true
}
return reflect.DeepEqual(want, have)
}
func isTomlValue(v interface{}) bool {
switch v.(type) {
case map[string]interface{}, []interface{}:
return false
}
return true
}
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/__init__.py 0000644 0000000 0000000 00000001670 00000000000 013674 0 ustar 00 from .api import TOMLDocument
from .api import aot
from .api import array
from .api import boolean
from .api import comment
from .api import date
from .api import datetime
from .api import document
from .api import dump
from .api import dumps
from .api import float_
from .api import inline_table
from .api import integer
from .api import item
from .api import key
from .api import key_value
from .api import load
from .api import loads
from .api import nl
from .api import parse
from .api import string
from .api import table
from .api import time
from .api import value
from .api import ws
__version__ = "0.9.2"
__all__ = [
"aot",
"array",
"boolean",
"comment",
"date",
"datetime",
"document",
"dump",
"dumps",
"float_",
"inline_table",
"integer",
"item",
"key",
"key_value",
"load",
"loads",
"nl",
"parse",
"string",
"table",
"time",
"value",
"ws",
]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/_compat.py 0000644 0000000 0000000 00000001017 00000000000 013552 0 ustar 00 import sys
from typing import Any
from typing import List
from typing import Optional
PY38 = sys.version_info >= (3, 8)
def decode(string: Any, encodings: Optional[List[str]] = None):
if not isinstance(string, bytes):
return string
encodings = encodings or ["utf-8", "latin1", "ascii"]
for encoding in encodings:
try:
return string.decode(encoding)
except (UnicodeEncodeError, UnicodeDecodeError):
pass
return string.decode(encodings[0], errors="ignore")
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/_utils.py 0000644 0000000 0000000 00000006715 00000000000 013441 0 ustar 00 import re
from collections.abc import Mapping
from datetime import date
from datetime import datetime
from datetime import time
from datetime import timedelta
from datetime import timezone
from typing import Union
from ._compat import decode
RFC_3339_LOOSE = re.compile(
"^"
r"(([0-9]+)-(\d{2})-(\d{2}))?" # Date
"("
"([Tt ])?" # Separator
r"(\d{2}):(\d{2}):(\d{2})(\.([0-9]+))?" # Time
r"(([Zz])|([\+|\-]([01][0-9]|2[0-3]):([0-5][0-9])))?" # Timezone
")?"
"$"
)
RFC_3339_DATETIME = re.compile(
"^"
"([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])" # Date
"[Tt ]" # Separator
r"([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.([0-9]+))?" # Time
r"(([Zz])|([\+|\-]([01][0-9]|2[0-3]):([0-5][0-9])))?" # Timezone
"$"
)
RFC_3339_DATE = re.compile("^([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$")
RFC_3339_TIME = re.compile(
r"^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.([0-9]+))?$"
)
_utc = timezone(timedelta(), "UTC")
def parse_rfc3339(string: str) -> Union[datetime, date, time]:
m = RFC_3339_DATETIME.match(string)
if m:
year = int(m.group(1))
month = int(m.group(2))
day = int(m.group(3))
hour = int(m.group(4))
minute = int(m.group(5))
second = int(m.group(6))
microsecond = 0
if m.group(7):
microsecond = int((f"{m.group(8):<06s}")[:6])
if m.group(9):
# Timezone
tz = m.group(9)
if tz.upper() == "Z":
tzinfo = _utc
else:
sign = m.group(11)[0]
hour_offset, minute_offset = int(m.group(12)), int(m.group(13))
offset = timedelta(seconds=hour_offset * 3600 + minute_offset * 60)
if sign == "-":
offset = -offset
tzinfo = timezone(offset, f"{sign}{m.group(12)}:{m.group(13)}")
return datetime(
year, month, day, hour, minute, second, microsecond, tzinfo=tzinfo
)
else:
return datetime(year, month, day, hour, minute, second, microsecond)
m = RFC_3339_DATE.match(string)
if m:
year = int(m.group(1))
month = int(m.group(2))
day = int(m.group(3))
return date(year, month, day)
m = RFC_3339_TIME.match(string)
if m:
hour = int(m.group(1))
minute = int(m.group(2))
second = int(m.group(3))
microsecond = 0
if m.group(4):
microsecond = int((f"{m.group(5):<06s}")[:6])
return time(hour, minute, second, microsecond)
raise ValueError("Invalid RFC 339 string")
_escaped = {"b": "\b", "t": "\t", "n": "\n", "f": "\f", "r": "\r", '"': '"', "\\": "\\"}
_escapes = {v: k for k, v in _escaped.items()}
def escape_string(s: str) -> str:
s = decode(s)
res = []
start = 0
def flush():
if start != i:
res.append(s[start:i])
return i + 1
i = 0
while i < len(s):
c = s[i]
if c in '"\\\n\r\t\b\f':
start = flush()
res.append("\\" + _escapes[c])
elif ord(c) < 0x20:
start = flush()
res.append("\\u%04x" % ord(c))
i += 1
flush()
return "".join(res)
def merge_dicts(d1: dict, d2: dict) -> dict:
for k, v in d2.items():
if k in d1 and isinstance(d1[k], dict) and isinstance(v, Mapping):
merge_dicts(d1[k], v)
else:
d1[k] = d2[k]
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/api.py 0000644 0000000 0000000 00000013771 00000000000 012713 0 ustar 00 import datetime as _datetime
from collections.abc import Mapping
from typing import IO
from typing import Iterable
from typing import Tuple
from typing import Union
from ._utils import parse_rfc3339
from .container import Container
from .exceptions import UnexpectedCharError
from .items import AoT
from .items import Array
from .items import Bool
from .items import Comment
from .items import Date
from .items import DateTime
from .items import DottedKey
from .items import Float
from .items import InlineTable
from .items import Integer
from .items import Item as _Item
from .items import Key
from .items import SingleKey
from .items import String
from .items import Table
from .items import Time
from .items import Trivia
from .items import Whitespace
from .items import item
from .parser import Parser
from .toml_document import TOMLDocument
def loads(string: Union[str, bytes]) -> TOMLDocument:
"""
Parses a string into a TOMLDocument.
Alias for parse().
"""
return parse(string)
def dumps(data: Mapping, sort_keys: bool = False) -> str:
"""
Dumps a TOMLDocument into a string.
"""
if not isinstance(data, Container) and isinstance(data, Mapping):
data = item(dict(data), _sort_keys=sort_keys)
try:
# data should be a `Container` (and therefore implement `as_string`)
# for all type safe invocations of this function
return data.as_string() # type: ignore[attr-defined]
except AttributeError as ex:
msg = f"Expecting Mapping or TOML Container, {type(data)} given"
raise TypeError(msg) from ex
def load(fp: IO) -> TOMLDocument:
"""
Load toml document from a file-like object.
"""
return parse(fp.read())
def dump(data: Mapping, fp: IO[str], *, sort_keys: bool = False) -> None:
"""
Dump a TOMLDocument into a writable file stream.
:param data: a dict-like object to dump
:param sort_keys: if true, sort the keys in alphabetic order
"""
fp.write(dumps(data, sort_keys=sort_keys))
def parse(string: Union[str, bytes]) -> TOMLDocument:
"""
Parses a string or bytes into a TOMLDocument.
"""
return Parser(string).parse()
def document() -> TOMLDocument:
"""
Returns a new TOMLDocument instance.
"""
return TOMLDocument()
# Items
def integer(raw: Union[str, int]) -> Integer:
"""Create an integer item from a number or string."""
return item(int(raw))
def float_(raw: Union[str, float]) -> Float:
"""Create an float item from a number or string."""
return item(float(raw))
def boolean(raw: str) -> Bool:
"""Turn `true` or `false` into a boolean item."""
return item(raw == "true")
def string(raw: str) -> String:
"""Create a string item."""
return item(raw)
def date(raw: str) -> Date:
"""Create a TOML date."""
value = parse_rfc3339(raw)
if not isinstance(value, _datetime.date):
raise ValueError("date() only accepts date strings.")
return item(value)
def time(raw: str) -> Time:
"""Create a TOML time."""
value = parse_rfc3339(raw)
if not isinstance(value, _datetime.time):
raise ValueError("time() only accepts time strings.")
return item(value)
def datetime(raw: str) -> DateTime:
"""Create a TOML datetime."""
value = parse_rfc3339(raw)
if not isinstance(value, _datetime.datetime):
raise ValueError("datetime() only accepts datetime strings.")
return item(value)
def array(raw: str = None) -> Array:
"""Create an array item for its string representation.
:Example:
>>> array("[1, 2, 3]") # Create from a string
[1, 2, 3]
>>> a = array()
>>> a.extend([1, 2, 3]) # Create from a list
>>> a
[1, 2, 3]
"""
if raw is None:
raw = "[]"
return value(raw)
def table(is_super_table: bool = False) -> Table:
"""Create an empty table.
:param is_super_table: if true, the table is a super table
:Example:
>>> doc = document()
>>> foo = table(True)
>>> bar = table()
>>> bar.update({'x': 1})
>>> foo.append('bar', bar)
>>> doc.append('foo', foo)
>>> print(doc.as_string())
[foo.bar]
x = 1
"""
return Table(Container(), Trivia(), False, is_super_table)
def inline_table() -> InlineTable:
"""Create an inline table.
:Example:
>>> table = inline_table()
>>> table.update({'x': 1, 'y': 2})
>>> print(table.as_string())
{x = 1, y = 2}
"""
return InlineTable(Container(), Trivia(), new=True)
def aot() -> AoT:
"""Create an array of table.
:Example:
>>> doc = document()
>>> aot = aot()
>>> aot.append(item({'x': 1}))
>>> doc.append('foo', aot)
>>> print(doc.as_string())
[[foo]]
x = 1
"""
return AoT([])
def key(k: Union[str, Iterable[str]]) -> Key:
"""Create a key from a string. When a list of string is given,
it will create a dotted key.
:Example:
>>> doc = document()
>>> doc.append(key('foo'), 1)
>>> doc.append(key(['bar', 'baz']), 2)
>>> print(doc.as_string())
foo = 1
bar.baz = 2
"""
if isinstance(k, str):
return SingleKey(k)
return DottedKey([key(_k) for _k in k])
def value(raw: str) -> _Item:
"""Parse a simple value from a string.
:Example:
>>> value("1")
1
>>> value("true")
True
>>> value("[1, 2, 3]")
[1, 2, 3]
"""
parser = Parser(raw)
v = parser._parse_value()
if not parser.end():
raise parser.parse_error(UnexpectedCharError, char=parser._current)
return v
def key_value(src: str) -> Tuple[Key, _Item]:
"""Parse a key-value pair from a string.
:Example:
>>> key_value("foo = 1")
(Key('foo'), 1)
"""
return Parser(src)._parse_key_value()
def ws(src: str) -> Whitespace:
"""Create a whitespace from a string."""
return Whitespace(src, fixed=True)
def nl() -> Whitespace:
"""Create a newline item."""
return ws("\n")
def comment(string: str) -> Comment:
"""Create a comment item."""
return Comment(Trivia(comment_ws=" ", comment="# " + string))
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/container.py 0000644 0000000 0000000 00000066531 00000000000 014126 0 ustar 00 import copy
from typing import Any
from typing import Dict
from typing import Iterator
from typing import List
from typing import Optional
from typing import Tuple
from typing import Union
from ._compat import decode
from ._utils import merge_dicts
from .exceptions import KeyAlreadyPresent
from .exceptions import NonExistentKey
from .exceptions import TOMLKitError
from .items import AoT
from .items import Comment
from .items import Item
from .items import Key
from .items import Null
from .items import SingleKey
from .items import Table
from .items import Trivia
from .items import Whitespace
from .items import _CustomDict
from .items import item as _item
_NOT_SET = object()
class Container(_CustomDict):
"""
A container for items within a TOMLDocument.
This class implements the `dict` interface with copy/deepcopy protocol.
"""
def __init__(self, parsed: bool = False) -> None:
self._map: Dict[Key, int] = {}
self._body: List[Tuple[Optional[Key], Item]] = []
self._parsed = parsed
self._table_keys = []
@property
def body(self) -> List[Tuple[Optional[Key], Item]]:
return self._body
@property
def value(self) -> Dict[Any, Any]:
d = {}
for k, v in self._body:
if k is None:
continue
k = k.key
v = v.value
if isinstance(v, Container):
v = v.value
if k in d:
merge_dicts(d[k], v)
else:
d[k] = v
return d
def parsing(self, parsing: bool) -> None:
self._parsed = parsing
for _, v in self._body:
if isinstance(v, Table):
v.value.parsing(parsing)
elif isinstance(v, AoT):
for t in v.body:
t.value.parsing(parsing)
def add(
self, key: Union[Key, Item, str], item: Optional[Item] = None
) -> "Container":
"""
Adds an item to the current Container.
:Example:
>>> # add a key-value pair
>>> doc.add('key', 'value')
>>> # add a comment or whitespace or newline
>>> doc.add(comment('# comment'))
"""
if item is None:
if not isinstance(key, (Comment, Whitespace)):
raise ValueError(
"Non comment/whitespace items must have an associated key"
)
key, item = None, key
return self.append(key, item)
def _handle_dotted_key(self, key: Key, value: Item) -> None:
names = tuple(iter(key))
name = names[0]
name._dotted = True
if name in self:
if not isinstance(value, Table):
table = Table(Container(True), Trivia(), False, is_super_table=True)
_table = table
for i, _name in enumerate(names[1:]):
if i == len(names) - 2:
_name.sep = key.sep
_table.append(_name, value)
else:
_name._dotted = True
_table.append(
_name,
Table(
Container(True),
Trivia(),
False,
is_super_table=i < len(names) - 2,
),
)
_table = _table[_name]
value = table
self.append(name, value)
return
else:
table = Table(Container(True), Trivia(), False, is_super_table=True)
self.append(name, table)
for i, _name in enumerate(names[1:]):
if i == len(names) - 2:
_name.sep = key.sep
table.append(_name, value)
else:
_name._dotted = True
if _name in table.value:
table = table.value[_name]
else:
table.append(
_name,
Table(
Container(True),
Trivia(),
False,
is_super_table=i < len(names) - 2,
),
)
table = table[_name]
def append(self, key: Union[Key, str, None], item: Item) -> "Container":
"""Similar to :meth:`add` but both key and value must be given."""
if not isinstance(key, Key) and key is not None:
key = SingleKey(key)
if not isinstance(item, Item):
item = _item(item)
if key is not None and key.is_multi():
self._handle_dotted_key(key, item)
return self
if isinstance(item, (AoT, Table)) and item.name is None:
item.name = key.key
prev = self._previous_item()
prev_ws = isinstance(prev, Whitespace) or ends_with_withespace(prev)
if isinstance(item, Table):
if item.name != key.key:
item.invalidate_display_name()
if self._body and not (self._parsed or item.trivia.indent or prev_ws):
item.trivia.indent = "\n"
if isinstance(item, AoT) and self._body and not self._parsed:
item.invalidate_display_name()
if item and not ("\n" in item[0].trivia.indent or prev_ws):
item[0].trivia.indent = "\n" + item[0].trivia.indent
if key is not None and key in self:
current_idx = self._map[key]
if isinstance(current_idx, tuple):
current_body_element = self._body[current_idx[-1]]
else:
current_body_element = self._body[current_idx]
current = current_body_element[1]
if isinstance(item, Table):
if not isinstance(current, (Table, AoT)):
raise KeyAlreadyPresent(key)
if item.is_aot_element():
# New AoT element found later on
# Adding it to the current AoT
if not isinstance(current, AoT):
current = AoT([current, item], parsed=self._parsed)
self._replace(key, key, current)
else:
current.append(item)
return self
elif current.is_aot():
if not item.is_aot_element():
# Tried to define a table after an AoT with the same name.
raise KeyAlreadyPresent(key)
current.append(item)
return self
elif current.is_super_table():
if item.is_super_table():
# We need to merge both super tables
if (
self._table_keys[-1] != current_body_element[0]
or key.is_dotted()
or current_body_element[0].is_dotted()
):
if not isinstance(current_idx, tuple):
current_idx = (current_idx,)
self._map[key] = current_idx + (len(self._body),)
self._body.append((key, item))
self._table_keys.append(key)
# Building a temporary proxy to check for errors
OutOfOrderTableProxy(self, self._map[key])
return self
# Create a new element to replace the old one
current = copy.deepcopy(current)
for k, v in item.value.body:
current.append(k, v)
self._body[
current_idx[-1]
if isinstance(current_idx, tuple)
else current_idx
] = (current_body_element[0], current)
return self
elif current_body_element[0].is_dotted():
raise TOMLKitError("Redefinition of an existing table")
elif not item.is_super_table():
raise KeyAlreadyPresent(key)
elif isinstance(item, AoT):
if not isinstance(current, AoT):
# Tried to define an AoT after a table with the same name.
raise KeyAlreadyPresent(key)
for table in item.body:
current.append(table)
return self
else:
raise KeyAlreadyPresent(key)
is_table = isinstance(item, (Table, AoT))
if key is not None and self._body and not self._parsed:
# If there is already at least one table in the current container
# and the given item is not a table, we need to find the last
# item that is not a table and insert after it
# If no such item exists, insert at the top of the table
key_after = None
for i, (k, v) in enumerate(self._body):
if isinstance(v, Null):
continue # Null elements are inserted after deletion
if isinstance(v, Whitespace) and not v.is_fixed():
continue
if not is_table and isinstance(v, (Table, AoT)):
break
key_after = k or i # last scalar, Array or InlineTable value
if key_after is not None:
if isinstance(key_after, int):
if key_after + 1 < len(self._body):
return self._insert_at(key_after + 1, key, item)
else:
previous_item = self._body[-1][1]
if not (
isinstance(previous_item, Whitespace)
or ends_with_withespace(previous_item)
or is_table
or "\n" in previous_item.trivia.trail
):
previous_item.trivia.trail += "\n"
else:
return self._insert_after(key_after, key, item)
else:
return self._insert_at(0, key, item)
if key in self._map:
current_idx = self._map[key]
if isinstance(current_idx, tuple):
current_idx = current_idx[-1]
current = self._body[current_idx][1]
if key is not None and not isinstance(current, Table):
raise KeyAlreadyPresent(key)
# Adding sub tables to a currently existing table
if not isinstance(current_idx, tuple):
current_idx = (current_idx,)
self._map[key] = current_idx + (len(self._body),)
else:
self._map[key] = len(self._body)
self._body.append((key, item))
if item.is_table():
self._table_keys.append(key)
if key is not None:
dict.__setitem__(self, key.key, item.value)
return self
def remove(self, key: Union[Key, str]) -> "Container":
"""Remove a key from the container."""
if not isinstance(key, Key):
key = SingleKey(key)
idx = self._map.pop(key, None)
if idx is None:
raise NonExistentKey(key)
if isinstance(idx, tuple):
for i in idx:
self._body[i] = (None, Null())
else:
self._body[idx] = (None, Null())
dict.__delitem__(self, key.key)
return self
def _insert_after(
self, key: Union[Key, str], other_key: Union[Key, str], item: Any
) -> "Container":
if key is None:
raise ValueError("Key cannot be null in insert_after()")
if key not in self:
raise NonExistentKey(key)
if not isinstance(key, Key):
key = SingleKey(key)
if not isinstance(other_key, Key):
other_key = SingleKey(other_key)
item = _item(item)
idx = self._map[key]
# Insert after the max index if there are many.
if isinstance(idx, tuple):
idx = max(idx)
current_item = self._body[idx][1]
if "\n" not in current_item.trivia.trail:
current_item.trivia.trail += "\n"
# Increment indices after the current index
for k, v in self._map.items():
if isinstance(v, tuple):
new_indices = []
for v_ in v:
if v_ > idx:
v_ = v_ + 1
new_indices.append(v_)
self._map[k] = tuple(new_indices)
elif v > idx:
self._map[k] = v + 1
self._map[other_key] = idx + 1
self._body.insert(idx + 1, (other_key, item))
if key is not None:
dict.__setitem__(self, other_key.key, item.value)
return self
def _insert_at(self, idx: int, key: Union[Key, str], item: Any) -> "Container":
if idx > len(self._body) - 1:
raise ValueError(f"Unable to insert at position {idx}")
if not isinstance(key, Key):
key = SingleKey(key)
item = _item(item)
if idx > 0:
previous_item = self._body[idx - 1][1]
if not (
isinstance(previous_item, Whitespace)
or ends_with_withespace(previous_item)
or isinstance(item, (AoT, Table))
or "\n" in previous_item.trivia.trail
):
previous_item.trivia.trail += "\n"
# Increment indices after the current index
for k, v in self._map.items():
if isinstance(v, tuple):
new_indices = []
for v_ in v:
if v_ >= idx:
v_ = v_ + 1
new_indices.append(v_)
self._map[k] = tuple(new_indices)
elif v >= idx:
self._map[k] = v + 1
self._map[key] = idx
self._body.insert(idx, (key, item))
if key is not None:
dict.__setitem__(self, key.key, item.value)
return self
def item(self, key: Union[Key, str]) -> Item:
"""Get an item for the given key."""
if not isinstance(key, Key):
key = SingleKey(key)
idx = self._map.get(key, None)
if idx is None:
raise NonExistentKey(key)
if isinstance(idx, tuple):
# The item we are getting is an out of order table
# so we need a proxy to retrieve the proper objects
# from the parent container
return OutOfOrderTableProxy(self, idx)
return self._body[idx][1]
def last_item(self) -> Optional[Item]:
"""Get the last item."""
if self._body:
return self._body[-1][1]
def as_string(self) -> str:
"""Render as TOML string."""
s = ""
for k, v in self._body:
if k is not None:
if isinstance(v, Table):
s += self._render_table(k, v)
elif isinstance(v, AoT):
s += self._render_aot(k, v)
else:
s += self._render_simple_item(k, v)
else:
s += self._render_simple_item(k, v)
return s
def _render_table(
self, key: Key, table: Table, prefix: Optional[str] = None
) -> str:
cur = ""
if table.display_name is not None:
_key = table.display_name
else:
_key = key.as_string()
if prefix is not None:
_key = prefix + "." + _key
if not table.is_super_table() or (
any(
not isinstance(v, (Table, AoT, Whitespace)) for _, v in table.value.body
)
and not key.is_dotted()
):
open_, close = "[", "]"
if table.is_aot_element():
open_, close = "[[", "]]"
cur += "{}{}{}{}{}{}{}{}".format(
table.trivia.indent,
open_,
decode(_key),
close,
table.trivia.comment_ws,
decode(table.trivia.comment),
table.trivia.trail,
"\n" if "\n" not in table.trivia.trail and len(table.value) > 0 else "",
)
for k, v in table.value.body:
if isinstance(v, Table):
if v.is_super_table():
if k.is_dotted() and not key.is_dotted():
# Dotted key inside table
cur += self._render_table(k, v)
else:
cur += self._render_table(k, v, prefix=_key)
else:
cur += self._render_table(k, v, prefix=_key)
elif isinstance(v, AoT):
cur += self._render_aot(k, v, prefix=_key)
else:
cur += self._render_simple_item(
k, v, prefix=_key if key.is_dotted() else None
)
return cur
def _render_aot(self, key, aot, prefix=None):
_key = key.as_string()
if prefix is not None:
_key = prefix + "." + _key
cur = ""
_key = decode(_key)
for table in aot.body:
cur += self._render_aot_table(table, prefix=_key)
return cur
def _render_aot_table(self, table: Table, prefix: Optional[str] = None) -> str:
cur = ""
_key = prefix or ""
if not table.is_super_table():
open_, close = "[[", "]]"
cur += "{}{}{}{}{}{}{}".format(
table.trivia.indent,
open_,
decode(_key),
close,
table.trivia.comment_ws,
decode(table.trivia.comment),
table.trivia.trail,
)
for k, v in table.value.body:
if isinstance(v, Table):
if v.is_super_table():
if k.is_dotted():
# Dotted key inside table
cur += self._render_table(k, v)
else:
cur += self._render_table(k, v, prefix=_key)
else:
cur += self._render_table(k, v, prefix=_key)
elif isinstance(v, AoT):
cur += self._render_aot(k, v, prefix=_key)
else:
cur += self._render_simple_item(k, v)
return cur
def _render_simple_item(self, key, item, prefix=None):
if key is None:
return item.as_string()
_key = key.as_string()
if prefix is not None:
_key = prefix + "." + _key
return "{}{}{}{}{}{}{}".format(
item.trivia.indent,
decode(_key),
key.sep,
decode(item.as_string()),
item.trivia.comment_ws,
decode(item.trivia.comment),
item.trivia.trail,
)
def __len__(self) -> int:
return dict.__len__(self)
def __iter__(self) -> Iterator[str]:
return iter(dict.keys(self))
# Dictionary methods
def __getitem__(self, key: Union[Key, str]) -> Union[Item, "Container"]:
if not isinstance(key, Key):
key = SingleKey(key)
idx = self._map.get(key, None)
if idx is None:
raise NonExistentKey(key)
if isinstance(idx, tuple):
# The item we are getting is an out of order table
# so we need a proxy to retrieve the proper objects
# from the parent container
return OutOfOrderTableProxy(self, idx)
item = self._body[idx][1]
if item.is_boolean():
return item.value
return item
def __setitem__(self, key: Union[Key, str], value: Any) -> None:
if key is not None and key in self:
old_key = next(filter(lambda k: k == key, self._map))
self._replace(old_key, key, value)
else:
self.append(key, value)
def __delitem__(self, key: Union[Key, str]) -> None:
self.remove(key)
def setdefault(self, key: Union[Key, str], default: Any) -> Any:
super().setdefault(key, default=default)
return self[key]
def _replace(
self, key: Union[Key, str], new_key: Union[Key, str], value: Item
) -> None:
if not isinstance(key, Key):
key = SingleKey(key)
idx = self._map.get(key, None)
if idx is None:
raise NonExistentKey(key)
self._replace_at(idx, new_key, value)
def _replace_at(
self, idx: Union[int, Tuple[int]], new_key: Union[Key, str], value: Item
) -> None:
value = _item(value)
if isinstance(idx, tuple):
for i in idx[1:]:
self._body[i] = (None, Null())
idx = idx[0]
k, v = self._body[idx]
if not isinstance(new_key, Key):
if (
isinstance(value, (AoT, Table)) != isinstance(v, (AoT, Table))
or new_key != k.key
):
new_key = SingleKey(new_key)
else: # Inherit the sep of the old key
new_key = k
del self._map[k]
self._map[new_key] = idx
if new_key != k:
dict.__delitem__(self, k)
if isinstance(value, (AoT, Table)) != isinstance(v, (AoT, Table)):
# new tables should appear after all non-table values
self.remove(k)
for i in range(idx, len(self._body)):
if isinstance(self._body[i][1], (AoT, Table)):
self._insert_at(i, new_key, value)
idx = i
break
else:
idx = -1
self.append(new_key, value)
else:
# Copying trivia
if not isinstance(value, (Whitespace, AoT)):
value.trivia.indent = v.trivia.indent
value.trivia.comment_ws = value.trivia.comment_ws or v.trivia.comment_ws
value.trivia.comment = value.trivia.comment or v.trivia.comment
value.trivia.trail = v.trivia.trail
self._body[idx] = (new_key, value)
if hasattr(value, "invalidate_display_name"):
value.invalidate_display_name() # type: ignore[attr-defined]
if isinstance(value, Table):
# Insert a cosmetic new line for tables if:
# - it does not have it yet OR is not followed by one
# - it is not the last item
last, _ = self._previous_item_with_index()
idx = last if idx < 0 else idx
has_ws = ends_with_withespace(value)
next_ws = idx < last and isinstance(self._body[idx + 1][1], Whitespace)
if idx < last and not (next_ws or has_ws):
value.append(None, Whitespace("\n"))
dict.__setitem__(self, new_key.key, value.value)
def __str__(self) -> str:
return str(self.value)
def __repr__(self) -> str:
return repr(self.value)
def __eq__(self, other: dict) -> bool:
if not isinstance(other, dict):
return NotImplemented
return self.value == other
def _getstate(self, protocol):
return (self._parsed,)
def __reduce__(self):
return self.__reduce_ex__(2)
def __reduce_ex__(self, protocol):
return (
self.__class__,
self._getstate(protocol),
(self._map, self._body, self._parsed, self._table_keys),
)
def __setstate__(self, state):
self._map = state[0]
self._body = state[1]
self._parsed = state[2]
self._table_keys = state[3]
for key, item in self._body:
if key is not None:
dict.__setitem__(self, key.key, item.value)
def copy(self) -> "Container":
return copy.copy(self)
def __copy__(self) -> "Container":
c = self.__class__(self._parsed)
for k, v in dict.items(self):
dict.__setitem__(c, k, v)
c._body += self.body
c._map.update(self._map)
return c
def _previous_item_with_index(
self, idx: Optional[int] = None, ignore=(Null,)
) -> Optional[Tuple[int, Item]]:
"""Find the immediate previous item before index ``idx``"""
if idx is None or idx > len(self._body):
idx = len(self._body)
for i in range(idx - 1, -1, -1):
v = self._body[i][-1]
if not isinstance(v, ignore):
return i, v
return None
def _previous_item(
self, idx: Optional[int] = None, ignore=(Null,)
) -> Optional[Item]:
"""Find the immediate previous item before index ``idx``.
If ``idx`` is not given, the last item is returned.
"""
prev = self._previous_item_with_index(idx, ignore)
return prev[-1] if prev else None
class OutOfOrderTableProxy(_CustomDict):
def __init__(self, container: Container, indices: Tuple[int]) -> None:
self._container = container
self._internal_container = Container(True)
self._tables = []
self._tables_map = {}
for i in indices:
key, item = self._container._body[i]
if isinstance(item, Table):
self._tables.append(item)
table_idx = len(self._tables) - 1
for k, v in item.value.body:
self._internal_container.append(k, v)
self._tables_map[k] = table_idx
if k is not None:
dict.__setitem__(self, k.key, v)
@property
def value(self):
return self._internal_container.value
def __getitem__(self, key: Union[Key, str]) -> Any:
if key not in self._internal_container:
raise NonExistentKey(key)
return self._internal_container[key]
def __setitem__(self, key: Union[Key, str], item: Any) -> None:
if key in self._tables_map:
table = self._tables[self._tables_map[key]]
table[key] = item
elif self._tables:
table = self._tables[0]
table[key] = item
else:
self._container[key] = item
self._internal_container[key] = item
if key is not None:
dict.__setitem__(self, key, item)
def __delitem__(self, key: Union[Key, str]) -> None:
if key in self._tables_map:
table = self._tables[self._tables_map[key]]
del table[key]
del self._tables_map[key]
else:
raise NonExistentKey(key)
del self._internal_container[key]
if key is not None:
dict.__delitem__(self, key)
def __iter__(self) -> Iterator[str]:
return iter(dict.keys(self))
def __len__(self) -> int:
return dict.__len__(self)
def __getattr__(self, attribute):
return getattr(self._internal_container, attribute)
def setdefault(self, key: Union[Key, str], default: Any) -> Any:
super().setdefault(key, default=default)
return self[key]
def ends_with_withespace(it: Any) -> bool:
"""Returns ``True`` if the given item ``it`` is a ``Table`` or ``AoT`` object
ending with a ``Whitespace``.
"""
return (
isinstance(it, Table) and isinstance(it.value._previous_item(), Whitespace)
) or (isinstance(it, AoT) and len(it) > 0 and isinstance(it[-1], Whitespace))
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/exceptions.py 0000644 0000000 0000000 00000011710 00000000000 014312 0 ustar 00 from typing import Optional
class TOMLKitError(Exception):
pass
class ParseError(ValueError, TOMLKitError):
"""
This error occurs when the parser encounters a syntax error
in the TOML being parsed. The error references the line and
location within the line where the error was encountered.
"""
def __init__(self, line: int, col: int, message: Optional[str] = None) -> None:
self._line = line
self._col = col
if message is None:
message = "TOML parse error"
super().__init__(f"{message} at line {self._line} col {self._col}")
@property
def line(self):
return self._line
@property
def col(self):
return self._col
class MixedArrayTypesError(ParseError):
"""
An array was found that had two or more element types.
"""
def __init__(self, line: int, col: int) -> None:
message = "Mixed types found in array"
super().__init__(line, col, message=message)
class InvalidNumberError(ParseError):
"""
A numeric field was improperly specified.
"""
def __init__(self, line: int, col: int) -> None:
message = "Invalid number"
super().__init__(line, col, message=message)
class InvalidDateTimeError(ParseError):
"""
A datetime field was improperly specified.
"""
def __init__(self, line: int, col: int) -> None:
message = "Invalid datetime"
super().__init__(line, col, message=message)
class InvalidDateError(ParseError):
"""
A date field was improperly specified.
"""
def __init__(self, line: int, col: int) -> None:
message = "Invalid date"
super().__init__(line, col, message=message)
class InvalidTimeError(ParseError):
"""
A date field was improperly specified.
"""
def __init__(self, line: int, col: int) -> None:
message = "Invalid time"
super().__init__(line, col, message=message)
class InvalidNumberOrDateError(ParseError):
"""
A numeric or date field was improperly specified.
"""
def __init__(self, line: int, col: int) -> None:
message = "Invalid number or date format"
super().__init__(line, col, message=message)
class InvalidUnicodeValueError(ParseError):
"""
A unicode code was improperly specified.
"""
def __init__(self, line: int, col: int) -> None:
message = "Invalid unicode value"
super().__init__(line, col, message=message)
class UnexpectedCharError(ParseError):
"""
An unexpected character was found during parsing.
"""
def __init__(self, line: int, col: int, char: str) -> None:
message = f"Unexpected character: {repr(char)}"
super().__init__(line, col, message=message)
class EmptyKeyError(ParseError):
"""
An empty key was found during parsing.
"""
def __init__(self, line: int, col: int) -> None:
message = "Empty key"
super().__init__(line, col, message=message)
class EmptyTableNameError(ParseError):
"""
An empty table name was found during parsing.
"""
def __init__(self, line: int, col: int) -> None:
message = "Empty table name"
super().__init__(line, col, message=message)
class InvalidCharInStringError(ParseError):
"""
The string being parsed contains an invalid character.
"""
def __init__(self, line: int, col: int, char: str) -> None:
message = f"Invalid character {repr(char)} in string"
super().__init__(line, col, message=message)
class UnexpectedEofError(ParseError):
"""
The TOML being parsed ended before the end of a statement.
"""
def __init__(self, line: int, col: int) -> None:
message = "Unexpected end of file"
super().__init__(line, col, message=message)
class InternalParserError(ParseError):
"""
An error that indicates a bug in the parser.
"""
def __init__(self, line: int, col: int, message: Optional[str] = None) -> None:
msg = "Internal parser error"
if message:
msg += f" ({message})"
super().__init__(line, col, message=msg)
class NonExistentKey(KeyError, TOMLKitError):
"""
A non-existent key was used.
"""
def __init__(self, key):
message = f'Key "{key}" does not exist.'
super().__init__(message)
class KeyAlreadyPresent(TOMLKitError):
"""
An already present key was used.
"""
def __init__(self, key):
message = f'Key "{key}" already exists.'
super().__init__(message)
class InvalidControlChar(ParseError):
def __init__(self, line: int, col: int, char: int, type: str) -> None:
display_code = "\\u00"
if char < 16:
display_code += "0"
display_code += hex(char)[2:]
message = (
"Control characters (codes less than 0x1f and 0x7f) are not allowed in {}, "
"use {} instead".format(type, display_code)
)
super().__init__(line, col, message=message)
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/items.py 0000644 0000000 0000000 00000123034 00000000000 013255 0 ustar 00 import abc
import copy
import re
import string
from datetime import date
from datetime import datetime
from datetime import time
from datetime import tzinfo
from enum import Enum
from functools import lru_cache
from typing import TYPE_CHECKING
from typing import Any
from typing import Dict
from typing import Iterable
from typing import Iterator
from typing import List
from typing import Optional
from typing import TypeVar
from typing import Union
from typing import cast
from typing import overload
from ._compat import PY38
from ._compat import decode
from ._utils import escape_string
from .toml_char import TOMLChar
if TYPE_CHECKING: # pragma: no cover
# Define _CustomList and _CustomDict as a workaround for:
# https://github.com/python/mypy/issues/11427
#
# According to this issue, the typeshed contains a "lie"
# (it adds MutableSequence to the ancestry of list and MutableMapping to
# the ancestry of dict) which completely messes with the type inference for
# Table, InlineTable, Array and Container.
#
# Importing from builtins is preferred over simple assignment, see issues:
# https://github.com/python/mypy/issues/8715
# https://github.com/python/mypy/issues/10068
from builtins import dict as _CustomDict
from builtins import list as _CustomList
# Allow type annotations but break circular imports
from . import container
else:
from collections.abc import MutableMapping
from collections.abc import MutableSequence
class _CustomList(MutableSequence, list):
"""Adds MutableSequence mixin while pretending to be a builtin list"""
class _CustomDict(MutableMapping, dict):
"""Adds MutableMapping mixin while pretending to be a builtin dict"""
def item(
value: Any, _parent: Optional["Item"] = None, _sort_keys: bool = False
) -> "Item":
"""Create a TOML item from a Python object.
:Example:
>>> item(42)
42
>>> item([1, 2, 3])
[1, 2, 3]
>>> item({'a': 1, 'b': 2})
a = 1
b = 2
"""
from .container import Container
if isinstance(value, Item):
return value
if isinstance(value, bool):
return Bool(value, Trivia())
elif isinstance(value, int):
return Integer(value, Trivia(), str(value))
elif isinstance(value, float):
return Float(value, Trivia(), str(value))
elif isinstance(value, dict):
table_constructor = InlineTable if isinstance(_parent, Array) else Table
val = table_constructor(Container(), Trivia(), False)
for k, v in sorted(
value.items(),
key=lambda i: (isinstance(i[1], dict), i[0] if _sort_keys else 1),
):
val[k] = item(v, _parent=val, _sort_keys=_sort_keys)
only_child = len(value) == 1 and val[next(iter(value))]
if (
table_constructor is Table
and only_child
and isinstance(only_child, (AoT, Table))
):
# The table becomes super table if the only child is a table or AoT.
val._is_super_table = True
return val
elif isinstance(value, (list, tuple)):
if value and all(isinstance(v, dict) for v in value):
a = AoT([])
table_constructor = Table
else:
a = Array([], Trivia())
table_constructor = InlineTable
for v in value:
if isinstance(v, dict):
table = table_constructor(Container(), Trivia(), True)
for k, _v in sorted(
v.items(),
key=lambda i: (isinstance(i[1], dict), i[0] if _sort_keys else 1),
):
i = item(_v, _parent=a, _sort_keys=_sort_keys)
if isinstance(table, InlineTable):
i.trivia.trail = ""
table[k] = i
v = table
a.append(v)
return a
elif isinstance(value, str):
escaped = escape_string(value)
return String(StringType.SLB, decode(value), escaped, Trivia())
elif isinstance(value, datetime):
return DateTime(
value.year,
value.month,
value.day,
value.hour,
value.minute,
value.second,
value.microsecond,
value.tzinfo,
Trivia(),
value.isoformat().replace("+00:00", "Z"),
)
elif isinstance(value, date):
return Date(value.year, value.month, value.day, Trivia(), value.isoformat())
elif isinstance(value, time):
return Time(
value.hour,
value.minute,
value.second,
value.microsecond,
value.tzinfo,
Trivia(),
value.isoformat(),
)
raise ValueError(f"Invalid type {type(value)}")
class StringType(Enum):
# Single Line Basic
SLB = '"'
# Multi Line Basic
MLB = '"""'
# Single Line Literal
SLL = "'"
# Multi Line Literal
MLL = "'''"
@property
@lru_cache(maxsize=None)
def unit(self) -> str:
return self.value[0]
@lru_cache(maxsize=None)
def is_basic(self) -> bool:
return self in {StringType.SLB, StringType.MLB}
@lru_cache(maxsize=None)
def is_literal(self) -> bool:
return self in {StringType.SLL, StringType.MLL}
@lru_cache(maxsize=None)
def is_singleline(self) -> bool:
return self in {StringType.SLB, StringType.SLL}
@lru_cache(maxsize=None)
def is_multiline(self) -> bool:
return self in {StringType.MLB, StringType.MLL}
@lru_cache(maxsize=None)
def toggle(self) -> "StringType":
return {
StringType.SLB: StringType.MLB,
StringType.MLB: StringType.SLB,
StringType.SLL: StringType.MLL,
StringType.MLL: StringType.SLL,
}[self]
class BoolType(Enum):
TRUE = "true"
FALSE = "false"
@lru_cache(maxsize=None)
def __bool__(self):
return {BoolType.TRUE: True, BoolType.FALSE: False}[self]
def __iter__(self):
return iter(self.value)
def __len__(self):
return len(self.value)
class Trivia:
"""
Trivia information (aka metadata).
"""
def __init__(
self,
indent: str = None,
comment_ws: str = None,
comment: str = None,
trail: str = None,
) -> None:
# Whitespace before a value.
self.indent = indent or ""
# Whitespace after a value, but before a comment.
self.comment_ws = comment_ws or ""
# Comment, starting with # character, or empty string if no comment.
self.comment = comment or ""
# Trailing newline.
if trail is None:
trail = "\n"
self.trail = trail
def copy(self) -> "Trivia":
return type(self)(self.indent, self.comment_ws, self.comment, self.trail)
class KeyType(Enum):
"""
The type of a Key.
Keys can be bare (unquoted), or quoted using basic ("), or literal (')
quotes following the same escaping rules as single-line StringType.
"""
Bare = ""
Basic = '"'
Literal = "'"
class Key(abc.ABC):
"""Base class for a key"""
sep: str
_original: str
_keys: List["SingleKey"]
_dotted: bool
key: str
@abc.abstractmethod
def __hash__(self) -> int:
pass
@abc.abstractmethod
def __eq__(self, __o: object) -> bool:
pass
def is_dotted(self) -> bool:
"""If the key is followed by other keys"""
return self._dotted
def __iter__(self) -> Iterator["SingleKey"]:
return iter(self._keys)
def concat(self, other: "Key") -> "DottedKey":
"""Concatenate keys into a dotted key"""
keys = self._keys + other._keys
return DottedKey(keys, sep=self.sep)
def is_multi(self) -> bool:
"""Check if the key contains multiple keys"""
return len(self._keys) > 1
def as_string(self) -> str:
"""The TOML representation"""
return self._original
def __str__(self) -> str:
return self.as_string()
def __repr__(self) -> str:
return f""
class SingleKey(Key):
"""A single key"""
def __init__(
self,
k: str,
t: Optional[KeyType] = None,
sep: Optional[str] = None,
original: Optional[str] = None,
) -> None:
if t is None:
if not k or any(
c not in string.ascii_letters + string.digits + "-" + "_" for c in k
):
t = KeyType.Basic
else:
t = KeyType.Bare
self.t = t
if sep is None:
sep = " = "
self.sep = sep
self.key = k
if original is None:
key_str = escape_string(k) if t == KeyType.Basic else k
original = f"{t.value}{key_str}{t.value}"
self._original = original
self._keys = [self]
self._dotted = False
@property
def delimiter(self) -> str:
"""The delimiter: double quote/single quote/none"""
return self.t.value
def is_bare(self) -> bool:
"""Check if the key is bare"""
return self.t == KeyType.Bare
def __hash__(self) -> int:
return hash(self.key)
def __eq__(self, other: Any) -> bool:
if isinstance(other, Key):
return isinstance(other, SingleKey) and self.key == other.key
return self.key == other
class DottedKey(Key):
def __init__(
self,
keys: Iterable[Key],
sep: Optional[str] = None,
original: Optional[str] = None,
) -> None:
self._keys = list(keys)
if original is None:
original = ".".join(k.as_string() for k in self._keys)
self.sep = " = " if sep is None else sep
self._original = original
self._dotted = False
self.key = ".".join(k.key for k in self._keys)
def __hash__(self) -> int:
return hash(tuple(self._keys))
def __eq__(self, __o: object) -> bool:
return isinstance(__o, DottedKey) and self._keys == __o._keys
class Item:
"""
An item within a TOML document.
"""
def __init__(self, trivia: Trivia) -> None:
self._trivia = trivia
@property
def trivia(self) -> Trivia:
"""The trivia element associated with this item"""
return self._trivia
@property
def discriminant(self) -> int:
raise NotImplementedError()
def as_string(self) -> str:
"""The TOML representation"""
raise NotImplementedError()
# Helpers
def comment(self, comment: str) -> "Item":
"""Attach a comment to this item"""
if not comment.strip().startswith("#"):
comment = "# " + comment
self._trivia.comment_ws = " "
self._trivia.comment = comment
return self
def indent(self, indent: int) -> "Item":
"""Indent this item with given number of spaces"""
if self._trivia.indent.startswith("\n"):
self._trivia.indent = "\n" + " " * indent
else:
self._trivia.indent = " " * indent
return self
def is_boolean(self) -> bool:
return isinstance(self, Bool)
def is_table(self) -> bool:
return isinstance(self, Table)
def is_inline_table(self) -> bool:
return isinstance(self, InlineTable)
def is_aot(self) -> bool:
return isinstance(self, AoT)
def _getstate(self, protocol=3):
return (self._trivia,)
def __reduce__(self):
return self.__reduce_ex__(2)
def __reduce_ex__(self, protocol):
return self.__class__, self._getstate(protocol)
class Whitespace(Item):
"""
A whitespace literal.
"""
def __init__(self, s: str, fixed: bool = False) -> None:
self._s = s
self._fixed = fixed
@property
def s(self) -> str:
return self._s
@property
def value(self) -> str:
"""The wrapped string of the whitespace"""
return self._s
@property
def trivia(self) -> Trivia:
raise RuntimeError("Called trivia on a Whitespace variant.")
@property
def discriminant(self) -> int:
return 0
def is_fixed(self) -> bool:
"""If the whitespace is fixed, it can't be merged or discarded from the output."""
return self._fixed
def as_string(self) -> str:
return self._s
def __repr__(self) -> str:
return f"<{self.__class__.__name__} {repr(self._s)}>"
def _getstate(self, protocol=3):
return self._s, self._fixed
class Comment(Item):
"""
A comment literal.
"""
@property
def discriminant(self) -> int:
return 1
def as_string(self) -> str:
return "{}{}{}".format(
self._trivia.indent, decode(self._trivia.comment), self._trivia.trail
)
def __str__(self) -> str:
return f"{self._trivia.indent}{decode(self._trivia.comment)}"
class Integer(int, Item):
"""
An integer literal.
"""
def __new__(cls, value: int, trivia: Trivia, raw: str) -> "Integer":
return super().__new__(cls, value)
def __init__(self, _: int, trivia: Trivia, raw: str) -> None:
super().__init__(trivia)
self._raw = raw
self._sign = False
if re.match(r"^[+\-]\d+$", raw):
self._sign = True
@property
def discriminant(self) -> int:
return 2
@property
def value(self) -> int:
"""The wrapped integer value"""
return self
def as_string(self) -> str:
return self._raw
def __add__(self, other):
result = super().__add__(other)
return self._new(result)
def __radd__(self, other):
result = super().__radd__(other)
if isinstance(other, Integer):
return self._new(result)
return result
def __sub__(self, other):
result = super().__sub__(other)
return self._new(result)
def __rsub__(self, other):
result = super().__rsub__(other)
if isinstance(other, Integer):
return self._new(result)
return result
def _new(self, result):
raw = str(result)
if self._sign:
sign = "+" if result >= 0 else "-"
raw = sign + raw
return Integer(result, self._trivia, raw)
def _getstate(self, protocol=3):
return int(self), self._trivia, self._raw
class Float(float, Item):
"""
A float literal.
"""
def __new__(cls, value: float, trivia: Trivia, raw: str) -> Integer:
return super().__new__(cls, value)
def __init__(self, _: float, trivia: Trivia, raw: str) -> None:
super().__init__(trivia)
self._raw = raw
self._sign = False
if re.match(r"^[+\-].+$", raw):
self._sign = True
@property
def discriminant(self) -> int:
return 3
@property
def value(self) -> float:
"""The wrapped float value"""
return self
def as_string(self) -> str:
return self._raw
def __add__(self, other):
result = super().__add__(other)
return self._new(result)
def __radd__(self, other):
result = super().__radd__(other)
if isinstance(other, Float):
return self._new(result)
return result
def __sub__(self, other):
result = super().__sub__(other)
return self._new(result)
def __rsub__(self, other):
result = super().__rsub__(other)
if isinstance(other, Float):
return self._new(result)
return result
def _new(self, result):
raw = str(result)
if self._sign:
sign = "+" if result >= 0 else "-"
raw = sign + raw
return Float(result, self._trivia, raw)
def _getstate(self, protocol=3):
return float(self), self._trivia, self._raw
class Bool(Item):
"""
A boolean literal.
"""
def __init__(self, t: int, trivia: Trivia) -> None:
super().__init__(trivia)
self._value = bool(t)
@property
def discriminant(self) -> int:
return 4
@property
def value(self) -> bool:
"""The wrapped boolean value"""
return self._value
def as_string(self) -> str:
return str(self._value).lower()
def _getstate(self, protocol=3):
return self._value, self._trivia
def __bool__(self):
return self._value
__nonzero__ = __bool__
def __eq__(self, other):
if not isinstance(other, bool):
return NotImplemented
return other == self._value
def __hash__(self):
return hash(self._value)
def __repr__(self):
return repr(self._value)
class DateTime(Item, datetime):
"""
A datetime literal.
"""
def __new__(
cls,
year: int,
month: int,
day: int,
hour: int,
minute: int,
second: int,
microsecond: int,
tzinfo: Optional[tzinfo],
trivia: Trivia,
raw: str,
**kwargs: Any,
) -> datetime:
return datetime.__new__(
cls,
year,
month,
day,
hour,
minute,
second,
microsecond,
tzinfo=tzinfo,
**kwargs,
)
def __init__(
self,
year: int,
month: int,
day: int,
hour: int,
minute: int,
second: int,
microsecond: int,
tzinfo: Optional[tzinfo],
trivia: Trivia,
raw: str,
) -> None:
super().__init__(trivia)
self._raw = raw
@property
def discriminant(self) -> int:
return 5
@property
def value(self) -> datetime:
return self
def as_string(self) -> str:
return self._raw
def __add__(self, other):
if PY38:
result = datetime(
self.year,
self.month,
self.day,
self.hour,
self.minute,
self.second,
self.microsecond,
self.tzinfo,
).__add__(other)
else:
result = super().__add__(other)
return self._new(result)
def __sub__(self, other):
if PY38:
result = datetime(
self.year,
self.month,
self.day,
self.hour,
self.minute,
self.second,
self.microsecond,
self.tzinfo,
).__sub__(other)
else:
result = super().__sub__(other)
if isinstance(result, datetime):
result = self._new(result)
return result
def _new(self, result):
raw = result.isoformat()
return DateTime(
result.year,
result.month,
result.day,
result.hour,
result.minute,
result.second,
result.microsecond,
result.tzinfo,
self._trivia,
raw,
)
def _getstate(self, protocol=3):
return (
self.year,
self.month,
self.day,
self.hour,
self.minute,
self.second,
self.microsecond,
self.tzinfo,
self._trivia,
self._raw,
)
class Date(Item, date):
"""
A date literal.
"""
def __new__(cls, year: int, month: int, day: int, *_: Any) -> date:
return date.__new__(cls, year, month, day)
def __init__(
self, year: int, month: int, day: int, trivia: Trivia, raw: str
) -> None:
super().__init__(trivia)
self._raw = raw
@property
def discriminant(self) -> int:
return 6
@property
def value(self) -> date:
return self
def as_string(self) -> str:
return self._raw
def __add__(self, other):
if PY38:
result = date(self.year, self.month, self.day).__add__(other)
else:
result = super().__add__(other)
return self._new(result)
def __sub__(self, other):
if PY38:
result = date(self.year, self.month, self.day).__sub__(other)
else:
result = super().__sub__(other)
if isinstance(result, date):
result = self._new(result)
return result
def _new(self, result):
raw = result.isoformat()
return Date(result.year, result.month, result.day, self._trivia, raw)
def _getstate(self, protocol=3):
return (self.year, self.month, self.day, self._trivia, self._raw)
class Time(Item, time):
"""
A time literal.
"""
def __new__(
cls,
hour: int,
minute: int,
second: int,
microsecond: int,
tzinfo: Optional[tzinfo],
*_: Any,
) -> time:
return time.__new__(cls, hour, minute, second, microsecond, tzinfo)
def __init__(
self,
hour: int,
minute: int,
second: int,
microsecond: int,
tzinfo: Optional[tzinfo],
trivia: Trivia,
raw: str,
) -> None:
super().__init__(trivia)
self._raw = raw
@property
def discriminant(self) -> int:
return 7
@property
def value(self) -> time:
return self
def as_string(self) -> str:
return self._raw
def _getstate(self, protocol: int = 3) -> tuple:
return (
self.hour,
self.minute,
self.second,
self.microsecond,
self.tzinfo,
self._trivia,
self._raw,
)
class Array(Item, _CustomList):
"""
An array literal
"""
def __init__(self, value: list, trivia: Trivia, multiline: bool = False) -> None:
super().__init__(trivia)
self._index_map: Dict[int, int] = {}
list.__init__(
self, [v.value for v in value if not isinstance(v, (Whitespace, Comment))]
)
self._value = value
self._multiline = multiline
self._reindex()
@property
def discriminant(self) -> int:
return 8
@property
def value(self) -> list:
return self
def multiline(self, multiline: bool) -> "Array":
"""Change the array to display in multiline or not.
:Example:
>>> a = item([1, 2, 3])
>>> print(a.as_string())
[1, 2, 3]
>>> print(a.multiline(True).as_string())
[
1,
2,
3,
]
"""
self._multiline = multiline
return self
def as_string(self) -> str:
if not self._multiline or not self._value:
return "[{}]".format("".join(v.as_string() for v in self._value))
s = "[\n" + self.trivia.indent + " " * 4
s += (",\n" + self.trivia.indent + " " * 4).join(
v.as_string() for v in self._value if not isinstance(v, Whitespace)
)
s += ",\n"
s += "]"
return s
def _reindex(self) -> None:
self._index_map.clear()
index = 0
for i, v in enumerate(self._value):
if isinstance(v, (Whitespace, Comment)):
continue
self._index_map[index] = i
index += 1
def add_line(
self,
*items: Any,
indent: str = " ",
comment: Optional[str] = None,
add_comma: bool = True,
newline: bool = True,
) -> None:
"""Add multiple items in a line to control the format precisely.
When add_comma is True, only accept actual values and
", " will be added between values automatically.
:Example:
>>> a = array()
>>> a.add_line(1, 2, 3)
>>> a.add_line(4, 5, 6)
>>> a.add_line(indent="")
>>> print(a.as_string())
[
1, 2, 3,
4, 5, 6,
]
"""
values = self._value[:]
new_values = []
def append_item(el: Item) -> None:
if not values:
return values.append(el)
last_el = values[-1]
if (
isinstance(el, Whitespace)
and "," not in el.s
and isinstance(last_el, Whitespace)
and "," not in last_el.s
):
values[-1] = Whitespace(last_el.s + el.s)
else:
values.append(el)
if newline:
append_item(Whitespace("\n"))
if indent:
append_item(Whitespace(indent))
for i, el in enumerate(items):
el = item(el, _parent=self)
if isinstance(el, Comment) or add_comma and isinstance(el, Whitespace):
raise ValueError(f"item type {type(el)} is not allowed")
if not isinstance(el, Whitespace):
new_values.append(el.value)
append_item(el)
if add_comma:
append_item(Whitespace(","))
if i != len(items) - 1:
append_item(Whitespace(" "))
if comment:
indent = " " if items else ""
append_item(
Comment(Trivia(indent=indent, comment=f"# {comment}", trail=""))
)
# Atomic manipulation
self._value[:] = values
list.extend(self, new_values)
self._reindex()
def clear(self) -> None:
"""Clear the array."""
list.clear(self)
self._value.clear()
self._index_map.clear()
def __len__(self) -> int:
return list.__len__(self)
def __getitem__(self, key: Union[int, slice]) -> Any:
return list.__getitem__(self, key)
def __setitem__(self, key: Union[int, slice], value: Any) -> Any:
it = item(value, _parent=self)
list.__setitem__(self, key, it.value)
if isinstance(key, slice):
raise ValueError("slice assignment is not supported")
if key < 0:
key += len(self)
self._value[self._index_map[key]] = it
def insert(self, pos: int, value: Any) -> None:
it = item(value, _parent=self)
length = len(self)
if not isinstance(it, (Comment, Whitespace)):
list.insert(self, pos, it.value)
if pos < 0:
pos += length
if pos < 0:
pos = 0
items = [it]
idx = 0
if pos < length:
try:
idx = self._index_map[pos]
except KeyError:
raise IndexError("list index out of range")
if not isinstance(it, (Whitespace, Comment)):
items.append(Whitespace(","))
else:
idx = len(self._value)
if idx > 0:
last_item = self._value[idx - 1]
if isinstance(last_item, Whitespace) and "," not in last_item.s:
# the item has an indent, copy that
idx -= 1
ws = last_item.s
if isinstance(it, Whitespace) and "," not in it.s:
# merge the whitespace
self._value[idx] = Whitespace(ws + it.s)
return
else:
ws = ""
has_newline = bool(set(ws) & set(TOMLChar.NL))
has_space = ws and ws[-1] in TOMLChar.SPACES
if not has_space:
# four spaces for multiline array and single space otherwise
ws += " " if has_newline else " "
items.insert(0, Whitespace(ws))
self._value[idx:idx] = items
i = idx - 1
if pos > 0: # Check if the last item ends with a comma
while i >= 0 and isinstance(self._value[i], (Whitespace, Comment)):
if isinstance(self._value[i], Whitespace) and "," in self._value[i].s:
break
i -= 1
else:
self._value.insert(i + 1, Whitespace(","))
self._reindex()
def __delitem__(self, key: Union[int, slice]):
length = len(self)
list.__delitem__(self, key)
def get_indice_to_remove(idx: int) -> Iterable[int]:
try:
real_idx = self._index_map[idx]
except KeyError:
raise IndexError("list index out of range")
yield real_idx
for i in range(real_idx + 1, len(self._value)):
if isinstance(self._value[i], Whitespace):
yield i
else:
break
indexes = set()
if isinstance(key, slice):
for idx in range(key.start or 0, key.stop or length, key.step or 1):
indexes.update(get_indice_to_remove(idx))
else:
indexes.update(get_indice_to_remove(length + key if key < 0 else key))
for i in sorted(indexes, reverse=True):
del self._value[i]
while self._value and isinstance(self._value[-1], Whitespace):
self._value.pop()
self._reindex()
def __str__(self):
return str(
[v.value for v in self._value if not isinstance(v, (Whitespace, Comment))]
)
def _getstate(self, protocol=3):
return self._value, self._trivia
AT = TypeVar("AT", bound="AbstractTable")
class AbstractTable(Item, _CustomDict):
"""Common behaviour of both :class:`Table` and :class:`InlineTable`"""
def __init__(self, value: "container.Container", trivia: Trivia):
Item.__init__(self, trivia)
self._value = value
for k, v in self._value.body:
if k is not None:
dict.__setitem__(self, k.key, v)
@property
def value(self) -> "container.Container":
return self._value
@overload
def append(self: AT, key: None, value: Union[Comment, Whitespace]) -> AT:
...
@overload
def append(self: AT, key: Union[Key, str], value: Any) -> AT:
...
def append(self, key, value):
raise NotImplementedError
@overload
def add(self: AT, value: Union[Comment, Whitespace]) -> AT:
...
@overload
def add(self: AT, key: Union[Key, str], value: Any) -> AT:
...
def add(self, key, value=None):
if value is None:
if not isinstance(key, (Comment, Whitespace)):
msg = "Non comment/whitespace items must have an associated key"
raise ValueError(msg)
key, value = None, key
return self.append(key, value)
def remove(self: AT, key: Union[Key, str]) -> AT:
self._value.remove(key)
if isinstance(key, Key):
key = key.key
if key is not None:
dict.__delitem__(self, key)
return self
def setdefault(self, key: Union[Key, str], default: Any) -> Any:
super().setdefault(key, default)
return self[key]
def __str__(self):
return str(self.value)
def copy(self: AT) -> AT:
return copy.copy(self)
def __repr__(self) -> str:
return repr(self.value)
def __iter__(self) -> Iterator[str]:
return iter(self._value)
def __len__(self) -> int:
return len(self._value)
def __delitem__(self, key: Union[Key, str]) -> None:
self.remove(key)
def __getitem__(self, key: Union[Key, str]) -> Item:
return cast(Item, self._value[key])
def __setitem__(self, key: Union[Key, str], value: Any) -> None:
if not isinstance(value, Item):
value = item(value)
is_replace = key in self
self._value[key] = value
if key is not None:
dict.__setitem__(self, key, value)
if is_replace:
return
m = re.match("(?s)^[^ ]*([ ]+).*$", self._trivia.indent)
if not m:
return
indent = m.group(1)
if not isinstance(value, Whitespace):
m = re.match("(?s)^([^ ]*)(.*)$", value.trivia.indent)
if not m:
value.trivia.indent = indent
else:
value.trivia.indent = m.group(1) + indent + m.group(2)
class Table(AbstractTable):
"""
A table literal.
"""
def __init__(
self,
value: "container.Container",
trivia: Trivia,
is_aot_element: bool,
is_super_table: bool = False,
name: Optional[str] = None,
display_name: Optional[str] = None,
) -> None:
super().__init__(value, trivia)
self.name = name
self.display_name = display_name
self._is_aot_element = is_aot_element
self._is_super_table = is_super_table
@property
def discriminant(self) -> int:
return 9
def __copy__(self) -> "Table":
return type(self)(
self._value.copy(),
self._trivia.copy(),
self._is_aot_element,
self._is_super_table,
self.name,
self.display_name,
)
def append(self, key, _item):
"""
Appends a (key, item) to the table.
"""
if not isinstance(_item, Item):
_item = item(_item)
self._value.append(key, _item)
if isinstance(key, Key):
key = next(iter(key)).key
_item = self._value[key]
if key is not None:
dict.__setitem__(self, key, _item)
m = re.match(r"(?s)^[^ ]*([ ]+).*$", self._trivia.indent)
if not m:
return self
indent = m.group(1)
if not isinstance(_item, Whitespace):
m = re.match("(?s)^([^ ]*)(.*)$", _item.trivia.indent)
if not m:
_item.trivia.indent = indent
else:
_item.trivia.indent = m.group(1) + indent + m.group(2)
return self
def raw_append(self, key: Union[Key, str], _item: Any) -> "Table":
"""Similar to :meth:`append` but does not copy indentation."""
if not isinstance(_item, Item):
_item = item(_item)
self._value.append(key, _item)
if isinstance(key, Key):
key = next(iter(key)).key
_item = self._value[key]
if key is not None:
dict.__setitem__(self, key, _item)
return self
def is_aot_element(self) -> bool:
"""True if the table is the direct child of an AOT element."""
return self._is_aot_element
def is_super_table(self) -> bool:
"""A super table is the intermediate parent of a nested table as in [a.b.c].
If true, it won't appear in the TOML representation."""
return self._is_super_table
def as_string(self) -> str:
return self._value.as_string()
# Helpers
def indent(self, indent: int) -> "Table":
"""Indent the table with given number of spaces."""
super().indent(indent)
m = re.match("(?s)^[^ ]*([ ]+).*$", self._trivia.indent)
if not m:
indent_str = ""
else:
indent_str = m.group(1)
for _, item in self._value.body:
if not isinstance(item, Whitespace):
item.trivia.indent = indent_str + item.trivia.indent
return self
def invalidate_display_name(self):
self.display_name = None
for child in self.values():
if hasattr(child, "invalidate_display_name"):
child.invalidate_display_name()
def _getstate(self, protocol: int = 3) -> tuple:
return (
self._value,
self._trivia,
self._is_aot_element,
self._is_super_table,
self.name,
self.display_name,
)
class InlineTable(AbstractTable):
"""
An inline table literal.
"""
def __init__(
self, value: "container.Container", trivia: Trivia, new: bool = False
) -> None:
super().__init__(value, trivia)
self._new = new
@property
def discriminant(self) -> int:
return 10
def append(self, key, _item):
"""
Appends a (key, item) to the table.
"""
if not isinstance(_item, Item):
_item = item(_item)
if not isinstance(_item, (Whitespace, Comment)):
if not _item.trivia.indent and len(self._value) > 0 and not self._new:
_item.trivia.indent = " "
if _item.trivia.comment:
_item.trivia.comment = ""
self._value.append(key, _item)
if isinstance(key, Key):
key = key.key
if key is not None:
dict.__setitem__(self, key, _item)
return self
def as_string(self) -> str:
buf = "{"
for i, (k, v) in enumerate(self._value.body):
if k is None:
if i == len(self._value.body) - 1:
if self._new:
buf = buf.rstrip(", ")
else:
buf = buf.rstrip(",")
buf += v.as_string()
continue
buf += "{}{}{}{}{}{}".format(
v.trivia.indent,
k.as_string() + ("." if k.is_dotted() else ""),
k.sep,
v.as_string(),
v.trivia.comment,
v.trivia.trail.replace("\n", ""),
)
if i != len(self._value.body) - 1:
buf += ","
if self._new:
buf += " "
buf += "}"
return buf
def __setitem__(self, key: Union[Key, str], value: Any) -> None:
if hasattr(value, "trivia") and value.trivia.comment:
value.trivia.comment = ""
super().__setitem__(key, value)
def __copy__(self) -> "InlineTable":
return type(self)(self._value.copy(), self._trivia.copy(), self._new)
def _getstate(self, protocol: int = 3) -> tuple:
return (self._value, self._trivia)
class String(str, Item):
"""
A string literal.
"""
def __new__(cls, t, value, original, trivia):
return super().__new__(cls, value)
def __init__(self, t: StringType, _: str, original: str, trivia: Trivia) -> None:
super().__init__(trivia)
self._t = t
self._original = original
@property
def discriminant(self) -> int:
return 11
@property
def value(self) -> str:
return self
def as_string(self) -> str:
return f"{self._t.value}{decode(self._original)}{self._t.value}"
def __add__(self, other):
result = super().__add__(other)
return self._new(result)
def __sub__(self, other):
result = super().__sub__(other)
return self._new(result)
def _new(self, result):
return String(self._t, result, result, self._trivia)
def _getstate(self, protocol=3):
return self._t, str(self), self._original, self._trivia
class AoT(Item, _CustomList):
"""
An array of table literal
"""
def __init__(
self, body: List[Table], name: Optional[str] = None, parsed: bool = False
) -> None:
self.name = name
self._body: List[Table] = []
self._parsed = parsed
super().__init__(Trivia(trail=""))
for table in body:
self.append(table)
@property
def body(self) -> List[Table]:
return self._body
@property
def discriminant(self) -> int:
return 12
@property
def value(self) -> List[Dict[Any, Any]]:
return [v.value for v in self._body]
def __len__(self) -> int:
return len(self._body)
@overload
def __getitem__(self, key: slice) -> List[Table]:
...
@overload
def __getitem__(self, key: int) -> Table:
...
def __getitem__(self, key):
return self._body[key]
def __setitem__(self, key: Union[slice, int], value: Any) -> None:
raise NotImplementedError
def __delitem__(self, key: Union[slice, int]) -> None:
del self._body[key]
list.__delitem__(self, key)
def insert(self, index: int, value: dict) -> None:
value = item(value, _parent=self)
if not isinstance(value, Table):
raise ValueError(f"Unsupported insert value type: {type(value)}")
length = len(self)
if index < 0:
index += length
if index < 0:
index = 0
elif index >= length:
index = length
m = re.match("(?s)^[^ ]*([ ]+).*$", self._trivia.indent)
if m:
indent = m.group(1)
m = re.match("(?s)^([^ ]*)(.*)$", value.trivia.indent)
if not m:
value.trivia.indent = indent
else:
value.trivia.indent = m.group(1) + indent + m.group(2)
prev_table = self._body[index - 1] if 0 < index and length else None
next_table = self._body[index + 1] if index < length - 1 else None
if not self._parsed:
if prev_table and "\n" not in value.trivia.indent:
value.trivia.indent = "\n" + value.trivia.indent
if next_table and "\n" not in next_table.trivia.indent:
next_table.trivia.indent = "\n" + next_table.trivia.indent
self._body.insert(index, value)
list.insert(self, index, value)
def invalidate_display_name(self):
"""Call ``invalidate_display_name`` on the contained tables"""
for child in self:
if hasattr(child, "invalidate_display_name"):
child.invalidate_display_name()
def as_string(self) -> str:
b = ""
for table in self._body:
b += table.as_string()
return b
def __repr__(self) -> str:
return f""
def _getstate(self, protocol=3):
return self._body, self.name, self._parsed
class Null(Item):
"""
A null item.
"""
def __init__(self) -> None:
pass
@property
def discriminant(self) -> int:
return -1
@property
def value(self) -> None:
return None
def as_string(self) -> str:
return ""
def _getstate(self, protocol=3):
return tuple()
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/parser.py 0000644 0000000 0000000 00000110112 00000000000 013421 0 ustar 00 import re
import string
from typing import List
from typing import Optional
from typing import Tuple
from typing import Type
from typing import Union
from ._compat import decode
from ._utils import RFC_3339_LOOSE
from ._utils import _escaped
from ._utils import parse_rfc3339
from .container import Container
from .exceptions import EmptyKeyError
from .exceptions import EmptyTableNameError
from .exceptions import InternalParserError
from .exceptions import InvalidCharInStringError
from .exceptions import InvalidControlChar
from .exceptions import InvalidDateError
from .exceptions import InvalidDateTimeError
from .exceptions import InvalidNumberError
from .exceptions import InvalidTimeError
from .exceptions import InvalidUnicodeValueError
from .exceptions import ParseError
from .exceptions import UnexpectedCharError
from .exceptions import UnexpectedEofError
from .items import AoT
from .items import Array
from .items import Bool
from .items import BoolType
from .items import Comment
from .items import Date
from .items import DateTime
from .items import Float
from .items import InlineTable
from .items import Integer
from .items import Item
from .items import Key
from .items import KeyType
from .items import Null
from .items import SingleKey
from .items import String
from .items import StringType
from .items import Table
from .items import Time
from .items import Trivia
from .items import Whitespace
from .source import Source
from .toml_char import TOMLChar
from .toml_document import TOMLDocument
CTRL_I = 0x09 # Tab
CTRL_J = 0x0A # Line feed
CTRL_M = 0x0D # Carriage return
CTRL_CHAR_LIMIT = 0x1F
CHR_DEL = 0x7F
class Parser:
"""
Parser for TOML documents.
"""
def __init__(self, string: str) -> None:
# Input to parse
self._src = Source(decode(string))
self._aot_stack: List[Key] = []
@property
def _state(self):
return self._src.state
@property
def _idx(self):
return self._src.idx
@property
def _current(self):
return self._src.current
@property
def _marker(self):
return self._src.marker
def extract(self) -> str:
"""
Extracts the value between marker and index
"""
return self._src.extract()
def inc(self, exception: Optional[Type[ParseError]] = None) -> bool:
"""
Increments the parser if the end of the input has not been reached.
Returns whether or not it was able to advance.
"""
return self._src.inc(exception=exception)
def inc_n(self, n: int, exception: Optional[Type[ParseError]] = None) -> bool:
"""
Increments the parser by n characters
if the end of the input has not been reached.
"""
return self._src.inc_n(n=n, exception=exception)
def consume(self, chars, min=0, max=-1):
"""
Consume chars until min/max is satisfied is valid.
"""
return self._src.consume(chars=chars, min=min, max=max)
def end(self) -> bool:
"""
Returns True if the parser has reached the end of the input.
"""
return self._src.end()
def mark(self) -> None:
"""
Sets the marker to the index's current position
"""
self._src.mark()
def parse_error(self, exception=ParseError, *args, **kwargs):
"""
Creates a generic "parse error" at the current position.
"""
return self._src.parse_error(exception, *args, **kwargs)
def parse(self) -> TOMLDocument:
body = TOMLDocument(True)
# Take all keyvals outside of tables/AoT's.
while not self.end():
# Break out if a table is found
if self._current == "[":
break
# Otherwise, take and append one KV
item = self._parse_item()
if not item:
break
key, value = item
if (key is not None and key.is_multi()) or not self._merge_ws(value, body):
# We actually have a table
body.append(key, value)
self.mark()
while not self.end():
key, value = self._parse_table()
if isinstance(value, Table) and value.is_aot_element():
# This is just the first table in an AoT. Parse the rest of the array
# along with it.
value = self._parse_aot(value, key)
body.append(key, value)
body.parsing(False)
return body
def _merge_ws(self, item: Item, container: Container) -> bool:
"""
Merges the given Item with the last one currently in the given Container if
both are whitespace items.
Returns True if the items were merged.
"""
last = container.last_item()
if not last:
return False
if not isinstance(item, Whitespace) or not isinstance(last, Whitespace):
return False
start = self._idx - (len(last.s) + len(item.s))
container.body[-1] = (
container.body[-1][0],
Whitespace(self._src[start : self._idx]),
)
return True
def _is_child(self, parent: Key, child: Key) -> bool:
"""
Returns whether a key is strictly a child of another key.
AoT siblings are not considered children of one another.
"""
parent_parts = tuple(parent)
child_parts = tuple(child)
if parent_parts == child_parts:
return False
return parent_parts == child_parts[: len(parent_parts)]
def _parse_item(self) -> Optional[Tuple[Optional[Key], Item]]:
"""
Attempts to parse the next item and returns it, along with its key
if the item is value-like.
"""
self.mark()
with self._state as state:
while True:
c = self._current
if c == "\n":
# Found a newline; Return all whitespace found up to this point.
self.inc()
return None, Whitespace(self.extract())
elif c in " \t\r":
# Skip whitespace.
if not self.inc():
return None, Whitespace(self.extract())
elif c == "#":
# Found a comment, parse it
indent = self.extract()
cws, comment, trail = self._parse_comment_trail()
return None, Comment(Trivia(indent, cws, comment, trail))
elif c == "[":
# Found a table, delegate to the calling function.
return
else:
# Begining of a KV pair.
# Return to beginning of whitespace so it gets included
# as indentation for the KV about to be parsed.
state.restore = True
break
return self._parse_key_value(True)
def _parse_comment_trail(self, parse_trail: bool = True) -> Tuple[str, str, str]:
"""
Returns (comment_ws, comment, trail)
If there is no comment, comment_ws and comment will
simply be empty.
"""
if self.end():
return "", "", ""
comment = ""
comment_ws = ""
self.mark()
while True:
c = self._current
if c == "\n":
break
elif c == "#":
comment_ws = self.extract()
self.mark()
self.inc() # Skip #
# The comment itself
while not self.end() and not self._current.is_nl():
code = ord(self._current)
if code == CHR_DEL or code <= CTRL_CHAR_LIMIT and code != CTRL_I:
raise self.parse_error(InvalidControlChar, code, "comments")
if not self.inc():
break
comment = self.extract()
self.mark()
break
elif c in " \t\r":
self.inc()
else:
raise self.parse_error(UnexpectedCharError, c)
if self.end():
break
trail = ""
if parse_trail:
while self._current.is_spaces() and self.inc():
pass
if self._current == "\r":
self.inc()
if self._current == "\n":
self.inc()
if self._idx != self._marker or self._current.is_ws():
trail = self.extract()
return comment_ws, comment, trail
def _parse_key_value(self, parse_comment: bool = False) -> Tuple[Key, Item]:
# Leading indent
self.mark()
while self._current.is_spaces() and self.inc():
pass
indent = self.extract()
# Key
key = self._parse_key()
self.mark()
found_equals = self._current == "="
while self._current.is_kv_sep() and self.inc():
if self._current == "=":
if found_equals:
raise self.parse_error(UnexpectedCharError, "=")
else:
found_equals = True
if not found_equals:
raise self.parse_error(UnexpectedCharError, self._current)
if not key.sep:
key.sep = self.extract()
else:
key.sep += self.extract()
# Value
val = self._parse_value()
# Comment
if parse_comment:
cws, comment, trail = self._parse_comment_trail()
meta = val.trivia
if not meta.comment_ws:
meta.comment_ws = cws
meta.comment = comment
meta.trail = trail
else:
val.trivia.trail = ""
val.trivia.indent = indent
return key, val
def _parse_key(self) -> Key:
"""
Parses a Key at the current position;
WS before the key must be exhausted first at the callsite.
"""
self.mark()
while self._current.is_spaces() and self.inc():
# Skip any leading whitespace
pass
if self._current in "\"'":
return self._parse_quoted_key()
else:
return self._parse_bare_key()
def _parse_quoted_key(self) -> Key:
"""
Parses a key enclosed in either single or double quotes.
"""
# Extract the leading whitespace
original = self.extract()
quote_style = self._current
key_type = next((t for t in KeyType if t.value == quote_style), None)
if key_type is None:
raise RuntimeError("Should not have entered _parse_quoted_key()")
key_str = self._parse_string(
StringType.SLB if key_type == KeyType.Basic else StringType.SLL
)
if key_str._t.is_multiline():
raise self.parse_error(UnexpectedCharError, key_str._t.value)
original += key_str.as_string()
self.mark()
while self._current.is_spaces() and self.inc():
pass
original += self.extract()
key = SingleKey(str(key_str), t=key_type, sep="", original=original)
if self._current == ".":
self.inc()
key = key.concat(self._parse_key())
return key
def _parse_bare_key(self) -> Key:
"""
Parses a bare key.
"""
while (
self._current.is_bare_key_char() or self._current.is_spaces()
) and self.inc():
pass
original = self.extract()
key = original.strip()
if not key:
# Empty key
raise self.parse_error(EmptyKeyError)
if " " in key:
# Bare key with spaces in it
raise self.parse_error(ParseError, f'Invalid key "{key}"')
key = SingleKey(key, KeyType.Bare, "", original)
if self._current == ".":
self.inc()
key = key.concat(self._parse_key())
return key
def _parse_value(self) -> Item:
"""
Attempts to parse a value at the current position.
"""
self.mark()
c = self._current
trivia = Trivia()
if c == StringType.SLB.value:
return self._parse_basic_string()
elif c == StringType.SLL.value:
return self._parse_literal_string()
elif c == BoolType.TRUE.value[0]:
return self._parse_true()
elif c == BoolType.FALSE.value[0]:
return self._parse_false()
elif c == "[":
return self._parse_array()
elif c == "{":
return self._parse_inline_table()
elif c in "+-" or self._peek(4) in {
"+inf",
"-inf",
"inf",
"+nan",
"-nan",
"nan",
}:
# Number
while self._current not in " \t\n\r#,]}" and self.inc():
pass
raw = self.extract()
item = self._parse_number(raw, trivia)
if item is not None:
return item
raise self.parse_error(InvalidNumberError)
elif c in string.digits:
# Integer, Float, Date, Time or DateTime
while self._current not in " \t\n\r#,]}" and self.inc():
pass
raw = self.extract()
m = RFC_3339_LOOSE.match(raw)
if m:
if m.group(1) and m.group(5):
# datetime
try:
dt = parse_rfc3339(raw)
return DateTime(
dt.year,
dt.month,
dt.day,
dt.hour,
dt.minute,
dt.second,
dt.microsecond,
dt.tzinfo,
trivia,
raw,
)
except ValueError:
raise self.parse_error(InvalidDateTimeError)
if m.group(1):
try:
dt = parse_rfc3339(raw)
date = Date(dt.year, dt.month, dt.day, trivia, raw)
self.mark()
while self._current not in "\t\n\r#,]}" and self.inc():
pass
time_raw = self.extract()
if not time_raw.strip():
trivia.comment_ws = time_raw
return date
dt = parse_rfc3339(raw + time_raw)
return DateTime(
dt.year,
dt.month,
dt.day,
dt.hour,
dt.minute,
dt.second,
dt.microsecond,
dt.tzinfo,
trivia,
raw + time_raw,
)
except ValueError:
raise self.parse_error(InvalidDateError)
if m.group(5):
try:
t = parse_rfc3339(raw)
return Time(
t.hour,
t.minute,
t.second,
t.microsecond,
t.tzinfo,
trivia,
raw,
)
except ValueError:
raise self.parse_error(InvalidTimeError)
item = self._parse_number(raw, trivia)
if item is not None:
return item
raise self.parse_error(InvalidNumberError)
else:
raise self.parse_error(UnexpectedCharError, c)
def _parse_true(self):
return self._parse_bool(BoolType.TRUE)
def _parse_false(self):
return self._parse_bool(BoolType.FALSE)
def _parse_bool(self, style: BoolType) -> Bool:
with self._state:
style = BoolType(style)
# only keep parsing for bool if the characters match the style
# try consuming rest of chars in style
for c in style:
self.consume(c, min=1, max=1)
return Bool(style, Trivia())
def _parse_array(self) -> Array:
# Consume opening bracket, EOF here is an issue (middle of array)
self.inc(exception=UnexpectedEofError)
elems: List[Item] = []
prev_value = None
while True:
# consume whitespace
mark = self._idx
self.consume(TOMLChar.SPACES + TOMLChar.NL)
indent = self._src[mark : self._idx]
newline = set(TOMLChar.NL) & set(indent)
if newline:
elems.append(Whitespace(indent))
continue
# consume comment
if self._current == "#":
cws, comment, trail = self._parse_comment_trail(parse_trail=False)
elems.append(Comment(Trivia(indent, cws, comment, trail)))
continue
# consume indent
if indent:
elems.append(Whitespace(indent))
continue
# consume value
if not prev_value:
try:
elems.append(self._parse_value())
prev_value = True
continue
except UnexpectedCharError:
pass
# consume comma
if prev_value and self._current == ",":
self.inc(exception=UnexpectedEofError)
elems.append(Whitespace(","))
prev_value = False
continue
# consume closing bracket
if self._current == "]":
# consume closing bracket, EOF here doesn't matter
self.inc()
break
raise self.parse_error(UnexpectedCharError, self._current)
try:
res = Array(elems, Trivia())
except ValueError:
pass
else:
return res
def _parse_inline_table(self) -> InlineTable:
# consume opening bracket, EOF here is an issue (middle of array)
self.inc(exception=UnexpectedEofError)
elems = Container(True)
trailing_comma = None
while True:
# consume leading whitespace
mark = self._idx
self.consume(TOMLChar.SPACES)
raw = self._src[mark : self._idx]
if raw:
elems.add(Whitespace(raw))
if not trailing_comma:
# None: empty inline table
# False: previous key-value pair was not followed by a comma
if self._current == "}":
# consume closing bracket, EOF here doesn't matter
self.inc()
break
if (
trailing_comma is False
or trailing_comma is None
and self._current == ","
):
# Either the previous key-value pair was not followed by a comma
# or the table has an unexpected leading comma.
raise self.parse_error(UnexpectedCharError, self._current)
else:
# True: previous key-value pair was followed by a comma
if self._current == "}" or self._current == ",":
raise self.parse_error(UnexpectedCharError, self._current)
key, val = self._parse_key_value(False)
elems.add(key, val)
# consume trailing whitespace
mark = self._idx
self.consume(TOMLChar.SPACES)
raw = self._src[mark : self._idx]
if raw:
elems.add(Whitespace(raw))
# consume trailing comma
trailing_comma = self._current == ","
if trailing_comma:
# consume closing bracket, EOF here is an issue (middle of inline table)
self.inc(exception=UnexpectedEofError)
return InlineTable(elems, Trivia())
def _parse_number(self, raw: str, trivia: Trivia) -> Optional[Item]:
# Leading zeros are not allowed
sign = ""
if raw.startswith(("+", "-")):
sign = raw[0]
raw = raw[1:]
if len(raw) > 1 and (
raw.startswith("0")
and not raw.startswith(("0.", "0o", "0x", "0b", "0e"))
or sign
and raw.startswith(".")
):
return
if raw.startswith(("0o", "0x", "0b")) and sign:
return
digits = "[0-9]"
base = 10
if raw.startswith("0b"):
digits = "[01]"
base = 2
elif raw.startswith("0o"):
digits = "[0-7]"
base = 8
elif raw.startswith("0x"):
digits = "[0-9a-f]"
base = 16
# Underscores should be surrounded by digits
clean = re.sub(f"(?i)(?<={digits})_(?={digits})", "", raw).lower()
if "_" in clean:
return
if (
clean.endswith(".")
or not clean.startswith("0x")
and clean.split("e", 1)[0].endswith(".")
):
return
try:
return Integer(int(sign + clean, base), trivia, sign + raw)
except ValueError:
try:
return Float(float(sign + clean), trivia, sign + raw)
except ValueError:
return
def _parse_literal_string(self) -> String:
with self._state:
return self._parse_string(StringType.SLL)
def _parse_basic_string(self) -> String:
with self._state:
return self._parse_string(StringType.SLB)
def _parse_escaped_char(self, multiline):
if multiline and self._current.is_ws():
# When the last non-whitespace character on a line is
# a \, it will be trimmed along with all whitespace
# (including newlines) up to the next non-whitespace
# character or closing delimiter.
# """\
# hello \
# world"""
tmp = ""
while self._current.is_ws():
tmp += self._current
# consume the whitespace, EOF here is an issue
# (middle of string)
self.inc(exception=UnexpectedEofError)
continue
# the escape followed by whitespace must have a newline
# before any other chars
if "\n" not in tmp:
raise self.parse_error(InvalidCharInStringError, self._current)
return ""
if self._current in _escaped:
c = _escaped[self._current]
# consume this char, EOF here is an issue (middle of string)
self.inc(exception=UnexpectedEofError)
return c
if self._current in {"u", "U"}:
# this needs to be a unicode
u, ue = self._peek_unicode(self._current == "U")
if u is not None:
# consume the U char and the unicode value
self.inc_n(len(ue) + 1)
return u
raise self.parse_error(InvalidUnicodeValueError)
raise self.parse_error(InvalidCharInStringError, self._current)
def _parse_string(self, delim: StringType) -> String:
# only keep parsing for string if the current character matches the delim
if self._current != delim.unit:
raise self.parse_error(
InternalParserError,
f"Invalid character for string type {delim}",
)
# consume the opening/first delim, EOF here is an issue
# (middle of string or middle of delim)
self.inc(exception=UnexpectedEofError)
if self._current == delim.unit:
# consume the closing/second delim, we do not care if EOF occurs as
# that would simply imply an empty single line string
if not self.inc() or self._current != delim.unit:
# Empty string
return String(delim, "", "", Trivia())
# consume the third delim, EOF here is an issue (middle of string)
self.inc(exception=UnexpectedEofError)
delim = delim.toggle() # convert delim to multi delim
self.mark() # to extract the original string with whitespace and all
value = ""
# A newline immediately following the opening delimiter will be trimmed.
if delim.is_multiline() and self._current == "\n":
# consume the newline, EOF here is an issue (middle of string)
self.inc(exception=UnexpectedEofError)
escaped = False # whether the previous key was ESCAPE
while True:
code = ord(self._current)
if (
delim.is_singleline()
and not escaped
and (code == CHR_DEL or code <= CTRL_CHAR_LIMIT and code != CTRL_I)
):
raise self.parse_error(InvalidControlChar, code, "strings")
elif (
delim.is_multiline()
and not escaped
and (
code == CHR_DEL
or code <= CTRL_CHAR_LIMIT
and code not in [CTRL_I, CTRL_J, CTRL_M]
)
):
raise self.parse_error(InvalidControlChar, code, "strings")
elif not escaped and self._current == delim.unit:
# try to process current as a closing delim
original = self.extract()
close = ""
if delim.is_multiline():
# Consume the delimiters to see if we are at the end of the string
close = ""
while self._current == delim.unit:
close += self._current
self.inc()
if len(close) < 3:
# Not a triple quote, leave in result as-is.
# Adding back the characters we already consumed
value += close
continue
if len(close) == 3:
# We are at the end of the string
return String(delim, value, original, Trivia())
if len(close) >= 6:
raise self.parse_error(InvalidCharInStringError, self._current)
value += close[:-3]
original += close[:-3]
return String(delim, value, original, Trivia())
else:
# consume the closing delim, we do not care if EOF occurs as
# that would simply imply the end of self._src
self.inc()
return String(delim, value, original, Trivia())
elif delim.is_basic() and escaped:
# attempt to parse the current char as an escaped value, an exception
# is raised if this fails
value += self._parse_escaped_char(delim.is_multiline())
# no longer escaped
escaped = False
elif delim.is_basic() and self._current == "\\":
# the next char is being escaped
escaped = True
# consume this char, EOF here is an issue (middle of string)
self.inc(exception=UnexpectedEofError)
else:
# this is either a literal string where we keep everything as is,
# or this is not a special escaped char in a basic string
value += self._current
# consume this char, EOF here is an issue (middle of string)
self.inc(exception=UnexpectedEofError)
def _parse_table(
self, parent_name: Optional[Key] = None, parent: Optional[Table] = None
) -> Tuple[Key, Union[Table, AoT]]:
"""
Parses a table element.
"""
if self._current != "[":
raise self.parse_error(
InternalParserError, "_parse_table() called on non-bracket character."
)
indent = self.extract()
self.inc() # Skip opening bracket
if self.end():
raise self.parse_error(UnexpectedEofError)
is_aot = False
if self._current == "[":
if not self.inc():
raise self.parse_error(UnexpectedEofError)
is_aot = True
try:
key = self._parse_key()
except EmptyKeyError:
raise self.parse_error(EmptyTableNameError) from None
if self.end():
raise self.parse_error(UnexpectedEofError)
elif self._current != "]":
raise self.parse_error(UnexpectedCharError, self._current)
elif not key.key.strip():
raise self.parse_error(EmptyTableNameError)
key.sep = ""
full_key = key
name_parts = tuple(key)
if any(" " in part.key.strip() and part.is_bare() for part in name_parts):
raise self.parse_error(
ParseError, f'Invalid table name "{full_key.as_string()}"'
)
missing_table = False
if parent_name:
parent_name_parts = tuple(parent_name)
else:
parent_name_parts = tuple()
if len(name_parts) > len(parent_name_parts) + 1:
missing_table = True
name_parts = name_parts[len(parent_name_parts) :]
values = Container(True)
self.inc() # Skip closing bracket
if is_aot:
# TODO: Verify close bracket
self.inc()
cws, comment, trail = self._parse_comment_trail()
result = Null()
table = Table(
values,
Trivia(indent, cws, comment, trail),
is_aot,
name=name_parts[0].key if name_parts else key.key,
display_name=full_key.as_string(),
)
if len(name_parts) > 1:
if missing_table:
# Missing super table
# i.e. a table initialized like this: [foo.bar]
# without initializing [foo]
#
# So we have to create the parent tables
table = Table(
Container(True),
Trivia(indent, cws, comment, trail),
is_aot and name_parts[0] in self._aot_stack,
is_super_table=True,
name=name_parts[0].key,
)
result = table
key = name_parts[0]
for i, _name in enumerate(name_parts[1:]):
if _name in table:
child = table[_name]
else:
child = Table(
Container(True),
Trivia(indent, cws, comment, trail),
is_aot and i == len(name_parts) - 2,
is_super_table=i < len(name_parts) - 2,
name=_name.key,
display_name=full_key.as_string()
if i == len(name_parts) - 2
else None,
)
if is_aot and i == len(name_parts) - 2:
table.raw_append(_name, AoT([child], name=table.name, parsed=True))
else:
table.raw_append(_name, child)
table = child
values = table.value
else:
if name_parts:
key = name_parts[0]
while not self.end():
item = self._parse_item()
if item:
_key, item = item
if not self._merge_ws(item, values):
table.raw_append(_key, item)
else:
if self._current == "[":
_, key_next = self._peek_table()
if self._is_child(full_key, key_next):
key_next, table_next = self._parse_table(full_key, table)
table.raw_append(key_next, table_next)
# Picking up any sibling
while not self.end():
_, key_next = self._peek_table()
if not self._is_child(full_key, key_next):
break
key_next, table_next = self._parse_table(full_key, table)
table.raw_append(key_next, table_next)
break
else:
raise self.parse_error(
InternalParserError,
"_parse_item() returned None on a non-bracket character.",
)
if isinstance(result, Null):
result = table
if is_aot and (not self._aot_stack or full_key != self._aot_stack[-1]):
result = self._parse_aot(result, full_key)
return key, result
def _peek_table(self) -> Tuple[bool, Key]:
"""
Peeks ahead non-intrusively by cloning then restoring the
initial state of the parser.
Returns the name of the table about to be parsed,
as well as whether it is part of an AoT.
"""
# we always want to restore after exiting this scope
with self._state(save_marker=True, restore=True):
if self._current != "[":
raise self.parse_error(
InternalParserError,
"_peek_table() entered on non-bracket character",
)
# AoT
self.inc()
is_aot = False
if self._current == "[":
self.inc()
is_aot = True
try:
return is_aot, self._parse_key()
except EmptyKeyError:
raise self.parse_error(EmptyTableNameError) from None
def _parse_aot(self, first: Table, name_first: Key) -> AoT:
"""
Parses all siblings of the provided table first and bundles them into
an AoT.
"""
payload = [first]
self._aot_stack.append(name_first)
while not self.end():
is_aot_next, name_next = self._peek_table()
if is_aot_next and name_next == name_first:
_, table = self._parse_table(name_first)
payload.append(table)
else:
break
self._aot_stack.pop()
return AoT(payload, parsed=True)
def _peek(self, n: int) -> str:
"""
Peeks ahead n characters.
n is the max number of characters that will be peeked.
"""
# we always want to restore after exiting this scope
with self._state(restore=True):
buf = ""
for _ in range(n):
if self._current not in " \t\n\r#,]}" + self._src.EOF:
buf += self._current
self.inc()
continue
break
return buf
def _peek_unicode(self, is_long: bool) -> Tuple[Optional[str], Optional[str]]:
"""
Peeks ahead non-intrusively by cloning then restoring the
initial state of the parser.
Returns the unicode value is it's a valid one else None.
"""
# we always want to restore after exiting this scope
with self._state(save_marker=True, restore=True):
if self._current not in {"u", "U"}:
raise self.parse_error(
InternalParserError, "_peek_unicode() entered on non-unicode value"
)
self.inc() # Dropping prefix
self.mark()
if is_long:
chars = 8
else:
chars = 4
if not self.inc_n(chars):
value, extracted = None, None
else:
extracted = self.extract()
if extracted[0].lower() == "d" and extracted[1].strip("01234567"):
return None, None
try:
value = chr(int(extracted, 16))
except (ValueError, OverflowError):
value = None
return value, extracted
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/py.typed 0000644 0000000 0000000 00000000000 00000000000 013244 0 ustar 00 ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/source.py 0000644 0000000 0000000 00000011470 00000000000 013434 0 ustar 00 from copy import copy
from typing import Any
from typing import Optional
from typing import Tuple
from typing import Type
from .exceptions import ParseError
from .exceptions import UnexpectedCharError
from .toml_char import TOMLChar
class _State:
def __init__(
self,
source: "Source",
save_marker: Optional[bool] = False,
restore: Optional[bool] = False,
) -> None:
self._source = source
self._save_marker = save_marker
self.restore = restore
def __enter__(self) -> "_State":
# Entering this context manager - save the state
self._chars = copy(self._source._chars)
self._idx = self._source._idx
self._current = self._source._current
self._marker = self._source._marker
return self
def __exit__(self, exception_type, exception_val, trace):
# Exiting this context manager - restore the prior state
if self.restore or exception_type:
self._source._chars = self._chars
self._source._idx = self._idx
self._source._current = self._current
if self._save_marker:
self._source._marker = self._marker
class _StateHandler:
"""
State preserver for the Parser.
"""
def __init__(self, source: "Source") -> None:
self._source = source
self._states = []
def __call__(self, *args, **kwargs):
return _State(self._source, *args, **kwargs)
def __enter__(self) -> None:
state = self()
self._states.append(state)
return state.__enter__()
def __exit__(self, exception_type, exception_val, trace):
state = self._states.pop()
return state.__exit__(exception_type, exception_val, trace)
class Source(str):
EOF = TOMLChar("\0")
def __init__(self, _: str) -> None:
super().__init__()
# Collection of TOMLChars
self._chars = iter([(i, TOMLChar(c)) for i, c in enumerate(self)])
self._idx = 0
self._marker = 0
self._current = TOMLChar("")
self._state = _StateHandler(self)
self.inc()
def reset(self):
# initialize both idx and current
self.inc()
# reset marker
self.mark()
@property
def state(self) -> _StateHandler:
return self._state
@property
def idx(self) -> int:
return self._idx
@property
def current(self) -> TOMLChar:
return self._current
@property
def marker(self) -> int:
return self._marker
def extract(self) -> str:
"""
Extracts the value between marker and index
"""
return self[self._marker : self._idx]
def inc(self, exception: Optional[Type[ParseError]] = None) -> bool:
"""
Increments the parser if the end of the input has not been reached.
Returns whether or not it was able to advance.
"""
try:
self._idx, self._current = next(self._chars)
return True
except StopIteration:
self._idx = len(self)
self._current = self.EOF
if exception:
raise self.parse_error(exception)
return False
def inc_n(self, n: int, exception: Optional[Type[ParseError]] = None) -> bool:
"""
Increments the parser by n characters
if the end of the input has not been reached.
"""
for _ in range(n):
if not self.inc(exception=exception):
return False
return True
def consume(self, chars, min=0, max=-1):
"""
Consume chars until min/max is satisfied is valid.
"""
while self.current in chars and max != 0:
min -= 1
max -= 1
if not self.inc():
break
# failed to consume minimum number of characters
if min > 0:
raise self.parse_error(UnexpectedCharError, self.current)
def end(self) -> bool:
"""
Returns True if the parser has reached the end of the input.
"""
return self._current is self.EOF
def mark(self) -> None:
"""
Sets the marker to the index's current position
"""
self._marker = self._idx
def parse_error(
self,
exception: Type[ParseError] = ParseError,
*args: Any,
**kwargs: Any,
) -> ParseError:
"""
Creates a generic "parse error" at the current position.
"""
line, col = self._to_linecol()
return exception(line, col, *args, **kwargs)
def _to_linecol(self) -> Tuple[int, int]:
cur = 0
for i, line in enumerate(self.splitlines()):
if cur + len(line) + 1 > self.idx:
return (i + 1, self.idx - cur)
cur += len(line) + 1
return len(self.splitlines()), 0
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/toml_char.py 0000644 0000000 0000000 00000002732 00000000000 014105 0 ustar 00 import string
from functools import lru_cache
class TOMLChar(str):
def __init__(self, c):
super().__init__()
if len(self) > 1:
raise ValueError("A TOML character must be of length 1")
BARE = string.ascii_letters + string.digits + "-_"
KV = "= \t"
NUMBER = string.digits + "+-_.e"
SPACES = " \t"
NL = "\n\r"
WS = SPACES + NL
@lru_cache(maxsize=None)
def is_bare_key_char(self) -> bool:
"""
Whether the character is a valid bare key name or not.
"""
return self in self.BARE
@lru_cache(maxsize=None)
def is_kv_sep(self) -> bool:
"""
Whether the character is a valid key/value separator ot not.
"""
return self in self.KV
@lru_cache(maxsize=None)
def is_int_float_char(self) -> bool:
"""
Whether the character if a valid integer or float value character or not.
"""
return self in self.NUMBER
@lru_cache(maxsize=None)
def is_ws(self) -> bool:
"""
Whether the character is a whitespace character or not.
"""
return self in self.WS
@lru_cache(maxsize=None)
def is_nl(self) -> bool:
"""
Whether the character is a new line character or not.
"""
return self in self.NL
@lru_cache(maxsize=None)
def is_spaces(self) -> bool:
"""
Whether the character is a space or not
"""
return self in self.SPACES
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/toml_document.py 0000644 0000000 0000000 00000000147 00000000000 015004 0 ustar 00 from .container import Container
class TOMLDocument(Container):
"""
A TOML document.
"""
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319431.3935337
tomlkit-0.9.2/tomlkit/toml_file.py 0000644 0000000 0000000 00000001234 00000000000 014103 0 ustar 00 from .api import loads
from .toml_document import TOMLDocument
class TOMLFile:
"""
Represents a TOML file.
:param path: path to the TOML file
"""
def __init__(self, path: str) -> None:
self._path = path
def read(self) -> TOMLDocument:
"""Read the file content as a :class:`tomlkit.toml_document.TOMLDocument`."""
with open(self._path, encoding="utf-8", newline="") as f:
return loads(f.read())
def write(self, data: TOMLDocument) -> None:
"""Write the TOMLDocument to the file."""
with open(self._path, "w", encoding="utf-8", newline="") as f:
f.write(data.as_string())
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319446.7987695
tomlkit-0.9.2/setup.py 0000644 0000000 0000000 00000005016 00000000000 011610 0 ustar 00 # -*- coding: utf-8 -*-
from setuptools import setup
packages = \
['tomlkit']
package_data = \
{'': ['*']}
setup_kwargs = {
'name': 'tomlkit',
'version': '0.9.2',
'description': 'Style preserving TOML library',
'long_description': '[github_release]: https://img.shields.io/github/release/sdispater/tomlkit.svg?logo=github&logoColor=white\n[pypi_version]: https://img.shields.io/pypi/v/tomlkit.svg?logo=python&logoColor=white\n[python_versions]: https://img.shields.io/pypi/pyversions/tomlkit.svg?logo=python&logoColor=white\n[github_license]: https://img.shields.io/github/license/sdispater/tomlkit.svg?logo=github&logoColor=white\n[github_action]: https://github.com/sdispater/tomlkit/actions/workflows/tests.yml/badge.svg\n\n[![GitHub Release][github_release]](https://github.com/sdispater/tomlkit/releases/)\n[![PyPI Version][pypi_version]](https://pypi.org/project/tomlkit/)\n[![Python Versions][python_versions]](https://pypi.org/project/tomlkit/)\n[![License][github_license]](https://github.com/sdispater/tomlkit/blob/master/LICENSE)\n
\n[![Tests][github_action]](https://github.com/sdispater/tomlkit/actions/workflows/tests.yml)\n\n# TOML Kit - Style-preserving TOML library for Python\n\nTOML Kit is a **1.0.0-compliant** [TOML](https://toml.io/) library.\n\nIt includes a parser that preserves all comments, indentations, whitespace and internal element ordering,\nand makes them accessible and editable via an intuitive API.\n\nYou can also create new TOML documents from scratch using the provided helpers.\n\nPart of the implementation as been adapted, improved and fixed from [Molten](https://github.com/LeopoldArkham/Molten).\n\n## Usage\n\nSee the [documentation](docs/quickstart.rst) for more information.\n\n## Installation\n\nIf you are using [Poetry](https://poetry.eustace.io),\nadd `tomlkit` to your `pyproject.toml` file by using:\n\n```bash\npoetry add tomlkit\n```\n\nIf not, you can use `pip`:\n\n```bash\npip install tomlkit\n```\n\n## Running tests\n\nPlease clone the repo with submodules with the following command\n`git clone --recurse-submodules https://github.com/sdispater/tomlkit.git`.\nWe need the submodule - `toml-test` for running the tests.\n\nYou can run the tests with `poetry run pytest -q tests`\n',
'author': 'Sébastien Eustace',
'author_email': 'sebastien@eustace.io',
'maintainer': None,
'maintainer_email': None,
'url': 'https://github.com/sdispater/tomlkit',
'packages': packages,
'package_data': package_data,
'python_requires': '>=3.6,<4.0',
}
setup(**setup_kwargs)
././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1644319446.7995117
tomlkit-0.9.2/PKG-INFO 0000644 0000000 0000000 00000005141 00000000000 011172 0 ustar 00 Metadata-Version: 2.1
Name: tomlkit
Version: 0.9.2
Summary: Style preserving TOML library
Home-page: https://github.com/sdispater/tomlkit
License: MIT
Author: Sébastien Eustace
Author-email: sebastien@eustace.io
Requires-Python: >=3.6,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Project-URL: Repository, https://github.com/sdispater/tomlkit
Description-Content-Type: text/markdown
[github_release]: https://img.shields.io/github/release/sdispater/tomlkit.svg?logo=github&logoColor=white
[pypi_version]: https://img.shields.io/pypi/v/tomlkit.svg?logo=python&logoColor=white
[python_versions]: https://img.shields.io/pypi/pyversions/tomlkit.svg?logo=python&logoColor=white
[github_license]: https://img.shields.io/github/license/sdispater/tomlkit.svg?logo=github&logoColor=white
[github_action]: https://github.com/sdispater/tomlkit/actions/workflows/tests.yml/badge.svg
[![GitHub Release][github_release]](https://github.com/sdispater/tomlkit/releases/)
[![PyPI Version][pypi_version]](https://pypi.org/project/tomlkit/)
[![Python Versions][python_versions]](https://pypi.org/project/tomlkit/)
[![License][github_license]](https://github.com/sdispater/tomlkit/blob/master/LICENSE)
[![Tests][github_action]](https://github.com/sdispater/tomlkit/actions/workflows/tests.yml)
# TOML Kit - Style-preserving TOML library for Python
TOML Kit is a **1.0.0-compliant** [TOML](https://toml.io/) library.
It includes a parser that preserves all comments, indentations, whitespace and internal element ordering,
and makes them accessible and editable via an intuitive API.
You can also create new TOML documents from scratch using the provided helpers.
Part of the implementation as been adapted, improved and fixed from [Molten](https://github.com/LeopoldArkham/Molten).
## Usage
See the [documentation](docs/quickstart.rst) for more information.
## Installation
If you are using [Poetry](https://poetry.eustace.io),
add `tomlkit` to your `pyproject.toml` file by using:
```bash
poetry add tomlkit
```
If not, you can use `pip`:
```bash
pip install tomlkit
```
## Running tests
Please clone the repo with submodules with the following command
`git clone --recurse-submodules https://github.com/sdispater/tomlkit.git`.
We need the submodule - `toml-test` for running the tests.
You can run the tests with `poetry run pytest -q tests`