Ë
    sPêjpŸ  ã                   ó   — d Z ddlZddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ej8                  dk\  rddlmZ nddlmZ ddlZ ddl!m"Z" ddl#m$Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6 dZ7e jp                   G d„ de9e«      «       Z:e jv                   G d„ d«      «       Z<e jp                   G d„ de9e«      «       Z=e jv                   G d„ d«      «       Z>e jp                   G d „ d!e9e«      «       Z? G d"„ d#e j€                  j‚                  «      ZBe jv                   G d$„ d%«      «       ZCe jp                   G d&„ d'e9e«      «       ZD G d(„ d)e j€                  j‚                  «      ZE e jv                  d*¬+«       G d,„ d-e j€                  j‚                  «      «       ZF e jv                  d*¬+«       G d.„ d/«      «       ZG e jv                  d*¬+«       G d0„ d1«      «       ZH e jv                  d*¬+«       G d2„ d3«      «       ZI e jv                  d*¬+«       G d4„ d5«      «       ZJ e jv                  d*¬+«       G d6„ d7«      «       ZK e jv                  d*¬+«       G d8„ d9«      «       ZLy):a  
Uniform set of models to represent objects within a CycloneDX software bill-of-materials.

You can either create a `cyclonedx.model.bom.Bom` yourself programmatically, or generate a `cyclonedx.model.bom.Bom`
from a `cyclonedx.parser.BaseParser` implementation.
é    N)Ú	GeneratorÚIterable)Údatetime)ÚEnum)Úreduce)Úloads)ÚAnyÚOptionalÚUnion)Úquote)ÚUUID)Úwarn)ÚElement)é   é   )Ú
deprecated)Ú	SortedSeté   )ÚComparableTuple)ÚInvalidLocaleTypeExceptionÚInvalidUriException)Ú!CycloneDxDeserializationExceptionÚ'SerializationOfUnexpectedValueException)ÚSchemaVersion1Dot0ÚSchemaVersion1Dot1ÚSchemaVersion1Dot2ÚSchemaVersion1Dot3ÚSchemaVersion1Dot4ÚSchemaVersion1Dot5ÚSchemaVersion1Dot6ÚSchemaVersion1Dot7é   )ÚBomRefzurn:cdx:c                   ó    — e Zd ZdZdZdZdZdZy)ÚDataFlowzÓ
    This is our internal representation of the dataFlowType simple type within the CycloneDX standard.

    .. note::
        See the CycloneDX Schema: https://cyclonedx.org/docs/1.7/xml/#type_dataFlowType
    ÚinboundÚoutboundzbi-directionalÚunknownN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚINBOUNDÚOUTBOUNDÚBI_DIRECTIONALÚUNKNOWN© ó    ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/cyclonedx/model/__init__.pyr%   r%   @   s   „ ñð €GØ€HØ%€NØ�Gr2   r%   c                   ó”  — e Zd ZdZdededdfd„Ze ej                  «       defd„«       «       Z
e
j                  deddfd„«       Z
e ej                  d	«       ej                  ej                  j                  «      defd
„«       «       «       Zej                  deddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)ÚDataClassificationaÇ  
    This is our internal representation of the `dataClassificationType` complex type within the CycloneDX standard.

    DataClassification might be deprecated since CycloneDX 1.5, but it is not deprecated in this library.
    In fact, this library will try to provide a compatibility layer if needed.

    .. note::
        See the CycloneDX Schema for dataClassificationType:
        https://cyclonedx.org/docs/1.7/xml/#type_dataClassificationType
    ÚflowÚclassificationÚreturnNc                ó    — || _         || _        y ©N)r6   r7   )Úselfr6   r7   s      r3   Ú__init__zDataClassification.__init__[   s   € ð
 ˆŒ	Ø,ˆÕr2   c                 ó   — | j                   S )aÉ  
        Specifies the flow direction of the data.

        Valid values are: inbound, outbound, bi-directional, and unknown.

        Direction is relative to the service.

        - Inbound flow states that data enters the service
        - Outbound flow states that data leaves the service
        - Bi-directional states that data flows both ways
        - Unknown states that the direction is not known

        Returns:
            `DataFlow`
        ©Ú_flow©r;   s    r3   r6   zDataClassification.flowc   s   € ð$ �z‰zÐr2   c                 ó   — || _         y r:   r>   )r;   r6   s     r3   r6   zDataClassification.floww   ó	   € àˆ�
r2   ú.c                 ó   — | j                   S )z£
        Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed.

        Returns:
            `str`
        ©Ú_classificationr@   s    r3   r7   z!DataClassification.classification{   s   € ð ×#Ñ#Ð#r2   c                 ó   — || _         y r:   rE   )r;   r7   s     r3   r7   z!DataClassification.classification‡   s
   € à-ˆÕr2   c                 óD   — t        | j                  | j                  f«      S r:   )Ú_ComparableTupler6   r7   r@   s    r3   Ú__comparable_tuplez%DataClassification.__comparable_tuple‹   s#   € ÜØ�I‰I�t×*Ñ*ð!
ó ð 	r2   Úotherc                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S y©NF)Ú
isinstancer5   Ú%_DataClassification__comparable_tuple©r;   rK   s     r3   Ú__eq__zDataClassification.__eq__�   ó-   € Ü�eÔ/Ô0Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   r5   rO   ÚNotImplementedrP   s     r3   Ú__lt__zDataClassification.__lt__•   ó0   € Ü�eÔ/Ô0Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr2   c                 ó4   — t        | j                  «       «      S r:   )ÚhashrO   r@   s    r3   Ú__hash__zDataClassification.__hash__š   ó   € Ü�D×+Ñ+Ó-Ó.Ð.r2   c                 ó"   — d| j                   › d�S )Nz<DataClassification flow=ú>)r6   r@   s    r3   Ú__repr__zDataClassification.__repr__�   s   € Ø*¨4¯9©9¨+°QÐ7Ð7r2   )r)   r*   r+   r,   r%   Ústrr<   ÚpropertyÚserializableÚxml_attributer6   ÚsetterÚxml_nameÚ
xml_stringÚXmlStringSerializationTypeÚNORMALIZED_STRINGr7   rI   rO   ÚobjectÚboolrQ   rU   ÚintrY   r]   r1   r2   r3   r5   r5   N   sA  „ ñ	ð-àð-ð ð-ð 
ó	-ð Ø€\×ÑÓ!ð�hò ó "ó ðð$ 
‡[�[ð˜ð  dò ó ðð Ø€\×Ñ˜3ÓØ€\×Ñ˜\×DÑD×VÑVÓWð$ ò $ó Xó  ó ð$ð ×Ñð.¨Sð .°Tò .ó ð.ðÐ$4ó ð
˜Fð  tó ð
˜Fð  tó ð
/˜#ó /ð8˜#ô 8r2   r5   c                   ó   — e Zd ZdZdZy)ÚEncodingzË
    This is our internal representation of the encoding simple type within the CycloneDX standard.

    .. note::
        See the CycloneDX Schema: https://cyclonedx.org/docs/1.7/xml/#type_encoding
    Úbase64N)r)   r*   r+   r,   ÚBASE_64r1   r2   r3   rk   rk   ¡   s   „ ñð �Gr2   rk   c            	       óL  — e Zd ZdZdZeddœdededee   ddfd	„Ze	 e
j                  «        e
j                  d
«       e
j                  e
j                  j                  «      defd„«       «       «       «       Zej"                  deddfd„«       Ze	 e
j                  «       dee   fd„«       «       Zej"                  dee   ddfd„«       Ze	 e
j                  d«      defd„«       «       Zej"                  deddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)ÚAttachedTextzë
    This is our internal representation of the `attachedTextType` complex type within the CycloneDX standard.

    .. note::
        See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.7/xml/#type_attachedTextType
    ú
text/plainN©Úcontent_typeÚencodingÚcontentrr   rs   r8   c                ó.   — || _         || _        || _        y r:   )rr   rs   rt   ©r;   rt   rr   rs   s       r3   r<   zAttachedText.__init__·   s   € ð )ˆÔØ ˆŒØˆ�r2   úcontent-typec                 ó   — | j                   S )z†
        Specifies the content type of the text. Defaults to text/plain if not specified.

        Returns:
            `str`
        ©Ú_content_typer@   s    r3   rr   zAttachedText.content_typeÁ   s   € ð ×!Ñ!Ð!r2   c                 ó   — || _         y r:   ry   ©r;   rr   s     r3   rr   zAttachedText.content_typeÎ   ó
   € à)ˆÕr2   c                 ó   — | j                   S )z‰
        Specifies the optional encoding the text is represented in.

        Returns:
            `Encoding` if set else `None`
        ©Ú	_encodingr@   s    r3   rs   zAttachedText.encodingÒ   ó   € ð �~‰~Ðr2   c                 ó   — || _         y r:   r   ©r;   rs   s     r3   rs   zAttachedText.encodingÝ   ó	   € à!ˆ�r2   rC   c                 ó   — | j                   S )zÑ
        The attachment data.

        Proactive controls such as input validation and sanitization should be employed to prevent misuse of attachment
        text.

        Returns:
            `str`
        ©Ú_contentr@   s    r3   rt   zAttachedText.contentá   s   € ð �}‰}Ðr2   c                 ó   — || _         y r:   r†   ©r;   rt   s     r3   rt   zAttachedText.contentï   ó	   € àˆ�r2   c                 óZ   — t        | j                  | j                  | j                  f«      S r:   )rI   rr   rs   rt   r@   s    r3   rJ   zAttachedText.__comparable_tupleó   s)   € ÜØ×Ñ˜tŸ}™}¨d¯l©lð!
ó ð 	r2   rK   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrM   )rN   ro   Ú_AttachedText__comparable_tuplerP   s     r3   rQ   zAttachedText.__eq__ø   s,   € Ü�eœ\Ô*Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   ro   r�   rT   rP   s     r3   rU   zAttachedText.__lt__ý   s/   € Ü�eœ\Ô*Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr2   c                 ó4   — t        | j                  «       «      S r:   )rX   r�   r@   s    r3   rY   zAttachedText.__hash__  rZ   r2   c                 ó<   — d| j                   › d| j                  › d�S )Nz<AttachedText content-type=ú, encoding=r\   rq   r@   s    r3   r]   zAttachedText.__repr__  s#   € Ø,¨T×->Ñ->Ð,?¸{È4Ï=É=È/ÐYZÐ[Ð[r2   )r)   r*   r+   r,   ÚDEFAULT_CONTENT_TYPEr^   r
   rk   r<   r_   r`   ra   rc   rd   re   rf   rr   rb   rs   rt   rI   r�   rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   ro   ro   ¬   sÕ  „ ñð (Ðð
 1Ø'+ò	àðð ðð ˜8Ñ$ð	ð
 
óð Ø€\×ÑÓ!Ø€\×Ñ˜>Ó*Ø€\×Ñ˜\×DÑD×VÑVÓWð"˜cò "ó Xó +ó "ó ð"ð ×Ñð*¨ð *°ò *ó ð*ð Ø€\×ÑÓ!ð˜( 8Ñ,ò ó "ó ðð ‡_�_ð" ¨(Ñ!3ð "¸ò "ó ð"ð Ø€\×Ñ˜3Óð
˜ò 
ó  ó ð
ð ‡^�^ð ˜sð   tò  ó ð ðÐ$4ó ð
˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð\˜#ô \r2   ro   c                   óH   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZy)ÚHashAlgorithmzÉ
    This is our internal representation of the hashAlg simple type within the CycloneDX standard.

    .. note::
        See the CycloneDX Schema: https://cyclonedx.org/docs/1.7/xml/#type_hashAlg
    zBLAKE2b-256zBLAKE2b-384zBLAKE2b-512ÚBLAKE3ÚMD5zSHA-1zSHA-256zSHA-384zSHA-512zSHA3-256zSHA3-384zSHA3-512zStreebog-256zStreebog-512N)r)   r*   r+   r,   ÚBLAKE2B_256ÚBLAKE2B_384ÚBLAKE2B_512r•   r–   ÚSHA_1ÚSHA_256ÚSHA_384ÚSHA_512ÚSHA3_256ÚSHA3_384ÚSHA3_512ÚSTREEBOG_256ÚSTREEBOG_512r1   r2   r3   r”   r”   	  sO   „ ñð  €KØ€KØ€KØ€FØ
€CØ€EØ€GØ€GØ€GØ€HØ€HØ€HØ!€LØ!�Lr2   r”   c                   óT  — e Zd ZU dZ e«       Zeeej                     e	e
   f   ed<    e	e
j                  e
j                  e
j                  e
j                  e
j                   e
j"                  e
j$                  h«      ee<   ee   ee<   ee   e
j*                  e
j,                  e
j.                  e
j0                  e
j2                  hz  ee<   ee   ee<   ee   ee<   ee   ee<   ee   ee<   ee   e
j>                  e
j@                  hz  ee!<   e"de#d   deej                     de$d   fd„«       Z%e"d	e#d   de&eej                        d
e'de(e'   fd„«       Z)e"d	e#d   de*de&eej                        de&e*   d
e'de+fd„«       Z,e"d	e'd
e'de(d   fd„«       Z-e"d	dde&e*   d
e'de(d   fd„«       Z.y)Ú&_HashTypeRepositorySerializationHelperú   THIS CLASS IS NON-PUBLIC API  Ú-_HashTypeRepositorySerializationHelper__CASESÚhtsÚHashTypeÚviewr8   )r¨   NNc              #   ó¢   K  — | j                   j                  |d«      }|D ]*  }|j                  |v r|–— Œt        d|›�t        d¬«       Œ, y ­w)Nr1   z8serialization omitted due to unsupported HashAlgorithm: r   )ÚcategoryÚ
stacklevel)r¦   ÚgetÚalgr   ÚUserWarning)Úclsr§   r©   ÚcasesÚhts        r3   Ú__prepz-_HashTypeRepositorySerializationHelper.__prep@  sQ   è ø€ à—‘—‘  bÓ)ˆØò 	9ˆBØ�v‰v˜‰Ø“äÐOÐPRÈvÐVÜ)°aö9ñ		9ùs   ‚AAÚoÚ__c                ó†   — |€J ‚| j                  ||«      D �cg c]  }t        |j                  |¬«      «      ‘Œ c}S c c}w )N)Úview_)Ú,_HashTypeRepositorySerializationHelper__prepÚ
json_loadsÚas_json)r°   r´   r©   rµ   r²   s        r3   Újson_normalizez5_HashTypeRepositorySerializationHelper.json_normalizeJ  sX   € ð ÐÐÐð
 Ÿ
™
 1 dÓ+ö	
ð ô Ø—
‘
Øð ó  õò
ð 	
ùò 
s   ™">Úelement_nameÚxmlnsc                ó~   ‡‡— ‰€J ‚t        |«      }|j                  ˆˆfd„| j                  |‰«      D «       «       |S )Nc              3   óH   •K  — | ]  }|j                  ‰d d‰¬«      –— Œ y­w)FrX   )r·   Ú	as_stringr¼   r½   N)Úas_xml)Ú.0r²   r©   r½   s     €€r3   ú	<genexpr>zG_HashTypeRepositorySerializationHelper.xml_normalize.<locals>.<genexpr>^  s2   øè ø€ ò 
ð ð �I‰IØ e¸&Èð ÷ ñ
ùs   ƒ")Ú
XmlElementÚextendr¸   )r°   r´   r¼   r©   r½   rµ   Úelems      ``  r3   Úxml_normalizez4_HashTypeRepositorySerializationHelper.xml_normalizeV  sH   ù€ ð ÐÐÐÜ˜,Ó'ˆØ�‰ô 
ð Ÿ
™
 1 dÓ+ô
ô 	
ð
 ˆr2   c                 óR   — |D �cg c]  }t         j                  |«      ‘Œ c}S c c}w r:   )r¨   Ú	from_json)r°   r´   rµ   r²   s       r3   Újson_denormalizez7_HashTypeRepositorySerializationHelper.json_denormalizee  s2   € ð
  ö
àô ×ÑØõò
ð 	
ùò 
s   …$rÄ   Ú
default_nsc                óT   — |D �cg c]  }t         j                  ||«      ‘Œ c}S c c}w r:   )r¨   Úfrom_xml)r°   r´   rË   rµ   r²   s        r3   Úxml_denormalizez6_HashTypeRepositorySerializationHelper.xml_denormalizem  s4   € ð +,ö
à$&ô ×ÑØ�Jõ ò
ð 	
ùò 
s   …%N)/r)   r*   r+   r,   Údictr¦   Útyper`   ÚViewTypeÚ	frozensetr”   Ú__annotations__r–   rš   r›   rœ   r�   rž   r    r   r   r—   r˜   r™   r•   rŸ   r   r   r   r   r    r¡   r¢   r!   Úclassmethodr   r   r¸   r
   r	   Úlistr»   r^   rÄ   rÇ   rÊ   rÎ   r1   r2   r3   r¤   r¤   "  s©  … Ù*áKOË6€GˆT�$�|×,Ñ,Ñ-¨y¸Ñ/GÐGÑHÓQÙ"+Ø×ÑØ×ÑØ×ÑØ×ÑØ×ÑØ×ÑØ×Ñð-ó #€GÐÑð #*Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=Ø×!Ñ!Ø×!Ñ!Ø×!Ñ!Ø×ÑØ×ÑðAñ #€GÐÑð #*Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=Ø×"Ñ"Ø×"Ñ"ðAñ #€GÐÑð
 ð9˜ *Ñ-ð 9°T¸,×:OÑ:OÑ5Pð 9ÐU^Ð_uÑUvò 9ó ð9ð ð	
˜x¨
Ñ3ð 	
Ø% d¨<×+@Ñ+@Ñ&AÑBð	
à ð	
à%)¨#¡Yò	
ó ð	
ð ð˜h zÑ2ð Ø$'ðà$ T¨,×*?Ñ*?Ñ%@ÑAðð & c™]ðð  ð	ð %/ò	ó ðð ð
 ð 
Ø"ð
Ø'+¨JÑ'7ò
ó ð
ð ð
 ð 
Ø$,¨S¡Mð
à!ð
à&*¨:Ñ&6ò
ó ñ
r2   r¤   c                   óø  — e Zd ZdZe ed«      dededd fd„«       «       Ze ed«      dedd fd	„«       «       Zd
e	deddfd„Z
e ej                  «       de	fd„«       «       Zej                  d
e	ddfd„«       Ze ej                   d«       ej"                  ej$                  j&                  «      defd„«       «       «       Zej                  deddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)r¨   zÙ
    This is our internal representation of the hashType complex type within the CycloneDX standard.

    .. note::
        See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.7/xml/#type_hashType
    z^Deprecated - use cyclonedx.contrib.hash.factories.HashTypeFactory().from_hashlib_alg() insteadÚhashlib_algrt   r8   c                 ó<   — ddl m}  |«       j                  | |«      S )u<  Deprecated â€” Alias of :func:`cyclonedx.contrib.hash.factories.HashTypeFactory.from_hashlib_alg`.

        Attempts to convert a hashlib-algorithm to our internal model classes.

        .. deprecated:: next
            Use ``cyclonedx.contrib.hash.factories.HashTypeFactory().from_hashlib_alg()`` instead.
        r   ©ÚHashTypeFactory)Úcontrib.hash.factoriesrÚ   Úfrom_hashlib_alg)r×   rt   rÚ   s      r3   rÜ   zHashType.from_hashlib_alg€  s   € õ 	=áÓ ×1Ñ1°+¸wÓGÐGr2   z`Deprecated - use cyclonedx.contrib.hash.factories.HashTypeFactory().from_composite_str() insteadÚcomposite_hashc                 ó:   — ddl m}  |«       j                  | «      S )u„  Deprecated â€” Alias of :func:`cyclonedx.contrib.hash.factories.HashTypeFactory.from_composite_str`.

        Attempts to convert a string which includes both the Hash Algorithm and Hash Value and represent using our
        internal model classes.

        .. deprecated:: next
            Use ``cyclonedx.contrib.hash.factories.HashTypeFactory().from_composite_str()`` instead.
        r   rÙ   )rÛ   rÚ   Úfrom_composite_str)rÝ   rÚ   s     r3   rß   zHashType.from_composite_strŽ  s   € õ 	=áÓ ×3Ñ3°NÓCÐCr2   r®   Nc                ó    — || _         || _        y r:   )r®   rt   )r;   r®   rt   s      r3   r<   zHashType.__init__�  s   € ð
 ˆŒØˆ�r2   c                 ó   — | j                   S )zp
        Specifies the algorithm used to create the hash.

        Returns:
            `HashAlgorithm`
        ©Ú_algr@   s    r3   r®   zHashType.alg¥  ó   € ð �y‰yÐr2   c                 ó   — || _         y r:   râ   )r;   r®   s     r3   r®   zHashType.alg°  ó	   € àˆ�	r2   rC   c                 ó   — | j                   S )zI
        Hash value content.

        Returns:
            `str`
        r†   r@   s    r3   rt   zHashType.content´  s   € ð �}‰}Ðr2   c                 ó   — || _         y r:   r†   r‰   s     r3   rt   zHashType.contentÀ  rŠ   r2   c                 óD   — t        | j                  | j                  f«      S r:   )rI   r®   rt   r@   s    r3   rJ   zHashType.__comparable_tupleÄ  s!   € ÜØ�H‰H�d—l‘lð!
ó ð 	r2   rK   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrM   )rN   r¨   Ú_HashType__comparable_tuplerP   s     r3   rQ   zHashType.__eq__É  ó,   € Ü�eœXÔ&Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   r¨   rë   rT   rP   s     r3   rU   zHashType.__lt__Î  ó/   € Ü�eœXÔ&Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr2   c                 ó4   — t        | j                  «       «      S r:   )rX   rë   r@   s    r3   rY   zHashType.__hash__Ó  rZ   r2   c                 óP   — d| j                   j                  › d| j                  › d�S )Nz
<HashType ú:r\   )r®   Únamert   r@   s    r3   r]   zHashType.__repr__Ö  s#   € Ø˜DŸH™HŸM™M˜?¨!¨D¯L©L¨>¸Ð;Ð;r2   )r)   r*   r+   r,   Ústaticmethodr   r^   rÜ   rß   r”   r<   r_   r`   ra   r®   rb   rc   rd   re   ÚTOKENrt   rI   rë   rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   r¨   r¨   w  s±  „ ñð ÙÐpÓqð
H cð 
H°Cð 
H¸Jò 
Hó ró ð
Hð ÙÐrÓsðD¨3ð D°:ò Dó tó ðDðàðð ðð 
ó	ð Ø€\×ÑÓ!ð�]ò ó "ó ðð 	‡Z�Zð�}ð ¨ò ó ðð Ø€\×Ñ˜3ÓØ€\×Ñ˜\×DÑD×JÑJÓKð˜ò ó Ló  ó ðð ‡^�^ð ˜sð   tò  ó ð ðÐ$4ó ð
˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð<˜#ô <r2   r¨   c                   óÐ   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d+Z0d.Z1d/Z2d0Z3y1)2ÚExternalReferenceTypezò
    Enum object that defines the permissible 'types' for an External Reference according to the CycloneDX schema.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_externalReferenceType
    zadversary-modelÚ
advisoriesÚattestationÚbomz
build-metazbuild-systemzcertification-reportÚchatÚcitationzcodified-infrastructurezcomponent-analysis-reportÚconfigurationzdigital-signatureÚdistributionzdistribution-intakeÚdocumentationzdynamic-analysis-reportzelectronic-signatureÚevidencezexploitability-statementÚformulationzissue-trackerÚlicenseÚlogzmailing-listzmaturity-reportz
model-cardÚpatentzpatent-assertionzpatent-familyzpentest-reportÚpoamzquality-metricszrelease-noteszrfc-9116zrisk-assessmentzruntime-analysis-reportzsecurity-contactzstatic-analysis-reportÚsocialzsource-distributionÚvcsÚsupportzthreat-modelzvulnerability-assertionÚwebsiterK   N)4r)   r*   r+   r,   ÚADVERSARY_MODELÚ
ADVISORIESÚATTESTATIONÚBOMÚ
BUILD_METAÚBUILD_SYSTEMÚCERTIFICATION_REPORTÚCHATÚCITATIONÚCODIFIED_INFRASTRUCTUREÚCOMPONENT_ANALYSIS_REPORTÚCONFIGURATIONÚDIGITAL_SIGNATUREÚDISTRIBUTIONÚDISTRIBUTION_INTAKEÚDOCUMENTATIONÚDYNAMIC_ANALYSIS_REPORTÚELECTRONIC_SIGNATUREÚEVIDENCEÚEXPLOITABILITY_STATEMENTÚFORMULATIONÚISSUE_TRACKERÚLICENSEÚLOGÚMAILING_LISTÚMATURITY_REPORTÚ
MODEL_CARDÚPATENTÚPATENT_ASSERTIONÚPATENT_FAMILYÚPENTEST_REPORTÚPOAMÚQUALITY_METRICSÚRELEASE_NOTESÚRFC_9166ÚRISK_ASSESSMENTÚRUNTIME_ANALYSIS_REPORTÚSECURITY_CONTACTÚSTATIC_ANALYSIS_REPORTÚSOCIALÚSOURCE_DISTRIBUTIONÚSCMÚSUPPORTÚTHREAT_MODELÚVCSÚVULNERABILITY_ASSERTIONÚWEBSITEÚOTHERr1   r2   r3   rö   rö   Ú  s  „ ñð (€OØ€JØ€KØ
€CØ€JØ!€LØ1ÐØ€DØ€HØ7ÐØ ;ÐØ#€MØ+ÐØ!€LØ/ÐØ#€MØ7ÐØ1ÐØ€HØ9ÐØ€KØ#€MØ€GØ
€CØ!€LØ'€OØ€JØ€FØ)ÐØ#€MØ%€NØ€DØ'€OØ#€MØ€HØ'€OØ7ÐØ)ÐØ5ÐØ€FØ/ÐØ
€CØ€GØ!€LØ
€CØ7ÐØ€Gà�Er2   rö   c                   óÂ  — e Zd ZU dZ e«       Zeeej                     e	e
   f   ed<    e	e
j                  e
j                  e
j                  e
j                  e
j                   e
j"                  e
j$                  e
j&                  e
j(                  e
j*                  e
j,                  e
j.                  e
j0                  e
j2                  e
j4                  h«      ee<   ee   ee<   ee   ee<   ee   e
j<                  hz  ee<   ee   e
j@                  e
jB                  e
jD                  e
jF                  e
jH                  e
jJ                  e
jL                  e
jN                  e
jP                  e
jR                  e
jT                  e
jV                  e
jX                  e
jZ                  e
j\                  e
j^                  e
j`                  e
jb                  e
jd                  e
jf                  e
jh                  e
jj                  e
jl                  hz  ee7<   ee7   e
jp                  e
jr                  e
jt                  e
jv                  hz  ee<<   ee<   e
jz                  e
j|                  e
j~                  e
j€                  hz  eeA<   eBde
deej                     deCfd„«       ZDeBdeEdeFeej                        deEdeCfd	„«       ZGeBdeEdeFeej                        deEdeCfd
„«       ZHeBdeEde
fd„«       ZIy)Ú%_ExternalReferenceSerializationHelperr¥   Ú,_ExternalReferenceSerializationHelper__CASESÚextrefr©   r8   c                 óŠ   — || j                   j                  |d«      v r|j                  S t        j                  j                  S )Nr1   )r;  r­   rö   r8  Úvalue)r°   r<  r©   s      r3   Ú__normalizez1_ExternalReferenceSerializationHelper.__normalizeV  sA   € ð ˜Ÿ™Ÿ™¨¨rÓ2Ñ2ð ÷ ‰%ð		ô '×,Ñ,ß
‰%ð		r2   r´   rµ   c                ó.   — |€J ‚| j                  ||«      S r:   ©Ú0_ExternalReferenceSerializationHelper__normalize©r°   r´   r©   rµ   s       r3   r»   z4_ExternalReferenceSerializationHelper.json_normalize^  ó!   € ð ÐÐÐØ�‰˜q $Ó'Ð'r2   c                ó.   — |€J ‚| j                  ||«      S r:   rA  rC  s       r3   rÇ   z3_ExternalReferenceSerializationHelper.xml_normalizee  rD  r2   c                 ó   — t        |«      S r:   )rö   ©r°   r´   s     r3   Údeserializez1_ExternalReferenceSerializationHelper.deserializel  s   € ä$ QÓ'Ð'r2   N)Jr)   r*   r+   r,   rÏ   r;  rÐ   r`   rÑ   rÒ   rö   rÓ   r5  r  r7  r
  r  r!  r0  r  r  r3  r  r  r  r  r8  r   r   r   r*  r   r  r.  r#  r   r  r  r  r  r4  r	  r,  r6  r  r'  r/  r  r-  r  r"  r  r)  r  r(  r   r1  r  r  r+  r    r  r$  r%  r&  r!   rÔ   r^   rB  r	   r
   r»   rÇ   rH  r1   r2   r3   r:  r:    sb  … Ù*áSWÓSY€GˆT�$�|×,Ñ,Ñ-¨yÐ9NÑ/OÐOÑPÓYÙ"+Ø×!Ñ!Ø×+Ñ+Ø×%Ñ%Ø×(Ñ(Ø×!Ñ!Ø×*Ñ*Ø×$Ñ$Ø×"Ñ"Ø×+Ñ+Ø×%Ñ%Ø×*Ñ*Ø×%Ñ%Ø×(Ñ(Ø×*Ñ*Ø×#Ñ#ð-ó #€GÐÑð" #*Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=€GÐÑØ")Ð*<Ñ"=Ø×+Ñ+ðAñ #€GÐÑð #*Ð*<Ñ"=Ø×1Ñ1Ø×.Ñ.Ø×(Ñ(Ø×!Ñ!Ø×+Ñ+Ø×&Ñ&Ø×)Ñ)Ø×)Ñ)Ø×*Ñ*Ø×-Ñ-Ø×-Ñ-Ø×5Ñ5Ø×6Ñ6Ø×,Ñ,Ø×4Ñ4Ø×5Ñ5Ø×5Ñ5Ø×7Ñ7Ø×-Ñ-Ø×2Ñ2Ø×-Ñ-Ø×5Ñ5Ø×"Ñ"ð/Añ #€GÐÑð2 #*Ð*<Ñ"=Ø×1Ñ1Ø×2Ñ2Ø×/Ñ/Ø×&Ñ&ð	Añ #€GÐÑð #*Ð*<Ñ"=Ø×&Ñ&Ø×$Ñ$Ø×.Ñ.Ø×+Ñ+ð	Añ #€GÐÑð ðÐ!6ð ¸dÀ<×CXÑCXÑ>Yð Ð^aò ó ðð ð(˜sð (Ø% d¨<×+@Ñ+@Ñ&AÑBð(à ð(à%(ò(ó ð(ð ð(˜cð (Ø$ T¨,×*?Ñ*?Ñ%@ÑAð(àð(à$'ò(ó ð(ð ð(˜Cð (Ð$9ò (ó ñ(r2   r:  T)Ú%ignore_unknown_during_deserializationc                   óê  — e Zd ZdZ ej
                  dej                  ej                  z   «      ZdZ	e
dedeeef   defd„«       Zededefd	„«       Zd
eddfd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zdefd„Ze ej6                  d«       ej8                  d«      defd„«       «       «       Zededefd„«       Zededd fd„«       Ze	 	 dde e!ef   dede"e ee#f      dd fd„«       Z$defd„Z%y)ÚXsUria”  
    Helper class that allows us to perform validation on data strings that are defined as xs:anyURI
    in CycloneDX schema.

    Developers can just use this via `str(XsUri('https://www.google.com'))`.

    .. note::
        See XSD definition for xsd:anyURI: http://www.datypic.com/sc/xsd/t-xsd_anyURI.html
        See JSON Schema definition for iri-reference: https://tools.ietf.org/html/rfc3987
    z%(?![0-9A-F]{2})|#.*#)	)ú z%20)ú"z%22)ú'z%27)ú[z%5B)ú]z%5D)ú<z%3C)r\   z%3E)ú{z%7B)ú}z%7DÚvÚrr8   c                 ó    —  | j                   |Ž S r:   )Úreplace)rT  rU  s     r3   Ú__spec_replacezXsUri.__spec_replaceŒ  s   € àˆq�y‰y˜!ˆ}Ðr2   r´   c                 óD   — t        | j                  | j                  |«      S )a~  
         Make a string valid to
         - XML::anyURI spec.
         - JSON::iri-reference spec.

         BEST EFFORT IMPLEMENTATION

         @see http://www.w3.org/TR/xmlschema-2/#anyURI
         @see http://www.datypic.com/sc/xsd/t-xsd_anyURI.html
         @see https://datatracker.ietf.org/doc/html/rfc2396
         @see https://datatracker.ietf.org/doc/html/rfc3987
        )r   Ú_XsUri__spec_replaceÚ_XsUri__SPEC_REPLACEMENTSrG  s     r3   Ú_spec_migratezXsUri._spec_migrate�  s   € ô �c×(Ñ(¨#×*AÑ*AÀ1ÓEÐEr2   ÚuriNc                 ó–   — t        j                  t        j                  |«      rt	        d|› d�«      ‚| j                  |«      | _        y )NzSupplied value 'z$' does not appear to be a valid URI.)ÚreÚsearchrK  Ú_INVALID_URI_REGEXr   r\  Ú_uri)r;   r]  s     r3   r<   zXsUri.__init__   sD   € Ü�9‰9”U×-Ñ-¨sÔ3Ü%Ø" 3 %Ð'KÐLóð ð ×&Ñ& sÓ+ˆ�	r2   rK   c                 óV   — t        |t        «      r| j                  |j                  k(  S yrM   )rN   rK  rb  rP   s     r3   rQ   zXsUri.__eq__§  s"   € Ü�eœUÔ#Ø—9‘9 §
¡
Ñ*Ð*Ør2   c                 ó`   — t        |t        «      r| j                  |j                  k  S t        S r:   )rN   rK  rb  rT   rP   s     r3   rU   zXsUri.__lt__¬  s%   € Ü�eœUÔ#Ø—9‘9˜uŸz™zÑ)Ð)ÜÐr2   c                 ó,   — t        | j                  «      S r:   )rX   rb  r@   s    r3   rY   zXsUri.__hash__±  s   € Ü�D—I‘I‹Ðr2   c                 ó"   — d| j                   › d�S )Nz<XsUri r\   ©rb  r@   s    r3   r]   zXsUri.__repr__´  s   € Ø˜Ÿ™˜ 1Ð%Ð%r2   c                 ó   — | j                   S r:   rg  r@   s    r3   Ú__str__zXsUri.__str__·  s   € Ø�y‰yÐr2   rC   c                 ó   — | j                   S r:   rg  r@   s    r3   r]  z	XsUri.uriº  s   € ð �y‰yÐr2   c                 óT   — t        |t        «      rt        |«      S t        d|›�«      ‚)Nz"Attempt to serialize a non-XsUri: )rN   rK  r^   r   rG  s     r3   Ú	serializezXsUri.serializeÀ  s,   € ä�aœÔÜ�q“6ˆMÜ5Ø0°°Ð6ó8ð 	8r2   c                 ón   — 	 t        t        |«      ¬«      S # t        $ r}t        d|›�«      |‚d }~ww xY w)N)r]  z&XsUri string supplied does not parse: )rK  r^   Ú
ValueErrorr   )r°   r´   Úerrs      r3   rH  zXsUri.deserializeÇ  s@   € ð	ÜœS ›VÔ$Ð$øÜò 	Ü3Ø8¸¸Ð>óàðûð	ús   ‚ —	4 /¯4Úserial_numberÚversionÚbom_refc                 ób   — |rdt        t        |«      «      › �nd} | t        › |› d|› |› �«      S )a  
        Generate a BOM-Link URI.

        Args:
            serial_number: The unique serial number of the BOM.
            version: The version of the BOM. The default version is 1.
            bom_ref: The unique identifier of the component, service, or vulnerability within the BOM.

        Returns:
            XsUri: Instance of XsUri with the generated BOM-Link URI.
        ú#Ú ú/)Ú	url_quoter^   Ú_BOM_LINK_PREFIX)r°   rp  rq  rr  Úbom_ref_parts        r3   Úmake_bom_linkzXsUri.make_bom_linkÐ  s?   € ñ$ 9@˜œ9¤S¨£\Ó2Ð3Ñ4ÀRˆÙÔ&Ð'¨ °a¸°yÀÀÐOÓPÐPr2   c                 ó@   — | j                   j                  t        «      S )zV
        Check if the URI is a BOM-Link.

        Returns:
            `bool`
        )rb  Ú
startswithrx  r@   s    r3   Úis_bom_linkzXsUri.is_bom_linkå  s   € ð �y‰y×#Ñ#Ô$4Ó5Ð5r2   )r"   N)&r)   r*   r+   r,   r_  ÚcompileÚ
IGNORECASEÚ	MULTILINEra  r[  ró   r^   ÚtuplerZ  rÔ   r\  r<   r	   rh   rQ   rU   ri   rY   r]   ri  r_   r`   Ú	json_namerc   r]  rl  rH  r   r   r
   r#   rz  r}  r1   r2   r3   rK  rK  q  sÚ  „ ñ	ð $˜Ÿ™Ð$<¸b¿m¹mÈbÏlÉlÑ>ZÓ[Ðð
Ðð ð˜#ð  %¨¨S¨¡/ð °cò ó ðð ðF˜cð F cò Fó ðFð,˜Cð , Dó ,ð˜Cð  Dó ð
˜Cð  Dó ð
˜#ó ð&˜#ó &ð˜ó ð Ø€\×Ñ˜CÓ Ø€\×Ñ˜3Óð�Sò ó  ó !ó ðð ð8˜#ð 8 #ò 8ó ð8ð ð˜Cð  Gò ó ðð ð Ø04ñ	Qà˜T 3˜YÑ'ðQð ðQð ˜%  V Ñ,Ñ-ð	Qð
 
òQó ðQð(6˜Tô 6r2   rK  c                   óö  — e Zd ZdZddddœdededee   deee	      deed	      d
dfd„Z
e ej                  d«      d
efd„«       «       Zej                  ded
dfd„«       Zed
ee   fd„«       Zej                  dee   d
dfd„«       Ze ej"                  e«       ej&                  «       d
efd„«       «       «       Zej                  ded
dfd„«       Ze ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej"                  e«      dd„«       «       «       «       «       «       «       Zej                  dee	   d
dfd„«       Ze ej*                  e«       ej:                  ej<                  j>                  d«      dd„«       «       «       Z e j                  ded	   d
dfd„«       Z d
e!fd„Z"de#d
e$fd„Z%de&d
e$fd„Z'd
e(fd„Z)d
efd„Z*y) ÚExternalReferencea  
    This is our internal representation of an ExternalReference complex type that can be used in multiple places within
    a CycloneDX BOM document.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_externalReference
    N)ÚcommentÚhashesÚ
propertiesrÐ   Úurlr…  r†  r‡  ÚPropertyr8   c                óZ   — || _         || _        || _        |xs g | _        |xs g | _        y r:   )rˆ  r…  rÐ   r†  r‡  )r;   rÐ   rˆ  r…  r†  r‡  s         r3   r<   zExternalReference.__init__ù  s0   € ð ˆŒØˆŒØˆŒ	Ø’l ˆŒØ$Ò*¨ˆ�r2   r"   c                 ó   — | j                   S )zZ
        The URL to the external reference.

        Returns:
            `XsUri`
        ©Ú_urlr@   s    r3   rˆ  zExternalReference.url  rä   r2   c                 ó   — || _         y r:   rŒ  )r;   rˆ  s     r3   rˆ  zExternalReference.url  ræ   r2   c                 ó   — | j                   S )z
        An optional comment describing the external reference.

        Returns:
            `str` if set else `None`
        ©Ú_commentr@   s    r3   r…  zExternalReference.comment  s   € ð �}‰}Ðr2   c                 ó   — || _         y r:   r�  )r;   r…  s     r3   r…  zExternalReference.comment   rŠ   r2   c                 ó   — | j                   S )a  
        Specifies the type of external reference.

        There are built-in types to describe common references. If a type does not exist for the reference being
        referred to, use the "other" type.

        Returns:
            `ExternalReferenceType`
        ©Ú_typer@   s    r3   rÐ   zExternalReference.type$  s   € ð �z‰zÐr2   c                 ó   — || _         y r:   r”  )r;   rÐ   s     r3   rÐ   zExternalReference.type3  rB   r2   c                 ó   — | j                   S )zw
        The hashes of the external reference (if applicable).

        Returns:
            Set of `HashType`
        )Ú_hashesr@   s    r3   r†  zExternalReference.hashes7  s   € ð �|‰|Ðr2   c                 ó$   — t        |«      | _        y r:   )r   r˜  )r;   r†  s     r3   r†  zExternalReference.hashesG  s   € ä  Ó(ˆ�r2   r_   c                 ó   — | j                   S )a  
        Provides the ability to document properties in a key/value store. This provides flexibility to include data not
        officially supported in the standard without having to use additional namespaces or create extensions.

        Return:
            Set of `Property`
        )Ú_propertiesr@   s    r3   r‡  zExternalReference.propertiesK  s   € ð ×ÑÐr2   c                 ó$   — t        |«      | _        y r:   )r   r›  )r;   r‡  s     r3   r‡  zExternalReference.propertiesX  s   € ä$ ZÓ0ˆÕr2   c           	      óª   — t        | j                  | j                  | j                  t        | j                  «      t        | j
                  «      f«      S r:   )rI   r•  r�  r‘  r˜  r‡  r@   s    r3   rJ   z$ExternalReference.__comparable_tuple\  s?   € ÜØ�J‰J˜Ÿ	™	 4§=¡=Ü˜TŸ\™\Ó*Ô,<¸T¿_¹_Ó,Mð!
ó ð 	r2   rK   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrM   )rN   r„  Ú$_ExternalReference__comparable_tuplerP   s     r3   rQ   zExternalReference.__eq__b  s-   € Ü�eÔ.Ô/Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   r„  rŸ  rT   rP   s     r3   rU   zExternalReference.__lt__g  s0   € Ü�eÔ.Ô/Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr2   c                 ó4   — t        | j                  «       «      S r:   )rX   rŸ  r@   s    r3   rY   zExternalReference.__hash__l  rZ   r2   c                 óP   — d| j                   j                  › d| j                  › d�S )Nz<ExternalReference z, r\   )rÐ   rò   rˆ  r@   s    r3   r]   zExternalReference.__repr__o  s$   € Ø$ T§Y¡Y§^¡^Ð$4°B°t·x±x°jÀÐBÐBr2   )r8   zSortedSet[HashType])r8   zSortedSet[Property])+r)   r*   r+   r,   rö   rK  r
   r^   r   r¨   r<   r_   r`   Úxml_sequencerˆ  rb   r…  Útype_mappingr:  ra   rÐ   r©   r   r   r   r    r!   r¤   r†  Ú	xml_arrayÚXmlArraySerializationTypeÚNESTEDr‡  rI   rŸ  rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   r„  r„  ï  s  „ ñð "&Ø/3Ø59ò+à#ð+ð ð+ð ˜#‘ð	+ð
 ˜ (Ñ+Ñ,ð+ð ˜X jÑ1Ñ2ð+ð 
ó+ð Ø€\×Ñ˜qÓ!ð�Uò ó "ó ðð 	‡Z�Zð�uð  ò ó ðð ð˜ #™ò ó ðð ‡^�^ð ˜x¨™}ð  °ò  ó ð ð Ø€\×ÑÐDÓEØ€\×ÑÓ!ð
Ð+ò 
ó "ó Fó ð
ð 
‡[�[ðÐ.ð °4ò ó ðð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐEÓFòó Gó +ó +ó +ó +ó +ó ðð ‡]�]ð)˜X hÑ/ð )°Dò )ó ð)ð Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVò ó Wó +ó ð ð ×Ñð1 X¨jÑ%9ð 1¸dò 1ó ð1ðÐ$4ó ð˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ðC˜#ô Cr2   r„  c                   ó¬  — e Zd ZdZddœdedee   ddfd„Ze ej                  «       defd„«       «       Z
e
j                  deddfd	„«       Z
e ej                  d
«       ej                  ej                  j                  «      dee   fd„«       «       «       Zej                  dee   ddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)r‰  aD  
    This is our internal representation of `propertyType` complex type that can be used in multiple places within
    a CycloneDX BOM document.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_propertyType

    Specifies an individual property with a name and value.
    N)r>  rò   r>  r8   c                ó    — || _         || _        y r:   )rò   r>  )r;   rò   r>  s      r3   r<   zProperty.__init__  s   € ð
 ˆŒ	Øˆ�
r2   c                 ó   — | j                   S )z 
        The name of the property.

        Duplicate names are allowed, each potentially having a different value.

        Returns:
            `str`
        ©Ú_namer@   s    r3   rò   zProperty.name‡  s   € ð �z‰zÐr2   c                 ó   — || _         y r:   r«  ©r;   rò   s     r3   rò   zProperty.name”  rB   r2   rC   c                 ó   — | j                   S )zN
        Value of this Property.

        Returns:
             `str`
        ©Ú_valuer@   s    r3   r>  zProperty.value˜  s   € ð �{‰{Ðr2   c                 ó   — || _         y r:   r°  )r;   r>  s     r3   r>  zProperty.value¤  ó	   € àˆ�r2   c                 óD   — t        | j                  | j                  f«      S r:   )rI   rò   r>  r@   s    r3   rJ   zProperty.__comparable_tuple¨  s!   € ÜØ�I‰I�t—z‘zð!
ó ð 	r2   rK   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrM   )rN   r‰  Ú_Property__comparable_tuplerP   s     r3   rQ   zProperty.__eq__­  rì   r2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   r‰  r¶  rT   rP   s     r3   rU   zProperty.__lt__²  rî   r2   c                 ó4   — t        | j                  «       «      S r:   )rX   r¶  r@   s    r3   rY   zProperty.__hash__·  rZ   r2   c                 ó"   — d| j                   › d�S )Nz<Property name=r\   )rò   r@   s    r3   r]   zProperty.__repr__º  s   € Ø  §¡ ¨1Ð-Ð-r2   )r)   r*   r+   r,   r^   r
   r<   r_   r`   ra   rò   rb   rc   rd   re   rf   r>  rI   r¶  rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   r‰  r‰  s  sP  „ ñð  $òàðð ˜‰}ðð 
ó	ð Ø€\×ÑÓ!ð	�cò 	ó "ó ð	ð 
‡[�[ð˜ð  ò ó ðð Ø€\×Ñ˜3ÓØ€\×Ñ˜\×DÑD×VÑVÓWð�x ‘}ò ó Xó  ó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ððÐ$4ó ð
˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð.˜#ô .r2   r‰  c            	       ó  — e Zd ZU dZdZeed<   dddœdedee   dee   d	dfd
„Z	e
 ej                  d«      d	efd„«       «       Zej                  ded	dfd„«       Ze
 ej                  «        ej                  d«      d	ee   fd„«       «       «       Zej                  ded	dfd„«       Ze
 ej                  «       d	ee   fd„«       «       Zej                  dee   d	dfd„«       Zd	efd„Zded	efd„Zded	efd„Zd	efd„Zd	efd„Zy)ÚNoteTexta
  
    This is our internal representation of the Note.text complex type that can be used in multiple places within
    a CycloneDX BOM document.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_releaseNotesType
    rp   r’   Nrq   rt   rr   rs   r8   c                óR   — || _         |xs t        j                  | _        || _        y r:   )rt   r»  r’   rr   rs   rv   s       r3   r<   zNoteText.__init__Ê  s%   € ð ˆŒØ(ÒI¬H×,IÑ,IˆÔØ ˆ�r2   rC   c                 ó   — | j                   S )ze
        Get the text content of this Note.

        Returns:
            `str` note content
        r†   r@   s    r3   rt   zNoteText.contentÔ  s   € ð �}‰}Ðr2   c                 ó   — || _         y r:   r†   r‰   s     r3   rt   zNoteText.contentß  rŠ   r2   rw   c                 ó   — | j                   S )z¬
        Get the content-type of this Note.

        Defaults to 'text/plain' if one was not explicitly specified.

        Returns:
            `str` content-type
        ry   r@   s    r3   rr   zNoteText.content_typeã  s   € ð ×!Ñ!Ð!r2   c                 ó   — || _         y r:   ry   r|   s     r3   rr   zNoteText.content_typeñ  r}   r2   c                 ó   — | j                   S )z‚
        Get the encoding method used for the note's content.

        Returns:
            `Encoding` if set else `None`
        r   r@   s    r3   rs   zNoteText.encodingõ  r�   r2   c                 ó   — || _         y r:   r   rƒ   s     r3   rs   zNoteText.encoding   r„   r2   c                 óZ   — t        | j                  | j                  | j                  f«      S r:   )rI   rt   rr   rs   r@   s    r3   rJ   zNoteText.__comparable_tuple  s)   € ÜØ�L‰L˜$×+Ñ+¨T¯]©]ð!
ó ð 	r2   rK   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrM   )rN   r»  Ú_NoteText__comparable_tuplerP   s     r3   rQ   zNoteText.__eq__	  rì   r2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   r»  rÅ  rT   rP   s     r3   rU   zNoteText.__lt__  rî   r2   c                 ó4   — t        | j                  «       «      S r:   )rX   rÅ  r@   s    r3   rY   zNoteText.__hash__  rZ   r2   c                 ó<   — d| j                   › d| j                  › d�S )Nz<NoteText content_type=r‘   r\   rq   r@   s    r3   r]   zNoteText.__repr__  s#   € Ø(¨×):Ñ):Ð(;¸;ÀtÇ}Á}ÀoÐUVÐWÐWr2   )r)   r*   r+   r,   r’   r^   rÓ   r
   rk   r<   r_   r`   rc   rt   rb   ra   rr   rs   rI   rÅ  rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   r»  r»  ¾  sÀ  … ñð !-Ð˜#Ó,ð
 '+Ø'+ò	!àð!ð ˜s‘mð!ð ˜8Ñ$ð	!ð
 
ó!ð Ø€\×Ñ˜3Óð˜ò ó  ó ðð ‡^�^ð ˜sð   tò  ó ð ð Ø€\×ÑÓ!Ø€\×Ñ˜>Ó*ð	"˜h s™mò 	"ó +ó "ó ð	"ð ×Ñð*¨ð *°ò *ó ð*ð Ø€\×ÑÓ!ð˜( 8Ñ,ò ó "ó ðð ‡_�_ð" ¨(Ñ!3ð "¸ò "ó ð"ðÐ$4ó ð
˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ðX˜#ô Xr2   r»  c                   óV  — e Zd ZdZ ej
                  d«      Zddœdedee	   ddfd„Z
edefd	„«       Zej                  deddfd
„«       Ze ej                  d«      dee	   fd„«       «       Zej                  dee	   ddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zde	fd„Zy)ÚNotea=  
    This is our internal representation of the Note complex type that can be used in multiple places within
    a CycloneDX BOM document.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_releaseNotesType

    @todo: Replace ``NoteText`` with ``AttachedText``?
    z^[a-z]{2}(?:\-[A-Z]{2})?$N)ÚlocaleÚtextrË  r8   c                ó    — || _         || _        y r:   )rÌ  rË  )r;   rÌ  rË  s      r3   r<   zNote.__init__(  s   € ð
 ˆŒ	Øˆ�r2   c                 ó   — | j                   S )zj
        Specifies the full content of the release note.

        Returns:
            `NoteText`
        ©Ú_textr@   s    r3   rÌ  z	Note.text0  s   € ð �z‰zÐr2   c                 ó   — || _         y r:   rÏ  ©r;   rÌ  s     r3   rÌ  z	Note.text:  rB   r2   r"   c                 ó   — | j                   S )a  
        Get the ISO locale of this Note.

        The ISO-639 (or higher) language code and optional ISO-3166 (or higher) country code.

        Examples include: "en", "en-US", "fr" and "fr-CA".

        Returns:
            `str` locale if set else `None`
        )Ú_localer@   s    r3   rË  zNote.locale>  s   € ð �|‰|Ðr2   c                 ó¨   — || _         t        |t        «      r;t        j                  t
        j                  |«      sd | _         t        d|›d�«      ‚y y )NzSupplied locale zÐ is not a valid locale. Locale string should be formatted as the ISO-639 (or higher) language code and optional ISO-3166 (or higher) country code. according to ISO-639 format. Examples include: 'en', 'en-US'.)rÔ  rN   r^   r_  r`  rÊ  Ú_LOCALE_TYPE_REGEXr   )r;   rË  s     r3   rË  zNote.localeM  sX   € àˆŒÜ�fœcÔ"Ü—9‘9œT×4Ñ4°fÔ=Ø#�”Ü0Ø& v jð 1xð xóð ð >ð #r2   c                 óD   — t        | j                  | j                  f«      S r:   )rI   rË  rÌ  r@   s    r3   rJ   zNote.__comparable_tupleY  s!   € ÜØ�K‰K˜Ÿ™ð!
ó ð 	r2   rK   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrM   )rN   rÊ  Ú_Note__comparable_tuplerP   s     r3   rQ   zNote.__eq__^  s,   € Ü�eœTÔ"Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   rÊ  rÙ  rT   rP   s     r3   rU   zNote.__lt__c  s/   € Ü�eœTÔ"Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐr2   c                 ó4   — t        | j                  «       «      S r:   )rX   rÙ  r@   s    r3   rY   zNote.__hash__h  rZ   r2   c                 ó:   — dt        | «      › d| j                  › d�S )Nz	<Note id=z	, locale=r\   )ÚidrË  r@   s    r3   r]   zNote.__repr__k  s   € Øœ2˜d›8˜* I¨d¯k©k¨]¸!Ð<Ð<r2   )r)   r*   r+   r,   r_  r~  rÖ  r»  r
   r^   r<   r_   rÌ  rb   r`   r£  rË  rI   rÙ  rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   rÊ  rÊ    s/  „ ñð $˜Ÿ™Ð$@ÓAÐð
 !%òàðð ˜‘ðð 
ó	ð ð�hò ó ðð 
‡[�[ð˜ð  dò ó ðð Ø€\×Ñ˜qÓ!ð˜ ™ò ó "ó ðð ‡]�]ð	˜X c™]ð 	¨tò 	ó ð	ðÐ$4ó ð
˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ð=˜#ô =r2   rÊ  c            	       ón  — e Zd ZdZddddœdee   dee   dee   ddfd„Ze e	j                  e	j                  j                  «      dee   fd	„«       «       Zej                  dee   ddfd
„«       Ze e	j                  e	j                   j"                  «      dee   fd„«       «       Zej                  dee   ddfd„«       Ze e	j                  e	j                   j"                  «      dee   fd„«       «       Zej                  dee   ddfd„«       Zdefd„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)ÚIdentifiableActionzÓ
    This is our internal representation of the `identifiableActionType` complex type.

    .. note::
        See the CycloneDX specification: https://cyclonedx.org/docs/1.7/xml/#type_identifiableActionType
    N©Ú	timestamprò   Úemailrá  rò   râ  r8   c                ó.   — || _         || _        || _        y r:   rà  )r;   rá  rò   râ  s       r3   r<   zIdentifiableAction.__init__x  s   € ð #ˆŒØˆŒ	Øˆ�
r2   c                 ó   — | j                   S )zy
        The timestamp in which the action occurred.

        Returns:
            `datetime` if set else `None`
        ©Ú
_timestampr@   s    r3   rá  zIdentifiableAction.timestamp‚  s   € ð �‰Ðr2   c                 ó   — || _         y r:   rå  )r;   rá  s     r3   rá  zIdentifiableAction.timestamp�  s	   € à#ˆ�r2   c                 ó   — | j                   S )z}
        The name of the individual who performed the action.

        Returns:
            `str` if set else `None`
        r«  r@   s    r3   rò   zIdentifiableAction.name‘  ó   € ð �z‰zÐr2   c                 ó   — || _         y r:   r«  r®  s     r3   rò   zIdentifiableAction.nameœ  rB   r2   c                 ó   — | j                   S )z†
        The email address of the individual who performed the action.

        Returns:
            `str` if set else `None`
        ©Ú_emailr@   s    r3   râ  zIdentifiableAction.email   s   € ð �{‰{Ðr2   c                 ó   — || _         y r:   rì  )r;   râ  s     r3   râ  zIdentifiableAction.email«  r³  r2   c                 óZ   — t        | j                  | j                  | j                  f«      S r:   )rI   rá  rò   râ  r@   s    r3   rJ   z%IdentifiableAction.__comparable_tuple¯  s'   € ÜØ�N‰N˜DŸI™I t§z¡zð!
ó ð 	r2   rK   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrM   )rN   rß  Ú%_IdentifiableAction__comparable_tuplerP   s     r3   rQ   zIdentifiableAction.__eq__´  rR   r2   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S r:   )rN   rß  rñ  rT   rP   s     r3   rU   zIdentifiableAction.__lt__¹  rV   r2   c                 ó4   — t        | j                  «       «      S r:   )rX   rñ  r@   s    r3   rY   zIdentifiableAction.__hash__¾  rZ   r2   c                 ó<   — d| j                   › d| j                  › d�S )Nz<IdentifiableAction name=z, email=r\   )rò   râ  r@   s    r3   r]   zIdentifiableAction.__repr__Á  s   € Ø*¨4¯9©9¨+°X¸d¿j¹j¸\ÈÐKÐKr2   )r)   r*   r+   r,   r
   r   r^   r<   r_   r`   r¤  ÚhelpersÚXsdDateTimerá  rb   rd   re   rf   rò   râ  rI   rñ  rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   rß  rß  o  sÜ  „ ñð )-Ø"Ø#ò	à˜HÑ%ðð �s‰mðð ˜‰}ð	ð
 
óð Ø€\×Ñ˜|×3Ñ3×?Ñ?Ó@ð˜8 HÑ-ò ó Aó ðð ×Ñð$ 8¨HÑ#5ð $¸$ò $ó ð$ð Ø€\×Ñ˜\×DÑD×VÑVÓWð�h˜s‘mò ó Xó ðð 
‡[�[ð˜ #™ð ¨4ò ó ðð Ø€\×Ñ˜\×DÑD×VÑVÓWð�x ‘}ò ó Xó ðð ‡\�\ð˜8 C™=ð ¨Tò ó ððÐ$4ó ð
˜Fð  tó ð
˜Cð  Dó ð
/˜#ó /ðL˜#ô Lr2   rß  c                   óÆ   — e Zd ZdZdeddfd„Ze ej                  d«      defd„«       «       Z	e	j                  deddfd„«       Z	d	edefd
„Zd	edefd„Zdefd„Zdefd„Zy)Ú	CopyrightzÃ
    This is our internal representation of the `copyrightsType` complex type.

    .. note::
        See the CycloneDX specification: https://cyclonedx.org/docs/1.7/xml/#type_copyrightsType
    rÌ  r8   Nc                ó   — || _         y r:   ©rÌ  rÒ  s     r3   r<   zCopyright.__init__Î  s   € ð ˆ�	r2   rC   c                 ó   — | j                   S )z]
        Copyright statement.

        Returns:
            `str` if set else `None`
        rÏ  r@   s    r3   rÌ  zCopyright.textÔ  ré  r2   c                 ó   — || _         y r:   rÏ  rÒ  s     r3   rÌ  zCopyright.textß  rB   r2   rK   c                 óV   — t        |t        «      r| j                  |j                  k(  S yrM   )rN   rø  rÐ  rP   s     r3   rQ   zCopyright.__eq__ã  s"   € Ü�eœYÔ'Ø—:‘: §¡Ñ,Ð,Ør2   c                 ó`   — t        |t        «      r| j                  |j                  k  S t        S r:   )rN   rø  rÐ  rT   rP   s     r3   rU   zCopyright.__lt__è  s%   € Ü�eœYÔ'Ø—:‘: §¡Ñ+Ð+ÜÐr2   c                 ó,   — t        | j                  «      S r:   )rX   rÐ  r@   s    r3   rY   zCopyright.__hash__í  s   € Ü�D—J‘JÓÐr2   c                 ó"   — d| j                   › d�S )Nz<Copyright text=r\   rú  r@   s    r3   r]   zCopyright.__repr__ð  s   € Ø! $§)¡) ¨AÐ.Ð.r2   )r)   r*   r+   r,   r^   r<   r_   r`   rc   rÌ  rb   rg   rh   rQ   r	   rU   ri   rY   r]   r1   r2   r3   rø  rø  Å  s²   „ ñðàðð 
óð Ø€\×Ñ˜3Óð�cò ó  ó ðð 
‡[�[ð˜ð  ò ó ðð˜Fð  tó ð
˜Cð  Dó ð
 ˜#ó  ð/˜#ô /r2   rø  )Mr,   r_  ÚsysÚcollections.abcr   r   r   Úenumr   Ú	functoolsr   Újsonr   r¹   Útypingr	   r
   r   Úurllib.parser   rw  Úuuidr   Úwarningsr   Úxml.etree.ElementTreer   rÄ   Úversion_infor   Útyping_extensionsÚpy_serializabler`   Úsortedcontainersr   Ú_internal.comparer   rI   Úexception.modelr   r   Úexception.serializationr   r   Úschema.schemar   r   r   r   r   r   r    r!   rr  r#   rx  Úserializable_enumr^   r%   Úserializable_classr5   rk   ro   r”   rõ  Ú
BaseHelperr¤   r¨   rö   r:  rK  r„  r‰  r»  rÊ  rß  rø  r1   r2   r3   ú<module>r     sß  ðñ$ó 
Û 
ß /Ý Ý Ý Ý $ß 'Ñ 'Ý +Ý Ý Ý 7à×Ñ�wÒÞ#å,ã &Ý &å Cß Mß p÷	÷ 	ó 	õ àÐ ð ×Ñô
ˆs�Dó 
ó  ð
ð × Ñ ÷O8ð O8ó !ðO8ðd ×Ñôˆs�Dó ó  ðð × Ñ ÷Y\ð Y\ó !ðY\ðx ×Ñô"�C˜ó "ó  ð"ô0R
¨\×-AÑ-A×-LÑ-Lô R
ðj × Ñ ÷_<ð _<ó !ð_<ðD ×Ñô8˜C ó 8ó  ð8ôvX(¨L×,@Ñ,@×,KÑ,Kô X(ðv !€× Ñ ÀtÔLôz6ˆL× Ñ ×+Ñ+ó z6ó Mðz6ðz !€× Ñ ÀtÔL÷@Cð @Có Mð@CðF !€× Ñ ÀtÔL÷G.ð G.ó MðG.ðT !€× Ñ ÀtÔL÷XXð XXó MðXXðv !€× Ñ ÀtÔL÷Q=ð Q=ó MðQ=ðh !€× Ñ ÀtÔL÷RLð RLó MðRLðj !€× Ñ ÀtÔL÷+/ð +/ó Mñ+/r2   