
    <i                        S r SSKJr  SSKrSSKJrJr  SSKJrJ	r	  SSK
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SS	KJrJrJr  SS
KJr   " S S\5      r  " S S\5      r! " S S\5      r" " S S\5      r# " S S\5      r$ " S S\5      r% " S S\5      r& " S S\5      r' " S S\5      r( " S S\5      r) " S S \5      r* " S! S"\5      r+ " S# S$\5      r, " S% S&\5      r- " S' S(\5      r. " S) S*\5      r/ " S+ S,\5      r0 " S- S.\5      r1 " S/ S0\5      r2 " S1 S2\5      r3 " S3 S4\5      r4 " S5 S6\5      r5 " S7 S8\5      r6 " S9 S:\5      r7 " S; S<\5      r8 " S= S>\5      r9 " S? S@\5      r: " SA SB\5      r; " SC SD\5      r< " SE SF\5      r= " SG SH\5      r> " SI SJ\5      r? " SK SL\5      r@ " SM SN\5      rA " SO SP\5      rB " SQ SR\5      rCSUSS jrDSVST jrEg)WzSTIX 2.0 Cyber Observable Objects.

Embedded observable object types, such as Email MIME Component, which is
embedded in Email Message objects, inherit from ``_STIXBase20`` instead of
_Observable and do not have a ``_type`` attribute.
    )OrderedDictN   )_custom_extension_builder_custom_observable_builder)AtLeastOnePropertyErrorDependentPropertiesError)BinaryPropertyBooleanPropertyDictionaryPropertyEmbeddedObjectPropertyEnumPropertyExtensionsPropertyFloatPropertyHashesPropertyHexPropertyIntegerPropertyListPropertyObjectReferencePropertyStringPropertyTimestampPropertyTypeProperty   )
_Extension_Observable_STIXBase20)HASHING_ALGORITHMc                      ^  \ rS rSrSrSr\" S\" \SS94S\" 5       4S\	" 5       4S	\" 5       4S
\
" \SS94S\" SS94/5      rU 4S jrSrU =r$ )Artifact   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716219>`__.
artifacttype2.0spec_version	mime_typepayload_binurlhashes
extensionsc                 x   > [         [        U ]  5         U R                  SS/5        U R	                  S/S/5        g )Nr&   r'   r(   )superr   _check_object_constraints$_check_mutually_exclusive_properties_check_properties_dependencyself	__class__s    O/home/james-whalen/.local/lib/python3.13/site-packages/stix2/v20/observables.pyr,   "Artifact._check_object_constraints&   s7    h7911=%2HI))8*ug>     )__name__
__module____qualname____firstlineno____doc___typer   r   r   r	   r   r   r   _propertiesr,   __static_attributes____classcell__r1   s   @r2   r   r      sv     E	e%89	n&'	()	 !	>"3%HI	)u=> K? ?r4   r   c                   x    \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" 5       4S\	" 5       4S\
" SS94/5      rSrg)AutonomousSystem,   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716221>`__.
autonomous-systemr!   r"   r#   numberTrequirednamerirr)   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r<   r=   r5   r4   r2   rA   rA   ,   s]      E	e%89	?D12	!"	 !	)u=> Kr4   rA   c                       \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\" 5       4S\	" 5       4S\	" 5       4S\	" 5       4S\
" \" SS/S95      4S\" SS94/5      rSrg)	Directory;   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716223>`__.
	directoryr!   r"   r#   pathTrE   path_enccreatedmodifiedaccessedcontains_refsfilevalid_typesr)   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r   r   r<   r=   r5   r4   r2   rJ   rJ   ;   s     E	e%89	./	^%&	%'(	&()	&()	,'>FT_K`'abc	)u=>
 
Kr4   rJ   c                   v    \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" \
" / SQS95      4S\" SS94/5      rSrg)
DomainNameN   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716225>`__.
domain-namer!   r"   r#   valueTrE   resolves_to_refs)	ipv4-addr	ipv6-addrrY   rT   r)   r5   Nr6   r7   r8   r9   r:   r;   r   r   r   r   r   r   r<   r=   r5   r4   r2   rW   rW   N   s[     E	e%89	.$/0	\*ANw*xyz	)u=>	 Kr4   rW   c                   v    \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\" 5       4S\	" SS94S\
" SS94/5      rSrg)EmailAddress\   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716227>`__.

email-addrr!   r"   r#   rZ   TrE   display_namebelongs_to_refuser-accountrT   r)   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r<   r=   r5   r4   r2   r`   r`   \   s`     E	e%89	.$/0	)*	2~NO	)u=> Kr4   r`   c                   ~   ^  \ rS rSrSr\" S\" 5       4S\" SS/S94S\" 5       4S	\" 5       4/5      rU 4S
 jr	Sr
U =r$ )EmailMIMEComponentk   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716231>`__.
bodybody_raw_refr    rS   rT   content_typecontent_dispositionc                 P   > [         [        U ]  5         U R                  SS/5        g )Nri   rj   )r+   rg   r,   _check_at_least_one_propertyr/   s    r2   r,   ,EmailMIMEComponent._check_object_constraintsw   s$     $AC))6>*BCr4   r5   )r6   r7   r8   r9   r:   r   r   r   r<   r,   r=   r>   r?   s   @r2   rg   rg   k   sY     	!"	0j&=QRS	)*	 01	 KD Dr4   rg   c                   ^  ^  \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" 5       4S\
" 5       4S\" SS94S\" SS94S\" \" SS95      4S\" \" SS95      4S\" \" SS95      4S\
" 5       4S\" \
5      4S\" SS94S\
" 5       4S\" \" \S95      4S\" SS94S\" SS94/5      rU 4S jrSrU =r$ )EmailMessage|   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716229>`__.
zemail-messager!   r"   r#   is_multipartTrE   daterk   from_refrb   rT   
sender_refto_refscc_refsbcc_refssubjectreceived_linesadditional_header_fieldsri   body_multipartr!   raw_email_refr    r)   c                    > [         [        U ]  5         U R                  S/S/5        U R	                  S5      SL a.  U R	                  S5      (       a  [        U R                  S/5      eg g )Nrs   r}   Tri   )rs   ri   )r+   rq   r,   r.   getr   r1   r/   s    r2   r,   &EmailMessage._check_object_constraints   sd    lD;=))>*:=M<NO88N#t+0@0@*4>><T;UVV 1A+r4   r5   )r6   r7   r8   r9   r:   r;   r   r   r
   r   r   r   r   r   r   rg   r   r<   r,   r=   r>   r?   s   @r2   rq   rq   |   s    E	e%89	$78	"$%	)*	,FG	.<HI	L!8\!RST	L!8\!RST	\"9l"STU	N$%	<78	#%7U%KL	!"	<(>DV(WXY	1jIJ	)u=>! K&W Wr4   rq   c            	       d    \ rS rSrSrSr\" S\" \" SS9SS94S	\	" 5       4S
\	" 5       4/5      r
Srg)
ArchiveExt   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716235>`__.
zarchive-extrR   rS   rT   TrE   versioncommentr5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r<   r=   r5   r4   r2   r   r      sI     E	,'>6'R]abc	N$%	N$% Kr4   r   c            	       V    \ rS rSrSr\" S\" SS94S\" \SS94S	\	" 5       4/5      r
S
rg)AlternateDataStream   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716239>`__.
rG   TrE   r(   r"   r#   sizer5   N)r6   r7   r8   r9   r:   r   r   r   r   r   r<   r=   r5   r4   r2   r   r      s@     	./	>"3%HI	"# Kr4   r   c            
       V    \ rS rSrSrSr\" S\" 5       4S\" \	" \
S95      4/5      rSrg)	NTFSExt   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716237>`__.
zntfs-extsidalternate_data_streamsr~   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r<   r=   r5   r4   r2   r   r      s<     E	 !	!<0FL_0`#ab Kr4   r   c            	       z    \ rS rSrSrSr\" S\" 5       4S\" 5       4S\	" SS94S	\" 5       4S
\" 5       4/5      r
Srg)PDFExt   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716241>`__.
zpdf-extr   is_optimizeddocument_info_dictr"   r#   pdfid0pdfid1r5   N)r6   r7   r8   r9   r:   r;   r   r   r
   r   r<   r=   r5   r4   r2   r   r      sW     E	N$%	*+	1uEF	>#$	>#$ Kr4   r   c                   z    \ rS rSrSrSr\" S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\	" S	S
94/5      r
Srg)RasterImageExt   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716243>`__.
zraster-image-extimage_heightimage_widthbits_per_pixelimage_compression_algorithm	exif_tagsr"   r#   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r<   r=   r5   r4   r2   r   r      sW     E	*+	)*	?,-	&(89	(e<= Kr4   r   c            	       j  ^  \ rS rSrSr\" / S\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS	\" 5       4PS
\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS\" 5       4PS \" 5       4PS!\" \	S"S#94P5      r
U 4S$ jrS%rU =r$ )&WindowsPEOptionalHeaderType   zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716248>`__.
	magic_hexmajor_linker_versionminor_linker_versionsize_of_codesize_of_initialized_datasize_of_uninitialized_dataaddress_of_entry_pointbase_of_codebase_of_data
image_basesection_alignmentfile_alignmentmajor_os_versionminor_os_versionmajor_image_versionminor_image_versionmajor_subsystem_versionminor_subsystem_versionwin32_version_value_hexsize_of_imagesize_of_headerschecksum_hexsubsystem_hexdll_characteristics_hexsize_of_stack_reservesize_of_stack_commitsize_of_heap_reservesize_of_heap_commitloader_flags_hexnumber_of_rva_and_sizesr(   r"   r#   c                 J   > [         [        U ]  5         U R                  5         g )N)r+   r   r,   rn   r/   s    r2   r,   5WindowsPEOptionalHeaderType._check_object_constraints  s    )4JL))+r4   r5   )r6   r7   r8   r9   r:   r   r   r   r   r   r<   r,   r=   r>   r?   s   @r2   r   r      sM      	km$ 	!23  
 !23  
*+	 
 
$_%67  
&'89  
"?#45  
*+  
*+  
()  
o/0  
?,-  
_./  
_./  
 12   
 12! " 
#O$56# $ 
#O$56% & 
#KM2' ( 
/+,) * 
O-.+ , 
'- . 
+-(/ 0 
#KM21 2 
!/"343 4 
 !235 6 
 !237 8 
 129 : 
[]+; < 
#O$56= > 
>"3%HI?   KD, ,r4   r   c                   f    \ rS rSrSr\" S\" SS94S\" 5       4S\" 5       4S\	" \
S	S
94/5      rSrg)WindowsPESectioni  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716250>`__.
rG   TrE   r   entropyr(   r"   r#   r5   N)r6   r7   r8   r9   r:   r   r   r   r   r   r   r<   r=   r5   r4   r2   r   r     sJ     	./	"#	MO$	>"3%HI	 Kr4   r   c                       \ rS rSrSrSr\" S\" SS94S\" 5       4S\" 5       4S	\	" 5       4S
\
" SS94S\" 5       4S\	" 5       4S\	" 5       4S\" 5       4S\" \SS94S\" \S94S\" \" \S95      4/5      rSrg)WindowsPEBinaryExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716245>`__.
zwindows-pebinary-extpe_typeTrE   imphashmachine_hexnumber_of_sectionstime_date_stampsecond)	precisionpointer_to_symbol_table_hexnumber_of_symbolssize_of_optional_headercharacteristics_hexfile_header_hashesr"   r#   optional_headerr~   sectionsr5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r   r   r   r   r   r   r<   r=   r5   r4   r2   r   r     s     #E	ND12	N$%	&	01	-AB	&6	o/0	"O$56	.	~.?eTU	28STU	\"8>N"OPQ Kr4   r   c                   L  ^  \ rS rSrSrSr\" S\" \SS94S\" \	SS94S\
" 5       4S	\" 5       4S
\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" SS94S\" 5       4S\" 5       4S\" 5       4S\" \5      4S\" SS94S\" SS94/5      rU 4S jrSrU =r$ )Filei/  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716233>`__.
rS   r!   r"   r#   r(   r   rG   name_encmagic_number_hexr%   rO   rP   rQ   parent_directory_refrL   rT   is_encryptedencryption_algorithmdecryption_keyrR   content_refr    r)   c                 z   > [         [        U ]  5         U R                  S/SS/5        U R	                  SS/5        g )Nr   r   r   r(   rG   )r+   r   r,   r.   rn   r/   s    r2   r,   File._check_object_constraintsJ  s=    dD35))>*:=SUe<fg))8V*<=r4   r5   )r6   r7   r8   r9   r:   r;   r   r   r   r   r   r   r   r   r   r
   r   r   r<   r,   r=   r>   r?   s   @r2   r   r   /  s     E	e%89	>"3%HI	"#	!"	^%&	[]+	n&'	%'(	&()	&()	!8[!QR	*+	!12	>+,	,'>?@	/JGH	)u=>% K*> >r4   r   c                       \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" \
" SS95      4S\	" \
" SS95      4S\" SS94/5      rSrg)IPv4AddressiP  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716252>`__.
r\   r!   r"   r#   rZ   TrE   r[   mac-addrrT   belongs_to_refsrC   r)   r5   Nr^   r5   r4   r2   r   r   P  n     E	e%89	.$/0	\*Aj*YZ[	L)@M`)abc	)u=> Kr4   r   c                       \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" \
" SS95      4S\	" \
" SS95      4S\" SS94/5      rSrg)IPv6Addressi_  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716254>`__.
r]   r!   r"   r#   rZ   TrE   r[   r   rT   r   rC   r)   r5   Nr^   r5   r4   r2   r   r   _  r   r4   r   c            	       X    \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" SS94/5      r
Srg)
MACAddressin  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716256>`__.
r   r!   r"   r#   rZ   TrE   r)   r5   Nr6   r7   r8   r9   r:   r;   r   r   r   r   r<   r=   r5   r4   r2   r   r   n  sG     E	e%89	.$/0	)u=> Kr4   r   c            	       X    \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" SS94/5      r
Srg)Mutexi{  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716258>`__.
mutexr!   r"   r#   rG   TrE   r)   r5   Nr   r5   r4   r2   r   r   {  sG     E	e%89	./	)u=> Kr4   r   c                       \ rS rSrSrSr\" S\" SS94S\" SS94S\" 5       4S	\" S
S94S\	" 5       4S\
" SS94/5      rSrg)HTTPRequestExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716262>`__.
zhttp-request-extrequest_methodTrE   request_valuerequest_versionrequest_headerr"   r#   message_body_lengthmessage_body_data_refr    rT   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r<   r=   r5   r4   r2   r   r     si     E	>489	.$78	N,-	-5AB	 12	 "9j"QR Kr4   r   c                   H    \ rS rSrSrSr\" S\" SS94S\" SS94/5      rSr	g	)
ICMPExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716264>`__.
zicmp-exticmp_type_hexTrE   icmp_code_hexr5   N
r6   r7   r8   r9   r:   r;   r   r   r<   r=   r5   r4   r2   r   r     s7     E	+t45	+t45 Kr4   r   c                       \ rS rSrSrSr\" S\" / SQSS94S\" 5       4S	\" 5       4S
\" / SQS94S\	" SS94S\" / SQS94S\
" 5       4S\
" 5       4/5      rSrg)	SocketExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716266>`__.
z
socket-extaddress_family)	AF_UNSPECAF_INETAF_IPXAF_APPLETALK
AF_NETBIOSAF_INET6AF_IRDAAF_BTHT)allowedrF   is_blockingis_listeningprotocol_family)PF_INETPF_IPXPF_APPLETALKPF_INET6PF_AX25	PF_NETROMr  optionsr"   r#   socket_type)SOCK_STREAM
SOCK_DGRAMSOCK_RAWSOCK_RDMSOCK_SEQPACKETsocket_descriptorsocket_handler5   N)r6   r7   r8   r9   r:   r;   r   r   r
   r   r   r<   r=   r5   r4   r2   r   r     s     El	 !	
 
)*	*+|	 	
 
&E:;<
	
 
o/0	/+,U+ +Kr4   r   c                   L    \ rS rSrSrSr\" S\" 5       4S\" 5       4/5      rSr	g)TCPExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716271>`__.
ztcp-extsrc_flags_hexdst_flags_hexr5   Nr   r5   r4   r2   r  r    s1     E	+-(	+-( Kr4   r  c                   t  ^  \ rS rSrSrSr\" S\" \SS94S\" 5       4S\" 5       4S	\	" 5       4S
\
" / SQS94S\
" / SQS94S\" 5       4S\" 5       4S\" \SS94S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" SS94S\
" SS94S\
" SS94S\" \
" SS95      4S\
" SS94S\" SS94/5      rU 4S jrSrU =r$ ) NetworkTraffici  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716260>`__.
network-trafficr!   r"   r#   startend	is_activesrc_ref)r\   r]   r   rY   rT   dst_refsrc_portdst_port	protocolsTrE   src_byte_countdst_byte_countsrc_packetsdst_packetsipfixsrc_payload_refr    dst_payload_refencapsulates_refsencapsulates_by_refr)   c                 P   > [         [        U ]  5         U R                  SS/5        g )Nr$  r%  )r+   r  r,   rn   r/   s    r2   r,   (NetworkTraffic._check_object_constraints   s#    nd=?))9i*@Ar4   r5   )r6   r7   r8   r9   r:   r;   r   r   r   r
   r   r   r   r   r   r   r<   r,   r=   r>   r?   s   @r2   r  r    s&    E	e%89	#%&	!#$	o'(	+8mno	+8mno	_&'	_&'	l>DAB	?,-	?,-	)*	)*	$%89	3
KL	3
KL	l+BO`+abc	 7DU VW	)u=>' K,B Br4   r  c                       \ rS rSrSrSr\" S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S	\	" S
S94/5      r
Srg)WindowsProcessExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716275>`__.
windows-process-extaslr_enableddep_enabledpriority	owner_sidwindow_titlestartup_infor"   r#   r5   N)r6   r7   r8   r9   r:   r;   r   r
   r   r   r<   r=   r5   r4   r2   r5  r5    sb     "E	*+	)*	^%&	n&'	)*	+?@ Kr4   r5  c                       \ rS rSrSrSr\" S\" SS94S\" \5      4S\" 5       4S	\" 5       4S
\	" / SQS94S\" \
" SS95      4S\	" / SQS94S\	" / SQS94/5      rSrg)WindowsServiceExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716277>`__.
zwindows-service-extservice_nameTrE   descriptionsrc   
group_name
start_type)SERVICE_AUTO_STARTSERVICE_BOOT_STARTSERVICE_DEMAND_STARTSERVICE_DISABLEDSERVICE_SYSTEM_ALERTr  service_dll_refsrS   rT   service_type)SERVICE_KERNEL_DRIVERSERVICE_FILE_SYSTEM_DRIVERSERVICE_WIN32_OWN_PROCESSSERVICE_WIN32_SHARE_PROCESSservice_status)SERVICE_CONTINUE_PENDINGSERVICE_PAUSE_PENDINGSERVICE_PAUSEDSERVICE_RUNNINGSERVICE_START_PENDINGSERVICE_STOP_PENDINGSERVICE_STOPPEDr5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r<   r=   r5   r4   r2   r>  r>    s     "E	67	n56	)*	~'(,
	
 
\*Af*UVWL		
 l
	
7( (Kr4   r>  c                   @  ^  \ rS rSrSrSr\" S\" \SS94S\" 5       4S\	" 5       4S	\
" 5       4S
\" 5       4S\
" 5       4S\" \
5      4S\
" 5       4S\" SS94S\" \" SS95      4S\" SS94S\" SS94S\" SS94S\" \" S5      5      4S\" SS94/5      rU 4S jrSrU =r$ )ProcessiF  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716273>`__.
processr!   r"   r#   	is_hiddenpidrG   rO   cwd	argumentscommand_lineenvironment_variablesopened_connection_refsr   rT   creator_user_refre   
binary_refrS   
parent_ref
child_refsr)   c                 b  > [         [        U ]  5          U R                  5         SU R	                  S0 5      ;   a  U R
                  S   R                  5         g g ! [         aJ  nSU ;  a  UeSU R	                  S0 5      ;   a"  U R
                  S   R                  5          S nAg  S nAg S nAff = f)Nr6  r)   )r+   rW  r,   rn   r   r)   r   )r0   enclosing_excr1   s     r2   r,   !Process._check_object_constraints_  s    gt68		Z--/$r(BB 56SSU C& 	Z4'##(DHH\2,FFOO$9:WWYY G		Zs   AA 
B.$;B))B.r5   )r6   r7   r8   r9   r:   r;   r   r   r
   r   r   r   r   r   r   r   r<   r,   r=   r>   r?   s   @r2   rW  rW  F  s     E	e%89	o'(	!"	!"	%'(	 !	l>23	)*	 "4%"HI	!<0GTe0f#gh	4PQ	.6BC	.9EF	|$;I$FGH	)u=>! K&Z Zr4   rW  c                       \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\" 5       4S\	" \5      4S\" 5       4S\" 5       4S\
" SS94/5      rSrg)Softwarein  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716282>`__.
softwarer!   r"   r#   rG   TrE   cpe	languagesvendorr   r)   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r<   r=   r5   r4   r2   rh  rh  n  su     E	e%89	./	 !	l>23	>#$	N$%	)u=> Kr4   rh  c            	       X    \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" SS94/5      r
Srg)URLi  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716284>`__.
r'   r!   r"   r#   rZ   TrE   r)   r5   Nr   r5   r4   r2   rn  rn    sG     E	e%89	.$/0	)u=> Kr4   rn  c                   n    \ rS rSrSrSr\" S\" 5       4S\" \	5      4S\	" 5       4S\	" 5       4/5      r
Srg	)
UNIXAccountExti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716289>`__.
zunix-account-extgidgroupshome_dirshellr5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r<   r=   r5   r4   r2   rp  rp    sK     E	!"	</0	^%&	."#	 Kr4   rp  c                      \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\" 5       4S\" 5       4S\" 5       4S\	" 5       4S\	" 5       4S\	" 5       4S\	" 5       4S\
" 5       4S\
" 5       4S\
" 5       4S\
" 5       4S\
" 5       4S\" SS94/5      rSrg)UserAccounti  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716286>`__.
re   r!   r"   r#   user_idTrE   account_loginaccount_typerc   is_service_accountis_privilegedcan_escalate_privsis_disabledaccount_createdaccount_expirespassword_last_changedaccount_first_loginaccount_last_loginr)   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r
   r   r   r<   r=   r5   r4   r2   rv  rv    s     E	e%89	ND12	.*+	)*	)*	01	/+,	01	)*	-/0	-/0	 "3"56	 1 34	023	)u=> Kr4   rv  c            	       \    \ rS rSrSrSr\" S\" SS94S\" 5       4S\" / S	QS
94/5      r	Sr
g)WindowsRegistryValueTypei  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716293>`__.
zwindows-registry-value-typerG   TrE   data	data_type)REG_NONEREG_SZREG_EXPAND_SZ
REG_BINARY	REG_DWORDREG_DWORD_BIG_ENDIANREG_LINKREG_MULTI_SZREG_RESOURCE_LISTREG_FULL_RESOURCE_DESCRIPTIONREG_RESOURCE_REQUIREMENTS_LIST	REG_QWORDREG_INVALID_TYPEr  r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r<   r=   r5   r4   r2   r  r    sI     *E	./	!"	
 Kr4   r  c                       \ rS rSrSrSr\" S\" \SS94S\" SS	94S
\	" \
" \S95      4S\" 5       4S\" SS94S\" 5       4S\" SS94/5      rSrg)WindowsRegistryKeyi  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716291>`__.
zwindows-registry-keyr!   r"   r#   keyTrE   valuesr~   rP   r`  re   rT   number_of_subkeysr)   r5   N)r6   r7   r8   r9   r:   r;   r   r   r   r   r   r  r   r   r   r   r<   r=   r5   r4   r2   r  r    s     #E	e%89	-.	< 6<T UVW	&()	4PQ	o/0	)u=>	 	Kr4   r  c                   ,   \ rS rSrSrSr\" S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S	\" 5       4S
\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4/5      r	Sr
g)X509V3ExtensionsTypei  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716298>`__.
zx509-v3-extensions-typebasic_constraintsname_constraintspolicy_constraints	key_usageextended_key_usagesubject_key_identifierauthority_key_identifiersubject_alternative_nameissuer_alternative_namesubject_directory_attributescrl_distribution_pointsinhibit_any_policy#private_key_usage_period_not_before"private_key_usage_period_not_aftercertificate_policiespolicy_mappingsr5   N)r6   r7   r8   r9   r:   r;   r   r   r   r<   r=   r5   r4   r2   r  r    s     &E	n./	^-.	~/0	n&'	~/0	!>#34	#^%56	#^%56	"N$45	')9:	"N$45	~/0	.0A0CD	-/@/BC	!12	N,-! Kr4   r  c                      \ rS rSrSrSr\" S\" \SS94S\" 5       4S\	" \
SS94S	\" 5       4S
\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" 5       4S\" \S94S\" SS94/5      rSrg)X509Certificatei  zFor more detailed information on this object's properties, see
`the STIX 2.0 specification <http://docs.oasis-open.org/cti/stix/v2.0/cs01/part4-cyber-observable-objects/stix-v2.0-cs01-part4-cyber-observable-objects.html#_Toc496716296>`__.
zx509-certificater!   r"   r#   is_self_signedr(   r   serial_numbersignature_algorithmissuervalidity_not_beforevalidity_not_afterrz   subject_public_key_algorithmsubject_public_key_modulussubject_public_key_exponentx509_v3_extensionsr~   r)   r5   N)r6   r7   r8   r9   r:   r;   r   r   r
   r   r   r   r   r   r   r  r   r<   r=   r5   r4   r2   r  r    s     E	e%89	?,-	>"3%HI	N$%	.*+	 01	>#$	 1 34	023	N$%	')9:	%~'78	&(9:	5;OPQ	)u=> Kr4   r  c                    ^ ^ UU 4S jnU$ )a  Custom STIX Cyber Observable Object type decorator.

Example:
    >>> from stix2.v20 import CustomObservable
    >>> from stix2.properties import IntegerProperty, StringProperty
    >>> @CustomObservable('x-custom-observable', [
    ...     ('property1', StringProperty(required=True)),
    ...     ('property2', IntegerProperty()),
    ... ])
    ... class MyNewObservableType():
    ...     pass

c                    > [        [        R                  R                  S[	        TSS94/TS[        SS94//5      5      n[        U TUS[        5      $ )Nr!   r"   r#   r)   )list	itertoolschainfrom_iterabler   r   r   r   )clsr<   
propertiesr!   s     r2   wrapper!CustomObservable.<locals>.wrapper%  s_    OO)),t%@AB 2 FGH+ 
 *#t[%UUr4   r5   r!   r  r  s   `` r2   CustomObservabler    s    V Nr4   c                    ^ ^ UU 4S jnU$ )z?Decorator for custom extensions to STIX Cyber Observables.
    c                 *   > [        U TTS[        5      $ )Nr"   )r   r   )r  r  r!   s    r2   r   CustomExtension.<locals>.wrapper4  s    (dJzRRr4   r5   r  s   `` r2   CustomExtensionr  1  s    SNr4   )zx-custom-observableN)zx-custom-observable-extN)Fr:   collectionsr   r  customr   r   
exceptionsr   r   r  r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   baser   r   r   vocabr   r   rA   rJ   rW   r`   rg   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r5  r>  rW  rh  rn  rp  rv  r  r  r  r  r  r  r5   r4   r2   <module>r     s   $  J J     7 6 $?{ ?*{  & ; D D"W; WB
 
	+ 		j 	Z Z ),+ ),X
{ 
 ,>; >B+ + 
 

K 
Z  	j 	1
 1h	Z 	B[ BB
  .
 .b%Zk %ZP{ "
+ 
Z + 2{ > $; 4k 24r4   