tavus-cli 0.5.0__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tavus_cli-0.6.0/.release-please-manifest.json +3 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/CHANGELOG.md +7 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/PKG-INFO +1 -1
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/packages/tavus/pyproject.toml +2 -2
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/packages/tavus-mcp/pyproject.toml +2 -2
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/pyproject.toml +1 -1
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/__init__.py +1 -1
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/server.py +9 -2
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/integration/test_mcp_server.py +17 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/uv.lock +2 -2
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/package-lock.json +2 -2
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/package.json +1 -1
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/src/tavus.ts +4 -3
- tavus_cli-0.6.0/workers/tavus-mcp/src/version.ts +1 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/test/tavus.test.ts +26 -0
- tavus_cli-0.5.0/.release-please-manifest.json +0 -3
- tavus_cli-0.5.0/workers/tavus-mcp/src/version.ts +0 -1
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.env.example +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.github/workflows/ci.yml +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.github/workflows/deploy-cloudflare-worker.yml +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.github/workflows/pr-reviews.yml +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.github/workflows/pypi-cli.yml +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.github/workflows/tail-cloudflare-worker.yml +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.github/workflows/validate-staging-deployment.yml +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/.gitignore +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/AGENTS.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/README.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/docs/gemini-enterprise/README.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/docs/gemini-enterprise/listing.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/docs/gemini-enterprise/test-queries.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/docs/usage-observability.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/packages/tavus/README.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/packages/tavus-mcp/README.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/release-please-config.json +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/scripts/__init__.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/scripts/check_release_versions.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/SKILL.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/agents/openai.yaml +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/references/build-and-verify.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/references/builder-workflow.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/references/chat-mode.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/references/examples.md +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/cli/__init__.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/cli/main.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/__init__.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/auth/__init__.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/auth/keyring_store.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/auth/oauth.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/auth/session.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/client/__init__.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/client/http.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/daily_transport.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/env.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/errors.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/pal_urls.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/patch.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/__init__.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/build_and_verify.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/capabilities.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/carrier_builder.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/knowledge.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/options.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/quickstart.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/scaffold_embed.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/templates.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/recipes/tool_reuse.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/schemas/__init__.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/schemas/file_manifest.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/schemas/guardrail.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/schemas/objective.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/schemas/pal.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/schemas/pronunciation.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/src/tavus_mcp/sdk/schemas/tool.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/conftest.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/integration/test_cli.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/integration/test_client.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/integration/test_oauth.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_auth.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_build_and_verify.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_builder.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_capabilities.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_daily_transport.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_env.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_guardrail_schema.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_objective_schema.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_pal_schema.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_patch.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_pronunciation_schema.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_release_versions.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_scaffold_embed.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_tool_reuse.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/tests/unit/test_tool_schema.py +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/.dev.vars.example +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/src/index.ts +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/src/oauth-grant.ts +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/src/oauth.ts +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/test/parity.test.ts +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/tsconfig.json +0 -0
- {tavus_cli-0.5.0 → tavus_cli-0.6.0}/workers/tavus-mcp/wrangler.jsonc +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.0](https://github.com/Tavus-Engineering/tavus-mcp/compare/v0.5.0...v0.6.0) (2026-10-07)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* let tavus_pal_list return the newest PALs first ([#54](https://github.com/Tavus-Engineering/tavus-mcp/issues/54)) ([1a48ac9](https://github.com/Tavus-Engineering/tavus-mcp/commit/1a48ac9d825e5c8d4bf708b99a7f2874a909bac2))
|
|
9
|
+
|
|
3
10
|
## [0.5.0](https://github.com/Tavus-Engineering/tavus-mcp/compare/v0.4.5...v0.5.0) (2026-09-30)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tavus"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.6.0" # x-release-please-version
|
|
4
4
|
description = "Official alias for tavus-cli, the Tavus CLI and MCP server."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
7
7
|
dependencies = [
|
|
8
|
-
"tavus-cli==0.
|
|
8
|
+
"tavus-cli==0.6.0", # x-release-please-version
|
|
9
9
|
]
|
|
10
10
|
|
|
11
11
|
[project.urls]
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tavus-mcp"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.6.0" # x-release-please-version
|
|
4
4
|
description = "Official alias for tavus-cli, which provides the tavus-mcp MCP server."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
7
7
|
dependencies = [
|
|
8
|
-
"tavus-cli==0.
|
|
8
|
+
"tavus-cli==0.6.0", # x-release-please-version
|
|
9
9
|
]
|
|
10
10
|
|
|
11
11
|
[project.urls]
|
|
@@ -313,10 +313,17 @@ async def tavus_pal_list(
|
|
|
313
313
|
limit: int = 25,
|
|
314
314
|
page: int = 0,
|
|
315
315
|
pal_type: str | None = None,
|
|
316
|
+
sort: Literal["asc", "desc"] | None = None,
|
|
316
317
|
) -> Any:
|
|
317
|
-
"""List compact PAL summaries
|
|
318
|
+
"""List compact PAL summaries, oldest first by creation time.
|
|
319
|
+
|
|
320
|
+
Set ``sort`` to ``"desc"`` for the newest PALs first. Use ``tavus_pal_get``
|
|
321
|
+
for full settings.
|
|
322
|
+
"""
|
|
318
323
|
async with TavusClient.from_env(surface="mcp") as client:
|
|
319
|
-
response = await client.pals.list(
|
|
324
|
+
response = await client.pals.list(
|
|
325
|
+
limit=limit, page=page, pal_type=pal_type, sort=sort
|
|
326
|
+
)
|
|
320
327
|
return _compact_list(response, _pal_summary)
|
|
321
328
|
|
|
322
329
|
|
|
@@ -108,6 +108,23 @@ async def test_mcp_requests_identify_the_mcp_surface(clean_env: Path) -> None:
|
|
|
108
108
|
assert "x-tavus-client-intent" not in request.headers
|
|
109
109
|
|
|
110
110
|
|
|
111
|
+
@pytest.mark.asyncio
|
|
112
|
+
@respx.mock
|
|
113
|
+
async def test_pal_list_forwards_sort_order(clean_env: Path) -> None:
|
|
114
|
+
(clean_env / ".env").write_text(
|
|
115
|
+
"TAVUS_ENV=TEST\n"
|
|
116
|
+
"TAVUS_API_KEY=test-key\n"
|
|
117
|
+
"TAVUS_PUBLIC_API_BASE_URL=https://api.example.test/v2\n"
|
|
118
|
+
)
|
|
119
|
+
route = respx.get("https://api.example.test/v2/pals").mock(
|
|
120
|
+
return_value=Response(200, json={"data": [], "total_count": 0})
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
await tavus_pal_list(sort="desc")
|
|
124
|
+
|
|
125
|
+
assert route.calls.last.request.url.params["sort"] == "desc"
|
|
126
|
+
|
|
127
|
+
|
|
111
128
|
@pytest.mark.asyncio
|
|
112
129
|
async def test_every_tool_offers_an_optional_intent() -> None:
|
|
113
130
|
for tool in await mcp.list_tools():
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 5
|
|
3
3
|
requires-python = ">=3.11"
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
@@ -1303,7 +1303,7 @@ wheels = [
|
|
|
1303
1303
|
|
|
1304
1304
|
[[package]]
|
|
1305
1305
|
name = "tavus-cli"
|
|
1306
|
-
version = "0.
|
|
1306
|
+
version = "0.6.0"
|
|
1307
1307
|
source = { editable = "." }
|
|
1308
1308
|
dependencies = [
|
|
1309
1309
|
{ name = "fastmcp" },
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tavus/tavus-mcp-worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@tavus/tavus-mcp-worker",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.6.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
12
12
|
"agents": "^0.12.2",
|
|
@@ -540,11 +540,12 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
540
540
|
|
|
541
541
|
server.tool(
|
|
542
542
|
"tavus_pal_list",
|
|
543
|
-
"List compact PAL summaries. Use tavus_pal_get for full settings.",
|
|
543
|
+
"List compact PAL summaries, oldest first by creation time. Set sort to \"desc\" for the newest PALs first. Use tavus_pal_get for full settings.",
|
|
544
544
|
{
|
|
545
545
|
limit: z.number().int().positive().max(100).default(25),
|
|
546
546
|
page: z.number().int().nonnegative().default(0),
|
|
547
547
|
pal_type: z.string().optional(),
|
|
548
|
+
sort: z.enum(["asc", "desc"]).optional(),
|
|
548
549
|
},
|
|
549
550
|
{
|
|
550
551
|
title: "List pals",
|
|
@@ -553,9 +554,9 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
553
554
|
idempotentHint: true,
|
|
554
555
|
openWorldHint: false,
|
|
555
556
|
},
|
|
556
|
-
async ({ limit, page, pal_type }) =>
|
|
557
|
+
async ({ limit, page, pal_type, sort }) =>
|
|
557
558
|
toolResult(
|
|
558
|
-
compactPalList(await client.list("pals", clean({ limit, page, pal_type }))),
|
|
559
|
+
compactPalList(await client.list("pals", clean({ limit, page, pal_type, sort }))),
|
|
559
560
|
),
|
|
560
561
|
);
|
|
561
562
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const VERSION = "0.6.0"; // x-release-please-version
|
|
@@ -276,6 +276,32 @@ describe("Cloudflare Tavus MCP helpers", () => {
|
|
|
276
276
|
}
|
|
277
277
|
});
|
|
278
278
|
|
|
279
|
+
it("forwards the PAL list sort order", async () => {
|
|
280
|
+
const fetchMock = vi.fn(
|
|
281
|
+
async (_input: string | URL | Request) =>
|
|
282
|
+
new Response(JSON.stringify({ data: [], total_count: 0 }), {
|
|
283
|
+
status: 200,
|
|
284
|
+
headers: { "Content-Type": "application/json" },
|
|
285
|
+
}),
|
|
286
|
+
);
|
|
287
|
+
vi.stubGlobal("fetch", fetchMock);
|
|
288
|
+
try {
|
|
289
|
+
const server = createTavusMcpServer({ TAVUS_API_KEY: "secret" });
|
|
290
|
+
await registeredTools(server).tavus_pal_list.handler({
|
|
291
|
+
limit: 5,
|
|
292
|
+
page: 0,
|
|
293
|
+
pal_type: undefined,
|
|
294
|
+
sort: "desc",
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
expect(new URL(String(fetchMock.mock.calls[0][0])).searchParams.get("sort")).toBe(
|
|
298
|
+
"desc",
|
|
299
|
+
);
|
|
300
|
+
} finally {
|
|
301
|
+
vi.unstubAllGlobals();
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
|
|
279
305
|
it("uses PAL vocabulary in public errors", () => {
|
|
280
306
|
expect(publicPalErrorBody({ message: "Invalid persona_id" })).toEqual({
|
|
281
307
|
message: "Invalid pal_id",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const VERSION = "0.5.0"; // x-release-please-version
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/references/build-and-verify.md
RENAMED
|
File without changes
|
{tavus_cli-0.5.0 → tavus_cli-0.6.0}/skills/tavus-agentic-pals/references/builder-workflow.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|