
    Cj                     B    S SK r SSKJr  SSKJr  SSKJr  SSKJr  S r	g)    N   )CVSS2)CVSS3)CVSS4)	CVSSErrorc                 x   [         R                  " S5      R                  U 5      n[        5       nU Hd  n UR	                  S5      (       a  [        U5      nO-UR	                  S5      (       a  [        U5      nO[        U5      nUR                  U5        Mf     [        U5      $ ! [        [        4 a     M  f = f)a  
Parses CVSS2, CVSS3, and CVSS4 vectors from arbitrary text and returns a list of CVSS objects.

Parses text for substrings that look similar to CVSS vector
and feeds these matches to CVSS constructor.

Args:
    text (str): arbitrary text
Returns:
    A list of CVSS objects.
z#(?:CVSS:[3-4]\.\d/)?[A-Za-z:/]{26,}zCVSS:4.zCVSS:3.)recompilefindallset
startswithr   r   r   addr   KeyErrorlist)textmatchescvsssmatchcvsss        ]/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/cvss/parser.pyparse_cvss_from_textr   	   s    " jj?@HHNGEE
		**U|!!),,U|U|IIdO  ; 8$ 		s   A B%%B98B9)
r	   cvss2r   cvss3r   cvss4r   
exceptionsr   r        r   <module>r      s    	    !!r   