bbot 2.4.1.6077rc0__py3-none-any.whl → 2.4.1.6094rc0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bbot might be problematic. Click here for more details.

Files changed (34) hide show
  1. bbot/__init__.py +3 -1
  2. bbot/core/event/__init__.py +2 -0
  3. bbot/core/helpers/__init__.py +2 -2
  4. bbot/core/helpers/depsinstaller/__init__.py +2 -0
  5. bbot/core/helpers/dns/__init__.py +1 -1
  6. bbot/core/helpers/misc.py +3 -3
  7. bbot/core/helpers/web/__init__.py +1 -1
  8. bbot/core/helpers/web/client.py +1 -1
  9. bbot/core/helpers/web/web.py +1 -1
  10. bbot/modules/baddns.py +1 -1
  11. bbot/modules/baddns_direct.py +1 -1
  12. bbot/modules/baddns_zone.py +1 -1
  13. bbot/modules/internal/speculate.py +2 -2
  14. bbot/modules/telerik.py +0 -1
  15. bbot/scanner/__init__.py +2 -0
  16. bbot/scanner/preset/__init__.py +2 -0
  17. bbot/scanner/target.py +2 -0
  18. bbot/test/bbot_fixtures.py +2 -4
  19. bbot/test/conftest.py +1 -2
  20. bbot/test/test_step_1/test_presets.py +0 -2
  21. bbot/test/test_step_2/module_tests/test_module_censys.py +7 -5
  22. bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -1
  23. bbot/test/test_step_2/module_tests/test_module_host_header.py +0 -1
  24. bbot/test/test_step_2/module_tests/test_module_ipstack.py +2 -2
  25. bbot/test/test_step_2/module_tests/test_module_postman.py +26 -3
  26. bbot/test/test_step_2/module_tests/test_module_postman_download.py +21 -2
  27. bbot/test/test_step_2/module_tests/test_module_telerik.py +1 -1
  28. bbot/test/test_step_2/module_tests/test_module_trufflehog.py +27 -4
  29. bbot/test/test_step_2/module_tests/test_module_websocket.py +0 -1
  30. {bbot-2.4.1.6077rc0.dist-info → bbot-2.4.1.6094rc0.dist-info}/METADATA +2 -2
  31. {bbot-2.4.1.6077rc0.dist-info → bbot-2.4.1.6094rc0.dist-info}/RECORD +34 -34
  32. {bbot-2.4.1.6077rc0.dist-info → bbot-2.4.1.6094rc0.dist-info}/LICENSE +0 -0
  33. {bbot-2.4.1.6077rc0.dist-info → bbot-2.4.1.6094rc0.dist-info}/WHEEL +0 -0
  34. {bbot-2.4.1.6077rc0.dist-info → bbot-2.4.1.6094rc0.dist-info}/entry_points.txt +0 -0
bbot/__init__.py CHANGED
@@ -1,4 +1,6 @@
1
1
  # version placeholder (replaced by poetry-dynamic-versioning)
2
- __version__ = "v2.4.1.6077rc"
2
+ __version__ = "v2.4.1.6094rc"
3
3
 
4
4
  from .scanner import Scanner, Preset
5
+
6
+ __all__ = ["Scanner", "Preset"]
@@ -1 +1,3 @@
1
1
  from .base import make_event, is_event, event_from_json
2
+
3
+ __all__ = ["make_event", "is_event", "event_from_json"]
@@ -1,4 +1,4 @@
1
1
  from .url import *
2
2
  from .misc import *
3
- from . import regexes
4
- from . import validators
3
+ from . import regexes as regexes
4
+ from . import validators as validators
@@ -1 +1,3 @@
1
1
  from .installer import DepsInstaller
2
+
3
+ __all__ = ["DepsInstaller"]
@@ -1 +1 @@
1
- from .dns import DNSHelper
1
+ from .dns import DNSHelper # noqa
bbot/core/helpers/misc.py CHANGED
@@ -50,7 +50,7 @@ def is_domain(d):
50
50
  if is_ip(d):
51
51
  return False
52
52
  extracted = tldextract(d)
53
- if extracted.registered_domain:
53
+ if extracted.top_domain_under_public_suffix:
54
54
  if not extracted.subdomain:
55
55
  return True
56
56
  else:
@@ -85,7 +85,7 @@ def is_subdomain(d):
85
85
  if is_ip(d):
86
86
  return False
87
87
  extracted = tldextract(d)
88
- if extracted.registered_domain:
88
+ if extracted.top_domain_under_public_suffix:
89
89
  if extracted.subdomain:
90
90
  return True
91
91
  else:
@@ -486,7 +486,7 @@ def split_domain(hostname):
486
486
  return ("", hostname)
487
487
  parsed = tldextract(hostname)
488
488
  subdomain = parsed.subdomain
489
- domain = parsed.registered_domain
489
+ domain = parsed.top_domain_under_public_suffix
490
490
  if not domain:
491
491
  split = hostname.split(".")
492
492
  subdomain = ".".join(split[:-2])
@@ -1 +1 @@
1
- from .web import WebHelper
1
+ from .web import WebHelper # noqa
@@ -70,7 +70,7 @@ class BBOTAsyncClient(httpx.AsyncClient):
70
70
  kwargs["headers"] = headers
71
71
  # proxy
72
72
  proxies = self._web_config.get("http_proxy", None)
73
- kwargs["proxies"] = proxies
73
+ kwargs["proxy"] = proxies
74
74
 
75
75
  log.verbose(f"Creating httpx.AsyncClient({args}, {kwargs})")
76
76
  super().__init__(*args, **kwargs)
@@ -95,7 +95,7 @@ class WebHelper(EngineClient):
95
95
  files (dict, optional): Dictionary of 'name': file-like-objects for multipart encoding upload.
96
96
  auth (tuple, optional): Auth tuple to enable Basic/Digest/Custom HTTP auth.
97
97
  timeout (float, optional): The maximum time to wait for the request to complete.
98
- proxies (dict, optional): Dictionary mapping protocol schemes to proxy URLs.
98
+ proxy (str, optional): HTTP proxy URL.
99
99
  allow_redirects (bool, optional): Enables or disables redirection. Defaults to None.
100
100
  stream (bool, optional): Enables or disables response streaming.
101
101
  raise_error (bool, optional): Whether to raise exceptions for HTTP connect, timeout errors. Defaults to False.
bbot/modules/baddns.py CHANGED
@@ -22,7 +22,7 @@ class baddns(BaseModule):
22
22
  "enabled_submodules": "A list of submodules to enable. Empty list (default) enables CNAME, TXT and MX Only",
23
23
  }
24
24
  module_threads = 8
25
- deps_pip = ["baddns~=1.4.13"]
25
+ deps_pip = ["baddns~=1.9.130"]
26
26
 
27
27
  def select_modules(self):
28
28
  selected_submodules = []
@@ -19,7 +19,7 @@ class baddns_direct(BaseModule):
19
19
  "custom_nameservers": "Force BadDNS to use a list of custom nameservers",
20
20
  }
21
21
  module_threads = 8
22
- deps_pip = ["baddns~=1.4.13"]
22
+ deps_pip = ["baddns~=1.9.130"]
23
23
 
24
24
  scope_distance_modifier = 1
25
25
 
@@ -16,7 +16,7 @@ class baddns_zone(baddns_module):
16
16
  "only_high_confidence": "Do not emit low-confidence or generic detections",
17
17
  }
18
18
  module_threads = 8
19
- deps_pip = ["baddns~=1.4.13"]
19
+ deps_pip = ["baddns~=1.9.130"]
20
20
 
21
21
  def set_modules(self):
22
22
  self.enabled_submodules = ["NSEC", "zonetransfer"]
@@ -176,8 +176,8 @@ class speculate(BaseInternalModule):
176
176
  org_stubs = set()
177
177
  if event.type == "DNS_NAME" and event.scope_distance == 0:
178
178
  tldextracted = self.helpers.tldextract(event.data)
179
- registered_domain = getattr(tldextracted, "registered_domain", "")
180
- if registered_domain:
179
+ top_domain_under_public_suffix = getattr(tldextracted, "top_domain_under_public_suffix", "")
180
+ if top_domain_under_public_suffix:
181
181
  tld_stub = getattr(tldextracted, "domain", "")
182
182
  if tld_stub:
183
183
  decoded_tld_stub = self.helpers.smart_decode_punycode(tld_stub)
bbot/modules/telerik.py CHANGED
@@ -1,5 +1,4 @@
1
1
  from sys import executable
2
- from urllib.parse import urlparse
3
2
 
4
3
  from bbot.modules.base import BaseModule
5
4
 
bbot/scanner/__init__.py CHANGED
@@ -1,2 +1,4 @@
1
1
  from .preset import Preset
2
2
  from .scanner import Scanner
3
+
4
+ __all__ = ["Preset", "Scanner"]
@@ -1 +1,3 @@
1
1
  from .preset import Preset
2
+
3
+ __all__ = ["Preset"]
bbot/scanner/target.py CHANGED
@@ -28,6 +28,8 @@ class BaseTarget(RadixTarget):
28
28
  accept_target_types = ["TARGET"]
29
29
 
30
30
  def __init__(self, *targets, **kwargs):
31
+ # ignore blank targets (sometimes happens as a symptom of .splitlines())
32
+ targets = [stripped for t in targets if (stripped := (t.strip() if isinstance(t, str) else t))]
31
33
  self.event_seeds = set()
32
34
  super().__init__(*targets, **kwargs)
33
35
 
@@ -1,11 +1,9 @@
1
1
  import os # noqa
2
- import sys
3
- import zlib
2
+ import sys # noqa
4
3
  import pytest
5
4
  import shutil # noqa
6
5
  import asyncio # noqa
7
6
  import logging
8
- import subprocess
9
7
  import tldextract
10
8
  import pytest_httpserver
11
9
  from pathlib import Path
@@ -16,8 +14,8 @@ from werkzeug.wrappers import Request
16
14
  from bbot.errors import * # noqa: F401
17
15
  from bbot.core import CORE
18
16
  from bbot.scanner import Preset
17
+ from bbot.core.helpers.misc import mkdir, rand_string
19
18
  from bbot.core.helpers.async_helpers import get_event_loop
20
- from bbot.core.helpers.misc import mkdir, rand_string, get_python_constraints
21
19
 
22
20
 
23
21
  log = logging.getLogger("bbot.test.fixtures")
bbot/test/conftest.py CHANGED
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  import ssl
3
+ import time
3
4
  import shutil
4
5
  import pytest
5
6
  import asyncio
@@ -8,8 +9,6 @@ from pathlib import Path
8
9
  from contextlib import suppress
9
10
  from omegaconf import OmegaConf
10
11
  from pytest_httpserver import HTTPServer
11
- import time
12
- import queue
13
12
 
14
13
  from bbot.core import CORE
15
14
  from bbot.core.helpers.misc import execute_sync_or_async
@@ -1079,8 +1079,6 @@ scan_name: bbot_test
1079
1079
 
1080
1080
  # regression test for https://github.com/blacklanternsecurity/bbot/issues/2337
1081
1081
  def test_preset_serialization():
1082
- from ipaddress import ip_address, ip_network
1083
-
1084
1082
  preset = Preset("192.168.1.1")
1085
1083
  preset = preset.bake()
1086
1084
 
@@ -7,7 +7,7 @@ class TestCensys(ModuleTestBase):
7
7
  async def setup_before_prep(self, module_test):
8
8
  module_test.httpx_mock.add_response(
9
9
  url="https://search.censys.io/api/v1/account",
10
- # match_headers={"Authorization": "Basic YXBpX2lkOmFwaV9zZWNyZXQ="},
10
+ match_headers={"Authorization": "Basic YXBpX2lkOmFwaV9zZWNyZXQ="},
11
11
  json={
12
12
  "email": "info@blacklanternsecurity.com",
13
13
  "login": "nope",
@@ -18,8 +18,9 @@ class TestCensys(ModuleTestBase):
18
18
  )
19
19
  module_test.httpx_mock.add_response(
20
20
  url="https://search.censys.io/api/v2/certificates/search",
21
- # match_headers={"Authorization": "Basic YXBpX2lkOmFwaV9zZWNyZXQ="},
22
- match_content=b'{"q": "names: blacklanternsecurity.com", "per_page": 100}',
21
+ match_headers={"Authorization": "Basic YXBpX2lkOmFwaV9zZWNyZXQ="},
22
+ method="POST",
23
+ match_json={"q": "names: blacklanternsecurity.com", "per_page": 100},
23
24
  json={
24
25
  "code": 200,
25
26
  "status": "OK",
@@ -47,8 +48,9 @@ class TestCensys(ModuleTestBase):
47
48
  )
48
49
  module_test.httpx_mock.add_response(
49
50
  url="https://search.censys.io/api/v2/certificates/search",
50
- # match_headers={"Authorization": "Basic YXBpX2lkOmFwaV9zZWNyZXQ="},
51
- match_content=b'{"q": "names: blacklanternsecurity.com", "per_page": 100, "cursor": "NextToken"}',
51
+ match_headers={"Authorization": "Basic YXBpX2lkOmFwaV9zZWNyZXQ="},
52
+ method="POST",
53
+ match_json={"q": "names: blacklanternsecurity.com", "per_page": 100, "cursor": "NextToken"},
52
54
  json={
53
55
  "code": 200,
54
56
  "status": "OK",
@@ -1,4 +1,3 @@
1
- import asyncio
2
1
  import re
3
2
  from .base import ModuleTestBase
4
3
  from werkzeug.wrappers import Response
@@ -1,4 +1,3 @@
1
- import asyncio
2
1
  import re
3
2
  from werkzeug.wrappers import Response
4
3
 
@@ -26,7 +26,7 @@ class TestIPStack(ModuleTestBase):
26
26
  "capital": "Washington D.C.",
27
27
  "languages": [{"code": "en", "name": "English", "native": "English"}],
28
28
  "country_flag": "https://assets.ipstack.com/flags/us.svg",
29
- "country_flag_emoji": "\ud83c\uddfa\ud83c\uddf8",
29
+ "country_flag_emoji": "🇺🇸",
30
30
  "country_flag_emoji_unicode": "U+1F1FA U+1F1F8",
31
31
  "calling_code": "1",
32
32
  "is_eu": False,
@@ -53,7 +53,7 @@ class TestIPStack(ModuleTestBase):
53
53
  "capital": "Washington D.C.",
54
54
  "languages": [{"code": "en", "name": "English", "native": "English"}],
55
55
  "country_flag": "https://assets.ipstack.com/flags/us.svg",
56
- "country_flag_emoji": "\ud83c\uddfa\ud83c\uddf8",
56
+ "country_flag_emoji": "🇺🇸",
57
57
  "country_flag_emoji_unicode": "U+1F1FA U+1F1F8",
58
58
  "calling_code": "1",
59
59
  "is_eu": False,
@@ -45,7 +45,22 @@ class TestPostman(ModuleTestBase):
45
45
  )
46
46
  module_test.httpx_mock.add_response(
47
47
  url="https://www.postman.com/_api/ws/proxy",
48
- match_content=b'{"service": "search", "method": "POST", "path": "/search-all", "body": {"queryIndices": ["collaboration.workspace"], "queryText": "blacklanternsecurity", "size": 25, "from": 0, "clientTraceId": "", "requestOrigin": "srp", "mergeEntities": "true", "nonNestedRequests": "true", "domain": "public"}}',
48
+ match_json={
49
+ "service": "search",
50
+ "method": "POST",
51
+ "path": "/search-all",
52
+ "body": {
53
+ "queryIndices": ["collaboration.workspace"],
54
+ "queryText": "blacklanternsecurity",
55
+ "size": 25,
56
+ "from": 0,
57
+ "clientTraceId": "",
58
+ "requestOrigin": "srp",
59
+ "mergeEntities": "true",
60
+ "nonNestedRequests": "true",
61
+ "domain": "public",
62
+ },
63
+ },
49
64
  json={
50
65
  "data": [
51
66
  {
@@ -177,7 +192,11 @@ class TestPostman(ModuleTestBase):
177
192
  )
178
193
  module_test.httpx_mock.add_response(
179
194
  url="https://www.postman.com/_api/ws/proxy",
180
- match_content=b'{"service": "workspaces", "method": "GET", "path": "/workspaces?handle=blacklanternsecurity&slug=bbot-public"}',
195
+ match_json={
196
+ "service": "workspaces",
197
+ "method": "GET",
198
+ "path": "/workspaces?handle=blacklanternsecurity&slug=bbot-public",
199
+ },
181
200
  json={
182
201
  "meta": {"model": "workspace", "action": "find", "nextCursor": ""},
183
202
  "data": [
@@ -207,7 +226,11 @@ class TestPostman(ModuleTestBase):
207
226
  )
208
227
  module_test.httpx_mock.add_response(
209
228
  url="https://www.postman.com/_api/ws/proxy",
210
- match_content=b'{"service": "workspaces", "method": "GET", "path": "/workspaces?handle=testteam&slug=testing-bbot-api"}',
229
+ match_json={
230
+ "service": "workspaces",
231
+ "method": "GET",
232
+ "path": "/workspaces?handle=testteam&slug=testing-bbot-api",
233
+ },
211
234
  json={
212
235
  "meta": {"model": "workspace", "action": "find", "nextCursor": ""},
213
236
  "data": [
@@ -45,7 +45,22 @@ class TestPostman_Download(ModuleTestBase):
45
45
  )
46
46
  module_test.httpx_mock.add_response(
47
47
  url="https://www.postman.com/_api/ws/proxy",
48
- match_content=b'{"service": "search", "method": "POST", "path": "/search-all", "body": {"queryIndices": ["collaboration.workspace"], "queryText": "blacklanternsecurity", "size": 25, "from": 0, "clientTraceId": "", "requestOrigin": "srp", "mergeEntities": "true", "nonNestedRequests": "true", "domain": "public"}}',
48
+ match_json={
49
+ "service": "search",
50
+ "method": "POST",
51
+ "path": "/search-all",
52
+ "body": {
53
+ "queryIndices": ["collaboration.workspace"],
54
+ "queryText": "blacklanternsecurity",
55
+ "size": 25,
56
+ "from": 0,
57
+ "clientTraceId": "",
58
+ "requestOrigin": "srp",
59
+ "mergeEntities": "true",
60
+ "nonNestedRequests": "true",
61
+ "domain": "public",
62
+ },
63
+ },
49
64
  json={
50
65
  "data": [
51
66
  {
@@ -126,7 +141,11 @@ class TestPostman_Download(ModuleTestBase):
126
141
  )
127
142
  module_test.httpx_mock.add_response(
128
143
  url="https://www.postman.com/_api/ws/proxy",
129
- match_content=b'{"service": "workspaces", "method": "GET", "path": "/workspaces?handle=blacklanternsecurity&slug=bbot-public"}',
144
+ match_json={
145
+ "service": "workspaces",
146
+ "method": "GET",
147
+ "path": "/workspaces?handle=blacklanternsecurity&slug=bbot-public",
148
+ },
130
149
  json={
131
150
  "meta": {"model": "workspace", "action": "find", "nextCursor": ""},
132
151
  "data": [
@@ -1,5 +1,5 @@
1
1
  import re
2
- from .base import ModuleTestBase, tempwordlist
2
+ from .base import ModuleTestBase
3
3
 
4
4
 
5
5
  class TestTelerik(ModuleTestBase):
@@ -22,7 +22,7 @@ class TestTrufflehog(ModuleTestBase):
22
22
  "trufflehog",
23
23
  ]
24
24
 
25
- file_content = "Verifyable Secret:\nhttps://admin:admin@the-internet.herokuapp.com/basic_auth\n\nUnverifyable Secret:\nhttps://admin:admin@internal.host.com"
25
+ file_content = "Verifiable Secret:\nhttps://admin:admin@the-internet.herokuapp.com/basic_auth\n\nUnverifiable Secret:\nhttps://admin:admin@internal.host.com"
26
26
 
27
27
  async def setup_before_prep(self, module_test):
28
28
  module_test.httpx_mock.add_response(url="https://api.github.com/zen")
@@ -848,7 +848,22 @@ class TestTrufflehog(ModuleTestBase):
848
848
  async def setup_after_prep(self, module_test):
849
849
  module_test.httpx_mock.add_response(
850
850
  url="https://www.postman.com/_api/ws/proxy",
851
- match_content=b'{"service": "search", "method": "POST", "path": "/search-all", "body": {"queryIndices": ["collaboration.workspace"], "queryText": "blacklanternsecurity", "size": 25, "from": 0, "clientTraceId": "", "requestOrigin": "srp", "mergeEntities": "true", "nonNestedRequests": "true", "domain": "public"}}',
851
+ match_json={
852
+ "service": "search",
853
+ "method": "POST",
854
+ "path": "/search-all",
855
+ "body": {
856
+ "queryIndices": ["collaboration.workspace"],
857
+ "queryText": "blacklanternsecurity",
858
+ "size": 25,
859
+ "from": 0,
860
+ "clientTraceId": "",
861
+ "requestOrigin": "srp",
862
+ "mergeEntities": "true",
863
+ "nonNestedRequests": "true",
864
+ "domain": "public",
865
+ },
866
+ },
852
867
  json={
853
868
  "data": [
854
869
  {
@@ -929,7 +944,11 @@ class TestTrufflehog(ModuleTestBase):
929
944
  )
930
945
  module_test.httpx_mock.add_response(
931
946
  url="https://www.postman.com/_api/ws/proxy",
932
- match_content=b'{"service": "workspaces", "method": "GET", "path": "/workspaces?handle=blacklanternsecurity&slug=bbot-public"}',
947
+ match_json={
948
+ "service": "workspaces",
949
+ "method": "GET",
950
+ "path": "/workspaces?handle=blacklanternsecurity&slug=bbot-public",
951
+ },
933
952
  json={
934
953
  "meta": {"model": "workspace", "action": "find", "nextCursor": ""},
935
954
  "data": [
@@ -1134,6 +1153,7 @@ class TestTrufflehog(ModuleTestBase):
1134
1153
  and "Raw result: [https://admin:admin@the-internet.herokuapp.com]" in e.data["description"]
1135
1154
  and "RawV2 result: [https://admin:admin@the-internet.herokuapp.com/basic_auth]" in e.data["description"]
1136
1155
  ]
1156
+
1137
1157
  # Trufflehog should find 4 verifiable secrets, 1 from the github, 1 from the workflow log, 1 from the docker image and 1 from the postman.
1138
1158
  assert 4 == len(vuln_events), "Failed to find secret in events"
1139
1159
  github_repo_event = [e for e in vuln_events if "test_keys" in e.data["description"]][0].parent
@@ -1262,7 +1282,10 @@ class TestTrufflehog_RAWText(ModuleTestBase):
1262
1282
  config_overrides = {"modules": {"trufflehog": {"only_verified": False}}}
1263
1283
 
1264
1284
  async def setup_before_prep(self, module_test):
1265
- expect_args = {"method": "GET", "uri": "/test.pdf"}
1285
+ expect_args = {
1286
+ "method": "GET",
1287
+ "uri": "/test.pdf",
1288
+ }
1266
1289
  respond_args = {
1267
1290
  "response_data": b"%PDF-1.4\n%\xc7\xec\x8f\xa2\n%%Invocation: path/gs -P- -dSAFER -dCompatibilityLevel=1.4 -dWriteXRefStm=false -dWriteObjStms=false -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=? -sOutputFile=? -P- -dSAFER -dCompatibilityLevel=1.4 -dWriteXRefStm=false -dWriteObjStms=false -\n5 0 obj\n<</Length 6 0 R/Filter /FlateDecode>>\nstream\nx\x9c-\x8c\xb1\x0e\x82@\x10D\xfb\xfd\x8a-\xa1\xe0\xd8\xe5@\xe1*c\xb4\xb1\xd3lba,\xc8\x81\x82\xf1@\xe4\xfe?\x02\x92If\x92\x97\x99\x19\x90\x14#\xcdZ\xd3: |\xc2\x00\xbcP\\\xc3:\xdc\x0b\xc4\x97\xed\x0c\xe4\x01\xff2\xe36\xc5\x9c6Jk\x8d\xe2\xe0\x16\\\xeb\n\x0f\xb5E\xce\x913\x93\x15F3&\x94\xa4a\x94fD\x01\x87w9M7\xc5z3Q\x8cx\xd9'(\x15\x04\x8d\xf7\x9f\xd1\xc4qY\xb9\xb63\x8b\xef\xda\xce\xd7\xdf\xae|\xab\xa6\x1f\xbd\xb2\xbd\x0b\xe5\x05G\x81\xf3\xa4\x1f~q-\xc7endstream\nendobj\n6 0 obj\n155\nendobj\n4 0 obj\n<</Type/Page/MediaBox [0 0 595 842]\n/Rotate 0/Parent 3 0 R\n/Resources<</ProcSet[/PDF /Text]\n/Font 11 0 R\n>>\n/Contents 5 0 R\n>>\nendobj\n3 0 obj\n<< /Type /Pages /Kids [\n4 0 R\n] /Count 1\n>>\nendobj\n1 0 obj\n<</Type /Catalog /Pages 3 0 R\n/Metadata 14 0 R\n>>\nendobj\n11 0 obj\n<</R9\n9 0 R/R7\n7 0 R>>\nendobj\n9 0 obj\n<</BaseFont/YTNPVC+Courier/FontDescriptor 10 0 R/Type/Font\n/FirstChar 46/LastChar 116/Widths[ 600 600\n0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0\n600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n0 600 0 600 600 600 0 0 600 600 0 0 600 600 600 600\n600 0 600 600 600]\n/Encoding/WinAnsiEncoding/Subtype/Type1>>\nendobj\n7 0 obj\n<</BaseFont/NXCWXT+Courier-Bold/FontDescriptor 8 0 R/Type/Font\n/FirstChar 32/LastChar 101/Widths[\n600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n600 600 600 600 600 600 0 0 600 600 600 0 0 0 0 0\n0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0\n0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0\n0 0 0 600 600 600]\n/Encoding/WinAnsiEncoding/Subtype/Type1>>\nendobj\n10 0 obj\n<</Type/FontDescriptor/FontName/YTNPVC+Courier/FontBBox[0 -182 599 665]/Flags 33\n/Ascent 665\n/CapHeight 665\n/Descent -182\n/ItalicAngle 0\n/StemV 89\n/AvgWidth 600\n/MaxWidth 600\n/MissingWidth 600\n/XHeight 433\n/CharSet(/a/at/c/colon/d/e/h/i/l/m/n/o/p/period/r/s/slash/t)/FontFile3 12 0 R>>\nendobj\n12 0 obj\n<</Filter/FlateDecode\n/Subtype/Type1C/Length 1794>>stream\nx\x9c\x9dT{TS\xf7\x1d\xbf\x91ps\x8f\xa0\xb2\xdc\x06\x1f\xe8\xbdX[|\xa0\x85\xaa\xad\xa7\xf4\x14P\x1eG9\x05\x9c\xa2\x08\xb4\xee@\x88\xc83\x08\x04\x84\x80\x84@B\xd3\x1f84!@\x12\x08\xe0\x8b\x97S\xe9\xc4U\xf4\x06\xb5\x15\xdd:5\xc8&j=\xb2\xad:'T9\xeb\xce\xbe\xb7\xe7\xban\xbf\x80\x16\xdb\xd3\xed\x8f\x9d\x93?n\xee\xe3\xf3\xfb~\x1e\xdf\x8f\x88\x10\xcf D\"\x11\x15\xa6T\xe5\xa5+\xf2\\\xd7\xabx\x1f\x11\xbfp\x06\xbf\xc8\r\tQ\xfc\xd8\xb7\xab\xdcy\xc6\x93\xa8\xf1\x14!O7\xe4)n_H\x19\xa4\xd0\xfb3\xa8\x9d\x03\xc5^\x84X$Z\x17\x9dd]\xb6mK\xfcr\x7f\xff\x95a\xca\xdc\xe2\xbc\xf4\xb4\xdd\x05\xbe\xab\x03\xdf\\\xeb\x9bR\xec\xfb\xfc\x89o\xb8\"?=-\xc7\xd7\x0f_\x14*\xb2\x94\xb9\xd9\x8a\x9c\x82\x98\xf4\xec\x14U\xbeo\xb42G\xe9\xbby\xab\xef\x16E\x9a*+9\xef\x87w\xa7\x11\xff\xbf3\x08\x82\x90\xe6(s\xf3\xf2\x0b\x92\xe5\xa9\x8a\xdd\xe9Y\xd9o\x04\x04\x85\x12D,\xb1\x99\xf89\xb1\x95\x88#\xb6\x11\x1b\x88p\"\x82\x88$6\x11QD4\x11C\xcc!\xbc\x08\x1fb1Acq\x081\xa1'\x06E\x1bE}3>\x9cq\xc1m\x93[\x9fx\x89\xb8P\x0c\xee\x91\xee\x95\xe4\xab\xe4zRIvJ\xd6\xf3\xe3\xb3\xf9q\xc4\xc1}N:\x08\xee\xf1\x0eht\xcc\xa5Ga=\xbfN\x16D\xaa**KJ\xcc\xdaV\x96\x1e\xe9\x10\x9crR\xa5\xd1\xaaK\x1a\xf0\x7f\x98G\xb6\x9aM6\xab\xc6T\xc8\xcaAG^\xf9\xe3a\xcb\x15t\x02\xb5\xe8\xda\x8a\x0f\x155\x14\xa0\\J\xa8PJ\xa6\xdf\x17\x91\xf6\x86\xe7\xef\xe7\xc0G\xe4\xed\x88\xc1\x00\x86\x1e\x8dAi\xc5\xdb\xb7Rx\x025\x07O9\xd15\x07\xfc\xdb\xe1\x06\x9f\xf1\x112a\xc1k\xcb\x05Z\xf0\xfaf)x\x83\xf7\xdf\x9f\x80\x14\xe6\xbc6!\xd0\xacn\x87\xec\x9b\xbb\xa1\xcb\xfc\xdf\r\xf6\xf3\x0b\x1a\x19\x7f|\xf7\xf6\x13\x16\x03\x08Q\x1c,\xe6`\x90\xdb\xc5Im0\x1f\x13\xf9\x1a\x13y\x04+0\x11\xbf\x97\x88|u\xeeYu\"I?*t\x8d\xe6\xba\x03\xdb\xc8\xb6)**\x96~\x18\x00\x05\xe4\xa7[.\xee\x19F\x14H\xc7\x1f\x81\x07K/\x00O\xff\x87\xc2+\xeb\x93\xf2cv0t\"\x04\x1f\x97=\xb9\x15\x11\xb8:$\xdc\x7fE\xc8\xd0\x83\xbf\xdc\xba\xf97vJC'\x97\xc2I\xe1\x17\xf8\xdc\x1b`\xc4\xe7\n\xb3\xc8\xc2r\xadZ\xddP\xd1\xca\xde\x10\x9c\x81\xf8_E\xe9\x94\x1e\xceI=,\xe5\xf5E\xac\xb0\x01RI:p\x1c\x88\x9e\xb6>\x1f;j\xd6\x1e\xca7V\xed7\x98\x10e1\x9b\xad\xf5:\xd3^\x0b\x9b\xdb\xae2e\xa1x\xf4\xc1\x9e5\xefM\xe9\xb5\xdb\x0e\xdfq\xe9v)x\\\x82\xc3\x97\xe6\xd2\xef\xc3\n\x98)\xb3j\xcc\xa5%ZM!\x13$)4ilV\x93\xd9\xce\xd0=Y\xa7\x06\xd4W|`\xe6\xfdKwN\x14\xfd*\xb3\x95\xcdh\xdbe\x8e>\xb0\xa6^_\xa3j,6k,\xa8\x89\xea\x1d\xe8\xb89|>7\xa5\x8e\xa9-6j-\x88\xb2\x99\xcc\xad\xecu\t\xbd\xb0UkV\x97UT\x94\x1a0\xd2\x91\xf4\x9d\x8d\xdb|\xfcB\x137f4gu\x16\xb3\x1d\xc5\x1dU\x7f\xa8\xba\xa8;\xa2;Rzx\x9fU\x85\n\xa9\xc4\xf7\xd3\xde~g\xe3\xf1\xd3\xcc\x94\xad\x7f\xe2D\xe0\x8bM\x8d\xc3\x82\x80X\xd2\xaa\xad/\xc1\x03\x161\x828\x12\xe7c\xd2\x966\xac\x8e\x99\x0c\xf9m\xc2\xd7g/\x99\x9b\xfb\x99\x93M\xd6Fd\xa1\x9a4\xe62}\xf5\xc7:-\x93\xaa\x8aT\xc7!jSJ\xe7Y\x16L\x90!q9f\xd3\x18U\xec\x94\x14\x1c\xbc\xc5\x81\x07'\xc5\xf9\xe9w\xc4\xc3\xfc\xb9t\x1e\xbf\xda{b:\xa3ti\"\x98\xc8\xe1\xf0\x01\x7fE\xd4\xbe\xbdqL\x99\xbe\xaa\x12\x95SefMc\xdd\xfe\x9a_62\x9f5\x9f6v#\xca\xd9\x9f\xbd\x93\x8d\x96\xc4Z\xf2\xf6\xefD\x94\xe0\xbd6v5Kk\x83\xbf\xd8>v\xe3b\xdb\xc0U,\xc0eqTl|A$\xa26&w\xf5\x7f\xee\xfc\xe4\xe9\x99~}e\x0f\xfb\"\xc2\xd8\x90;.\xff\xf9]\xbcL&\xef\xdan\xdb\x8ca\x16-_)\xcc\x17dc\x01\xe0s\xed\xf7-'\x06\xd8N\xbb\xa5\x19K\xde\xa81\xef\xab\xd4\x1b\xb4Z&\xe1\xc3\x98\x820D-\x0euN\xfccx\xe8\x9f\xf7\xae)\x12\x0e\xb0\xb5E\xc6\xca)\x1f\xec\xec\x03\t\x1d\x88}()\xa9\xc4\xde\xbe }\x7f\x92\xf4\xe7\x0ehvQ>\xc7\xd7\xf1Oq\xd6\xbfO\xf69a\x17\xb9s0\xb6+\x1c\x8f0g\xd9R\xc1K\xf0z\xe2\x07\xb3\x87\xaev_>\x83\x15\t\x9d\x90|\xafO\")\x14\xc1}\x9c\xeb\xd0e,\xdd\xe3\x1f\x1c\x8c\xa3=2>vk\xe4\xf1s\x17\xd7r\xb0\x90\x13\xf1\xed\x10/3J\x0eJ\xe0\x95\xa5\x8f\x85\x05\xc2\xbc\xd7W\t\xb3\x84y z\x1d\xd8q\xf0\xe8?\xe5\xb2LWm\xd0U2\xf2\xec0U,Z\x82\xde\xfb]\xd9\x18\xc5\x89m\xf7n^\xf8+z\x88\x86\xe3\xacA\xd4\x8b\xc6\xc1\xd3\x8b\xc0\xc3\x01M8\x1e!?\x9a\xfd\x99\xe1Gu\xd3\xf0|G\xe5PM\x1e\xed\xb4\xb5\x1c\xa8\xeb8t\xb4\xfe\x14\xeaEvW\xe9\xec\xc5\xa5\xa3\xc4\xa5#\x97Lo\xf6\x0f\xbe\xaa\"\xefE\x0e\xae\x8cM)\xda\x9e\xc4\xbcX\xd7\x07\xe0.\x85\x83\xce\x84\xc9\xa6\xb8\xe3\xda\xd8w\xa6\xab\x02\xdc\x05\xa7\x100=\x12|7\r\x87\xef\xd3\x13\x06\xfe\xba,Bpw\x92\x93p\xbc\x01\x939\x8a\x99\xdc\xc1L\x84uS\xc3\xbb\xb2\rn\xcf\x0c\xff\x03\xc7\xf5\xb1k\x95\xa5\x07@\xbc\x83\x835\xae\x9f\xab\x81g\xe2q\xde}\xa9\xb8n\xe0\x06\xce!\xe9Q\x17\x0en\x94\x16W\xa7b\x1c\xabm\xb2\xb8\xbeT\x82\x91<1\xd0\xd9~\x1cQ]\xc72w\xb3\xc2\xf5\xbb\xd3\xf6\xe6L>\xech\xefAT\xcf\xb1\xectV\x18\xba+y\xa9\x8f\x0f\x91W\x12\xce\xc7\xa4d\x97$\xc9\x99\xfc3\x99\xad\xc9\x88\xa2G\xe5(G\x9d\xa5pyUj\x17A?x\xc9\x923\xb3SS\xbb\xb3N\xb3f\xf2tw\xe7'\xbd\x99\x9d\xc9\xae\xdc\xf3\xeao\xc5\xb2\xba\xfa\x9aZTG5\x96\x9b\xcb\xca\xab\xf4\xa5U\x8c\xf0\xe5\xbfB\xaa+?\xaeF\xfa\xf9\xfb\x1a4M\r\x07\xeb,\x07\x99I0~\xd1O\xe1u\xf5N\xe2i\xe0\xec\x7f;'\xe6<\x04p\xbc''z\xea\x18u\x80\x97\xc3\x8d\x7f\x13^\x95\xf5\xe2%767T\x99\xca\xf7\xb3`\x97<\nw\xbe!Po\x0bn\xc2JFX#Aa-\xd1'w\x9c\x8c\xffM\xfeUD\xdd\x1e\xe99\x8eW\xaeT\xa77T\xeb\xd9=\xf9\x19\x9aD\x94\x842l{Nf\xf7\xa9/\xa2\xcb\x14\x04J@z\xf5\xab?\x7fq\xf6\x83(F.Y\xf2QX,ZGm\x18\x8c\xbbg6\xd5\xd461\xe7\xc5j\x83\x1eU *N\xd1\xfd\xe9\x85\x81_\x0f\xd5\xb0\xb3\xd5V\xfe-+x7\x1ck$\x1d39\x8f>\x93\xa7g\x9f\xd1s\x16A\xfc\x07\xbe\x9e\x12\xf0\nendstream\nendobj\n8 0 obj\n<</Type/FontDescriptor/FontName/NXCWXT+Courier-Bold/FontBBox[-14 -15 617 617]/Flags 131105\n/Ascent 617\n/CapHeight 566\n/Descent -15\n/ItalicAngle 0\n/StemV 92\n/AvgWidth 600\n/MaxWidth 600\n/MissingWidth 600\n/XHeight 437\n/CharSet(/D/W/c/colon/d/e/eight/five/four/nine/one/space/three/two/zero)/FontFile3 13 0 R>>\nendobj\n13 0 obj\n<</Filter/FlateDecode\n/Subtype/Type1C/Length 1758>>stream\nx\x9c\x9d\x93{PSg\x1a\xc6O\x80\x9c\x9c\xad\xb4\"\xd9S\xd4\xb6Iv\xba\xabh\x91\x11\xa4\xad\xbbu\xb7\xd3B\xcb\xb6\x16G\xc1\x16P\xa0\x18\x03$\x84\\ AHBX\x92p1\xbc\x04\xb9$\xe1\x12 @@B@.\xca\x1dA\xb7\x8a\x80\x8e\x8b\xbb\x9d\xae\xb3\xf62\xbb\xba[;[hw\xc3\xd4\xef\x8cGg\xf6$\xe8t\xf7\xdf\xfd\xeb\x9cy\xbfs\xde\xf7\xf9~\xcf\xf3\xb2\xb0\xa0\x00\x8c\xc5b=\x1b\xab(,\x90d\x15\xecy[\x91'\xf2\x15\"\xa8\x17X\xd4\x8b\x01\xd4K\x81\xfa\x12\xea1\xf5\x98M\xf1\x82\xb1\x9a`\x16\x04\x07BpP\xc7\x8b\x9c\x0b\xa1\xc8\xb3\x05\xc1f\xa4\r\xc1\x82X\xac\xd7\xdfOi\x0e\xff01y\xd7+\xafD\xc4*\x94\x9a\x02I\x8eX-\x88\xde\x1b\x15#\x10j\x04ON\x04qY*I\x8e\\\xb0\x83y9\x95\x95\xa7P\xca\xb2\xe4\xeaC\x12\x99\xb0P%HP\xc8\x15\x82\xc3I\x02\x9f\x80\xff-\xfd\xd8\xee\xff\x1b\x80a\xd8\xe6\xb8\x93\xa2\xac\xe4\xbdQ\xd1\xfbb^\x15\xec\xff\xe5\xaf0\xec\x17X\x1c\xf6\x0e\xf6.\xb6\x1f\xdb\x82\x85b\\\xec\xa7\x18\x89=\x8f\xb1\xb0m\xd8v\xec\x05,\x84\x81\x82\x05aE\x18\xc5r\x07\x04\x04X\x03\x1e\x04&\x05^\tJ\x0bZ`\xc7\xb3\xdfg/\xe1\xb1\xb8\x86Z}\x8eZ\x05/z\xe8eQ\x89\x08\x0b\xfc\xa3\x97\xcc\xaaV\x17C\x1eh\xad\xbaf\xa3\xad\xbc\xf5\xb4\x0b\x08\x94\x89\xa3\xe8*\x14\xf8\xef\x1a\x14ALr\x00\xed\xa19h\x13\xbd\xd3L\xd0b\\\t\xa6jC\x85\xce`\xd0\x82\xd6\xf7W\x8b\xd1Z\xde`\xee\xaa&\x10F?$\xd1\xc3\x1f8\xf7\xcf\xac\xbck\t'28\x10\x91p$\xfc\x0c\xc1\x8c,\xf1\xa2j/k\x8e\x99H\x8dQ89\xad\xeb\xcc),3\x15\x97\xf3\xb2\xda\x8fY\x8f\x02A\xef\x11\xec\xa6\xf9\x87;S\xc6D\xfc\xb9\xb4\xebEk\xf0\x19\xdc\xb0\x8f9';\xbb{\xe1,\xd1\xa7r\xc9J\rU&\x03\xefd\xae\xd4\xf8\x06\xf3='q\xf4\xcf_,^\xfafb\xc8\xa4\xeb\xe17\x95\xd7\x9bjuu\x85\xb5\x15\x8d\xe5V\x93\xa3\xa2\x05\xda\xc0\xd1hon\xb4Yl\xd0\xeb\x13P\xea\x8dr\xa2\x15o\xa8\x1bah\x02aa\xdc)j\x80\xfa\x9e\xa4\x83\xf1\xfc\xa7\xf7\xd1\x81\x06\xb4\x8d%-\x06{\xb9\xed\xf4Y \x9a~\x86\x8b\xdc\xa9\xad\x89\xf0\x1bH,J\xcbL\xcbT%\xc1\x07p\xd0\x954\x939\x93y\xb5\xe86,\xc0\x85\xa6\x8b\x1e\x82[,C\xc1\x1c\x17\xd8-\xd6:\x87\xcd\xd6\x06\xed\xe009\xf4\xb6\xb2\x06\xa3E\x01\xc4\xefp\xba\x1e\x95\x90\xb3\xe0)\xeb\xcbw\x15\xb6HAFp\xa7\xde:\x9c\x1a\x93\x9e\xdb\xd4\xa3\xe4\xa9\xba\xf5\x1e\x18\x00O\x8b\xc7\xd5}\xb6w\xc0>\x0b\x1b\xc0n\xdf\xff\x0bc\xd2<\xdaO\x8eq\xd0v:p\x8d\x8e\xa0w\xd1\xecp\x9a\xa4\xc3P@$\x8a\xfe\xd4\xdb\xe6\x9c\xe2\xf5\xd8\x9aZ\xa1\x93p\x17v\xcb\xcb\xca\xcc\xa7KyQ\xea\xfc\xaat\xd8\x0f\xa9\xae\x82K\x84\xe5>\xe9\x98^\x18X\x81\x15\xb8*mK\xf7u\x06'\x95\xe0e\xa1\xcb\xc8F~M\xdb\xd8\x88\xc0\x17)a\x7f][\x07\x9c\xdd\xc6\x08o\xd5\xdb\x9f\x08\xa7\xc3\x9e\xb21\x1a4>\xaf\x1b\x19\xaf\xed&\xbb\xb9\x17\x88\x8bx.m\x8cE\x1f\xb3i\x0c\x8f\xa5?\xceEF\xf6\x04\xeeC`\xfb\x11A+\x83\xa0\xd1\xf0\xa4\x93\x12\xca\x99NZ\x83Q\x07E\xa0ph\xfb\xab\x96\x1f\t\xb7\xa2gpF\x91\xdeK\xfd\xda\xcb\xba\xc38s\xca\x17\x90v\xf4\x1d\t\xf7\xe4wR\xe7s\x86\x8e\xb7\x1f\x81#p\\\x93#NM\x91\x1f\x80}D\x14\x07b\xdco\xcc\xa5\x0e\x8bg5\x0b\x8c\x03\xb3\xed\xc3Css\xee\xcf\xe1.A\xdf]%\xd7&\xaf\xdf\xba5\xf9\xc1.\xde\xcf9\xbb3\x0e\xc6\xc7g\xdcX\xe5m$\xfe\xae\x93\x85\xaa\x99\xf6\xe8\x01\xf5\x98\xa4e\x1f\x9d0\xe8\xf5 \xdf&\xebR\xf5\xd9jk\xea\x9c\xbc/;\xd9\x8f\xb6\xec\xe6\xe4\xffw\xbcuV\xed\xc6Rt3K\xf1\t>\xedj?\xe7\xbf\x17\xdfw1%\x10\xbb}\xf2a\x9d\x8ad\x9cz\xd9\xd7\\\xbeN\xa2f\x94\xe5\x1e\x84\xaf\x88\x07\x91_\xd0!\x87\x92\x8a\xc4B\x9eX\xa6L\x03)\xa1\xecQ\xbb\xbb\x9dM\xed\xf5<\xbb\xa7\xc6b\xb5u\xb9\x06[\xce\x03q}V\x9c\x96\xa7+\xde\x19\xc3\x17\xe6\xbc\x93H\x13Q\x15\x95[\x05\x94\xf0\x1e\x07\\fk\x85\xcd\xd0\xaa\xb5\x16\x83\x14\xb4\xba*1\xe1\xc7\x85\xbes^\xf3\x86R;\x11\xf6\xaa/\xca\xdf 7\xf5\x13R\xaa*\x94\xcb\x9d\xda!3\x7f\xcal7;M\xd3\x9a>)H\xe0T\x99ZW\x9a\xaf\xce1\xc6\xc3A\x90\xd7\xa9\x1cZ[\xa5\xa5\x14\x88<\xb5Z\x9e\xf2U.\n\xbdw\xb9yp\x8a?s\xce\xfd\t\\\x85\xc5\xec\xb9\xb8s\x04\xf7_\x8bC\xbd\xa3\xf3\xdba\xbcx\\\xea\x11\x8d$w\xc43&\x06\x86'\x1f\x91\xbb\xd4\xee\xd6\x96z\x9b\x95?0\xd8k\xfb=\x10\x7f\x18\xcf?!:)I\xe3\xfb)\xbb}\xd2X\xe8[\x9f\x8d\xc9\xd4\x1aI\xbf\x84\xd3U\x8fH\xf6\xeb\xa8G.\xe1\x14\x80\xd1l\xa8\xdc@KH\\\x9ai\x1e\xda\x8a\xcf\xf8\x99:\xf4V\xbe\xa1\xa1\xdcRXC\xb89\xe7k\xba:\x98\x8d\xf0/\x91\xa1\xde_\xa4\xb1\xe7i\x1e\x8ex(\x97\xbdA \xdf\xfbW&\xc4\x1c&3\x19>\xee*\xaa\x92D\xc7\xf0.h\xb14>M`\x9b?\x81\r~\xa3\xe8kt\x1f\x9e\xdb\xad\xf2\xd8\xcf\xd44\xb4\xf0\xc6\x9c\xd3\xcd\x1e nNd\xc4\xbf\x95.\xd9\xf1\x9e\xa2\xa1[\xc6/i6\xd5\x96\x00!/P+\x92\xee\x9f@!\xdf.t\xccL\xf1\x87G\x9d\xf3p\x85@[\xf6~M\x87\xc8\xf3*\rb_\xa06D\xbc\xb6\x8e\xf6yC\x99\xe0\x863:D\xfeG\x18w\x95z\x13-\x91W\x86\xddSp\x91\xf8>\xf2\x0e\xbd\x89\xde\x14y`g\xaa;\xf3J6\x8f\xebM\xc8\x96\xa6\x1c\xde\xfe\xf2\xdf\xe3P\x18\xda\xfa\x8f?\xad_\x93\xce'\x8c\xf0\xb8\xab4\x17\t\xc9\xa5\ti\xfa\xb1\x13\xd2\x84C\x99\x8333\xe3\x03\xcb|\xae\x97v\x04-\xcf\xe7d\x1cO\xcf\xfd\xed{i\x833\xd3\xf3\xc3\xcb>\xd6\xfa\x1fP\xe8::\xeae=\xf0\xb1\x8eC\xfd\xa4\x92f\xed{s\x07\x18\xe1t\x8d\xa1V[o\xb0\x18\x80\x90\x15\xa8e\xa2\xd9\xfcO\xff\xf9\xe5\x85\xcfW\xf8\x97\x96z?\x83\xbf\xc1-\xcdm\xe5\xb4\xe8\xe6\xa1\xc1\xd7 \x1eR\x8b\xb3E\x92\x9c\xe2T8\xca\x18|7\x1aa\xb3\xa3m\xe3\x93<\x13\xdaL\xe6g\x1c\xcb\x15\x02\x91,\x1c\xbf\xbc4<\xbcx\xe3\x9c\xf8@\xab\x7f4\xe3\xf0\xb2\x9e<\xefq\x8f\x8e\xe4\xf5\x8b\xf8\x1a<K*\xcb\xce\xf6\xc8\xce\xf3\xdb\xd1U\xa6\xde?2\x9a\xe7\xf6\xd5EyL}@6\xca\x7f\xae\xb4\x99Zs\xe0\xdeg\x10\xb6\xe9\xe6Hp\xf0\xcd\xf1\xe0g1\xec?N\xf8\xb8\xce\nendstream\nendobj\n14 0 obj\n<</Type/Metadata\n/Subtype/XML/Length 1251>>stream\n<?xpacket begin='\xef\xbb\xbf' id='W5M0MpCehiHzreSzNTczkc9d'?>\n<?adobe-xap-filters esc=\"CRLF\"?>\n<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>\n<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>\n<rdf:Description rdf:about=\"\" xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 10.03.1'/>\n<rdf:Description rdf:about=\"\" xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2024-12-18T15:59:31-05:00</xmp:ModifyDate>\n<xmp:CreateDate>2024-12-18T15:59:31-05:00</xmp:CreateDate>\n<xmp:CreatorTool>GNU Enscript 1.6.6</xmp:CreatorTool></rdf:Description>\n<rdf:Description rdf:about=\"\" xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:86e4e793-f59f-11fa-0000-c8d2c052bf7e'/>\n<rdf:Description rdf:about=\"\" xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Enscript Output</rdf:li></rdf:Alt></dc:title><dc:creator><rdf:Seq><rdf:li></rdf:li></rdf:Seq></dc:creator></rdf:Description>\n</rdf:RDF>\n</x:xmpmeta>\n \n \n<?xpacket end='w'?>\nendstream\nendobj\n2 0 obj\n<</Producer(GPL Ghostscript 10.03.1)\n/CreationDate(D:20241218155931-05'00')\n/ModDate(D:20241218155931-05'00')\n/Title(Enscript Output)\n/Author()\n/Creator(GNU Enscript 1.6.6)>>endobj\nxref\n0 15\n0000000000 65535 f \n0000000711 00000 n \n0000007145 00000 n \n0000000652 00000 n \n0000000510 00000 n \n0000000266 00000 n \n0000000491 00000 n \n0000001145 00000 n \n0000003652 00000 n \n0000000815 00000 n \n0000001471 00000 n \n0000000776 00000 n \n0000001773 00000 n \n0000003974 00000 n \n0000005817 00000 n \ntrailer\n<< /Size 15 /Root 1 0 R /Info 2 0 R\n/ID [<9BB34E42BF7AF21FE61720F4EBDFCCF8><9BB34E42BF7AF21FE61720F4EBDFCCF8>]\n>>\nstartxref\n7334\n%%EOF\n"
1268
1291
  }
@@ -1,7 +1,6 @@
1
1
  import json
2
2
  import asyncio
3
3
  import logging
4
- import websockets
5
4
  from websockets.asyncio.server import serve
6
5
 
7
6
  from .base import ModuleTestBase
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bbot
3
- Version: 2.4.1.6077rc0
3
+ Version: 2.4.1.6094rc0
4
4
  Summary: OSINT automation for hackers.
5
5
  License: GPL-3.0
6
6
  Keywords: python,cli,automation,osint,threat-intel,intelligence,neo4j,scanner,python-library,hacking,recursion,pentesting,recon,command-line-tool,bugbounty,subdomains,security-tools,subdomain-scanner,osint-framework,attack-surface,subdomain-enumeration,osint-tool
@@ -22,7 +22,7 @@ Requires-Dist: cachetools (>=5.3.2,<6.0.0)
22
22
  Requires-Dist: cloudcheck (>=7.0.12,<8.0.0)
23
23
  Requires-Dist: deepdiff (>=8.0.0,<9.0.0)
24
24
  Requires-Dist: dnspython (>=2.4.2,<3.0.0)
25
- Requires-Dist: httpx (>=0.27.0,<0.28.0)
25
+ Requires-Dist: httpx (>=0.28.1,<0.29.0)
26
26
  Requires-Dist: idna (>=3.4,<4.0)
27
27
  Requires-Dist: jinja2 (>=3.1.3,<4.0.0)
28
28
  Requires-Dist: lxml (>=4.9.2,<6.0.0)
@@ -1,4 +1,4 @@
1
- bbot/__init__.py,sha256=rIJeChM0-u-vdjjPAg0AvnO5xsMCUR_a7uRduQ3rQ90,130
1
+ bbot/__init__.py,sha256=dJBi5Vjmn2Ncz7U5IM-zWysWJaeyrYL9Ldph_0FxyQo,163
2
2
  bbot/cli.py,sha256=1QJbANVw9Q3GFM92H2QRV2ds5756ulm08CDZwzwPpeI,11888
3
3
  bbot/core/__init__.py,sha256=l255GJE_DvUnWvrRb0J5lG-iMztJ8zVvoweDOfegGtI,46
4
4
  bbot/core/config/__init__.py,sha256=zYNw2Me6tsEr8hOOkLb4BQ97GB7Kis2k--G81S8vofU,342
@@ -6,20 +6,20 @@ bbot/core/config/files.py,sha256=zANvrTRLJQIOWSNkxd9MpWmf9cQFr0gRZLUxeIbTwQc,141
6
6
  bbot/core/config/logger.py,sha256=0820l89sQzo_TPmsgRzJhUwuAMzlRDMy1vq6H3Mu2KY,10226
7
7
  bbot/core/core.py,sha256=V0G3dKPN5xCbXOoFeBRkh-BZb6A3kSNA060De01LiTU,7065
8
8
  bbot/core/engine.py,sha256=9p7yoKMVvKGO0UCOkQK0D-9byvrcn2wFGDke6g_PY6c,29368
9
- bbot/core/event/__init__.py,sha256=8ut88ZUg0kbtWkOx2j3XzNr_3kTfgoM-3UdiWHFA_ag,56
9
+ bbot/core/event/__init__.py,sha256=pRi5lC9YBKGxx6ZgrnE4shqKYYdqKR1Ps6tDw2WKGOw,113
10
10
  bbot/core/event/base.py,sha256=cExBm_DM8SO_jCuQ52OsEvEQiG1Mo1AtNBh-U855esU,64922
11
11
  bbot/core/event/helpers.py,sha256=MohOCVBjkn_K1p4Ipgx-MKliZtV6l4NJPq3YgagkvSM,6507
12
12
  bbot/core/flags.py,sha256=Ltvm8Bc4D65I55HuU5bzyjO1R3yMDNpVmreGU83ZBXE,1266
13
- bbot/core/helpers/__init__.py,sha256=0UNwcZjNsX41hbHdo3yZPuARkYWch-okI68DScexve4,86
13
+ bbot/core/helpers/__init__.py,sha256=cpOGLKIgA3vdHYqsOtx63BFO_qbtwCmez2amFPu6YTs,111
14
14
  bbot/core/helpers/async_helpers.py,sha256=3GVvRXEdRe3hAClTOSaIGb8Rn-_gM6l0IBQlaaNIsNA,3723
15
15
  bbot/core/helpers/bloom.py,sha256=gk02rO6x3F5MICa7ZUDsinRudwoGAifsbiyiMCwd0Gs,2739
16
16
  bbot/core/helpers/cache.py,sha256=1aMr3HVD45cDtHEG5xlznDUCywRgO9oRFidscrs_5sA,1537
17
17
  bbot/core/helpers/command.py,sha256=UBJa2RInEJtGjZ5e24PUQxPu1aTCIFkcCrrB0ERLdGI,12810
18
- bbot/core/helpers/depsinstaller/__init__.py,sha256=2mx1nYylSyvwl0GCM9YDHqrFEt2_5dSWAjP1RmhmbQg,37
18
+ bbot/core/helpers/depsinstaller/__init__.py,sha256=C2jF_ymSPIO68F649csYQql37ppPfUjFc8eq8LhgDkQ,66
19
19
  bbot/core/helpers/depsinstaller/installer.py,sha256=0sEut_B1rJKEnlTJvtk6nsWv1_1hJsbDRsVzylidmYc,19774
20
20
  bbot/core/helpers/depsinstaller/sudo_askpass.py,sha256=yGa2OQv30RO75QkMuG1iruKqb7amQxRVRRcHmvIeGhk,1276
21
21
  bbot/core/helpers/diff.py,sha256=7pDibPTSsF_1_PoFypa8WvxbFDGeB_SGNzSyOEa1QQw,10791
22
- bbot/core/helpers/dns/__init__.py,sha256=2JK8P0BUfPlh4CTuuOWQCOacwL7NEtGFYPJsxbA0Zwo,27
22
+ bbot/core/helpers/dns/__init__.py,sha256=SboBeh4o81Xd4mAKhV10QzoRPDH4g28xC5PZVqVmJ28,35
23
23
  bbot/core/helpers/dns/brute.py,sha256=ajobmbCYGo7yrbBamc1recV7UeHxzzaebcnFUoUde2Q,7143
24
24
  bbot/core/helpers/dns/dns.py,sha256=erinIU5Ss2oBd0jgHucPwAgArBlQh2lQGeAZbxhq5lc,8436
25
25
  bbot/core/helpers/dns/engine.py,sha256=Xs2VyjvQFmjKciQOlEWO0ELUmXiUxwoj8YX3InVlOic,28777
@@ -29,7 +29,7 @@ bbot/core/helpers/files.py,sha256=9tVr3973QvX8l6o3TweD5_MCZiQpuJVffbzW0U7Z30U,57
29
29
  bbot/core/helpers/helper.py,sha256=qGprcoCo4BesgPH5kfUujMtigkt_y1tmM5APi6Ypy64,8423
30
30
  bbot/core/helpers/interactsh.py,sha256=VBYYH6-rWBofRsgemndK6iZNmyifOps8vgQOw2mac4k,12624
31
31
  bbot/core/helpers/libmagic.py,sha256=QMHyxjgDLb2jyjBvK1MQ-xt6WkGXhKcHu9ZP1li-sik,3460
32
- bbot/core/helpers/misc.py,sha256=r-FUL5zdZagmLjNd_F577IE1CrT22f5qPb69RQcEHD0,87452
32
+ bbot/core/helpers/misc.py,sha256=NNOrPDw-JITWzgjonwBcvM--P1BJ3lXbgd0PCFXEzaE,87491
33
33
  bbot/core/helpers/names_generator.py,sha256=N74pgt1vEJ8deBzV6eL5HiOEOG_6M7r0_MjbyxnPxfM,10516
34
34
  bbot/core/helpers/ntlm.py,sha256=P2Xj4-GPos2iAzw4dfk0FJp6oGyycGhu2x6sLDVjYjs,2573
35
35
  bbot/core/helpers/process.py,sha256=00uRpLMFi3Pt3uT8qXwAIhsXdoa7h-ifoXh0sGYgwqs,1702
@@ -38,11 +38,11 @@ bbot/core/helpers/regex.py,sha256=YCyvK78piK8p4YMTPH9hD1mILkZtPzLC0lNRf0vsj9g,43
38
38
  bbot/core/helpers/regexes.py,sha256=6ufvjfrm1Odm5_Gxrjf5Ss6f2iqlBtt7QJjdiz1Tb_A,5840
39
39
  bbot/core/helpers/url.py,sha256=1NDrvirODzzD6Mcssu-4WDNerMeMdekHCFzhRCS0m3g,5947
40
40
  bbot/core/helpers/validators.py,sha256=-WBYvjlwi5SsVtn_LankKGI8vaBza2NqvM1lGbVmiN4,9711
41
- bbot/core/helpers/web/__init__.py,sha256=pIEkL3DhjaGTSmZ7D3yKKYwWpntoLRILekV2wWsbsws,27
42
- bbot/core/helpers/web/client.py,sha256=12lKbyWJQpVKBnKGCuMNNUn47ifs1fsB02nebceX75Y,3591
41
+ bbot/core/helpers/web/__init__.py,sha256=tSDInpfUIj9Gi0m4Icwbrx21uc6Jj1-keE7SIfO9g20,35
42
+ bbot/core/helpers/web/client.py,sha256=Nzpuy2NUtQDAJ_Jgltk6-W5IT7usBwlw7qiXD36bYYU,3589
43
43
  bbot/core/helpers/web/engine.py,sha256=mzXpYmlB1pvNSXs8FuliGMv7myUwAcQWTtnMHqblMHA,8875
44
44
  bbot/core/helpers/web/ssl_context.py,sha256=aWVgl-d0HoE8B4EBKNxaa5UAzQmx79DjDByfBw9tezo,356
45
- bbot/core/helpers/web/web.py,sha256=JBx6YtK7mIqdW1ae_So1uWdAfPfdqxlHsmDv-_wOq7w,23677
45
+ bbot/core/helpers/web/web.py,sha256=yiq2JlVTXUd5w3wR8bKU8_hm-789jb5Uj3FQd_LxNjM,23639
46
46
  bbot/core/helpers/wordcloud.py,sha256=QM8Z1N01_hXrRFKQjvRL-IzOOC7ZMKjuSBID3u77Sxg,19809
47
47
  bbot/core/modules.py,sha256=U0Z2UoZAOPG9lLvR9Juc3UwdWCc_xbktF4t_NoiKPrY,31385
48
48
  bbot/core/multiprocess.py,sha256=ocQHanskJ09gHwe7RZmwNdZyCOQyeyUoIHCtLbtvXUk,1771
@@ -57,9 +57,9 @@ bbot/modules/anubisdb.py,sha256=JCy2YCfa0e_VawpzNmcPXAosKUthmYGutireJ0gMDws,1916
57
57
  bbot/modules/apkpure.py,sha256=V-bGIFV7b91kXo24OitACip8Rx5qaoI1p6iHwbICxwk,2434
58
58
  bbot/modules/azure_realm.py,sha256=pP2PUlLy0K9KKaE8aNcznWjDW3PKHvnMejdOSc-o4ms,1612
59
59
  bbot/modules/azure_tenant.py,sha256=qBn7CUA_hth2PqW55XZVjYxIw20xLYrMntXc6mYpmKU,5366
60
- bbot/modules/baddns.py,sha256=y6zTuE668MvNdaQszmkwYSwWzrjqit5X3zf5kLJbQC8,6692
61
- bbot/modules/baddns_direct.py,sha256=yoOSqi4Z1ZwrycGbwklCukDBjWRWlz6JV67v_xVwHbE,3818
62
- bbot/modules/baddns_zone.py,sha256=IcewDBtA_-64NCNFojEFd9jt2YBek6ltB2mmqdDH6LE,1034
60
+ bbot/modules/baddns.py,sha256=ubO3KDfcIMJnMjyZX5FWZ4GWxLSekV_JQV7QvsPjtD0,6693
61
+ bbot/modules/baddns_direct.py,sha256=hWThpkXP87nnCRTlUh5qBJ1t4eo4l9kUmKNNxVNJI8A,3819
62
+ bbot/modules/baddns_zone.py,sha256=y1XaBUfFPnRbR2qaTqRyUsPgEL73722v2B8aS5YoGN4,1035
63
63
  bbot/modules/badsecrets.py,sha256=LG37p48Rlxsfc3BmACMpkypsbuFTVvXqNhlP1IEsx0k,5109
64
64
  bbot/modules/base.py,sha256=SCIeaLX1d5VMUl2nC3IyqPdzBF8mr_7__JB3855q5cc,74529
65
65
  bbot/modules/bevigil.py,sha256=0VLIxmeXRUI2-EoR6IzuHJMcX8KCHNNta-WYa3gVlDg,2862
@@ -125,7 +125,7 @@ bbot/modules/internal/base.py,sha256=BXO4Hc7XKaAOaLzolF3krJX1KibPxtek2GTQUgnCHk0
125
125
  bbot/modules/internal/cloudcheck.py,sha256=ay6MvZFbDvdhAlFPe_kEITM4wRsfRgQJf1DLBTcZ2jM,5138
126
126
  bbot/modules/internal/dnsresolve.py,sha256=1fwWChIGpSEIIkswueiIhEwIahQ7YngZ-njFK-RIsfU,15679
127
127
  bbot/modules/internal/excavate.py,sha256=Y8Twa4No3ZNjozvn3S-4kNzrF6yuQe0q3Qr5LTs-cnE,54298
128
- bbot/modules/internal/speculate.py,sha256=NolqW2s8tokibc6gVM960KlrABkjhLB-7YlCdVx4O9s,9223
128
+ bbot/modules/internal/speculate.py,sha256=ua35Da-f0-fnK0oXtx4DeGJAT19bfqnmLfetSUfJnIk,9262
129
129
  bbot/modules/internal/unarchive.py,sha256=sA6KYQnhkyHq0mHwhRESHy9wkaRE43PjPkShWW0mOvM,3763
130
130
  bbot/modules/ip2location.py,sha256=yGivX9fzvwvLpnqmYCP2a8SPjTarzrZxfRluog-nkME,2628
131
131
  bbot/modules/ipneighbor.py,sha256=b_0IhorihFLtXJZEz57EGXjXW30gIOEzzVgz2GFvM3A,1591
@@ -185,7 +185,7 @@ bbot/modules/social.py,sha256=SaXC8gK69k9aMNHS9y7b-Ag-w7U7DbeXqrZRx9CtXLw,2499
185
185
  bbot/modules/sslcert.py,sha256=83rf_rzlj4iku3gldx1_R1L_v3ZCGItGPay8JviUy9w,8211
186
186
  bbot/modules/subdomaincenter.py,sha256=aWjcIqGGWnAj2ePwcS4sgUJDUsq0trY3Klhr_lcc4dg,1424
187
187
  bbot/modules/subdomainradar.py,sha256=YlRNMtNGLpa13KZ7aksAMVZdSjxe1tkywU5RXlwXpPc,6784
188
- bbot/modules/telerik.py,sha256=lZQUf0mGFonNpOnvlS9315d9GiwqzWqL01HGlugZXh0,18939
188
+ bbot/modules/telerik.py,sha256=i9Zy2JZXLrmwSslFzVFVWApQNwTwNcrGsb_UxBuCtkI,18905
189
189
  bbot/modules/templates/bucket.py,sha256=muLPpfAGtcNhL0tLU-qHTlTNIz4yncRcVjdZMqVRtUI,7153
190
190
  bbot/modules/templates/github.py,sha256=n6cVjf62ezkztCRAcXNnlxfCkB0VRWqn138mOOt6T08,1454
191
191
  bbot/modules/templates/postman.py,sha256=MIpz2q_r6LP0kIEgByo7oX5qHhMZLOhr7oKzJI9Beec,6959
@@ -226,10 +226,10 @@ bbot/presets/web/paramminer.yml,sha256=VuiXkxrOAeqXlk9Gmuo938_REvbbTH6-lxTrlyWAv
226
226
  bbot/presets/web-basic.yml,sha256=6YWSYclbuf9yr8-gILDpLvOUj5QjP4rlarm5_d5iBFw,79
227
227
  bbot/presets/web-screenshots.yml,sha256=Kh5yDh2kKLJPxO5A67VxKWzou6XU1Ct-NFZqYsa6Zh8,338
228
228
  bbot/presets/web-thorough.yml,sha256=d7m8R64l9dcliuIhjVi0Q_PPAKk59Y6vkJSyLJe8LGI,115
229
- bbot/scanner/__init__.py,sha256=gCyAAbkNm8_KozNpDENCKqO3E3ZCgseplnz40AtiJ1U,56
229
+ bbot/scanner/__init__.py,sha256=sJ7FoLQ1vwLscH8hju2PEUyGTZ_OwMVvW9b11CrCWdI,89
230
230
  bbot/scanner/dispatcher.py,sha256=_hsIegfUDrt8CUdXqgRvp1J0UwwzqVSDxjQmiviO41c,793
231
231
  bbot/scanner/manager.py,sha256=eyd_0IjnPH3e-tJSOwY-rxauVI6L9Ltr3pWmpPSO5Jc,11019
232
- bbot/scanner/preset/__init__.py,sha256=Jf2hWsHlTFtWNXL6gXD8_ZbKPFUM564ppdSxHFYnIJU,27
232
+ bbot/scanner/preset/__init__.py,sha256=If_YqKILIxjlaJvf8lFc5zQTHDkounLdC8x_72N-V10,49
233
233
  bbot/scanner/preset/args.py,sha256=f-X4TebDu5ZhcZFiaubQ1HJ7k4lB2I_BssybM8gnBXY,18145
234
234
  bbot/scanner/preset/conditions.py,sha256=hFL9cSIWGEsv2TfM5UGurf0c91cyaM8egb5IngBmIjA,1569
235
235
  bbot/scanner/preset/environ.py,sha256=9KbEOLWkUdoAf5Ez_2A1NNm6QduQElbnNnrPi6VDhZs,4731
@@ -237,11 +237,11 @@ bbot/scanner/preset/path.py,sha256=Q29MO8cOEn690yW6bB08P72kbZ3C-H_TOEoXuwWnFM8,2
237
237
  bbot/scanner/preset/preset.py,sha256=guntxt2RBX3bgXR4aFWOZwjGLHed66VJe-bXyaoTd08,40745
238
238
  bbot/scanner/scanner.py,sha256=OrN6GMRCNiqSnoojXuk7Va1ZmR8jNpFQgoUdcw_XIlc,55145
239
239
  bbot/scanner/stats.py,sha256=re93sArKXZSiD0Owgqk2J3Kdvfm3RL4Y9Qy_VOcaVk8,3623
240
- bbot/scanner/target.py,sha256=wo2hj4zlgC0HK5HD3QI2zhDUevw4zAqtF37nHQ1Rf7A,10451
240
+ bbot/scanner/target.py,sha256=lI0Tn5prQiPiJE3WW-ZLx_l6EFqzAVabtyL-nfXJ8cE,10636
241
241
  bbot/scripts/docs.py,sha256=ZLY9-O6OeEElzOUvTglO5EMkRv1s4aEuxJb2CthCVsI,10782
242
242
  bbot/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
243
- bbot/test/bbot_fixtures.py,sha256=y6lxHR46qPDl3Rjy5DVai6roNQG8r7rZSobRcdWDdro,10007
244
- bbot/test/conftest.py,sha256=dQhpZ-DMkcc0ANiBPvO2Th-QNTecfvMHn0nryL-96i4,11796
243
+ bbot/test/bbot_fixtures.py,sha256=XrCQDLVe80BG3QTUDnXb0y-cWnBpJJoRh2Z3J3xJn_w,9961
244
+ bbot/test/conftest.py,sha256=OacpJ98g00HqCoHpEnuzzMK47LkbZdJWr25Pm0SbTM0,11783
245
245
  bbot/test/coverage.cfg,sha256=ko9RacAYsJxWJCL8aEuNtkAOtP9lexYiDbeFWe8Tp8Y,31
246
246
  bbot/test/fastapi_test.py,sha256=9OhOFRyagXTshMsnuzuKIcR4uzS6VW65m7h9KgB4jSA,381
247
247
  bbot/test/owasp_mastg.apk,sha256=Hai_V9JmEJ-aB8Ab9xEaGXXOAfGQudkUvNOuPb75byE,66651
@@ -266,7 +266,7 @@ bbot/test/test_step_1/test_helpers.py,sha256=hZfnzjtegezYOqTuo5uAaXGI2GGsfuHhglb
266
266
  bbot/test/test_step_1/test_manager_deduplication.py,sha256=hZQpDXzg6zvzxFolVOcJuY-ME8NXjZUsqS70BRNXp8A,15594
267
267
  bbot/test/test_step_1/test_manager_scope_accuracy.py,sha256=JV1bQHt9EIM0GmGS4T4Brz_L2lfcwTxtNC06cfv7r64,79763
268
268
  bbot/test/test_step_1/test_modules_basic.py,sha256=ELpGlsthSq8HaxB5My8-ESVHqMxqdL5Of0STMIyaWzA,20001
269
- bbot/test/test_step_1/test_presets.py,sha256=qAOwz2PfNCU3xr-T1LsIy9K6YaLK3-FQXJc6TqGu8EY,40979
269
+ bbot/test/test_step_1/test_presets.py,sha256=pvY4UZVeqcL0QbsmGNweIqPlLJkyjYeeNpoG4L6byRw,40929
270
270
  bbot/test/test_step_1/test_python_api.py,sha256=Fk5bxEsPSjsMZ_CcRMTJft8I48EizwHJivG9Fy4jIu0,5502
271
271
  bbot/test/test_step_1/test_regexes.py,sha256=wSx_e6hgHuBh95igL_fauWKK4a1xXujs9TtyLBaMwRM,14636
272
272
  bbot/test/test_step_1/test_scan.py,sha256=yZs-bZVLd7Ao5uoNzoOI_F8gBEbGdeVXIAjyoGoNhe0,8875
@@ -301,7 +301,7 @@ bbot/test/test_step_2/module_tests/test_module_bufferoverrun.py,sha256=6pyJ0dbx8
301
301
  bbot/test/test_step_2/module_tests/test_module_builtwith.py,sha256=lMHyF4YXcIRoXMMaqiVaMilDcitnGggM67e0lbxA1Ic,5049
302
302
  bbot/test/test_step_2/module_tests/test_module_bypass403.py,sha256=IvYZ04K0zt27CT8oc59mLuIuPJxnylKeMulPyDCR9UI,3552
303
303
  bbot/test/test_step_2/module_tests/test_module_c99.py,sha256=F-46Kkwxe29xPZ-3kxCklPR_itOTKcL37uRpUh2F1C4,7405
304
- bbot/test/test_step_2/module_tests/test_module_censys.py,sha256=RAfZKCGAgX8ODKE5eJzHHDqzBh60J6JYS6nD61qTj8E,4183
304
+ bbot/test/test_step_2/module_tests/test_module_censys.py,sha256=XTkPvewW3fLZMnHWPsWOJ170kYzF1s0doXoUmmPpoMA,4219
305
305
  bbot/test/test_step_2/module_tests/test_module_certspotter.py,sha256=60jCOeK1yaUEgtTxYW-T47kZgKt9XxP2qBH9w-0MDBk,636
306
306
  bbot/test/test_step_2/module_tests/test_module_chaos.py,sha256=9JRgtDEnnJgmEMCTB2bqRJRkBavLys-6ypHPxrM_hXk,956
307
307
  bbot/test/test_step_2/module_tests/test_module_cloudcheck.py,sha256=9KjGREpzOVByDVjIEWoaWbS3RwPlYLN3mw-OnRvD7sg,4083
@@ -324,7 +324,7 @@ bbot/test/test_step_2/module_tests/test_module_dnsresolve.py,sha256=15LEcggP_eVY
324
324
  bbot/test/test_step_2/module_tests/test_module_dnstlsrpt.py,sha256=8xXSFo0vwKfehIqgF41tbEkL1vbp6RIB8kiO8TSH4NU,2648
325
325
  bbot/test/test_step_2/module_tests/test_module_docker_pull.py,sha256=-JSAo51dS3Ie9RaLBcWK0kfbg8bCPr7mohpFGAwOKPQ,27988
326
326
  bbot/test/test_step_2/module_tests/test_module_dockerhub.py,sha256=9T8CFcFP32MOppUmSVNBUSifnk2kMONqzW_7vvvKdpk,3907
327
- bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py,sha256=ps2u_yeDXSkhALGqtg574C5-YvyueRJMjEIoSoTRThc,8064
327
+ bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py,sha256=Q7M3hrbEwOuORZXPS-pIGFTRzB2-g4cEvGtsEcTp7t8,8049
328
328
  bbot/test/test_step_2/module_tests/test_module_emailformat.py,sha256=cKxBPnEQ4AiRKV_-hSYEE6756ypst3hi6MN0L5RTukY,461
329
329
  bbot/test/test_step_2/module_tests/test_module_emails.py,sha256=bZjtO8N3GG2_g6SUEYprAFLcsi7SlwNPJJ0nODfrWYU,944
330
330
  bbot/test/test_step_2/module_tests/test_module_excavate.py,sha256=0Am_BWUQfnayUym-ZHTXAPWtGfQophhZYCl1aMB_wpM,43644
@@ -345,7 +345,7 @@ bbot/test/test_step_2/module_tests/test_module_gitlab.py,sha256=fnwE7BWTU6EQquKd
345
345
  bbot/test/test_step_2/module_tests/test_module_google_playstore.py,sha256=uTRqpAGI9HI-rOk_6jdV44OoSqi0QQQ3aTVzvuV0dtc,3034
346
346
  bbot/test/test_step_2/module_tests/test_module_gowitness.py,sha256=EH3NIMDA3XgZz1yffu-PnRCrlZJODakGPfzgnU7Ls_s,6501
347
347
  bbot/test/test_step_2/module_tests/test_module_hackertarget.py,sha256=ldhNKxGk5fwq87zVptQDyfQ-cn3FzbWvpadKEO3h4ic,609
348
- bbot/test/test_step_2/module_tests/test_module_host_header.py,sha256=-kod71F8OrWz9GhnXLo06jY6ISnh0EWs95bJTlY36ho,2687
348
+ bbot/test/test_step_2/module_tests/test_module_host_header.py,sha256=w1x0MyKNiUol4hlw7CijhMwEMEL5aBddbZZjOcEgv_k,2672
349
349
  bbot/test/test_step_2/module_tests/test_module_http.py,sha256=KhsQvqpVa6zmMa79jV4liv_NAv25wrSaO6h_x0AA12c,2127
350
350
  bbot/test/test_step_2/module_tests/test_module_httpx.py,sha256=kUSJd0eu-e7rj1hnaQyUn5V01JJF7eUlsUjhVAqGvu0,5761
351
351
  bbot/test/test_step_2/module_tests/test_module_hunt.py,sha256=xSnPevrLgFe-umWjvF-X8hOavZCn1s1sClXKM3WBLpE,744
@@ -353,7 +353,7 @@ bbot/test/test_step_2/module_tests/test_module_hunterio.py,sha256=s0ENxJzLuUu7MD
353
353
  bbot/test/test_step_2/module_tests/test_module_iis_shortnames.py,sha256=JJUoLvw4CqP_iBUlkhnsNjn1wVEYKCBgAldOmm9Vv80,2913
354
354
  bbot/test/test_step_2/module_tests/test_module_ip2location.py,sha256=VRuXQelBc3hTNXiAJZD0ow5R4t6L8xAi_tS62TFLJKA,1123
355
355
  bbot/test/test_step_2/module_tests/test_module_ipneighbor.py,sha256=Bc5xaiIpleC7j5Lz2Y8S9i6PHETOg4KmwiLNJ9HeMx8,608
356
- bbot/test/test_step_2/module_tests/test_module_ipstack.py,sha256=BgCeE9Bef2RM6akluq0XVzr4G23kpP0Nqfydm_RoTXU,2767
356
+ bbot/test/test_step_2/module_tests/test_module_ipstack.py,sha256=C0Le03UqvShpATogq9M54V7FKfwJROBMWSvAYfOeOdo,2735
357
357
  bbot/test/test_step_2/module_tests/test_module_jadx.py,sha256=qTBfDc_Iv03n8iGdyLm6kBaKeEdSxFYeKj5xL1PmyF0,2391
358
358
  bbot/test/test_step_2/module_tests/test_module_json.py,sha256=gmlqge5ZJpjVMGs7OLZBsNlSFTTrKnKjIZMIU23o8VQ,3350
359
359
  bbot/test/test_step_2/module_tests/test_module_leakix.py,sha256=DQaQsL4ewpuYeygp-sgcvdeOSzvHq77_eYjKcgebS7A,1817
@@ -374,8 +374,8 @@ bbot/test/test_step_2/module_tests/test_module_pgp.py,sha256=_T-kmpr5F0cJHl4_mpf
374
374
  bbot/test/test_step_2/module_tests/test_module_portfilter.py,sha256=gOEy1XYtTJNGvTH6o3NNSOXXPdste462BdQvayOwzVs,2012
375
375
  bbot/test/test_step_2/module_tests/test_module_portscan.py,sha256=TJtutIORCNu-3Wm1zCqtzPVC0OXUICnY4YL1toJ57yk,7539
376
376
  bbot/test/test_step_2/module_tests/test_module_postgres.py,sha256=bNHzDvPs5AkoA_ho7s50bFaF5qzV7KL3DplhOA1ZYa4,2688
377
- bbot/test/test_step_2/module_tests/test_module_postman.py,sha256=E4Sx5Fa5KPgMezOCaWd01lP2xqAZZxp2GDp355dE0PM,21925
378
- bbot/test/test_step_2/module_tests/test_module_postman_download.py,sha256=M4w7kz3XrVknhUKThAuX44slvvUw2lkWQQsOuguD4Z4,13750
377
+ bbot/test/test_step_2/module_tests/test_module_postman.py,sha256=7SxZi39dJhnwyg4IVf5M8VNdQU_zaPAufTEw60rgCkg,22311
378
+ bbot/test/test_step_2/module_tests/test_module_postman_download.py,sha256=0mevxk5AMrBmQ2vvWzokc15fdzxOxMM5Rqw-CDIZLKs,14079
379
379
  bbot/test/test_step_2/module_tests/test_module_python.py,sha256=6UQVXGJ1ugfNbt9l_nN0q5FVxNWlpq6j0sZcB0Nh_Pg,184
380
380
  bbot/test/test_step_2/module_tests/test_module_rapiddns.py,sha256=zXHNLnUjLO22yRwrDFCZ40sRTmFVZEj9q_dyK8w1TYM,4441
381
381
  bbot/test/test_step_2/module_tests/test_module_robots.py,sha256=8rRw4GpGE6tN_W3ohtpfWiji_bEEmD31wvxz7r1FqnI,1564
@@ -397,9 +397,9 @@ bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py,sha256=KXprbHa
397
397
  bbot/test/test_step_2/module_tests/test_module_subdomainradar.py,sha256=c6aUKr4yrGJqrQP0hOaP6Ao4-PQn1N_IlaqSw6E-xW8,10672
398
398
  bbot/test/test_step_2/module_tests/test_module_subdomains.py,sha256=r1zCmw5ZZ_0wA7L7cDg9dpgdpRigjQXhf-Zm7P4ya9Q,1108
399
399
  bbot/test/test_step_2/module_tests/test_module_teams.py,sha256=r91ZZxhj3pEhKnjr1jGwhcqOPXTqNJNupC1CDKccfH8,1638
400
- bbot/test/test_step_2/module_tests/test_module_telerik.py,sha256=HnwXH-ql75RyxRbjPoOUmaqbBHPrPsgVnV_vLZR_zc0,11113
400
+ bbot/test/test_step_2/module_tests/test_module_telerik.py,sha256=vGORDSRU1S1hkLlHO3KOdoAYLqWcrPpvVGxadTGl5y8,11099
401
401
  bbot/test/test_step_2/module_tests/test_module_trickest.py,sha256=6mTYH6fIah-WbKnFI-_WZBwRdKFi-oeWyVtl1n0nVAU,1630
402
- bbot/test/test_step_2/module_tests/test_module_trufflehog.py,sha256=H8bvRfeUrDgIcJFxQIv3RyksSTKdjG8AsKOqK-2ISjU,95420
402
+ bbot/test/test_step_2/module_tests/test_module_trufflehog.py,sha256=y4TyPSrsQ9al4RG_F1y8zttX-nUtfGEy5L7zCnX37XU,95785
403
403
  bbot/test/test_step_2/module_tests/test_module_txt.py,sha256=R-EBfEZM0jwY2yuVyfYhoccDOl0Y2uQZSkXQ1HyinUA,247
404
404
  bbot/test/test_step_2/module_tests/test_module_unarchive.py,sha256=--p2kpnyfbABuJI5qmDbD-K_D5e4Icvq5VzEyp6AWVE,10676
405
405
  bbot/test/test_step_2/module_tests/test_module_url_manipulation.py,sha256=aP3nK2TQQOjk0ZeuHhHYfZm_e37qrrXbnufd7m-QeJU,1144
@@ -412,7 +412,7 @@ bbot/test/test_step_2/module_tests/test_module_wappalyzer.py,sha256=viPAWXrnQT2J
412
412
  bbot/test/test_step_2/module_tests/test_module_wayback.py,sha256=byMJ_u6R9WmwB0p2uf01P39c9q_OqsBOyhmA2sC-XUE,547
413
413
  bbot/test/test_step_2/module_tests/test_module_web_parameters.py,sha256=cK6F15TxuMzExdo7iMmhlLhdJd-fhMNY8kY8YcaDbP8,2131
414
414
  bbot/test/test_step_2/module_tests/test_module_web_report.py,sha256=5h4yAl_z265UyQXq9V3hNEeqhJhNhBM2hshWOQ_7hH8,2928
415
- bbot/test/test_step_2/module_tests/test_module_websocket.py,sha256=Z_5Qtdi6L17a1gOzLwkUrBCCbmYczGyXd8TrZ9QPSLI,1048
415
+ bbot/test/test_step_2/module_tests/test_module_websocket.py,sha256=eBtHJtTeGdCGtVofpFiliFRU_9zIc5czuqjb8If7g9Q,1030
416
416
  bbot/test/test_step_2/module_tests/test_module_wpscan.py,sha256=ACGnHsavQy4uRJYoosE1JD-eJFdOj50G65P2FhIqRrM,35772
417
417
  bbot/test/test_step_2/module_tests/test_module_zoomeye.py,sha256=mEaMYa9ytxSMDIR1csmK1k7F1UrbolqEwZtqGRhA-OY,1979
418
418
  bbot/test/test_step_2/template_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -428,8 +428,8 @@ bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt,sha256=ZSIVebs7ptMvHx
428
428
  bbot/wordlists/top_open_ports_nmap.txt,sha256=LmdFYkfapSxn1pVuQC2LkOIY2hMLgG-Xts7DVtYzweM,42727
429
429
  bbot/wordlists/valid_url_schemes.txt,sha256=0B_VAr9Dv7aYhwi6JSBDU-3M76vNtzN0qEC_RNLo7HE,3310
430
430
  bbot/wordlists/wordninja_dns.txt.gz,sha256=DYHvvfW0TvzrVwyprqODAk4tGOxv5ezNmCPSdPuDUnQ,570241
431
- bbot-2.4.1.6077rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
432
- bbot-2.4.1.6077rc0.dist-info/METADATA,sha256=O62YPMHgowlmrZOJSlm3C9pyB7vZmPOEBV7n-ActcgM,18218
433
- bbot-2.4.1.6077rc0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
434
- bbot-2.4.1.6077rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
435
- bbot-2.4.1.6077rc0.dist-info/RECORD,,
431
+ bbot-2.4.1.6094rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
432
+ bbot-2.4.1.6094rc0.dist-info/METADATA,sha256=qW-3r7OnIRwYRviNMfNbdcCUCLB2eyKaaMFBIVIsY78,18218
433
+ bbot-2.4.1.6094rc0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
434
+ bbot-2.4.1.6094rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
435
+ bbot-2.4.1.6094rc0.dist-info/RECORD,,