{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.030587733,
        "rte": "az",
        "prob": 0.030587733
      },
      {
        "cls": 0,
        "raw": 0.3782017,
        "rte": "az/python_sdist",
        "prob": 0.3782017
      }
    ],
    "prob": 0.030587733,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.030587732791900635,
        "type": "python_sdist"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013033549294050317,
        "type": "python"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013152758583601099,
        "type": "python"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013977289199829102,
        "type": "python"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000009308258995588403,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-01T18:23:04Z"
  },
  "path": "httpagentparser-1.9.0.tar.gz",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "abZygf-2-]0@(!BB966GBAzFgxjU$5Aa9^dwPxvSe\u0026+Kre{7Jx0pq{-Bk/-@@H41\u0026.9\u003ewj76KA5B{EQWzr0JghAgXjpLQ2T2Q?@Na*Ej1U]Aq(h)T0[ByGEaY$r(j+RSes+fn2eVq963E@c:n4GB0XB/L#I",
            "ln": 0
          }
        ],
        "mol": "H₂(Cm₃Db₂)Md(Bk)",
        "sha": "23805523b61b04b9412cd98cd1fe0415401045fd5447d3b62a02ae60d22814ed",
        "path": "httpagentparser-1.9.0.tar.gz",
        "risk": 5,
        "size": 7094,
        "type": "python_sdist",
        "facts": {
          "metrics": {
            "file": {
              "size": 7094,
              "entropy": 7.97
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 7094,
              "peak_region_entropy": 7.81
            }
          }
        },
        "ident": {
          "name": {
            "value": "httpagentparser",
            "source": "python.name",
            "verified": false
          },
          "urls": [
            {
              "url": "http://shon.github.com/httpagentparser",
              "kind": "homepage",
              "source": "python.homepage"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "pythonic@gmail.com"
          ],
          "authors": [
            {
              "name": "Shekhar Tiwatne",
              "role": "author",
              "email": "pythonic@gmail.com",
              "source": "python.author"
            }
          ],
          "version": {
            "value": "1.9.0",
            "source": "python.version",
            "verified": false
          },
          "identifier": {
            "value": "httpagentparser",
            "source": "python.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py",
            "conf": 0.98,
            "crit": 3,
            "desc": "Root Python setup.py packaging file",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-summary-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package summary",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/manifest/author/domain::generic-email",
            "conf": 0.6,
            "crit": 3,
            "desc": "Generic email address",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/email/address::google-consumer-email-domain-suffix",
            "conf": 0.55,
            "crit": 3,
            "desc": "Gmail consumer email domain suffix",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setuptools-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "setuptools packaging import",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-open-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.86,
            "crit": 2,
            "desc": "Opens file in default read mode"
          },
          {
            "id": "micro-behaviors/communications/http/url/php-endpoint::url-php-endpoint-script",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.8,
            "crit": 3,
            "desc": "URL targets .php endpoint",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/module-exec::module-level-side-effect-call",
            "conf": 0.82,
            "crit": 3,
            "desc": "Python module-level function call"
          },
          {
            "id": "micro-behaviors/data/parse/command::python-shlex-command-split",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python parses shell-like command words",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/file/string/application-name::firefox-browser-name-literal",
            "conf": 0.4,
            "crit": 1,
            "desc": "String literal names the Firefox browser",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/url/reference::python-comment-url-reference",
            "conf": 0.9,
            "crit": 1,
            "desc": "Python comment contains a URL",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/file/string/application-name::chrome-browser-name-literal",
            "conf": 0.4,
            "crit": 1,
            "desc": "String literal names the Chrome browser",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/user-agent::telegram-bot-api-user-agent-literal",
            "conf": 0.85,
            "crit": 3,
            "desc": "Telegram Bot API User-Agent token",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/file/string/application-name::safari-browser-name-literal",
            "conf": 0.4,
            "crit": 1,
            "desc": "String literal names the Safari browser",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/user-agent::python-requests-ua",
            "conf": 0.7,
            "crit": 3,
            "desc": "Python requests User-Agent",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py-path",
            "conf": 0.98,
            "crit": 1,
            "desc": "Shallow setup.py path candidate",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-name-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package name",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setup-api-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Packaging setup API import or call",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Declares Python Core Metadata version",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/manifest/ecosystem::pkginfo-version-field",
            "conf": 0.9,
            "crit": 1,
            "desc": "Declares Python package version",
            "from": [
              {
                "file": 1
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "w].*baAIaoB-qCvz!%Fqx(d*cA=-BBwPS6lefFLszE^9[vpK7YxjVb\u003ew].*baAIaoB-qCvz!%FEv@Dj3vqYQdBy/JnazCXiz/P}xBy/JnayPslraQb)lVl*UvqYP.x(d*cA=-BBD2\u003cr13s^)XB8@E6z*iWfwPI@Xz/6u1zE+gS3lQDlar\u00260Nax0u1zFs03aARKDazbUjz6i[hBAIKPAcT5yarR^Hq!oJ33lQDlazt\u003esAc15[fly=DBAhIwe]L=yflzbSfkL6swPI@DwQ4T2Abo8svQTs(v\u003eICpzepChzGGD5A::67z/ddJx([2uB7GDoAcc2py\u0026.gsx(!xpx\u003c#jbwI51nB960zz/6u1zE^!}arR^Ha%FirarR^HB-RbmuVf[9x(v)gauZ\u0026Kc)%aPCR9uAxlci-efDrGcOcw:l2{QXzdNQbB0bNyaAg+gB0bNyaARKDa$l!83lQDlay]4}aywF\u0026zFsi1uNP%",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "B98EKB7Gf1dlm!UarR^HarR^KazCXiz/P}xxK#i}efFChB-Rapz/{eyx\u003eg=$BzbkdwOkT%ayPq4zyoJGy\u0026r-)wN(b\u003carR^HarR!vze:AlBrCWzCNtMoarR^HarUxnAbP=saAIjjwQ1K?arR^HarR^Hvrc14auZ\u0026*wO+%hBz(zhvrc143lQDlarR^HazCBgvrc14iTM#LarR^HarR^HarU9kxlbgUaAIjjwQ2?GAbolgd05%ow?FgzCWB)1xlbHearR^HarR^HwPz*ezY?g=Bz(yRv@k:)x(mGgvrc14jZ\u0026wzB14CsarR^HarR!FD2\u003ePHCXImFwPz*ezZ=223tai%az++fwGUY8aA8jgzyu(CBAzFgxjU$5Aa9^dwPxChuUKy(ByexcAcS/WiTM#LarUxgaz++fwIe4CvrcEhCwhejc)@weC4CYnx(v(@uNEo-3lQDlarR^HaA?spB7]MgauZ\u0026-x(mGmB8U@fBsnI1cN\u0026mKf\u003cMzMBAh8mc[evPiXr6(3lQDlarR^HayYw5vquhSB7GDoA3#5oarR!AvqPNscUNQzAa9x\u003czGG\u0026aA=U/jcObPEarR!IwPz\u003caz/dZYwPz\u003caz/d9karR^HB-IpYb4#7uA5]T9B7/Gfe[X)uxMW=pv@DiqxMOunvp%d?Bz$VeB7Gwoed9HxarUfgvrlH7w[+*%B3i.marR^HarR^HcS1\u00264xl4A$ze0)2awuiYxlvS}wGT2{aw^u9xM4=hiYXxtcKH$sarR^HarT@v3lQDlazC.6y\u0026%o1uVoB-yHH\u003c!uU0O!vlEOgB.99harR^HwmY*(A+PGmx(v(LcQ\u0026m",
            "ln": 795,
            "col": 15,
            "line": 28
          },
          {
            "b": "A3fpAwPw]4xjU$5aAITBx(mMhed9HxarUGszF9r!wPIv4x(Ffdz/dZRAaJ]ncSix0l}{95A=VsIdk2TLvpQ=ned9HxarUSiv@2H=wPH1Dx(mD*Aa9l(vp%d)c[cXOarR^HvrDW9z/N#*q!P-TxKL{7rb3L+Bz+Uqed9HxarU9nBzbPkuUa7.x(2{WAcVLsz/fo0kXB}xx(2ziz/3\u003cM3lQDlaz++4wO#N2jTaMYBz%n]fl.R:e]LYuzGx-sA:@Vkz/PFzy?Wx\u003czGxxgfkUABeO]chwO#N2e]UGya$K6zarR!GwPI%2B9hhswJ.kVwPI%ma$K6zarR!GwPI%muVGZ$B.L(cjZfpQz*iTned9HxarUfhwmGB:B8%G\u003ecV\u0026{vBsf9(rbW2fed9HxarS9u3i",
            "ln": 1492,
            "col": 62,
            "line": 53
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "TestCommand.__init__"
            ],
            [
              "",
              "TestCommand.initialize_options"
            ],
            [
              "",
              "TestCommand.finalize_options"
            ],
            [
              "",
              "shlex.split"
            ],
            [
              "",
              "tox.cmdline"
            ],
            [
              "",
              "sys.exit"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "line.startswith"
            ],
            [
              "",
              "line.split('=')[-1].strip"
            ],
            [
              "",
              "line.split"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "open('README.rst').read"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "find_packages"
            ],
            [
              "",
              "find_packages"
            ],
            [
              "",
              "setup"
            ],
            [
              "",
              "setuptools"
            ],
            [
              "",
              "setuptools.command.test"
            ],
            [
              "",
              "shlex"
            ],
            [
              "",
              "sys"
            ],
            [
              "",
              "test"
            ],
            [
              "",
              "tox"
            ]
          ],
          "mbr": [
            "TestCommand.__init__",
            "TestCommand.finalize_options",
            "TestCommand.initialize_options",
            "line.split",
            "line.startswith",
            "open().read",
            "self.test_args",
            "self.test_suite",
            "self.tox_args",
            "shlex.split",
            "sys.exit",
            "tox.cmdline"
          ],
          "tgt": [
            "TestCommand.__init__",
            "TestCommand.finalize_options",
            "TestCommand.initialize_options",
            "find_packages",
            "line.split",
            "line.startswith",
            "open",
            "open().read",
            "setup",
            "shlex.split",
            "sys.exit",
            "tox.cmdline"
          ],
          "funcs": [
            [
              "__init__",
              369
            ],
            [
              "initialize_options",
              541
            ],
            [
              "finalize_options",
              650
            ],
            [
              "run_tests",
              785
            ]
          ],
          "metrics": {
            "ast": {
              "op.sub": 2,
              "max_depth": 14,
              "call_count": 14,
              "node_count": 469,
              "member_count": 12,
              "max_array_len": 3,
              "op_density.sub": 0,
              "member_depth_max": 2
            },
            "file": {
              "size": 1813,
              "entropy": 4.67
            },
            "text": {
              "lines": 63,
              "top_char": 116,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 354,
              "char_entropy": 4.67,
              "unique_chars": 60,
              "top_char_null": 0,
              "string_density": 0.29,
              "top_char_ratio": 0.07,
              "avg_line_length": 27.78,
              "max_line_length": 106,
              "empty_line_ratio": 0.17,
              "last_line_length": 5,
              "long_token_count": 1,
              "whitespace_ratio": 0.23,
              "identifier_density": 1.46,
              "line_length_stddev": 21.55,
              "normalized_string_count": 2.27,
              "repeated_char_sequences": 1,
              "normalized_unique_identifiers": 7.36
            },
            "binds": {
              "count": 11
            },
            "binary": {
              "peak_region_bytes": 1813,
              "peak_region_entropy": 4.81
            },
            "source": {
              "class_count": 1,
              "function_count": 4
            },
            "imports": {
              "count": 8,
              "aliased": 1,
              "stdlib_count": 2,
              "stdlib_ratio": 0.25,
              "third_party_count": 6,
              "third_party_ratio": 0.75
            },
            "strings": {
              "bytes": 481,
              "count": 18,
              "url_count": 2,
              "avg_length": 26.72,
              "max_length": 152,
              "avg_entropy": 2.86,
              "email_count": 1,
              "entropy_stddev": 1.33
            },
            "comments": {
              "chars": 50,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.02
            },
            "functions": {
              "count": 5,
              "density": 6.35,
              "avg_params": 1.5,
              "code_ratio": 0.35,
              "max_params": 3,
              "length_stddev": 2.69,
              "avg_name_length": 12.75,
              "avg_length_lines": 5.5,
              "max_length_lines": 10,
              "min_length_lines": 3,
              "avg_param_name_length": 3.67
            },
            "identifiers": {
              "count": 92,
              "unique": 44,
              "avg_length": 7.77,
              "max_length": 20,
              "min_length": 2,
              "avg_entropy": 2.46,
              "reuse_ratio": 0.48,
              "length_stddev": 4.33,
              "high_entropy_count": 3,
              "high_entropy_ratio": 0.07,
              "all_lowercase_ratio": 0.95,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 6,
        "mol": "H₂(Cm₂Db₂)Md(Bk)",
        "path": "httpagentparser-1.9.0.tar.gz!!httpagentparser-1.9.0/setup.py",
        "pid": 0,
        "risk": 5,
        "sha": "3fb2e8752b0c129fdd92fc9bd5eeaaaf52db270b42ff2ddd71667287179c3455",
        "size": 1813,
        "traits": [
          {
            "id": "metadata/build/pip::packaging-setuptools-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "setuptools packaging import",
            "spans": [
              [
                0,
                15
              ]
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py-path",
            "conf": 0.98,
            "crit": 1,
            "desc": "Shallow setup.py path candidate",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/author/domain::generic-email",
            "conf": 0.6,
            "crit": 3,
            "desc": "Generic email address",
            "spans": [
              [
                1626,
                32
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/email/address::google-consumer-email-domain-suffix",
            "conf": 0.55,
            "crit": 3,
            "desc": "Gmail consumer email domain suffix",
            "spans": [
              [
                1648,
                10
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-open-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.86,
            "crit": 2,
            "desc": "Opens file in default read mode",
            "spans": [
              [
                1081,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "spans": [
              [
                1553,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/php-endpoint::url-php-endpoint-script",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.8,
            "crit": 3,
            "desc": "URL targets .php endpoint",
            "spans": [
              [
                1674,
                50
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "spans": [
              [
                1284,
                38
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/module-exec::module-level-side-effect-call",
            "conf": 0.82,
            "crit": 3,
            "desc": "Python module-level function call",
            "spans": [
              [
                1219,
                103
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/parse/command::python-shlex-command-split",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python parses shell-like command words",
            "spans": [
              [
                972,
                11
              ]
            ]
          },
          {
            "id": "metadata/build/pip::packaging-setup-api-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Packaging setup API import or call",
            "spans": [
              [
                0,
                15
              ]
            ]
          },
          {
            "id": "metadata/build/pip::root-setup-py",
            "conf": 0.98,
            "crit": 3,
            "desc": "Root Python setup.py packaging file",
            "spans": [
              [
                0,
                15
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "x(d*cA=-BqBAzFgxjU$5Aa9^dwPw]4B0bd8A0=}Zy*?yaawc6TvrcD#nk@L+lU{EOwPPtlvq)?=A=leywPxjX3lQDlaz$R8wGTbUcRv/.vrcD#avy6:zeTrkeL6#9A6[CQwO#Pq3lQDlaz+$myHpV",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "B.bSoB0?qqarR!yz/oz#w]zYjjS(a\u003eD30.rzy])uADL\u0026lBAn/p3l{V\u003ewOkZ#By/GbzF78fwP]m%l30wuxKL\u003cjwmY\u003c]v@#TfB7/Y9e]\u003eJox(!xcAWTK*yHIm9vmTu%p^Y5kzE)]rdjCQqvq)\u0026fwPRG[Bz(hvxMW=pA+e($B97#lc@thhxM4=^wPq\u003c7B98EKdjCPhboP@%B98Eg3tB8{uTEXVzdN6Yau.\u003egcTQj$vqfQ^uNE(w3lQDlaAFU*asx=\u0026yHIm9viv{QzeBieB1G}8Bz%P-x\u003eqg7feCjncKHh6arR!CA+PAkc$)4de[wKnwN/*gB15KBarR^HAb]VgBsp*hA4ViCze:r5uU0.\u0026wN/*gB15KB3lQDlaAFU*aszbNBzbPgePLAxB.bSoB1Ym2ga\u003ev9lR@5IxM4=wga\u003eHrg:2FazGQgSgCgTtfFb4ueOwTjwPzG{cKHh6arR!CA+PAkc$)4de[wKnwN/*gB15KBarR^HAb]VgBsp*hA4ViCze:r5uU0.\u0026wN/*gB15KB",
            "ln": 217,
            "col": 23,
            "line": 9
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "hap.detectorshub.register"
            ],
            [
              "",
              "JakartaHTTPClinet"
            ],
            [
              "",
              "hap.detectorshub.register"
            ],
            [
              "",
              "PythonRequests"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "hap.detect"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "hap.simple_detect"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "hap.detect"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "hap.simple_detect"
            ],
            [
              "",
              "httpagentparser"
            ]
          ],
          "mbr": [
            "hap.Browser",
            "hap.detect",
            "hap.detectorshub",
            "hap.detectorshub.register",
            "hap.simple_detect"
          ],
          "tgt": [
            "JakartaHTTPClinet",
            "PythonRequests",
            "hap.detect",
            "hap.detectorshub.register",
            "hap.simple_detect",
            "print"
          ],
          "metrics": {
            "ast": {
              "max_depth": 8,
              "call_count": 12,
              "node_count": 195,
              "member_count": 5,
              "max_array_len": 1,
              "member_depth_max": 3
            },
            "file": {
              "size": 637,
              "entropy": 4.93
            },
            "text": {
              "lines": 29,
              "top_char": 116,
              "max_ws_run": 1,
              "digit_ratio": 0.03,
              "space_count": 75,
              "char_entropy": 4.93,
              "unique_chars": 56,
              "top_char_null": 0,
              "string_density": 0.24,
              "top_char_ratio": 0.08,
              "avg_line_length": 20.97,
              "max_line_length": 68,
              "empty_line_ratio": 0.34,
              "last_line_length": 31,
              "whitespace_ratio": 0.16,
              "identifier_density": 1.41,
              "line_length_stddev": 18.17,
              "normalized_string_count": 1.3,
              "suspicious_identifier_ratio": 0.07,
              "normalized_unique_identifiers": 3.09
            },
            "binds": {
              "count": 7
            },
            "binary": {
              "peak_region_bytes": 637,
              "peak_region_entropy": 4.93
            },
            "source": {
              "class_count": 2
            },
            "imports": {
              "count": 1,
              "aliased": 1,
              "third_party_count": 1,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 153,
              "count": 7,
              "avg_length": 21.86,
              "max_length": 58,
              "avg_entropy": 3.12,
              "entropy_stddev": 1.49
            },
            "comments": {
              "chars": 26,
              "count": 2,
              "lines": 2,
              "to_code_ratio": 0.07
            },
            "functions": {
              "count": 2
            },
            "identifiers": {
              "count": 41,
              "unique": 15,
              "avg_length": 9.2,
              "max_length": 17,
              "min_length": 1,
              "avg_entropy": 2.47,
              "reuse_ratio": 0.37,
              "length_stddev": 4.97,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.07,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.07,
              "all_lowercase_ratio": 0.8,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 7,
        "mol": "H₂(CmDb)",
        "path": "httpagentparser-1.9.0.tar.gz!!httpagentparser-1.9.0/httpagentparser/more.py",
        "pid": 4,
        "risk": 2,
        "sha": "f586c0c9364fdebd6fcc4d79aaa169970527d75e25b33fff93d53f3c36740978",
        "size": 637,
        "traits": [
          {
            "id": "metadata/import/python/httpagentparser::hap",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports httpagentparser as hap",
            "spans": [
              [
                7,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/user-agent::python-requests-ua",
            "conf": 0.7,
            "crit": 3,
            "desc": "Python requests User-Agent",
            "spans": [
              [
                519,
                17
              ]
            ]
          },
          {
            "id": "metadata/file/data-blob::low-overall-entropy-source",
            "conf": 0.9,
            "crit": 2,
            "desc": "Source file has low overall entropy"
          },
          {
            "id": "micro-behaviors/data/control-flow/module-exec::module-level-side-effect-call",
            "conf": 0.82,
            "crit": 3,
            "desc": "Python module-level function call",
            "spans": [
              [
                281,
                46
              ],
              [
                328,
                43
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%Firmr\u0026]{vpKy4v@b\u003c\u003czGE1nzF0*czddK2z/cXfA=k!qxMOunaA.:pAV!!6wO#O%ra]?=zeS%cy?j-1z!i#jzF%RtBAhTHBz\u0026pjwPRG[BrC1dy-)j@Aa9i\u0026y?X09wPF#jw/$M6z*cnlAV/7lay/LmA+fcgazbLjz6glvBrC74zxJI0B7]DoayX[8wQ5p",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "arR^HdJ\u0026[CA^n^svrlYpBz\u0026pkCYWImwc%C4arScRA+f63vpB4:az2CeB.twgw]zYjAb]w%Bzkk[y-)XtA=t@rwPFh3arR^RayPtjx(!wsAcVLsz/cXwwNV=\u003cAbY\u003evBz\u0026pjwPRG[BrC7fx\u003eqg7B1N!za%Ev3uTE$/A=U@kzEl-[jS(abe\u0026+KrcKHg",
            "ln": 189,
            "col": 1,
            "line": 6
          },
          {
            "b": "arR^HarR^HwnbK}e)?$1zFsi1uNP#by?tjvdQ^vgB1wB-dR\u003ckS3lQDlarR^HazbLjaAR)FazCZoB7Gf1e)\u0026yiz*c8aBA}?pB2\u003cTJarR^HarR^HarR!FwO+%hB7GD7wObv[y\u0026?7ED2LqStu@V+arR^HarR^HB7Gf1e]\u003eJox(!xcAZTFXwN/?2A=SST3jm)#arUia",
            "ln": 456,
            "col": 1,
            "line": 18
          },
          {
            "b": "B0@E\u0026C42ifwPGmGazCBgl$HEKv@#TflsB}DazCZoxjVf[BAzKKB$s:-uTEU\u003cz^M\u003c0efFe5dp0o6arR^HarR!sz/M$hazCZowmY\u003c]v@#TfB2\u003cTJarR^HarR^HarR!vw/$Q",
            "ln": 1025,
            "col": 41,
            "line": 34
          },
          {
            "b": "iTM#LarR^HarR^HarUxgaA?spB7]MguVoB]Bs}SRvrcEhCwhejd06GsA=--MvqYP#wO#33x(k5pwPz\u003caz/e{3vrcDJ3lQDlarR^HarR^HarR^HaA?spB7]MgauZ\u0026\u003cwPz\u003caz/e{3vrcD]f/\u0026OEarR^HarR^HarR^HarR^Hx\u003ewG0zE+^Jar@1uzE:\u003c",
            "ln": 2982,
            "col": 42,
            "line": 91
          },
          {
            "b": "B8LVjaw3D)wPzW1BrB1%AboDkwPw$4arR^HC4CYnx(v(@zddE2wPz\u0026mjS)@Mar\u0026uVb0c#O3jpoVvrlGjo\u0026BF\u003exjSFTA=leywPxjX3lQDlaz+$myHpW(AV^H/b1l3PwG?E7arR!FyIv-{x\u003eyZ:z/]@dauZ\u0026Kb280cmiV1AarR^HC4CYnx(v(@zddE2wPz\u0026mjS)@MfcR}\u0026a%Hq13s^)XB8@D\u003exMw3dx)1nYwm]E4lum0*B7GwviTM#LarQ",
            "ln": 5386,
            "col": 18,
            "line": 192
          },
          {
            "b": "vp\u0026}*x^=q*z*cnlAW:3RarR^Hy\u0026slcuUjj%auZ?\u003eq^\u003coDA+MZ8arR^HB8bGeuUKaVw]z*fwfs2TtoVHDxjSnrar\u003c@%lum0*B7Gwot)Z]YarR!qwO95{xK$W?s8Sa\u0026B0}",
            "ln": 5889,
            "col": 8,
            "line": 219
          },
          {
            "b": "vp%d?BsxlTarR^HarR^HB-82bB8$Y8x(!wsjS)@MlUHHUzdK[xar\u003cP#zFrf-vJ)uCb6M*Ylum0*B7GwoefDc5zE^^ax\u003eezsar\u003cf[x?}UKt).X%arR^HarUxgaAIagw?B",
            "ln": 5997,
            "col": 26,
            "line": 223
          },
          {
            "b": "arR^HarR^HarR^HA+funA=91dxjU$5e]$#Fx(\u003e:Jq^\u003coDA+MTzdo!wUt}Qhqy?W#tcM\u003c==tqftnB98CpA40dTar@16z^)A%wGT]Ww)]Z]3jpoVvrlGjm@JrUy?k}KBsoE@z*cnlAW:3RarR^HboQVwBz#pZfe4x?AbY-oBs}iAz!A($e[n*pflZ#pzddHcwPz\u0026BvqZdgwPxBUfG7TCg=2EYarR!yz/oz#w]zYjjS)@Mm@JrUy?m6]BrSmUb1DM\u0026xkzc*z/^NawP@htefDcbz/oo8wNYO1eD",
            "ln": 6509,
            "col": 1,
            "line": 237
          },
          {
            "b": "BrAZ?rc0a)3jm)#arUiaw/$.$Byfi5A=U@kzyxNqy?tjvvp%d?BsxlTarR^HarR^HAa9*e3jpoVvrlGjrcJ4#By/FVz/^x]A=leywPxjX3lQDlaz+$myHpW(AV^H/b2\u0026=2BAz8mvScuj3lQDlayYnhauZ\u0026DA=\u003e}23s^)XB8@E6wO+{\u003cA:-/Kz/^x]A=leywPxjX3lQDlaz+$myHpW(AV^H/b2\u0026b\u0026wOl3(z9\u0026e.a{]CnarUciBrAZ?rc0a)3jpoVvrlGjo?Eb}lt{@]lum0*B7GwviTM#LarUGsz!\u0026Y(z/M%-ar\u003cJLf/0iRBrR5marR!oz/^9+axix7wEn=Oy*?yaax-b\u003cwmZ0Lz/^x]A=leywPxjX3lQDlar@1xBAzE.fe40Iy\u0026z1LvqYQ!CRiGAz7/%wvrb\u003c\u003eflg#uz/*4Nvp%d?Bs}/PyZIpcarUGsz!\u0026Y(z/M%-ar\u003c@%zE^s6a{]CnarUciBrAZ?rc0a)3jm)#arUiaw/$.$Bxh%[B7]Mgd05%ow?i",
            "ln": 7363,
            "col": 7,
            "line": 267
          },
          {
            "b": "A=leywPxjX3lQDlaz+$myHpW(AV^H/b0{r*CxmtofhMs\u003czGG/la{]CnarUciBrAZ?rc0a)3jpoVvrlGjmQY!rvScg2mr\u0026]=A=br4nnie]lum0*B7GwviTM#LarUGsz!\u0026Y(z/M%-asy=fv}xa/z!\u0026{eBy/GgvqGQ\u003eBsdzrarR!oz/^9+axix7wEn+Kv@bN{B0aj@yIviMC4\u0026u\u003eA=leywPxjX3lQDlaz+$myHpW(AV^H/b2ZrLpJ*CsA=leywPw$43s^)XB8@D",
            "ln": 9034,
            "col": 18,
            "line": 347
          },
          {
            "b": "w]zYjjS\u003e}mzE^^ax\u003eey{arR^HB8bGeuUKaVw]z*fwfs2Ttph^KA=k/acOcw/s7#L.z*cmBp?T=+wHx2KcR[X)A:ZsDasxS)A+e\u003c3CQD=73lQDlar@1xBAzE.fe3\u003cEv{@[Vv}*4ge]ClxfjF:oxd(1]f/7Eqf!Uppfjw:eA=kV5eN\u0026:sCxmtoeP$YCB7]MgA%:3jarUiaw/$.$Bxh%[B7]Mgd05%ow?k6kxjU$5efGdPA+3QW3lQDlarR^HaAg+gA%-lYv@bN{B09}^A+b",
            "ln": 10072,
            "col": 10,
            "line": 402
          },
          {
            "b": "ax{lwfdep[cNQuG3jmbIy*?yaawuG!B:brgqZ\u003c:marR^Hy\u0026slcuUjj%auZ?{oLFx!CQA?varR!Cy*?A$z/PXqjS(aCx(n6rcKHh6arR!qwO95$wPQ%:A=U@kzyxNqy?tjvvp%d?BsXLUz/PwqiTM#LarR^HarUSiB8}V}3s^)XB8@D\u003cy***?vR6O2C(",
            "ln": 10488,
            "col": 22,
            "line": 418
          },
          {
            "b": "pG5Y63lQDlaz$R8wGTbUb3eF@wn=Wkaw=-\u0026zE\u003e10arR^HAbn%8w]zZbauZ?{s7#L.z*cmI3lQDlaz+$myHpW(AV^H/toWc.zE^WfB0ap)z/fbepG5C*ar\u003c)3zE^WfB0ap)z/fbgt).X%arU\u0026sA=U@kzEml?A+/lbB09Q*tppWra$K\u0026Xj0Da8asFARa$K\u0026XdiZiD3jmbIy*?yaazBRIc@i+\u003ciTM#LarUGsz!\u0026Y(z/L",
            "ln": 10914,
            "col": 20,
            "line": 445
          },
          {
            "b": "arR^HarR!vw/$#fBrz=wp?T=+wGT=Ea%pPqayO[]zGE]DarR^HarR^HarR^HA+funA=90{z/fa[arR^HarR^HAa9^eauZ\u0026QxjU$5e]$#Fx(\u003e:Jx\u00265FYzE\u003c}^qZT1#eIQJ-B98CpA40dxarR^HarR^Hw]zYjv\u003c2G6aA?spB7]MguUaa=uT)+TA=TnGarR^HarR^",
            "ln": 11336,
            "col": 2,
            "line": 464
          },
          {
            "b": "aAg+fBs}SNy?W#tv\u003c$Rot).X%arR^HarR^HarR^HarUYoBAIRwaA?spB7]Mge]\u003eJxy***+c)@vHefDq)cN/xBarR^HarR!EwPS6nzxIX)zE\u003cdZ3s^)XB8@D}p*)(.l${Z:dlm!UarR!yz/oz#w]zYjjS(a^p*)(@cKH$sarUStvrua1A+#{Zasy(0qZR[Vao",
            "ln": 11535,
            "col": 26,
            "line": 469
          },
          {
            "b": "B0aE(B-8qzc}4=\u003cBsxlTarR^Hy\u0026slcuUjj%auZ?{rBQ8*BAF@rarR^HC4CYnx(v(@zddE2wPz\u0026mjS)@MfcR}\u0026a%n7n3jmbIy*?yaavG^Ix\u003c\u003e)cl${Z:dlm!UarR!yz/k",
            "ln": 13380,
            "col": 5,
            "line": 542
          },
          {
            "b": "xGY)uv@%bhy*?H9AY)S3vpJ8it}4riarR^HarR^Hs7#L.z*cm=wnbK}c$mjnCxmtojZgSVnKUfMmRM)Ow]z{1dj+/GarR^HarR^]xMw3dwLVk/wnbK}c$mjnCxmtojZgo!",
            "ln": 15664,
            "col": 17,
            "line": 631
          },
          {
            "b": "By!#9A+frhwN/*@C4z!iwQbzjB0bKCx(4PdvpS[Wwft#jaARpdaAz4mB.(dxCwhejaA?gfB.8W\u003cz/fa[arR^Ha%FirarR^HA+frmy\u0026*^.ay]g@Bsq9Avrua1A=0%Ix\u003e8lkzEEx[jX/{kwH[%EwPz\u003caz/dZkz/fbndgdguarU3jB.tt#B97#7uU0.\u0026",
            "ln": 16205,
            "col": 44,
            "line": 652
          },
          {
            "b": "arR^Hay]59wN/?2AXp)lBy!%7c$c+1zGEALA+frmy\u0026?9karR^HarR^HarR^HwQ4Y@Ac9i\u003eCW\u003er7BzkVhayPsluUam#iTM#LarR^HarR^HarR^HarUSiB8}V}arR^Hx\u003ewG1x(4P)zF%A7iTM#LarR^HarUomAV/pyBy/G1yH}=lx(k4wcVs5NefDrHA=leywPxdEiTM#L",
            "ln": 16532,
            "col": 12,
            "line": 661
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "dict.__init__"
            ],
            [
              "",
              "self.setdefault"
            ],
            [
              "",
              "self.registerDetectors"
            ],
            [
              "",
              "self._known_types.insert"
            ],
            [
              "",
              "self[detector.info_type].append"
            ],
            [
              "",
              "iter"
            ],
            [
              "",
              "globals().values"
            ],
            [
              "",
              "globals"
            ],
            [
              "",
              "getattr"
            ],
            [
              "",
              "self.register"
            ],
            [
              "",
              "self.__class__.__dict__.get"
            ],
            [
              "",
              "self.checkWords"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "self.getVersion"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "version_part.startswith"
            ],
            [
              "",
              "version.split"
            ],
            [
              "",
              "version.split"
            ],
            [
              "",
              "agent.split(look_for)[1][1:].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split(look_for)[1][1:].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split(look_for)[1][1:].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split(look_for)[1][1:].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "version.split"
            ],
            [
              "",
              "self.trident_to_ie_versions.get"
            ],
            [
              "",
              "super(Trident, self).getVersion"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "agent.split('Edg/')[-1].strip"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split('Version/')[-1].split(' ')[0].strip"
            ],
            [
              "",
              "agent.split('Version/')[-1].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split('Safari/')[-1].split(' ')[0].strip"
            ],
            [
              "",
              "agent.split('Safari/')[-1].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split('Safari ')[-1].split(' ')[0].strip"
            ],
            [
              "",
              "agent.split('Safari ')[-1].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent[agent.index('Yandex'):].split('/')[-1].split(')')[0].strip"
            ],
            [
              "",
              "agent[agent.index('Yandex'):].split('/')[-1].split"
            ],
            [
              "",
              "agent[agent.index('Yandex'):].split"
            ],
            [
              "",
              "agent.index"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split('iPhone OS')[-1].strip"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "part.split"
            ],
            [
              "",
              "version.replace"
            ],
            [
              "",
              "agent.split('CPU OS ')[-1].strip"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "part.split"
            ],
            [
              "",
              "version.replace"
            ],
            [
              "",
              "agent.split('Mac OS')[-1].strip"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "part.split"
            ],
            [
              "",
              "version.replace"
            ],
            [
              "",
              "agent.split('Windows')[-1].split(';')[0].strip"
            ],
            [
              "",
              "agent.split('Windows')[-1].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "v.split"
            ],
            [
              "",
              "self.win_versions.get"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "part.split"
            ],
            [
              "",
              "part.split"
            ],
            [
              "",
              "version.strip"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "part.split"
            ],
            [
              "",
              "part.split"
            ],
            [
              "",
              "version.strip"
            ],
            [
              "",
              "agent.split(word + version_markers[0])[-1].split(version_markers[1])[1].strip"
            ],
            [
              "",
              "agent.split(word + version_markers[0])[-1].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split(word)[-1].replace(')', ';').split(';')[0].strip"
            ],
            [
              "",
              "agent.split(word)[-1].replace(')', ';').split"
            ],
            [
              "",
              "agent.split(word)[-1].replace"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "agent.split('hpwOS/')[-1].split(';')[0].strip"
            ],
            [
              "",
              "agent.split('hpwOS/')[-1].split"
            ],
            [
              "",
              "agent.split"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "DetectorsHub"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "detector.detect"
            ],
            [
              "",
              "result.setdefault"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "outer_value.setdefault"
            ],
            [
              "",
              "detect"
            ],
            [
              "",
              "os_list.append"
            ],
            [
              "",
              "os_list.append"
            ],
            [
              "",
              "os_list.append"
            ],
            [
              "",
              "\" \".join"
            ],
            [
              "",
              "result.get"
            ],
            [
              "",
              "result['flavor'].get"
            ],
            [
              "",
              "result.get"
            ],
            [
              "",
              "result['dist'].get"
            ],
            [
              "",
              "result.get"
            ],
            [
              "",
              "result['os'].get"
            ],
            [
              "",
              "result['browser'].get"
            ],
            [
              "",
              "result['browser'].get"
            ],
            [
              "",
              "\" \".join"
            ],
            [
              "",
              "\" \".join"
            ]
          ],
          "mbr": [
            "agent.index",
            "agent.split",
            "d.can_register",
            "detector.detect",
            "detector.info_type",
            "detector.order",
            "dict.__init__",
            "globals().values",
            "os_list.append",
            "outer_value.setdefault",
            "part.split",
            "result.bot",
            "result.browser",
            "result.browser.get",
            "result.dist",
            "result.dist.get",
            "result.dist.name",
            "result.flavor",
            "result.flavor.get",
            "result.flavor.name",
            "result.get",
            "result.os",
            "result.os.get",
            "result.os.name",
            "result.platform",
            "result.setdefault",
            "self.__class__",
            "self.__class__.__dict__",
            "self.__class__.__dict__.get",
            "self.__class__.__name__",
            "self._known_types",
            "self._known_types.insert",
            "self.allow_space_in_version",
            "self.bot",
            "self.can_register",
            "self.checkWords",
            "self.getVersion",
            "self.info_type",
            "self.look_for",
            "self.name",
            "self.platform",
            "self.register",
            "self.registerDetectors",
            "self.setdefault",
            "self.skip_if_found",
            "self.trident_to_ie_versions",
            "self.trident_to_ie_versions.get",
            "self.version_markers",
            "self.win_versions",
            "self.win_versions.get",
            "super().getVersion",
            "v.split",
            "version.replace",
            "version.split",
            "version.strip",
            "version_part.startswith"
          ],
          "tgt": [
            "DetectorsHub",
            "agent.index",
            "agent.split",
            "detect",
            "detector.detect",
            "dict",
            "dict.__init__",
            "getattr",
            "globals",
            "globals().values",
            "isinstance",
            "iter",
            "os_list.append",
            "outer_value.setdefault",
            "part.split",
            "result.browser.get",
            "result.dist.get",
            "result.flavor.get",
            "result.get",
            "result.os.get",
            "result.setdefault",
            "self.__class__.__dict__.get",
            "self._known_types.insert",
            "self.checkWords",
            "self.getVersion",
            "self.register",
            "self.registerDetectors",
            "self.setdefault",
            "self.trident_to_ie_versions.get",
            "self.win_versions.get",
            "super",
            "super().getVersion",
            "v",
            "v.split",
            "version.replace",
            "version.split",
            "version.strip",
            "version_part.startswith"
          ],
          "funcs": [
            [
              "__init__",
              423
            ],
            [
              "register",
              610
            ],
            [
              "__iter__",
              892
            ],
            [
              "registerDetectors",
              956
            ],
            [
              "__init__",
              1621
            ],
            [
              "detect",
              1800
            ],
            [
              "checkWords",
              2281
            ],
            [
              "getVersion",
              2659
            ],
            [
              "getVersion",
              3949
            ],
            [
              "getVersion",
              4299
            ],
            [
              "getVersion",
              5166
            ],
            [
              "getVersion",
              5607
            ],
            [
              "getVersion",
              5832
            ],
            [
              "checkWords",
              5976
            ],
            [
              "getVersion",
              6260
            ],
            [
              "get_version",
              7043
            ],
            [
              "get_version",
              7251
            ],
            [
              "get_version",
              7377
            ],
            [
              "getVersion",
              7753
            ],
            [
              "getVersion",
              9854
            ],
            [
              "getVersion",
              10230
            ],
            [
              "getVersion",
              10571
            ],
            [
              "getVersion",
              10704
            ],
            [
              "getVersion",
              10845
            ],
            [
              "getVersion",
              11266
            ],
            [
              "getVersion",
              11691
            ],
            [
              "getVersion",
              12098
            ],
            [
              "getVersion",
              12261
            ],
            [
              "getVersion",
              13168
            ],
            [
              "getVersion",
              13676
            ],
            [
              "getVersion",
              14050
            ],
            [
              "getVersion",
              14496
            ],
            [
              "getVersion",
              14867
            ],
            [
              "getVersion",
              15028
            ],
            [
              "getVersion",
              15206
            ],
            [
              "detect",
              16118
            ],
            [
              "simple_detect",
              16880
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 4,
              "op.lor": 7,
              "op.sub": 17,
              "op.land": 8,
              "max_depth": 19,
              "call_count": 121,
              "node_count": 5939,
              "member_count": 56,
              "max_array_len": 9,
              "op_density.add": 0,
              "op_density.lor": 0,
              "op_density.sub": 0,
              "op_density.land": 0,
              "max_concat_chain": 2,
              "member_depth_max": 4
            },
            "file": {
              "size": 17829,
              "entropy": 4.71
            },
            "text": {
              "lines": 696,
              "top_char": 101,
              "max_ws_run": 2,
              "digit_ratio": 0.02,
              "space_count": 4189,
              "char_entropy": 4.71,
              "unique_chars": 84,
              "top_char_null": 0,
              "string_density": 0.47,
              "top_char_ratio": 0.06,
              "avg_line_length": 24.62,
              "max_line_length": 122,
              "empty_line_ratio": 0.24,
              "last_line_length": 22,
              "whitespace_ratio": 0.27,
              "identifier_density": 1.38,
              "line_length_stddev": 20.32,
              "encoded_string_ratio": 0,
              "normalized_string_count": 12.47,
              "repeated_char_sequences": 82,
              "suspicious_comment_ratio": 0.08,
              "suspicious_identifier_ratio": 0.03,
              "normalized_unique_identifiers": 17.37
            },
            "binds": {
              "count": 233
            },
            "binary": {
              "peak_region_bytes": 13312,
              "peak_region_entropy": 4.86
            },
            "source": {
              "class_count": 79,
              "function_count": 9
            },
            "strings": {
              "bytes": 2534,
              "count": 329,
              "avg_length": 7.7,
              "max_length": 309,
              "avg_entropy": 1.98,
              "empty_count": 9,
              "entropy_stddev": 1.27,
              "base64_candidates": 1
            },
            "comments": {
              "chars": 396,
              "count": 12,
              "lines": 12,
              "high_entropy": 1,
              "to_code_ratio": 0.02,
              "url_in_comments": 4
            },
            "functions": {
              "count": 88,
              "density": 5.32,
              "avg_params": 2.59,
              "code_ratio": 0.31,
              "max_params": 3,
              "length_stddev": 5.19,
              "avg_name_length": 9.92,
              "avg_length_lines": 5.92,
              "max_length_lines": 23,
              "min_length_lines": 2,
              "avg_param_name_length": 4.43
            },
            "identifiers": {
              "count": 961,
              "unique": 164,
              "avg_length": 8.38,
              "max_length": 22,
              "min_length": 1,
              "avg_entropy": 2.6,
              "reuse_ratio": 0.17,
              "length_stddev": 4.09,
              "has_digit_ratio": 0.01,
              "sequential_names": 4,
              "base64_like_names": 1,
              "single_char_count": 4,
              "single_char_ratio": 0.02,
              "high_entropy_count": 4,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 0.48,
              "all_uppercase_ratio": 0.02,
              "numeric_suffix_count": 1,
              "double_underscore_count": 6,
              "underscore_prefix_count": 9
            }
          }
        },
        "id": 8,
        "mol": "H(Cm)",
        "path": "httpagentparser-1.9.0.tar.gz!!httpagentparser-1.9.0/httpagentparser/__init__.py",
        "pid": 0,
        "risk": 1,
        "sha": "4e1e5d70d3fa292bbd25816363b01572d12b803fb3e51868553a91c16edf25f4",
        "size": 17829,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/user-agent::telegram-bot-api-user-agent-literal",
            "conf": 0.85,
            "crit": 3,
            "desc": "Telegram Bot API User-Agent token",
            "spans": [
              [
                7498,
                11
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/url/reference::python-comment-url-reference",
            "conf": 0.9,
            "crit": 1,
            "desc": "Python comment contains a URL",
            "spans": [
              [
                6621,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/string/application-name::chrome-browser-name-literal",
            "conf": 0.4,
            "crit": 1,
            "desc": "String literal names the Chrome browser",
            "spans": [
              [
                6029,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/string/application-name::firefox-browser-name-literal",
            "conf": 0.4,
            "crit": 1,
            "desc": "String literal names the Firefox browser",
            "spans": [
              [
                10146,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/string/application-name::safari-browser-name-literal",
            "conf": 0.4,
            "crit": 1,
            "desc": "String literal names the Safari browser",
            "spans": [
              [
                5921,
                0
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVxMOunvp%d?Bz$VeB7GwoefYmGA=U@kzx.a=f!LEsfD@4(AckSax(^%0wm5+!b04CohA9JNh8d0HefXInwNw$RD2\u003ee",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 1904,
              "entropy": 5.28
            },
            "binary": {
              "peak_region_bytes": 1904,
              "peak_region_entropy": 5.35
            },
            "registry": {
              "age_days": 2553,
              "published_at": 1567685169,
              "releases_24h": 0,
              "releases_48h": 0,
              "is_deprecated": 0,
              "release_count": 58,
              "package_age_days": 6254,
              "first_published_at": 1247937587,
              "vulnerability_count": 0,
              "previous_published_at": 1565359281,
              "days_since_previous_release": 26
            }
          }
        },
        "id": 10,
        "path": "httpagentparser@1.9.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "6e394bf96a350ef038a7d738e0e1b8b26d44fdd8130a1a5a6410dc130d3b89e9",
        "size": 1904,
        "traits": [
          {
            "id": "metadata/registry::established-package",
            "conf": 1.0,
            "crit": 1,
            "desc": "Package is at least one year old",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/registry::many-releases",
            "conf": 1.0,
            "crit": 1,
            "desc": "Twenty or more releases",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "01871",
    "v": "8"
  }
}