kiba-core 0.5.3.dev84__tar.gz → 0.5.3.dev85__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.
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/CHANGELOG.md +1 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/PKG-INFO +1 -1
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/requester/requester.py +2 -2
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/kiba_core.egg-info/PKG-INFO +1 -1
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/pyproject.toml +1 -1
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/.github/pull_request_template.md +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/.github/workflows/deploy.yml +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/.github/workflows/publish.yml +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/.github/workflows/pull-request.yml +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/.github/workflows/release.yml +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/.gitignore +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/Dockerfile +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/README.md +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/api_request.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/api_response.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/authorizer.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/default_routes.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/health.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/json_route.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/database_connection_middleware.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/exception_handling_middleware.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/logging_middleware.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/origin_ip_middleware.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/server_headers_middleware.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/openapi.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/rate_limit.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/request_context.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/route.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/route_auth.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/route_metadata.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/streaming_json_route.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/aws_requester.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/caching/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/caching/cache.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/caching/dict_cache.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/caching/file_cache.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/cron/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/cron/api_request_cron_job_processor.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/cron/cron_executor.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/cron/cron_job_processor.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/cron/model.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/exceptions.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/http/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/http/basic_authentication.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/http/jwt.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/http/rest_method.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/locks/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/locks/lock.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/locks/model.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/locks/sql.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/logging.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/notifications/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/notifications/discord_client.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/notifications/notification_client.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/notifications/slack_client.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/py.typed +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/aqs.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/cosmos.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/message_queue.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/message_queue_processor.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/model.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/sql.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/queues/sqs.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/requester/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/s3_manager.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/service_client.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/store/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/store/database.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/store/entity_repository.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/store/retriever.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/store/saver.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/async_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/chain_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/date_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/dict_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/file_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/hashing_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/http_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/json_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/list_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/process_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/string_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/typing_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/url_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/util/value_holder.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/web3/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/web3/eth_client.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/web3/eth_client_registry.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/web3/multicall3.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/kiba_core.egg-info/SOURCES.txt +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/kiba_core.egg-info/dependency_links.txt +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/kiba_core.egg-info/requires.txt +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/kiba_core.egg-info/top_level.txt +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/makefile +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/setup.cfg +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_api_response.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_authorizer.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_exception_handling_middleware.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_json_route.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_openapi.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_origin_ip_middleware.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_rate_limit.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_request_context.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_route.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_streaming_json_route.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/caching/test_dict_cache.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/caching/test_file_cache.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/cron/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/cron/test_cron_executor.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/locks/test_sql_lock.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/queues/conftest.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/queues/test_aqs_queue.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/queues/test_cosmos_queue.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/queues/test_message_queue_processor.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/queues/test_sql_queue.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/queues/test_sqs_queue.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/requester/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/requester/test_requester.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/test_database.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/test_entity_repository.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/test_exceptions.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/test_logging.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_async_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_chain_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_date_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_dict_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_file_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_json_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_list_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_process_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_string_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/util/test_url_util.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/web3/__init__.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/web3/test_eth_client_registry.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/web3/test_rest_eth_client.py +0 -0
- {kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/uv.lock +0 -0
|
@@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
|
+
- [MINOR] Added optional `proxyUrl` to `Requester` to send all its requests through an HTTP(S) proxy, e.g. to reach an API that allowlists a fixed egress IP
|
|
11
12
|
- [MINOR] Added optional `timeoutSeconds` (default 10) to `RestEthClient` to set the timeout of each request, e.g. a shorter one for an archive node so a degraded node fails fast
|
|
12
13
|
- [MINOR] Added `UNDEFINED`, `Undefined` and `UpdateValue[T]` to `core.util.typing_util` for partial updates: `UpdateValue[T]` is `T` or the `UNDEFINED` sentinel, so an update can tell "not provided" apart from an explicit `None`. Use it as a pydantic field default (`title: UpdateValue[str | None] = UNDEFINED`); request input never validates to `UNDEFINED` (a JSON `"UNDEFINED"` stays a string), and `x is not UNDEFINED` narrows `x` to `T` for type checkers
|
|
13
14
|
- [MINOR] Added `core.store.entity_repository.EntityRepository`, which reads and writes rows of a table as pydantic models: `create`, `update`, `upsert`, `upsert_many` (postgres and sqlite), `delete`, `list_many`, `get_first`, `get`, `get_one` and `get_one_or_none`. It exposes UUID columns as strings and datetimes as aware utc datetimes, dumps pydantic values in JSON columns, generates ids for UUID primary keys and stamps `createdDate`/`updatedDate` when the table has them; subclasses can override `_convert_value_from_db`/`_convert_value_to_db` for other columns
|
|
@@ -57,9 +57,9 @@ class RequesterTimeoutException(GatewayTimeoutException):
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
class Requester:
|
|
60
|
-
def __init__(self, headers: Mapping[str, str] | None = None, shouldFollowRedirects: bool = True) -> None:
|
|
60
|
+
def __init__(self, headers: Mapping[str, str] | None = None, shouldFollowRedirects: bool = True, proxyUrl: str | None = None) -> None:
|
|
61
61
|
self.headers = headers or {}
|
|
62
|
-
self.client = httpx.AsyncClient(follow_redirects=shouldFollowRedirects)
|
|
62
|
+
self.client = httpx.AsyncClient(follow_redirects=shouldFollowRedirects, proxy=proxyUrl)
|
|
63
63
|
|
|
64
64
|
async def get(self, url: str, dataDict: Json | None = None, data: bytes | None = None, timeout: int | None = 10, headers: MutableMapping[str, str] | None = None, outputFilePath: str | None = None) -> KibaResponse:
|
|
65
65
|
return await self.make_request(method='GET', url=url, dataDict=dataDict, data=data, timeout=timeout, headers=headers, outputFilePath=outputFilePath)
|
|
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
|
{kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/exception_handling_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/core/api/middleware/server_headers_middleware.py
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
|
|
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
|
{kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/api/test_exception_handling_middleware.py
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
|
{kiba_core-0.5.3.dev84 → kiba_core-0.5.3.dev85}/tests/queues/test_message_queue_processor.py
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
|