diff --git a/src/test_record.rs b/src/test_record.rs index e5be2b0f..f3a0200d 100644 --- a/src/test_record.rs +++ b/src/test_record.rs @@ -27,22 +27,21 @@ pub enum Activity { webhook_event: String, payload: serde_json::Value, }, - /// An outgoing request to api.github.com, and its response. - ApiRequest { + /// An outgoing request to api.github.com or raw.githubusercontent.com, and its response. + Request { method: String, path: String, query: Option, request_body: String, response_code: u16, + /// The body of the response. + /// + /// For non-JSON requests, it is encoded as a `Value::String` under + /// the assumption that GitHub never returns a JSON string for a + /// response. This is done so that the JSON bodies can be formatted + /// nicely in the `.json` bodies to make inspecting them easier. response_body: serde_json::Value, }, - /// An outgoing request to raw.githubusercontent.com, and its response. - RawRequest { - path: String, - query: Option, - response_code: u16, - response_body: String, - }, /// Sent by the mock HTTP server to the test framework when it detects /// something is wrong. Error { message: String }, @@ -54,10 +53,8 @@ pub enum Activity { /// Information about an HTTP request that is captured before sending. /// /// This is needed to avoid messing with cloning the Request. +#[derive(Debug)] pub struct RequestInfo { - /// If this is `true`, then it is for raw.githubusercontent.com. - /// If `false`, then it is for api.github.com. - is_raw: bool, method: String, path: String, query: Option, @@ -175,9 +172,7 @@ pub fn capture_request(req: &Request) -> Option { .and_then(|body| body.as_bytes()) .map(|bytes| String::from_utf8(bytes.to_vec()).unwrap()) .unwrap_or_default(); - let is_raw = url.host_str().unwrap().contains("raw"); let info = RequestInfo { - is_raw, method: req.method().to_string(), path: url.path().to_string(), query: url.query().map(|q| q.to_string()), @@ -194,51 +189,32 @@ pub fn record_request(info: Option, status: StatusCode, body: &[u8] let Some(info) = info else { return }; let Some(record_dir) = record_dir() else { return }; let response_code = status.as_u16(); - let mut name = info.path.replace(['/', '.'], "_"); - if name.starts_with('_') { - name.remove(0); + let mut munged_path = info.path.replace(['/', '.'], "_"); + if munged_path.starts_with('_') { + munged_path.remove(0); } - let (kind, activity) = if info.is_raw { - ( - "raw", - Activity::RawRequest { - path: info.path, - query: info.query, - response_code, - response_body: String::from_utf8_lossy(body).to_string(), - }, - ) + let name = format!("{}-{}", info.method, munged_path); + // This is a hack to reduce the amount of data stored in the test + // directory. This file gets requested many times, and it is very + // large. + let response_body = if info.path == "/v1/teams.json" { + serde_json::json!(null) } else { - let json_body = if info.path == "/v1/teams.json" { - // This is a hack to reduce the amount of data stored in the test - // directory. This file gets requested many times, and it is very - // large. - serde_json::json!({}) - } else { - match serde_json::from_slice(body) { - Ok(json) => json, - Err(e) => { - error!("failed to record API response for {}: {e:?}", info.path); - return; - } - } - }; - name.insert(0, '-'); - name.insert_str(0, &info.method); - ( - "api", - Activity::ApiRequest { - method: info.method, - path: info.path, - query: info.query, - request_body: info.body, - response_code, - response_body: json_body, - }, - ) + match serde_json::from_slice(body) { + Ok(json) => json, + Err(_) => serde_json::Value::String(String::from_utf8_lossy(body).to_string()), + } + }; + let activity = Activity::Request { + method: info.method, + path: info.path, + query: info.query, + request_body: info.body, + response_code, + response_body, }; - let filename = format!("{:02}-{kind}-{name}.json", next_sequence()); + let filename = format!("{:02}-{name}.json", next_sequence()); save_activity(&record_dir.join(filename), &activity); } diff --git a/tests/github_client/bors_commits/00-api-GET-repos_rust-lang_rust_commits.json b/tests/github_client/bors_commits/00-GET-repos_rust-lang_rust_commits.json similarity index 99% rename from tests/github_client/bors_commits/00-api-GET-repos_rust-lang_rust_commits.json rename to tests/github_client/bors_commits/00-GET-repos_rust-lang_rust_commits.json index ee2cc001..b0658429 100644 --- a/tests/github_client/bors_commits/00-api-GET-repos_rust-lang_rust_commits.json +++ b/tests/github_client/bors_commits/00-GET-repos_rust-lang_rust_commits.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/commits", "query": "author=bors", @@ -2527,4 +2527,4 @@ "url": "https://api.github.com/repos/rust-lang/rust/commits/7c4a9a971ca6962533bed01ffbd0c1f6b5250abc" } ] -} \ No newline at end of file +} diff --git a/tests/github_client/update_tree/00-api-GET-repos_ehuss_rust.json b/tests/github_client/create_commit/00-GET-repos_ehuss_rust.json similarity index 99% rename from tests/github_client/update_tree/00-api-GET-repos_ehuss_rust.json rename to tests/github_client/create_commit/00-GET-repos_ehuss_rust.json index fa503e39..2e719ca7 100644 --- a/tests/github_client/update_tree/00-api-GET-repos_ehuss_rust.json +++ b/tests/github_client/create_commit/00-GET-repos_ehuss_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/rust", "query": null, @@ -362,4 +362,4 @@ "watchers_count": 0, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/create_commit/01-api-POST-repos_ehuss_rust_git_commits.json b/tests/github_client/create_commit/01-POST-repos_ehuss_rust_git_commits.json similarity index 98% rename from tests/github_client/create_commit/01-api-POST-repos_ehuss_rust_git_commits.json rename to tests/github_client/create_commit/01-POST-repos_ehuss_rust_git_commits.json index c777fde4..08cc813f 100644 --- a/tests/github_client/create_commit/01-api-POST-repos_ehuss_rust_git_commits.json +++ b/tests/github_client/create_commit/01-POST-repos_ehuss_rust_git_commits.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "POST", "path": "/repos/ehuss/rust/git/commits", "query": null, @@ -39,4 +39,4 @@ "verified": false } } -} \ No newline at end of file +} diff --git a/tests/github_client/submodule/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/get_issues_no_search/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/submodule/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/get_issues_no_search/00-GET-repos_rust-lang_rust.json index 450be649..3589a6e8 100644 --- a/tests/github_client/submodule/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/get_issues_no_search/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -157,4 +157,4 @@ "watchers_count": 77402, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/get_issues_no_search/01-api-GET-repos_rust-lang_rust_issues.json b/tests/github_client/get_issues_no_search/01-GET-repos_rust-lang_rust_issues.json similarity index 99% rename from tests/github_client/get_issues_no_search/01-api-GET-repos_rust-lang_rust_issues.json rename to tests/github_client/get_issues_no_search/01-GET-repos_rust-lang_rust_issues.json index b4b01df1..d0a8d7d1 100644 --- a/tests/github_client/get_issues_no_search/01-api-GET-repos_rust-lang_rust_issues.json +++ b/tests/github_client/get_issues_no_search/01-GET-repos_rust-lang_rust_issues.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/issues", "query": "labels=A-coherence&filter=all&sort=created&direction=asc&per_page=100", @@ -428,4 +428,4 @@ } } ] -} \ No newline at end of file +} diff --git a/tests/github_client/get_issues_with_search/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/get_issues_with_search/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/get_issues_with_search/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/get_issues_with_search/00-GET-repos_rust-lang_rust.json index 190b5219..fd9dcba7 100644 --- a/tests/github_client/get_issues_with_search/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/get_issues_with_search/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -157,4 +157,4 @@ "watchers_count": 77405, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/get_issues_with_search/01-api-GET-search_issues.json b/tests/github_client/get_issues_with_search/01-GET-search_issues.json similarity index 99% rename from tests/github_client/get_issues_with_search/01-api-GET-search_issues.json rename to tests/github_client/get_issues_with_search/01-GET-search_issues.json index 89f56995..cbc12b0e 100644 --- a/tests/github_client/get_issues_with_search/01-api-GET-search_issues.json +++ b/tests/github_client/get_issues_with_search/01-GET-search_issues.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/search/issues", "query": "q=state:closed+is:pull-request+label:beta-nominated+label:beta-accepted+repo:rust-lang/rust&sort=created&order=asc&per_page=100&page=1", @@ -611,4 +611,4 @@ ], "total_count": 3 } -} \ No newline at end of file +} diff --git a/tests/github_client/get_reference/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/get_reference/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/get_reference/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/get_reference/00-GET-repos_rust-lang_rust.json index 450be649..3589a6e8 100644 --- a/tests/github_client/get_reference/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/get_reference/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -157,4 +157,4 @@ "watchers_count": 77402, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/get_reference/01-api-GET-repos_rust-lang_rust_git_ref_heads_stable.json b/tests/github_client/get_reference/01-GET-repos_rust-lang_rust_git_ref_heads_stable.json similarity index 95% rename from tests/github_client/get_reference/01-api-GET-repos_rust-lang_rust_git_ref_heads_stable.json rename to tests/github_client/get_reference/01-GET-repos_rust-lang_rust_git_ref_heads_stable.json index 14705d41..b2a68fa9 100644 --- a/tests/github_client/get_reference/01-api-GET-repos_rust-lang_rust_git_ref_heads_stable.json +++ b/tests/github_client/get_reference/01-GET-repos_rust-lang_rust_git_ref_heads_stable.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/git/ref/heads/stable", "query": null, @@ -15,4 +15,4 @@ "ref": "refs/heads/stable", "url": "https://api.github.com/repos/rust-lang/rust/git/refs/heads/stable" } -} \ No newline at end of file +} diff --git a/tests/github_client/git_commit/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/git_commit/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/git_commit/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/git_commit/00-GET-repos_rust-lang_rust.json index 6dfd8822..a1ab4e0a 100644 --- a/tests/github_client/git_commit/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/git_commit/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -145,4 +145,4 @@ "watchers_count": 77396, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/git_commit/01-api-GET-repos_rust-lang_rust_git_commits_109cccbe4f345c0f0785ce860788580c3e2a29f5.json b/tests/github_client/git_commit/01-GET-repos_rust-lang_rust_git_commits_109cccbe4f345c0f0785ce860788580c3e2a29f5.json similarity index 98% rename from tests/github_client/git_commit/01-api-GET-repos_rust-lang_rust_git_commits_109cccbe4f345c0f0785ce860788580c3e2a29f5.json rename to tests/github_client/git_commit/01-GET-repos_rust-lang_rust_git_commits_109cccbe4f345c0f0785ce860788580c3e2a29f5.json index 2fc0fa77..40cc3973 100644 --- a/tests/github_client/git_commit/01-api-GET-repos_rust-lang_rust_git_commits_109cccbe4f345c0f0785ce860788580c3e2a29f5.json +++ b/tests/github_client/git_commit/01-GET-repos_rust-lang_rust_git_commits_109cccbe4f345c0f0785ce860788580c3e2a29f5.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/git/commits/109cccbe4f345c0f0785ce860788580c3e2a29f5", "query": null, @@ -44,4 +44,4 @@ "verified": false } } -} \ No newline at end of file +} diff --git a/tests/github_client/is_new_contributor/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/is_new_contributor/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/is_new_contributor/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/is_new_contributor/00-GET-repos_rust-lang_rust.json index 3b00d789..2ec17b5e 100644 --- a/tests/github_client/is_new_contributor/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/is_new_contributor/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -145,4 +145,4 @@ "watchers_count": 77394, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/is_new_contributor/01-api-GET-repos_rust-lang_rust_commits.json b/tests/github_client/is_new_contributor/01-GET-repos_rust-lang_rust_commits.json similarity index 86% rename from tests/github_client/is_new_contributor/01-api-GET-repos_rust-lang_rust_commits.json rename to tests/github_client/is_new_contributor/01-GET-repos_rust-lang_rust_commits.json index fc9600f5..d7219399 100644 --- a/tests/github_client/is_new_contributor/01-api-GET-repos_rust-lang_rust_commits.json +++ b/tests/github_client/is_new_contributor/01-GET-repos_rust-lang_rust_commits.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/commits", "query": "author=octocat", "request_body": "", "response_code": 200, "response_body": [] -} \ No newline at end of file +} diff --git a/tests/github_client/is_new_contributor/02-api-GET-repos_rust-lang_rust_commits.json b/tests/github_client/is_new_contributor/02-GET-repos_rust-lang_rust_commits.json similarity index 99% rename from tests/github_client/is_new_contributor/02-api-GET-repos_rust-lang_rust_commits.json rename to tests/github_client/is_new_contributor/02-GET-repos_rust-lang_rust_commits.json index 1055cb7f..4fcaca4f 100644 --- a/tests/github_client/is_new_contributor/02-api-GET-repos_rust-lang_rust_commits.json +++ b/tests/github_client/is_new_contributor/02-GET-repos_rust-lang_rust_commits.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/commits", "query": "author=brson", @@ -2377,4 +2377,4 @@ "url": "https://api.github.com/repos/rust-lang/rust/commits/2afadaadc99118b169d2c3aec01e9814409b37fa" } ] -} \ No newline at end of file +} diff --git a/tests/github_client/issue_properties/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/issue_properties/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/issue_properties/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/issue_properties/00-GET-repos_rust-lang_rust.json index 450be649..3589a6e8 100644 --- a/tests/github_client/issue_properties/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/issue_properties/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -157,4 +157,4 @@ "watchers_count": 77402, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/issue_properties/01-api-GET-repos_rust-lang_rust_issues.json b/tests/github_client/issue_properties/01-GET-repos_rust-lang_rust_issues.json similarity index 99% rename from tests/github_client/issue_properties/01-api-GET-repos_rust-lang_rust_issues.json rename to tests/github_client/issue_properties/01-GET-repos_rust-lang_rust_issues.json index b4b01df1..d0a8d7d1 100644 --- a/tests/github_client/issue_properties/01-api-GET-repos_rust-lang_rust_issues.json +++ b/tests/github_client/issue_properties/01-GET-repos_rust-lang_rust_issues.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/issues", "query": "labels=A-coherence&filter=all&sort=created&direction=asc&per_page=100", @@ -428,4 +428,4 @@ } } ] -} \ No newline at end of file +} diff --git a/tests/github_client/merge_upstream/00-api-GET-repos_ehuss_rust.json b/tests/github_client/merge_upstream/00-GET-repos_ehuss_rust.json similarity index 99% rename from tests/github_client/merge_upstream/00-api-GET-repos_ehuss_rust.json rename to tests/github_client/merge_upstream/00-GET-repos_ehuss_rust.json index 5f2f2019..4c39a6ef 100644 --- a/tests/github_client/merge_upstream/00-api-GET-repos_ehuss_rust.json +++ b/tests/github_client/merge_upstream/00-GET-repos_ehuss_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/rust", "query": null, @@ -362,4 +362,4 @@ "watchers_count": 0, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/merge_upstream/01-api-POST-repos_ehuss_rust_merge-upstream.json b/tests/github_client/merge_upstream/01-POST-repos_ehuss_rust_merge-upstream.json similarity index 93% rename from tests/github_client/merge_upstream/01-api-POST-repos_ehuss_rust_merge-upstream.json rename to tests/github_client/merge_upstream/01-POST-repos_ehuss_rust_merge-upstream.json index 53f70b52..ebd5cb67 100644 --- a/tests/github_client/merge_upstream/01-api-POST-repos_ehuss_rust_merge-upstream.json +++ b/tests/github_client/merge_upstream/01-POST-repos_ehuss_rust_merge-upstream.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "POST", "path": "/repos/ehuss/rust/merge-upstream", "query": null, @@ -10,4 +10,4 @@ "merge_type": "fast-forward", "message": "Successfully fetched and fast-forwarded from upstream rust-lang:master." } -} \ No newline at end of file +} diff --git a/tests/github_client/new_pr/00-api-GET-repos_ehuss_rust.json b/tests/github_client/new_pr/00-GET-repos_ehuss_rust.json similarity index 99% rename from tests/github_client/new_pr/00-api-GET-repos_ehuss_rust.json rename to tests/github_client/new_pr/00-GET-repos_ehuss_rust.json index 3cffa5a7..60d9c4ff 100644 --- a/tests/github_client/new_pr/00-api-GET-repos_ehuss_rust.json +++ b/tests/github_client/new_pr/00-GET-repos_ehuss_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/rust", "query": null, @@ -362,4 +362,4 @@ "watchers_count": 0, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/new_pr/01-api-POST-repos_ehuss_rust_pulls.json b/tests/github_client/new_pr/01-POST-repos_ehuss_rust_pulls.json similarity index 99% rename from tests/github_client/new_pr/01-api-POST-repos_ehuss_rust_pulls.json rename to tests/github_client/new_pr/01-POST-repos_ehuss_rust_pulls.json index 5a084bf6..42d7bed7 100644 --- a/tests/github_client/new_pr/01-api-POST-repos_ehuss_rust_pulls.json +++ b/tests/github_client/new_pr/01-POST-repos_ehuss_rust_pulls.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "POST", "path": "/repos/ehuss/rust/pulls", "query": null, @@ -359,4 +359,4 @@ "url": "https://api.github.com/users/ehuss" } } -} \ No newline at end of file +} diff --git a/tests/github_client/raw_file/00-raw-ehuss_triagebot-test_raw-file_docs_example_txt.json b/tests/github_client/raw_file/00-GET-ehuss_triagebot-test_raw-file_docs_example_txt.json similarity index 99% rename from tests/github_client/raw_file/00-raw-ehuss_triagebot-test_raw-file_docs_example_txt.json rename to tests/github_client/raw_file/00-GET-ehuss_triagebot-test_raw-file_docs_example_txt.json index bba1ceea..87097e6d 100644 --- a/tests/github_client/raw_file/00-raw-ehuss_triagebot-test_raw-file_docs_example_txt.json +++ b/tests/github_client/raw_file/00-GET-ehuss_triagebot-test_raw-file_docs_example_txt.json @@ -1,7 +1,9 @@ { - "kind": "RawRequest", + "kind": "Request", + "method": "GET", "path": "/ehuss/triagebot-test/raw-file/docs/example.txt", "query": null, + "request_body": "", "response_code": 200, "response_body": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\n" -} \ No newline at end of file +} diff --git a/tests/github_client/repository/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/repository/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/repository/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/repository/00-GET-repos_rust-lang_rust.json index bef2a0d7..c1bedcb0 100644 --- a/tests/github_client/repository/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/repository/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -145,4 +145,4 @@ "watchers_count": 76867, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/rust_commit/00-api-GET-repos_rust-lang_rust_commits_7632db0e87d8adccc9a83a47795c9411b1455855.json b/tests/github_client/rust_commit/00-GET-repos_rust-lang_rust_commits_7632db0e87d8adccc9a83a47795c9411b1455855.json similarity index 99% rename from tests/github_client/rust_commit/00-api-GET-repos_rust-lang_rust_commits_7632db0e87d8adccc9a83a47795c9411b1455855.json rename to tests/github_client/rust_commit/00-GET-repos_rust-lang_rust_commits_7632db0e87d8adccc9a83a47795c9411b1455855.json index 7e279a4e..48b3dffb 100644 --- a/tests/github_client/rust_commit/00-api-GET-repos_rust-lang_rust_commits_7632db0e87d8adccc9a83a47795c9411b1455855.json +++ b/tests/github_client/rust_commit/00-GET-repos_rust-lang_rust_commits_7632db0e87d8adccc9a83a47795c9411b1455855.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/commits/7632db0e87d8adccc9a83a47795c9411b1455855", "query": null, @@ -120,4 +120,4 @@ }, "url": "https://api.github.com/repos/rust-lang/rust/commits/7632db0e87d8adccc9a83a47795c9411b1455855" } -} \ No newline at end of file +} diff --git a/tests/github_client/get_issues_no_search/00-api-GET-repos_rust-lang_rust.json b/tests/github_client/submodule/00-GET-repos_rust-lang_rust.json similarity index 99% rename from tests/github_client/get_issues_no_search/00-api-GET-repos_rust-lang_rust.json rename to tests/github_client/submodule/00-GET-repos_rust-lang_rust.json index 450be649..3589a6e8 100644 --- a/tests/github_client/get_issues_no_search/00-api-GET-repos_rust-lang_rust.json +++ b/tests/github_client/submodule/00-GET-repos_rust-lang_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust", "query": null, @@ -157,4 +157,4 @@ "watchers_count": 77402, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/submodule/01-api-GET-repos_rust-lang_rust_contents_src_doc_reference.json b/tests/github_client/submodule/01-GET-repos_rust-lang_rust_contents_src_doc_reference.json similarity index 97% rename from tests/github_client/submodule/01-api-GET-repos_rust-lang_rust_contents_src_doc_reference.json rename to tests/github_client/submodule/01-GET-repos_rust-lang_rust_contents_src_doc_reference.json index 67a817b0..53d5a0ab 100644 --- a/tests/github_client/submodule/01-api-GET-repos_rust-lang_rust_contents_src_doc_reference.json +++ b/tests/github_client/submodule/01-GET-repos_rust-lang_rust_contents_src_doc_reference.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/rust/contents/src/doc/reference", "query": null, @@ -22,4 +22,4 @@ "type": "submodule", "url": "https://api.github.com/repos/rust-lang/rust/contents/src/doc/reference?ref=master" } -} \ No newline at end of file +} diff --git a/tests/github_client/submodule/02-api-GET-repos_rust-lang_reference.json b/tests/github_client/submodule/02-GET-repos_rust-lang_reference.json similarity index 99% rename from tests/github_client/submodule/02-api-GET-repos_rust-lang_reference.json rename to tests/github_client/submodule/02-GET-repos_rust-lang_reference.json index 505d8e07..8ec96de6 100644 --- a/tests/github_client/submodule/02-api-GET-repos_rust-lang_reference.json +++ b/tests/github_client/submodule/02-GET-repos_rust-lang_reference.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/rust-lang/reference", "query": null, @@ -157,4 +157,4 @@ "watchers_count": 878, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/update_reference/00-api-GET-repos_ehuss_rust.json b/tests/github_client/update_reference/00-GET-repos_ehuss_rust.json similarity index 99% rename from tests/github_client/update_reference/00-api-GET-repos_ehuss_rust.json rename to tests/github_client/update_reference/00-GET-repos_ehuss_rust.json index e04923fd..1d6b5bcd 100644 --- a/tests/github_client/update_reference/00-api-GET-repos_ehuss_rust.json +++ b/tests/github_client/update_reference/00-GET-repos_ehuss_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/rust", "query": null, @@ -362,4 +362,4 @@ "watchers_count": 0, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/update_reference/01-api-PATCH-repos_ehuss_rust_git_refs_heads_docs-update.json b/tests/github_client/update_reference/01-PATCH-repos_ehuss_rust_git_refs_heads_docs-update.json similarity index 96% rename from tests/github_client/update_reference/01-api-PATCH-repos_ehuss_rust_git_refs_heads_docs-update.json rename to tests/github_client/update_reference/01-PATCH-repos_ehuss_rust_git_refs_heads_docs-update.json index a9e0c01c..112e4f7b 100644 --- a/tests/github_client/update_reference/01-api-PATCH-repos_ehuss_rust_git_refs_heads_docs-update.json +++ b/tests/github_client/update_reference/01-PATCH-repos_ehuss_rust_git_refs_heads_docs-update.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "PATCH", "path": "/repos/ehuss/rust/git/refs/heads/docs-update", "query": null, @@ -15,4 +15,4 @@ "ref": "refs/heads/docs-update", "url": "https://api.github.com/repos/ehuss/rust/git/refs/heads/docs-update" } -} \ No newline at end of file +} diff --git a/tests/github_client/create_commit/00-api-GET-repos_ehuss_rust.json b/tests/github_client/update_tree/00-GET-repos_ehuss_rust.json similarity index 99% rename from tests/github_client/create_commit/00-api-GET-repos_ehuss_rust.json rename to tests/github_client/update_tree/00-GET-repos_ehuss_rust.json index fa503e39..2e719ca7 100644 --- a/tests/github_client/create_commit/00-api-GET-repos_ehuss_rust.json +++ b/tests/github_client/update_tree/00-GET-repos_ehuss_rust.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/rust", "query": null, @@ -362,4 +362,4 @@ "watchers_count": 0, "web_commit_signoff_required": false } -} \ No newline at end of file +} diff --git a/tests/github_client/update_tree/01-api-POST-repos_ehuss_rust_git_trees.json b/tests/github_client/update_tree/01-POST-repos_ehuss_rust_git_trees.json similarity index 99% rename from tests/github_client/update_tree/01-api-POST-repos_ehuss_rust_git_trees.json rename to tests/github_client/update_tree/01-POST-repos_ehuss_rust_git_trees.json index eaf1e244..89849750 100644 --- a/tests/github_client/update_tree/01-api-POST-repos_ehuss_rust_git_trees.json +++ b/tests/github_client/update_tree/01-POST-repos_ehuss_rust_git_trees.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "POST", "path": "/repos/ehuss/rust/git/trees", "query": null, @@ -237,4 +237,4 @@ "truncated": false, "url": "https://api.github.com/repos/ehuss/rust/git/trees/45aae523b087e418f2778d4557489de38fede6a3" } -} \ No newline at end of file +} diff --git a/tests/github_client/user/00-api-GET-user.json b/tests/github_client/user/00-GET-user.json similarity index 98% rename from tests/github_client/user/00-api-GET-user.json rename to tests/github_client/user/00-GET-user.json index 0f2eeee5..effe11b0 100644 --- a/tests/github_client/user/00-api-GET-user.json +++ b/tests/github_client/user/00-GET-user.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/user", "query": null, @@ -39,4 +39,4 @@ "updated_at": "2022-11-25T21:26:50Z", "url": "https://api.github.com/users/ehuss" } -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/ready/01-raw-ehuss_triagebot-test_main_triagebot_toml.json b/tests/server_test/shortcut/author/01-GET-ehuss_triagebot-test_main_triagebot_toml.json similarity index 94% rename from tests/server_test/shortcut/ready/01-raw-ehuss_triagebot-test_main_triagebot_toml.json rename to tests/server_test/shortcut/author/01-GET-ehuss_triagebot-test_main_triagebot_toml.json index 1978dd86..5401b89f 100644 --- a/tests/server_test/shortcut/ready/01-raw-ehuss_triagebot-test_main_triagebot_toml.json +++ b/tests/server_test/shortcut/author/01-GET-ehuss_triagebot-test_main_triagebot_toml.json @@ -1,7 +1,9 @@ { - "kind": "RawRequest", + "kind": "Request", + "method": "GET", "path": "/ehuss/triagebot-test/main/triagebot.toml", "query": null, + "request_body": "", "response_code": 200, "response_body": "[shortcut]\n[relabel]\nallow-unauthenticated = [\"*\"]\n\n[mentions.'README.md']\ncc = [\"@ehuss\"]\n\n[mentions.'example1']\n\n[mentions.'example2']\nmessage = \"This is a message.\"\n\n[autolabel.\"bar\"]\ntrigger_labels = [\"foo\"]\n\n[autolabel.\"foo\"]\nnew_pr = true\n\n[assign]\nwarn_non_default_branch = true\ncontributing_url = \"https://rustc-dev-guide.rust-lang.org/contributing.html\"\n\n[assign.adhoc_groups]\n\"group1\" = [\"@ehuss\"]\n\"group2\" = [\"group1\", \"@octocat\"]\n\"group3\" = [\"@EHUSS\"]\ngroup4 = [\"@grashgal\"]\nrecursive1a = [\"recursive1b\"]\nrecursive1b = [\"recursive1a\"]\n\nrecursive2a = [\"recursive2b\"]\nrecursive2b = [\"recursive2a\", \"octocat\"]\nfallback = [\"ehuss\"]\n\n[assign.owners]\n# \"**\" = [\"@ehuss\"]\n# \"README.md\" = [\"@octocat\"]\n\"/foo\" = [\"@ghost\"]\n\"/bar\" = [\"group2\"]\n\"/only\" = [\"group1\"]\n\"/grash\" = [\"grashgal\"]\n\"/octo\" = [\"octocat\"]\n\"/ehuss\" = [\"@ehuss\"]\n" -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/author/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-review.json b/tests/server_test/shortcut/author/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-review.json similarity index 88% rename from tests/server_test/shortcut/author/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-review.json rename to tests/server_test/shortcut/author/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-review.json index 0b665967..389f2d8e 100644 --- a/tests/server_test/shortcut/author/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-review.json +++ b/tests/server_test/shortcut/author/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-review.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "DELETE", "path": "/repos/ehuss/triagebot-test/issues/70/labels/S-waiting-on-review", "query": null, "request_body": "", "response_code": 200, "response_body": [] -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/author/03-api-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-author.json b/tests/server_test/shortcut/author/03-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-author.json similarity index 94% rename from tests/server_test/shortcut/author/03-api-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-author.json rename to tests/server_test/shortcut/author/03-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-author.json index 6b457713..12ecf114 100644 --- a/tests/server_test/shortcut/author/03-api-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-author.json +++ b/tests/server_test/shortcut/author/03-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-author.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/triagebot-test/labels/S-waiting-on-author", "query": null, @@ -14,4 +14,4 @@ "node_id": "LA_kwDOHkK3Xc8AAAABEFuKuQ", "url": "https://api.github.com/repos/ehuss/triagebot-test/labels/S-waiting-on-author" } -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/author/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json b/tests/server_test/shortcut/author/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json similarity index 95% rename from tests/server_test/shortcut/author/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json rename to tests/server_test/shortcut/author/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json index 5d17e375..8572a7a9 100644 --- a/tests/server_test/shortcut/author/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json +++ b/tests/server_test/shortcut/author/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "POST", "path": "/repos/ehuss/triagebot-test/issues/70/labels", "query": null, @@ -16,4 +16,4 @@ "url": "https://api.github.com/repos/ehuss/triagebot-test/labels/S-waiting-on-author" } ] -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/blocked/06-api-GET-v1_teams_json.json b/tests/server_test/shortcut/author/05-GET-v1_teams_json.json similarity index 84% rename from tests/server_test/shortcut/blocked/06-api-GET-v1_teams_json.json rename to tests/server_test/shortcut/author/05-GET-v1_teams_json.json index e26d5fc7..1035af13 100644 --- a/tests/server_test/shortcut/blocked/06-api-GET-v1_teams_json.json +++ b/tests/server_test/shortcut/author/05-GET-v1_teams_json.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/v1/teams.json", "query": null, "request_body": "", "response_code": 200, "response_body": {} -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/blocked/05-api-GET-v1_teams_json.json b/tests/server_test/shortcut/author/06-GET-v1_teams_json.json similarity index 84% rename from tests/server_test/shortcut/blocked/05-api-GET-v1_teams_json.json rename to tests/server_test/shortcut/author/06-GET-v1_teams_json.json index e26d5fc7..1035af13 100644 --- a/tests/server_test/shortcut/blocked/05-api-GET-v1_teams_json.json +++ b/tests/server_test/shortcut/author/06-GET-v1_teams_json.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/v1/teams.json", "query": null, "request_body": "", "response_code": 200, "response_body": {} -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/author/01-raw-ehuss_triagebot-test_main_triagebot_toml.json b/tests/server_test/shortcut/blocked/01-GET-ehuss_triagebot-test_main_triagebot_toml.json similarity index 94% rename from tests/server_test/shortcut/author/01-raw-ehuss_triagebot-test_main_triagebot_toml.json rename to tests/server_test/shortcut/blocked/01-GET-ehuss_triagebot-test_main_triagebot_toml.json index 1978dd86..a49c4d18 100644 --- a/tests/server_test/shortcut/author/01-raw-ehuss_triagebot-test_main_triagebot_toml.json +++ b/tests/server_test/shortcut/blocked/01-GET-ehuss_triagebot-test_main_triagebot_toml.json @@ -1,7 +1,9 @@ { - "kind": "RawRequest", + "kind": "Request", "path": "/ehuss/triagebot-test/main/triagebot.toml", "query": null, + "method": "GET", + "request_body": "", "response_code": 200, "response_body": "[shortcut]\n[relabel]\nallow-unauthenticated = [\"*\"]\n\n[mentions.'README.md']\ncc = [\"@ehuss\"]\n\n[mentions.'example1']\n\n[mentions.'example2']\nmessage = \"This is a message.\"\n\n[autolabel.\"bar\"]\ntrigger_labels = [\"foo\"]\n\n[autolabel.\"foo\"]\nnew_pr = true\n\n[assign]\nwarn_non_default_branch = true\ncontributing_url = \"https://rustc-dev-guide.rust-lang.org/contributing.html\"\n\n[assign.adhoc_groups]\n\"group1\" = [\"@ehuss\"]\n\"group2\" = [\"group1\", \"@octocat\"]\n\"group3\" = [\"@EHUSS\"]\ngroup4 = [\"@grashgal\"]\nrecursive1a = [\"recursive1b\"]\nrecursive1b = [\"recursive1a\"]\n\nrecursive2a = [\"recursive2b\"]\nrecursive2b = [\"recursive2a\", \"octocat\"]\nfallback = [\"ehuss\"]\n\n[assign.owners]\n# \"**\" = [\"@ehuss\"]\n# \"README.md\" = [\"@octocat\"]\n\"/foo\" = [\"@ghost\"]\n\"/bar\" = [\"group2\"]\n\"/only\" = [\"group1\"]\n\"/grash\" = [\"grashgal\"]\n\"/octo\" = [\"octocat\"]\n\"/ehuss\" = [\"@ehuss\"]\n" -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/blocked/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json b/tests/server_test/shortcut/blocked/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json similarity index 88% rename from tests/server_test/shortcut/blocked/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json rename to tests/server_test/shortcut/blocked/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json index 00f8a5d8..e03e0d92 100644 --- a/tests/server_test/shortcut/blocked/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json +++ b/tests/server_test/shortcut/blocked/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "DELETE", "path": "/repos/ehuss/triagebot-test/issues/70/labels/S-waiting-on-author", "query": null, "request_body": "", "response_code": 200, "response_body": [] -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/blocked/03-api-GET-repos_ehuss_triagebot-test_labels_S-blocked.json b/tests/server_test/shortcut/blocked/03-GET-repos_ehuss_triagebot-test_labels_S-blocked.json similarity index 94% rename from tests/server_test/shortcut/blocked/03-api-GET-repos_ehuss_triagebot-test_labels_S-blocked.json rename to tests/server_test/shortcut/blocked/03-GET-repos_ehuss_triagebot-test_labels_S-blocked.json index f04aca26..e2978ec8 100644 --- a/tests/server_test/shortcut/blocked/03-api-GET-repos_ehuss_triagebot-test_labels_S-blocked.json +++ b/tests/server_test/shortcut/blocked/03-GET-repos_ehuss_triagebot-test_labels_S-blocked.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/triagebot-test/labels/S-blocked", "query": null, @@ -14,4 +14,4 @@ "node_id": "LA_kwDOHkK3Xc8AAAABKxjUxw", "url": "https://api.github.com/repos/ehuss/triagebot-test/labels/S-blocked" } -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/blocked/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json b/tests/server_test/shortcut/blocked/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json similarity index 94% rename from tests/server_test/shortcut/blocked/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json rename to tests/server_test/shortcut/blocked/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json index 93402b1e..57a0d088 100644 --- a/tests/server_test/shortcut/blocked/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json +++ b/tests/server_test/shortcut/blocked/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "POST", "path": "/repos/ehuss/triagebot-test/issues/70/labels", "query": null, @@ -16,4 +16,4 @@ "url": "https://api.github.com/repos/ehuss/triagebot-test/labels/S-blocked" } ] -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/author/05-api-GET-v1_teams_json.json b/tests/server_test/shortcut/blocked/05-GET-v1_teams_json.json similarity index 84% rename from tests/server_test/shortcut/author/05-api-GET-v1_teams_json.json rename to tests/server_test/shortcut/blocked/05-GET-v1_teams_json.json index e26d5fc7..1035af13 100644 --- a/tests/server_test/shortcut/author/05-api-GET-v1_teams_json.json +++ b/tests/server_test/shortcut/blocked/05-GET-v1_teams_json.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/v1/teams.json", "query": null, "request_body": "", "response_code": 200, "response_body": {} -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/author/06-api-GET-v1_teams_json.json b/tests/server_test/shortcut/blocked/06-GET-v1_teams_json.json similarity index 84% rename from tests/server_test/shortcut/author/06-api-GET-v1_teams_json.json rename to tests/server_test/shortcut/blocked/06-GET-v1_teams_json.json index e26d5fc7..1035af13 100644 --- a/tests/server_test/shortcut/author/06-api-GET-v1_teams_json.json +++ b/tests/server_test/shortcut/blocked/06-GET-v1_teams_json.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/v1/teams.json", "query": null, "request_body": "", "response_code": 200, "response_body": {} -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/blocked/01-raw-ehuss_triagebot-test_main_triagebot_toml.json b/tests/server_test/shortcut/ready/01-GET-ehuss_triagebot-test_main_triagebot_toml.json similarity index 94% rename from tests/server_test/shortcut/blocked/01-raw-ehuss_triagebot-test_main_triagebot_toml.json rename to tests/server_test/shortcut/ready/01-GET-ehuss_triagebot-test_main_triagebot_toml.json index 1978dd86..a49c4d18 100644 --- a/tests/server_test/shortcut/blocked/01-raw-ehuss_triagebot-test_main_triagebot_toml.json +++ b/tests/server_test/shortcut/ready/01-GET-ehuss_triagebot-test_main_triagebot_toml.json @@ -1,7 +1,9 @@ { - "kind": "RawRequest", + "kind": "Request", "path": "/ehuss/triagebot-test/main/triagebot.toml", "query": null, + "method": "GET", + "request_body": "", "response_code": 200, "response_body": "[shortcut]\n[relabel]\nallow-unauthenticated = [\"*\"]\n\n[mentions.'README.md']\ncc = [\"@ehuss\"]\n\n[mentions.'example1']\n\n[mentions.'example2']\nmessage = \"This is a message.\"\n\n[autolabel.\"bar\"]\ntrigger_labels = [\"foo\"]\n\n[autolabel.\"foo\"]\nnew_pr = true\n\n[assign]\nwarn_non_default_branch = true\ncontributing_url = \"https://rustc-dev-guide.rust-lang.org/contributing.html\"\n\n[assign.adhoc_groups]\n\"group1\" = [\"@ehuss\"]\n\"group2\" = [\"group1\", \"@octocat\"]\n\"group3\" = [\"@EHUSS\"]\ngroup4 = [\"@grashgal\"]\nrecursive1a = [\"recursive1b\"]\nrecursive1b = [\"recursive1a\"]\n\nrecursive2a = [\"recursive2b\"]\nrecursive2b = [\"recursive2a\", \"octocat\"]\nfallback = [\"ehuss\"]\n\n[assign.owners]\n# \"**\" = [\"@ehuss\"]\n# \"README.md\" = [\"@octocat\"]\n\"/foo\" = [\"@ghost\"]\n\"/bar\" = [\"group2\"]\n\"/only\" = [\"group1\"]\n\"/grash\" = [\"grashgal\"]\n\"/octo\" = [\"octocat\"]\n\"/ehuss\" = [\"@ehuss\"]\n" -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/ready/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json b/tests/server_test/shortcut/ready/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json similarity index 88% rename from tests/server_test/shortcut/ready/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json rename to tests/server_test/shortcut/ready/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json index 00f8a5d8..e03e0d92 100644 --- a/tests/server_test/shortcut/ready/02-api-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json +++ b/tests/server_test/shortcut/ready/02-DELETE-repos_ehuss_triagebot-test_issues_70_labels_S-waiting-on-author.json @@ -1,9 +1,9 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "DELETE", "path": "/repos/ehuss/triagebot-test/issues/70/labels/S-waiting-on-author", "query": null, "request_body": "", "response_code": 200, "response_body": [] -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/ready/03-api-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-review.json b/tests/server_test/shortcut/ready/03-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-review.json similarity index 94% rename from tests/server_test/shortcut/ready/03-api-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-review.json rename to tests/server_test/shortcut/ready/03-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-review.json index df3476ae..d7943fde 100644 --- a/tests/server_test/shortcut/ready/03-api-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-review.json +++ b/tests/server_test/shortcut/ready/03-GET-repos_ehuss_triagebot-test_labels_S-waiting-on-review.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "GET", "path": "/repos/ehuss/triagebot-test/labels/S-waiting-on-review", "query": null, @@ -14,4 +14,4 @@ "node_id": "LA_kwDOHkK3Xc8AAAABKuX8Jw", "url": "https://api.github.com/repos/ehuss/triagebot-test/labels/S-waiting-on-review" } -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/ready/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json b/tests/server_test/shortcut/ready/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json similarity index 95% rename from tests/server_test/shortcut/ready/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json rename to tests/server_test/shortcut/ready/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json index 4a92e093..c3068713 100644 --- a/tests/server_test/shortcut/ready/04-api-POST-repos_ehuss_triagebot-test_issues_70_labels.json +++ b/tests/server_test/shortcut/ready/04-POST-repos_ehuss_triagebot-test_issues_70_labels.json @@ -1,5 +1,5 @@ { - "kind": "ApiRequest", + "kind": "Request", "method": "POST", "path": "/repos/ehuss/triagebot-test/issues/70/labels", "query": null, @@ -16,4 +16,4 @@ "url": "https://api.github.com/repos/ehuss/triagebot-test/labels/S-waiting-on-review" } ] -} \ No newline at end of file +} diff --git a/tests/server_test/shortcut/ready/05-GET-v1_teams_json.json b/tests/server_test/shortcut/ready/05-GET-v1_teams_json.json new file mode 100644 index 00000000..1035af13 --- /dev/null +++ b/tests/server_test/shortcut/ready/05-GET-v1_teams_json.json @@ -0,0 +1,9 @@ +{ + "kind": "Request", + "method": "GET", + "path": "/v1/teams.json", + "query": null, + "request_body": "", + "response_code": 200, + "response_body": {} +} diff --git a/tests/server_test/shortcut/ready/05-api-GET-v1_teams_json.json b/tests/server_test/shortcut/ready/05-api-GET-v1_teams_json.json deleted file mode 100644 index e26d5fc7..00000000 --- a/tests/server_test/shortcut/ready/05-api-GET-v1_teams_json.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "kind": "ApiRequest", - "method": "GET", - "path": "/v1/teams.json", - "query": null, - "request_body": "", - "response_code": 200, - "response_body": {} -} \ No newline at end of file diff --git a/tests/server_test/shortcut/ready/06-GET-v1_teams_json.json b/tests/server_test/shortcut/ready/06-GET-v1_teams_json.json new file mode 100644 index 00000000..1035af13 --- /dev/null +++ b/tests/server_test/shortcut/ready/06-GET-v1_teams_json.json @@ -0,0 +1,9 @@ +{ + "kind": "Request", + "method": "GET", + "path": "/v1/teams.json", + "query": null, + "request_body": "", + "response_code": 200, + "response_body": {} +} diff --git a/tests/server_test/shortcut/ready/06-api-GET-v1_teams_json.json b/tests/server_test/shortcut/ready/06-api-GET-v1_teams_json.json deleted file mode 100644 index e26d5fc7..00000000 --- a/tests/server_test/shortcut/ready/06-api-GET-v1_teams_json.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "kind": "ApiRequest", - "method": "GET", - "path": "/v1/teams.json", - "query": null, - "request_body": "", - "response_code": 200, - "response_body": {} -} \ No newline at end of file diff --git a/tests/testsuite.rs b/tests/testsuite.rs index 4156ad8a..01fdafaf 100644 --- a/tests/testsuite.rs +++ b/tests/testsuite.rs @@ -139,7 +139,7 @@ pub fn load_activities(test_dir: &str, test_name: &str) -> Vec { .map(|path| { let contents = std::fs::read_to_string(path).unwrap(); let mut activity = serde_json::from_str(&contents).unwrap(); - if let Activity::ApiRequest { + if let Activity::Request { path, response_body, .. @@ -282,7 +282,7 @@ impl HttpServer { Activity::Webhook { .. } => { panic!("unexpected webhook") } - Activity::ApiRequest { + Activity::Request { method, path, query, @@ -315,38 +315,16 @@ impl HttpServer { String::from_utf8_lossy(&request.body) )); } - let body = serde_json::to_vec(response_body).unwrap(); - return Response { - code: *response_code, - headers: Vec::new(), - body, + let body = match response_body { + // We overload the meaning of a string to be a raw string. + // I don't think GitHub's API ever returns a string as a response. + serde_json::Value::String(s) => s.as_bytes().to_vec(), + _ => serde_json::to_vec(response_body).unwrap(), }; - } - Activity::RawRequest { - path, - query, - response_code, - response_body, - } => { - if path != &request.path { - return self.report_err(&format!( - "expected next request to be {path},\n\ - got {} {}", - request.method, request.path - )); - } - if query != &request.query { - return self.report_err(&format!( - "query string does not match\n\ - expected: {query:?}\n\ - got: {:?}\n", - request.query - )); - } return Response { code: *response_code, headers: Vec::new(), - body: response_body.as_bytes().to_vec(), + body, }; } Activity::Error { .. } | Activity::Finished => {