Repository Analysis

oobabooga/textgen

Open-source desktop app for local LLMs. Text, vision, tool-calling, OpenAI/Anthropic-compatible API. 100% private.

15.8 Moderate AI signal View on GitHub
15.8
Adjusted Score
15.8
Raw Score
100%
Time Factor
2026-05-20
Last Push
47,257
Stars
Python
Language
51,606
Lines of Code
230
Files
539
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 48MEDIUM 43LOW 448

Pattern Findings

539 matches across 13 categories. Click a row to expand file-level details.

Cross-File Repetition42 hits · 210 pts
SeverityFileLineSnippet
HIGHdocs/07 - Extensions.md0manipulates the probabilities for the next token before it gets sampled. used in the logits_processor_modifier function
HIGHextensions/example/script.py0manipulates the probabilities for the next token before it gets sampled. used in the logits_processor_modifier function
HIGHextensions/long_replies/script.py0manipulates the probabilities for the next token before it gets sampled. used in the logits_processor_modifier function
HIGHdocs/07 - Extensions.md0modifies the state variable, which is a dictionary containing the input values in the ui like sliders and checkboxes.
HIGHextensions/example/script.py0modifies the state variable, which is a dictionary containing the input values in the ui like sliders and checkboxes.
HIGHextensions/long_replies/script.py0modifies the state variable, which is a dictionary containing the input values in the ui like sliders and checkboxes.
HIGHdocs/07 - Extensions.md0modifies the user input string in chat mode (visible_text). you can also modify the internal representation of the user
HIGHextensions/example/script.py0modifies the user input string in chat mode (visible_text). you can also modify the internal representation of the user
HIGHextensions/long_replies/script.py0modifies the user input string in chat mode (visible_text). you can also modify the internal representation of the user
HIGHdocs/07 - Extensions.md0in default/notebook modes, modifies the whole prompt. in chat mode, it is the same as chat_input_modifier but only appli
HIGHextensions/example/script.py0in default/notebook modes, modifies the whole prompt. in chat mode, it is the same as chat_input_modifier but only appli
HIGHextensions/long_replies/script.py0in default/notebook modes, modifies the whole prompt. in chat mode, it is the same as chat_input_modifier but only appli
HIGHdocs/07 - Extensions.md0modifies the prefix for the next bot reply in chat mode. by default, the prefix will be something like "bot name:".
HIGHextensions/example/script.py0modifies the prefix for the next bot reply in chat mode. by default, the prefix will be something like "bot name:".
HIGHextensions/long_replies/script.py0modifies the prefix for the next bot reply in chat mode. by default, the prefix will be something like "bot name:".
HIGHdocs/07 - Extensions.md0adds logits processors to the list, allowing you to access and modify the next token probabilities. only used by loaders
HIGHextensions/example/script.py0adds logits processors to the list, allowing you to access and modify the next token probabilities. only used by loaders
HIGHextensions/long_replies/script.py0adds logits processors to the list, allowing you to access and modify the next token probabilities. only used by loaders
HIGHdocs/07 - Extensions.md0modifies the llm output before it gets presented. in chat mode, the modified version goes into history['visible'], and t
HIGHextensions/example/script.py0modifies the llm output before it gets presented. in chat mode, the modified version goes into history['visible'], and t
HIGHextensions/long_replies/script.py0modifies the llm output before it gets presented. in chat mode, the modified version goes into history['visible'], and t
HIGHdocs/07 - Extensions.md0replaces the function that generates the prompt from the chat history. only used in chat mode.
HIGHextensions/example/script.py0replaces the function that generates the prompt from the chat history. only used in chat mode.
HIGHextensions/long_replies/script.py0replaces the function that generates the prompt from the chat history. only used in chat mode.
HIGHdocs/07 - Extensions.md0returns a css string that gets appended to the css for the webui.
HIGHextensions/example/script.py0returns a css string that gets appended to the css for the webui.
HIGHextensions/long_replies/script.py0returns a css string that gets appended to the css for the webui.
HIGHdocs/07 - Extensions.md0returns a javascript string that gets appended to the javascript for the webui.
HIGHextensions/example/script.py0returns a javascript string that gets appended to the javascript for the webui.
HIGHextensions/long_replies/script.py0returns a javascript string that gets appended to the javascript for the webui.
HIGHdocs/07 - Extensions.md0gets executed only once, when the extension is imported.
HIGHextensions/example/script.py0gets executed only once, when the extension is imported.
HIGHextensions/long_replies/script.py0gets executed only once, when the extension is imported.
HIGHdocs/07 - Extensions.md0gets executed when the ui is drawn. custom gradio elements and their corresponding event handlers should be defined here
HIGHextensions/example/script.py0gets executed when the ui is drawn. custom gradio elements and their corresponding event handlers should be defined here
HIGHextensions/long_replies/script.py0gets executed when the ui is drawn. custom gradio elements and their corresponding event handlers should be defined here
HIGHextensions/sd_api_pictures/script.py0this function is applied to your text inputs before they are fed into the model.
HIGHextensions/character_bias/script.py0this function is applied to your text inputs before they are fed into the model.
HIGHextensions/google_translate/script.py0this function is applied to your text inputs before they are fed into the model.
HIGHextensions/sd_api_pictures/script.py0this function is only applied in chat mode. it modifies the prefix text for the bot and can be used to bias its behavior
HIGHextensions/character_bias/script.py0this function is only applied in chat mode. it modifies the prefix text for the bot and can be used to bias its behavior
HIGHextensions/google_translate/script.py0this function is only applied in chat mode. it modifies the prefix text for the bot and can be used to bias its behavior
Hyper-Verbose Identifiers177 hits · 177 pts
SeverityFileLineSnippet
LOWdownload-model.py59 def sanitize_model_and_branch_names(self, model, branch):
LOWdownload-model.py79 def get_download_links_from_huggingface(self, model, branch, text_only=False, specific_file=None, exclude_pattern=No
LOWdownload-model.py205 def initialize_progress_bar_slots(self, num_threads):
LOWdownload-model.py208 def get_progress_bar_position(self):
LOWdownload-model.py217 def release_progress_bar_position(self, slot):
LOWone_click.py111def get_pytorch_install_command(gpu_choice):
LOWone_click.py129def get_pytorch_update_command(gpu_choice):
LOWone_click.py237def generate_alphabetic_sequence(index):
LOWone_click.py265def update_pytorch_and_python():
LOWone_click.py272def clean_outdated_pytorch_cuda_dependencies():
LOWone_click.py476def install_extensions_requirements():
LOWjs/main.js58function isFocusedOnEditableTextbox(event) {
LOWjs/main.js691function handleIndividualSidebarClose(event) {
LOWjs/main.js796function navigateLastAssistantMessage(direction) {
LOWjs/morphdom/morphdom-umd.min.js1(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define=
LOWdocs/07 - Extensions.md54| `def custom_generate_chat_prompt(...)` | Overrides the prompt generator in chat mode. |
LOWdocs/07 - Extensions.md195def logits_processor_modifier(processor_list, input_ids):
LOWdocs/07 - Extensions.md213def custom_generate_chat_prompt(user_input, state, **kwargs):
LOWextensions/example/script.py86def logits_processor_modifier(processor_list, input_ids):
LOWextensions/example/script.py104def custom_generate_chat_prompt(user_input, state, **kwargs):
LOWextensions/silero_tts/tts_preprocessor.py162def replace_lowercase_abbreviations(string):
LOWextensions/perplexity_colors/script.py92def logits_processor_modifier(logits_processor_list, input_ids):
LOWextensions/perplexity_colors/script.py234def probability_perplexity_color_scale(prob, max_prob, ppl):
LOWextensions/perplexity_colors/script.py436def convert_to_markdown_wrapped(string, use_cache=True):
LOWextensions/perplexity_colors/script.py449 def update_color_by_ppl_check(x):
LOWextensions/perplexity_colors/script.py452 def update_color_by_prob_check(x):
LOWextensions/perplexity_colors/script.py455 def update_prob_dropdown_check(x):
LOWextensions/superboogav2/chat_handler.py102def custom_generate_chat_prompt_internal(user_input: str, state: dict, collector: ChromaCollector, **kwargs):
LOWextensions/superboogav2/data_processor.py17def preprocess_text_no_summary(text) -> str:
LOWextensions/superboogav2/data_processor.py56def _create_chunks_with_context(corpus, chunk_len, context_left, context_right):
LOWextensions/superboogav2/data_processor.py142def process_and_add_to_collector(corpus: str, collector: ChromaCollector, clear_collector_before_adding: bool, metadata:
LOWextensions/superboogav2/chromadb.py142 def _split_texts_by_cache_hit(self, texts: list[str], new_ids: list[str], metadatas: list[dict]):
LOWextensions/superboogav2/chromadb.py173 def _find_min_max_start_index(self):
LOWextensions/superboogav2/chromadb.py187 def _apply_sigmoid_time_weighing(self, infos: list[Info], document_len: int, time_steepness: float, time_power: floa
LOWextensions/superboogav2/chromadb.py205 def _filter_outliers_by_median_distance(self, infos: list[Info], significant_level: float):
LOWextensions/superboogav2/chromadb.py242 def _get_documents_ids_distances(self, search_strings: list[str], n_results: int):
LOWextensions/superboogav2/chromadb.py289 def _get_documents_up_to_token_count(self, documents: list[str], max_token_count: int):
LOWextensions/superboogav2/parameters.py83def get_num_conversion_strategy() -> str:
LOWextensions/superboogav2/parameters.py95def should_remove_punctuation() -> bool:
LOWextensions/superboogav2/parameters.py103def should_remove_specific_pos() -> bool:
LOWextensions/superboogav2/parameters.py123def set_num_conversion_strategy(value: str):
LOWextensions/superboogav2/script.py50def _feed_data_into_collector(corpus):
LOWextensions/superboogav2/script.py56def _feed_file_into_collector(files):
LOWextensions/superboogav2/script.py195def _get_optimizable_settings() -> list:
LOWextensions/superboogav2/script.py288def custom_generate_chat_prompt(user_input, state, **kwargs):
LOWextensions/superbooga/chromadb.py31 def get_documents_ids_distances(self, search_strings: list[str], n_results: int):
LOWextensions/superbooga/chromadb.py58 def apply_time_weight_to_distances(self, ids: list[int], distances: list[float], time_weight: float = 1.0) -> list[f
LOWextensions/superbooga/script.py96def custom_generate_chat_prompt(user_input, state, **kwargs):
LOWextensions/long_replies/script.py88def logits_processor_modifier(processor_list, input_ids):
LOWextensions/long_replies/script.py106def custom_generate_chat_prompt(user_input, state, **kwargs):
LOWmodules/llama_cpp_server.py157 def _process_images_for_generation(self, state: dict) -> List[Any]:
LOWmodules/llama_cpp_server.py329 def get_prompt_logprob_entries(self, token_ids, n_probs=5, prompt=""):
LOWmodules/llama_cpp_server.py634def filter_stderr_with_progress(process_stderr):
LOWmodules/exllamav3_hf.py117 def prepare_inputs_for_generation(self, input_ids, **kwargs):
LOWmodules/exllamav3.py256 def _process_images_for_generation(self, prompt: str, state: dict) -> Tuple[str, List[Any]]:
LOWmodules/image_utils.py96def convert_image_attachments_to_pil(image_attachments: List[dict]) -> List[Image.Image]:
LOWmodules/image_utils.py111def convert_openai_messages_to_images(messages: List[dict]) -> List[Image.Image]:
LOWmodules/ui_chat.py153def create_character_settings_ui():
LOWmodules/models.py15def load_model_if_idle_unloaded():
LOWmodules/presets.py107def neutralize_samplers_for_ui(state):
117 more matches not shown…
Excessive Try-Catch Wrapping126 hits · 161 pts
SeverityFileLineSnippet
MEDIUMdownload-model.py308 print(f"Error downloading {filename}: {e}.")
MEDIUMdownload-model.py404 print("Error: Please specify the model you'd like to download (e.g. 'python download-model.py facebook/opt-1.3b'
MEDIUMdownload-model.py432 print(f"Error: {err_branch}")
LOWserver.py43 except Exception:
LOWone_click.py69 except Exception:
LOWextensions/sd_api_pictures/script.py267 except Exception:
LOWextensions/sd_api_pictures/script.py287 except Exception:
LOWextensions/sd_api_pictures/script.py301 except Exception:
LOWextensions/sd_api_pictures/script.py310 except Exception:
MEDIUMextensions/sd_api_pictures/script.py305def get_samplers():
LOWextensions/superboogav2/api.py138 except Exception as e:
LOWextensions/superboogav2/api.py152 except Exception as e:
MEDIUMextensions/superboogav2/api.py88def do_POST(self):
MEDIUMextensions/superboogav2/api.py141def do_DELETE(self):
LOWextensions/superboogav2/download_urls.py36 except Exception:
MEDIUMextensions/superboogav2/script.py61def read_binary_file(file_path):
MEDIUMextensions/superboogav2/script.py69def extract_with_utf8(text):
MEDIUMextensions/superboogav2/script.py75def extract_with_fitz(file_content):
MEDIUMextensions/superboogav2/script.py85def extract_with_docx(file_path):
MEDIUMextensions/superboogav2/script.py94def extract_with_pptx(file_path):
MEDIUMextensions/superboogav2/script.py134def extract_with_pandas(file_path):
LOWextensions/superboogav2/script.py65 except Exception:
LOWextensions/superboogav2/script.py72 except Exception:
LOWextensions/superboogav2/script.py82 except Exception:
LOWextensions/superboogav2/script.py91 except Exception:
LOWextensions/superboogav2/script.py102 except Exception:
LOWextensions/superboogav2/script.py130 except Exception as e:
LOWextensions/superboogav2/script.py140 except Exception:
LOWextensions/superboogav2/script.py284 except Exception as e:
LOWextensions/superbooga/download_urls.py32 except Exception:
LOWuser_data/tools/calculate.py51 except Exception as e:
LOWmodules/llama_cpp_server.py598 except Exception:
LOWmodules/llama_cpp_server.py688 except Exception:
LOWmodules/llama_cpp_server.py696 except Exception:
LOWmodules/exllamav3_hf.py22except Exception:
LOWmodules/exllamav3.py35except Exception:
LOWmodules/exllamav3.py81 except Exception:
LOWmodules/exllamav3.py196 except Exception as e:
LOWmodules/exllamav3.py303 except Exception as e:
LOWmodules/exllamav3.py560 except Exception as e:
LOWmodules/exllamav3.py566 except Exception as e:
LOWmodules/exllamav3.py572 except Exception as e:
LOWmodules/image_models.py159 except Exception as e:
LOWmodules/image_utils.py21 except Exception as e:
LOWmodules/image_utils.py44 except Exception as e:
LOWmodules/image_utils.py74 except Exception as e:
LOWmodules/image_utils.py86 except Exception as e:
LOWmodules/image_utils.py106 except Exception as e:
LOWmodules/models.py101 except Exception as e:
LOWmodules/ui.py370 except Exception:
LOWmodules/ui.py415 except Exception as e:
LOWmodules/tool_use.py41 except Exception:
LOWmodules/tool_use.py105 except Exception:
LOWmodules/tool_use.py264 except Exception as e:
LOWmodules/prompts.py38 except Exception:
MEDIUMmodules/prompts.py34def count_tokens(text):
LOWmodules/extensions.py75 except Exception:
MEDIUMmodules/chat.py2062def load_history_json(file, history):
LOWmodules/chat.py785 except Exception as e:
LOWmodules/chat.py1003 except Exception as e:
66 more matches not shown…
Deep Nesting111 hits · 103 pts
SeverityFileLineSnippet
LOWdownload-model.py79
LOWdownload-model.py221
LOWone_click.py111
LOWone_click.py129
LOWone_click.py147
LOWone_click.py323
LOWextensions/sd_api_pictures/script.py46
LOWextensions/sd_api_pictures/script.py316
LOWextensions/gallery/script.py72
LOWextensions/perplexity_colors/script.py108
LOWextensions/superboogav2/optimize.py40
LOWextensions/superboogav2/chat_handler.py102
LOWextensions/superboogav2/data_processor.py17
LOWextensions/superboogav2/data_processor.py142
LOWextensions/superboogav2/benchmark.py19
LOWextensions/superboogav2/chromadb.py27
LOWextensions/superboogav2/api.py88
LOWextensions/superboogav2/script.py56
LOWextensions/superboogav2/script.py228
LOWextensions/superboogav2/script.py296
LOWextensions/superboogav2/script.py105
LOWextensions/superbooga/script.py96
LOWmodules/llama_cpp_server.py634
LOWmodules/llama_cpp_server.py700
LOWmodules/llama_cpp_server.py73
LOWmodules/llama_cpp_server.py178
LOWmodules/llama_cpp_server.py415
LOWmodules/exllamav3_hf.py124
LOWmodules/exllamav3.py72
LOWmodules/exllamav3.py307
LOWmodules/image_models.py80
LOWmodules/image_utils.py49
LOWmodules/image_utils.py96
LOWmodules/ui_chat.py17
LOWmodules/ui_chat.py153
LOWmodules/ui_chat.py212
LOWmodules/models.py163
LOWmodules/ui.py317
LOWmodules/ui_default.py19
LOWmodules/html_generator.py242
LOWmodules/html_generator.py529
LOWmodules/html_generator.py262
LOWmodules/sane_markdown_lists.py201
LOWmodules/sane_markdown_lists.py245
LOWmodules/sane_markdown_lists.py277
LOWmodules/shared.py432
LOWmodules/ui_parameters.py9
LOWmodules/extensions.py27
LOWmodules/extensions.py87
LOWmodules/chat.py193
LOWmodules/chat.py236
LOWmodules/chat.py282
LOWmodules/chat.py333
LOWmodules/chat.py351
LOWmodules/chat.py827
LOWmodules/chat.py928
LOWmodules/chat.py1024
LOWmodules/chat.py1071
LOWmodules/chat.py1108
LOWmodules/chat.py1403
51 more matches not shown…
Redundant / Tautological Comments27 hits · 41 pts
SeverityFileLineSnippet
LOWone_click.py204 # Set executable to None for Windows, bash for everything else
LOWone_click.py539 # Check if a model has been downloaded yet
LOWextensions/superboogav2/optimize.py58# Check if the parameter is for optimization.
LOWextensions/superboogav2/chat_handler.py117 # Check if the strategy is to modify the last message. If so, prepend or append to the user query.
LOWextensions/superboogav2/benchmark.py36 # Check if the file exists
LOWextensions/superboogav2/benchmark.py38 # Open the file and read its content
LOWextensions/superboogav2/chromadb.py69 # Check if s1 and s2 are adjacent or overlapping
LOWextensions/superboogav2/data_preprocessor.py41 # Check if token is a word
LOWextensions/superboogav2/data_preprocessor.py43 # Check if token is not an abbreviation or constant
LOWextensions/superboogav2/data_preprocessor.py53 # Check if token is a number of length `min_len` or more
LOWextensions/superboogav2/data_preprocessor.py65 # Check if token is a number of length `min_len` or more
LOWextensions/superboogav2/data_preprocessor.py80 # Check if token is a number of length `min_len` or more
LOWextensions/superboogav2/data_preprocessor.py121 # Check if token is a word
LOWmodules/llama_cpp_server.py251 # Check if the line starts with "data: " and remove it
LOWmodules/llama_cpp_server.py589 # Check if process is still alive
LOWmodules/html_generator.py227 # Check if thinking is complete or still in progress
LOWmodules/sane_markdown_lists.py176 # Check if a custom start integer is set
LOWmodules/sane_markdown_lists.py181 # Loop through items in block, recursively parsing each with the
LOWmodules/sane_markdown_lists.py304 # Check if paragraph contains a list
LOWmodules/chat.py548 # Check if we have attachments
LOWmodules/chat.py1204 # Check if the current row has version metadata to sync during streaming
LOWmodules/training.py239 # Check if the file already exists in the subfolder
LOWmodules/ui_image_generation.py221 # Check if we need to refresh cache
LOWmodules/ui_image_generation.py699 # Check if LLM is loaded
LOWmodules/grammar/grammar_utils.py536 if not stacks: # Check if stacks is empty
LOWmodules/api/completions.py634 # Check if usage should be included in streaming chunks per OpenAI spec
LOWmodules/api/completions.py983 # Check if usage should be included in streaming chunks per OpenAI spec
Self-Referential Comments13 hits · 39 pts
SeverityFileLineSnippet
MEDIUMone_click.py13# Define the required versions
MEDIUMextensions/superboogav2/optimize.py64# Create a hashable representation of the parameters
MEDIUMextensions/superboogav2/chromadb.py133 # Create a dictionary that maps each ID to its context and starting index
MEDIUMextensions/superboogav2/utils.py8# Create the context using the prefix + data_separator + postfix from parameters.
MEDIUMmodules/ui_default.py161 # Create the new prompt file
MEDIUMmodules/html_generator.py87 # Define a list of quote pairs (opening and closing), using HTML entities
MEDIUMmodules/html_generator.py100 # Create a regex pattern that matches any of the quote pairs, including newlines
MEDIUMmodules/sane_markdown_lists.py311 # Create a regular paragraph
MEDIUMmodules/shared.py241# Create a mapping of all argument aliases to their canonical names
MEDIUMmodules/extensions.py216 # Creating the extension ui elements
MEDIUMmodules/chat.py2454 # Create a default user if none exist
MEDIUMmodules/ui_notebook.py196 # Create the new prompt file
MEDIUMmodules/training.py235 # Create the new subfolder
Cross-Language Confusion6 hits · 38 pts
SeverityFileLineSnippet
HIGHone_click.py327 "git init -b main && git remote add origin https://github.com/oobabooga/textgen && "
HIGHone_click.py328 "git fetch && git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main && "
HIGHone_click.py329 "git reset --hard origin/main && git branch --set-upstream-to=origin/main",
HIGHextensions/perplexity_colors/script.py353 if (name != null && name.includes("opt_")) {
HIGHextensions/perplexity_colors/script.py371 if (msg_part_name != null) {
HIGHextensions/perplexity_colors/script.py374 if (current_token_index == token_index && current_message_pos == msg_pos) {
Unused Imports24 hits · 24 pts
SeverityFileLineSnippet
LOWextensions/example/script.py10
LOWextensions/example/script.py11
LOWextensions/example/script.py14
LOWextensions/example/script.py15
LOWextensions/example/script.py15
LOWextensions/example/script.py15
LOWextensions/perplexity_colors/script.py1
LOWextensions/perplexity_colors/script.py5
LOWextensions/long_replies/script.py1
LOWextensions/long_replies/script.py3
LOWextensions/long_replies/script.py3
LOWmodules/exllamav3_hf.py21
LOWmodules/exllamav3.py34
LOWmodules/ui_chat.py3
LOWmodules/presets.py3
LOWmodules/ui_default.py1
LOWmodules/sane_markdown_lists.py19
LOWmodules/prompts.py1
LOWmodules/ui_parameters.py1
LOWmodules/ui_notebook.py3
LOWmodules/evaluate.py2
LOWmodules/tensorrt_llm.py7
LOWmodules/training.py10
LOWmodules/api/anthropic.py4
Verbosity Indicators6 hits · 14 pts
SeverityFileLineSnippet
LOWmodules/html_generator.py30 # Step 1: Remove comments
LOWmodules/html_generator.py33 # Step 2: Remove leading and trailing whitespace
LOWmodules/html_generator.py36 # Step 3: Remove spaces after specific characters ({ : ; ,})
LOWmodules/html_generator.py39 # Step 4: Remove spaces before `{`
LOWmodules/html_generator.py42 # Step 5: Remove empty lines
LOWmodules/html_generator.py45 # Step 6: Collapse all lines into one
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippet
MEDIUMextensions/superboogav2/chat_handler.py87 # TODO: This is an extremely naive solution. A more robust implementation must be made.
MEDIUMmodules/html_generator.py312 # Manual line iteration for robust structure parsing
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippet
LOWextensions/ngrok/script.py1# Adds ngrok ingress, to use add `--extension ngrok` to the command line options
LOWuser_data/CMD_FLAGS.txt1# Add persistent flags here to use every time you launch the web UI.
LOWmodules/sampler_hijack.py81 normalized_entropy = entropy / max_entropy
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMmodules/sane_markdown_lists.py2# =======================================
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippet
LOWmodules/shared.py404 logger.warning("You are potentially exposing the web UI to the entire internet without any access password.\