{
  "llm": {
    "conf": 0.020279095,
    "grade": "benign",
    "model": "qwen/qwen3.8-27b",
    "outcome": "benign",
    "interpretation": "legitimate syntax highlighting gem"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.030267308,
        "rte": "az",
        "prob": 0.030267308
      },
      {
        "cls": 0,
        "raw": 0.0013179382,
        "rte": "az/gem",
        "prob": 0.0013179382
      }
    ],
    "prob": 0.030267308,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.03026730753481388,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0000548859425180126,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000032782554626464844,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0000337064266204834,
        "type": "ruby"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00003934900087187998,
        "type": "ruby"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000028024116545566358,
        "type": "ruby"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000022351741790771484,
        "type": "ruby"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00004260738569428213,
        "type": "javascript"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000042319297790527344,
        "type": "ruby"
      },
      {
        "id": 43,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002872943878173828,
        "type": "registry"
      },
      {
        "id": 44,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00002872943878173828,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-04T04:55:45Z"
  },
  "path": "wirb-1.0.1.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "wmoN*e{7Jxe[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmhz^k\u003cfFA",
            "ln": 0
          }
        ],
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "sha": "8e4f67708a067c250a771fd918e71ebdf78b236ebcb4c572a6677b3ee75e1710",
        "path": "wirb-1.0.1.gem",
        "refs": [
          {
            "to": "pkg:gem/paint",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 7,
        "size": 23040,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 5,
              "runtime_dependency_count": 1,
              "development_dependency_count": 4
            },
            "file": {
              "size": 23040,
              "entropy": 7.6
            },
            "binary": {
              "peak_region_bytes": 19456,
              "peak_region_entropy": 7.81
            },
            "archive": {
              "file_count": 2,
              "member_count": 2,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 20452,
              "max_filename_length": 11,
              "rtlo_filename_count": 0,
              "format.regular_count": 2,
              "nested_archive_count": 2,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "wirb",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/janlelis/wirb",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Jan Lelis",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "1.0.1",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          },
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "micro-behaviors/process/create/shell/build::gem-named-package-install-command",
            "atk": "T1059",
            "conf": 0.82,
            "crit": 3,
            "desc": "RubyGems named package install command"
          },
          {
            "id": "metadata/package/testing/presence/harness::spec-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Spec path basename"
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamic code evaluation call"
          },
          {
            "id": "micro-behaviors/communications/http/url/domain::js-remote-host-url",
            "conf": 0.75,
            "crit": 3,
            "desc": "Contains a hardcoded remote HTTP(S) URL"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/fs/path/location::hardcoded-home-dir-path",
            "conf": 0.8,
            "crit": 3,
            "desc": "Hardcoded absolute home directory path"
          },
          {
            "id": "micro-behaviors/communications/http/message::https-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "Contains an HTTPS URL prefix"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 19344,
              "entropy": 7.98
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 19344,
              "peak_region_entropy": 7.82
            }
          }
        },
        "id": 1,
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "path": "wirb-1.0.1.gem!!data.tar.gz",
        "pid": 0,
        "risk": 7,
        "sha": "24a8de4aa085e3efee32d143e9bc57c3793884a255b65765fb8525dfd83a6a98",
        "size": 19344,
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamic code evaluation call"
          },
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "micro-behaviors/communications/http/url/domain::js-remote-host-url",
            "conf": 0.75,
            "crit": 3,
            "desc": "Contains a hardcoded remote HTTP(S) URL"
          },
          {
            "id": "micro-behaviors/communications/http/message::https-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "Contains an HTTPS URL prefix"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "micro-behaviors/fs/path/location::hardcoded-home-dir-path",
            "conf": 0.8,
            "crit": 3,
            "desc": "Hardcoded absolute home directory path"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "micro-behaviors/process/create/shell/build::gem-named-package-install-command",
            "atk": "T1059",
            "conf": 0.82,
            "crit": 3,
            "desc": "RubyGems named package install command"
          },
          {
            "id": "metadata/package/testing/presence/harness::spec-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Spec path basename"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          }
        ],
        "type": "tar.gz"
      },
      {
        "id": 2,
        "mol": "H(Db)",
        "sha": "98b7765b1754fb5fbdfbddb803370a438b0dd851cbb426724449f326ef38555c",
        "path": "wirb-1.0.1.gem!!data.tar.gz!!lib/wirb/colorizer.rb",
        "risk": 1,
        "size": 930,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 3,
        "mol": "H(Db)",
        "sha": "5da649c7265fdde0bace1710cd22f728dc854f2ae2e3ad7aff062193c2e7e126",
        "path": "wirb-1.0.1.gem!!data.tar.gz!!lib/wirb/colorizer/wirb0_paint.rb",
        "risk": 1,
        "size": 2487,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 4,
        "mol": "H(Po)",
        "sha": "3cf256b0666caad230bae0bd4fbdd5930f5a57ff3be4c3221727100f3963a5d6",
        "path": "wirb-1.0.1.gem!!data.tar.gz!!lib/wirb.rb",
        "risk": 1,
        "size": 3543,
        "type": "ruby",
        "depth": 2
      },
      {
        "ctx": [
          {
            "b": "wmY*(A+O#]aARKqwO#jdwPxhauQ^QXmpfyJay]x$arU98By/Fni+q-fxDQ\u00267ay/7@v@2B{vqH6$az2C33lQEgy?m3@wGUJ43lQDlay/7@v@2B=zGx=dv@#o)ar\u0026{CBZ/R%o/+sbzGx]uBZ]Jcz/eG+ADL\u0026gv}vYuA3wJ]arR^HarR^HarR^HarR^HarR^Hb0W!{z/65sygh0ke](bLflhhAx\u003equsA=\u003e\u0026peIO\u003ere\u002621$f/Q\u003chtNzO@arR^HarR^HarR^HarR^HarR\u003cYy?WuiA=\u003e\u0026pfek7te?]1[A:*XuB-.OBBs?uvBzbP6e]\u003ez+a{]CnarU=AyH}y8e]$YAB.\u003eOhjV%](3lQDlarR!hi=w$GzEmr\u003eygQ)%ec",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "describe"
            ],
            [
              "",
              "tokenizer"
            ],
            [
              "",
              "after"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check_inspected"
            ],
            [
              "",
              "should"
            ]
          ],
          "mbr": [
            "tokens.should"
          ],
          "tgt": [
            "after",
            "check_inspected",
            "describe",
            "please",
            "should",
            "tokenizer"
          ],
          "metrics": {
            "ast": {
              "op.eq": 1,
              "max_depth": 11,
              "op.concat": 1,
              "call_count": 6,
              "node_count": 134,
              "member_count": 1,
              "max_array_len": 8,
              "op_density.eq": 0.01,
              "member_depth_max": 2,
              "op_density.concat": 0.01
            },
            "file": {
              "size": 635,
              "entropy": 4.86
            },
            "text": {
              "lines": 18,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.05,
              "space_count": 124,
              "char_entropy": 4.86,
              "unique_chars": 55,
              "top_char_null": 0,
              "string_density": 0.61,
              "top_char_ratio": 0.07,
              "avg_line_length": 34.28,
              "max_line_length": 98,
              "last_line_length": 3,
              "whitespace_ratio": 0.22,
              "identifier_density": 0.5,
              "line_length_stddev": 22.93,
              "normalized_string_count": 2.59,
              "repeated_char_sequences": 2,
              "normalized_unique_identifiers": 2.16
            },
            "binary": {
              "peak_region_bytes": 635,
              "peak_region_entropy": 4.86
            },
            "strings": {
              "bytes": 212,
              "count": 11,
              "ip_count": 1,
              "avg_length": 19.27,
              "max_length": 73,
              "path_count": 2,
              "avg_entropy": 2.16,
              "entropy_stddev": 1.88
            },
            "identifiers": {
              "count": 9,
              "unique": 9,
              "avg_length": 8.22,
              "max_length": 15,
              "min_length": 5,
              "avg_entropy": 2.65,
              "reuse_ratio": 1,
              "length_stddev": 2.97,
              "all_lowercase_ratio": 0.89,
              "all_uppercase_ratio": 0.11,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 6,
        "mol": "H(F)",
        "path": "wirb-1.0.1.gem!!data.tar.gz!!spec/tokenizer_rubyvm_spec.rb",
        "risk": 2,
        "sha": "4fa58b7aa09141bca7263dca107e830dab8c93becf73008d3f93eb9b036d7065",
        "size": 635,
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::spec-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Spec path basename",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/path/location::hardcoded-home-dir-path",
            "conf": 0.8,
            "crit": 3,
            "desc": "Hardcoded absolute home directory path",
            "spans": [
              [
                153,
                16
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "uses": [
              1
            ],
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "A+flkx(W=ccU47iAbo9gcKHh\u003ewPIv4x\u003c$S@Bz\u003e@azFsAdAWUp4mOcoxuTCl8wn.!$ayO(7wPw[OwNP7Zay]ykv}YB-yHql[y\u0026%qiwO#2=3lQEgy?m3@wGUJ4ay/7@v@0hzg72cDarU=AyH}y8e]$YAB.\u003eOhjV%](trlUAzdm6%efDb[g9M",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "x(){cAa9l/efDbVb3=-barR^HarT(HzGP/9wPxsAa$UO{t}us9arR^Hax{)pz/6u1efDb/b3=-barR^HarT(HCw7YjwPI*0v}vhla%n7ned9HxarR^HtrlUAzdm6%",
            "ln": 1232,
            "col": 11,
            "line": 54
          },
          {
            "b": "v@c78wNxE^BzkVhvqEFqa$jZwed9HxarR^Ht)Z]YarR^Har@1Cz!9M]D1?eeaARpdaA}:Ay?b7tB7F]9xMOunB2\u003e%cxk8E3BZ=$kz/4dxvqY))y?W@zCwh8bfkkGGB.bRsx(!urwIk+BarR^HarUYoADL#owGSvqvrug2cKH$sarR^Hv}YB-yAMI-BzkVhvqEtEehFZZarR^HarU=AyH}y8e]$YAB.\u003eOhjV%](3lQDlarR^Hax{)AB.$P0AX5sSg9Q0P3lQC",
            "ln": 2107,
            "col": 11,
            "line": 93
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "describe"
            ],
            [
              "",
              "tokenizer"
            ],
            [
              "",
              "after"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "only19"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "only18"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "only19"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "only18"
            ],
            [
              "",
              "please"
            ],
            [
              "",
              "check"
            ],
            [
              "",
              "should"
            ],
            [
              "",
              "complex"
            ],
            [
              "",
              "mathn"
            ]
          ],
          "mbr": [
            "tokens.should"
          ],
          "tgt": [
            "Complex",
            "Rational",
            "after",
            "check",
            "describe",
            "only18",
            "only19",
            "please",
            "require",
            "should",
            "tokenizer"
          ],
          "metrics": {
            "ast": {
              "op.eq": 11,
              "op.div": 7,
              "op.sub": 9,
              "max_depth": 16,
              "op.concat": 11,
              "call_count": 47,
              "node_count": 1379,
              "member_count": 1,
              "max_array_len": 28,
              "op_density.eq": 0.01,
              "op_density.div": 0.01,
              "op_density.sub": 0.01,
              "member_depth_max": 2,
              "op_density.concat": 0.01
            },
            "file": {
              "size": 3661,
              "entropy": 4.44
            },
            "text": {
              "lines": 162,
              "top_char": 44,
              "max_ws_run": 1,
              "digit_ratio": 0.08,
              "space_count": 1030,
              "char_entropy": 4.44,
              "unique_chars": 59,
              "top_char_null": 0,
              "string_density": 0.63,
              "top_char_ratio": 0.06,
              "avg_line_length": 21.6,
              "max_line_length": 80,
              "empty_line_ratio": 0.07,
              "last_line_length": 3,
              "whitespace_ratio": 0.33,
              "identifier_density": 0.37,
              "line_length_stddev": 12.21,
              "normalized_string_count": 8.01,
              "trailing_whitespace_lines": 1,
              "normalized_unique_identifiers": 1.91
            },
            "binary": {
              "peak_region_bytes": 3661,
              "peak_region_entropy": 4.52
            },
            "imports": {
              "count": 2,
              "third_party_count": 2,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 213,
              "count": 102,
              "avg_length": 2.09,
              "max_length": 11,
              "avg_entropy": 0.41,
              "entropy_stddev": 0.86
            },
            "comments": {
              "chars": 73,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.01,
              "url_in_comments": 1
            },
            "identifiers": {
              "count": 60,
              "unique": 14,
              "avg_length": 7,
              "max_length": 11,
              "min_length": 5,
              "avg_entropy": 2.53,
              "reuse_ratio": 0.23,
              "length_stddev": 1.6,
              "has_digit_ratio": 0.14,
              "all_lowercase_ratio": 0.64,
              "all_uppercase_ratio": 0.07,
              "numeric_suffix_count": 2,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 7,
        "mol": "H(Cm)",
        "path": "wirb-1.0.1.gem!!data.tar.gz!!spec/tokenizer_number_spec.rb",
        "risk": 2,
        "sha": "155f2c0d0d0861a8e670a9486a085fbb978b4d6253fe5388796088e0ffaab070",
        "size": 3661,
        "traits": [
          {
            "id": "metadata/package/testing/presence/harness::spec-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Spec path basename",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory",
            "spans": [
              [
                0,
                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": [
              [
                2171,
                19
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "jV%]?vrM]snP5SYA:-E1x)a5gqGVC]3mYa\u003eA:*Hvv@Dg4A+P\u0026hB0b:DB-FQszGx=dv@#o)ax0t\u003eC{43mygQ)%B1OObBrCpsayX=2wN({4zxJ1{A:\u0026\u0026@tweb2A5]T9Aa9i(z/*2rzz2\u003cFxd[sAw]@l9A+c[Fx(WW0wImsuayYFnaA8dlC{46Dz*2\u00269wPF#5zE:(7ze:JlC4C.qA+frmy\u0026*!kx\u003eI9}x\u003eIa3x(mMoaw3U$vqH16aAhvtC4\u003eF#B0a)lv@Dg4A+P\u0026dBzkVhaz2C6x(mG8vpBq1A:-E1x(v(iy*?Q2AV!!dwft/5w[u17azbC3CXHS6wGV57xK#3?B0bQDx(mMaD0$Mae*akfA:*e9B0bBgA=-Bxw/#hewGVtlA:\u003ccez!%FqB9hhswQN=@BAzFyiXJd0x([3hvLheez7/TjzFS)2x(+}wA:\u003ccez!%G2e^.@jjzwUBaAINkjTaMYBz#pZfe4A/vrMvaeN@GEz/PFzygh0@wO=74fl.bJvLhRqxcFDKk7cTGBAzFyiXJddA::c9B1H)oe]L=yfks{ky?mA%B1.-KA:\u0026qY3jmb6jS)slB97\u0026byZJ:KB97\u0026by-)?kwGUR%z6j4pBz9Yx3lQE7wO\u0026M7zGx]dy?$krx(WU\u00263oZJ{rDzOYwEp.lwft#jaBd)FAV^F^BuUdbe[]unA:}i+BAxXN3lQEiwPq\u003cbA+cvvA=\u003e\u0026pxjU}3cM)LHy?mWeay]4}x(mG)koJEcz3?ydA+flkx(W=ccWfoBvKzH9axJn$vLh.zvrcC%3oZJ{mRc1IB-I5m3mWe%D2v.jCPZWlxj#9}xj#y3zF787z/M%#BZ/Rsz^)D)v@#=0dJ?b$wPF#iz/^aixKL^\u003ewGV8dwGUY8B8UY2BrC:ny\u0026%p@dJ?VjAbY-oBrCglAV/1azE)\u003c5v\u003c2Y0ygQ)%B1wCBB8UY2x\u003c\u003e*]C{4ftBAm",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "aARpnB.twhax-S9ayP8czY\u0026}ewN({9zY\u003cajy?m9#ayMy5z!%ujaAI4awO\u003e\u0026#Bzb98aAIWAAbP=sB0b:DB-FQmz!%ujx)KuhasHe#xK#3?B0b18w[=c]aAIWAAbP=swN(][z!%ujx)KuhB0bQDx(mMaBzbkdjALWei+98Az/PMrwPx)^BAxX?yH}=u",
            "ln": 1699,
            "col": 12,
            "line": 39
          },
          {
            "b": "wPI@ov@Dy0flqkCy?WuiA=\u003e\u0026pxjU}3azC.mAaJK3A%-mqjS)ajwN]H%A%:xtlVl{?A+Pf1Brz#wdiHx1f!\u003c!yvqWhYwO=74auTsVBz%n]flgJpy+xQpBuRk#B7F]9lR*JYnLR+#w]zYjwmY\u003c\u003ex(4\u0026y3jodszGG]kvS=^bz/fS2xMOunB2\u003e%cxk8E3BZ=$kz/4dxvqY))y?W@zCwh8bfjO{rBAh88B-.LxB6P[$C{3Kkwft#cvqY\u003e4aARJ.3mWd",
            "ln": 3333,
            "col": 19,
            "line": 76
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "support"
            ]
          ],
          "mbr": [
            "Wirb.schema",
            "Wirb.start",
            "ci.org",
            "colorizes.It",
            "e.g",
            "e.g.Set",
            "github.com",
            "highlighting.It",
            "pablotron.org"
          ],
          "tgt": [
            "support"
          ],
          "metrics": {
            "ast": {
              "op.eq": 3,
              "op.gt": 3,
              "op.lt": 2,
              "op.div": 9,
              "op.mul": 11,
              "op.sub": 1,
              "op.bnot": 1,
              "max_depth": 14,
              "call_count": 1,
              "node_count": 532,
              "member_count": 9,
              "max_array_len": 2,
              "op_density.eq": 0.01,
              "op_density.gt": 0.01,
              "op_density.lt": 0,
              "op_density.div": 0.02,
              "op_density.mul": 0.02,
              "op_density.sub": 0,
              "sequence_count": 1,
              "op_density.bnot": 0,
              "member_depth_max": 3
            },
            "file": {
              "size": 3685,
              "entropy": 4.94
            },
            "text": {
              "lines": 87,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 438,
              "char_entropy": 4.94,
              "unique_chars": 79,
              "top_char_null": 0,
              "lines_over_200": 3,
              "string_density": 0.03,
              "top_char_ratio": 0.07,
              "avg_line_length": 41.36,
              "max_line_length": 342,
              "empty_line_ratio": 0.32,
              "last_line_length": 5,
              "whitespace_ratio": 0.14,
              "identifier_density": 2.14,
              "line_length_stddev": 64.48,
              "normalized_string_count": 0.32,
              "suspicious_comment_ratio": 1,
              "suspicious_identifier_ratio": 0.03,
              "normalized_unique_identifiers": 18.94
            },
            "binary": {
              "peak_region_bytes": 3685,
              "peak_region_entropy": 5.13
            },
            "strings": {
              "bytes": 51,
              "count": 3,
              "url_count": 1,
              "avg_length": 17,
              "max_length": 39,
              "avg_entropy": 3.07,
              "entropy_stddev": 0.9
            },
            "comments": {
              "chars": 2496,
              "count": 3,
              "lines": 55,
              "base64": 1,
              "todo_count": 1,
              "high_entropy": 2,
              "to_code_ratio": 1.72,
              "url_in_comments": 2
            },
            "consistency": {
              "extension_content_mismatch": 1,
              "extension_content_mismatch.script_as_unknown": 1
            },
            "identifiers": {
              "count": 186,
              "unique": 122,
              "avg_length": 5.31,
              "max_length": 13,
              "min_length": 1,
              "avg_entropy": 2.06,
              "reuse_ratio": 0.66,
              "length_stddev": 2.62,
              "sequential_names": 4,
              "single_char_count": 4,
              "single_char_ratio": 0.03,
              "all_lowercase_ratio": 0.74,
              "all_uppercase_ratio": 0.01
            }
          }
        },
        "id": 8,
        "mol": "H₂(Cm₂Po)",
        "path": "wirb-1.0.1.gem!!data.tar.gz!!README.rdoc",
        "risk": 2,
        "sha": "50c339241158d2bfb69d3a1975925447006899439e19aafe27bca71d899e7978",
        "size": 3685,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/message::https-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "Contains an HTTPS URL prefix",
            "spans": [
              [
                370,
                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": [
              [
                319,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/build::gem-named-package-install-command",
            "atk": "T1059",
            "conf": 0.82,
            "crit": 3,
            "desc": "RubyGems named package install command",
            "spans": [
              [
                488,
                17
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal",
            "spans": [
              [
                370,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/domain::js-remote-host-url",
            "conf": 0.75,
            "crit": 3,
            "desc": "Contains a hardcoded remote HTTP(S) URL",
            "spans": [
              [
                370,
                21
              ]
            ]
          }
        ],
        "type": "javascript"
      },
      {
        "ctx": [
          {
            "b": "boOM/eG!Rxv@C)(zF80MB-.jEi3o!5eEDJfADL#owGSvvBZ/SewO(GoaA.NrwPI]nwmYv!zE)uyav*0W3uxY$B.L(cavZ6YwIdIcA=br5wHH[)mOcoxuTCl8d\u003cc2?y?WuiCwh8bflQ]EB7]Mga{]C1m}DJ#i-y0ev}/K?v{%E[z/dgBwP]nczY\u003cBGD\u003cQ#sB1RuszdK?jarR^HarS/\u0026b6N:wvJ(d4aAGeUwPz\u003caz/cWuarR^\u0026axJn$vMDLJmn^5QpFJJMB-mWgaAGezB-.qnA=SuCarR^\u0026ax{3ZvqWhYwO=74b3+J#aAGeDzddc{arR^HarR^\u0026ar\u003eVhx(34HvqY))y?W@ywmV}(arU.TxM4:0Aa9x\u003carR^HjS\u003e}ZBAzFyiXJd0x([3hvLheez7/TjzFS)2x(+}Kx(WVb3lQEje]#eLzddEgarR^HauZ?\u003es7cn$aw2D$iV{!dy\u0026sudDs.dux(WV9A+frmy\u0026\u003c.Ja{]CnB1R0mB7ol8Acb/jzxI7+ar\u003c(}C6Li4qBiz!lVl^VA+P\u0026hB0bgqvJYY5B9hqvB1OObBrCHxx\u003eE",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "C4\u003eF#B0bHmB9hqvaztF4xL.x}xMN%axd+r0B-RTEv{%g\u0026axJn$vLh.zvrcDjvqYP#wO#m3C{4ixwGUG3y\u0026sunazCZoD2E?Caw2D$auI28ax-S9ay!?$aA.:pazC{uCwhejaBd)FAV!$5C5IznBy=O8z!%ujx)Kuhaz2C6x(mGmax8\u0026.aw$S]l}{95A+68#azbLjaz(4qwGUI{Byw)1B1OTzarU.TA+flkx(W=}uVHo#D1QY9B6\u003c94A=U@kzxI7+cQ6Wof!Lmmhyw?OaAGeQwPq\u003cbA+e=*A=\u003e\u0026puV{13B7]MgarR^HauZ?{k0p2ye\u0026UExcKH$sB1R6sy?mVgjS)dbAXq0vz^\u003eavCuYAgx\u003c@SnwPI@AB8UY2Ej)61fdFO{vJYb]zz9EZtr%\u0026At}dENBA?)UA+68#Eir9CBt29[fdFP3A:*OfEir6eByu*LdLAn7D2mw6diHb-c3KYlvqxB^x(4u6Cwh8be[X:jB8UY2atdqrzffugBBsGsaAGeDCYW$muVGW}v{-?Zy?mVgjS)@MqBJ(to*{WPwn+%4efDc7pF+g=pdD{UCYUcn3lQEje]kliwO#N2auZ?{o?wqi3lQEje[5p3uU0.\u003ewO=p7zdNQbuU0.!wO#3\u0026zEW@mcVToEwN^7{arU.TvpS[QwmY{}y\u0026sofwO#P%wmYZ\u003ezE^r@v%GgAA=Vhhv\u003ezheA+cQ9arU.TvpS[QwmY{}y\u0026sofwO#P%wmYZ\u003ezE^r@v%GgAA:--{cKH$sB1Q)iwm5\u003eUC4CGdAbxf7ByeM\u0026AaJ]$wO#16aszFTv@2T@cOcw/k0n",
            "ln": 478,
            "col": 93,
            "line": 12
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "dirname"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "name"
            ],
            [
              "",
              "version"
            ],
            [
              "",
              "dup"
            ],
            [
              "",
              "authors"
            ],
            [
              "",
              "email"
            ],
            [
              "",
              "homepage"
            ],
            [
              "",
              "summary"
            ],
            [
              "",
              "description"
            ],
            [
              "",
              "required_rubygems_version"
            ],
            [
              "",
              "required_ruby_version"
            ],
            [
              "",
              "files"
            ],
            [
              "",
              "glob"
            ],
            [
              "",
              "extra_rdoc_files"
            ],
            [
              "",
              "license"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "homepage"
            ],
            [
              "",
              "post_install_message"
            ],
            [
              "",
              "gsub"
            ],
            [
              "",
              "ljust"
            ],
            [
              "",
              "homepage"
            ],
            [
              "",
              "ljust"
            ],
            [
              "",
              "ljust"
            ],
            [
              "",
              "ljust"
            ],
            [
              "",
              "rubygems"
            ]
          ],
          "mbr": [
            "Dir.glob",
            "File.dirname",
            "s.add_dependency",
            "s.add_development_dependency",
            "s.authors",
            "s.description",
            "s.email",
            "s.extra_rdoc_files",
            "s.files",
            "s.homepage",
            "s.homepage.size",
            "s.license",
            "s.name",
            "s.post_install_message",
            "s.required_ruby_version",
            "s.required_rubygems_version",
            "s.summary",
            "s.version"
          ],
          "tgt": [
            "add_dependency",
            "add_development_dependency",
            "authors",
            "description",
            "dirname",
            "dup",
            "email",
            "extra_rdoc_files",
            "files",
            "glob",
            "gsub",
            "homepage",
            "license",
            "ljust",
            "name",
            "new",
            "post_install_message",
            "require",
            "required_ruby_version",
            "required_rubygems_version",
            "size",
            "summary",
            "version"
          ],
          "metrics": {
            "ast": {
              "op.add": 19,
              "op.mul": 1,
              "op.sub": 2,
              "max_depth": 27,
              "op.concat": 30,
              "call_count": 32,
              "node_count": 462,
              "member_count": 18,
              "max_array_len": 2,
              "op_density.add": 0.04,
              "op_density.mul": 0,
              "op_density.sub": 0,
              "max_concat_chain": 19,
              "member_depth_max": 3,
              "op_density.concat": 0.06
            },
            "file": {
              "size": 1770,
              "entropy": 5.03
            },
            "text": {
              "lines": 34,
              "top_char": 101,
              "max_ws_run": 29,
              "digit_ratio": 0.01,
              "space_count": 381,
              "char_entropy": 5.03,
              "unique_chars": 89,
              "top_char_null": 0,
              "lines_over_200": 1,
              "string_density": 1.29,
              "top_char_ratio": 0.07,
              "avg_line_length": 51.06,
              "max_line_length": 263,
              "non_ascii_ratio": 0.04,
              "empty_line_ratio": 0.06,
              "last_line_length": 3,
              "whitespace_ratio": 0.23,
              "identifier_density": 1.97,
              "line_length_stddev": 46.11,
              "normalized_string_count": 7.55,
              "repeated_char_sequences": 4,
              "suspicious_string_ratio": 0.02,
              "trailing_whitespace_lines": 2,
              "suspicious_identifier_ratio": 0.03,
              "normalized_unique_identifiers": 6.29
            },
            "binds": {
              "count": 14
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 5.13
            },
            "imports": {
              "count": 1,
              "third_party_count": 1,
              "third_party_ratio": 1
            },
            "strings": {
              "sql": 1,
              "bytes": 714,
              "count": 44,
              "url_count": 1,
              "avg_length": 16.23,
              "max_length": 242,
              "path_count": 1,
              "avg_entropy": 2.34,
              "email_count": 1,
              "entropy_stddev": 1.16
            },
            "comments": {
              "chars": 119,
              "count": 4,
              "lines": 4,
              "to_code_ratio": 0.13
            },
            "identifiers": {
              "count": 67,
              "unique": 32,
              "avg_length": 8.31,
              "max_length": 26,
              "min_length": 1,
              "avg_entropy": 2.4,
              "reuse_ratio": 0.48,
              "length_stddev": 6.52,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.03,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.06,
              "all_lowercase_ratio": 0.78,
              "all_uppercase_ratio": 0.06,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 9,
        "mol": "H₂(CmF)Md(Pa)",
        "path": "wirb-1.0.1.gem!!data.tar.gz!!wirb.gemspec",
        "risk": 3,
        "sha": "71f05699407702e0236313e293a9b61e3bc68735dc607a5be7ea61c59858b64e",
        "size": 1770,
        "traits": [
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name",
            "spans": [
              [
                120,
                47
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::https-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "Contains an HTTPS URL prefix",
            "spans": [
              [
                299,
                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": [
              [
                299,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal",
            "spans": [
              [
                299,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob",
            "spans": [
              [
                748,
                83
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 43,
        "sha": "de5fdb61a4b29cb20e228094876c1482bd42aa69c18081232a734037cd8c49e3",
        "path": "paint@2.3.0.registry.json",
        "size": 919,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 44,
        "sha": "31a91974749f0ae17a95ad048d8f15e92ba48463333e74bc05fc499768c9e453",
        "path": "wirb@1.0.1.registry.json",
        "size": 859,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 5,
    "rev": "479f3",
    "v": "8"
  }
}