{
  "llm": {
    "conf": 0.34190738,
    "grade": "benign",
    "model": "Qwen/Qwen3.6-27B",
    "outcome": "benign",
    "interpretation": "Legitimate Python SDK package"
  },
  "ml": {
    "v": "7",
    "eng": "2.3.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.015232623,
        "rte": "az",
        "prob": 0.015232623
      }
    ],
    "prob": 0.05986768,
    "skip": [
      {
        "rte": "az/whl",
        "why": "unavailable"
      },
      {
        "rte": "az/whl",
        "why": "unavailable"
      }
    ],
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.059867680072784424,
        "type": "whl"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.009010374546051025,
        "type": "python"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00018525123596191406,
        "type": "python"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.05139857530593872,
        "type": "python"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.007709085941314697,
        "type": "python"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0002874135971069336,
        "type": "python"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.004443138837814331,
        "type": "python"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00019529461860656738,
        "type": "python"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.059867680072784424,
        "type": "pkg_info"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.0003479123115539551,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-07-12T04:21:23Z"
  },
  "path": "forjio_linksnap-0.1.1-py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awak2MK\u00268lqTS:IWJF=003d9000@r003RHA+YrbuU\u003cB]yJBx4A4+N9x(mTbuTCB8D2nZgKjb=]H41*LQI%{oNL2Pb3jhL?l=B{*Cd3B^p*$Axf)h\u003e\u003ejfuUR?{9HQl^\u003eXT\u003edNg/\u003ey5xJ{]gnM\u003cWu]Q:\u003c%83cI)\u003ef^^U6lzx?-pm:SEjt4[8Ew)!!F5Z0vsp\u003c*i)uTbe^MkP",
            "n": [
              {
                "c": 2,
                "d": "Python wheel archive basename",
                "i": "metadata/file/extension/identity::python-wheel-basename",
                "o": 0,
                "z": 38,
                "cf": 0.949999988079071
              }
            ],
            "ln": 0
          }
        ],
        "mol": "H₂(Cm₃F)",
        "sha": "e8ef998c791c98023c6124e6875007f452cdd778ba0d9a0011cd45642c93df40",
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl",
        "risk": 2,
        "size": 14014,
        "type": "whl",
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0.0
            },
            "file": {
              "size": 14014.0,
              "entropy": 7.91,
              "size_bytes": 14014.0
            },
            "binary": {
              "overall_entropy": 7.91,
              "peak_region_bytes": 13312.0,
              "peak_region_entropy": 7.84
            },
            "archive": {
              "file_count": 10.0,
              "member_count": 10.0,
              "script_count": 7.0,
              "zip_bomb_ratio": 5.95,
              "directory_count": 0.0,
              "executable_count": 0.0,
              "extra_field_size": 0.0,
              "noise_file_count": 0.0,
              "total_compressed": 12620.0,
              "compression.ratio": 0.28,
              "hidden_file_count": 0.0,
              "total_uncompressed": 45528.0,
              "crc_collision_count": 0.0,
              "entry_comment_count": 0.0,
              "max_filename_length": 40.0,
              "rtlo_filename_count": 0.0,
              "format.regular_count": 10.0,
              "nested_archive_count": 0.0,
              "path_traversal_count": 0.0,
              "symlink_escape_count": 0.0,
              "security.setgid_count": 0.0,
              "security.setuid_count": 0.0,
              "security.sticky_count": 0.0,
              "double_extension_count": 0.0,
              "duplicate_member_count": 0.0,
              "security.symlink_count": 0.0,
              "unicode_filename_count": 0.0,
              "homoglyph_filename_count": 0.0,
              "security.encrypted_count": 0.0,
              "timing.mtime_unique_count": 1.0,
              "timing.mtime_unique_ratio": 0.1,
              "misplaced_executable_count": 0.0,
              "timing.mtime_dominant_count": 10.0,
              "timing.mtime_spread_seconds": 0.0,
              "timing.sentinel_mtime_count": 0.0,
              "security.world_writable_count": 0.0,
              "timing.mtime_dominant_fraction": 1.0,
              "compression.method_counts.deflate": 10.0
            }
          }
        },
        "ident": {
          "name": {
            "value": "forjio_linksnap",
            "source": "whl.distribution",
            "verified": false
          },
          "trust": "unsigned",
          "emails": [
            "hello@forjio.com"
          ],
          "authors": [
            {
              "name": "Forjio",
              "role": "author",
              "email": "hello@forjio.com",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "0.1.1",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/quality/ecosystem::pkginfo-summary-field",
            "conf": 0.8999999761581421,
            "crit": 1,
            "desc": "PKG-INFO declares package summary",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/lib/httpx::httpx-client",
            "conf": 0.75,
            "crit": 3,
            "desc": "httpx.Client usage",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/client::request-python",
            "conf": 0.8999999761581421,
            "crit": 3,
            "desc": "Performs HTTP request (urllib, requests, httpx)",
            "from": [
              {
                "off": 1434,
                "file": 3,
                "line": 61
              }
            ]
          },
          {
            "id": "metadata/package/quality/ecosystem::pkginfo-requires-python",
            "conf": 0.8999999761581421,
            "crit": 1,
            "desc": "PKG-INFO declares Python requirement",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::access-token",
            "crit": 3,
            "desc": "access_token field reference",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/client::python-urlencoded-post-body",
            "conf": 0.8399999737739563,
            "crit": 3,
            "desc": "Python form-urlencoded HTTP body marker",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::refresh-token",
            "conf": 0.75,
            "crit": 3,
            "desc": "refresh_token field reference",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::auth-tokens-camel",
            "crit": 3,
            "desc": "authToken field name reference",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/quality/ecosystem::pkginfo-name-field",
            "conf": 0.8999999761581421,
            "crit": 1,
            "desc": "PKG-INFO declares package name",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "objectives/credential-access/theft/keywords::token",
            "conf": 0.30000001192092896,
            "crit": 1,
            "desc": "Credential-access vocabulary word: token",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "metadata/package/quality/ecosystem::pkginfo-core-metadata",
            "conf": 1.0,
            "crit": 1,
            "desc": "Python core metadata marker",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "objectives/credential-access/theft/keywords::password",
            "crit": 1,
            "desc": "Credential-access vocabulary word: password",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/client::httpx-client-post-request",
            "conf": 0.8999999761581421,
            "crit": 3,
            "desc": "httpx Client POST request",
            "from": [
              {
                "off": 1805,
                "file": 2,
                "line": 64
              },
              {
                "file": 3
              },
              {
                "off": 1044,
                "file": 5,
                "line": 36
              },
              {
                "file": 6
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::oauth-protocol-reference",
            "crit": 3,
            "desc": "OAuth protocol reference",
            "from": [
              {
                "file": 3
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/chmod/modify::python-os-chmod",
            "atk": "T1222",
            "mbc": "E1222",
            "conf": 0.8500000238418579,
            "crit": 3,
            "desc": "Python os.chmod call",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/package/quality/ecosystem::pkginfo-version-field",
            "conf": 0.8999999761581421,
            "crit": 1,
            "desc": "PKG-INFO declares package version",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/package/quality/ecosystem::pkginfo-requires-dist",
            "conf": 0.8999999761581421,
            "crit": 1,
            "desc": "PKG-INFO declares runtime dependencies",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/client::py-post-generic",
            "conf": 0.800000011920929,
            "crit": 1,
            "desc": "Python post method call",
            "from": [
              {
                "file": 3
              }
            ],
            "spans": [
              [
                1787,
                13
              ]
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "a%Fjbw[C:!x\u003c\u003e*2p\u003cEd@z/cW@l}XUmz/M%]x(mY+zEEGp",
            "n": [
              {
                "c": 2,
                "d": "Python file extension",
                "i": "metadata/file/extension/identity::py",
                "o": 0,
                "z": 11,
                "cf": 1.0
              }
            ],
            "ln": 1,
            "addr": 0
          },
          {
            "b": "",
            "ln": 2,
            "addr": 37
          },
          {
            "b": "o\u003e!S*z/P[wBzbkdB9hInvpJ\u003c\u003ez!pb1kXs}Pyh4Pty?W^5B8CA9ePbGqwNEL",
            "ln": 3,
            "addr": 38
          },
          {
            "b": "",
            "ln": 4,
            "addr": 86
          },
          {
            "b": "eG!B{x(mY+zEEGKy?WD#Bylknx([2hA+frgB-H#6az$R8wPI*0v}xZ7c#rQnyJz3HB97\u0026jB1wCNAX5tPvp%Tj",
            "ln": 5,
            "addr": 87
          },
          {
            "b": "arUikzddc@B1wCyx(4Q1zF7HyCw?IqB8UL$wH[%jAa@V{wQetFayO+\u0026z/]@tefF[FB-OWkxK$Q*Bz96Ku[0Y",
            "n": [
              {
                "c": 1,
                "d": "Source/repository/workspace target-word component",
                "i": "objectives/impact/destroy/keywords::destructive-code-target",
                "o": 176,
                "z": 9,
                "cf": 1.0
              }
            ],
            "ln": 6,
            "addr": 156
          },
          {
            "b": "eG^?Xl{\u00268cwP?=$wGUA7BzbPkx)Kifx(v(ixl4A#Brz#fmNFpThzNlvazbLjavw*]aAImfzy]NuaA?Ecav{S$wnc9q",
            "ln": 7,
            "addr": 224
          },
          {
            "b": "eG^=gy\u0026\u003cwyAb](ex(4u6u@HSTB7]Mgu)661AV!+sfd}6PzFKrhvq)(fA+e=)zGGP3y\u0026-#p",
            "n": [
              {
                "c": 1,
                "d": "Hidden directory path literal",
                "i": "micro-behaviors/fs/path/location::hidden-dir-literal",
                "o": 328,
                "z": 12,
                "cf": 0.8399999737739563
              }
            ],
            "ln": 8,
            "addr": 297
          },
          {
            "b": "eG!B!Aa}WQx\u003eqg7u)6VcBz8!oA=kw@Bzk]fas!NPwNP7\u003cx)a5gBz\u003e@azxJ$hw].E7xDQ-3wfsuWA+Yrbaz2ClwO=p7wD",
            "n": [
              {
                "c": 1,
                "d": "password/token/api_key field keyword",
                "i": "objectives/credential-access/theft/keywords::credential-field",
                "o": 394,
                "z": 5,
                "cf": 0.8399999737739563
              }
            ],
            "ln": 9,
            "addr": 354
          },
          {
            "b": "arU/ACxdbhe=",
            "ln": 10,
            "addr": 428
          },
          {
            "b": "a%Fi",
            "ln": 11,
            "addr": 438
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              ".client"
            ],
            [
              "",
              ".client.LinkSnapClient"
            ],
            [
              "",
              ".device_flow"
            ],
            [
              "",
              ".device_flow.DeviceFlowStart"
            ],
            [
              "",
              ".device_flow.DeviceTokens"
            ],
            [
              "",
              ".device_flow.DiscoveryDocument"
            ],
            [
              "",
              ".device_flow.clear_discovery_cache"
            ],
            [
              "",
              ".device_flow.fetch_discovery"
            ],
            [
              "",
              ".device_flow.poll_device_token"
            ],
            [
              "",
              ".device_flow.refresh_access_token"
            ],
            [
              "",
              ".device_flow.start_device_flow"
            ],
            [
              "",
              ".errors"
            ],
            [
              "",
              ".errors.ApiError"
            ],
            [
              "",
              ".errors.LinkSnapAuthError"
            ],
            [
              "",
              ".errors.LinkSnapError"
            ],
            [
              "",
              ".errors.NetworkError"
            ],
            [
              "",
              ".errors.RefreshError"
            ],
            [
              "",
              ".http_client"
            ],
            [
              "",
              ".http_client.ApiClient"
            ],
            [
              "",
              ".session"
            ],
            [
              "",
              ".session.ProfileData"
            ],
            [
              "",
              ".session.Session"
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 5.0,
              "bind_count": 2.0,
              "call_count": 0.0,
              "node_count": 203.0,
              "identifier_count": 24.0,
              "string_literal_count": 19.0,
              "array_literal_max_length": 22.0
            },
            "file": {
              "size": 1369.0,
              "entropy": 4.8,
              "size_bytes": 1369.0
            },
            "text": {
              "digit_ratio": 0.01,
              "space_count": 218.0,
              "total_lines": 59.0,
              "char_entropy": 4.8,
              "unique_chars": 65.0,
              "string_density": 0.32,
              "avg_line_length": 22.2,
              "max_line_length": 73.0,
              "empty_line_ratio": 0.08,
              "last_line_length": 21.0,
              "whitespace_ratio": 0.2,
              "most_common_ratio": 0.07,
              "identifier_density": 0.41,
              "line_length_stddev": 17.02,
              "normalized_string_count": 2.47,
              "suspicious_string_ratio": 0.05,
              "most_common_char_is_null": 0.0,
              "max_inline_whitespace_run": 1.0,
              "most_common_char_codepoint": 101.0,
              "normalized_unique_identifiers": 4.08
            },
            "binds": {
              "count": 2.0
            },
            "binary": {
              "overall_entropy": 4.8,
              "peak_region_bytes": 1369.0,
              "peak_region_entropy": 4.84
            },
            "imports": {
              "count": 22.0,
              "relative_ratio": 1.0,
              "unique_modules": 22.0,
              "relative_imports": 22.0,
              "third_party_count": 22.0,
              "third_party_ratio": 1.0
            },
            "strings": {
              "total": 19.0,
              "avg_length": 35.84,
              "max_length": 439.0,
              "avg_entropy": 3.24,
              "email_count": 1.0,
              "total_bytes": 681.0,
              "entropy_stddev": 0.68,
              "shell_command_strings": 1.0
            },
            "comments": {
              "chars": 46.0,
              "lines": 5.0,
              "total": 5.0,
              "to_code_ratio": 0.09
            },
            "identifiers": {
              "count": 24.0,
              "total": 24.0,
              "avg_length": 12.33,
              "max_length": 21.0,
              "min_length": 6.0,
              "avg_entropy": 3.0,
              "reuse_ratio": 1.0,
              "unique_count": 24.0,
              "length_stddev": 4.29,
              "high_entropy_count": 5.0,
              "high_entropy_ratio": 0.21,
              "all_lowercase_ratio": 0.5,
              "double_underscore_count": 2.0,
              "underscore_prefix_count": 2.0
            }
          }
        },
        "id": 1,
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap/__init__.py",
        "pid": 0,
        "risk": 1,
        "sha": "e9cc43e299796dc2035aa5847bb528d0eec7d45cd598c5b179eec689f556df69",
        "size": 1369,
        "traits": [
          {
            "id": "metadata/file/extension/identity::py",
            "conf": 1.0,
            "crit": 2,
            "desc": "Python file extension",
            "spans": [
              [
                0,
                11
              ]
            ]
          },
          {
            "id": "metadata/file/extension/identity::python-artifact-extension",
            "conf": 1.0,
            "crit": 1,
            "desc": "Python artifact file extension (py/pyi/pyc)",
            "spans": [
              [
                0,
                11
              ]
            ]
          },
          {
            "id": "metadata/file/metrics::low-overall-entropy-source",
            "conf": 0.8999999761581421,
            "crit": 2,
            "desc": "Script overall entropy stays low",
            "spans": [
              [
                0,
                29
              ]
            ]
          },
          {
            "id": "objectives/credential-access/theft/keywords::token",
            "conf": 0.30000001192092896,
            "crit": 1,
            "desc": "Credential-access vocabulary word: token",
            "spans": [
              [
                394,
                5
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%Fj4x\u003eI9hy?m^3y-(z=zFJf*vq)u0y?WD#BrGN[LPS!FBzbPgaAg+fx([RyCwhejaz++fyJBx4A4L%CwmWv",
            "n": [
              {
                "c": 2,
                "d": "Python file extension",
                "i": "metadata/file/extension/identity::py",
                "o": 0,
                "z": 9,
                "cf": 1.0
              }
            ],
            "ln": 1,
            "addr": 0
          },
          {
            "b": "",
            "ln": 2,
            "addr": 68
          },
          {
            "b": "s8}.*B0b4qwPA5swmY{}y\u0026so7AXg)iv}/*[az2C3AbPDdBrC47xLzu{aAz4mz/{8gwGU(0zdN^cvpJ\u003e\u0026iS",
            "ln": 3,
            "addr": 69
          },
          {
            "b": "y?W^5B1wCPByxojefF}MefG4yxlbQDwn=r[x(m#yayY53y?W^1efGdPA+/-nvpJ\u003c\u003ec[uASwO\u003e)/A=SVX",
            "n": [
              {
                "c": 1,
                "d": "Source/repository/workspace target-word component",
                "i": "objectives/impact/destroy/keywords::destructive-code-target",
                "o": 177,
                "z": 9,
                "cf": 1.0
              }
            ],
            "ln": 4,
            "addr": 135
          },
          {
            "b": "vq]{/yH}^jefFwhv@DHcBsXLNy\u0026%!wvqWigzEEWfxK#76x\u003e7N[wN(]\u003exK$Q*Bz96Ku)6A5zF7N",
            "ln": 5,
            "addr": 200
          },
          {
            "b": "",
            "ln": 6,
            "addr": 260
          },
          {
            "b": "",
            "ln": 8,
            "addr": 296
          },
          {
            "b": "eG^\u003e#B8@EiB7GAlx(v(Lu)3\u003eaayFbVB8#5lzEsP0A=k!qBzbxfax7W3diJ5pwft#cwGUG0x\u003eqg7aA}Koy-)edBywV)",
            "ln": 9,
            "addr": 297
          },
          {
            "b": "arU=twGV59B8#5lzyoGFvR5$*wPw]nz!\u0026{4aARJAwP?T9C{4csADL\u0026lBrC1fwft]7w].E7xDQ-8az$+4wmYp7",
            "n": [
              {
                "c": 1,
                "d": "password/token/api_key field keyword",
                "i": "objectives/credential-access/theft/keywords::credential-field",
                "o": 393,
                "z": 5,
                "cf": 0.8399999737739563
              }
            ],
            "ln": 10,
            "addr": 370
          },
          {
            "b": "eG^\u003e#B8@Eivq]{/yH}=Ou)6MfayPwlvpJ%[vixSkvrui[ayX[\u003cA+fnlc$L2ze*9IMatj\u003cJwNPa=wPI]nA=(nvdj$",
            "n": [
              {
                "c": 1,
                "d": "Database secret config key",
                "i": "micro-behaviors/data/db/config::database-secret-key",
                "o": 451,
                "z": 4,
                "cf": 0.8500000238418579
              }
            ],
            "ln": 11,
            "addr": 439
          },
          {
            "b": "eG^\u003e#B8@EivrDW9uVZj4wO%UsaA8cuvixS9zF9=%ay!?@y-)?raA8BmA=L(8wGUL#BzblaaA7\u003cmBzbkdvpBd#wI9",
            "ln": 12,
            "addr": 510
          },
          {
            "b": "a%Fi",
            "ln": 13,
            "addr": 581
          },
          {
            "b": "",
            "ln": 14,
            "addr": 585
          },
          {
            "b": "w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGt",
            "n": [
              {
                "c": 1,
                "d": "Python import-from statement",
                "i": "micro-behaviors/data/source/language::python-import-from-statement",
                "o": 586,
                "z": 34,
                "cf": 0.800000011920929
              }
            ],
            "ln": 15,
            "addr": 586
          },
          {
            "b": "",
            "ln": 16,
            "addr": 621
          },
          {
            "b": "w].*baAR)Fx(mMax(d*cA=-A\u0026zH0=QpJgz\u0026z/f01",
            "ln": 17,
            "addr": 622
          },
          {
            "b": "arR^HarR^HB7Gf1ec",
            "ln": 56,
            "addr": 1509
          },
          {
            "b": "arR^HarR^HdL7",
            "ln": 57,
            "addr": 1523
          },
          {
            "b": "arR^HarR^HvQTs?uV*y9iV@G=AV^H/b4#7uAc15[fkLuuyJBx4A4U:vA+Yrbe[n*pa$J",
            "n": [
              {
                "c": 2,
                "d": "HTTPS protocol prefix",
                "i": "micro-behaviors/communications/http/message::https-prefix",
                "o": 1559,
                "z": 8,
                "cf": 0.8999999761581421
              }
            ],
            "ln": 58,
            "addr": 1534
          },
          {
            "b": "arR^HarR^HB7GAlx(v(IawV@#x(v($y*f?HB8#5lzE1wFawM\u0026)wH)",
            "ln": 59,
            "addr": 1589
          },
          {
            "b": "arR^HarR^Hvq]{/yH}=LawV@#x(v($y*g$5A:o!JawM\u0026)wH)",
            "ln": 60,
            "addr": 1632
          },
          {
            "b": "arR^HdiHiaawM\u0026)wJx",
            "ln": 62,
            "addr": 1716
          },
          {
            "b": "arR^HarR^HB7Gf1e[emgwNxO2y-\u003e\u003e-vQTs?uV*y9e](2PA+PFva$\u003eb?",
            "ln": 63,
            "addr": 1731
          },
          {
            "b": "arR^HarR^HB7Gf1e)\u0026plBz@u=azt\u003esA3f7tazt\u003esAcK05y?WD#BsqlBzdNTdBuIuje?!Z",
            "n": [
              {
                "c": 3,
                "d": "httpx.Client usage",
                "i": "micro-behaviors/communications/http/lib/httpx::httpx-client",
                "o": 1805,
                "z": 13,
                "cf": 0.75
              }
            ],
            "ln": 64,
            "addr": 1776
          },
          {
            "b": "arR^HarR^HB7Gf1e)\u0026KvzGxe#BAzEAjS[AWBz@vpB0aj@zE\u0026",
            "ln": 65,
            "addr": 1832
          },
          {
            "b": "arR^HarR^HB7Gf1e[5ZkauZ\u0026kAa}WQx\u003eqg7c$lRawNxO2y=#\u0026Jy?tqevrl0!B-IpHaAIanB7]Mgj-+gQB7]MgefFRFBz%x:wO+%huUBL6A47",
            "ln": 66,
            "addr": 1871
          },
          {
            "b": "arR^HarR^HB7Gf1e[nZoB7D:G",
            "ln": 87,
            "addr": 2886
          },
          {
            "b": "",
            "ln": 88,
            "addr": 2907
          },
          {
            "b": "arR^HboV0gFz#/z\u0026/[%onm=jCBz8^BzF{UaB-.pCaMwSo\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFz#/z\u0026/[#MLZ}+TFb",
            "n": [
              {
                "c": 2,
                "d": "Box drawing text banner",
                "i": "metadata/file/format::box-drawing-banner",
                "o": 2941,
                "z": 144,
                "cf": 0.8999999761581421
              }
            ],
            "ln": 89,
            "addr": 2908
          },
          {
            "b": "",
            "ln": 90,
            "addr": 3086
          },
          {
            "b": "arR^HwmYu}xK$Q*Bz97zwO+%cat2=1l2H%e",
            "ln": 91,
            "addr": 3087
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kxjVfka$)wzx!KS:fka{9y\u0026\u003ctmdf",
            "n": [
              {
                "c": 1,
                "d": "Config source endpoint marker",
                "i": "objectives/command-and-control/dropper/delivery/multistage::stage-config-endpoint-retrieve--config-source",
                "o": 3145,
                "z": 7,
                "cf": 1.0
              }
            ],
            "ln": 92,
            "addr": 3116
          },
          {
            "b": "",
            "ln": 93,
            "addr": 3162
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "base_url.rstrip"
            ],
            [
              "",
              "httpx.Client"
            ],
            [
              "",
              "ApiClient"
            ],
            [
              "",
              "build_resources"
            ],
            [
              "",
              "self._http.close"
            ],
            [
              "",
              "self.close"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              ".http_client"
            ],
            [
              "",
              ".http_client.ApiClient"
            ],
            [
              "",
              ".resources"
            ],
            [
              "",
              ".resources.AccountResources"
            ],
            [
              "",
              ".resources.ApiKeysResources"
            ],
            [
              "",
              ".resources.BillingResources"
            ],
            [
              "",
              ".resources.DomainsResources"
            ],
            [
              "",
              ".resources.LinksResources"
            ],
            [
              "",
              ".resources.QrResources"
            ],
            [
              "",
              ".resources.StatsResources"
            ],
            [
              "",
              ".resources.TagsResources"
            ],
            [
              "",
              ".resources.WorkspaceResources"
            ],
            [
              "",
              ".resources.build_resources"
            ],
            [
              "",
              ".session"
            ],
            [
              "",
              ".session.Session"
            ],
            [
              "",
              "Any"
            ],
            [
              "",
              "Optional"
            ],
            [
              "",
              "httpx"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "base_url.rstrip",
            "httpx.Client",
            "resources.account",
            "resources.api_keys",
            "resources.billing",
            "resources.domains",
            "resources.links",
            "resources.qr",
            "resources.stats",
            "resources.tags",
            "resources.workspace",
            "self._api_key",
            "self._http",
            "self._http.close",
            "self._owns_http",
            "self.account",
            "self.api",
            "self.api.get",
            "self.api_keys",
            "self.base_url",
            "self.billing",
            "self.close",
            "self.domains",
            "self.links",
            "self.qr",
            "self.stats",
            "self.tags",
            "self.workspace"
          ],
          "tgt": [
            "ApiClient",
            "base_url.rstrip",
            "build_resources",
            "httpx.Client",
            "self._http.close",
            "self.api.get",
            "self.close"
          ],
          "metrics": {
            "ast": {
              "op.lor": 1.0,
              "max_depth": 11.0,
              "bind_count": 15.0,
              "call_count": 7.0,
              "node_count": 586.0,
              "member_count": 28.0,
              "op_density.lor": 0.0,
              "identifier_count": 50.0,
              "member_depth_max": 3.0,
              "string_literal_count": 15.0,
              "identity_function_count": 1.0
            },
            "file": {
              "size": 3162.0,
              "entropy": 4.82,
              "size_bytes": 3162.0
            },
            "text": {
              "digit_ratio": 0.0,
              "space_count": 580.0,
              "total_lines": 92.0,
              "char_entropy": 4.82,
              "unique_chars": 68.0,
              "string_density": 0.16,
              "avg_line_length": 33.37,
              "high_byte_ratio": 0.05,
              "max_line_length": 177.0,
              "non_ascii_ratio": 0.05,
              "empty_line_ratio": 0.18,
              "last_line_length": 45.0,
              "long_token_count": 1.0,
              "whitespace_ratio": 0.21,
              "most_common_ratio": 0.08,
              "identifier_density": 1.47,
              "line_length_stddev": 28.82,
              "normalized_string_count": 1.56,
              "repeated_char_sequences": 2.0,
              "suspicious_string_ratio": 0.2,
              "most_common_char_is_null": 0.0,
              "max_inline_whitespace_run": 2.0,
              "most_common_char_codepoint": 101.0,
              "normalized_unique_identifiers": 7.66
            },
            "binds": {
              "count": 15.0
            },
            "calls": {
              "count": 7.0
            },
            "binary": {
              "overall_entropy": 4.82,
              "peak_region_bytes": 3162.0,
              "peak_region_entropy": 4.74
            },
            "source": {
              "class_count": 1.0,
              "function_count": 5.0
            },
            "imports": {
              "count": 19.0,
              "stdlib_count": 1.0,
              "stdlib_ratio": 0.05,
              "relative_ratio": 0.79,
              "unique_modules": 19.0,
              "relative_imports": 15.0,
              "third_party_count": 18.0,
              "third_party_ratio": 0.95
            },
            "members": {
              "count": 28.0
            },
            "strings": {
              "total": 15.0,
              "url_count": 1.0,
              "avg_length": 57.8,
              "max_length": 582.0,
              "path_count": 1.0,
              "avg_entropy": 2.69,
              "sql_strings": 1.0,
              "total_bytes": 867.0,
              "entropy_stddev": 1.22,
              "shell_command_strings": 2.0
            },
            "comments": {
              "chars": 453.0,
              "lines": 11.0,
              "total": 11.0,
              "to_code_ratio": 0.14
            },
            "functions": {
              "count": 6.0,
              "avg_params": 2.2,
              "max_params": 6.0,
              "length_stddev": 8.31,
              "avg_name_length": 7.2,
              "avg_length_lines": 6.4,
              "max_length_lines": 23.0,
              "min_length_lines": 2.0,
              "single_char_params": 1.0,
              "avg_param_name_length": 4.91,
              "density_per_100_lines": 5.43,
              "code_in_functions_ratio": 0.35
            },
            "identifiers": {
              "count": 50.0,
              "total": 135.0,
              "avg_length": 8.34,
              "max_length": 18.0,
              "min_length": 1.0,
              "avg_entropy": 2.48,
              "reuse_ratio": 0.37,
              "unique_count": 50.0,
              "length_stddev": 4.23,
              "single_char_count": 1.0,
              "single_char_ratio": 0.02,
              "all_lowercase_ratio": 0.7,
              "all_uppercase_ratio": 0.02,
              "double_underscore_count": 3.0,
              "underscore_prefix_count": 7.0
            }
          }
        },
        "id": 2,
        "mol": "H(Cm)",
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap/client.py",
        "pid": 0,
        "risk": 1,
        "sha": "67b09597e0cd05415b4b12b206077e27586ed211fa1194ac938bb6e0637bea77",
        "size": 3162,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/lib/httpx::httpx-client",
            "conf": 0.75,
            "crit": 3,
            "desc": "httpx.Client usage",
            "spans": [
              [
                1805,
                13
              ]
            ]
          },
          {
            "id": "objectives/credential-access/theft/keywords::token",
            "conf": 0.30000001192092896,
            "crit": 1,
            "desc": "Credential-access vocabulary word: token",
            "spans": [
              [
                393,
                5
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%FjbnKL]*l$HKQv}u=GB-.qnA+P\u0026dBzkVhav*DXzGE0HqBT1@i5SJKdiJkvAV^.ynG-7*xkPqnzy#n6o\u003e!S*z/M$sw/$FDw]zZ8x(tUCwntN2B0a[lBz9srwP?=$wI4Igz*9*QB0bKxaw^u9xM4=hvqYP#ph:VOax7W3B0b7awO.Y/wmYU2x\u003e7N/ayPvmBzbkdv{%g\u0026aAImswIb9bxK#67vix5\u003ezGG]cy-)tdA+YrbePUDrePt$Tx(+zkvru733t1E7A:-E1wN)tmBzbxfaz(4cB.\u003eRizeTPeB0bNrwPzu8B-7Y5vqYZ?wg!h@oLFxWq/l2.aA.:pB0a1@B.2icayPslx([zspF0@wazC[rB.bOo\u0026^^moBzbkdwnc9{z*2YjC{3Wown(E3",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "q::n3x(+zbz/ff3xlwlawftq[vqfR2Bs)[Aa%Ev3w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGuc(x(d*cA=-BCx(dz*w].*bay[]5vpKaZB8$]lazCXiz/P}xwmoN*v@bN{A%=J1z/3RsD2NFnxcp]9AbP=savf)\u003cefEq*y\u00260J?y?kdul${dMefE-cBzkVhvqDnTx(d*cA=-BqBAzFD3jpx=z/3QHwPz*fA=Svqze:AlBrBm\u003ezFJf*vq[IPBza9-A=k$Haw#=.A+fr9mriA!ATAcXkXaqBvpKaZB8}W#y*?yaavG{+v@DK4A^p5\u003ev%8T1zGE]DarR^Hx(!urwPx*OB98BfarR^HwmY{#v}x1QB-.qnA+P\u0026dBzkVhuUaa=AbPDdBugK=BAdZharR!Gz!\u0026{4uUaa=AbPDdBugK=BAdZharR!wCwznbB-IgSaAITB3lQDlayPzmxM4{9Dsp]fz/e][zE^Z8x(n2NawV@#x(v($y*g$5A:o!JawM\u0026)wEoL5arU/FwPzH5w]z3/zE^Z8x(n2NawV@#x(v($y*g$5A:o!JawM\u0026)wEoL5arUlkwm6y?B8#5lzEl%)wn(E3zGE]ZpJgz\u0026z/f01txs[bt{8oMph+2Y3jmb9wmoN*v@bN{A%=z[vrlGjl$HKQv}wbCz*bc4vrcDJ3lQDlay]5bx\u003e7ZYv@C)?iV@G=ATA{iarU/FwPzc/z!9AuaAITB3lQDlaA?spx\u003ez6?vruj4zEmKbx/WwTBAdZharR!rCYmwqwPIi)zAn[OzGDjdarR!vzGGDgC42hFazC.n3lQDlaA?spx\u003ez6?vruj4zEmKbx\u003cUv*ze:r5By^GQpJgz\u0026z/f01txs[bt{8oMph+2Y3jmb9wmoN*v@bN{A%=z[vrlGjl$HKQv}wRTyH}y8iTM#LarU95v}x.5uVZj4wO%KKB98BfarR^HwQ5fdA+fr0vrsKMx(n2nar@1KzFstrwPhM$xDRwcv@Dl}A%:3jarU=AyH}x\u003cBA}?piV@G=AV^H/b0]\u003cHA+fnn3lQDlaAz49A+fr9uVZj4wO%KKpJgz\u0026z/f01txs[bt{8oMph+2Y3lQDlaAI4hAaI6MpJgz\u0026z/f01txs[bt{8oMph+2Y3jmbEl}HrApGx[ZsZKJZlR6TbavG{NBx-*dAX5t3x(^^5C4CYtl#MNTzdNQbt{8oMDWMkd3s)ZWay/k0vrbZ=x(^^5C4CYtuT)IOxK@Ovat2=1ph+2YiTM#LarR\u003cLb1uG\u003eaARgoBAo5Ua%EvparR!ll}HrApGx[ZsZKJZlR6S#v@bZ+AWSvz3jprPw/$C]BAzEIdiHiaazt\u003esAcK05y?WD#Buf:KarR!EwPS6nzxJRmBz#ESlU{EFzGEpGx(dB1B-Y=3fFk4d3jmbJwO95%wPRA}uU0\u003e(v@DK4A^o6EB8#FnAYLs:BAe]PdL8YQBAzE.awV@#x(v($y*gN{Bz#ESlU{EFzGGebjS)HrzE\u003emteJ$pBx(^^5C4CYtl#MNTzdNQbiTM#LarUf5v}YB:auZ\u0026Ol}E",
            "ln": 352,
            "col": 27,
            "line": 8
          },
          {
            "b": "arR^HB-IpvjS[tXDUELxB.bOCA=Vtyx(CEFfdeh%fd}DWy?$XszF%-pfk\u003e/vzFrSkv@Dl%x\u003eINevruj4zxYAgarR^HarR!EwPF$Say/k4wO#PxxjVfkB-IpE3lQDlaz2!cwPh-lxA",
            "ln": 1679,
            "col": 5,
            "line": 70
          },
          {
            "b": "A^n^tvqfK?wi7\u0026WA+fqAB97\u0026jB-Q]1z!9Bca$i\u003cwarR!Cvr(WcvpQGzaAz4me]2DCzyu}varR^Hx\u003ewG9z/^avvr(WcvpR06wPPsAwmY{#v}x1QB-.qnA+P\u0026dBzkVhuUaa=AbPDdBrSdRz/M$rz/^avvr(WcvpR06wPPsABz\u003e@azEl%)wn(E3zGE6KiTM#LarR^HarUYkx(^\u0026doLFxWq/l2.l3mo.mriA!AWSb1nMd#LrZ/[?uRa0WpFBUVmn#Y1efDcjnKL]*wnc9{z*2YjC{3%rB8#5kxcqkaADL#owD",
            "ln": 2068,
            "col": 67,
            "line": 78
          },
          {
            "b": "BsmFsarR^HarR!vB8#FnAY[wID2dzcwg?IaBsntEB8#FnAW04Sx(!urwPxjJ3lQDlarR^Hay]5bx\u003e7ZYvrDW9z/PMrvruj4zEl%)wn(E3zGF3Xvr(WcvpSN^wmY{#v}x1QB-.qnA+P\u0026dBzkVhuUaa=AbPDdBrU0w3lQDlarR^HaARKqwO$\u003c^zE^Z8x(n2QAaa3dz^^fXb6m:swO$\u003c^zE^Z8x(n2pt}us9arR^HarR!wCwznbB-IgVAaa3dz^^fXb5hsqB6\u003c6gx^c?l3lQDlarR^HayPzmxM4{9Dsp]fz/e][zE^Z8x(n2QAaa3dz^^fexjVfkb4kRoxM4{9Dsp]fz/e][zE^Z8x(n2pdj+/GarR^HarR!HB7GxazF0/]wO#3$z!T9hj-B?Py\u0026r-)e[X:qc)A!PwPzH5w]z3/zE^Z8x(n2pdj+/GarR^HarR!rzE^9}wPI{bz/e][zE^Z8x(n2QAaa3dz^^fexjVfkb4UU5uVP!1B7]MguUaa=AbPDdBrSd+3lQDlasNTuarR!ll}HrApGx[ZsZKJZlR6TIx(!urwPz60jS[oNv*Tt3arUYoBAIRway]z23jmbJwO96aByxiiuU0.\u003ex\u003e7ZYw]8yfc\u003c?7tarSc+3lQDlazC[rB.bOOaAITBed9HxarUfgx\u003eqg7uUK4iaAITBed9HxarU-nz/xnGawV@#x(v($y*g$5A:o!JawM\u0026)wH[fharR!uBAzE.awV@#x(v($y*gN{Bz#ESlU{EFzGGebjS)HrzE\u003evadiHiaavG^:x\u003e7Zzy\u0026sI@ByxiiiTM#LarUieB7obhjS[uFByO#\u003ewnc9{z*2W",
            "ln": 2345,
            "col": 27,
            "line": 82
          },
          {
            "b": "wG\u003ez5jS[/Qz/xm{arR^Hv@b\u003c\u003czGE0:azt\u003esA3f7tayw/7Bz@SS3lQDlaARTHiTM#LarR^HarUYoB09Q*v@b\u003c\u003czGEHIz/Z1G3lQDlarR^HarR^Hay]hcv@A#gwP?=$wNw\u003e*BzbPkx)Kifx(v(@wO#3$z!T9hed9HxarR^HarR^HarUi6Byvswz!abA3lQDlarR^HarR^Hazts{wmY!5j:Ow.z/fVdzGEELD2NssiV]RPAbYScv{%E[z/djMeQ8z.eOn{wz7P)Jy?mG]z!9A\u0026b7h0HarR^HarR^HdgdguarUluv}xR3azt\u003esAcK0ar8=W.A=M8sayPslwJyevarR^HarR!Evqf^]awuG!yG2aVA6XR*xHM@Zz/NlIl}7cFlQ+uFrA8H@pdnb-pF%?)mn^2Vqx^UmB98BJwHP5Jw].*bay$)5arR!s",
            "ln": 3094,
            "col": 19,
            "line": 105
          },
          {
            "b": "l${dMtxs[befEk@D0IKQaAz4me]2DCzyu}varR^HA+funA=90/wP?=$wKZGOCt\u0026P(A=-YparR^HarR^HwmY{#v}x1Sz!9AxAaa3dz^^fXb4Lndx\u003e7ZYv@C)?b3=-barR^HarR^HB-RbmuT[1+wJ+0vD2dzcwlQm2B7Gx0v@C)?b3=-barR^HarR^HC4CYdw[+:-BzkVhuV*y6j-B?Py\u0026r-)toXl4A+Pc1v{%E[z/e{8A+M.6ed9HxarR^HarU\u0026sA+Pc1v{%E[z/e{8A+O(\u003cz/6DfwPRGDAaa3dz^^fexjVfkb6EKrx\u003ez6?vruj4zEmKbx\u003cUv*ze:r5By=TBed9HxarR^HarUluAa%u7B6\u0026T0j.X!Qc#-Quy\u0026r-)toWT6Aa%u7B6\u0026T0b3=SG3lQDlarR^HazC.nwPz%5y=#GIBsq9pD2dzcwg?IaBsntEzGGDg",
            "ln": 3634,
            "col": 14,
            "line": 120
          },
          {
            "b": "BAzEAz/M$cxMOunc[bGCarR!GA^oXMarR^HarR^Hv%8*0x(n37A=$(cauZ\u0026YzGGDgC42g]arR^HarR^HCw7YbwGT@)B.9PvarR^HarR^HarR^HB8kA0A42jsA:JJ#By/GovqEw1arR^HarR^HarR^HA+fqmjS[lJx\u003eqg7e]U-IBsmFsarR^HarR^HarR^HarR!qx(^^5e{82EwO$\u003c^zE^Z8x(n2z3lQDlarR^HarR^HarR^Hay[]5vlF@AarR^HarR^HarR^HarR^HarR^Hb4\u003e}8zGGlcD2NssiV]R?A=9{LwPRJBAa9=}zf4:RvrDW9i+JFwzGEELD2NsQwmY{#v}x1Sz!9A6ed9HxarR^HarR^HarR^HarR^HarR\u003eswP?=$wNw}=wmV@Cay]5bx\u003e7ZYv@C)?ed9HxarR^HarR^HarR^HarR^HarR\u003ery?WD#Bye-)b03\u0026Ry?WD#Bye-)ed9HxarR^HarR^HarR^HarV7-3lQDlarR^HarR^HarR^Hazts{wmY!5j:Ow.z/fVdzGEELD2NssiV]RPAbYScv{%E[",
            "ln": 4344,
            "col": 15,
            "line": 142
          },
          {
            "b": "zEWlaAaa3dz^^fcay]g@Bswtzy\u0026:egb6v^szF%-puUam#z/N3earR^HarR^HarR^Hx\u003ewG0A=M8sau.\u003egb4kRoxM4{9Dsp]fz/e{3wO#3)zF7dO3lQDlarR^HarR^HarR^HazCBgz/e{3wO#3)zF80qarR^HarR^HarR^HarR^HarR^Hz/e{3wO#3)zF7vD3lQDlarR^HarR^HarR^Hay/tcBzkSnwEoL5arR^HarR^HarUxgaz2Olz/M%-jS\u003e}\u0026y\u0026sJ8wn=Wfb035NarR^HarR^HarR^HarR!pB-H\u00266zGGDgC42hfd)k1j3lQDlarR^HarR^HarR^Hay/tcBzkSnwEoL5arR^HarR^HarUxgaz2Olz/M%-jS\u003e}WCYmwqwN]d\u0026z!\u0026{4b035NarR^HarR^HarR^HarR!Evqf^]awuG!yG2aVA6XR*xHM@Zz/NlIl}7cFlQ+uHpEESUmoAwTqBJ$$",
            "ln": 5024,
            "col": 69,
            "line": 159
          },
          {
            "b": "D2dzcwg?IaBsntAA=M8suU0.?v@=p5BzkVha$K\u0026XBz\u003e@azxJ$hADL\u0026lBrCg7x(4u\u003ea$jTGw/$/ex(n0lvqYN^c#-Quy\u0026r-)efFFqv@%dxwO=B0ar\u003e]CyH}xaA+flkwD",
            "ln": 5589,
            "col": 22,
            "line": 171
          },
          {
            "b": "wP?=$wMiO-wO#MI3lQDlay]hcv@AFMazbhbv}YjWx(^^5C4CYtc#0:zB.bOAazt\u003esA6m(RBz@VoarR^HvSb!5auZ\u0026]3lQDlarR^Har\u003eDsvqZf]BA}?pb03?\u003cA+e\u003c6wPIJ(Bz\u003e@azxZRsarR^HarR^Hb64mbA+fr9uVZj4wO@XMaAz49A+fr9uVZj4wO%4aarR^HarR^Hb4CC6wO#P%x\u003eezGay/k4wO#P%x\u003ee+4arR^HEf}8tarUxgaAI4hAaI6qarR^HarR^HvSb!5toXb#z/xnit{8oMB7occwEoL5arUfgx\u003eqg7auZ\u0026XBAzEAz/M$cxMOunc[bGCarR!GA^oXMarR^HarR^HA+fqmjS[lJx\u003eqg7e]U-IBsmFsarR^HarR^HarR!qx(^^5e{82EwO$\u003c^zE^Z8x(n2z3lQDlarR^HarR^Hay[]5vlF7rwo/ZkarR^HarR^HarR^HxK$Q.wPz\u0026PDM(%rzGGDcBs?PWAaHjOar\u003elkAbok#vruj4zzck^CxXl.w]zZbeP(8IwO#0@wmYo}EjLZFarR^HarR^Q3lQDlaz2!cwPh-lxMOunCRhJ^r8u27A=k$vvriM5iTM#LarR^HarUYkx(^\u0026dqE%DXwPIJNA=M8sc)zzPr98\u003c[oj7a=qCQgmec",
            "ln": 6004,
            "col": 7,
            "line": 185
          },
          {
            "b": "zxZROgD3{vdjCPDarR!EwPS6nzxItUC4\u003eC$rbVL-zGvikarR^HarR^HvpJ!UB8$Ygz!\u0026{4j-B?Py\u0026r-)toWG=v}x.5uVZj4wO@X$ed9HxarR^HarUluAa%u7B6\u0026u$j.X!Qd0ffuwIe7szdLaAdiHb-wQ5fdA+fr0x(kEearR^HarR^HBz\u003e@azEmHhAaIgKvr(WcvpR06wPPsABz\u003e@azEmHhAaHjAar\u003cc-vrb}1a$k5IarR^HarR^HA+e\u003c6wPIJ(Bz\u003e@azAR@ED2dzcwg?IaBsntNwOb%]B7!{5z!\u0026{4a$k5IarR^HarR^HB7occwJ+0vD2dzcwg?IaBsntOv@Dr$a$k5IarR^Hdgcy?wmYu}uVPT/wNxg[z/c$zwPG)PxMOunCRh)9B8V5nB7D^yeJ$pyzH1nIarR^HBAhT/3lQDlarR^HaAz4nB-IvxA+fqAyiarhc[bGCarR!rCW\u003er7BrB1%v}xR3x(v(I3lQDlarR^HaAz4nB-IvxDWMk",
            "ln": 7233,
            "col": 44,
            "line": 218
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "_DISCOVERY_CACHE.clear"
            ],
            [
              "",
              "httpx.Client"
            ],
            [
              "",
              "_DISCOVERY_CACHE.get"
            ],
            [
              "",
              "_http"
            ],
            [
              "",
              "issuer.rstrip"
            ],
            [
              "",
              "client.get"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "client.close"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "res.json"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "DiscoveryDocument"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "fetch_discovery"
            ],
            [
              "",
              "_http"
            ],
            [
              "",
              "client.post"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "client.close"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "res.json"
            ],
            [
              "",
              "DeviceFlowStart"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "int"
            ],
            [
              "",
              "int"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "fetch_discovery"
            ],
            [
              "",
              "_http"
            ],
            [
              "",
              "sleep"
            ],
            [
              "",
              "client.post"
            ],
            [
              "",
              "_safe_json"
            ],
            [
              "",
              "_tokens_from_json"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "on_pending"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "error.upper"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "client.close"
            ],
            [
              "",
              "fetch_discovery"
            ],
            [
              "",
              "_http"
            ],
            [
              "",
              "client.post"
            ],
            [
              "",
              "RefreshError"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "client.close"
            ],
            [
              "",
              "_safe_json"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "RefreshError"
            ],
            [
              "",
              "str.upper"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "_tokens_from_json"
            ],
            [
              "",
              "int"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "DeviceTokens"
            ],
            [
              "",
              "int"
            ],
            [
              "",
              "time.time"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "payload.get"
            ],
            [
              "",
              "res.json"
            ],
            [
              "",
              ".errors"
            ],
            [
              ".errors",
              ".errors.LinkSnapAuthError"
            ],
            [
              ".errors",
              ".errors.RefreshError"
            ],
            [
              "typing",
              "Any"
            ],
            [
              "typing",
              "Callable"
            ],
            [
              "typing",
              "Dict"
            ],
            [
              "typing",
              "Optional"
            ],
            [
              "dataclasses",
              "dataclass"
            ],
            [
              "",
              "dataclasses"
            ],
            [
              "",
              "httpx"
            ],
            [
              "",
              "time"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "_DISCOVERY_CACHE.clear",
            "_DISCOVERY_CACHE.get",
            "body.scope",
            "client.close",
            "client.get",
            "client.post",
            "disco.device_authorization_endpoint",
            "disco.token_endpoint",
            "error.upper",
            "httpx.Client",
            "httpx.HTTPError",
            "httpx.Response",
            "issuer.rstrip",
            "payload.access_token",
            "payload.device_authorization_endpoint",
            "payload.device_code",
            "payload.expires_in",
            "payload.get",
            "payload.jwks_uri",
            "payload.token_endpoint",
            "payload.user_code",
            "payload.verification_uri",
            "res.json",
            "res.status_code",
            "res.text",
            "str.upper",
            "time.sleep",
            "time.time",
            "tokens.refresh_token"
          ],
          "tgt": [
            "DeviceFlowStart",
            "DeviceTokens",
            "DiscoveryDocument",
            "LinkSnapAuthError",
            "RefreshError",
            "_DISCOVERY_CACHE.clear",
            "_DISCOVERY_CACHE.get",
            "_http",
            "_safe_json",
            "_tokens_from_json",
            "client.close",
            "client.get",
            "client.post",
            "error.upper",
            "fetch_discovery",
            "httpx.Client",
            "int",
            "isinstance",
            "issuer.rstrip",
            "on_pending",
            "payload.get",
            "res.json",
            "sleep",
            "str",
            "str.upper",
            "time.time"
          ],
          "funcs": [
            [
              "clear_discovery_cache",
              1305
            ],
            [
              "_http",
              1394
            ],
            [
              "fetch_discovery",
              1463
            ],
            [
              "start_device_flow",
              2816
            ],
            [
              "poll_device_token",
              4009
            ],
            [
              "refresh_access_token",
              5830
            ],
            [
              "_tokens_from_json",
              7126
            ],
            [
              "_safe_json",
              7517
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 2,
              "op.lor": 5,
              "max_depth": 15,
              "call_count": 73,
              "node_count": 2109,
              "member_count": 29,
              "max_array_len": 1,
              "op_density.add": 0,
              "op_density.lor": 0,
              "max_concat_chain": 2,
              "member_depth_max": 2,
              "infinite_loop_count": 1
            },
            "file": {
              "size": 7636,
              "entropy": 4.72
            },
            "text": {
              "lines": 232,
              "top_char": 101,
              "max_ws_run": 2,
              "digit_ratio": 0.01,
              "space_count": 1673,
              "char_entropy": 4.72,
              "unique_chars": 85,
              "top_char_null": 0,
              "string_density": 0.31,
              "top_char_ratio": 0.07,
              "avg_line_length": 31.91,
              "max_line_length": 132,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.13,
              "last_line_length": 17,
              "whitespace_ratio": 0.25,
              "identifier_density": 1.78,
              "line_length_stddev": 25.53,
              "normalized_string_count": 4.73,
              "repeated_char_sequences": 37,
              "suspicious_string_ratio": 0.01,
              "suspicious_identifier_ratio": 0.01,
              "normalized_unique_identifiers": 10.44
            },
            "binds": {
              "count": 39
            },
            "binary": {
              "peak_region_bytes": 5588,
              "peak_region_entropy": 4.94
            },
            "source": {
              "class_count": 3,
              "function_count": 8
            },
            "imports": {
              "count": 12,
              "relative": 3,
              "stdlib_count": 3,
              "stdlib_ratio": 0.25,
              "relative_ratio": 0.25,
              "third_party_count": 9,
              "third_party_ratio": 0.75
            },
            "strings": {
              "bytes": 1585,
              "count": 72,
              "shell": 1,
              "avg_length": 22.01,
              "max_length": 380,
              "avg_entropy": 3.19,
              "email_count": 1,
              "entropy_stddev": 0.64
            },
            "comments": {
              "chars": 58,
              "count": 2,
              "lines": 2,
              "to_code_ratio": 0.01
            },
            "functions": {
              "count": 11,
              "density": 3.45,
              "avg_params": 3,
              "code_ratio": 0.71,
              "max_params": 8,
              "length_stddev": 16.39,
              "avg_name_length": 15.25,
              "no_params_count": 2,
              "avg_length_lines": 20.5,
              "max_length_lines": 45,
              "min_length_lines": 2,
              "many_params_count": 1,
              "high_entropy_names": 2,
              "single_char_params": 4,
              "avg_param_name_length": 5.75
            },
            "identifiers": {
              "count": 412,
              "unique": 82,
              "avg_length": 9.15,
              "max_length": 29,
              "min_length": 1,
              "avg_entropy": 2.55,
              "reuse_ratio": 0.2,
              "length_stddev": 5.74,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.01,
              "high_entropy_count": 8,
              "high_entropy_ratio": 0.1,
              "all_lowercase_ratio": 0.83,
              "all_uppercase_ratio": 0.01,
              "underscore_prefix_count": 4
            }
          }
        },
        "id": 3,
        "mol": "K(Li)O(Ca)H₃(Cm₉DbOs)Md(In)",
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap/device_flow.py",
        "pid": 0,
        "risk": 6,
        "sha": "4406819093e98a1172e5192aea1915db9757065b68670dc196e4356022b9a38f",
        "size": 7636,
        "traits": [
          {
            "id": "metadata/import/python/relative/1/errors::relative/1/errors",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .errors",
            "spans": [
              [
                535,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/relative/1/errors/linksnapautherror::linksnapautherror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .errors.LinkSnapAuthError from .errors",
            "spans": [
              [
                550,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/relative/1/errors/refresherror::refresherror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .errors.RefreshError from .errors",
            "spans": [
              [
                569,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/typing/any::any",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Any from typing",
            "spans": [
              [
                485,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/typing/callable::callable",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Callable from typing",
            "spans": [
              [
                490,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/typing/dict::dict",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Dict from typing",
            "spans": [
              [
                500,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/typing/optional::optional",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Optional from typing",
            "spans": [
              [
                506,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/dataclasses/dataclass::dataclass",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports dataclass from dataclasses",
            "spans": [
              [
                456,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/dataclasses::dataclasses",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports dataclasses",
            "spans": [
              [
                437,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/httpx::httpx",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports httpx",
            "spans": [
              [
                523,
                5
              ]
            ]
          },
          {
            "id": "metadata/import/python/time::time",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports time",
            "spans": [
              [
                427,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/typing::typing",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports typing",
            "spans": [
              [
                471,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                152,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                120,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                46,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                216,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/browser-automation::authentication-token-name-literal",
            "conf": 0.9,
            "crit": 3,
            "desc": "Authentication token name literal",
            "spans": [
              [
                7299,
                12
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/client/httpx::httpx-client",
            "conf": 0.75,
            "crit": 3,
            "desc": "httpx.Client usage",
            "spans": [
              [
                1434,
                12
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::authorization-pending-status",
            "conf": 0.96,
            "crit": 3,
            "desc": "OAuth device authorization pending status",
            "spans": [
              [
                5088,
                23
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-response-field",
            "conf": 0.93,
            "crit": 3,
            "desc": "OAuth device code response field",
            "spans": [
              [
                897,
                12
              ],
              [
                918,
                10
              ],
              [
                3698,
                12
              ],
              [
                3742,
                10
              ],
              [
                4646,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-verification-uri-field",
            "conf": 0.93,
            "crit": 3,
            "desc": "OAuth device verification URI field",
            "spans": [
              [
                937,
                17
              ],
              [
                1001,
                26
              ],
              [
                3782,
                17
              ],
              [
                3836,
                26
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::pending-status-field",
            "conf": 0.93,
            "crit": 1,
            "desc": "Pending status field",
            "spans": [
              [
                5217,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/idp::oidc-provider-authorization-endpoint-field",
            "conf": 0.96,
            "crit": 3,
            "desc": "Declares OIDC provider authorization endpoint",
            "spans": [
              [
                647,
                23
              ],
              [
                2409,
                23
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/idp::oidc-provider-jwks-uri-field",
            "conf": 0.96,
            "crit": 3,
            "desc": "Declares OIDC provider JWKS URI",
            "spans": [
              [
                703,
                9
              ],
              [
                2532,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::oauth-client-id-field",
            "conf": 0.65,
            "crit": 3,
            "desc": "OAuth client_id field",
            "spans": [
              [
                2867,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::oauth-device-grant-type",
            "conf": 0.9,
            "crit": 3,
            "desc": "OAuth device_code grant type",
            "spans": [
              [
                4601,
                22
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::oauth-refresh-grant-type",
            "conf": 0.9,
            "crit": 3,
            "desc": "OAuth refresh_token grant type",
            "spans": [
              [
                6086,
                27
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::refresh-token-snake-assign",
            "conf": 0.9,
            "crit": 3,
            "desc": "Snake-case OAuth refresh_token field assign",
            "spans": [
              [
                1181,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/body::http-post-with-body-argument",
            "conf": 0.82,
            "crit": 3,
            "desc": "HTTP POST supplies a body argument",
            "spans": [
              [
                3158,
                103
              ],
              [
                4470,
                103
              ],
              [
                6290,
                103
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/body::oauth-token-field-in-body",
            "conf": 0.92,
            "crit": 3,
            "desc": "Builds body containing OAuth token fields",
            "spans": [
              [
                6068,
                86
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/client::py-post-generic",
            "conf": 0.8,
            "crit": 3,
            "desc": "Python post method call",
            "spans": [
              [
                3158,
                11
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/token-auth::access-token-field-source",
            "conf": 0.92,
            "crit": 3,
            "desc": "Access token field in source",
            "spans": [
              [
                7297,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/token-auth::refresh-token-field-source",
            "conf": 0.92,
            "crit": 3,
            "desc": "Refresh token field in source",
            "spans": [
              [
                6124,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/config/syntax::service-endpoint-key",
            "conf": 0.9,
            "crit": 3,
            "desc": "Service endpoint configuration key",
            "spans": [
              [
                2148,
                29
              ],
              [
                2734,
                20
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/loop::python-while-true",
            "conf": 1.0,
            "crit": 2,
            "desc": "Python infinite while True loop",
            "spans": [
              [
                4408,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/env/secret-name::refresh-token-env-name",
            "conf": 0.94,
            "crit": 3,
            "desc": "OAuth refresh-token environment variable",
            "spans": [
              [
                6100,
                13
              ]
            ]
          },
          {
            "id": "micro-behaviors/time/sleep/interval::python-sleep-call",
            "conf": 0.65,
            "crit": 2,
            "desc": "Pauses execution with a Python sleep call",
            "spans": [
              [
                4432,
                0
              ]
            ]
          },
          {
            "id": "objectives/credential-access/cloud/token/files::python-refresh-token-json-get",
            "atk": "T1528",
            "conf": 0.94,
            "crit": 3,
            "desc": "Python reads refresh_token JSON key",
            "spans": [
              [
                7450,
                21
              ]
            ]
          },
          {
            "id": "well-known/lib/cloud/api-codegen::cloud-sdk-codegen-marker-google",
            "conf": 0.95,
            "crit": 3,
            "desc": "Google API client / apitools codegen marker",
            "spans": [
              [
                1252,
                15
              ],
              [
                1315,
                15
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::token-object-field",
            "conf": 0.93,
            "crit": 3,
            "desc": "OAuth token object member",
            "spans": [
              [
                6124,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/post::url-encoded-content-type",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.7,
            "crit": 3,
            "desc": "Uses URL-encoded HTTP form content",
            "spans": [
              [
                3281,
                33
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-flow-marker",
            "conf": 0.93,
            "crit": 1,
            "desc": "Device authorization flow marker",
            "uses": [
              20
            ],
            "spans": [
              [
                1001,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-response-fields",
            "conf": 0.93,
            "crit": 1,
            "desc": "OAuth device code response field forms",
            "uses": [
              19
            ],
            "spans": [
              [
                3742,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/client::httpx-client-post-request",
            "conf": 0.9,
            "crit": 3,
            "desc": "httpx Client POST request",
            "uses": [
              17,
              30
            ],
            "spans": [
              [
                1434,
                12
              ],
              [
                3158,
                11
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/token-auth::access-refresh-token-pair",
            "conf": 0.94,
            "crit": 3,
            "desc": "Access and refresh token pair",
            "uses": [
              31,
              32
            ],
            "spans": [
              [
                6124,
                16
              ],
              [
                7297,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-poll-identifier",
            "conf": 0.93,
            "crit": 3,
            "desc": "Device authorization polling identifier",
            "uses": [
              41,
              42
            ],
            "spans": [
              [
                897,
                12
              ],
              [
                918,
                10
              ],
              [
                937,
                17
              ],
              [
                1001,
                26
              ],
              [
                3698,
                12
              ],
              [
                3742,
                10
              ],
              [
                3782,
                17
              ],
              [
                3836,
                26
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-poll-status",
            "conf": 0.93,
            "crit": 3,
            "desc": "Device authorization pending or completion status",
            "uses": [
              18,
              21,
              41
            ],
            "spans": [
              [
                937,
                17
              ],
              [
                1001,
                26
              ],
              [
                3782,
                17
              ],
              [
                3836,
                26
              ],
              [
                5088,
                23
              ],
              [
                5217,
                19
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-user-handoff",
            "conf": 0.95,
            "crit": 3,
            "desc": "Presents a device code with a provider verification URI",
            "uses": [
              20,
              25,
              42
            ],
            "spans": [
              [
                897,
                12
              ],
              [
                918,
                10
              ],
              [
                937,
                17
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::device-code-polling-loop",
            "conf": 0.93,
            "crit": 3,
            "desc": "Polls device authorization state",
            "uses": [
              34,
              36,
              45,
              46
            ],
            "spans": [
              [
                3698,
                12
              ],
              [
                3742,
                10
              ],
              [
                3782,
                17
              ],
              [
                3836,
                26
              ],
              [
                4080,
                12
              ],
              [
                4408,
                11
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%FjgD2Nt9az2Olz/M$gy*?yawPF#az/M$xxK@qWx(mY+zEEGbq::nh",
            "n": [
              {
                "c": 2,
                "d": "Python file extension",
                "i": "metadata/file/extension/identity::py",
                "o": 0,
                "z": 9,
                "cf": 1.0
              }
            ],
            "ln": 1,
            "addr": 0
          },
          {
            "b": "",
            "ln": 2,
            "addr": 45
          },
          {
            "b": "o\u003e!S*z/P[wBzbkdph:VOax7W3cVZzroLFxWq/l2.mriA!A:Q1rCw7Y2xDRtbeOffCz/P@vayEDDz/PPbz.DfxyHwJh",
            "ln": 3,
            "addr": 46
          },
          {
            "b": "a%Fi",
            "ln": 6,
            "addr": 265
          },
          {
            "b": "",
            "ln": 7,
            "addr": 269
          },
          {
            "b": "w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGt",
            "n": [
              {
                "c": 1,
                "d": "Python import-from statement",
                "i": "micro-behaviors/data/source/language::python-import-from-statement",
                "o": 270,
                "z": 34,
                "cf": 0.800000011920929
              }
            ],
            "ln": 8,
            "addr": 270
          },
          {
            "b": "",
            "ln": 9,
            "addr": 305
          },
          {
            "b": "w].*baAR)Fx(mMax(d*cA=-A\u0026zH0=Ql${dMefE-cBzkVhvqC",
            "ln": 10,
            "addr": 306
          },
          {
            "b": "",
            "ln": 24,
            "addr": 684
          },
          {
            "b": "v@bN{B0av(w].E7xHM@Zz/Nl{CW\u003er7BzkVhdlm",
            "ln": 25,
            "addr": 685
          },
          {
            "b": "arR^Ha%Fjevqf^]wfu8fwO@ShwOb%]B7/o9xcpS2awUM%lM//Ev}x.5aARKqwO@S5vqfL0e*qF-",
            "n": [
              {
                "c": 1,
                "d": "password/token/api_key field keyword",
                "i": "objectives/credential-access/theft/keywords::credential-field",
                "o": 761,
                "z": 5,
                "cf": 0.8399999737739563
              }
            ],
            "ln": 26,
            "addr": 716
          },
          {
            "b": "",
            "ln": 27,
            "addr": 777
          },
          {
            "b": "arR^HwmYu}uTEI+x()Y?d05%ow?k6mz!9AuaAITBefF!vB8$=5wJy@PBAe/MeJ$pLz/fbE",
            "ln": 28,
            "addr": 778
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "Any"
            ],
            [
              "",
              "Dict"
            ],
            [
              "",
              "Optional"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "self.code",
            "self.details",
            "self.message",
            "self.request_id",
            "self.status",
            "super().__init__"
          ],
          "tgt": [
            "super",
            "super().__init__"
          ],
          "metrics": {
            "ast": {
              "max_depth": 13.0,
              "bind_count": 11.0,
              "call_count": 8.0,
              "node_count": 476.0,
              "member_count": 6.0,
              "identifier_count": 22.0,
              "member_depth_max": 2.0,
              "string_literal_count": 8.0,
              "string_return_function_count": 3.0,
              "string_return_function_ratio": 0.43
            },
            "file": {
              "size": 2085.0,
              "entropy": 4.75,
              "size_bytes": 2085.0
            },
            "text": {
              "digit_ratio": 0.0,
              "space_count": 417.0,
              "total_lines": 73.0,
              "char_entropy": 4.75,
              "unique_chars": 68.0,
              "string_density": 0.11,
              "avg_line_length": 27.56,
              "high_byte_ratio": 0.0,
              "max_line_length": 86.0,
              "non_ascii_ratio": 0.0,
              "empty_line_ratio": 0.29,
              "last_line_length": 24.0,
              "whitespace_ratio": 0.24,
              "most_common_ratio": 0.08,
              "identifier_density": 1.53,
              "line_length_stddev": 24.19,
              "normalized_string_count": 0.94,
              "suspicious_string_ratio": 0.25,
              "most_common_char_is_null": 0.0,
              "max_inline_whitespace_run": 1.0,
              "most_common_char_codepoint": 101.0,
              "normalized_unique_identifiers": 3.55
            },
            "binds": {
              "count": 11.0
            },
            "calls": {
              "count": 8.0
            },
            "binary": {
              "overall_entropy": 4.75,
              "peak_region_bytes": 2048.0,
              "peak_region_entropy": 4.82
            },
            "source": {
              "class_count": 4.0,
              "function_count": 2.0
            },
            "imports": {
              "count": 4.0,
              "stdlib_count": 1.0,
              "stdlib_ratio": 0.25,
              "unique_modules": 4.0,
              "third_party_count": 3.0,
              "third_party_ratio": 0.75
            },
            "members": {
              "count": 6.0
            },
            "strings": {
              "total": 8.0,
              "avg_length": 98.63,
              "max_length": 266.0,
              "avg_entropy": 4.48,
              "email_count": 2.0,
              "total_bytes": 789.0,
              "entropy_stddev": 0.25,
              "shell_command_strings": 2.0
            },
            "comments": {
              "chars": 61.0,
              "lines": 1.0,
              "total": 1.0,
              "to_code_ratio": 0.01
            },
            "functions": {
              "count": 6.0,
              "avg_params": 2.57,
              "max_params": 7.0,
              "length_stddev": 4.34,
              "avg_name_length": 8.0,
              "avg_length_lines": 4.57,
              "max_length_lines": 15.0,
              "min_length_lines": 2.0,
              "single_char_params": 1.0,
              "avg_param_name_length": 5.11,
              "density_per_100_lines": 9.59,
              "code_in_functions_ratio": 0.44
            },
            "identifiers": {
              "count": 22.0,
              "total": 112.0,
              "avg_length": 7.64,
              "max_length": 17.0,
              "min_length": 3.0,
              "avg_entropy": 2.39,
              "reuse_ratio": 0.2,
              "unique_count": 22.0,
              "length_stddev": 3.64,
              "high_entropy_count": 1.0,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.59,
              "double_underscore_count": 2.0,
              "underscore_prefix_count": 2.0
            }
          }
        },
        "id": 4,
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap/errors.py",
        "pid": 0,
        "risk": 1,
        "sha": "bd80c4af160b290b27212e9255ba35f0c14b09679b18b7a296e67d833ff343d8",
        "size": 2085,
        "traits": [
          {
            "id": "metadata/file/extension/identity::py",
            "conf": 1.0,
            "crit": 2,
            "desc": "Python file extension",
            "spans": [
              [
                0,
                9
              ]
            ]
          },
          {
            "id": "metadata/file/extension/identity::python-artifact-extension",
            "conf": 1.0,
            "crit": 1,
            "desc": "Python artifact file extension (py/pyi/pyc)",
            "spans": [
              [
                0,
                9
              ]
            ]
          },
          {
            "id": "metadata/file/metrics::low-overall-entropy-source",
            "conf": 0.8999999761581421,
            "crit": 2,
            "desc": "Script overall entropy stays low",
            "spans": [
              [
                0,
                29
              ]
            ]
          },
          {
            "id": "objectives/credential-access/theft/keywords::token",
            "conf": 0.30000001192092896,
            "crit": 1,
            "desc": "Credential-access vocabulary word: token",
            "spans": [
              [
                761,
                5
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%FjgD2Nt9av]Ehp-%m:x\u003eqg7azbLjawuG!yG2aVA4R",
            "n": [
              {
                "c": 2,
                "d": "Python file extension",
                "i": "metadata/file/extension/identity::py",
                "o": 0,
                "z": 14,
                "cf": 1.0
              }
            ],
            "ln": 1,
            "addr": 0
          },
          {
            "b": "",
            "ln": 2,
            "addr": 35
          },
          {
            "b": "ls\u003cOCwPw]4B-.pFaAhvtvpKy[C4z!pwOb%]B7=WAEL\u003e$RzxJz1w]zZ3az2!px(XFFefF$AvpKy[C4z!qx(mN1wD",
            "ln": 3,
            "addr": 36
          },
          {
            "b": "a%Fi",
            "ln": 9,
            "addr": 351
          },
          {
            "b": "",
            "ln": 10,
            "addr": 355
          },
          {
            "b": "w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGt",
            "n": [
              {
                "c": 1,
                "d": "Python import-from statement",
                "i": "micro-behaviors/data/source/language::python-import-from-statement",
                "o": 356,
                "z": 34,
                "cf": 0.800000011920929
              }
            ],
            "ln": 11,
            "addr": 356
          },
          {
            "b": "",
            "ln": 12,
            "addr": 391
          },
          {
            "b": "w].*baAR)Fx(mMax(d*cA=-A\u0026zH0=Ql${dMefEJawPzj3z/NxKpJgz\u0026z/f01",
            "ln": 13,
            "addr": 392
          },
          {
            "b": "arR^HarR^HB7Gf1e[emgwNxO2y-\u003e\u003e-vQTs?uV*y9e](2PA+PFva$\u003eb?",
            "ln": 34,
            "addr": 939
          },
          {
            "b": "arR^HarR^HB7Gf1e]$PBB7]MgauZ\u0026*wPI{bz/b",
            "ln": 35,
            "addr": 984
          },
          {
            "b": "arR^HarR^HB7Gf1e)\u0026plBz@u=azt\u003esA3f7tazt\u003esAcK05y?WD#BsqlBzdNTdBuIuje?!Z",
            "n": [
              {
                "c": 3,
                "d": "httpx.Client usage",
                "i": "micro-behaviors/communications/http/lib/httpx::httpx-client",
                "o": 1044,
                "z": 13,
                "cf": 0.75
              }
            ],
            "ln": 36,
            "addr": 1015
          },
          {
            "b": "arR^HarR^HB7Gf1e)\u0026KvzGxe#BAzEAjS[AWBz@vpB0aj@zE\u0026",
            "ln": 37,
            "addr": 1071
          },
          {
            "b": "arR^HarR^HB7Gf1e]\u003eJnA+fr9uT!d\u0026w[u0\u0026B7F\u00267jS[=Rw].E7xKtj\u003ew[CQ{uVP^*",
            "ln": 38,
            "addr": 1110
          },
          {
            "b": "arR^HboOM\u0026eIe8:BZ/f3v\u003c2S1BzbP6B094^eIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeD",
            "ln": 53,
            "addr": 1520
          },
          {
            "b": "",
            "ln": 54,
            "addr": 1598
          },
          {
            "b": "arR^HwmYu}xjVfkB7Gf1efF[uBz9YTB98BNasX]+ADL\u0026kC@^6zAcb/jzEEu=l${dMtxs[befEk@D0KX#jS)HrzE\u003evwxK$Q.wPz\u0026MawV@#x(v($y*fqwv@${@BAe]PB98Cdt{8oMph+2YefFwzBzb36z!\u0026{4iV}jqBzkVhvqGd?BAgUfjS)HrzE\u003emteJ$pyzH1n",
            "n": [
              {
                "c": 1,
                "d": "HTTP client fetch capability",
                "i": "objectives/command-and-control/dropper/delivery/multistage::pastebin-fetch-capability",
                "o": 1670,
                "z": 9,
                "cf": 1.0
              }
            ],
            "ln": 55,
            "addr": 1599
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%huVGZ$B.bSoc)zeIr3A\u003eoAa9\u003c4efEYazE\u003evwADL\u0026kC%cd\u0026wPA5Eazts{wmY!5j.OznwmY!5efFwzBzb36z!\u0026{4jZ\u0026FPxKt\u003e1yH}xj",
            "ln": 56,
            "addr": 1755
          },
          {
            "b": "",
            "ln": 57,
            "addr": 1856
          },
          {
            "b": "arR^HwmYu}AbP/td05%ow?k6zvrufzaAITBefFzuwo*iUl2H@\u003cjS)HrzE\u003evwdL8YZB.bPsiV}jqBzkVhvqGdox\u003e8l?B98BNavf)\u003cu0ONoawM\u0026)wH[%qwNPaXA=Tn:pJgz\u0026z/f01tsrgnBx-*dAX5tOBAgU)auZ\u0026xz/fbqayPzmxKt\u003e1yH}xAawV@#x(v($y*g$5A:o!JawM\u0026)wHO-Nj%ideC@+",
            "ln": 58,
            "addr": 1857
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%huVGZ$B.bSoc)zF-q=B}(aAg+hxE\u003eonz!abAaAqKnA^o//B.bPsefFRqvpS}\u0026B3jhFvpS}\u0026B1wCxB-.q7Bz\u003e@azARAJBzb36z!\u0026{4df",
            "n": [
              {
                "c": 3,
                "d": "HTTP POST request method markers",
                "i": "micro-behaviors/communications/http/post::post-method-detection",
                "o": 2061,
                "z": 6,
                "cf": 0.75
              }
            ],
            "ln": 59,
            "addr": 2032
          },
          {
            "b": "",
            "ln": 60,
            "addr": 2134
          },
          {
            "b": "arR^HwmYu}Aa9\u0026#xEE}ky?tjvAa9\u003c4iV@G=AX5txz!abOavf)\u003cauZ\u0026xz/fbqasX]+ADL\u0026kC@^6zAcb/jzEEu=l${dMtxs[befEk@D0KX#jS)HrzE\u003evwxK$Q.wPz\u0026MawV@#x(v($y*fqwv@${@BAe]PB98Cdt{8oMph+2YefFwzBzb36z!\u0026{4iV}jqBzkVhvqGd?BAgUfjS)HrzE\u003emteJ$pyzH1n",
            "ln": 61,
            "addr": 2135
          },
          {
            "b": "arR^HdiHiaaw3V^A::6dA:7?ED0JD",
            "ln": 77,
            "addr": 3145
          },
          {
            "b": "arR^HarR^Hv%8*kz/N(YpJgz\u0026z/f01txs[bt{8oMph+2Y",
            "ln": 78,
            "addr": 3169
          },
          {
            "b": "arR^HarR^HCw7YbwGT@)B.9P",
            "n": [
              {
                "c": 3,
                "d": "Python tight loop construct",
                "i": "objectives/impact/dos/fork-bomb::tight-loops",
                "o": 3214,
                "z": 11,
                "cf": 1.0
              }
            ],
            "ln": 79,
            "addr": 3206
          },
          {
            "b": "arR^HarR^HarR^HAuEy!wnbK}c#\u003cxvA^n^CAV/ZSdf",
            "ln": 80,
            "addr": 3226
          },
          {
            "b": "arR^HarR^HarR^Hx\u003ewF$B-ILwAYK",
            "ln": 81,
            "addr": 3260
          },
          {
            "b": "arR^HarR^HarR^HarR^HAA={}A=VetuVoB]vqPo)jS[lSA=Vet",
            "ln": 82,
            "addr": 3283
          },
          {
            "b": "arR^HarR^HarR^HAa9x\u003cauZ\u0026*wO+%hxjVfkAa9\u003c4efF}PwPA5VAv-kvB-.q7Bz\u003e@azARAJBzb36z!\u0026{4df",
            "ln": 83,
            "addr": 3324
          },
          {
            "b": "arR^HarR^HarR^Hw]zYjx(){6azCZouUaF7A:-E1uUKQ[zf4aAvp%d2iS",
            "n": [
              {
                "c": 2,
                "d": "Iteration or loop pattern",
                "i": "micro-behaviors/data/control-flow/analysis::iteration-loop-pattern",
                "o": 3401,
                "z": 13,
                "cf": 0.5
              }
            ],
            "ln": 84,
            "addr": 3390
          },
          {
            "b": "arR^HarR^HarR^HarR^HD1*\u0026awftPdwO?",
            "ln": 85,
            "addr": 3436
          },
          {
            "b": "arR^HarR^HarR^Hv%8*kz/M%-aywY8BAg/1ByeK2A=Vetc#-QcwHN",
            "ln": 86,
            "addr": 3463
          },
          {
            "b": "arR^HarR^HarR^HBAhT/",
            "ln": 104,
            "addr": 4018
          },
          {
            "b": "arR^HarR^HarR^HarR^HB7Gf1e]$PBB7]Mge]\u003eJnA+fr9c[b",
            "ln": 105,
            "addr": 4035
          },
          {
            "b": "arR^HarR^HarR^HwQ4Y@Ac9i\u003eCW\u003er7BzkVhiS",
            "n": [
              {
                "c": 2,
                "d": "Error handling keywords",
                "i": "micro-behaviors/crypto/symmetric/fernet::error-handling-keywords",
                "o": 4086,
                "z": 16,
                "cf": 1.0
              }
            ],
            "ln": 106,
            "addr": 4074
          },
          {
            "b": "arR^HarR^HarR^HarR^HAa9*e",
            "ln": 107,
            "addr": 4104
          },
          {
            "b": "arR^HarR^HA+fqmjS[/Sy?tqbB7Gl1c#AKqxM4AjaAg+hxE\u003eonz!abAaAqKnA^o//B.bPsefFRqvpS}\u0026B3jhFvpS}\u0026B1wCxB-.q7Bz\u003e@azARAJBzb36z!\u0026{4df",
            "ln": 108,
            "addr": 4125
          },
          {
            "b": "arR^HarR^HarR^HzdN:2wN]d/e{hbzvru6eDUUU+B%7ynAV/cGaA!(wzxJ}wwPA5Gx(){6B0@EWx\u003ewGhazC)tzF%Rtph+2YEjk",
            "ln": 139,
            "addr": 5320
          },
          {
            "b": "arR^HarR^HxGvn7x\u003e8l?B98BNaAITBt{8oMwnbK}d05%ow?ER9w)]*#ByeY)vpS}\u0026B14",
            "ln": 140,
            "addr": 5399
          },
          {
            "b": "arR^HarR^HxJ(V?v}f7?BrU0kjS[z\u003cxjVfkb4j$\u003ewPh-nefDcBAbYScv{%E[z/djyB8L}udf",
            "n": [
              {
                "c": 1,
                "d": "Python JSON content type",
                "i": "micro-behaviors/communications/http/header/content-type::python-json-content-type",
                "o": 5493,
                "z": 16,
                "cf": 0.9399999976158142
              }
            ],
            "ln": 141,
            "addr": 5454
          },
          {
            "b": "arR^HarR^Hx\u003ewG3wNPaXA=Tn",
            "ln": 142,
            "addr": 5512
          },
          {
            "b": "arR^HarR^HarR^HxFaBDwmoN\u003ec$)g2wmY!5df",
            "ln": 143,
            "addr": 5532
          },
          {
            "b": "arR^HarR^HBz\u003e@azxI7+vrDW9uVZj4wO@SeAV==KwO+%hB7GAlx(v(wwmoN*e[5m1wPI{1Bz\u003e@azxJU9asIqxy?tqvwPI{bz/cXazE:(hwO+%hB7GAlx(v(wwmoN*diJhrB7DE?z/fbn",
            "ln": 144,
            "addr": 5562
          },
          {
            "b": "arR^HarR^Hx\u003ewGfz!\u0026{4iS",
            "ln": 145,
            "addr": 5675
          },
          {
            "b": "arR^HarR^HarR^HxJ(V?B-.qnA+P\u0026dBzkVhb3=rOaz8/:wNPQ\u003cAV/ZJz!\u0026{4EiF",
            "n": [
              {
                "c": 1,
                "d": "Bearer token via f-string interpolation",
                "i": "objectives/credential-access/api-harvest/token::bearer-fstring",
                "o": 5728,
                "z": 14,
                "cf": 0.800000011920929
              }
            ],
            "ln": 146,
            "addr": 5693
          },
          {
            "b": "arR^HarR^HyJ\u003cicxlc9Rl${dMtxs[befEk@D0IKQaBtqKvrb^[B0rT/zdN:2wN]d/aA8oyph+2YefDcIwNPaXA=SA=azuf",
            "ln": 147,
            "addr": 5744
          },
          {
            "b": "arR^HarR^Hx\u003ewF%z!abox(+zmz/^9%z/fbE",
            "ln": 148,
            "addr": 5820
          },
          {
            "b": "arR^HarR^Hx\u003ewGfwQ5qT",
            "ln": 159,
            "addr": 6210
          },
          {
            "b": "arR^HarR^HarR^HBAhT/",
            "ln": 160,
            "addr": 6227
          },
          {
            "b": "arR^HarR^HarR^HarR^HAa9^dwN(]DaAz4me]2DCzyu}",
            "n": [
              {
                "c": 1,
                "d": "Parses HTTP response body as JSON",
                "i": "micro-behaviors/communications/http/lib/requests::response-json-call",
                "o": 6269,
                "z": 8,
                "cf": 0.8500000238418579
              }
            ],
            "ln": 161,
            "addr": 6244
          },
          {
            "b": "arR^HarR^HarR^HwQ4Y@Ac9i\u003eCW\u003er7BzkVhiS",
            "ln": 162,
            "addr": 6280
          },
          {
            "b": "arR^HarR^HarR^HarR^Hx\u003ewGdwPGFBByxolB6\u0026A}wmV(EjS(NnfGG",
            "ln": 163,
            "addr": 6310
          },
          {
            "b": "arR^HarR^HarR^HarR^HwPz*fAV^H/Aa9^dwN]0?wPz*fAW1=",
            "ln": 168,
            "addr": 6686
          },
          {
            "b": "arR^HarR^HarR^HarR^HA:-W6wGTVXzFJf*vq[UQA=k$D",
            "ln": 169,
            "addr": 6726
          },
          {
            "b": "arR^HarR^HarR^HarR^HarR^HwPz*fAXq0oBsntyz!9A6efDcppd[tTs56}*ec",
            "n": [
              {
                "c": 1,
                "d": "Bare token: UNKNOWN",
                "i": "metadata/file/string/artifact::unknown-token",
                "o": 6802,
                "z": 7,
                "cf": 0.20000000298023224
              }
            ],
            "ln": 170,
            "addr": 6763
          },
          {
            "b": "arR^HarR^HarR^HarR^HarR^HwPz*fAXq0oBsntIwPI{3xjSnrar\u00260Uec",
            "n": [
              {
                "c": 1,
                "d": "Remote fetched execution source",
                "i": "objectives/command-and-control/backdoor/dispatch/profiled::remote-fetch-exec-source",
                "o": 6838,
                "z": 14,
                "cf": 0.9599999785423279
              }
            ],
            "ln": 171,
            "addr": 6813
          },
          {
            "b": "arR^HarR^HarR^HarR^HarR^HA+fqAB97\u0026jB-Q]1z!9Ag",
            "ln": 172,
            "addr": 6859
          },
          {
            "b": "arR^HarR^HarR^HarR^HarR^HA+flkwPI%2x\u003efvPAa9^dwN)AawPPsAzdN/$a$jTMAV/ZSdk2mABsntNwPq\u003c7B96#:a$k5",
            "ln": 173,
            "addr": 6896
          },
          {
            "b": "arR^HarR^HA+funA=7",
            "ln": 188,
            "addr": 7672
          },
          {
            "b": "arR^Hx\u003ewG4B7]JkByx5%wHIIaxjSRpwnbK}dlm",
            "ln": 189,
            "addr": 7687
          },
          {
            "b": "arR^HarR^Hw]zYjyH}=lx(k4wb58dgzf3)Lar\u003eu8ByuvAar\u003e\u0026qB9hqvB0r4]",
            "n": [
              {
                "c": 1,
                "d": "String literal equality/membership check",
                "i": "objectives/anti-analysis/geofencing/target-gating::string-literal-equality-check",
                "o": 7734,
                "z": 11,
                "cf": 0.9200000166893005
              }
            ],
            "ln": 190,
            "addr": 7718
          },
          {
            "b": "arR^HarR^HarR^HB%5{\u003cAa9x\u003ce[X:qc#iytdf",
            "ln": 191,
            "addr": 7767
          },
          {
            "b": "arR^HarR^HarR^Hx\u003ewG4B7]JkByx5%wHIZMaz++kBsxl",
            "ln": 192,
            "addr": 7797
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "base_url.rstrip"
            ],
            [
              "",
              "httpx.Client"
            ],
            [
              "",
              "self._http.close"
            ],
            [
              "",
              "self.close"
            ],
            [
              "",
              "self._request"
            ],
            [
              "",
              "self._request"
            ],
            [
              "",
              "self._request"
            ],
            [
              "",
              "self._request"
            ],
            [
              "",
              "self._request"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "self.get"
            ],
            [
              "",
              "extract_items"
            ],
            [
              "",
              "extract_cursor"
            ],
            [
              "",
              "self.session.will_expire_soon"
            ],
            [
              "",
              "self.session.refresh"
            ],
            [
              "",
              "self._send"
            ],
            [
              "",
              "self.session.refresh"
            ],
            [
              "",
              "self._send"
            ],
            [
              "",
              "self._send"
            ],
            [
              "",
              "self._unwrap"
            ],
            [
              "",
              "urlparse"
            ],
            [
              "",
              "path.startswith"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "merged_q.update"
            ],
            [
              "",
              "query.items"
            ],
            [
              "",
              "dict"
            ],
            [
              "",
              "h.get"
            ],
            [
              "",
              "h.update"
            ],
            [
              "",
              "h.setdefault"
            ],
            [
              "",
              "self._http.request"
            ],
            [
              "",
              "NetworkError"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "res.json"
            ],
            [
              "",
              "LinkSnapError"
            ],
            [
              "",
              "LinkSnapError"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "parsed.get"
            ],
            [
              "",
              "LinkSnapError"
            ],
            [
              "",
              "error.get"
            ],
            [
              "",
              "error.get"
            ],
            [
              "",
              "(parsed.get(\"meta\") or {}).get"
            ],
            [
              "",
              "parsed.get"
            ],
            [
              "",
              "error.get"
            ],
            [
              "",
              "parsed.get"
            ],
            [
              "",
              "parsed.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "(err_obj or {}).get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "(err_obj or {}).get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "LinkSnapError"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "page.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "page.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "page.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              "meta.get"
            ],
            [
              "",
              "isinstance"
            ],
            [
              "",
              ".errors"
            ],
            [
              "",
              ".errors.LinkSnapError"
            ],
            [
              "",
              ".errors.NetworkError"
            ],
            [
              "",
              ".session"
            ],
            [
              "",
              ".session.Session"
            ],
            [
              "",
              "Any"
            ],
            [
              "",
              "Dict"
            ],
            [
              "",
              "Iterator"
            ],
            [
              "",
              "Optional"
            ],
            [
              "",
              "httpx"
            ],
            [
              "",
              "typing"
            ],
            [
              "",
              "urllib.parse"
            ],
            [
              "",
              "urlparse"
            ]
          ],
          "mbr": [
            "base_url.rstrip",
            "error.get",
            "h.accept",
            "h.authorization",
            "h.get",
            "h.setdefault",
            "h.update",
            "httpx.Client",
            "httpx.HTTPError",
            "httpx.Response",
            "kwargs.json",
            "merged_q.update",
            "meta.get",
            "page.get",
            "parsed.error",
            "parsed.get",
            "path.startswith",
            "query.items",
            "res.json",
            "res.reason_phrase",
            "res.status_code",
            "res.text",
            "self._http",
            "self._http.close",
            "self._http.request",
            "self._owns_http",
            "self._request",
            "self._send",
            "self._unwrap",
            "self.base_url",
            "self.close",
            "self.default_headers",
            "self.default_query",
            "self.get",
            "self.refresh_buffer_sec",
            "self.retry_on_5xx",
            "self.session",
            "self.session.data",
            "self.session.data.access_token",
            "self.session.refresh",
            "self.session.will_expire_soon",
            "urlparse().scheme"
          ],
          "tgt": [
            "LinkSnapError",
            "NetworkError",
            "_extract_cursor",
            "_extract_items",
            "base_url.rstrip",
            "dict",
            "error.get",
            "h.get",
            "h.setdefault",
            "h.update",
            "httpx.Client",
            "isinstance",
            "merged_q.update",
            "meta.get",
            "page.get",
            "parsed.get",
            "path.startswith",
            "query.items",
            "res.json",
            "self._http.close",
            "self._http.request",
            "self._request",
            "self._send",
            "self._unwrap",
            "self.close",
            "self.get",
            "self.session.refresh",
            "self.session.will_expire_soon",
            "str",
            "urlparse"
          ],
          "metrics": {
            "ast": {
              "op.add": 1.0,
              "op.lor": 11.0,
              "op.sub": 1.0,
              "op.land": 11.0,
              "max_depth": 20.0,
              "bind_count": 37.0,
              "call_count": 63.0,
              "node_count": 2674.0,
              "member_count": 42.0,
              "op_density.add": 0.0,
              "op_density.lor": 0.0,
              "op_density.sub": 0.0,
              "op_density.land": 0.0,
              "identifier_count": 98.0,
              "member_depth_max": 4.0,
              "infinite_loop_count": 1.0,
              "string_literal_count": 48.0,
              "identity_function_count": 1.0,
              "array_literal_max_length": 3.0,
              "string_concat_chain_max_length": 2.0
            },
            "file": {
              "size": 8248.0,
              "entropy": 4.56,
              "size_bytes": 8248.0
            },
            "text": {
              "digit_ratio": 0.01,
              "space_count": 2161.0,
              "total_lines": 208.0,
              "char_entropy": 4.56,
              "unique_chars": 80.0,
              "string_density": 0.23,
              "ascii_art_lines": 2.0,
              "avg_line_length": 38.65,
              "high_byte_ratio": 0.0,
              "max_line_length": 175.0,
              "non_ascii_ratio": 0.0,
              "empty_line_ratio": 0.13,
              "last_line_length": 15.0,
              "whitespace_ratio": 0.29,
              "most_common_ratio": 0.07,
              "identifier_density": 2.9,
              "line_length_stddev": 34.29,
              "normalized_string_count": 3.33,
              "repeated_char_sequences": 57.0,
              "suspicious_string_ratio": 0.02,
              "most_common_char_is_null": 0.0,
              "max_inline_whitespace_run": 1.0,
              "most_common_char_codepoint": 101.0,
              "suspicious_identifier_ratio": 0.05,
              "normalized_unique_identifiers": 12.73
            },
            "binds": {
              "count": 37.0
            },
            "calls": {
              "count": 63.0
            },
            "binary": {
              "overall_entropy": 4.56,
              "peak_region_bytes": 5120.0,
              "peak_region_entropy": 4.73
            },
            "source": {
              "class_count": 1.0,
              "function_count": 15.0
            },
            "imports": {
              "count": 13.0,
              "stdlib_count": 2.0,
              "stdlib_ratio": 0.15,
              "relative_ratio": 0.38,
              "unique_modules": 13.0,
              "relative_imports": 5.0,
              "third_party_count": 11.0,
              "third_party_ratio": 0.85
            },
            "members": {
              "count": 42.0
            },
            "strings": {
              "total": 48.0,
              "avg_length": 15.38,
              "max_length": 352.0,
              "avg_entropy": 2.37,
              "email_count": 1.0,
              "empty_count": 2.0,
              "total_bytes": 738.0,
              "entropy_stddev": 0.84,
              "shell_command_strings": 1.0
            },
            "comments": {
              "chars": 198.0,
              "lines": 5.0,
              "total": 5.0,
              "to_code_ratio": 0.02
            },
            "functions": {
              "count": 16.0,
              "avg_params": 4.8,
              "max_params": 9.0,
              "length_stddev": 11.01,
              "avg_name_length": 7.2,
              "avg_length_lines": 11.07,
              "max_length_lines": 32.0,
              "min_length_lines": 2.0,
              "many_params_count": 3.0,
              "single_char_params": 9.0,
              "avg_param_name_length": 5.57,
              "density_per_100_lines": 7.21,
              "code_in_functions_ratio": 0.8
            },
            "identifiers": {
              "count": 98.0,
              "total": 604.0,
              "avg_length": 6.74,
              "max_length": 18.0,
              "min_length": 1.0,
              "avg_entropy": 2.22,
              "reuse_ratio": 0.16,
              "unique_count": 98.0,
              "length_stddev": 3.64,
              "has_digit_ratio": 0.01,
              "sequential_names": 5.0,
              "single_char_count": 6.0,
              "single_char_ratio": 0.06,
              "all_lowercase_ratio": 0.87,
              "all_uppercase_ratio": 0.01,
              "double_underscore_count": 3.0,
              "underscore_prefix_count": 11.0
            }
          }
        },
        "id": 5,
        "mol": "H(Cm)",
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap/http_client.py",
        "pid": 0,
        "risk": 1,
        "sha": "58d0cc7024c61e89daddfe204761b9a1b8eb4e191ed6df154782b35aa681f13c",
        "size": 8248,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/lib/httpx::httpx-client",
            "conf": 0.75,
            "crit": 3,
            "desc": "httpx.Client usage",
            "spans": [
              [
                1044,
                13
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "a%FjewPI^jA:@V6zEEx[B8UL$wPF#az/M%]x(mY+zEEGKy?WD#BrGN[LPS!FBzbPgaAg+fx([RyCwhejaz++fyJBx4A4L%CwmWv",
            "n": [
              {
                "c": 2,
                "d": "Python file extension",
                "i": "metadata/file/extension/identity::py",
                "o": 0,
                "z": 12,
                "cf": 1.0
              }
            ],
            "ln": 1,
            "addr": 0
          },
          {
            "b": "",
            "ln": 2,
            "addr": 80
          },
          {
            "b": "mpxXtayYFcy?d9$aAR4cwPF#5zxIk:x*VYJwO#PjvqYP#A+funA=b}vvixSdvqG:5z^)D)v@@\u0026qxM4%6az\u003eXixM4B5",
            "ln": 3,
            "addr": 81
          },
          {
            "b": "zddxaf/?3iBz\u0026phvpK7:zE:\u003e/mn)edA=l8xwPGEDo\u003ewAWz!9]ivpJ!UAc9jhzxJ\u003epBzkVhvqE5]vrDW9uVZj4wO$(",
            "ln": 4,
            "addr": 154
          },
          {
            "b": "Bz\u0026puC4CYmx\u003eg=$Bzbkdv@b\u003c\u003czGEEDwP?T3ayX[\u003cA+fnlw]zYjvixS9zF9=%ay!?@y-}./LPU3QzdK\u0026hxKL\u003c\u003eayPr",
            "ln": 5,
            "addr": 226
          },
          {
            "b": "Bzbkdph:VOax7W3cVZzrc$ddeB1wCxB-.p@z!\u0026{4kpG$.v{%g\u0026x(mMav@DmdwO#Q7z/df",
            "n": [
              {
                "c": 3,
                "d": "authToken field name reference",
                "i": "micro-behaviors/communications/http/oauth::auth-tokens-camel",
                "o": 321,
                "z": 9,
                "cf": 0.5
              }
            ],
            "ln": 6,
            "addr": 298
          },
          {
            "b": "a%Fi",
            "ln": 7,
            "addr": 354
          },
          {
            "b": "",
            "ln": 8,
            "addr": 358
          },
          {
            "b": "w].*baywF/B-.+DwNw^!x(d*cA=-BjzF\u003cxmvruj4zGt",
            "n": [
              {
                "c": 1,
                "d": "Python import-from statement",
                "i": "micro-behaviors/data/source/language::python-import-from-statement",
                "o": 359,
                "z": 34,
                "cf": 0.800000011920929
              }
            ],
            "ln": 9,
            "addr": 359
          },
          {
            "b": "",
            "ln": 10,
            "addr": 394
          },
          {
            "b": "w].*baAR)Fx(mMax(d*cA=-A\u0026zH0=Ql${dMefES2B95@QpJgz\u0026z/f01",
            "ln": 11,
            "addr": 395
          },
          {
            "b": "arR^Hdlm",
            "ln": 40,
            "addr": 1322
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kxjVfk",
            "ln": 41,
            "addr": 1329
          },
          {
            "b": "arR^HarR^HarR^Ha$)wzx!KS:fkLuuyJyWJ",
            "n": [
              {
                "c": 1,
                "d": "Config source endpoint marker",
                "i": "objectives/command-and-control/dropper/delivery/multistage::stage-config-endpoint-retrieve--config-source",
                "o": 1371,
                "z": 7,
                "cf": 1.0
              }
            ],
            "ln": 42,
            "addr": 1358
          },
          {
            "b": "arR^HarR^HarR^HADL\u0026kC%cG#Byw/aiV@JMxdLeHvrb\u003c\u003ex)a5#b03\u0026PA:@=%C4Chnar\u003eSoze18oiV@lMze18yar\u003errA=Vetb03\u0026RB-ILwA^YF",
            "ln": 43,
            "addr": 1387
          },
          {
            "b": "arR^HarR^HarR^HdK[!zAccdHB7Gf1e)\u0026YGvrDW9uVZj4wO@}Cec",
            "ln": 44,
            "addr": 1475
          },
          {
            "b": "",
            "ln": 49,
            "addr": 1690
          },
          {
            "b": "arR^HwmYu}v@=c?By=\u003ewwO+%fayYn1C@^6ox\u003e8l?B98BNavf)\u003ct}v9FefFwzBzb36z!\u0026{4iV}jqBzkVhvqGd?BAgUfjS)HrzE\u003emT",
            "ln": 50,
            "addr": 1691
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kAbP/tc)yrMAa{$Gf!WuSzFKqqefFzuwo/ZGdK[!zAccdHB7Gf1e)\u0026YGvrDW9uVZj4wO@}Cdf",
            "n": [
              {
                "c": 1,
                "d": "HTTP client fetch capability",
                "i": "objectives/command-and-control/dropper/delivery/multistage::pastebin-fetch-capability",
                "o": 1787,
                "z": 13,
                "cf": 1.0
              }
            ],
            "ln": 51,
            "addr": 1772
          },
          {
            "b": "",
            "ln": 52,
            "addr": 1854
          },
          {
            "b": "arR^HwmYu}B-p(1By=\u003ewwO+%fazCv[z/Piay\u0026%wKaAITBefF[uByO#BavG{NBx-*dAX5t0zH2IsasX]+vrDW9uVZj4wO%KKpJgz\u0026z/f01txs[bt{8oMph+2Ydlm",
            "ln": 53,
            "addr": 1855
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kxjVfkw*e)pAa{$Gf!WuSzFKqDDUE1$z/Piay\u0026%xsflqkzBAo9DCYmOwBrSmUdK[!zAccdHB7Gf1e)\u0026YGvrDW9uVZj4wO@}Cdf",
            "ln": 88,
            "addr": 3302
          },
          {
            "b": "",
            "ln": 89,
            "addr": 3404
          },
          {
            "b": "arR^HwmYu}Cw?IqB8UL$wHE",
            "n": [
              {
                "c": 1,
                "d": "Source/repository/workspace target-word component",
                "i": "objectives/impact/destroy/keywords::destructive-code-target",
                "o": 3413,
                "z": 9,
                "cf": 1.0
              }
            ],
            "ln": 90,
            "addr": 3405
          },
          {
            "b": "arR^HarR^HB7Gf1ec",
            "ln": 91,
            "addr": 3424
          },
          {
            "b": "arR^HarR^HdL7",
            "ln": 92,
            "addr": 3438
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kxjVfka$)wzx!KS:fjY0rvqfR2a$K\u0026^dQNakBAn\u003cKwO+%huVWY8B-.q7Bz\u003e@azyE1-",
            "ln": 131,
            "addr": 4967
          },
          {
            "b": "",
            "ln": 132,
            "addr": 5044
          },
          {
            "b": "arR^HwmYu}vpS)%B7Gf1efFFwzddc@iV@G=AX5s.efFwzBzb36z!\u0026{4iV}jqBzkVhvqGd?BAgUfjS)HrzE\u003emT",
            "n": [
              {
                "c": 1,
                "d": "Domain tracking field",
                "i": "objectives/command-and-control/infrastructure/tracking::domain-field",
                "o": 5063,
                "z": 7,
                "cf": 0.699999988079071
              }
            ],
            "ln": 133,
            "addr": 5045
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kAbP/tc)yrMAa{$Gf!W6Qzddc@B0rdTDM)0szddc@b03\u0026Sz/5]%zHB5UdK[!zAccdHB7Gf1e)\u0026YGvrDW9uVZj4wO@}Cdf",
            "n": [
              {
                "c": 1,
                "d": "Hostname-gating substring domain",
                "i": "objectives/anti-analysis/geofencing/target-gating::fqdn-substring-gate--rx-5",
                "o": 5164,
                "z": 6,
                "cf": 0.9300000071525574
              }
            ],
            "ln": 134,
            "addr": 5114
          },
          {
            "b": "",
            "ln": 135,
            "addr": 5212
          },
          {
            "b": "arR^HwmYu}C4CYdw{C!CwO+%fazCvEaAITBefDz[ayPzmxKt\u003e1yH}xAawV@#x(v($y*g$5A:o!JawM\u0026)wHPU",
            "ln": 136,
            "addr": 5213
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kAa9\u0026#xEC5Tvq]{lB$\u003eTUB-.pIzdK[xaAg+hv}WzodK[!zAccdHB7Gf1e)\u0026YGvrDW9uVZj4wO@}Cdf",
            "ln": 224,
            "addr": 9150
          },
          {
            "b": "",
            "ln": 225,
            "addr": 9236
          },
          {
            "b": "arR^HwmYu}v}Yp*xjUB?vrlHlz/Pwp",
            "n": [
              {
                "c": 1,
                "d": "Settings secret keyword",
                "i": "objectives/supply-chain/credential-theft/registry::settings-secret-keyword-cluster",
                "o": 9252,
                "z": 8,
                "cf": 0.75
              }
            ],
            "ln": 226,
            "addr": 9237
          },
          {
            "b": "arR^HarR^HB7Gf1efDz[ay/LmA+fcguVoB{B9zLywi7\u0026OBAe]PzE[30Aa9*eCw?IjiV@G=AX5twB-.q7Bz\u003e@azAn[oAcb/jzEEu=B98CdauZ\u0026xz/fa",
            "ln": 227,
            "addr": 9262
          },
          {
            "b": "arR^Hdlm",
            "ln": 228,
            "addr": 9354
          },
          {
            "b": "arR^HarR^HA+funA=91vwO+%hvq]{kAbP/tc\u0026",
            "ln": 229,
            "addr": 9361
          },
          {
            "b": "arR^HarR^HarR^Ha$)wzx!KS:fjx0BxFi\u003eevqYZ?ePtctB9zLywfJM",
            "n": [
              {
                "c": 1,
                "d": "password/token/api_key field keyword (password)",
                "i": "objectives/credential-access/theft/keywords::credential-field--password",
                "o": 9424,
                "z": 8,
                "cf": 0.8399999737739563
              }
            ],
            "ln": 230,
            "addr": 9391
          },
          {
            "b": "arR^HarR^HarR^HDM(%xA=L-eBwMy!B9zLywfK5Sv%8*jwO#P%Aa9*eCw?IjefDcOwP{%VB8#LzA+3vPaz$+muVoB{B9zLywpl0",
            "ln": 231,
            "addr": 9435
          },
          {
            "b": "arR^HarR^HarR^HdK[!zAccdHB7Gf1e)\u0026YGvrDW9uVZj4wO@}Cec",
            "ln": 232,
            "addr": 9515
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.patch"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.delete"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.delete"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.delete"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "opts"
            ],
            [
              "",
              "self._t"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "self.api.delete"
            ],
            [
              "",
              "super().__init__"
            ],
            [
              "",
              "super"
            ],
            [
              "",
              "WorkspaceMembersResources"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "self.api.patch"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "self.api.delete"
            ],
            [
              "",
              "self.api.get"
            ],
            [
              "",
              "self.api.patch"
            ],
            [
              "",
              "self.api.post"
            ],
            [
              "",
              "self.api.delete"
            ],
            [
              "",
              "LinksResources"
            ],
            [
              "",
              "StatsResources"
            ],
            [
              "",
              "QrResources"
            ],
            [
              "",
              "TagsResources"
            ],
            [
              "",
              "DomainsResources"
            ],
            [
              "",
              "BillingResources"
            ],
            [
              "",
              "WorkspaceResources"
            ],
            [
              "",
              "ApiKeysResources"
            ],
            [
              "",
              "AccountResources"
            ],
            [
              "",
              ".http_client"
            ],
            [
              "",
              ".http_client.ApiClient"
            ],
            [
              "",
              "Any"
            ],
            [
              "",
              "Dict"
            ],
            [
              "",
              "List"
            ],
            [
              "",
              "Optional"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "body.role",
            "self._default_token",
            "self._t",
            "self.api",
            "self.api.delete",
            "self.api.get",
            "self.api.patch",
            "self.api.post",
            "self.members",
            "super().__init__"
          ],
          "tgt": [
            "AccountResources",
            "ApiKeysResources",
            "BillingResources",
            "DomainsResources",
            "LinksResources",
            "QrResources",
            "StatsResources",
            "TagsResources",
            "WorkspaceMembersResources",
            "WorkspaceResources",
            "_opts",
            "self._t",
            "self.api.delete",
            "self.api.get",
            "self.api.patch",
            "self.api.post",
            "super",
            "super().__init__"
          ],
          "metrics": {
            "ast": {
              "max_depth": 13.0,
              "bind_count": 5.0,
              "call_count": 141.0,
              "node_count": 3778.0,
              "member_count": 10.0,
              "identifier_count": 83.0,
              "member_depth_max": 3.0,
              "string_literal_count": 75.0
            },
            "file": {
              "size": 10326.0,
              "entropy": 4.79,
              "size_bytes": 10326.0
            },
            "text": {
              "digit_ratio": 0.01,
              "space_count": 1822.0,
              "total_lines": 250.0,
              "char_entropy": 4.79,
              "unique_chars": 68.0,
              "string_density": 0.3,
              "avg_line_length": 40.3,
              "high_byte_ratio": 0.0,
              "max_line_length": 102.0,
              "non_ascii_ratio": 0.0,
              "empty_line_ratio": 0.26,
              "last_line_length": 5.0,
              "whitespace_ratio": 0.2,
              "most_common_ratio": 0.07,
              "identifier_density": 3.1,
              "line_length_stddev": 33.79,
              "normalized_string_count": 4.74,
              "repeated_char_sequences": 19.0,
              "suspicious_string_ratio": 0.01,
              "most_common_char_is_null": 0.0,
              "max_inline_whitespace_run": 1.0,
              "most_common_char_codepoint": 101.0,
              "normalized_unique_identifiers": 10.42
            },
            "binds": {
              "count": 5.0
            },
            "calls": {
              "count": 141.0
            },
            "binary": {
              "overall_entropy": 4.79,
              "peak_region_bytes": 10240.0,
              "peak_region_entropy": 4.82
            },
            "source": {
              "class_count": 11.0,
              "function_count": 31.0
            },
            "imports": {
              "count": 7.0,
              "stdlib_count": 1.0,
              "stdlib_ratio": 0.14,
              "relative_ratio": 0.29,
              "unique_modules": 7.0,
              "relative_imports": 2.0,
              "third_party_count": 6.0,
              "third_party_ratio": 0.86
            },
            "members": {
              "count": 10.0
            },
            "strings": {
              "total": 75.0,
              "avg_length": 20.48,
              "max_length": 355.0,
              "path_count": 43.0,
              "avg_entropy": 3.07,
              "total_bytes": 1536.0,
              "entropy_stddev": 0.87,
              "shell_command_strings": 1.0
            },
            "comments": {
              "chars": 192.0,
              "lines": 3.0,
              "total": 3.0,
              "to_code_ratio": 0.01
            },
            "functions": {
              "count": 42.0,
              "avg_params": 3.71,
              "max_params": 7.0,
              "length_stddev": 3.05,
              "avg_name_length": 6.02,
              "avg_length_lines": 3.44,
              "max_length_lines": 14.0,
              "min_length_lines": 2.0,
              "high_entropy_names": 1.0,
              "single_char_params": 43.0,
              "avg_param_name_length": 5.25,
              "density_per_100_lines": 19.2,
              "code_in_functions_ratio": 0.66
            },
            "identifiers": {
              "count": 83.0,
              "total": 774.0,
              "avg_length": 7.57,
              "max_length": 25.0,
              "min_length": 2.0,
              "avg_entropy": 2.43,
              "reuse_ratio": 0.11,
              "unique_count": 83.0,
              "length_stddev": 4.57,
              "high_entropy_count": 3.0,
              "high_entropy_ratio": 0.04,
              "all_lowercase_ratio": 0.81,
              "double_underscore_count": 1.0,
              "underscore_prefix_count": 5.0
            }
          }
        },
        "id": 6,
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap/resources.py",
        "pid": 0,
        "risk": 1,
        "sha": "5af57b334578d5d2cc0141cfbeb2b58b5b7bae62b5da5886803ec084c375ff3e",
        "size": 10326,
        "traits": [
          {
            "id": "micro-behaviors/communications/http/request/client::py-post-generic",
            "conf": 0.800000011920929,
            "crit": 1,
            "desc": "Python post method call",
            "spans": [
              [
                1787,
                13
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::auth-tokens-camel",
            "crit": 3,
            "desc": "authToken field name reference",
            "spans": [
              [
                321,
                9
              ]
            ]
          },
          {
            "id": "objectives/credential-access/theft/keywords::password",
            "crit": 1,
            "desc": "Credential-access vocabulary word: password",
            "spans": [
              [
                9252,
                8
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "A+e=)zGGP3y\u0026Z.uBz(hhaz\u003e?kA=k#jzF781kXs}Pyh4PtB7x5]cVZzewPI{bz/dfm3q0#:eOn{wzddJeELir\u0026x(mZczEEGqv@=c\u003ewO#Q7vqH0oaA8deaAIa7BzkVhaAg[jaAhvtw[=6)e*a8bzF9=%eOn*kxj#w]A+e\u003c6wPIJcxlvT6wft\u0026iwP?T5BAnNmz/f6cA=L-eBrC74y\u00261enw].*bayYFlzFs03aARpdav{S$wnc8(A+e\u003c6wPIJpBz\u003e@azxJL1ze0*iasG^6B.2icaAz4pz!\u0026{9aARpdaz2Cjx(W=cw)]K\u003cy\u003cvdwzxJ$hB-Raye^-^Da{[V?A=k!quTEz/BAIRnuTB{\u0026ze:AlBrC1fzF%S9BzkVhA%-m*ze:AlBrC7izF0P}Aa9^dwPwb(ze:AlBrCHy3tBu@z/P}xB97\u0026j3tBu@z/P}xBy/rdw[=6)3tBu@z/P}xBzbYavpT7\u0026x9@u\u0026AbP=saARsmwEr3\u0026z/3Rcvrt{/y*?yawPF#dze:AlBrCa5BywV}vrlF%w].*baAg+hxL.x(azCXiz/P}xp*[DV3tar%z6i}CAa%i5azCXiz/P}xpJgz\u0026z/f013jpG:AbP=sazt\u003esAcIY%w].*batdhoC4\u003eC$uUja)CoyQpAbP=saAz49A+fr9uTWCOwPI{1Bz\u003e@azvf#@z/3QHwPz*fA=Svqze:AlBrBm\u003ezFJf*vq[IPBza9-A=k$Haw#=.A+fr9mriA!ATAcXkXaqBvpKaZB8}W#y*?yaaw^8%w[=6)l$7gCiTM#LarU95v}x.5uVZj4wO%KKB98BfarR^HwQ5fdA+fr0vrsKMx(n21arR^Hx(!urwPx*OB98BfarR^Hv@b\u003c\u003czGGl1wi7\u0026OBAdZharR!EwOb%]B7!{5z!\u0026{4iV}jqBzkVhvqGd?BAgUfjS)HrzE\u003cd$arR!Fv@Dr$iV}jqBzkVhvqGd?BAgUfjS)HrzE\u003cd$arR!nv}fC1zGGl1wi7\u0026eAcb/jzEEu=B98CdauZ\u0026xz/fa[3jpoVvrlGjq!p2\u003ex(v(I3lQDlay]4}aywF\u0026zFsi1uNMm7ao",
            "ln": 18,
            "col": 19,
            "line": 1
          },
          {
            "b": "auZ\u0026Vb70^tvqYQdB-qqhAWSw+uR\u003cS@mOcoxa{]CnarR^HarU-py?tqsA=kM7y?j.LaAhvtw[=6)aA8oyz/WKxzGY-mz/dguwPPtizGYx5wQb*Hb4Lm%vrDyda$i\u003cwarR^HarR!FwO+%hv@=c\u003ewO#Q7vqH0(Aa9\u003c4auZ\u0026zvrufh3lQDlarR^HarR^Hay/C6wmYU2x\u003c\u003e?0uVoB}xDRklaA8rNAa9\u003c4e[GoDvqYQ#B7Gwuw*hWSe{?5FvqYR7fjP3lwmYU2x\u003c\u003e?0a$i\u003cwarR^HarR^Q3lQDlarR^HaAIagw?E+sBz@u=azt\u003esA0^ZgarR^HarU-py?tqbwmoN*iV}jqBzkVhvqGdAA=kM7y?l1yBywC$jS)HrzE\u003cd$arR^HarR!FwO+%huVGZ\u0026A+fr9uU\u003cT\u003cyAL+.BzbYavpT7\u0026xd=\u003e@v@0Fw3lQDlarR^HaAIagw?EChwOb%]B7!]{zEm0(x\u003eIa3iV}jqBzkVhvqGd\u0026xMvV)wnb{]e\u003e6}{zGGebjS)HrzE\u003cd$arR^HarR!FwO+%huVGZ\u0026A+fr9uUam#z/N(Y",
            "ln": 1104,
            "col": 16,
            "line": 47
          },
          {
            "b": "B7GwmjS[lMzF0P}Aa9^dwPxy\u003cz/ff3xhA2SB7GwudgdguarR^HarUSiA=U/je]\u003eJiwghIgy?tqfA+e=)zGGP3y\u0026-%5vrufi3lQDlarR^HazCBgzF%RtAa9^dwPxzpvrk^%wN/*@z/c$AwO+%hAb](ex(4ufiTM#LarR^HarR^HarUYkx(^\u0026doLFxWq/h",
            "ln": 1917,
            "col": 12,
            "line": 68
          },
          {
            "b": "dgdguarR^HarU-pv@#B6zxI7+Aa9^dwPz0@wO+%hAb](ex(4u^3lQDlarR^HazbLjaAz4kB.L(cwftP7asFBxv}f7\u003eB6\u003c3cyH}xcefDcJB8#FnAW04Sb4CC6wO#P%x\u003eezpiTM#LarR^HarR^HarUxgaAz4kB.L(cwft=dBrCpnaAIa7BzkVhiTM#LarR^HarR^HarR^HarUYkx(^\u0026doLFxWq/l2.l3mo.mriA!AWRnqarR^HarR^HarR^HarR^HarR^Jq:\u003cR-nL-8*nLRSGo\u0026aILr7d#Z3lQDlarR^HarR^HarR^HarR^Haz8*pA=kM7y?j.[DVJ+mw?F4yz!rZ1wD",
            "ln": 2205,
            "col": 13,
            "line": 74
          },
          {
            "b": "arR^HarU-py?tqbwmoN*auZ\u0026zA=kM7y?l1yByuN8arR^HarR^HarR^HvpJ!UB8$Ygz!\u0026{4j-+gABzkVhtoWG=v}x.5uVZj4wO@X$ed9HxarR^HarR^HarUluAa%u7B6\u0026u$j.X!Qd05%fBzkVhe[X:qc)AkEAa%u7B6\u0026u$a$K\u0026XfD}}*z/M%AfD}}%3lQDlarR^HarR^HazC[rB.bORB7F\u003c6x(v([b58atB.bOqt}us9arR^HarR^HarR!py?WD#Bye-)j-+gABzkVhtoWM[x\u003eqg7uUK3{t}us9arR^HarR^HarR!EwOb%]B7!{5z!\u0026{4j-+gABzkVhe[X:qc)AXyw].E7xKt\u003e1yH}xcdiJLHawM\u0026)wH[fharR^HarR^HarR!Fv@Dr$j-+gABzkVhe[X:qc)A.xz/xnidiJLHawM\u0026)wH[fharR^HarR^HarR!nv}fC1zGGl1wiC0Bv@#B6zz2NkBsntwv}fC1zGGl1wfJDBz/M%}z/fbq3lQDlarR^HasNTuao",
            "ln": 2522,
            "col": 3,
            "line": 82
          },
          {
            "b": "arR^HarR^HA:-W6wGT([zGGPfwKQSWz/NlIq!p2\u003ex(v(wB76l6ay!?@y?mc1Cwhejaz#9uwmoN*a$i\u003cwarR^HarR!CvrcB2AV^H/v@Dl%x\u003eIx[A=U/je\u003c\u003cL{w[+)OvrcB2AWSvzarR^HarR^Hx\u003ewGewO+%hv@=c\u003ewO#Q7vqH0(Aa9\u003c4e[GowB98EK",
            "ln": 3118,
            "col": 5,
            "line": 97
          },
          {
            "b": "e[n{kwmYU2x\u003c\u003e?0uVoB}xEKoharR^HarR!CvrcB2A:9P@y?tqsA=kM7y?l({jS]7UarR^HarR^HarR^Hb4j$\u003ewPI{1Bz\u003e@azx.a:B7Gf1e)\u0026c$Byu!gv}f7\u003eB6\u003c3cyH}xm3lQDlarR^HarR^Har\u003exwAa%u7B6\u0026u$b03\u0026/BAe^JwO+%huU0O!vj(boAa%u7B6\u0026u$dj+/GarR^HarR^HarR^Jx(!urwPw$QaAIagw?EC3vrt{gx(!urwPxsearR^HarR^HarR^Hb4CC6wO#P%x\u003eezGaAIagw?EC3vrt{gv@b\u003c\u003czGGl1wgO6garR^HarR!P3lQDlarR^HazCBgB7Gf1e)\u0026c$Byu!xwOb%]B7!{5z!\u0026{4iTM#LarR^HarR^HarUSiA=U/jtxsv(w?F4yz!rZ1wNeH:A+e\u003c6wPIJ(Bz\u003e@azx-vejS[/Sy?tqbwmoN*e]\u003eJnA+fr9uVZj4wO}?$arR^HarR!vw/#eay?tqbwmoN*e]$JvAaI6qarR^HarR^HarR^HAa9^dwPz0@wO+%hAb](ex(4u^toXb#z/xnit{8oMB7Gf1e)\u0026c$Byu!yv@Dr$3lQDlarR^HazCA",
            "ln": 3297,
            "col": 29,
            "line": 100
          },
          {
            "b": "avg9/ze0G5CxdztwGVhhBz8!bxL?V#at$]ce^-ZzarR^HarUobefG4KA3dp^By/rdw[=6)e]txBBy/rdc#:irw[=GMa$^wCwN]v\u0026Bzkf1B1OT/ay]hbj-+Z=d05%ow?EOlwN]v\u0026Bzkf1B6\u0026({Bz9pCvrb{%BswTCarR^HarR^HBAhT/3lQDlarR^HarR^HaA}KwxDRkme[OTjAaJ]nw[iCnb6LjWayPslw\u0026ZnwarR^HarR^HarR^HarR!CvrcB2AXqMRx()]mw*[6farR^HarR^HarR!BB1Q%ozeS@kBzU$FaAITkBs{H0nM5L!qxQufB97\u0026je(MaGs5\u0026f%dgdguarR^HarR^HarUPze]\u003eJxy***+d0frBefG1By?tqfA+e=)zGGP3y\u0026-%5vrufi3lQDlarR^Haz2!cwPh-lmr\u0026rNAcb/jzAnaEarR^HarR^HarR!vw/#2ke]UlvxF9\u003evx(!xqd0frBdlm!UarR^HarR^HarR^HarR!BB1RPMy?W^5d0frBdgdguarR^HarR^HarUYkx(^?)3lQDlay]4}ay/k0vr9=qwO+%cat2=1ph+2YiTM#LarR^HarUxgaz#ataAIagw?EOlwN]v\u0026Bzkf1B6\u0026({Bz9prCXIkvA@",
            "ln": 3944,
            "col": 10,
            "line": 114
          },
          {
            "b": "x(+y(z/fbE3lQDlarR^HarR^HaAz4nB-Ivxrc0a)3lQDlarR^HaAz4nB-IvxBzkP6e{7/AwHF#Ik0p3fwO+%huU0O!vj(boAa%u7B6\u0026u$3jm)#arUiaw/#qiy\u00260D\u0026CYmwqwNxH%z/c$AwO+%fayYF9w[u0\u0026B7F\u0026xazC.nauZ\u00266fFB{#eJ$p^z/oCM3lQDlao",
            "ln": 5279,
            "col": 23,
            "line": 150
          },
          {
            "b": "A+e\u003c6wPIJ(x(mo\u0026y?WJ}Bp6ckarR^HarR^HarR^HarU-py?tqbB8UMizEmA}w].E7xECqparR^HarR^HwP?T5Bs}=Cx(\u003e:L3lQDlarR^HazCBgB7Gf1e)\u0026Tgw].E7xKts\u003eA=k$vx(+zmz/^9%z/fbE3lQDlarR^HarR^HaAy[8B7DFnwO+%huVGZ\u0026A+fr9uUam#z/Mf(arR^HwmYu}uVQf{CwZ=dwOb%]B7=$ywO+%cat2=1ph+2YiTM#LarQ",
            "ln": 5944,
            "col": 31,
            "line": 167
          },
          {
            "b": "arR^HaAIagw?EC3z^NJ@w].E7xECqparR^HarR^HwQ4Y@Ac9i?vrl0GCW\u003er7BzkVhayPslwJy}RboQ(xABy)Jlqf*4fFJ[SarR^HarR^HarR!FwO+%huVGZ\u0026A+fr9uUam#z/M%-ay$)5arR^HarR!sx(i",
            "ln": 6231,
            "col": 8,
            "line": 176
          },
          {
            "b": "w/$#fBrCToy?tqbwmoN*e]\u003eJnA+fr9uVZj4wO%KoarR^HarR^HarR^HA:-W6wGT(Zw].E7xHM@Zz/NlIpetj{mmHfzq+gm{pFjbKa$K\u0026XB7GAlx(v(ixKL%8zF{UrwOb%]B7!{5z!\u0026{4a$i\u003cwarR^HarR!Gz!\u0026{4B09Q*A+e\u003c6wPIJ(vpJ!UB8$Ygz!\u0026{4c\u003c?7tarR^HarR^HarUxtB9h5mj-+gJw?EC3vrt{gx(!urwPxsearR^HarR^HarR^Hv@b\u003c\u003c",
            "ln": 6697,
            "col": 10,
            "line": 189
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "brand.upper"
            ],
            [
              "",
              "os.environ.get"
            ],
            [
              "",
              "Path"
            ],
            [
              "",
              "os.path.expanduser"
            ],
            [
              "",
              "threading.Lock"
            ],
            [
              "",
              "self.credentials_path.exists"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "configparser.ConfigParser"
            ],
            [
              "",
              "parser.read"
            ],
            [
              "",
              "parser.has_section"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "LinkSnapAuthError"
            ],
            [
              "",
              "ProfileData"
            ],
            [
              "",
              "int"
            ],
            [
              "",
              "section.get"
            ],
            [
              "",
              "section.get"
            ],
            [
              "",
              "section.get"
            ],
            [
              "",
              "section.get"
            ],
            [
              "",
              "RuntimeError"
            ],
            [
              "",
              "configparser.ConfigParser"
            ],
            [
              "",
              "self.credentials_path.exists"
            ],
            [
              "",
              "parser.read"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "self.credentials_path.parent.mkdir"
            ],
            [
              "",
              "tempfile.mkstemp"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "os.fdopen"
            ],
            [
              "",
              "parser.write"
            ],
            [
              "",
              "os.chmod"
            ],
            [
              "",
              "os.replace"
            ],
            [
              "",
              "os.path.exists"
            ],
            [
              "",
              "os.unlink"
            ],
            [
              "",
              "self.credentials_path.exists"
            ],
            [
              "",
              "configparser.ConfigParser"
            ],
            [
              "",
              "parser.read"
            ],
            [
              "",
              "parser.has_section"
            ],
            [
              "",
              "parser.remove_section"
            ],
            [
              "",
              "parser.sections"
            ],
            [
              "",
              "self.credentials_path.unlink"
            ],
            [
              "",
              "tempfile.mkstemp"
            ],
            [
              "",
              "str"
            ],
            [
              "",
              "os.fdopen"
            ],
            [
              "",
              "parser.write"
            ],
            [
              "",
              "os.chmod"
            ],
            [
              "",
              "os.replace"
            ],
            [
              "",
              "os.path.exists"
            ],
            [
              "",
              "os.unlink"
            ],
            [
              "",
              "time.time"
            ],
            [
              "",
              "time.time"
            ],
            [
              "",
              "threading.Event"
            ],
            [
              "",
              "self._spawn_refresh"
            ],
            [
              "",
              "event.wait"
            ],
            [
              "",
              "self._do_refresh"
            ],
            [
              "",
              "event.set"
            ],
            [
              "",
              "RefreshError"
            ],
            [
              "",
              "RefreshError"
            ],
            [
              "",
              "refresh_access_token"
            ],
            [
              "",
              "ProfileData"
            ],
            [
              "",
              "self.save"
            ],
            [
              "",
              ".device_flow"
            ],
            [
              ".device_flow",
              ".device_flow.refresh_access_token"
            ],
            [
              "",
              ".errors"
            ],
            [
              ".errors",
              ".errors.LinkSnapAuthError"
            ],
            [
              ".errors",
              ".errors.RefreshError"
            ],
            [
              "typing",
              "Optional"
            ],
            [
              "pathlib",
              "Path"
            ],
            [
              "",
              "configparser"
            ],
            [
              "dataclasses",
              "dataclass"
            ],
            [
              "",
              "dataclasses"
            ],
            [
              "",
              "httpx"
            ],
            [
              "",
              "os"
            ],
            [
              "",
              "pathlib"
            ],
            [
              "",
              "stat"
            ],
            [
              "",
              "tempfile"
            ],
            [
              "",
              "threading"
            ],
            [
              "",
              "time"
            ],
            [
              "",
              "typing"
            ]
          ],
          "mbr": [
            "brand.upper",
            "configparser.ConfigParser",
            "event.set",
            "event.wait",
            "httpx.Client",
            "os.chmod",
            "os.environ",
            "os.environ.get",
            "os.fdopen",
            "os.path",
            "os.path.exists",
            "os.path.expanduser",
            "os.replace",
            "os.unlink",
            "parser.has_section",
            "parser.read",
            "parser.remove_section",
            "parser.sections",
            "parser.write",
            "section.access_token",
            "section.client_id",
            "section.get",
            "section.issuer",
            "self._data",
            "self._data.access_token",
            "self._data.account_id",
            "self._data.client_id",
            "self._data.expires_at",
            "self._data.issuer",
            "self._data.refresh_token",
            "self._data.scope",
            "self._do_refresh",
            "self._refresh_error",
            "self._refresh_in_flight",
            "self._refresh_lock",
            "self._spawn_refresh",
            "self.brand",
            "self.credentials_path",
            "self.credentials_path.exists",
            "self.credentials_path.parent",
            "self.credentials_path.parent.mkdir",
            "self.credentials_path.unlink",
            "self.http",
            "self.profile",
            "self.save",
            "stat.S_IRUSR",
            "stat.S_IWUSR",
            "tempfile.mkstemp",
            "threading.Event",
            "threading.Lock",
            "time.time",
            "tokens.access_token",
            "tokens.expires_at",
            "tokens.refresh_token",
            "tokens.scope"
          ],
          "tgt": [
            "LinkSnapAuthError",
            "Path",
            "ProfileData",
            "RefreshError",
            "RuntimeError",
            "brand.upper",
            "configparser.ConfigParser",
            "event.set",
            "event.wait",
            "int",
            "os.chmod",
            "os.environ.get",
            "os.fdopen",
            "os.path.exists",
            "os.path.expanduser",
            "os.replace",
            "os.unlink",
            "parser.has_section",
            "parser.read",
            "parser.remove_section",
            "parser.sections",
            "parser.write",
            "refresh_access_token",
            "section.get",
            "self._do_refresh",
            "self._spawn_refresh",
            "self.credentials_path.exists",
            "self.credentials_path.parent.mkdir",
            "self.credentials_path.unlink",
            "self.save",
            "str",
            "tempfile.mkstemp",
            "threading.Event",
            "threading.Lock",
            "time.time"
          ],
          "funcs": [
            [
              "__init__",
              843
            ],
            [
              "data",
              1594
            ],
            [
              "load",
              1666
            ],
            [
              "save",
              2964
            ],
            [
              "clear",
              4381
            ],
            [
              "is_expired",
              5227
            ],
            [
              "will_expire_soon",
              5369
            ],
            [
              "refresh",
              5553
            ],
            [
              "_spawn_refresh",
              6108
            ],
            [
              "_do_refresh",
              6554
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 1,
              "op.bor": 2,
              "op.lor": 8,
              "max_depth": 16,
              "call_count": 59,
              "node_count": 2059,
              "member_count": 55,
              "max_array_len": 3,
              "op_density.add": 0,
              "op_density.bor": 0,
              "op_density.lor": 0,
              "max_concat_chain": 2,
              "member_depth_max": 4
            },
            "file": {
              "size": 7467,
              "entropy": 4.38
            },
            "text": {
              "lines": 207,
              "top_char": 101,
              "max_ws_run": 2,
              "digit_ratio": 0,
              "space_count": 2034,
              "char_entropy": 4.38,
              "unique_chars": 74,
              "top_char_null": 0,
              "string_density": 0.19,
              "top_char_ratio": 0.08,
              "avg_line_length": 35.07,
              "max_line_length": 97,
              "empty_line_ratio": 0.09,
              "last_line_length": 19,
              "whitespace_ratio": 0.3,
              "identifier_density": 2.27,
              "line_length_stddev": 20.8,
              "normalized_string_count": 2.78,
              "repeated_char_sequences": 81,
              "suspicious_string_ratio": 0.03,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 12.48
            },
            "binds": {
              "count": 29
            },
            "binary": {
              "peak_region_bytes": 6144,
              "peak_region_entropy": 4.59
            },
            "source": {
              "class_count": 2,
              "function_count": 10
            },
            "imports": {
              "count": 18,
              "relative": 5,
              "stdlib_count": 9,
              "stdlib_ratio": 0.5,
              "relative_ratio": 0.28,
              "third_party_count": 9,
              "third_party_ratio": 0.5
            },
            "strings": {
              "bytes": 905,
              "count": 40,
              "shell": 1,
              "avg_length": 22.63,
              "max_length": 277,
              "path_count": 1,
              "avg_entropy": 2.91,
              "email_count": 1,
              "entropy_stddev": 1.13
            },
            "comments": {
              "chars": 101,
              "count": 3,
              "lines": 3,
              "to_code_ratio": 0.01
            },
            "functions": {
              "count": 12,
              "density": 4.83,
              "avg_params": 1.7,
              "code_ratio": 0.77,
              "max_params": 6,
              "length_stddev": 10.21,
              "avg_name_length": 8.3,
              "avg_length_lines": 16,
              "max_length_lines": 32,
              "min_length_lines": 2,
              "single_char_params": 1,
              "avg_param_name_length": 5.12
            },
            "identifiers": {
              "count": 469,
              "unique": 96,
              "avg_length": 7.57,
              "max_length": 20,
              "min_length": 1,
              "avg_entropy": 2.45,
              "reuse_ratio": 0.2,
              "length_stddev": 3.9,
              "sequential_names": 2,
              "single_char_count": 2,
              "single_char_ratio": 0.02,
              "high_entropy_count": 3,
              "high_entropy_ratio": 0.03,
              "all_lowercase_ratio": 0.84,
              "all_uppercase_ratio": 0.02,
              "double_underscore_count": 1,
              "underscore_prefix_count": 7
            }
          }
        },
        "id": 7,
        "mol": "O(Ca)H₅(Cm₄DbF₂Os₂Ti)Md(In₅)",
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap/session.py",
        "pid": 0,
        "risk": 9,
        "sha": "99cd2800d1221af00b3ac97607cb99e3529a55d3adca21bc78ad52dbea60ed1d",
        "size": 7467,
        "traits": [
          {
            "id": "metadata/import/python/relative/1/device_flow::relative/1/device_flow",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .device_flow",
            "spans": [
              [
                511,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/relative/1/device_flow/refresh_access_token::refresh_access_token",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .device_flow.refresh_access_token from .device_flow",
            "spans": [
              [
                531,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/relative/1/errors::relative/1/errors",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .errors",
            "spans": [
              [
                557,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/relative/1/errors/linksnapautherror::linksnapautherror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .errors.LinkSnapAuthError from .errors",
            "spans": [
              [
                572,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/relative/1/errors/refresherror::refresherror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports .errors.RefreshError from .errors",
            "spans": [
              [
                591,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/typing/optional::optional",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Optional from typing",
            "spans": [
              [
                482,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/pathlib/path::path",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports Path from pathlib",
            "spans": [
              [
                458,
                4
              ]
            ]
          },
          {
            "id": "metadata/import/python/configparser::configparser",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports configparser",
            "spans": [
              [
                324,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/dataclasses/dataclass::dataclass",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports dataclass from dataclasses",
            "spans": [
              [
                428,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/dataclasses::dataclasses",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports dataclasses",
            "spans": [
              [
                409,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/httpx::httpx",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports httpx",
            "spans": [
              [
                499,
                5
              ]
            ]
          },
          {
            "id": "metadata/import/python/os::os",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports os",
            "spans": [
              [
                344,
                2
              ]
            ]
          },
          {
            "id": "metadata/import/python/pathlib::pathlib",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports pathlib",
            "spans": [
              [
                443,
                7
              ]
            ]
          },
          {
            "id": "metadata/import/python/stat::stat",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports stat",
            "spans": [
              [
                354,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/tempfile::tempfile",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports tempfile",
            "spans": [
              [
                366,
                8
              ]
            ]
          },
          {
            "id": "metadata/import/python/threading::threading",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports threading",
            "spans": [
              [
                382,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/time::time",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports time",
            "spans": [
              [
                399,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/python/typing::typing",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports typing",
            "spans": [
              [
                468,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                199,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                2254,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                3166,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/browser-automation::authentication-token-name-literal",
            "conf": 0.9,
            "crit": 3,
            "desc": "Authentication token name literal",
            "spans": [
              [
                2272,
                12
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::oauth-client-id-field",
            "conf": 0.65,
            "crit": 3,
            "desc": "OAuth client_id field",
            "spans": [
              [
                698,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/oauth::refresh-token-snake-assign",
            "conf": 0.9,
            "crit": 3,
            "desc": "Snake-case OAuth refresh_token field assign",
            "spans": [
              [
                717,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/token-auth::access-token-field-source",
            "conf": 0.92,
            "crit": 3,
            "desc": "Access token field in source",
            "spans": [
              [
                2586,
                16
              ],
              [
                3361,
                15
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/token-auth::refresh-token-field-source",
            "conf": 0.92,
            "crit": 3,
            "desc": "Refresh token field in source",
            "spans": [
              [
                3623,
                17
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/membership::not-in-membership-check",
            "conf": 0.3,
            "crit": 3,
            "desc": "Python not-in membership check",
            "spans": [
              [
                2323,
                27
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/write/file/descriptor::python-os-fdopen-write-mode",
            "conf": 0.9,
            "crit": 3,
            "desc": "Python opens a file descriptor for writing",
            "spans": [
              [
                4102,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/env/secret-name::refresh-token-env-name",
            "conf": 0.94,
            "crit": 3,
            "desc": "OAuth refresh-token environment variable",
            "spans": [
              [
                2792,
                13
              ],
              [
                6761,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/time/schedule/waitable::event-wait-call",
            "conf": 0.86,
            "crit": 3,
            "desc": "Waits on a Python event object",
            "spans": [
              [
                6008,
                10
              ]
            ]
          },
          {
            "id": "objectives/credential-access/cloud/token/files::python-refresh-token-json-get",
            "atk": "T1528",
            "conf": 0.94,
            "crit": 3,
            "desc": "Python reads refresh_token JSON key",
            "spans": [
              [
                2786,
                21
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/device-code::token-object-field",
            "conf": 0.93,
            "crit": 3,
            "desc": "OAuth token object member",
            "spans": [
              [
                3361,
                15
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/parse/vocabulary::credential-path-segment",
            "conf": 0.92,
            "crit": 3,
            "desc": "Password or credential path segment",
            "spans": [
              [
                1304,
                12
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/parse/vocabulary::credentials-path-tail",
            "conf": 0.4,
            "crit": 3,
            "desc": "Path ending in credentials",
            "spans": [
              [
                93,
                13
              ],
              [
                1304,
                13
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/chmod/modify::python-path-chmod",
            "atk": "T1222",
            "mbc": "E1222",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python calls chmod to change permissions",
            "spans": [
              [
                4171,
                8
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/path/location::home-hidden-dotdir-ref",
            "conf": 0.6,
            "crit": 3,
            "desc": "Home-relative hidden directory path literal",
            "spans": [
              [
                82,
                12
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/env/read::python-os-getenv-call",
            "conf": 0.92,
            "crit": 3,
            "desc": "Python reads an environment variable",
            "spans": [
              [
                1168,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/token-auth::access-refresh-token-pair",
            "conf": 0.94,
            "crit": 3,
            "desc": "Access and refresh token pair",
            "uses": [
              24,
              25
            ],
            "spans": [
              [
                2586,
                16
              ],
              [
                3361,
                15
              ],
              [
                3623,
                17
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "id": 8,
        "sha": "9b871922637d69ab59c8b3977f6b8fcb0c8faa483a9990a7b38f39b4b322b8c2",
        "path": "forjio_linksnap-0.1.1-py3-none-any.whl!!forjio_linksnap-0.1.1.dist-info/METADATA",
        "risk": 1,
        "size": 4327,
        "type": "pkg_info",
        "depth": 1
      },
      {
        "id": 9,
        "mol": "Md",
        "sha": "c1111520ea8a06650b5a41bc4e858fc8a6d2ecc4af53b94c00be075f6771b9da",
        "path": "forjio-linksnap@0.1.1.registry.json",
        "risk": 1,
        "size": 910,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 2,
    "v": "8"
  }
}