diff options
Diffstat (limited to 'rust')
39 files changed, 134 insertions, 0 deletions
diff --git a/rust/bf/Cargo.lock b/rust/bf/Cargo.lock new file mode 100644 index 0000000..f1798f9 --- /dev/null +++ b/rust/bf/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "bf" +version = "0.1.0" diff --git a/rust/bf/Cargo.toml b/rust/bf/Cargo.toml new file mode 100644 index 0000000..eb4b810 --- /dev/null +++ b/rust/bf/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bf" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/rust/bf/src/hw.bf b/rust/bf/src/hw.bf new file mode 100644 index 0000000..ea2b641 --- /dev/null +++ b/rust/bf/src/hw.bf @@ -0,0 +1 @@ +++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. \ No newline at end of file diff --git a/rust/bf/src/main.rs b/rust/bf/src/main.rs new file mode 100644 index 0000000..9257ae2 --- /dev/null +++ b/rust/bf/src/main.rs @@ -0,0 +1,91 @@ +use std::io::{self, Read}; +use std::env; +use std::process; + +fn interpret_brainfuck(code: &str) { + let mut memory = vec![0u8; 30000]; // 30,000 cells of memory initialized to 0 + let mut pointer: usize = 0; // data pointer starts at the first cell + let mut pc: usize = 0; // program counter for the Brainfuck code + let code_chars: Vec<char> = code.chars().collect(); // convert the Brainfuck code to a vector of characters + + // Stack to keep track of [ and ] for loops + let mut loop_stack: Vec<usize> = Vec::new(); + + while pc < code_chars.len() { + match code_chars[pc] { + '>' => { + pointer += 1; + if pointer >= memory.len() { + panic!("Pointer out of bounds"); + } + } + '<' => { + if pointer == 0 { + panic!("Pointer out of bounds"); + } + pointer -= 1; + } + '+' => { + memory[pointer] = memory[pointer].wrapping_add(1); // increment with wrap around + } + '-' => { + memory[pointer] = memory[pointer].wrapping_sub(1); // decrement with wrap around + } + '.' => { + print!("{}", memory[pointer] as char); + } + ',' => { + let mut input = [0u8]; + io::stdin().read_exact(&mut input).expect("Failed to read input"); + memory[pointer] = input[0]; + } + '[' => { + if memory[pointer] == 0 { + // Jump to the matching ']' if the current cell is 0 + let mut open_brackets = 1; + while open_brackets > 0 { + pc += 1; + if pc >= code_chars.len() { + panic!("Unmatched ["); + } + if code_chars[pc] == '[' { + open_brackets += 1; + } else if code_chars[pc] == ']' { + open_brackets -= 1; + } + } + } else { + // Push the current position to the stack if not jumping + loop_stack.push(pc); + } + } + ']' => { + if memory[pointer] != 0 { + // Jump back to the matching '[' if the current cell is nonzero + if let Some(loop_start) = loop_stack.last() { + pc = *loop_start; + } else { + panic!("Unmatched ]"); + } + } else { + // Pop the stack if done with the loop + loop_stack.pop(); + } + } + _ => {} // Ignore any non-Brainfuck commands + } + pc += 1; // Move to the next instruction + } +} + +fn main() { + let args: Vec<String> = env::args().collect(); + if args.len() != 2 || !args[1].ends_with(".bf") { + eprintln!("Usage: {} <filename.bf>", args[0]); + process::exit(1); + } + + let filename = &args[1]; + let code = std::fs::read_to_string(filename).expect("Failed to read the file"); + interpret_brainfuck(&code); +} diff --git a/rust/bf/target/.rustc_info.json b/rust/bf/target/.rustc_info.json new file mode 100644 index 0000000..f5968b6 --- /dev/null +++ b/rust/bf/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":7005186275402253471,"outputs":{"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.81.0 (eeb90cda1 2024-09-04)\nbinary: rustc\ncommit-hash: eeb90cda1969383f56a2637cbd3037bdf598841c\ncommit-date: 2024-09-04\nhost: aarch64-apple-darwin\nrelease: 1.81.0\nLLVM version: 18.1.7\n","stderr":""},"16495917692426387086":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n","stderr":""},"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/eli/.rustup/toolchains/stable-aarch64-apple-darwin\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"aes\"\ntarget_feature=\"crc\"\ntarget_feature=\"dit\"\ntarget_feature=\"dotprod\"\ntarget_feature=\"dpb\"\ntarget_feature=\"dpb2\"\ntarget_feature=\"fcma\"\ntarget_feature=\"fhm\"\ntarget_feature=\"flagm\"\ntarget_feature=\"fp16\"\ntarget_feature=\"frintts\"\ntarget_feature=\"jsconv\"\ntarget_feature=\"lor\"\ntarget_feature=\"lse\"\ntarget_feature=\"neon\"\ntarget_feature=\"paca\"\ntarget_feature=\"pacg\"\ntarget_feature=\"pan\"\ntarget_feature=\"pmuv3\"\ntarget_feature=\"ras\"\ntarget_feature=\"rcpc\"\ntarget_feature=\"rcpc2\"\ntarget_feature=\"rdm\"\ntarget_feature=\"sb\"\ntarget_feature=\"sha2\"\ntarget_feature=\"sha3\"\ntarget_feature=\"ssbs\"\ntarget_feature=\"vh\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/rust/bf/target/CACHEDIR.TAG b/rust/bf/target/CACHEDIR.TAG new file mode 100644 index 0000000..20d7c31 --- /dev/null +++ b/rust/bf/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/rust/bf/target/debug/.cargo-lock b/rust/bf/target/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/rust/bf/target/debug/.cargo-lock diff --git a/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/bin-bf b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/bin-bf new file mode 100644 index 0000000..3fbd7a6 --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/bin-bf @@ -0,0 +1 @@ +7b38476ab53c44ea \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/bin-bf.json b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/bin-bf.json new file mode 100644 index 0000000..23d3926 --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/bin-bf.json @@ -0,0 +1 @@ +{"rustc":14389903092037495548,"features":"[]","declared_features":"[]","target":16764836476292941056,"profile":14070910346503389671,"path":10602529704205407992,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/bf-63127975a4a031e6/dep-bin-bf"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/dep-bin-bf b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/dep-bin-bf new file mode 100644 index 0000000..5fdf103 --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/dep-bin-bf Binary files differdiff --git a/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/invoked.timestamp b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-63127975a4a031e6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/bin-bf b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/bin-bf new file mode 100644 index 0000000..857af52 --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/bin-bf @@ -0,0 +1 @@ +2557fc4ae667a1e4 \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/bin-bf.json b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/bin-bf.json new file mode 100644 index 0000000..b621440 --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/bin-bf.json @@ -0,0 +1 @@ +{"rustc":14389903092037495548,"features":"[]","declared_features":"[]","target":16764836476292941056,"profile":10029161205263967479,"path":10602529704205407992,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/bf-adbb0475db5a0e95/dep-bin-bf"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/dep-bin-bf b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/dep-bin-bf new file mode 100644 index 0000000..5fdf103 --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/dep-bin-bf Binary files differdiff --git a/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/invoked.timestamp b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-adbb0475db5a0e95/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/dep-test-bin-bf b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/dep-test-bin-bf new file mode 100644 index 0000000..5fdf103 --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/dep-test-bin-bf Binary files differdiff --git a/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/invoked.timestamp b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/test-bin-bf b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/test-bin-bf new file mode 100644 index 0000000..6b31eaf --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/test-bin-bf @@ -0,0 +1 @@ +1d9fffd7486d704e \ No newline at end of file diff --git a/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/test-bin-bf.json b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/test-bin-bf.json new file mode 100644 index 0000000..431632c --- /dev/null +++ b/rust/bf/target/debug/.fingerprint/bf-e0bdbdaacd7e6ba1/test-bin-bf.json @@ -0,0 +1 @@ +{"rustc":14389903092037495548,"features":"[]","declared_features":"[]","target":16764836476292941056,"profile":16589926208341333925,"path":10602529704205407992,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/bf-e0bdbdaacd7e6ba1/dep-test-bin-bf"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/rust/bf/target/debug/bf b/rust/bf/target/debug/bf new file mode 100755 index 0000000..0e8474c --- /dev/null +++ b/rust/bf/target/debug/bf Binary files differdiff --git a/rust/bf/target/debug/bf.d b/rust/bf/target/debug/bf.d new file mode 100644 index 0000000..d06271e --- /dev/null +++ b/rust/bf/target/debug/bf.d @@ -0,0 +1 @@ +/Users/eli/Desktop/bf/target/debug/bf: /Users/eli/Desktop/bf/src/main.rs diff --git a/rust/bf/target/debug/deps/bf-63127975a4a031e6 b/rust/bf/target/debug/deps/bf-63127975a4a031e6 new file mode 100755 index 0000000..0e8474c --- /dev/null +++ b/rust/bf/target/debug/deps/bf-63127975a4a031e6 Binary files differdiff --git a/rust/bf/target/debug/deps/bf-63127975a4a031e6.d b/rust/bf/target/debug/deps/bf-63127975a4a031e6.d new file mode 100644 index 0000000..bbe240c --- /dev/null +++ b/rust/bf/target/debug/deps/bf-63127975a4a031e6.d @@ -0,0 +1,5 @@ +/Users/eli/Desktop/bf/target/debug/deps/bf-63127975a4a031e6: src/main.rs + +/Users/eli/Desktop/bf/target/debug/deps/bf-63127975a4a031e6.d: src/main.rs + +src/main.rs: diff --git a/rust/bf/target/debug/deps/bf-adbb0475db5a0e95.d b/rust/bf/target/debug/deps/bf-adbb0475db5a0e95.d new file mode 100644 index 0000000..6194e33 --- /dev/null +++ b/rust/bf/target/debug/deps/bf-adbb0475db5a0e95.d @@ -0,0 +1,5 @@ +/Users/eli/Desktop/bf/target/debug/deps/libbf-adbb0475db5a0e95.rmeta: src/main.rs + +/Users/eli/Desktop/bf/target/debug/deps/bf-adbb0475db5a0e95.d: src/main.rs + +src/main.rs: diff --git a/rust/bf/target/debug/deps/bf-e0bdbdaacd7e6ba1.d b/rust/bf/target/debug/deps/bf-e0bdbdaacd7e6ba1.d new file mode 100644 index 0000000..1c55fd2 --- /dev/null +++ b/rust/bf/target/debug/deps/bf-e0bdbdaacd7e6ba1.d @@ -0,0 +1,5 @@ +/Users/eli/Desktop/bf/target/debug/deps/libbf-e0bdbdaacd7e6ba1.rmeta: src/main.rs + +/Users/eli/Desktop/bf/target/debug/deps/bf-e0bdbdaacd7e6ba1.d: src/main.rs + +src/main.rs: diff --git a/rust/bf/target/debug/deps/libbf-adbb0475db5a0e95.rmeta b/rust/bf/target/debug/deps/libbf-adbb0475db5a0e95.rmeta new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/rust/bf/target/debug/deps/libbf-adbb0475db5a0e95.rmeta diff --git a/rust/bf/target/debug/deps/libbf-e0bdbdaacd7e6ba1.rmeta b/rust/bf/target/debug/deps/libbf-e0bdbdaacd7e6ba1.rmeta new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/rust/bf/target/debug/deps/libbf-e0bdbdaacd7e6ba1.rmeta diff --git a/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/dep-graph.bin b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/dep-graph.bin new file mode 100644 index 0000000..6a46b88 --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/dep-graph.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/query-cache.bin b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/query-cache.bin new file mode 100644 index 0000000..3edb7eb --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/query-cache.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/work-products.bin b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/work-products.bin new file mode 100644 index 0000000..8cd81dd --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m-6peul2jv8908daj0nw4mab7cf/work-products.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m.lock b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m.lock new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-19oxkj578el4g/s-h04cghe62l-0151b2m.lock diff --git a/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/dep-graph.bin b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/dep-graph.bin new file mode 100644 index 0000000..95865e9 --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/dep-graph.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/query-cache.bin b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/query-cache.bin new file mode 100644 index 0000000..0a0fbe5 --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/query-cache.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/work-products.bin b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/work-products.bin new file mode 100644 index 0000000..5afa98c --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5-8ynkvlvwnvh8tvel08rcsih83/work-products.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5.lock b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5.lock new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2cpp8qrbqx110/s-h04chmvdpj-0k74sh5.lock diff --git a/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/dep-graph.bin b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/dep-graph.bin new file mode 100644 index 0000000..d9f9e2c --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/dep-graph.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/query-cache.bin b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/query-cache.bin new file mode 100644 index 0000000..ffbfcf9 --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/query-cache.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/work-products.bin b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/work-products.bin new file mode 100644 index 0000000..5afa98c --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao-90qor23uw8s248c3gcevhgtvu/work-products.bin Binary files differdiff --git a/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao.lock b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao.lock new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/rust/bf/target/debug/incremental/bf-2guqgsjcx98sq/s-h04chmvdyj-1xd31ao.lock |