{
  "ml": {
    "v": "7",
    "eng": "2.12.0-beta.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.0045716963,
        "rte": "az",
        "prob": 0.0045716963
      },
      {
        "cls": 0,
        "raw": 0.010776619,
        "rte": "az/tar",
        "prob": 0.010776619
      }
    ],
    "prob": 0.0045716963,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.004571696277707815,
        "type": "crate"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010897715583269019,
        "type": "markdown"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015040238395158667,
        "type": "rust"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000009347994819108862,
        "type": "rust"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013391177162702661,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-10-06T18:10:12Z"
  },
  "path": "sandogasa-mailman-0.25.3.crate",
  "raw": {
    "files": [
      {
        "id": 0,
        "mol": "H₂(Cm₃Db)Md₂(InPa)",
        "sha": "69cbf5c9d8d067387a602431d67f9dc4063e2aea4d8bd71f63f4e2a59cb8e2cb",
        "path": "sandogasa-mailman-0.25.3.crate",
        "risk": 5,
        "size": 23005,
        "type": "crate",
        "facts": {
          "metrics": {
            "file": {
              "size": 23005,
              "entropy": 7.99
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 23005,
              "peak_region_entropy": 7.82
            }
          }
        },
        "ident": {
          "name": {
            "value": "sandogasa-mailman",
            "source": "crate.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/slopfest/sandogasa",
              "kind": "repository",
              "source": "crate.repository"
            }
          ],
          "trust": "unsigned",
          "version": {
            "value": "0.25.3",
            "source": "crate.version",
            "verified": false
          },
          "identifier": {
            "value": "sandogasa-mailman",
            "source": "crate.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "objectives/impact/crypto-manipulation/keywords::crypto-word",
            "conf": 0.2,
            "crit": 3,
            "desc": "crypto word in Rust source",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-readme-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares readme"
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-repository-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares repository"
          },
          {
            "id": "micro-behaviors/communications/http/request/action-resource::named-other-principal",
            "conf": 0.92,
            "crit": 3,
            "desc": "Named other-principal variable",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/matchers/path_regex::wiremock/matchers/path_regex",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::matchers::path_regex",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate/models/obfuscate_email::crate/models/obfuscate_email",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::models::obfuscate_email",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-license-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares license"
          },
          {
            "id": "metadata/package/name/convention::cargo-package-name",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has name"
          },
          {
            "id": "micro-behaviors/data/string/replace::rust-string-replacement-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Rust replaces matched string content",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "metadata/import/rust/super::super",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports super::*",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-meaningful-description",
            "conf": 0.78,
            "crit": 2,
            "desc": "Cargo package has meaningful description"
          },
          {
            "id": "metadata/import/rust/wiremock/mock::wiremock/mock",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::Mock",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate/models/email::crate/models/email",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::models::Email",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "micro-behaviors/os/event/loop::tokio-namespace",
            "conf": 0.5,
            "crit": 3,
            "desc": "References the Tokio async runtime namespace",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/client/mailmanclient::client/mailmanclient",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports client::MailmanClient",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/serde/deserialize::serde/deserialize",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports serde::Deserialize",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/matchers/method::wiremock/matchers/method",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::matchers::method",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-cfg-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[cfg(test)] attribute",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test-attr",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[test] attribute",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/lib/crate::reqwest-crate",
            "conf": 0.7,
            "crit": 3,
            "desc": "References reqwest Rust HTTP library",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/reqwest/client::reqwest/client",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports reqwest::Client",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust test marker or harness",
            "from": [
              {
                "file": 7
              },
              {
                "off": 1261,
                "file": 9,
                "line": 55
              }
            ],
            "uses": [
              23,
              24
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/mockserver::wiremock/mockserver",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::MockServer",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/version::cargo-package-version",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has version"
          },
          {
            "id": "metadata/import/rust/wiremock/responsetemplate::wiremock/responsetemplate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::ResponseTemplate",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate/models/paginatedresponse::crate/models/paginatedresponse",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::models::PaginatedResponse",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "from": [
              {
                "file": 4
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "boR5ozE^V#vrk\u003cezddc{zddq?3pb!jB-RTEv@b\u003c\u003czGE1kz/M$8no]e=A.ya*BA}duxMOunB2\u003e%cxk8E7vpy\u003c0z/4dAvqfK{vqW-iD2NtnyIv)jC{$o!Bzbj)o\u003c}:Lzddr8gAZ)MvJY91v}YO1wPw[Vp!rnD3l{=rmRc1IB-I5m3jnvcmRM:JayMylwO#3\u0026AWL]Jzddc{zddr8nKKXgC{4frvqY%%zF78jwN/p?BrCylB95Kozddc{A%:G",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "cVZzJwN/p?BrCdivqfL0ayO=2z/Y$xvqG:5y?W%jA%:Gwph.m-B-.qdzGGP5vruj4zxJ$hADL#owN(bPbo[shB75Y)3jpfGu#*yhBp9eiwGV55zE^V#vrk\u003c:zddc{zddryi.:3%y\u00269P#lU{EFzGE@E3t:o}ay/k4wO#PjjS)Ecx(4S{zBnkOwO#PJi=nIMc[dj+3nj4PmRM:JaARpdaAIaiwmY^eB0bsdx(4S{zxIIsayYQsB7nS@zFs03ayMyex-",
            "ln": 214,
            "col": 17,
            "line": 9
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 904,
              "entropy": 5.01
            },
            "text": {
              "lines": 40,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 114,
              "char_entropy": 5.01,
              "unique_chars": 70,
              "top_char_null": 0,
              "top_char_ratio": 0.09,
              "avg_line_length": 21.6,
              "max_line_length": 80,
              "empty_line_ratio": 0.3,
              "last_line_length": 15,
              "whitespace_ratio": 0.17,
              "line_length_stddev": 23.53
            },
            "binary": {
              "peak_region_bytes": 904,
              "peak_region_entropy": 5.01
            }
          }
        },
        "id": 6,
        "mol": "H(Cm)Md",
        "path": "sandogasa-mailman-0.25.3.crate!!sandogasa-mailman-0.25.3/README.md",
        "pid": 2,
        "risk": 3,
        "sha": "14ef167f0533d3cc4c9a0c78ad6dc12ef255c6b20caafaddc30d7cfcb3b79889",
        "size": 904,
        "traits": [
          {
            "id": "metadata/file/naming::uppercase-readme-md-basename",
            "conf": 1.0,
            "crit": 3,
            "desc": "Basename is uppercase README.md"
          },
          {
            "id": "metadata/file/profile/markup::markdown-heading-before-fenced-block",
            "conf": 0.98,
            "crit": 3,
            "desc": "Markdown-style heading precedes a code fence",
            "spans": [
              [
                278,
                13
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                92,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                35,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                52,
                19
              ]
            ]
          }
        ],
        "type": "markdown"
      },
      {
        "ctx": [
          {
            "b": "fe1CDp^!zqoLF0FzGxwvnN#yIBzku3wPx*Ol2ZmxxK@+Je?!zzqxOX9r0\u0026$PB7DFmwPq{9B96D7lU{EFzGE@E3uZA3ay/C2By^G]zeS@@y\u0026.S#DQR^Wx(2syp*[0JzEES#wkV#WAbPSnwH[%xvRf+7v{%E\u003cuUa7.x(5hV3jpoYzGx[xnlF+TqCfOXr9rM{k#QikasqeKAV^H/b4#7uAc15[fkLuzBAo6DwN].1vq{m9ygQ)%e]L=yfjw)hxLzT3B0rWM3ugb%aAITBBZ]Ioo\u003c}:LzddrHy?WD#BrC]qarR^HvG",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "A+)=Vq/)4]zF7HcarR^Hv@b\u003c\u003czGE]ZlU{EFzGEApEf{r}ze:qll$G$sB.(dxw]zYjo\u003c}:LzddrHy?WD#BrC]qarR^Hw]n-4wObv[y\u0026?6Oat2=1q!o=SaBsCrarR^HarR!9wO+%ti=nIMc[bGCarR!P3vJl*x(d*9awDoUy\u00269P#lU{EFzGE1F3lQC",
            "ln": 246,
            "col": 11,
            "line": 10
          },
          {
            "b": "aAz46wO#PjwO\u003e\u003c\u0026y\u0026Z.nz/oA9zF787z/M$szE\u003c@iwO#Pjw].*bayPekaA7\u003cmBzbj)arR^Hfe1$3xk8K2zxJs#zddc{B6{QyqE%@)A=b}vBzbkdzddc{zddr?x\u003eeu2w/$Y7B-7.xax8=UzGu}yA3fmv3lQDlatkx3ayG4{CWCz#xjVc(aAg+4wPGy",
            "ln": 836,
            "col": 25,
            "line": 37
          },
          {
            "b": "x(mMEauZ\u0026Uzddc{B1RfGwPxgFe]t3od12PNaA7.3B-R53By!/\u003czddc{c$K?Re[n*oy?m9#c[dj+3lQDlarR^Hatkw\u003cno]e=A.ya*BA]0HwPS6nzGu}rwP}ZbBrCdivqfL0azbtdB95JMAa9x\u003catC04az(4rBrCQnv}xL1dj$@IarR^HarR!sz/M$tvp%c]",
            "ln": 1261,
            "col": 32,
            "line": 47
          },
          {
            "b": "arR^HarR^Qi%)8MarR^HarR^HarUGiBrCQnB8V5nB7DESaAIagw?EOfx\u003eqg7e[X:qc)\u003c7Sy:*#TwO#3bdk24Mvqf*Fe[G6zz/Ph%z/PiaByxolB0@F4i%(rqarR^HarR^HarR^WfcBhex(Chlvp%d)aARp9BrCajzyoJGA+funA=91yvqGT*awbNdp9p@@e[V^VA::63eO]crx(\u003eFpvp%d)dj$@IarR^HarR^HarR!ywPP5nwPI/Kaw=GVx(mv3wN[XIB8V5nB7EE5zddc{j]",
            "ln": 1572,
            "col": 6,
            "line": 54
          },
          {
            "b": "BsnN!3lQDlaBKPB3jnBtfcAP7x(4r5Bzbkdv@=11wHzKwnk@L+ay/k4wO#PjCwhejaARpdaAIj8A+e=7B75@%z!AH1vix8(w)]*#BAm^xfe1B@B-RbmayO[]zGEALA+flkwPI@oBzkP6z/{dMay/CqAcc1vAb](ux\u003eg^}dj#-tvqY^?B0bysy\u003cvdE",
            "ln": 3034,
            "col": 64,
            "line": 101
          },
          {
            "b": "pFJ8.3lQDlasO-DarR^He[e%qy?a}y3lQDlatdkIAaJK3c)Abyx(4r5A+flmwPI@ov@b\u003c\u003czGE6K3vJl*bu[U\u0026xdd\u003ekB95\u003cp3t\u003cY(aARgoBAnNK3lQDlaA.:paAIWAwPx*)dMW$WarR!HB7DFrx(W^4z!0Mzi=eqEv}YB]B2(vezdN*5z!7ywAa9\u003c4uVGZ\u003cwQ5R+3lQDlaA.:paA}KuwO(u}yDsI6o(BJSefEV9v@21OA=#2mefE\u00264B8V5nB7FrZze:r1By/\u003eZ3jm)#arR[kBy/Jnt).X%arUolaz$+muV*B3B6\u0026D?w)]*#ByeG=B7FZ3A+)cMaBsCrarR^HarR!ywPP58y?WD#BrAZ?o\u003c}:LzddrHy?WD#BuhE2wP]KKi%)8MarR^HarU9lB7GxluUaj2c$v7cwO#PxvQTs?uV*y9efDcIBAzFyiXJd5x(!xqe[OW9z/Po9A=kY7v@%twA+v4lA:@=%C4C.sdlv\u003eVarR!P3jm)#arR[kBy/Jnt).X%arUolaA}KwxKtjS",
            "ln": 3388,
            "col": 30,
            "line": 112
          },
          {
            "b": "c$v7cwO#PxvQTs?uV*y9efDcIBAzFyiXJc$CWUDdy?kkez/4doA:@=%C4C.sdlv\u003eVarR!P3jm)#arR[kBz\u003e@ez-P}3wPI%03lQDlayPtpzET/3zxJL9zE^9}wO#3\u0026A:JJ\u003euUjk0zE+dAaBsCrarR^HarR!ywPP5owPz%9AV^H/o(BJSq!o#)wPx*)B97\u0026hBsnN\u003cvrVc]Buo*LarR^HarR!ywPP58y?WD#BrAZ?o\u003c}:LzddrHy?WD#BuhC",
            "ln": 3942,
            "col": 19,
            "line": 133
          },
          {
            "b": "dlv\u003ezarR^HarR^Ho(BJSiYZ[/C4CLtzdN*5z!7mum[3x3djCPDarR^HarR^HarR^VvqYQ7Aa9\u003c4uVGZ\u003cwQ2QEfjw*lfkLuzBt2l@fj/0ex(4\u0026ze?e4]dgdguarR^HarR^HarSpSwPI*ezE^9#x([2pqE%]*z/fScraP]=y*?A%iY.d\u0026Cpkj2fEXR}wPRn",
            "ln": 4168,
            "col": 64,
            "line": 139
          },
          {
            "b": "arR^HarR^HarR^VvrVc]Bp6ckarR^HarR^HarSpVzG*bfA40d%3lQDlarR^HayPtjwPz(oc#0iAx(^T0z/fbmdjEs=arR^HEf{r7arR^KtxB!0x(u3[By/Jnt).X%arU9lD2vamw]n-jwO#3\u0026A:Jx{vqfL0uVG.1B-IwvuVG.0B.(evc[co=3lQDlarR^H",
            "ln": 6433,
            "col": 2,
            "line": 204
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "Self::new"
            ],
            [
              "",
              "HYPERKITTY_BASE.to_string"
            ],
            [
              "",
              "build_http_client"
            ],
            [
              "",
              "base_url.trim_end_matches.to_string"
            ],
            [
              "",
              "base_url.trim_end_matches"
            ],
            [
              "",
              "build_http_client"
            ],
            [
              "",
              "emails.iter.map.collect"
            ],
            [
              "",
              "emails.iter.map"
            ],
            [
              "",
              "emails.iter"
            ],
            [
              "",
              "crate::models::obfuscate_email"
            ],
            [
              "",
              "response.json"
            ],
            [
              "",
              "obfuscated.iter.any"
            ],
            [
              "",
              "obfuscated.iter"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "Some"
            ],
            [
              "",
              "sender.mailman_id.clone"
            ],
            [
              "",
              "resp.next.is_none"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "resp.results.into_iter.take.collect"
            ],
            [
              "",
              "resp.results.into_iter.take"
            ],
            [
              "",
              "resp.results.into_iter"
            ],
            [
              "",
              "sandogasa_cli::http::builder.build.expect"
            ],
            [
              "",
              "sandogasa_cli::http::builder.build"
            ],
            [
              "",
              "sandogasa_cli::http::builder"
            ],
            [
              "",
              "MailmanClient::new"
            ],
            [
              "",
              "MailmanClient::with_base_url"
            ],
            [
              "",
              "wiremock::MockServer::start"
            ],
            [
              "",
              "MailmanClient::with_base_url"
            ],
            [
              "",
              "server.uri"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with.expect.mount"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with.expect"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with"
            ],
            [
              "",
              "wiremock::Mock::given.and"
            ],
            [
              "",
              "wiremock::Mock::given"
            ],
            [
              "",
              "wiremock::matchers::method"
            ],
            [
              "",
              "wiremock::matchers::path_regex"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new.set_body_json"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new"
            ],
            [
              "",
              "client.find_sender_id"
            ],
            [
              "",
              "wiremock::MockServer::start"
            ],
            [
              "",
              "MailmanClient::with_base_url"
            ],
            [
              "",
              "server.uri"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with.mount"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with"
            ],
            [
              "",
              "wiremock::Mock::given.and"
            ],
            [
              "",
              "wiremock::Mock::given"
            ],
            [
              "",
              "wiremock::matchers::method"
            ],
            [
              "",
              "wiremock::matchers::path_regex"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new.set_body_json"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new"
            ],
            [
              "",
              "client.find_sender_id"
            ],
            [
              "",
              "wiremock::MockServer::start"
            ],
            [
              "",
              "MailmanClient::with_base_url"
            ],
            [
              "",
              "server.uri"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with.expect.mount"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with.expect"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with"
            ],
            [
              "",
              "wiremock::Mock::given.and"
            ],
            [
              "",
              "wiremock::Mock::given"
            ],
            [
              "",
              "wiremock::matchers::method"
            ],
            [
              "",
              "wiremock::matchers::path_regex"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new.set_body_json"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new"
            ],
            [
              "",
              "client.sender_emails"
            ],
            [
              "",
              "wiremock::MockServer::start"
            ],
            [
              "",
              "MailmanClient::with_base_url"
            ],
            [
              "",
              "server.uri"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with.mount"
            ],
            [
              "",
              "wiremock::Mock::given.and.respond_with"
            ],
            [
              "",
              "wiremock::Mock::given.and"
            ],
            [
              "",
              "wiremock::Mock::given"
            ],
            [
              "",
              "wiremock::matchers::method"
            ],
            [
              "",
              "wiremock::matchers::path_regex"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new.set_body_json"
            ],
            [
              "",
              "wiremock::ResponseTemplate::new"
            ],
            [
              "",
              "client.sender_emails"
            ],
            [
              "",
              "reqwest::Client"
            ],
            [
              "",
              "crate::models::Email"
            ],
            [
              "",
              "crate::models::PaginatedResponse"
            ],
            [
              "",
              "crate::models::obfuscate_email"
            ],
            [
              "",
              "super::*"
            ],
            [
              "",
              "wiremock::matchers::method"
            ],
            [
              "",
              "wiremock::matchers::path_regex"
            ],
            [
              "",
              "wiremock::Mock"
            ],
            [
              "",
              "wiremock::MockServer"
            ],
            [
              "",
              "wiremock::ResponseTemplate"
            ]
          ],
          "mbr": [
            "HYPERKITTY_BASE.to_string",
            "Mock::given.and",
            "Mock::given.and.respond_with",
            "Mock::given.and.respond_with.expect",
            "Mock::given.and.respond_with.expect.mount",
            "Mock::given.and.respond_with.mount",
            "ResponseTemplate::new.set_body_json",
            "base_url.trim_end_matches",
            "base_url.trim_end_matches.to_string",
            "client.find_sender_id",
            "client.sender_emails",
            "e.sender",
            "emails.iter",
            "emails.iter.map",
            "emails.iter.map.collect",
            "obfuscated.iter",
            "obfuscated.iter.any",
            "resp.next",
            "resp.next.is_none",
            "resp.results",
            "resp.results.into_iter",
            "resp.results.into_iter.take",
            "resp.results.into_iter.take.collect",
            "response.json",
            "sandogasa_cli::http::builder.build",
            "sandogasa_cli::http::builder.build.expect",
            "sender.address",
            "sender.mailman_id",
            "sender.mailman_id.clone",
            "server.uri"
          ],
          "tgt": [
            "HYPERKITTY_BASE.to_string",
            "MailmanClient::new",
            "MailmanClient::with_base_url",
            "Ok",
            "Self::new",
            "Some",
            "base_url.trim_end_matches",
            "base_url.trim_end_matches.to_string",
            "build_http_client",
            "client.find_sender_id",
            "client.sender_emails",
            "crate::models::obfuscate_email",
            "emails.iter",
            "emails.iter.map",
            "emails.iter.map.collect",
            "obfuscated.iter",
            "obfuscated.iter.any",
            "resp.next.is_none",
            "resp.results.into_iter",
            "resp.results.into_iter.take",
            "resp.results.into_iter.take.collect",
            "response.json",
            "sandogasa_cli::http::builder",
            "sandogasa_cli::http::builder.build",
            "sandogasa_cli::http::builder.build.expect",
            "sender.mailman_id.clone",
            "server.uri",
            "wiremock::Mock::given",
            "wiremock::Mock::given.and",
            "wiremock::Mock::given.and.respond_with",
            "wiremock::Mock::given.and.respond_with.expect",
            "wiremock::Mock::given.and.respond_with.expect.mount",
            "wiremock::Mock::given.and.respond_with.mount",
            "wiremock::MockServer::start",
            "wiremock::ResponseTemplate::new",
            "wiremock::ResponseTemplate::new.set_body_json",
            "wiremock::matchers::method",
            "wiremock::matchers::path_regex"
          ],
          "funcs": [
            [
              "default",
              318
            ],
            [
              "new",
              395
            ],
            [
              "with_base_url",
              546
            ],
            [
              "find_sender_id",
              1065
            ],
            [
              "sender_emails",
              2493
            ],
            [
              "build_http_client",
              3237
            ],
            [
              "new_uses_default_base_url",
              3618
            ],
            [
              "with_base_url_trims_trailing_slash",
              3798
            ],
            [
              "find_sender_id_found",
              4023
            ],
            [
              "find_sender_id_not_found",
              5463
            ],
            [
              "sender_emails_returns_results",
              6535
            ],
            [
              "sender_emails_respects_limit",
              7637
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 1,
              "max_depth": 23,
              "call_count": 90,
              "node_count": 2178,
              "member_count": 30,
              "max_array_len": 1,
              "op_density.eq": 0,
              "member_depth_max": 5
            },
            "file": {
              "size": 8492,
              "entropy": 4.38
            },
            "text": {
              "lines": 262,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.02,
              "space_count": 2860,
              "char_entropy": 4.38,
              "unique_chars": 83,
              "top_char_null": 0,
              "string_density": 0.35,
              "top_char_ratio": 0.06,
              "avg_line_length": 31.41,
              "max_line_length": 90,
              "empty_line_ratio": 0.12,
              "last_line_length": 1,
              "whitespace_ratio": 0.37,
              "identifier_density": 1.18,
              "line_length_stddev": 23.8,
              "normalized_string_count": 5.62,
              "repeated_char_sequences": 115,
              "suspicious_comment_ratio": 0.06,
              "suspicious_identifier_ratio": 0.03,
              "normalized_unique_identifiers": 12.45
            },
            "binds": {
              "count": 20
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.93
            },
            "source": {
              "class_count": 1,
              "function_count": 12
            },
            "imports": {
              "count": 10,
              "wildcard": 1,
              "third_party_count": 10,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 1062,
              "count": 91,
              "url_count": 5,
              "avg_length": 11.67,
              "max_length": 47,
              "path_count": 4,
              "avg_entropy": 2.61,
              "email_count": 5,
              "entropy_stddev": 1.02
            },
            "comments": {
              "chars": 813,
              "count": 16,
              "lines": 16,
              "high_entropy": 1,
              "to_code_ratio": 0.07
            },
            "functions": {
              "count": 13,
              "density": 4.58,
              "avg_params": 0.67,
              "code_ratio": 0.79,
              "max_params": 4,
              "length_stddev": 13.06,
              "avg_name_length": 18.92,
              "no_params_count": 9,
              "avg_length_lines": 17.33,
              "max_length_lines": 39,
              "min_length_lines": 3,
              "high_entropy_names": 2,
              "avg_param_name_length": 6.5
            },
            "identifiers": {
              "count": 308,
              "unique": 100,
              "avg_length": 7.95,
              "max_length": 34,
              "min_length": 1,
              "avg_entropy": 2.37,
              "reuse_ratio": 0.32,
              "length_stddev": 6.15,
              "sequential_names": 3,
              "single_char_count": 3,
              "single_char_ratio": 0.03,
              "high_entropy_count": 5,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.81,
              "all_uppercase_ratio": 0.01
            }
          }
        },
        "id": 7,
        "mol": "H(Cm)Md₂(InPa)",
        "path": "sandogasa-mailman-0.25.3.crate!!sandogasa-mailman-0.25.3/src/client.rs",
        "pid": 2,
        "risk": 4,
        "sha": "e635af117891d89feb80d7f2c62701d4acf61ede2105ab96583561965ba3a551",
        "size": 8492,
        "traits": [
          {
            "id": "metadata/import/rust/reqwest/client::reqwest/client",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports reqwest::Client",
            "spans": [
              [
                51,
                15
              ]
            ]
          },
          {
            "id": "metadata/import/rust/crate/models/email::crate/models/email",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::models::Email",
            "spans": [
              [
                89,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/crate/models/paginatedresponse::crate/models/paginatedresponse",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::models::PaginatedResponse",
            "spans": [
              [
                96,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/crate/models/obfuscate_email::crate/models/obfuscate_email",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::models::obfuscate_email",
            "spans": [
              [
                115,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/super::super",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports super::*",
            "spans": [
              [
                3485,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/matchers/method::wiremock/matchers/method",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::matchers::method",
            "spans": [
              [
                3524,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/matchers/path_regex::wiremock/matchers/path_regex",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::matchers::path_regex",
            "spans": [
              [
                3532,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/mock::wiremock/mock",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::Mock",
            "spans": [
              [
                3564,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/mockserver::wiremock/mockserver",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::MockServer",
            "spans": [
              [
                3570,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/wiremock/responsetemplate::wiremock/responsetemplate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports wiremock::ResponseTemplate",
            "spans": [
              [
                3582,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                884,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                4220,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                1693,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                294,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                3082,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-cfg-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[cfg(test)] attribute",
            "spans": [
              [
                3452,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test-attr",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[test] attribute",
            "spans": [
              [
                3602,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/lib/crate::reqwest-crate",
            "conf": 0.7,
            "crit": 3,
            "desc": "References reqwest Rust HTTP library",
            "spans": [
              [
                51,
                7
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/event/loop::tokio-namespace",
            "conf": 0.5,
            "crit": 3,
            "desc": "References the Tokio async runtime namespace",
            "spans": [
              [
                4006,
                7
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust test marker or harness",
            "uses": [
              15,
              16
            ],
            "spans": [
              [
                3452,
                12
              ],
              [
                3602,
                11
              ]
            ]
          }
        ],
        "type": "rust"
      },
      {
        "ctx": [
          {
            "b": "fe1CDp^!zqoLF0FzGxwvnN#yIBzku3wPx*Ol2ZmxxK@+Je?!zzqxOX9r0\u0026$PB7DFnwPzr)iYYVuB7GxavqGU7wJHkafe1$3p*[0JzEES#wft]7B8V5nB7DFaA=k!qno]e=A.ya*BA]FCbu[X\u0026A+PYdc}4SQB.rlFl$HBJA+O@#x)Kttt)./XzF%A1wQ4(%B-RUsC4B}^AckRjA@",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "y\u0026\u003c.VaxA5-jxaG}3vJl*fe1$3l2E/Rzddc{azCZoBzbkdno]e=A.ya*BA]0qA:@=%C4Aokbu[X\u0026A+PYdc}4SQB.rlFl$HBJA+O@#x)Kttt)./XzF%A1wQ4(%B-RT",
            "ln": 334,
            "col": 13,
            "line": 14
          },
          {
            "b": "z/5]%zz2Bqzd1$6AckRjw]n-fvRf+7v{%E\u003cuUa7.x(2hezddc{iV]+\u003cBAe/MeJ$pQBAh8kxcqKdarR^HwO\u003e\u003c\u0026y+x:tAbn@)wHF]\u003ecOcw:asHUEar\u0026lwEf{ratvRnTd0f3wBsyG5zeS@cBy/JnB0b/parR^HB-RapB9hCkAYMlhi%(rqarR^KtxBB$Bx]j@arR!szxJ\u003ebw{5f8vru6/wO\u003e\u003c\u0026y*Rl$ze:r5c[co=3lQDlarR^HayPtjwPz)1wPn\u003ewz^)s3B7nT2wNx1=vqfKab6v%rAZjhXvqP$1wIdFhz6yzWar\u003e@HwPw[wvjrsgCWUDdy?kkez/3WEi%)8MarV7t3lQDlar$9jwPI%03lQDlazbHlz^)s3B7nR",
            "ln": 1122,
            "col": 46,
            "line": 46
          },
          {
            "b": "x(!wHBy/JnkXkgGze:r5e[n*pfcQ-CarR^HarR!Pa%PeR3lQDlarR^Haz+Rhaz2y#x(2*MmqVEEy-\u003e\u003e-B7Gx5wNxg[z/dP%w].*buVQsfc#9*wzyEhXzG*bfA40d%3lQDlarR^HayPtjwPz)1wPn\u003ewwO\u003e\u003c\u0026y+x^KvRPE:BsXKUraQb)aAIWmygQ)%a$kOXarR^HarR^Hy?mYhB7Gl1wPw[Raz2y#x(2zywO#3\u0026AXqGLCxdbhc[dj+arR^HarR^HvrlH3A=+V1AuM-KwO}",
            "ln": 1921,
            "col": 54,
            "line": 76
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "email.replace"
            ],
            [
              "",
              "serde_json::from_str.unwrap"
            ],
            [
              "",
              "serde_json::from_str"
            ],
            [
              "",
              "email.sender.unwrap"
            ],
            [
              "",
              "serde_json::from_str.unwrap"
            ],
            [
              "",
              "serde_json::from_str"
            ],
            [
              "",
              "serde::Deserialize"
            ],
            [
              "",
              "super::*"
            ]
          ],
          "mbr": [
            "email.replace",
            "email.sender",
            "email.sender.unwrap",
            "serde_json::from_str.unwrap"
          ],
          "tgt": [
            "email.replace",
            "email.sender.unwrap",
            "serde_json::from_str",
            "serde_json::from_str.unwrap"
          ],
          "funcs": [
            [
              "obfuscate_email",
              1134
            ],
            [
              "obfuscate_email_simple",
              1277
            ],
            [
              "obfuscate_email_no_at",
              1411
            ],
            [
              "deserialize_email",
              1524
            ],
            [
              "deserialize_paginated_response",
              2250
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 10,
              "call_count": 6,
              "node_count": 645,
              "member_count": 4,
              "member_depth_max": 3
            },
            "file": {
              "size": 2898,
              "entropy": 4.68
            },
            "text": {
              "lines": 108,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.03,
              "space_count": 738,
              "char_entropy": 4.68,
              "unique_chars": 75,
              "top_char_null": 0,
              "string_density": 0.09,
              "top_char_ratio": 0.08,
              "avg_line_length": 25.83,
              "max_line_length": 81,
              "empty_line_ratio": 0.11,
              "last_line_length": 1,
              "whitespace_ratio": 0.29,
              "identifier_density": 1.03,
              "line_length_stddev": 19.05,
              "normalized_string_count": 0.96,
              "repeated_char_sequences": 22,
              "suspicious_comment_ratio": 0.11,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 6.07
            },
            "binds": {
              "count": 5
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.91
            },
            "source": {
              "class_count": 3,
              "function_count": 5
            },
            "imports": {
              "count": 2,
              "wildcard": 1,
              "third_party_count": 2,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 903,
              "count": 10,
              "avg_length": 90.3,
              "max_length": 420,
              "avg_entropy": 3.11,
              "email_count": 2,
              "entropy_stddev": 0.62
            },
            "comments": {
              "chars": 361,
              "count": 9,
              "lines": 9,
              "high_entropy": 1,
              "to_code_ratio": 0.09
            },
            "functions": {
              "count": 8,
              "density": 4.63,
              "avg_params": 0.2,
              "code_ratio": 0.45,
              "max_params": 1,
              "length_stddev": 8.35,
              "avg_name_length": 21,
              "no_params_count": 4,
              "avg_length_lines": 9.8,
              "max_length_lines": 21,
              "min_length_lines": 3,
              "high_entropy_names": 4,
              "avg_param_name_length": 5
            },
            "identifiers": {
              "count": 111,
              "unique": 41,
              "avg_length": 8.61,
              "max_length": 30,
              "min_length": 1,
              "avg_entropy": 2.49,
              "reuse_ratio": 0.37,
              "length_stddev": 5.95,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 5,
              "high_entropy_ratio": 0.12,
              "all_lowercase_ratio": 0.78,
              "all_uppercase_ratio": 0.02
            }
          }
        },
        "id": 9,
        "mol": "H(Db₂)Md(Pa)",
        "path": "sandogasa-mailman-0.25.3.crate!!sandogasa-mailman-0.25.3/src/models.rs",
        "pid": 2,
        "risk": 3,
        "sha": "5af296560eb502bb3dacf86edcbf11ca61db52cff6ba722d76e9a96525003eb0",
        "size": 2898,
        "traits": [
          {
            "id": "metadata/import/rust/serde/deserialize::serde/deserialize",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports serde::Deserialize",
            "spans": [
              [
                51,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/super::super",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports super::*",
            "spans": [
              [
                1250,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                366,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-cfg-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[cfg(test)] attribute",
            "spans": [
              [
                1217,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test-attr",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[test] attribute",
            "spans": [
              [
                1261,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/parse/json::rust-serde-json-parse",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust parses JSON text or bytes",
            "spans": [
              [
                1985,
                26
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/string/replace::rust-string-replacement-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Rust replaces matched string content",
            "spans": [
              [
                1186,
                13
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust test marker or harness",
            "uses": [
              3,
              4
            ],
            "spans": [
              [
                1217,
                12
              ],
              [
                1261,
                11
              ]
            ]
          }
        ],
        "type": "rust"
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 852,
              "entropy": 4.87
            },
            "binary": {
              "peak_region_bytes": 852,
              "peak_region_entropy": 4.87
            },
            "registry": {
              "age_days": 0,
              "published_at": 1791306497,
              "releases_24h": 1,
              "releases_48h": 1,
              "is_deprecated": 0,
              "release_count": 46,
              "unpacked_size": 23005,
              "downloads_total": 971,
              "version_removed": 0,
              "downloads_recent": 447,
              "package_age_days": 196,
              "first_published_at": 1774287371,
              "previous_published_at": 1790859578,
              "days_since_previous_release": 5
            }
          }
        },
        "id": 10,
        "mol": "Md(Re)",
        "path": "sandogasa-mailman@0.25.3.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "a2cae957015eb20f49d58d8ee314ff26ab42d361d5aca20d70a358751961c44c",
        "size": 852,
        "traits": [
          {
            "id": "metadata/registry::many-releases",
            "conf": 1.0,
            "crit": 3,
            "desc": "Twenty or more releases"
          },
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days"
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "c1ea9",
    "v": "8"
  }
}