improve and document test setup

This commit is contained in:
Robert Pack 2022-04-24 11:44:52 +02:00
Родитель b9e9f28ae7
Коммит 71d086436c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: AF0F16B1EB819B7D
9 изменённых файлов: 146 добавлений и 78 удалений

67
CONTRIBUTING.md Normal file
Просмотреть файл

@ -0,0 +1,67 @@
# Contributing to Azure Rust SDK
If you would like to become an active contributor to this project please
follow the instructions provided in [Microsoft Azure Projects Contribution Guidelines](https://azure.github.io/azure-sdk/general_introduction.html).
## Building and Testing
This project uses the [mock_transport_framework](https://github.com/Azure/azure-sdk-for-rust/blob/main/docs/mock_transport.md)
from the unofficial azure Rust SDKs. The main idea is to record interactions with external services (Kusto) locally, and replay
the responses in CI/CD and for normal testing. This is particularly useful for end to end tests.
To execute tests against recorded responses run:
```bash
cargo test --features=mock_transport_framework
```
> Using `cargo test` will also work, but omit all tests requiring the mock_transport_framework
To record new transactions, first place a `.env` file (omitted by `.gitignore`) in the repository root
```toml
AZURE_CLIENT_ID="..."
AZURE_CLIENT_SECRET="..."
AZURE_TENANT_ID="..."
KUSTO_SERVICE_URL="..."
KUSTO_DATABASE="..."
```
> The provided service principal needs to be able to `create` and `drop` tables in the specified database
Then execute tests in `RECORD` mode:
```bash
TESTING_MODE=RECORD cargo test --features=mock_transport_framework
```
> While all credentials and identifiable urls are stripped from recordings, the used database name, the query
> and responses are committed to source control. So make sure no sensitive data is contained therein. Care
> should also be taken to reduce the information about DB internals returned from a query - especially
> when using control commands.
## Style
We use `fmt` and `clippy` for formatting and linting:
```bash
cargo fmt
cargo clippy
```
## PRs
We welcome contributions. In order to make the PR process efficient, please follow the below checklist:
- **There is an issue open concerning the code added** - (either bug or enhancement).
Preferably there is an agreed upon approach in the issue.
- **PR comment explains the changes done** - (This should be a TL;DR; as the rest of it should be documented in the related issue).
- **PR is concise** - try and avoid make drastic changes in a single PR. Split it into multiple changes if possible. If you feel a major change is needed, it is ok, but make sure commit history is clear and one of the maintainers can comfortably review both the code and the logic behind the change.
- **Please provide any related information needed to understand the change** - docs, guidelines, use-case, best practices and so on. Opinions are accepted, but have to be backed up.
- **Checks should pass** - these including linting with cargo fmt and clippy and running tests.
## Code of Conduct
This project's code of conduct can be found in the
[CODE_OF_CONDUCT.md file](https://github.com/Azure/azure-sdk-for-rust/blob/master/CODE_OF_CONDUCT.md)
(v1.4.0 of the http://contributor-covenant.org/ CoC).

Просмотреть файл

@ -1,20 +1,23 @@
# Microsoft Azure Kusto (Azure Data Explorer) SDK for Rust # Microsoft Azure Kusto (Azure Data Explorer) SDK for Rust
[![Rust Build, Test, and Lint](https://github.com/Azure/azure-kusto-rust/actions/workflows/build.yml/badge.svg)](https://github.com/Azure/azure-kusto-rust/actions/workflows/build.yml) [![Rust Build, Test, and Lint](https://github.com/Azure/azure-kusto-rust/actions/workflows/build.yml/badge.svg)](https://github.com/Azure/azure-kusto-rust/actions/workflows/build.yml)
[![codecov](https://codecov.io/gh/Azure/azure-kusto-rust/branch/main/graph/badge.svg?token=0MDnbSizwx)](https://codecov.io/gh/Azure/azure-kusto-rust) [![codecov](https://codecov.io/gh/Azure/azure-kusto-rust/branch/main/graph/badge.svg?token=0MDnbSizwx)](https://codecov.io/gh/Azure/azure-kusto-rust)
*This repo is still in the early stages of development, and doesn't yet have an official release - use with caution.* _This repo is still in the early stages of development, and doesn't yet have an official release - use with caution._
## Best Practices ## Best Practices
See the SDK [best practices guide](https://docs.microsoft.com/azure/data-explorer/kusto/api/netfx/kusto-ingest-best-practices), which though written for the .NET SDK, applies similarly here. See the SDK [best practices guide](https://docs.microsoft.com/azure/data-explorer/kusto/api/netfx/kusto-ingest-best-practices), which though written for the .NET SDK, applies similarly here.
## Need Support? ## Need Support?
- **Have a feature request for SDKs?** Please post it on [User Voice](https://feedback.azure.com/forums/915733-azure-data-explorer) to help us prioritize - **Have a feature request for SDKs?** Please post it on [User Voice](https://feedback.azure.com/forums/915733-azure-data-explorer) to help us prioritize
- **Have a technical question?** Ask on [Stack Overflow with tag "azure-data-explorer"](https://stackoverflow.com/questions/tagged/azure-data-explorer) - **Have a technical question?** Ask on [Stack Overflow with tag "azure-data-explorer"](https://stackoverflow.com/questions/tagged/azure-data-explorer)
- **Need Support?** Every customer with an active Azure subscription has access to [support](https://docs.microsoft.com/en-us/azure/azure-supportability/how-to-create-azure-support-request) with guaranteed response time. Consider submitting a ticket and get assistance from Microsoft support team - **Need Support?** Every customer with an active Azure subscription has access to [support](https://docs.microsoft.com/en-us/azure/azure-supportability/how-to-create-azure-support-request) with guaranteed response time. Consider submitting a ticket and get assistance from Microsoft support team
- **Found a bug?** Please help us fix it by thoroughly documenting it and [filing an issue](https://github.com/Azure/azure-kusto-python/issues/new). - **Found a bug?** Please help us fix it by thoroughly documenting it and [filing an issue](https://github.com/Azure/azure-kusto-python/issues/new).
## Looking for SDKs for other languages/platforms? ## Looking for SDKs for other languages/platforms?
- [Node](https://github.com/azure/azure-kusto-node) - [Node](https://github.com/azure/azure-kusto-node)
- [Java](https://github.com/azure/azure-kusto-java) - [Java](https://github.com/azure/azure-kusto-java)
- [.NET](https://docs.microsoft.com/en-us/azure/kusto/api/netfx/about-the-sdk) - [.NET](https://docs.microsoft.com/en-us/azure/kusto/api/netfx/about-the-sdk)
@ -22,7 +25,7 @@ See the SDK [best practices guide](https://docs.microsoft.com/azure/data-explore
## Contributing ## Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
@ -34,10 +37,12 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
If you would like to become an active contributor to this project please follow the instructions provided in [Contributing.md](CONTRIBUTING.md).
## Trademarks ## Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies. Any use of third-party trademarks or logos are subject to those third-party's policies.

Просмотреть файл

@ -1,11 +1,8 @@
#![cfg(feature = "mock_transport_framework")] #![cfg(feature = "mock_transport_framework")]
use dotenv::dotenv;
mod setup; mod setup;
#[tokio::test] #[tokio::test]
async fn create_query_delete_table() { async fn create_query_delete_table() {
dotenv().ok();
let (client, database) = setup::create_kusto_client("data_create_query_delete_table") let (client, database) = setup::create_kusto_client("data_create_query_delete_table")
.await .await
.unwrap(); .unwrap();

Просмотреть файл

@ -4,8 +4,10 @@ use azure_core::Error as CoreError;
use azure_identity::token_credentials::{ClientSecretCredential, TokenCredentialOptions}; use azure_identity::token_credentials::{ClientSecretCredential, TokenCredentialOptions};
use azure_kusto_data::client::{KustoClient, KustoClientOptions}; use azure_kusto_data::client::{KustoClient, KustoClientOptions};
use chrono::Utc; use chrono::Utc;
use dotenv::dotenv;
use oauth2::AccessToken; use oauth2::AccessToken;
use std::error::Error; use std::error::Error;
use std::path::Path;
use std::sync::Arc; use std::sync::Arc;
pub struct DummyCredential {} pub struct DummyCredential {}
@ -23,70 +25,66 @@ impl TokenCredential for DummyCredential {
pub async fn create_kusto_client( pub async fn create_kusto_client(
transaction_name: &str, transaction_name: &str,
) -> Result<(KustoClient, String), Box<dyn Error + Send + Sync>> { ) -> Result<(KustoClient, String), Box<dyn Error + Send + Sync>> {
let client_id = (std::env::var(azure_core::mock::TESTING_MODE_KEY).as_deref() let db_path = Path::new(&workspace_root().unwrap())
== Ok(azure_core::mock::TESTING_MODE_RECORD)) .join(format!("test/transactions/{}/_db", transaction_name));
.then(get_client_id)
.unwrap_or_else(String::new);
let client_secret = (std::env::var(azure_core::mock::TESTING_MODE_KEY).as_deref() let (service_url, credential, database): (String, Arc<dyn TokenCredential>, String) =
== Ok(azure_core::mock::TESTING_MODE_RECORD)) if std::env::var(azure_core::mock::TESTING_MODE_KEY).as_deref()
.then(get_client_secret) == Ok(azure_core::mock::TESTING_MODE_RECORD)
.unwrap_or_else(String::new); {
dotenv().ok();
let tenant_id = (std::env::var(azure_core::mock::TESTING_MODE_KEY).as_deref() let client_id =
== Ok(azure_core::mock::TESTING_MODE_RECORD)) std::env::var("AZURE_CLIENT_ID").expect("Set env variable AZURE_CLIENT_ID first!");
.then(get_tenant_id) let client_secret = std::env::var("AZURE_CLIENT_SECRET")
.unwrap_or_else(String::new); .expect("Set env variable AZURE_CLIENT_SECRET first!");
let tenant_id =
std::env::var("AZURE_TENANT_ID").expect("Set env variable AZURE_TENANT_ID first!");
let service_url = std::env::var("KUSTO_SERVICE_URL")
.expect("Set env variable KUSTO_SERVICE_URL first!");
let database =
std::env::var("KUSTO_DATABASE").expect("Set env variable KUSTO_DATABASE first!");
let service_url = (std::env::var(azure_core::mock::TESTING_MODE_KEY).as_deref() // Wee need to persist the database name as well, since it may change per recording run depending on who
== Ok(azure_core::mock::TESTING_MODE_RECORD)) // records it, is part of the request, and as such validated against.
.then(get_service_url) std::fs::write(db_path, &database).unwrap();
.unwrap_or_else(String::new);
let database = (std::env::var(azure_core::mock::TESTING_MODE_KEY).as_deref() let credential = Arc::new(ClientSecretCredential::new(
== Ok(azure_core::mock::TESTING_MODE_RECORD)) tenant_id.to_string(),
.then(get_database) client_id.to_string(),
// TODO This name is hardcoded in CI/CD - this this will only work until a new run is recorded client_secret.to_string(),
.unwrap_or_else(|| String::from("ctna")); TokenCredentialOptions::default(),
));
(service_url, credential, database)
} else {
let credential = Arc::new(DummyCredential {});
let database = String::from_utf8_lossy(&std::fs::read(db_path).unwrap()).to_string();
(String::new(), credential, database)
};
let options = KustoClientOptions::new_with_transaction_name(transaction_name.to_string()); let options = KustoClientOptions::new_with_transaction_name(transaction_name.to_string());
let credential: Arc<dyn TokenCredential> = if std::env::var(azure_core::mock::TESTING_MODE_KEY)
.as_deref()
== Ok(azure_core::mock::TESTING_MODE_RECORD)
{
Arc::new(ClientSecretCredential::new(
tenant_id.to_string(),
client_id.to_string(),
client_secret.to_string(),
TokenCredentialOptions::default(),
))
} else {
Arc::new(DummyCredential {})
};
Ok(( Ok((
KustoClient::new_with_options(service_url, credential, options).unwrap(), KustoClient::new_with_options(service_url, credential, options).unwrap(),
database, database,
)) ))
} }
fn get_service_url() -> String { /// Run cargo to get the root of the workspace
std::env::var("KUSTO_SERVICE_URL").expect("Set env variable KUSTO_SERVICE_URL first!") fn workspace_root() -> Result<String, Box<dyn std::error::Error>> {
} let output = std::process::Command::new("cargo")
.arg("metadata")
.arg("--no-deps")
.output()?;
let output = String::from_utf8_lossy(&output.stdout);
fn get_database() -> String { let key = "workspace_root\":\"";
std::env::var("KUSTO_DATABASE").expect("Set env variable KUSTO_DATABASE first!") let index = output
} .find(key)
.ok_or_else(|| format!("workspace_root key not found in metadata"))?;
fn get_client_id() -> String { let value = &output[index + key.len()..];
std::env::var("AZURE_CLIENT_ID").expect("Set env variable AZURE_CLIENT_ID first!") let end = value
} .find("\"")
.ok_or_else(|| format!("workspace_root value was malformed"))?;
fn get_client_secret() -> String { Ok(value[..end].into())
std::env::var("AZURE_CLIENT_SECRET").expect("Set env variable AZURE_CLIENT_SECRET first!")
}
fn get_tenant_id() -> String {
std::env::var("AZURE_TENANT_ID").expect("Set env variable AZURE_TENANT_ID first!")
} }

Просмотреть файл

@ -2,13 +2,13 @@
"status": 200, "status": 200,
"headers": { "headers": {
"content-type": "application/json; charset=UTF-8", "content-type": "application/json; charset=UTF-8",
"date": "Sun, 24 Apr 2022 07:43:37 GMT", "date": "Sun, 24 Apr 2022 09:33:24 GMT",
"server": "Microsoft-HTTPAPI/2.0", "server": "Microsoft-HTTPAPI/2.0",
"strict-transport-security": "max-age=15724800; includeSubDomains", "strict-transport-security": "max-age=15724800; includeSubDomains",
"transfer-encoding": "chunked", "transfer-encoding": "chunked",
"vary": "Accept-Encoding", "vary": "Accept-Encoding",
"x-ms-activity-id": "4a35efa7-62ff-4a20-a0fd-378deec9f61b", "x-ms-activity-id": "a7c15d5a-a206-4b5a-81c8-c62658f2f318",
"x-ms-client-request-id": "unspecified;7a0e24d7-6932-4a8e-988d-9c118ee0df83" "x-ms-client-request-id": "unspecified;c16286b2-0025-4db4-927d-33154edcf6ad"
}, },
"body": "eyJUYWJsZXMiOlt7IlRhYmxlTmFtZSI6IlRhYmxlXzAiLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiRXh0ZW50SWQiLCJEYXRhVHlwZSI6Ikd1aWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6Ik9yaWdpbmFsU2l6ZSIsIkRhdGFUeXBlIjoiRG91YmxlIiwiQ29sdW1uVHlwZSI6InJlYWwifSx7IkNvbHVtbk5hbWUiOiJFeHRlbnRTaXplIiwiRGF0YVR5cGUiOiJEb3VibGUiLCJDb2x1bW5UeXBlIjoicmVhbCJ9LHsiQ29sdW1uTmFtZSI6IkNvbXByZXNzZWRTaXplIiwiRGF0YVR5cGUiOiJEb3VibGUiLCJDb2x1bW5UeXBlIjoicmVhbCJ9LHsiQ29sdW1uTmFtZSI6IkluZGV4U2l6ZSIsIkRhdGFUeXBlIjoiRG91YmxlIiwiQ29sdW1uVHlwZSI6InJlYWwifSx7IkNvbHVtbk5hbWUiOiJSb3dDb3VudCIsIkRhdGFUeXBlIjoiSW50NjQiLCJDb2x1bW5UeXBlIjoibG9uZyJ9XSwiUm93cyI6W1siNWY2OTUxZDctZDZlZS00YjgzLWI4MjQtNzk0OTMzNDcyMzg1IiwyMS4wLDMzNS4wLDEyOC4wLDIwNy4wLDFdXX1dfQ==" "body": "eyJUYWJsZXMiOlt7IlRhYmxlTmFtZSI6IlRhYmxlXzAiLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiRXh0ZW50SWQiLCJEYXRhVHlwZSI6Ikd1aWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6Ik9yaWdpbmFsU2l6ZSIsIkRhdGFUeXBlIjoiRG91YmxlIiwiQ29sdW1uVHlwZSI6InJlYWwifSx7IkNvbHVtbk5hbWUiOiJFeHRlbnRTaXplIiwiRGF0YVR5cGUiOiJEb3VibGUiLCJDb2x1bW5UeXBlIjoicmVhbCJ9LHsiQ29sdW1uTmFtZSI6IkNvbXByZXNzZWRTaXplIiwiRGF0YVR5cGUiOiJEb3VibGUiLCJDb2x1bW5UeXBlIjoicmVhbCJ9LHsiQ29sdW1uTmFtZSI6IkluZGV4U2l6ZSIsIkRhdGFUeXBlIjoiRG91YmxlIiwiQ29sdW1uVHlwZSI6InJlYWwifSx7IkNvbHVtbk5hbWUiOiJSb3dDb3VudCIsIkRhdGFUeXBlIjoiSW50NjQiLCJDb2x1bW5UeXBlIjoibG9uZyJ9XSwiUm93cyI6W1siY2ViYmVmMzItNTIxYi00MWViLTlhOWUtYTQ5YmE0M2E4NzQ2IiwyMS4wLDMzNS4wLDEyOC4wLDIwNy4wLDFdXX1dfQ=="
} }

Просмотреть файл

@ -2,13 +2,13 @@
"status": 200, "status": 200,
"headers": { "headers": {
"content-type": "application/json; charset=UTF-8", "content-type": "application/json; charset=UTF-8",
"date": "Sun, 24 Apr 2022 07:43:37 GMT", "date": "Sun, 24 Apr 2022 09:33:24 GMT",
"server": "Microsoft-HTTPAPI/2.0", "server": "Microsoft-HTTPAPI/2.0",
"strict-transport-security": "max-age=15724800; includeSubDomains", "strict-transport-security": "max-age=15724800; includeSubDomains",
"transfer-encoding": "chunked", "transfer-encoding": "chunked",
"vary": "Accept-Encoding", "vary": "Accept-Encoding",
"x-ms-activity-id": "a6a6e833-c119-4e36-9e34-e5602b6f974b", "x-ms-activity-id": "2dd3dbcf-7fa0-418f-88b1-0626d30093a4",
"x-ms-client-request-id": "unspecified;0df0ceb2-a3d3-41f1-868f-0d68650e1d79" "x-ms-client-request-id": "unspecified;c69cac04-374f-40fb-bb43-84dc233b3db6"
}, },
"body": "eyJUYWJsZXMiOlt7IlRhYmxlTmFtZSI6IlRhYmxlXzAiLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiVGFibGVOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRGF0YWJhc2VOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRm9sZGVyIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRG9jU3RyaW5nIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyJLdXN0b1JzVGVzdCIsImN0bmEiLCIiLCIiXV19LHsiVGFibGVOYW1lIjoiVGFibGVfMSIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJWYWx1ZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9XSwiUm93cyI6W1sie1wiVmlzdWFsaXphdGlvblwiOm51bGwsXCJUaXRsZVwiOm51bGwsXCJYQ29sdW1uXCI6bnVsbCxcIlNlcmllc1wiOm51bGwsXCJZQ29sdW1uc1wiOm51bGwsXCJBbm9tYWx5Q29sdW1uc1wiOm51bGwsXCJYVGl0bGVcIjpudWxsLFwiWVRpdGxlXCI6bnVsbCxcIlhBeGlzXCI6bnVsbCxcIllBeGlzXCI6bnVsbCxcIkxlZ2VuZFwiOm51bGwsXCJZU3BsaXRcIjpudWxsLFwiQWNjdW11bGF0ZVwiOmZhbHNlLFwiSXNRdWVyeVNvcnRlZFwiOmZhbHNlLFwiS2luZFwiOm51bGwsXCJZbWluXCI6XCJOYU5cIixcIlltYXhcIjpcIk5hTlwiLFwiWG1pblwiOm51bGwsXCJYbWF4XCI6bnVsbH0iXV19LHsiVGFibGVOYW1lIjoiVGFibGVfMiIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJUaW1lc3RhbXAiLCJEYXRhVHlwZSI6IkRhdGVUaW1lIiwiQ29sdW1uVHlwZSI6ImRhdGV0aW1lIn0seyJDb2x1bW5OYW1lIjoiU2V2ZXJpdHkiLCJEYXRhVHlwZSI6IkludDMyIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlNldmVyaXR5TmFtZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IlN0YXR1c0NvZGUiLCJEYXRhVHlwZSI6IkludDMyIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlN0YXR1c0Rlc2NyaXB0aW9uIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiQ291bnQiLCJEYXRhVHlwZSI6IkludDMyIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlJlcXVlc3RJZCIsIkRhdGFUeXBlIjoiR3VpZCIsIkNvbHVtblR5cGUiOiJndWlkIn0seyJDb2x1bW5OYW1lIjoiQWN0aXZpdHlJZCIsIkRhdGFUeXBlIjoiR3VpZCIsIkNvbHVtblR5cGUiOiJndWlkIn0seyJDb2x1bW5OYW1lIjoiU3ViQWN0aXZpdHlJZCIsIkRhdGFUeXBlIjoiR3VpZCIsIkNvbHVtblR5cGUiOiJndWlkIn0seyJDb2x1bW5OYW1lIjoiQ2xpZW50QWN0aXZpdHlJZCIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9XSwiUm93cyI6W1siMjAyMi0wNC0yNFQwNzo0MzozNy42MDA1OTU0WiIsNCwiSW5mbyIsMCwiUXVlcnkgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSIsMSwiYTZhNmU4MzMtYzExOS00ZTM2LTllMzQtZTU2MDJiNmY5NzRiIiwiYTZhNmU4MzMtYzExOS00ZTM2LTllMzQtZTU2MDJiNmY5NzRiIiwiOWYxNWI3OTYtZDAzMi00M2E3LTlkZDQtY2M1ZGI4ZmU0NmQzIiwidW5zcGVjaWZpZWQ7MGRmMGNlYjItYTNkMy00MWYxLTg2OGYtMGQ2ODY1MGUxZDc5Il0sWyIyMDIyLTA0LTI0VDA3OjQzOjM3LjYwMDU5NTRaIiw2LCJTdGF0cyIsMCwie1wiRXhlY3V0aW9uVGltZVwiOjAuMDE1NjE1MSxcInJlc291cmNlX3VzYWdlXCI6e1wiY2FjaGVcIjp7XCJtZW1vcnlcIjp7XCJoaXRzXCI6MCxcIm1pc3Nlc1wiOjAsXCJ0b3RhbFwiOjB9LFwiZGlza1wiOntcImhpdHNcIjowLFwibWlzc2VzXCI6MCxcInRvdGFsXCI6MH0sXCJzaGFyZHNcIjp7XCJob3RcIjp7XCJoaXRieXRlc1wiOjAsXCJtaXNzYnl0ZXNcIjowLFwicmV0cmlldmVieXRlc1wiOjB9LFwiY29sZFwiOntcImhpdGJ5dGVzXCI6MCxcIm1pc3NieXRlc1wiOjAsXCJyZXRyaWV2ZWJ5dGVzXCI6MH0sXCJieXBhc3NieXRlc1wiOjB9fSxcImNwdVwiOntcInVzZXJcIjpcIjAwOjAwOjAwXCIsXCJrZXJuZWxcIjpcIjAwOjAwOjAwXCIsXCJ0b3RhbCBjcHVcIjpcIjAwOjAwOjAwXCJ9LFwibWVtb3J5XCI6e1wicGVha19wZXJfbm9kZVwiOjUyNDM4NH0sXCJuZXR3b3JrXCI6e1wiaW50ZXJfY2x1c3Rlcl90b3RhbF9ieXRlc1wiOjY0MCxcImNyb3NzX2NsdXN0ZXJfdG90YWxfYnl0ZXNcIjowfX0sXCJpbnB1dF9kYXRhc2V0X3N0YXRpc3RpY3NcIjp7XCJleHRlbnRzXCI6e1widG90YWxcIjowLFwic2Nhbm5lZFwiOjAsXCJzY2FubmVkX21pbl9kYXRldGltZVwiOlwiMDAwMS0wMS0wMVQwMDowMDowMC4wMDAwMDAwWlwiLFwic2Nhbm5lZF9tYXhfZGF0ZXRpbWVcIjpcIjAwMDEtMDEtMDFUMDA6MDA6MDAuMDAwMDAwMFpcIn0sXCJyb3dzXCI6e1widG90YWxcIjowLFwic2Nhbm5lZFwiOjB9LFwicm93c3RvcmVzXCI6e1wic2Nhbm5lZF9yb3dzXCI6MCxcInNjYW5uZWRfdmFsdWVzX3NpemVcIjowfSxcInNoYXJkc1wiOntcInF1ZXJpZXNfZ2VuZXJpY1wiOjAsXCJxdWVyaWVzX3NwZWNpYWxpemVkXCI6MH19LFwiZGF0YXNldF9zdGF0aXN0aWNzXCI6W3tcInRhYmxlX3Jvd19jb3VudFwiOjEsXCJ0YWJsZV9zaXplXCI6NDl9XX0iLDEsImE2YTZlODMzLWMxMTktNGUzNi05ZTM0LWU1NjAyYjZmOTc0YiIsImE2YTZlODMzLWMxMTktNGUzNi05ZTM0LWU1NjAyYjZmOTc0YiIsIjlmMTViNzk2LWQwMzItNDNhNy05ZGQ0LWNjNWRiOGZlNDZkMyIsInVuc3BlY2lmaWVkOzBkZjBjZWIyLWEzZDMtNDFmMS04NjhmLTBkNjg2NTBlMWQ3OSJdXX0seyJUYWJsZU5hbWUiOiJUYWJsZV8zIiwiQ29sdW1ucyI6W3siQ29sdW1uTmFtZSI6Ik9yZGluYWwiLCJEYXRhVHlwZSI6IkludDY0IiwiQ29sdW1uVHlwZSI6ImxvbmcifSx7IkNvbHVtbk5hbWUiOiJLaW5kIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiTmFtZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IklkIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiUHJldHR5TmFtZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9XSwiUm93cyI6W1swLCJRdWVyeVJlc3VsdCIsIlByaW1hcnlSZXN1bHQiLCI4MTRlMzc4Ni1hNmU5LTQ0NDQtOTU4ZC02ODk0MGYyNzVkMWYiLCIiXSxbMSwiUXVlcnlQcm9wZXJ0aWVzIiwiQEV4dGVuZGVkUHJvcGVydGllcyIsIjlhOWM1ODEwLWE0YWItNDU2Yy04YTQ4LTA1NjcyNGFmNDZmNiIsIiJdLFsyLCJRdWVyeVN0YXR1cyIsIlF1ZXJ5U3RhdHVzIiwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIiwiIl1dfV19" "body": "eyJUYWJsZXMiOlt7IlRhYmxlTmFtZSI6IlRhYmxlXzAiLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiVGFibGVOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRGF0YWJhc2VOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRm9sZGVyIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRG9jU3RyaW5nIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyJLdXN0b1JzVGVzdCIsImN0bmEiLCIiLCIiXV19LHsiVGFibGVOYW1lIjoiVGFibGVfMSIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJWYWx1ZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9XSwiUm93cyI6W1sie1wiVmlzdWFsaXphdGlvblwiOm51bGwsXCJUaXRsZVwiOm51bGwsXCJYQ29sdW1uXCI6bnVsbCxcIlNlcmllc1wiOm51bGwsXCJZQ29sdW1uc1wiOm51bGwsXCJBbm9tYWx5Q29sdW1uc1wiOm51bGwsXCJYVGl0bGVcIjpudWxsLFwiWVRpdGxlXCI6bnVsbCxcIlhBeGlzXCI6bnVsbCxcIllBeGlzXCI6bnVsbCxcIkxlZ2VuZFwiOm51bGwsXCJZU3BsaXRcIjpudWxsLFwiQWNjdW11bGF0ZVwiOmZhbHNlLFwiSXNRdWVyeVNvcnRlZFwiOmZhbHNlLFwiS2luZFwiOm51bGwsXCJZbWluXCI6XCJOYU5cIixcIlltYXhcIjpcIk5hTlwiLFwiWG1pblwiOm51bGwsXCJYbWF4XCI6bnVsbH0iXV19LHsiVGFibGVOYW1lIjoiVGFibGVfMiIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJUaW1lc3RhbXAiLCJEYXRhVHlwZSI6IkRhdGVUaW1lIiwiQ29sdW1uVHlwZSI6ImRhdGV0aW1lIn0seyJDb2x1bW5OYW1lIjoiU2V2ZXJpdHkiLCJEYXRhVHlwZSI6IkludDMyIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlNldmVyaXR5TmFtZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IlN0YXR1c0NvZGUiLCJEYXRhVHlwZSI6IkludDMyIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlN0YXR1c0Rlc2NyaXB0aW9uIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiQ291bnQiLCJEYXRhVHlwZSI6IkludDMyIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlJlcXVlc3RJZCIsIkRhdGFUeXBlIjoiR3VpZCIsIkNvbHVtblR5cGUiOiJndWlkIn0seyJDb2x1bW5OYW1lIjoiQWN0aXZpdHlJZCIsIkRhdGFUeXBlIjoiR3VpZCIsIkNvbHVtblR5cGUiOiJndWlkIn0seyJDb2x1bW5OYW1lIjoiU3ViQWN0aXZpdHlJZCIsIkRhdGFUeXBlIjoiR3VpZCIsIkNvbHVtblR5cGUiOiJndWlkIn0seyJDb2x1bW5OYW1lIjoiQ2xpZW50QWN0aXZpdHlJZCIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9XSwiUm93cyI6W1siMjAyMi0wNC0yNFQwOTozMzoyNS4zMjI0MDc5WiIsNCwiSW5mbyIsMCwiUXVlcnkgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSIsMSwiMmRkM2RiY2YtN2ZhMC00MThmLTg4YjEtMDYyNmQzMDA5M2E0IiwiMmRkM2RiY2YtN2ZhMC00MThmLTg4YjEtMDYyNmQzMDA5M2E0IiwiMjIwMDY0NDgtOWEzNi00YWI2LTkwNzgtMmVmYzg2MWRjMGFhIiwidW5zcGVjaWZpZWQ7YzY5Y2FjMDQtMzc0Zi00MGZiLWJiNDMtODRkYzIzM2IzZGI2Il0sWyIyMDIyLTA0LTI0VDA5OjMzOjI1LjMyMjQwNzlaIiw2LCJTdGF0cyIsMCwie1wiRXhlY3V0aW9uVGltZVwiOjAuMCxcInJlc291cmNlX3VzYWdlXCI6e1wiY2FjaGVcIjp7XCJtZW1vcnlcIjp7XCJoaXRzXCI6MCxcIm1pc3Nlc1wiOjAsXCJ0b3RhbFwiOjB9LFwiZGlza1wiOntcImhpdHNcIjowLFwibWlzc2VzXCI6MCxcInRvdGFsXCI6MH0sXCJzaGFyZHNcIjp7XCJob3RcIjp7XCJoaXRieXRlc1wiOjAsXCJtaXNzYnl0ZXNcIjowLFwicmV0cmlldmVieXRlc1wiOjB9LFwiY29sZFwiOntcImhpdGJ5dGVzXCI6MCxcIm1pc3NieXRlc1wiOjAsXCJyZXRyaWV2ZWJ5dGVzXCI6MH0sXCJieXBhc3NieXRlc1wiOjB9fSxcImNwdVwiOntcInVzZXJcIjpcIjAwOjAwOjAwXCIsXCJrZXJuZWxcIjpcIjAwOjAwOjAwXCIsXCJ0b3RhbCBjcHVcIjpcIjAwOjAwOjAwXCJ9LFwibWVtb3J5XCI6e1wicGVha19wZXJfbm9kZVwiOjUyNDM4NH0sXCJuZXR3b3JrXCI6e1wiaW50ZXJfY2x1c3Rlcl90b3RhbF9ieXRlc1wiOjY0MCxcImNyb3NzX2NsdXN0ZXJfdG90YWxfYnl0ZXNcIjowfX0sXCJpbnB1dF9kYXRhc2V0X3N0YXRpc3RpY3NcIjp7XCJleHRlbnRzXCI6e1widG90YWxcIjowLFwic2Nhbm5lZFwiOjAsXCJzY2FubmVkX21pbl9kYXRldGltZVwiOlwiMDAwMS0wMS0wMVQwMDowMDowMC4wMDAwMDAwWlwiLFwic2Nhbm5lZF9tYXhfZGF0ZXRpbWVcIjpcIjAwMDEtMDEtMDFUMDA6MDA6MDAuMDAwMDAwMFpcIn0sXCJyb3dzXCI6e1widG90YWxcIjowLFwic2Nhbm5lZFwiOjB9LFwicm93c3RvcmVzXCI6e1wic2Nhbm5lZF9yb3dzXCI6MCxcInNjYW5uZWRfdmFsdWVzX3NpemVcIjowfSxcInNoYXJkc1wiOntcInF1ZXJpZXNfZ2VuZXJpY1wiOjAsXCJxdWVyaWVzX3NwZWNpYWxpemVkXCI6MH19LFwiZGF0YXNldF9zdGF0aXN0aWNzXCI6W3tcInRhYmxlX3Jvd19jb3VudFwiOjEsXCJ0YWJsZV9zaXplXCI6NDl9XX0iLDEsIjJkZDNkYmNmLTdmYTAtNDE4Zi04OGIxLTA2MjZkMzAwOTNhNCIsIjJkZDNkYmNmLTdmYTAtNDE4Zi04OGIxLTA2MjZkMzAwOTNhNCIsIjIyMDA2NDQ4LTlhMzYtNGFiNi05MDc4LTJlZmM4NjFkYzBhYSIsInVuc3BlY2lmaWVkO2M2OWNhYzA0LTM3NGYtNDBmYi1iYjQzLTg0ZGMyMzNiM2RiNiJdXX0seyJUYWJsZU5hbWUiOiJUYWJsZV8zIiwiQ29sdW1ucyI6W3siQ29sdW1uTmFtZSI6Ik9yZGluYWwiLCJEYXRhVHlwZSI6IkludDY0IiwiQ29sdW1uVHlwZSI6ImxvbmcifSx7IkNvbHVtbk5hbWUiOiJLaW5kIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiTmFtZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IklkIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiUHJldHR5TmFtZSIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9XSwiUm93cyI6W1swLCJRdWVyeVJlc3VsdCIsIlByaW1hcnlSZXN1bHQiLCI5MDdhYTcxNS04YzlkLTRjZDktYmQ5Ni0wN2Y5ZjA5NzJiMWMiLCIiXSxbMSwiUXVlcnlQcm9wZXJ0aWVzIiwiQEV4dGVuZGVkUHJvcGVydGllcyIsImIzY2RiNTQyLWYzNjQtNGFkZi05ZDczLTBlNDdjMjVkZTg3ZSIsIiJdLFsyLCJRdWVyeVN0YXR1cyIsIlF1ZXJ5U3RhdHVzIiwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIiwiIl1dfV19"
} }

Просмотреть файл

@ -2,13 +2,13 @@
"status": 200, "status": 200,
"headers": { "headers": {
"content-type": "application/json; charset=UTF-8", "content-type": "application/json; charset=UTF-8",
"date": "Sun, 24 Apr 2022 07:43:37 GMT", "date": "Sun, 24 Apr 2022 09:33:24 GMT",
"server": "Microsoft-HTTPAPI/2.0", "server": "Microsoft-HTTPAPI/2.0",
"strict-transport-security": "max-age=15724800; includeSubDomains", "strict-transport-security": "max-age=15724800; includeSubDomains",
"transfer-encoding": "chunked", "transfer-encoding": "chunked",
"vary": "Accept-Encoding", "vary": "Accept-Encoding",
"x-ms-activity-id": "eeb7ad5b-699a-48cc-a714-152e2ea6f7ed", "x-ms-activity-id": "e62523d7-d12a-4a9a-bb32-c0af75df6741",
"x-ms-client-request-id": "unspecified;96536d13-544b-4e63-859d-122b2976265c" "x-ms-client-request-id": "unspecified;362b007a-b118-4d87-8485-c676f9e00ad4"
}, },
"body": "W3siRnJhbWVUeXBlIjoiRGF0YVNldEhlYWRlciIsIklzUHJvZ3Jlc3NpdmUiOmZhbHNlLCJWZXJzaW9uIjoidjIuMCJ9LHsiRnJhbWVUeXBlIjoiRGF0YVRhYmxlIiwiVGFibGVJZCI6MCwiVGFibGVLaW5kIjoiUXVlcnlQcm9wZXJ0aWVzIiwiVGFibGVOYW1lIjoiQEV4dGVuZGVkUHJvcGVydGllcyIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJUYWJsZUlkIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IktleSIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJWYWx1ZSIsIkNvbHVtblR5cGUiOiJkeW5hbWljIn1dLCJSb3dzIjpbWzEsIlZpc3VhbGl6YXRpb24iLCJ7XCJWaXN1YWxpemF0aW9uXCI6bnVsbCxcIlRpdGxlXCI6bnVsbCxcIlhDb2x1bW5cIjpudWxsLFwiU2VyaWVzXCI6bnVsbCxcIllDb2x1bW5zXCI6bnVsbCxcIkFub21hbHlDb2x1bW5zXCI6bnVsbCxcIlhUaXRsZVwiOm51bGwsXCJZVGl0bGVcIjpudWxsLFwiWEF4aXNcIjpudWxsLFwiWUF4aXNcIjpudWxsLFwiTGVnZW5kXCI6bnVsbCxcIllTcGxpdFwiOm51bGwsXCJBY2N1bXVsYXRlXCI6ZmFsc2UsXCJJc1F1ZXJ5U29ydGVkXCI6ZmFsc2UsXCJLaW5kXCI6bnVsbCxcIlltaW5cIjpcIk5hTlwiLFwiWW1heFwiOlwiTmFOXCIsXCJYbWluXCI6bnVsbCxcIlhtYXhcIjpudWxsfSJdXX0seyJGcmFtZVR5cGUiOiJEYXRhVGFibGUiLCJUYWJsZUlkIjoxLCJUYWJsZUtpbmQiOiJQcmltYXJ5UmVzdWx0IiwiVGFibGVOYW1lIjoiUHJpbWFyeVJlc3VsdCIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJzdHIiLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyJIZWxsbywgV29ybGQhIl1dfSx7IkZyYW1lVHlwZSI6IkRhdGFUYWJsZSIsIlRhYmxlSWQiOjIsIlRhYmxlS2luZCI6IlF1ZXJ5Q29tcGxldGlvbkluZm9ybWF0aW9uIiwiVGFibGVOYW1lIjoiUXVlcnlDb21wbGV0aW9uSW5mb3JtYXRpb24iLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiVGltZXN0YW1wIiwiQ29sdW1uVHlwZSI6ImRhdGV0aW1lIn0seyJDb2x1bW5OYW1lIjoiQ2xpZW50UmVxdWVzdElkIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IkFjdGl2aXR5SWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6IlN1YkFjdGl2aXR5SWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6IlBhcmVudEFjdGl2aXR5SWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6IkxldmVsIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IkxldmVsTmFtZSIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJTdGF0dXNDb2RlIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlN0YXR1c0NvZGVOYW1lIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IkV2ZW50VHlwZSIsIkNvbHVtblR5cGUiOiJpbnQifSx7IkNvbHVtbk5hbWUiOiJFdmVudFR5cGVOYW1lIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IlBheWxvYWQiLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyIyMDIyLTA0LTI0VDA3OjQzOjM3Ljk5MTIzNFoiLCJ1bnNwZWNpZmllZDs5NjUzNmQxMy01NDRiLTRlNjMtODU5ZC0xMjJiMjk3NjI2NWMiLCJlZWI3YWQ1Yi02OTlhLTQ4Y2MtYTcxNC0xNTJlMmVhNmY3ZWQiLCI4YTUwYmNiOS01YTQ0LTRlOGEtYTA0NS0xMDY3ZWM3OGE5NjIiLCJjODdlNTAyNi0xMDNhLTQ1NmUtOWNlZS0wNDM2YTRhOWEzNTIiLDQsIkluZm8iLDAsIlNfT0sgKDApIiw0LCJRdWVyeUluZm8iLCJ7XCJDb3VudFwiOjEsXCJUZXh0XCI6XCJRdWVyeSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XCJ9Il0sWyIyMDIyLTA0LTI0VDA3OjQzOjM3Ljk5MTIzNFoiLCJ1bnNwZWNpZmllZDs5NjUzNmQxMy01NDRiLTRlNjMtODU5ZC0xMjJiMjk3NjI2NWMiLCJlZWI3YWQ1Yi02OTlhLTQ4Y2MtYTcxNC0xNTJlMmVhNmY3ZWQiLCI4YTUwYmNiOS01YTQ0LTRlOGEtYTA0NS0xMDY3ZWM3OGE5NjIiLCJjODdlNTAyNi0xMDNhLTQ1NmUtOWNlZS0wNDM2YTRhOWEzNTIiLDYsIlN0YXRzIiwwLCJTX09LICgwKSIsMCwiUXVlcnlSZXNvdXJjZUNvbnN1bXB0aW9uIiwie1wiRXhlY3V0aW9uVGltZVwiOjAuMCxcInJlc291cmNlX3VzYWdlXCI6e1wiY2FjaGVcIjp7XCJtZW1vcnlcIjp7XCJoaXRzXCI6MyxcIm1pc3Nlc1wiOjAsXCJ0b3RhbFwiOjN9LFwiZGlza1wiOntcImhpdHNcIjowLFwibWlzc2VzXCI6MCxcInRvdGFsXCI6MH0sXCJzaGFyZHNcIjp7XCJob3RcIjp7XCJoaXRieXRlc1wiOjAsXCJtaXNzYnl0ZXNcIjowLFwicmV0cmlldmVieXRlc1wiOjB9LFwiY29sZFwiOntcImhpdGJ5dGVzXCI6MCxcIm1pc3NieXRlc1wiOjAsXCJyZXRyaWV2ZWJ5dGVzXCI6MH0sXCJieXBhc3NieXRlc1wiOjB9fSxcImNwdVwiOntcInVzZXJcIjpcIjAwOjAwOjAwXCIsXCJrZXJuZWxcIjpcIjAwOjAwOjAwXCIsXCJ0b3RhbCBjcHVcIjpcIjAwOjAwOjAwXCJ9LFwibWVtb3J5XCI6e1wicGVha19wZXJfbm9kZVwiOjIwOTc1ODR9LFwibmV0d29ya1wiOntcImludGVyX2NsdXN0ZXJfdG90YWxfYnl0ZXNcIjo2NDMsXCJjcm9zc19jbHVzdGVyX3RvdGFsX2J5dGVzXCI6MH19LFwiaW5wdXRfZGF0YXNldF9zdGF0aXN0aWNzXCI6e1wiZXh0ZW50c1wiOntcInRvdGFsXCI6MSxcInNjYW5uZWRcIjoxLFwic2Nhbm5lZF9taW5fZGF0ZXRpbWVcIjpcIjIwMjItMDQtMjRUMDc6NDM6MzcuMDg0OTgxN1pcIixcInNjYW5uZWRfbWF4X2RhdGV0aW1lXCI6XCIyMDIyLTA0LTI0VDA3OjQzOjM3LjA4NDk4MTdaXCJ9LFwicm93c1wiOntcInRvdGFsXCI6MSxcInNjYW5uZWRcIjoxfSxcInJvd3N0b3Jlc1wiOntcInNjYW5uZWRfcm93c1wiOjAsXCJzY2FubmVkX3ZhbHVlc19zaXplXCI6MH0sXCJzaGFyZHNcIjp7XCJxdWVyaWVzX2dlbmVyaWNcIjowLFwicXVlcmllc19zcGVjaWFsaXplZFwiOjB9fSxcImRhdGFzZXRfc3RhdGlzdGljc1wiOlt7XCJ0YWJsZV9yb3dfY291bnRcIjoxLFwidGFibGVfc2l6ZVwiOjR9XX0iXV19LHsiRnJhbWVUeXBlIjoiRGF0YVNldENvbXBsZXRpb24iLCJIYXNFcnJvcnMiOmZhbHNlLCJDYW5jZWxsZWQiOmZhbHNlfV0=" "body": "W3siRnJhbWVUeXBlIjoiRGF0YVNldEhlYWRlciIsIklzUHJvZ3Jlc3NpdmUiOmZhbHNlLCJWZXJzaW9uIjoidjIuMCJ9LHsiRnJhbWVUeXBlIjoiRGF0YVRhYmxlIiwiVGFibGVJZCI6MCwiVGFibGVLaW5kIjoiUXVlcnlQcm9wZXJ0aWVzIiwiVGFibGVOYW1lIjoiQEV4dGVuZGVkUHJvcGVydGllcyIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJUYWJsZUlkIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IktleSIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJWYWx1ZSIsIkNvbHVtblR5cGUiOiJkeW5hbWljIn1dLCJSb3dzIjpbWzEsIlZpc3VhbGl6YXRpb24iLCJ7XCJWaXN1YWxpemF0aW9uXCI6bnVsbCxcIlRpdGxlXCI6bnVsbCxcIlhDb2x1bW5cIjpudWxsLFwiU2VyaWVzXCI6bnVsbCxcIllDb2x1bW5zXCI6bnVsbCxcIkFub21hbHlDb2x1bW5zXCI6bnVsbCxcIlhUaXRsZVwiOm51bGwsXCJZVGl0bGVcIjpudWxsLFwiWEF4aXNcIjpudWxsLFwiWUF4aXNcIjpudWxsLFwiTGVnZW5kXCI6bnVsbCxcIllTcGxpdFwiOm51bGwsXCJBY2N1bXVsYXRlXCI6ZmFsc2UsXCJJc1F1ZXJ5U29ydGVkXCI6ZmFsc2UsXCJLaW5kXCI6bnVsbCxcIlltaW5cIjpcIk5hTlwiLFwiWW1heFwiOlwiTmFOXCIsXCJYbWluXCI6bnVsbCxcIlhtYXhcIjpudWxsfSJdXX0seyJGcmFtZVR5cGUiOiJEYXRhVGFibGUiLCJUYWJsZUlkIjoxLCJUYWJsZUtpbmQiOiJQcmltYXJ5UmVzdWx0IiwiVGFibGVOYW1lIjoiUHJpbWFyeVJlc3VsdCIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJzdHIiLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyJIZWxsbywgV29ybGQhIl1dfSx7IkZyYW1lVHlwZSI6IkRhdGFUYWJsZSIsIlRhYmxlSWQiOjIsIlRhYmxlS2luZCI6IlF1ZXJ5Q29tcGxldGlvbkluZm9ybWF0aW9uIiwiVGFibGVOYW1lIjoiUXVlcnlDb21wbGV0aW9uSW5mb3JtYXRpb24iLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiVGltZXN0YW1wIiwiQ29sdW1uVHlwZSI6ImRhdGV0aW1lIn0seyJDb2x1bW5OYW1lIjoiQ2xpZW50UmVxdWVzdElkIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IkFjdGl2aXR5SWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6IlN1YkFjdGl2aXR5SWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6IlBhcmVudEFjdGl2aXR5SWQiLCJDb2x1bW5UeXBlIjoiZ3VpZCJ9LHsiQ29sdW1uTmFtZSI6IkxldmVsIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IkxldmVsTmFtZSIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJTdGF0dXNDb2RlIiwiQ29sdW1uVHlwZSI6ImludCJ9LHsiQ29sdW1uTmFtZSI6IlN0YXR1c0NvZGVOYW1lIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IkV2ZW50VHlwZSIsIkNvbHVtblR5cGUiOiJpbnQifSx7IkNvbHVtbk5hbWUiOiJFdmVudFR5cGVOYW1lIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IlBheWxvYWQiLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyIyMDIyLTA0LTI0VDA5OjMzOjI1Ljc3NTUwNjlaIiwidW5zcGVjaWZpZWQ7MzYyYjAwN2EtYjExOC00ZDg3LTg0ODUtYzY3NmY5ZTAwYWQ0IiwiZTYyNTIzZDctZDEyYS00YTlhLWJiMzItYzBhZjc1ZGY2NzQxIiwiYWU2NmUxZGYtMzk2Ny00ZjUwLTgxNjItZDAyNzVkOTY3MTIyIiwiMjdlODgxNDYtODdiYS00ZTc2LWFhNGItMTIxY2QyMDNlZmEwIiw0LCJJbmZvIiwwLCJTX09LICgwKSIsNCwiUXVlcnlJbmZvIiwie1wiQ291bnRcIjoxLFwiVGV4dFwiOlwiUXVlcnkgY29tcGxldGVkIHN1Y2Nlc3NmdWxseVwifSJdLFsiMjAyMi0wNC0yNFQwOTozMzoyNS43NzU1MDY5WiIsInVuc3BlY2lmaWVkOzM2MmIwMDdhLWIxMTgtNGQ4Ny04NDg1LWM2NzZmOWUwMGFkNCIsImU2MjUyM2Q3LWQxMmEtNGE5YS1iYjMyLWMwYWY3NWRmNjc0MSIsImFlNjZlMWRmLTM5NjctNGY1MC04MTYyLWQwMjc1ZDk2NzEyMiIsIjI3ZTg4MTQ2LTg3YmEtNGU3Ni1hYTRiLTEyMWNkMjAzZWZhMCIsNiwiU3RhdHMiLDAsIlNfT0sgKDApIiwwLCJRdWVyeVJlc291cmNlQ29uc3VtcHRpb24iLCJ7XCJFeGVjdXRpb25UaW1lXCI6MC4wMTU2NDU5LFwicmVzb3VyY2VfdXNhZ2VcIjp7XCJjYWNoZVwiOntcIm1lbW9yeVwiOntcImhpdHNcIjozLFwibWlzc2VzXCI6MCxcInRvdGFsXCI6M30sXCJkaXNrXCI6e1wiaGl0c1wiOjAsXCJtaXNzZXNcIjowLFwidG90YWxcIjowfSxcInNoYXJkc1wiOntcImhvdFwiOntcImhpdGJ5dGVzXCI6MCxcIm1pc3NieXRlc1wiOjAsXCJyZXRyaWV2ZWJ5dGVzXCI6MH0sXCJjb2xkXCI6e1wiaGl0Ynl0ZXNcIjowLFwibWlzc2J5dGVzXCI6MCxcInJldHJpZXZlYnl0ZXNcIjowfSxcImJ5cGFzc2J5dGVzXCI6MH19LFwiY3B1XCI6e1widXNlclwiOlwiMDA6MDA6MDBcIixcImtlcm5lbFwiOlwiMDA6MDA6MDBcIixcInRvdGFsIGNwdVwiOlwiMDA6MDA6MDBcIn0sXCJtZW1vcnlcIjp7XCJwZWFrX3Blcl9ub2RlXCI6MjA5NzU4NH0sXCJuZXR3b3JrXCI6e1wiaW50ZXJfY2x1c3Rlcl90b3RhbF9ieXRlc1wiOjY0MyxcImNyb3NzX2NsdXN0ZXJfdG90YWxfYnl0ZXNcIjowfX0sXCJpbnB1dF9kYXRhc2V0X3N0YXRpc3RpY3NcIjp7XCJleHRlbnRzXCI6e1widG90YWxcIjoxLFwic2Nhbm5lZFwiOjEsXCJzY2FubmVkX21pbl9kYXRldGltZVwiOlwiMjAyMi0wNC0yNFQwOTozMzoyNC43Njg4MjUyWlwiLFwic2Nhbm5lZF9tYXhfZGF0ZXRpbWVcIjpcIjIwMjItMDQtMjRUMDk6MzM6MjQuNzY4ODI1MlpcIn0sXCJyb3dzXCI6e1widG90YWxcIjoxLFwic2Nhbm5lZFwiOjF9LFwicm93c3RvcmVzXCI6e1wic2Nhbm5lZF9yb3dzXCI6MCxcInNjYW5uZWRfdmFsdWVzX3NpemVcIjowfSxcInNoYXJkc1wiOntcInF1ZXJpZXNfZ2VuZXJpY1wiOjAsXCJxdWVyaWVzX3NwZWNpYWxpemVkXCI6MH19LFwiZGF0YXNldF9zdGF0aXN0aWNzXCI6W3tcInRhYmxlX3Jvd19jb3VudFwiOjEsXCJ0YWJsZV9zaXplXCI6NH1dfSJdXX0seyJGcmFtZVR5cGUiOiJEYXRhU2V0Q29tcGxldGlvbiIsIkhhc0Vycm9ycyI6ZmFsc2UsIkNhbmNlbGxlZCI6ZmFsc2V9XQ=="
} }

Просмотреть файл

@ -2,13 +2,13 @@
"status": 200, "status": 200,
"headers": { "headers": {
"content-type": "application/json; charset=UTF-8", "content-type": "application/json; charset=UTF-8",
"date": "Sun, 24 Apr 2022 07:43:38 GMT", "date": "Sun, 24 Apr 2022 09:33:26 GMT",
"server": "Microsoft-HTTPAPI/2.0", "server": "Microsoft-HTTPAPI/2.0",
"strict-transport-security": "max-age=15724800; includeSubDomains", "strict-transport-security": "max-age=15724800; includeSubDomains",
"transfer-encoding": "chunked", "transfer-encoding": "chunked",
"vary": "Accept-Encoding", "vary": "Accept-Encoding",
"x-ms-activity-id": "2fc58e57-6f86-47d0-972a-aca9e8ac9cb1", "x-ms-activity-id": "bf7e61cb-8148-445b-89e7-1ed6d0aeaa92",
"x-ms-client-request-id": "unspecified;b31308bb-ca59-422a-a8c7-91d5265a00a1" "x-ms-client-request-id": "unspecified;7bbc7e95-fc97-4884-94f5-c6d7f9fd8607"
}, },
"body": "eyJUYWJsZXMiOlt7IlRhYmxlTmFtZSI6IlRhYmxlXzAiLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiVGFibGVOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRGF0YWJhc2VOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRm9sZGVyIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRG9jU3RyaW5nIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbXX0seyJUYWJsZU5hbWUiOiJUYWJsZV8xIiwiQ29sdW1ucyI6W3siQ29sdW1uTmFtZSI6IlZhbHVlIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyJ7XCJWaXN1YWxpemF0aW9uXCI6bnVsbCxcIlRpdGxlXCI6bnVsbCxcIlhDb2x1bW5cIjpudWxsLFwiU2VyaWVzXCI6bnVsbCxcIllDb2x1bW5zXCI6bnVsbCxcIkFub21hbHlDb2x1bW5zXCI6bnVsbCxcIlhUaXRsZVwiOm51bGwsXCJZVGl0bGVcIjpudWxsLFwiWEF4aXNcIjpudWxsLFwiWUF4aXNcIjpudWxsLFwiTGVnZW5kXCI6bnVsbCxcIllTcGxpdFwiOm51bGwsXCJBY2N1bXVsYXRlXCI6ZmFsc2UsXCJJc1F1ZXJ5U29ydGVkXCI6ZmFsc2UsXCJLaW5kXCI6bnVsbCxcIlltaW5cIjpcIk5hTlwiLFwiWW1heFwiOlwiTmFOXCIsXCJYbWluXCI6bnVsbCxcIlhtYXhcIjpudWxsfSJdXX0seyJUYWJsZU5hbWUiOiJUYWJsZV8yIiwiQ29sdW1ucyI6W3siQ29sdW1uTmFtZSI6IlRpbWVzdGFtcCIsIkRhdGFUeXBlIjoiRGF0ZVRpbWUiLCJDb2x1bW5UeXBlIjoiZGF0ZXRpbWUifSx7IkNvbHVtbk5hbWUiOiJTZXZlcml0eSIsIkRhdGFUeXBlIjoiSW50MzIiLCJDb2x1bW5UeXBlIjoiaW50In0seyJDb2x1bW5OYW1lIjoiU2V2ZXJpdHlOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiU3RhdHVzQ29kZSIsIkRhdGFUeXBlIjoiSW50MzIiLCJDb2x1bW5UeXBlIjoiaW50In0seyJDb2x1bW5OYW1lIjoiU3RhdHVzRGVzY3JpcHRpb24iLCJEYXRhVHlwZSI6IlN0cmluZyIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJDb3VudCIsIkRhdGFUeXBlIjoiSW50MzIiLCJDb2x1bW5UeXBlIjoiaW50In0seyJDb2x1bW5OYW1lIjoiUmVxdWVzdElkIiwiRGF0YVR5cGUiOiJHdWlkIiwiQ29sdW1uVHlwZSI6Imd1aWQifSx7IkNvbHVtbk5hbWUiOiJBY3Rpdml0eUlkIiwiRGF0YVR5cGUiOiJHdWlkIiwiQ29sdW1uVHlwZSI6Imd1aWQifSx7IkNvbHVtbk5hbWUiOiJTdWJBY3Rpdml0eUlkIiwiRGF0YVR5cGUiOiJHdWlkIiwiQ29sdW1uVHlwZSI6Imd1aWQifSx7IkNvbHVtbk5hbWUiOiJDbGllbnRBY3Rpdml0eUlkIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyIyMDIyLTA0LTI0VDA3OjQzOjM4LjQyODcwNjFaIiw0LCJJbmZvIiwwLCJRdWVyeSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IiwxLCIyZmM1OGU1Ny02Zjg2LTQ3ZDAtOTcyYS1hY2E5ZThhYzljYjEiLCIyZmM1OGU1Ny02Zjg2LTQ3ZDAtOTcyYS1hY2E5ZThhYzljYjEiLCI2YjNiMzdlMS01OWZlLTQyYTUtOGJjOS1kNjYwZjQwMDYzYTEiLCJ1bnNwZWNpZmllZDtiMzEzMDhiYi1jYTU5LTQyMmEtYThjNy05MWQ1MjY1YTAwYTEiXSxbIjIwMjItMDQtMjRUMDc6NDM6MzguNDI4NzA2MVoiLDYsIlN0YXRzIiwwLCJ7XCJFeGVjdXRpb25UaW1lXCI6MC4wNDY4NzM0LFwicmVzb3VyY2VfdXNhZ2VcIjp7XCJjYWNoZVwiOntcIm1lbW9yeVwiOntcImhpdHNcIjowLFwibWlzc2VzXCI6MCxcInRvdGFsXCI6MH0sXCJkaXNrXCI6e1wiaGl0c1wiOjAsXCJtaXNzZXNcIjowLFwidG90YWxcIjowfSxcInNoYXJkc1wiOntcImhvdFwiOntcImhpdGJ5dGVzXCI6MCxcIm1pc3NieXRlc1wiOjAsXCJyZXRyaWV2ZWJ5dGVzXCI6MH0sXCJjb2xkXCI6e1wiaGl0Ynl0ZXNcIjowLFwibWlzc2J5dGVzXCI6MCxcInJldHJpZXZlYnl0ZXNcIjowfSxcImJ5cGFzc2J5dGVzXCI6MH19LFwiY3B1XCI6e1widXNlclwiOlwiMDA6MDA6MDBcIixcImtlcm5lbFwiOlwiMDA6MDA6MDBcIixcInRvdGFsIGNwdVwiOlwiMDA6MDA6MDBcIn0sXCJtZW1vcnlcIjp7XCJwZWFrX3Blcl9ub2RlXCI6NTI0Mzg0fSxcIm5ldHdvcmtcIjp7XCJpbnRlcl9jbHVzdGVyX3RvdGFsX2J5dGVzXCI6NTMyLFwiY3Jvc3NfY2x1c3Rlcl90b3RhbF9ieXRlc1wiOjB9fSxcImlucHV0X2RhdGFzZXRfc3RhdGlzdGljc1wiOntcImV4dGVudHNcIjp7XCJ0b3RhbFwiOjAsXCJzY2FubmVkXCI6MCxcInNjYW5uZWRfbWluX2RhdGV0aW1lXCI6XCIwMDAxLTAxLTAxVDAwOjAwOjAwLjAwMDAwMDBaXCIsXCJzY2FubmVkX21heF9kYXRldGltZVwiOlwiMDAwMS0wMS0wMVQwMDowMDowMC4wMDAwMDAwWlwifSxcInJvd3NcIjp7XCJ0b3RhbFwiOjAsXCJzY2FubmVkXCI6MH0sXCJyb3dzdG9yZXNcIjp7XCJzY2FubmVkX3Jvd3NcIjowLFwic2Nhbm5lZF92YWx1ZXNfc2l6ZVwiOjB9LFwic2hhcmRzXCI6e1wicXVlcmllc19nZW5lcmljXCI6MCxcInF1ZXJpZXNfc3BlY2lhbGl6ZWRcIjowfX0sXCJkYXRhc2V0X3N0YXRpc3RpY3NcIjpbe1widGFibGVfcm93X2NvdW50XCI6MCxcInRhYmxlX3NpemVcIjowfV19IiwxLCIyZmM1OGU1Ny02Zjg2LTQ3ZDAtOTcyYS1hY2E5ZThhYzljYjEiLCIyZmM1OGU1Ny02Zjg2LTQ3ZDAtOTcyYS1hY2E5ZThhYzljYjEiLCI2YjNiMzdlMS01OWZlLTQyYTUtOGJjOS1kNjYwZjQwMDYzYTEiLCJ1bnNwZWNpZmllZDtiMzEzMDhiYi1jYTU5LTQyMmEtYThjNy05MWQ1MjY1YTAwYTEiXV19LHsiVGFibGVOYW1lIjoiVGFibGVfMyIsIkNvbHVtbnMiOlt7IkNvbHVtbk5hbWUiOiJPcmRpbmFsIiwiRGF0YVR5cGUiOiJJbnQ2NCIsIkNvbHVtblR5cGUiOiJsb25nIn0seyJDb2x1bW5OYW1lIjoiS2luZCIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6Ik5hbWUiLCJEYXRhVHlwZSI6IlN0cmluZyIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJJZCIsIkRhdGFUeXBlIjoiU3RyaW5nIiwiQ29sdW1uVHlwZSI6InN0cmluZyJ9LHsiQ29sdW1uTmFtZSI6IlByZXR0eU5hbWUiLCJEYXRhVHlwZSI6IlN0cmluZyIsIkNvbHVtblR5cGUiOiJzdHJpbmcifV0sIlJvd3MiOltbMCwiUXVlcnlSZXN1bHQiLCJQcmltYXJ5UmVzdWx0IiwiMzg4Y2YyMTItMmI4NC00YzRiLWE5NjYtOGI3OTkzNTc0NTg4IiwiIl0sWzEsIlF1ZXJ5UHJvcGVydGllcyIsIkBFeHRlbmRlZFByb3BlcnRpZXMiLCI3OGUxYjJhNi1hNGEzLTQ2MzItYjgzOC0xMDQwMTZmMTNjYjEiLCIiXSxbMiwiUXVlcnlTdGF0dXMiLCJRdWVyeVN0YXR1cyIsIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCIsIiJdXX1dfQ==" "body": "eyJUYWJsZXMiOlt7IlRhYmxlTmFtZSI6IlRhYmxlXzAiLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiVGFibGVOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRGF0YWJhc2VOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRm9sZGVyIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiRG9jU3RyaW5nIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbXX0seyJUYWJsZU5hbWUiOiJUYWJsZV8xIiwiQ29sdW1ucyI6W3siQ29sdW1uTmFtZSI6IlZhbHVlIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyJ7XCJWaXN1YWxpemF0aW9uXCI6bnVsbCxcIlRpdGxlXCI6bnVsbCxcIlhDb2x1bW5cIjpudWxsLFwiU2VyaWVzXCI6bnVsbCxcIllDb2x1bW5zXCI6bnVsbCxcIkFub21hbHlDb2x1bW5zXCI6bnVsbCxcIlhUaXRsZVwiOm51bGwsXCJZVGl0bGVcIjpudWxsLFwiWEF4aXNcIjpudWxsLFwiWUF4aXNcIjpudWxsLFwiTGVnZW5kXCI6bnVsbCxcIllTcGxpdFwiOm51bGwsXCJBY2N1bXVsYXRlXCI6ZmFsc2UsXCJJc1F1ZXJ5U29ydGVkXCI6ZmFsc2UsXCJLaW5kXCI6bnVsbCxcIlltaW5cIjpcIk5hTlwiLFwiWW1heFwiOlwiTmFOXCIsXCJYbWluXCI6bnVsbCxcIlhtYXhcIjpudWxsfSJdXX0seyJUYWJsZU5hbWUiOiJUYWJsZV8yIiwiQ29sdW1ucyI6W3siQ29sdW1uTmFtZSI6IlRpbWVzdGFtcCIsIkRhdGFUeXBlIjoiRGF0ZVRpbWUiLCJDb2x1bW5UeXBlIjoiZGF0ZXRpbWUifSx7IkNvbHVtbk5hbWUiOiJTZXZlcml0eSIsIkRhdGFUeXBlIjoiSW50MzIiLCJDb2x1bW5UeXBlIjoiaW50In0seyJDb2x1bW5OYW1lIjoiU2V2ZXJpdHlOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiU3RhdHVzQ29kZSIsIkRhdGFUeXBlIjoiSW50MzIiLCJDb2x1bW5UeXBlIjoiaW50In0seyJDb2x1bW5OYW1lIjoiU3RhdHVzRGVzY3JpcHRpb24iLCJEYXRhVHlwZSI6IlN0cmluZyIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJDb3VudCIsIkRhdGFUeXBlIjoiSW50MzIiLCJDb2x1bW5UeXBlIjoiaW50In0seyJDb2x1bW5OYW1lIjoiUmVxdWVzdElkIiwiRGF0YVR5cGUiOiJHdWlkIiwiQ29sdW1uVHlwZSI6Imd1aWQifSx7IkNvbHVtbk5hbWUiOiJBY3Rpdml0eUlkIiwiRGF0YVR5cGUiOiJHdWlkIiwiQ29sdW1uVHlwZSI6Imd1aWQifSx7IkNvbHVtbk5hbWUiOiJTdWJBY3Rpdml0eUlkIiwiRGF0YVR5cGUiOiJHdWlkIiwiQ29sdW1uVHlwZSI6Imd1aWQifSx7IkNvbHVtbk5hbWUiOiJDbGllbnRBY3Rpdml0eUlkIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWyIyMDIyLTA0LTI0VDA5OjMzOjI2LjI5MTExM1oiLDQsIkluZm8iLDAsIlF1ZXJ5IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkiLDEsImJmN2U2MWNiLTgxNDgtNDQ1Yi04OWU3LTFlZDZkMGFlYWE5MiIsImJmN2U2MWNiLTgxNDgtNDQ1Yi04OWU3LTFlZDZkMGFlYWE5MiIsIjRmNDU3MTk0LTMxYTUtNDc1OS05N2YxLThhMTMwZWY0NmRjYiIsInVuc3BlY2lmaWVkOzdiYmM3ZTk1LWZjOTctNDg4NC05NGY1LWM2ZDdmOWZkODYwNyJdLFsiMjAyMi0wNC0yNFQwOTozMzoyNi4yOTExMTNaIiw2LCJTdGF0cyIsMCwie1wiRXhlY3V0aW9uVGltZVwiOjAuMDQ2ODg4NixcInJlc291cmNlX3VzYWdlXCI6e1wiY2FjaGVcIjp7XCJtZW1vcnlcIjp7XCJoaXRzXCI6MCxcIm1pc3Nlc1wiOjAsXCJ0b3RhbFwiOjB9LFwiZGlza1wiOntcImhpdHNcIjowLFwibWlzc2VzXCI6MCxcInRvdGFsXCI6MH0sXCJzaGFyZHNcIjp7XCJob3RcIjp7XCJoaXRieXRlc1wiOjAsXCJtaXNzYnl0ZXNcIjowLFwicmV0cmlldmVieXRlc1wiOjB9LFwiY29sZFwiOntcImhpdGJ5dGVzXCI6MCxcIm1pc3NieXRlc1wiOjAsXCJyZXRyaWV2ZWJ5dGVzXCI6MH0sXCJieXBhc3NieXRlc1wiOjB9fSxcImNwdVwiOntcInVzZXJcIjpcIjAwOjAwOjAwXCIsXCJrZXJuZWxcIjpcIjAwOjAwOjAwXCIsXCJ0b3RhbCBjcHVcIjpcIjAwOjAwOjAwXCJ9LFwibWVtb3J5XCI6e1wicGVha19wZXJfbm9kZVwiOjUyNDM4NH0sXCJuZXR3b3JrXCI6e1wiaW50ZXJfY2x1c3Rlcl90b3RhbF9ieXRlc1wiOjUzMixcImNyb3NzX2NsdXN0ZXJfdG90YWxfYnl0ZXNcIjowfX0sXCJpbnB1dF9kYXRhc2V0X3N0YXRpc3RpY3NcIjp7XCJleHRlbnRzXCI6e1widG90YWxcIjowLFwic2Nhbm5lZFwiOjAsXCJzY2FubmVkX21pbl9kYXRldGltZVwiOlwiMDAwMS0wMS0wMVQwMDowMDowMC4wMDAwMDAwWlwiLFwic2Nhbm5lZF9tYXhfZGF0ZXRpbWVcIjpcIjAwMDEtMDEtMDFUMDA6MDA6MDAuMDAwMDAwMFpcIn0sXCJyb3dzXCI6e1widG90YWxcIjowLFwic2Nhbm5lZFwiOjB9LFwicm93c3RvcmVzXCI6e1wic2Nhbm5lZF9yb3dzXCI6MCxcInNjYW5uZWRfdmFsdWVzX3NpemVcIjowfSxcInNoYXJkc1wiOntcInF1ZXJpZXNfZ2VuZXJpY1wiOjAsXCJxdWVyaWVzX3NwZWNpYWxpemVkXCI6MH19LFwiZGF0YXNldF9zdGF0aXN0aWNzXCI6W3tcInRhYmxlX3Jvd19jb3VudFwiOjAsXCJ0YWJsZV9zaXplXCI6MH1dfSIsMSwiYmY3ZTYxY2ItODE0OC00NDViLTg5ZTctMWVkNmQwYWVhYTkyIiwiYmY3ZTYxY2ItODE0OC00NDViLTg5ZTctMWVkNmQwYWVhYTkyIiwiNGY0NTcxOTQtMzFhNS00NzU5LTk3ZjEtOGExMzBlZjQ2ZGNiIiwidW5zcGVjaWZpZWQ7N2JiYzdlOTUtZmM5Ny00ODg0LTk0ZjUtYzZkN2Y5ZmQ4NjA3Il1dfSx7IlRhYmxlTmFtZSI6IlRhYmxlXzMiLCJDb2x1bW5zIjpbeyJDb2x1bW5OYW1lIjoiT3JkaW5hbCIsIkRhdGFUeXBlIjoiSW50NjQiLCJDb2x1bW5UeXBlIjoibG9uZyJ9LHsiQ29sdW1uTmFtZSI6IktpbmQiLCJEYXRhVHlwZSI6IlN0cmluZyIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn0seyJDb2x1bW5OYW1lIjoiSWQiLCJEYXRhVHlwZSI6IlN0cmluZyIsIkNvbHVtblR5cGUiOiJzdHJpbmcifSx7IkNvbHVtbk5hbWUiOiJQcmV0dHlOYW1lIiwiRGF0YVR5cGUiOiJTdHJpbmciLCJDb2x1bW5UeXBlIjoic3RyaW5nIn1dLCJSb3dzIjpbWzAsIlF1ZXJ5UmVzdWx0IiwiUHJpbWFyeVJlc3VsdCIsIjg0ODcwYjE3LThmM2YtNDFjYy05YmU2LTUxYmZlYjk0MmQ5YiIsIiJdLFsxLCJRdWVyeVByb3BlcnRpZXMiLCJARXh0ZW5kZWRQcm9wZXJ0aWVzIiwiNDM5MWIxNzQtMjlmNS00NGM4LWFhOTEtNjEwOTUwNWI2MTI4IiwiIl0sWzIsIlF1ZXJ5U3RhdHVzIiwiUXVlcnlTdGF0dXMiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCIiXV19XX0="
} }

Просмотреть файл

@ -0,0 +1 @@
ctna