diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index ae8a5fb..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore index 6704566..76108e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,104 +1,8 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* +# Node_Moludes +/stix-modeler-app/node_modules -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json +# Distribution +/stix-modeler-app/dist/ -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port +# Schemas +/stix-modeler-app/schemas/*.json \ No newline at end of file diff --git a/README.md b/README.md index fc4d963..0ec3517 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,107 @@ # STIX 2.1 Drag and Drop Modeler -![Image of UI](https://github.com/STIX-Modeler/UI/blob/develop/example-stix.png) - -There are three, primary technologies used to develop this software. React, MobX (state management) and Webpack. Some level of competence with these tech's will be needed to make code changes. SCSS is heavily integrated to allow granular control of styling the application. - -I want to be clear, this is not a tool that is intended to visualize a tremendous amount of nodes. For that, a forced directed graph should be used. - -# Definitions +This is a fork of the [STIX Modeler](https://github.com/STIX-Modeler/UI/tree/develop), originally created by Jason Minnick + +## Overview +A React-based user interface tool for visualizing, creating, and modifying STIX 2.1 bundles + +## New Features +- Define custom STIX Domain Objects (SDO) using schemas +- Define custom STIX Relationship Objects (SRO) +- Import STIX bundles and schemas using File Picker +- Create STIX Group objects by selecting SDOs +- Visualize STIX bundles with many relationships between SDOs + +# Dependencies + +This modeler was developed in and optimized for use with node v20.11.1 and npm 10.2.4 + +Other versions of node may not be supported + +All listed third-party dependencies grant use, modification, and distribution rights under the MIT License. + +## Third-Party Dependencies +- "@vitejs/plugin-react": "5.0.4", +- "classnames": "2.5.1", +- "d3-hierarchy": "3.1.2", +- "deepmerge": "4.3.1", +- "lodash": "4.17.21", +- "mobx": "6.15.0", +- "mobx-react": "9.2.1", +- "moment": "2.30.1", +- "prop-types": "15.8.1", +- "rc-slider": "11.1.9", +- "react": "19.2.0", +- "react-datepicker": "8.7.0", +- "react-dom": "19.2.0", +- "react-tooltip": "5.29.1", +- "reactflow": "11.11.4", +- "sass": "1.93.2", +- "uuid": "13.0.0", +- "vite": "7.1.9" + +## Third-Party Development Dependencies +- "@eslint/js": "9.37.0", +- "eslint": "9.37.0", +- "globals": "16.4.0", +- "jsdom": "27.0.0", +- "typescript-eslint": "8.46.0", +- "vitest": "3.2.4" + + +# Installation and Use + +- Install required node dependencies: `npm install` +- Build: `npm run build` +- Run: `npm run preview` + +## Usage Notes +- In order to model bundles with custom SDOs, the user MUST import the schemas using the "Import" button prior to importing the bundle. Otherwise, custom SDOs will not be displayed. + +# Development Notes +## Modifications + +- Migrated project framework from Webpack to Vite to reduce unnecessary and duplicate dependencies (2.31GB->189MB) +- Replaced node and edge visualization with [React Flow](https://reactflow.dev/), an MIT-licensed open source library for creating and visualizing diagrams. +- Added a panel for pasting and importing custom SDO extensions from schema JSON +- Added panels for selecting and modifying SDO extension fields (currently only icon image) +- Added panel for importing schemas and bundles from JSON files +- Implemented drag-and-drop functionality for SDO extension objects +- Added functionality for defining new relationships between SDO objects (including extension) +- Added functionality for creating new Group SDOs via clicking and selecting SDOs +- Updated dependencies and removed unused dependencies +- Upgraded handling of default field and relationship values +- Added bundle validation for required SDO properties +- Added bundle file export +- Added vitest testing infrastructure +- Added unknown object and property handling +- Added automatic schema loading +- Added UI configuration via config file +- Updated STIX schemas to latest versions + +## Bug Fixes + +- Fixed issues preventing users from pasting in "incomplete" STIX bundles (i.e. bundles where objects are missing optional fields) +- Fixed unexpected modification of timestamps in Details panel +- Fixed implied fields based on relationships between nodes (e.g. "created_by") +- Fixed import and modification of nodes with "hashes" fields +- Added ability to delete external_reference objects from external_references fields +- Fixed inclusion of invalid fields in relationship objects +- Fixed extension definition inconsistency + + + +## Definitions The definitions are a direct copy from the OASIS schemas repository without mutation. Right now these are statically shimmed in. I could see a backend process regularly pulling these into the project. Reference: https://github.com/oasis-open/cti-stix2-json-schemas/tree/master/schemas/ -# Definition Adapters +## Definition Adapters The definition adapters are a way to mutate the definitions to help control the flow of the visualization. All adapters inherit the Base.js adapter where much of the initial mutating happens. -# Control Property +## Control Property The control property can be used to help extend custom options to display and/or interact with the properties in the details panel. Some properties default based on their type but if more complex or unique controls are required, the control property is the way to extend functionality. @@ -33,7 +118,7 @@ Current controls: - stringselector: Works like the array selector but only allows for selecting a single value to populate a string. - textarea: Allows for cleaner input of larger text amounts. -# Hoisting Vocabs +## Hoisting Vocabs In the definitions specific to an object, I hoist the vocabs onto the property it belongs to. This makes it seamless to pass along to the array control used to select options. @@ -41,29 +126,14 @@ Specific vocab notes - labels: there are placeholder values located in definition-adapters/Base.js. This can easily be updated to reflect your sharing group or company's standard list for each object or even hidden with the `control` property. -# Usage - -Currently, the only usage workflow is via a dev build outlined below. This is simple enough for anyone to perform. - - - Pull down bits (via fork or clicking download) - - $ cd app - - $npm install - - $npm start - -There is a modest production build that is also integrated. This can get a compiled version deployed in a short amount of time. - -- $ npm run build - -The visualization is supported in the latest versions of Chrome, Firefox and Safari. - -A proxy (https://github.com/STIX-Modeler/UI/blob/develop/app/src/stores/Proxy.js) has been shimmed in place to submit data from the UI through any give workflow. This should make integration easier to pick up and run with. Right now, a logger is in place simply logging out the object. Simplly JSON.stingify the object and POST to an endpoint that is waiting for JSON 2.1 data. - -# Where do we go from here? - -A couple things come to mind. First, Some type of complex Indicator pattern expression builder. In STIX 2.0, this was less complicated since the pattern was just STIX syntax. Now that more pattern types are supported, though more powerful, more complex tooling is needed to support fully developing this feature out. +# Quality Assurance +## Automated Tools +The project uses eslint for quality assurance and styling. +- See current code quality issues: `npm run lint` +- See and fix code quality issues: `npm run lint:fix` -The second thing that comes to mind, integrating the attack-pattern object with Mitre's CTI repo (https://github.com/mitre/cti). +# DISCLAIMER -# Contact +This code developed by JHU/APL is for demonstration and research purposes. It is not “turn key” and is not safe for deployment without being tailored to production infrastructure. These files are not being delivered as software and are not appropriate for direct use on any production networks. JHU/APL assumes no liability for the direct use of these files and they are provided strictly as a reference implementation. -Any questions, I can be reached at jason.minnick@gmail.com +NO WARRANTY, NO LIABILITY. THIS MATERIAL IS PROVIDED “AS IS.” JHU/APL MAKES NO REPRESENTATION OR WARRANTY WITH RESPECT TO THE PERFORMANCE OF THE MATERIALS, INCLUDING THEIR SAFETY, EFFECTIVENESS, OR COMMERCIAL VIABILITY, AND DISCLAIMS ALL WARRANTIES IN THE MATERIAL, WHETHER EXPRESS OR IMPLIED, INCLUDING (BUT NOT LIMITED TO) ANY AND ALL IMPLIED WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY OR OTHER THIRD PARTY RIGHTS. ANY USER OF THE MATERIAL ASSUMES THE ENTIRE RISK AND LIABILITY FOR USING THE MATERIAL. IN NO EVENT SHALL JHU/APL BE LIABLE TO ANY USER OF THE MATERIAL FOR ANY ACTUAL, INDIRECT, CONSEQUENTIAL, SPECIAL OR OTHER DAMAGES ARISING FROM THE USE OF, OR INABILITY TO USE, THE MATERIAL, INCLUDING, BUT NOT LIMITED TO, ANY DAMAGES FOR LOST PROFITS. diff --git a/STIX-Modeler_User_Guide.pdf b/STIX-Modeler_User_Guide.pdf new file mode 100644 index 0000000..da01291 Binary files /dev/null and b/STIX-Modeler_User_Guide.pdf differ diff --git a/app/.DS_Store b/app/.DS_Store deleted file mode 100644 index 43a1f9d..0000000 Binary files a/app/.DS_Store and /dev/null differ diff --git a/app/__mocks__/fileMock.js b/app/__mocks__/fileMock.js deleted file mode 100644 index 08d725c..0000000 --- a/app/__mocks__/fileMock.js +++ /dev/null @@ -1 +0,0 @@ -export default ''; diff --git a/app/__mocks__/styleMock.js b/app/__mocks__/styleMock.js deleted file mode 100644 index 17875ba..0000000 --- a/app/__mocks__/styleMock.js +++ /dev/null @@ -1,3 +0,0 @@ -import idObj from 'identity-obj-proxy'; - -export default idObj; diff --git a/app/__tests__/app.test.jsx b/app/__tests__/app.test.jsx deleted file mode 100644 index 1739151..0000000 --- a/app/__tests__/app.test.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import { mount } from 'enzyme'; - -import App from '../src/App'; -import HelloWorld from '../src/components/hello-world'; - -describe('', () => { - const wrap = mount(); - - it('renders', () => { - expect(wrap.find(App).exists()).toBe(true); - }); - - it('contains HelloWorld component', () => { - expect(wrap.find(HelloWorld).exists()).toBe(true); - }); -}); diff --git a/app/babel.config.js b/app/babel.config.js deleted file mode 100644 index 16d0d8a..0000000 --- a/app/babel.config.js +++ /dev/null @@ -1,47 +0,0 @@ -module.exports = function(api) { - const babelEnv = api.env(); - api.cache(true); - - const presets = [ - [ - '@babel/preset-env', - { - targets: { - esmodules: true, - }, - corejs: '3.0.0', - useBuiltIns: 'usage', - }, - ], - '@babel/preset-react', - ]; - const plugins = [ - '@babel/transform-react-constant-elements', - 'transform-react-remove-prop-types', - 'transform-react-pure-class-to-function', - '@babel/plugin-transform-runtime', - 'react-hot-loader/babel', - - // Stage 2 https://github.com/babel/babel/tree/master/packages/babel-preset-stage-2 - ['@babel/plugin-proposal-decorators', { legacy: true }], - '@babel/plugin-proposal-function-sent', - '@babel/plugin-proposal-export-namespace-from', - '@babel/plugin-proposal-numeric-separator', - '@babel/plugin-proposal-throw-expressions', - - // Stage 3 - '@babel/plugin-syntax-dynamic-import', - '@babel/plugin-syntax-import-meta', - ['@babel/plugin-proposal-class-properties', { loose: true }], - '@babel/plugin-proposal-json-strings', - ]; - - if (babelEnv === 'production') { - plugins.push(['@babel/plugin-transform-react-inline-elements']); - } - - return { - presets, - plugins, - }; -}; diff --git a/app/build/css/main.css b/app/build/css/main.css deleted file mode 100644 index 9b6b416..0000000 --- a/app/build/css/main.css +++ /dev/null @@ -1,45 +0,0 @@ -body,html,#app{margin:0px;padding:0px;position:fixed;top:0;bottom:0;left:0;right:0;font-family:"Alegreya Sans SC"} - -.menu{position:fixed;bottom:20px;right:25px}.menu .row{display:flex;flex-direction:row}.menu .row .menu-item{width:40px;padding-right:10px;cursor:pointer}.menu .row .menu-item img{width:40px}.menu .row .obs{width:40px;height:40px;border-radius:5px;background-color:#46a0f5}.menu .row .obs div{padding-top:10px;padding-left:7px;color:#e1e3e6;cursor:pointer} - -.top-menu{position:fixed;top:20px;right:20px}.top-menu .row{display:flex;flex-direction:row}.top-menu .row .menu-item-small{width:20px;height:20px}.top-menu .row .menu-item-medium{width:25px;height:20px}.top-menu .row .json-btn{border-radius:5px;cursor:pointer;padding:5px 4px 5px 11px;color:#fff;font-weight:bold;background-color:#46a0f5}.top-menu .row .json-paste-btn{border-radius:5px;cursor:pointer;padding:5px 4px 5px 8px;margin-right:10px;color:#fff;font-weight:bold;background-color:#46a0f5}.top-menu .row .reset-btn{border-radius:5px;cursor:pointer;padding:5px 11px 5px 11px;color:#fff;font-weight:bold;background-color:#46a0f5;margin-left:10px}.top-menu .row .reset-btn .i{width:20px;vertical-align:middle;font-size:16px} - -.node{position:absolute;top:0px;left:0px;width:45px;height:45px;transition:all .5s ease;border:3px dashed transparent}.node img{width:45px}.hide-node{display:none}.show-node{display:block}.ok-border{border:3px dashed #46a0f5;border-radius:3px}.noway-border{border:3px dashed #d31d18;border-radius:3px} - -.mask{position:fixed;left:0px;top:0px;right:0px;bottom:0px;background-color:rgba(0,0,0,0.2);z-index:5}.mask .panel{position:absolute;width:600px;top:0px;right:0px;bottom:0px;background-color:#fff;box-shadow:-20px 25px 50px 0px #000;z-index:10;display:flex;flex-direction:column}.hide-mask{display:none} - -.rc-slider-track{background-color:transparet} - -input:focus,textarea:focus,select{outline:none}input.def,textarea,select{height:39px;border:1px solid #c5cbd2;background-color:transparent;width:97%;padding-left:10px;color:#000;font-size:16px;font-family:"Alegreya Sans SC"}textarea{height:80px}select{height:44px}::-webkit-input-placeholder{color:#4f5257}::-ms-input-placeholder{color:red}::-moz-placeholder{color:red}::-moz-placeholder{color:red} - -.react-datepicker-wrapper{width:100%}.react-datepicker__input-container input{height:39px;border:1px solid #c5cbd2;background-color:transparent;width:97%;padding-left:10px;font-family:"Alegreya Sans SC";color:#000;font-size:16px;font-weight:bold} - -.array-container{padding-left:20px;padding-top:20px}.array-container .array-container-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.array-container .array-container-header span{vertical-align:middle;font-size:14px;cursor:pointer}.array-container .array-container-body{height:100px;overflow:auto;border:1px solid #c5cbd2}.array-container .array-container-body .array-container-item{cursor:pointer;line-height:30px;padding-left:10px}.array-container .array-container-body .array-container-selected{background-color:#46a0f5}.array-container .array-container-body .array-container-item:hover{background-color:#e1e3e6} - -.kill-chain-container{padding-left:20px;padding-top:20px}.kill-chain-container .kill-chain-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.kill-chain-container .kill-chain-header span{vertical-align:middle;font-size:14px;cursor:pointer}.kill-chain-container .kill-chain-body{overflow:auto;border:1px solid #c5cbd2}.kill-chain-container .kill-chain-body .kill-chain-options{display:flex;flex-direction:row}.kill-chain-container .kill-chain-body .kill-chain-options select{flex:.5;margin:10px 5px}.kill-chain-container .kill-chain-body .kill-chain-row{padding:5px 5px 5px 10px}.kill-chain-container .kill-chain-body .kill-chain-row .material-icons{vertical-align:middle;color:#d31d18;cursor:pointer} - -.er-container{padding-left:20px;padding-top:20px}.er-container .er-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.er-container .er-header span{vertical-align:middle;font-size:14px;cursor:pointer}.er-container .er-body{overflow:auto;border:1px solid #c5cbd2;min-height:50px}.er-container .er-body .er-block{border:1px solid #c5cbd2;margin:10px}.er-container .er-body .er-block .er-block-row{display:flex;flex-direction:row}.er-container .er-body .er-block .er-block-row select{margin:10px 0px 10px 10px;flex:.5}.er-container .er-body .er-block .er-block-row div{padding:10px;flex:.5}.er-container .er-body .er-block .er-block-row span{vertical-align:middle;cursor:pointer}.er-container .er-body .er-block .er-block-row .remove{color:#d31d18}.er-container .er-body .er-block .er-block-row .add{padding-top:15px;color:#46a0f5} - - -.boolean{display:flex;flex-direction:row;line-height:30px;border:1px solid #c5cbd2;width:99%}.boolean div{flex:.5;text-align:center;cursor:pointer}.boolean .selected{background-color:#46a0f5} - -.go-container{padding-left:20px;padding-top:20px;padding-right:10px}.go-container .go-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.go-container .go-header span{vertical-align:middle;font-size:14px;cursor:pointer}.go-container .go-body{overflow-x:hidden;border:1px solid #c5cbd2;min-height:50px;width:100%}.go-container .go-body .go-block-input{display:flex;flex-direction:row;padding:5px;width:100%}.go-container .go-body .go-block-input .input{margin:10px 0px 10px 10px;flex:.5}.go-container .go-body .go-block-input .add-container{width:50px;padding:20px 0px 0px 15px}.go-container .go-body .go-block-input .add-container span{cursor:pointer;color:#46a0f5;padding-left:5px}.go-container .go-body .go-block{margin:10px}.go-container .go-body .go-block .go-block-row{display:flex;flex-direction:row;padding:5px}.go-container .go-body .go-block .go-block-row input{margin:10px 0px 10px 10px;flex:.5}.go-container .go-body .go-block .go-block-row div{padding:10px;flex:.5}.go-container .go-body .go-block .go-block-row span{vertical-align:middle;cursor:pointer;padding-left:5px}.go-container .go-body .go-block .go-block-row .remove{color:#d31d18}.go-container .go-body .go-block .go-block-row .add{padding-top:15px;color:#46a0f5} - -.ct-container{padding-left:20px;padding-top:20px;padding-right:10px}.ct-container .ct-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.ct-container .ct-header span{vertical-align:middle;font-size:14px;cursor:pointer}.ct-container .ct-body{overflow-x:hidden;border:1px solid #c5cbd2;min-height:50px;width:100%}.ct-container .ct-body .ct-block-input{display:flex;flex-direction:row;padding:5px;width:100%}.ct-container .ct-body .ct-block-input .input{margin:10px 0px 10px 10px;flex:1}.ct-container .ct-body .ct-block-input .input textarea{font-size:14px;font-family:tahoma}.ct-container .ct-body .ct-block-input .add-container{width:50px;padding:35px 0px 0px 8px}.ct-container .ct-body .ct-block-input .add-container span{cursor:pointer;color:#46a0f5;padding-left:5px}.ct-container .ct-body .ct-output{font-family:tahoma;font-size:14px;padding:0px 15px 15px 15px}.ct-container .ct-body .go-block{margin:10px}.ct-container .ct-body .go-block .go-block-row{display:flex;flex-direction:row;padding:5px}.ct-container .ct-body .go-block .go-block-row input{margin:10px 0px 10px 10px;flex:.5}.ct-container .ct-body .go-block .go-block-row div{padding:10px;flex:.5}.ct-container .ct-body .go-block .go-block-row span{vertical-align:middle;cursor:pointer;padding-left:5px}.ct-container .ct-body .go-block .go-block-row .remove{color:#d31d18}.ct-container .ct-body .go-block .go-block-row .add{padding-top:15px;color:#46a0f5} - -.details{font-size:18px;display:flex;flex-direction:column;height:100%}.details .header{padding:20px;font-size:18px;height:40px;display:flex;flex-direction:row;background-color:#f1f3f5}.details .header .title{padding-top:5px;flex:1}.details .header .title img{vertical-align:middle;padding-right:5px}.details .header .delete{padding-left:7px;width:80px;display:flex;background-color:#46a0f5;border-radius:5px;padding-top:7px;color:#e1e3e6;cursor:pointer;font-size:14px}.details .header .delete span{padding-left:1px}.details .header .delete .text{padding-top:3px}.details .header .delete:hover{background-color:#d31d18}.details .body{overflow-y:scroll;overflow-x:hidden;flex:1}.details .body .item{padding-left:20px;padding-top:15px;font-weight:normal}.details .body .item .horizontal-slider{width:98%}.details .body .item .item-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.details .body .item .item-header span{padding-left:3px;vertical-align:middle;font-size:14px;cursor:pointer}.details .body .slider{padding-bottom:20px}.details .footer{height:40px} - -button:focus{outline:none}button.def{width:auto;min-width:130px;height:30px;color:#e1e3e6;font-family:"Alegreya Sans SC";font-size:14px;border-color:transparent;cursor:pointer}button.def i{vertical-align:middle}button.disabled{background-color:rgba(128,128,128,0.8) !important;color:#c8c5c5 !important;cursor:auto}.disco-relationship{background:transparent;border:1px solid #243244 !important}.standard{background-color:rgba(70,160,245,0.8) !important}.confirm{background-color:rgba(83,129,60,0.8) !important}.caution{background-color:rgba(202,202,57,0.8) !important}.cancel{background-color:rgba(143,44,44,0.8) !important} - -.json-viewer{display:flex;flex-direction:column;flex:1;height:100%;min-height:100px}.json-viewer .json-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:5px 0px 0px 10px;font-family:courier;font-size:13px;display:flex;flex-direction:column}.json-viewer .json-content pre{flex:1}.json-viewer .json-controls{display:flex;flex-direction:row;justify-content:flex-end;height:30px} - -.json-paste{display:flex;flex-direction:column;flex:1;height:100%}.json-paste .paste-area{flex:1;padding:5px 0px 0px 10px;display:flex;flex-direction:column}.json-paste .paste-area div{flex:1}.json-paste .paste-area div textarea{height:97%;font-family:courier;font-size:12px}.json-paste .json-controls{display:flex;flex-direction:row;justify-content:flex-end;height:30px} - -.relationship-picker{display:flex;flex-direction:column;flex:1;height:100%}.relationship-picker .header{padding-top:20px;padding-left:20px;padding-bottom:20px;height:35px}.relationship-picker .header img{vertical-align:middle}.relationship-picker .content{flex:1;overflow:auto}.relationship-picker .content .item{padding-left:20px;padding-top:10px;cursor:pointer;font-weight:bold;font-family:"Alegreya Sans SC";line-height:30px}.relationship-picker .content .item img{vertical-align:middle}.relationship-picker .content .item img.src-image{padding-right:5px}.relationship-picker .content .item img.target-image{padding-right:5px;padding-left:5px}.relationship-picker .content .item .rel-type{color:#46a0f5;padding-left:10px;padding-right:10px} - -.growl{position:fixed;right:10px;top:10px;z-index:15;background-color:#46a0f5;color:#e1e3e6;padding:11px;border-radius:5px} - -.canvas{position:fixed;top:50px;left:50px;bottom:50px;right:50px} - - -/*# sourceMappingURL=main.css.map*/ \ No newline at end of file diff --git a/app/build/css/main.css.map b/app/build/css/main.css.map deleted file mode 100644 index 24c29ce..0000000 --- a/app/build/css/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/app.scss","webpack:///./src/components/menus/menu.scss","webpack:///./src/components/menus/top-menu.scss","webpack:///./src/components/node.scss","webpack:///./src/components/ui/panel/panel.scss","webpack:///./src/components/ui/inputs/slider.scss","webpack:///./src/components/ui/inputs/text.scss","webpack:///./src/components/ui/inputs/datetime.scss","webpack:///./src/components/ui/inputs/arrayselector.scss","webpack:///./src/components/ui/complex/killchain.scss","webpack:///./src/components/ui/complex/externalreferences.scss","webpack:///./src/components/ui/inputs/boolean.scss","webpack:///./src/components/ui/complex/genericobject.scss","webpack:///./src/components/ui/complex/confirmtextarea.scss","webpack:///./src/components/details.scss","webpack:///./src/components/ui/button/button.scss","webpack:///./src/components/json-viewer.scss","webpack:///./src/components/json-paste.scss","webpack:///./src/components/relationship-picker.scss","webpack:///./src/components/ui/growl/growl.scss","webpack:///./src/components/canvas.scss"],"names":[],"mappings":"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","file":"css/main.css","sourcesContent":["body,html,#app{margin:0px;padding:0px;position:fixed;top:0;bottom:0;left:0;right:0;font-family:\"Alegreya Sans SC\"}\n",".menu{position:fixed;bottom:20px;right:25px}.menu .row{display:flex;flex-direction:row}.menu .row .menu-item{width:40px;padding-right:10px;cursor:pointer}.menu .row .menu-item img{width:40px}.menu .row .obs{width:40px;height:40px;border-radius:5px;background-color:#46a0f5}.menu .row .obs div{padding-top:10px;padding-left:7px;color:#e1e3e6;cursor:pointer}\n",".top-menu{position:fixed;top:20px;right:20px}.top-menu .row{display:flex;flex-direction:row}.top-menu .row .menu-item-small{width:20px;height:20px}.top-menu .row .menu-item-medium{width:25px;height:20px}.top-menu .row .json-btn{border-radius:5px;cursor:pointer;padding:5px 4px 5px 11px;color:#fff;font-weight:bold;background-color:#46a0f5}.top-menu .row .json-paste-btn{border-radius:5px;cursor:pointer;padding:5px 4px 5px 8px;margin-right:10px;color:#fff;font-weight:bold;background-color:#46a0f5}.top-menu .row .reset-btn{border-radius:5px;cursor:pointer;padding:5px 11px 5px 11px;color:#fff;font-weight:bold;background-color:#46a0f5;margin-left:10px}.top-menu .row .reset-btn .i{width:20px;vertical-align:middle;font-size:16px}\n",".node{position:absolute;top:0px;left:0px;width:45px;height:45px;transition:all .5s ease;border:3px dashed transparent}.node img{width:45px}.hide-node{display:none}.show-node{display:block}.ok-border{border:3px dashed #46a0f5;border-radius:3px}.noway-border{border:3px dashed #d31d18;border-radius:3px}\n",".mask{position:fixed;left:0px;top:0px;right:0px;bottom:0px;background-color:rgba(0,0,0,0.2);z-index:5}.mask .panel{position:absolute;width:600px;top:0px;right:0px;bottom:0px;background-color:#fff;box-shadow:-20px 25px 50px 0px #000;z-index:10;display:flex;flex-direction:column}.hide-mask{display:none}\n",".rc-slider-track{background-color:transparet}\n","input:focus,textarea:focus,select{outline:none}input.def,textarea,select{height:39px;border:1px solid #c5cbd2;background-color:transparent;width:97%;padding-left:10px;color:#000;font-size:16px;font-family:\"Alegreya Sans SC\"}textarea{height:80px}select{height:44px}::-webkit-input-placeholder{color:#4f5257}::-ms-input-placeholder{color:red}::-moz-placeholder{color:red}::-moz-placeholder{color:red}\n",".react-datepicker-wrapper{width:100%}.react-datepicker__input-container input{height:39px;border:1px solid #c5cbd2;background-color:transparent;width:97%;padding-left:10px;font-family:\"Alegreya Sans SC\";color:#000;font-size:16px;font-weight:bold}\n",".array-container{padding-left:20px;padding-top:20px}.array-container .array-container-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.array-container .array-container-header span{vertical-align:middle;font-size:14px;cursor:pointer}.array-container .array-container-body{height:100px;overflow:auto;border:1px solid #c5cbd2}.array-container .array-container-body .array-container-item{cursor:pointer;line-height:30px;padding-left:10px}.array-container .array-container-body .array-container-selected{background-color:#46a0f5}.array-container .array-container-body .array-container-item:hover{background-color:#e1e3e6}\n",".kill-chain-container{padding-left:20px;padding-top:20px}.kill-chain-container .kill-chain-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.kill-chain-container .kill-chain-header span{vertical-align:middle;font-size:14px;cursor:pointer}.kill-chain-container .kill-chain-body{overflow:auto;border:1px solid #c5cbd2}.kill-chain-container .kill-chain-body .kill-chain-options{display:flex;flex-direction:row}.kill-chain-container .kill-chain-body .kill-chain-options select{flex:.5;margin:10px 5px}.kill-chain-container .kill-chain-body .kill-chain-row{padding:5px 5px 5px 10px}.kill-chain-container .kill-chain-body .kill-chain-row .material-icons{vertical-align:middle;color:#d31d18;cursor:pointer}\n",".er-container{padding-left:20px;padding-top:20px}.er-container .er-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.er-container .er-header span{vertical-align:middle;font-size:14px;cursor:pointer}.er-container .er-body{overflow:auto;border:1px solid #c5cbd2;min-height:50px}.er-container .er-body .er-block{border:1px solid #c5cbd2;margin:10px}.er-container .er-body .er-block .er-block-row{display:flex;flex-direction:row}.er-container .er-body .er-block .er-block-row select{margin:10px 0px 10px 10px;flex:.5}.er-container .er-body .er-block .er-block-row div{padding:10px;flex:.5}.er-container .er-body .er-block .er-block-row span{vertical-align:middle;cursor:pointer}.er-container .er-body .er-block .er-block-row .remove{color:#d31d18}.er-container .er-body .er-block .er-block-row .add{padding-top:15px;color:#46a0f5}\n",".boolean{display:flex;flex-direction:row;line-height:30px;border:1px solid #c5cbd2;width:99%}.boolean div{flex:.5;text-align:center;cursor:pointer}.boolean .selected{background-color:#46a0f5}\n",".go-container{padding-left:20px;padding-top:20px;padding-right:10px}.go-container .go-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.go-container .go-header span{vertical-align:middle;font-size:14px;cursor:pointer}.go-container .go-body{overflow-x:hidden;border:1px solid #c5cbd2;min-height:50px;width:100%}.go-container .go-body .go-block-input{display:flex;flex-direction:row;padding:5px;width:100%}.go-container .go-body .go-block-input .input{margin:10px 0px 10px 10px;flex:.5}.go-container .go-body .go-block-input .add-container{width:50px;padding:20px 0px 0px 15px}.go-container .go-body .go-block-input .add-container span{cursor:pointer;color:#46a0f5;padding-left:5px}.go-container .go-body .go-block{margin:10px}.go-container .go-body .go-block .go-block-row{display:flex;flex-direction:row;padding:5px}.go-container .go-body .go-block .go-block-row input{margin:10px 0px 10px 10px;flex:.5}.go-container .go-body .go-block .go-block-row div{padding:10px;flex:.5}.go-container .go-body .go-block .go-block-row span{vertical-align:middle;cursor:pointer;padding-left:5px}.go-container .go-body .go-block .go-block-row .remove{color:#d31d18}.go-container .go-body .go-block .go-block-row .add{padding-top:15px;color:#46a0f5}\n",".ct-container{padding-left:20px;padding-top:20px;padding-right:10px}.ct-container .ct-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.ct-container .ct-header span{vertical-align:middle;font-size:14px;cursor:pointer}.ct-container .ct-body{overflow-x:hidden;border:1px solid #c5cbd2;min-height:50px;width:100%}.ct-container .ct-body .ct-block-input{display:flex;flex-direction:row;padding:5px;width:100%}.ct-container .ct-body .ct-block-input .input{margin:10px 0px 10px 10px;flex:1}.ct-container .ct-body .ct-block-input .input textarea{font-size:14px;font-family:tahoma}.ct-container .ct-body .ct-block-input .add-container{width:50px;padding:35px 0px 0px 8px}.ct-container .ct-body .ct-block-input .add-container span{cursor:pointer;color:#46a0f5;padding-left:5px}.ct-container .ct-body .ct-output{font-family:tahoma;font-size:14px;padding:0px 15px 15px 15px}.ct-container .ct-body .go-block{margin:10px}.ct-container .ct-body .go-block .go-block-row{display:flex;flex-direction:row;padding:5px}.ct-container .ct-body .go-block .go-block-row input{margin:10px 0px 10px 10px;flex:.5}.ct-container .ct-body .go-block .go-block-row div{padding:10px;flex:.5}.ct-container .ct-body .go-block .go-block-row span{vertical-align:middle;cursor:pointer;padding-left:5px}.ct-container .ct-body .go-block .go-block-row .remove{color:#d31d18}.ct-container .ct-body .go-block .go-block-row .add{padding-top:15px;color:#46a0f5}\n",".details{font-size:18px;display:flex;flex-direction:column;height:100%}.details .header{padding:20px;font-size:18px;height:40px;display:flex;flex-direction:row;background-color:#f1f3f5}.details .header .title{padding-top:5px;flex:1}.details .header .title img{vertical-align:middle;padding-right:5px}.details .header .delete{padding-left:7px;width:80px;display:flex;background-color:#46a0f5;border-radius:5px;padding-top:7px;color:#e1e3e6;cursor:pointer;font-size:14px}.details .header .delete span{padding-left:1px}.details .header .delete .text{padding-top:3px}.details .header .delete:hover{background-color:#d31d18}.details .body{overflow-y:scroll;overflow-x:hidden;flex:1}.details .body .item{padding-left:20px;padding-top:15px;font-weight:normal}.details .body .item .horizontal-slider{width:98%}.details .body .item .item-header{font-weight:bold;color:#46a0f5;padding-bottom:3px}.details .body .item .item-header span{padding-left:3px;vertical-align:middle;font-size:14px;cursor:pointer}.details .body .slider{padding-bottom:20px}.details .footer{height:40px}\n","button:focus{outline:none}button.def{width:auto;min-width:130px;height:30px;color:#e1e3e6;font-family:\"Alegreya Sans SC\";font-size:14px;border-color:transparent;cursor:pointer}button.def i{vertical-align:middle}button.disabled{background-color:rgba(128,128,128,0.8) !important;color:#c8c5c5 !important;cursor:auto}.disco-relationship{background:transparent;border:1px solid #243244 !important}.standard{background-color:rgba(70,160,245,0.8) !important}.confirm{background-color:rgba(83,129,60,0.8) !important}.caution{background-color:rgba(202,202,57,0.8) !important}.cancel{background-color:rgba(143,44,44,0.8) !important}\n",".json-viewer{display:flex;flex-direction:column;flex:1;height:100%;min-height:100px}.json-viewer .json-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:5px 0px 0px 10px;font-family:courier;font-size:13px;display:flex;flex-direction:column}.json-viewer .json-content pre{flex:1}.json-viewer .json-controls{display:flex;flex-direction:row;justify-content:flex-end;height:30px}\n",".json-paste{display:flex;flex-direction:column;flex:1;height:100%}.json-paste .paste-area{flex:1;padding:5px 0px 0px 10px;display:flex;flex-direction:column}.json-paste .paste-area div{flex:1}.json-paste .paste-area div textarea{height:97%;font-family:courier;font-size:12px}.json-paste .json-controls{display:flex;flex-direction:row;justify-content:flex-end;height:30px}\n",".relationship-picker{display:flex;flex-direction:column;flex:1;height:100%}.relationship-picker .header{padding-top:20px;padding-left:20px;padding-bottom:20px;height:35px}.relationship-picker .header img{vertical-align:middle}.relationship-picker .content{flex:1;overflow:auto}.relationship-picker .content .item{padding-left:20px;padding-top:10px;cursor:pointer;font-weight:bold;font-family:\"Alegreya Sans SC\";line-height:30px}.relationship-picker .content .item img{vertical-align:middle}.relationship-picker .content .item img.src-image{padding-right:5px}.relationship-picker .content .item img.target-image{padding-right:5px;padding-left:5px}.relationship-picker .content .item .rel-type{color:#46a0f5;padding-left:10px;padding-right:10px}\n",".growl{position:fixed;right:10px;top:10px;z-index:15;background-color:#46a0f5;color:#e1e3e6;padding:11px;border-radius:5px}\n",".canvas{position:fixed;top:50px;left:50px;bottom:50px;right:50px}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/build/css/vendors.css b/app/build/css/vendors.css deleted file mode 100644 index 699a67f..0000000 --- a/app/build/css/vendors.css +++ /dev/null @@ -1,6 +0,0 @@ -.rc-slider{position:relative;height:14px;padding:5px 0;width:100%;border-radius:6px;touch-action:none;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-rail{position:absolute;width:100%;background-color:#e9e9e9;height:4px;border-radius:6px}.rc-slider-track{position:absolute;left:0;height:4px;border-radius:6px;background-color:#abe2fb}.rc-slider-handle{position:absolute;width:14px;height:14px;cursor:pointer;cursor:-webkit-grab;margin-top:-5px;cursor:grab;border-radius:50%;border:solid 2px #96dbfa;background-color:#fff;touch-action:pan-x}.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging{border-color:#57c5f7;box-shadow:0 0 0 5px #96dbfa}.rc-slider-handle:focus{outline:none}.rc-slider-handle-click-focused:focus{border-color:#96dbfa;box-shadow:unset}.rc-slider-handle:hover{border-color:#57c5f7}.rc-slider-handle:active{border-color:#57c5f7;box-shadow:0 0 5px #57c5f7;cursor:-webkit-grabbing;cursor:grabbing}.rc-slider-mark{position:absolute;top:18px;left:0;width:100%;font-size:12px}.rc-slider-mark-text{position:absolute;display:inline-block;vertical-align:middle;text-align:center;cursor:pointer;color:#999}.rc-slider-mark-text-active{color:#666}.rc-slider-step{position:absolute;width:100%;height:4px;background:transparent}.rc-slider-dot{position:absolute;bottom:-2px;margin-left:-4px;width:8px;height:8px;border:2px solid #e9e9e9;background-color:#fff;cursor:pointer;border-radius:50%;vertical-align:middle}.rc-slider-dot-active{border-color:#96dbfa}.rc-slider-dot-reverse{margin-right:-4px}.rc-slider-disabled{background-color:#e9e9e9}.rc-slider-disabled .rc-slider-track{background-color:#ccc}.rc-slider-disabled .rc-slider-handle,.rc-slider-disabled .rc-slider-dot{border-color:#ccc;box-shadow:none;background-color:#fff;cursor:not-allowed}.rc-slider-disabled .rc-slider-mark-text,.rc-slider-disabled .rc-slider-dot{cursor:not-allowed !important}.rc-slider-vertical{width:14px;height:100%;padding:0 5px}.rc-slider-vertical .rc-slider-rail{height:100%;width:4px}.rc-slider-vertical .rc-slider-track{left:5px;bottom:0;width:4px}.rc-slider-vertical .rc-slider-handle{margin-left:-5px;touch-action:pan-y}.rc-slider-vertical .rc-slider-mark{top:0;left:18px;height:100%}.rc-slider-vertical .rc-slider-step{height:100%;width:4px}.rc-slider-vertical .rc-slider-dot{left:2px;margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:first-child{margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:last-child{margin-bottom:-4px}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{animation-duration:0.3s;animation-fill-mode:both;display:block !important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-leave{animation-duration:0.3s;animation-fill-mode:both;display:block !important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active{animation-name:rcSliderTooltipZoomDownIn;animation-play-state:running}.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active{animation-name:rcSliderTooltipZoomDownOut;animation-play-state:running}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{transform:scale(0, 0);animation-timing-function:cubic-bezier(0.23, 1, 0.32, 1)}.rc-slider-tooltip-zoom-down-leave{animation-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06)}@keyframes rcSliderTooltipZoomDownIn{0%{opacity:0;transform-origin:50% 100%;transform:scale(0, 0)}100%{transform-origin:50% 100%;transform:scale(1, 1)}}@keyframes rcSliderTooltipZoomDownOut{0%{transform-origin:50% 100%;transform:scale(1, 1)}100%{opacity:0;transform-origin:50% 100%;transform:scale(0, 0)}}.rc-slider-tooltip{position:absolute;left:-9999px;top:-9999px;visibility:visible;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip-hidden{display:none}.rc-slider-tooltip-placement-top{padding:4px 0 8px 0}.rc-slider-tooltip-inner{padding:6px 2px;min-width:24px;height:24px;font-size:12px;line-height:1;color:#fff;text-align:center;text-decoration:none;background-color:#6c6c6c;border-radius:6px;box-shadow:0 0 4px #d9d9d9}.rc-slider-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow{bottom:4px;left:50%;margin-left:-4px;border-width:4px 4px 0;border-top-color:#6c6c6c} - -.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle,.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{margin-left:-8px;position:absolute}.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle,.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{box-sizing:content-box;position:absolute;border:8px solid transparent;height:0;width:1px}.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{content:"";z-index:-1;border-width:8px;left:-8px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle{top:0;margin-top:-8px}.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle,.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle::before{border-top:none;border-bottom-color:#f0f0f0}.react-datepicker-popper[data-placement^="bottom"] .react-datepicker__triangle::before{top:-1px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^="top"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{bottom:-1px;border-top-color:#aeaeae}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:0.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:0.3rem;display:inline-block;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time{border-radius:0.3rem}.react-datepicker--time-only .react-datepicker__time-box{border-radius:0.3rem}.react-datepicker__triangle{position:absolute;left:50px}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^="bottom"]{margin-top:10px}.react-datepicker-popper[data-placement="bottom-end"] .react-datepicker__triangle,.react-datepicker-popper[data-placement="top-end"] .react-datepicker__triangle{left:auto;right:50px}.react-datepicker-popper[data-placement^="top"]{margin-bottom:10px}.react-datepicker-popper[data-placement^="right"]{margin-left:8px}.react-datepicker-popper[data-placement^="right"] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^="left"]{margin-right:8px}.react-datepicker-popper[data-placement^="left"] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:0.3rem;border-top-right-radius:0.3rem;padding-top:8px;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 2px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:bold;font-size:0.944rem}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{background:none;line-height:1.7rem;text-align:center;cursor:pointer;position:absolute;top:10px;width:0;padding:0;border:0.45rem solid transparent;z-index:1;height:10px;width:10px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:10px;border-right-color:#ccc}.react-datepicker__navigation--previous:hover{border-right-color:#b3b3b3}.react-datepicker__navigation--previous--disabled,.react-datepicker__navigation--previous--disabled:hover{border-right-color:#e6e6e6;cursor:default}.react-datepicker__navigation--next{right:10px;border-left-color:#ccc}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:80px}.react-datepicker__navigation--next:hover{border-left-color:#b3b3b3}.react-datepicker__navigation--next--disabled,.react-datepicker__navigation--next--disabled:hover{border-left-color:#e6e6e6;cursor:default}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px;border-top-color:#ccc}.react-datepicker__navigation--years-previous:hover{border-top-color:#b3b3b3}.react-datepicker__navigation--years-upcoming{top:-4px;border-bottom-color:#ccc}.react-datepicker__navigation--years-upcoming:hover{border-bottom-color:#b3b3b3}.react-datepicker__month-container{float:left}.react-datepicker__year-container{margin:0.4rem;text-align:center;display:flex;flex-wrap:wrap}.react-datepicker__year-container-text{display:inline-block;cursor:pointer;flex:1 0 30%;width:12px;padding:2px}.react-datepicker__month{margin:0.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:85px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type="time"]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type="time"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type="time"]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:0.3rem;position:absolute;right:-72px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:white}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + (1.7rem / 2));overflow-y:scroll;padding-right:0px;padding-left:0px;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:white;font-weight:bold}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:0.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:hover{border-radius:0.3rem;background-color:#f0f0f0}.react-datepicker__day-names,.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:0.166rem}.react-datepicker__month--selected,.react-datepicker__month--in-selecting-range,.react-datepicker__month--in-range,.react-datepicker__quarter--selected,.react-datepicker__quarter--in-selecting-range,.react-datepicker__quarter--in-range{border-radius:0.3rem;background-color:#216ba5;color:#fff}.react-datepicker__month--selected:hover,.react-datepicker__month--in-selecting-range:hover,.react-datepicker__month--in-range:hover,.react-datepicker__quarter--selected:hover,.react-datepicker__quarter--in-selecting-range:hover,.react-datepicker__quarter--in-range:hover{background-color:#1d5d90}.react-datepicker__month--disabled,.react-datepicker__quarter--disabled{color:#ccc;pointer-events:none}.react-datepicker__month--disabled:hover,.react-datepicker__quarter--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text{cursor:pointer}.react-datepicker__day:hover,.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover{border-radius:0.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today{font-weight:bold}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted{border-radius:0.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:hover,.react-datepicker__month-text--highlighted:hover,.react-datepicker__quarter-text--highlighted:hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1{color:magenta}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2{color:green}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range{border-radius:0.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--in-range:hover,.react-datepicker__month-text--selected:hover,.react-datepicker__month-text--in-selecting-range:hover,.react-datepicker__month-text--in-range:hover,.react-datepicker__quarter-text--selected:hover,.react-datepicker__quarter-text--in-selecting-range:hover,.react-datepicker__quarter-text--in-range:hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected{border-radius:0.3rem;background-color:#2a87d0;color:#fff}.react-datepicker__day--keyboard-selected:hover,.react-datepicker__month-text--keyboard-selected:hover,.react-datepicker__quarter-text--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range{background-color:rgba(33,107,165,0.5)}.react-datepicker__month--selecting-range .react-datepicker__day--in-range,.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range,.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range{background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled:hover,.react-datepicker__month-text--disabled:hover,.react-datepicker__quarter-text--disabled:hover{background-color:transparent}.react-datepicker__month-text.react-datepicker__month--selected:hover,.react-datepicker__month-text.react-datepicker__month--in-range:hover,.react-datepicker__month-text.react-datepicker__quarter--selected:hover,.react-datepicker__month-text.react-datepicker__quarter--in-range:hover,.react-datepicker__quarter-text.react-datepicker__month--selected:hover,.react-datepicker__quarter-text.react-datepicker__month--in-range:hover,.react-datepicker__quarter-text.react-datepicker__quarter--selected:hover,.react-datepicker__quarter-text.react-datepicker__quarter--in-range:hover{background-color:#216ba5}.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover{background-color:#f0f0f0}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:0.3rem}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-top-color:#ccc;float:right;margin-left:20px;top:8px;position:relative;border-width:0.45rem}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:0.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:0.3rem;border-top-right-radius:0.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:0.3rem;border-bottom-right-radius:0.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0px 6px 0px 0px;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon::after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"\00d7"}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:bold;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:rgba(0,0,0,0.8);left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-width: 400px), (max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__portal .react-datepicker__navigation{border:0.81rem solid transparent}.react-datepicker__portal .react-datepicker__navigation--previous{border-right-color:#ccc}.react-datepicker__portal .react-datepicker__navigation--previous:hover{border-right-color:#b3b3b3}.react-datepicker__portal .react-datepicker__navigation--previous--disabled,.react-datepicker__portal .react-datepicker__navigation--previous--disabled:hover{border-right-color:#e6e6e6;cursor:default}.react-datepicker__portal .react-datepicker__navigation--next{border-left-color:#ccc}.react-datepicker__portal .react-datepicker__navigation--next:hover{border-left-color:#b3b3b3}.react-datepicker__portal .react-datepicker__navigation--next--disabled,.react-datepicker__portal .react-datepicker__navigation--next--disabled:hover{border-left-color:#e6e6e6;cursor:default} - - -/*# sourceMappingURL=vendors.css.map*/ \ No newline at end of file diff --git a/app/build/css/vendors.css.map b/app/build/css/vendors.css.map deleted file mode 100644 index 2a6db25..0000000 --- a/app/build/css/vendors.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/rc-slider/assets/index.css","webpack:///./node_modules/react-datepicker/dist/react-datepicker.css"],"names":[],"mappings":"AAAA,WAAW,kBAAkB,YAAY,cAAc,WAAW,kBAAkB,kBAAkB,sBAAsB,0CAA0C,aAAa,sBAAsB,0CAA0C,gBAAgB,kBAAkB,WAAW,yBAAyB,WAAW,kBAAkB,iBAAiB,kBAAkB,OAAO,WAAW,kBAAkB,yBAAyB,kBAAkB,kBAAkB,WAAW,YAAY,eAAe,oBAAoB,gBAAgB,YAAY,kBAAkB,yBAAyB,sBAAsB,mBAAmB,+EAA+E,qBAAqB,6BAA6B,wBAAwB,aAAa,sCAAsC,qBAAqB,iBAAiB,wBAAwB,qBAAqB,yBAAyB,qBAAqB,2BAA2B,wBAAwB,gBAAgB,gBAAgB,kBAAkB,SAAS,OAAO,WAAW,eAAe,qBAAqB,kBAAkB,qBAAqB,sBAAsB,kBAAkB,eAAe,WAAW,4BAA4B,WAAW,gBAAgB,kBAAkB,WAAW,WAAW,uBAAuB,eAAe,kBAAkB,YAAY,iBAAiB,UAAU,WAAW,yBAAyB,sBAAsB,eAAe,kBAAkB,sBAAsB,sBAAsB,qBAAqB,uBAAuB,kBAAkB,oBAAoB,yBAAyB,qCAAqC,sBAAsB,yEAAyE,kBAAkB,gBAAgB,sBAAsB,mBAAmB,4EAA4E,8BAA8B,oBAAoB,WAAW,YAAY,cAAc,oCAAoC,YAAY,UAAU,qCAAqC,SAAS,SAAS,UAAU,sCAAsC,iBAAiB,mBAAmB,oCAAoC,MAAM,UAAU,YAAY,oCAAoC,YAAY,UAAU,mCAAmC,SAAS,mBAAmB,+CAA+C,mBAAmB,8CAA8C,mBAAmB,uEAAuE,wBAAwB,yBAAyB,yBAAyB,4BAA4B,mCAAmC,wBAAwB,yBAAyB,yBAAyB,4BAA4B,0JAA0J,yCAAyC,6BAA6B,4EAA4E,0CAA0C,6BAA6B,uEAAuE,sBAAsB,yDAAyD,mCAAmC,iEAAiE,qCAAqC,GAAG,UAAU,0BAA0B,sBAAsB,KAAK,0BAA0B,uBAAuB,sCAAsC,GAAG,0BAA0B,sBAAsB,KAAK,UAAU,0BAA0B,uBAAuB,mBAAmB,kBAAkB,aAAa,YAAY,mBAAmB,sBAAsB,0CAA0C,qBAAqB,sBAAsB,0CAA0C,0BAA0B,aAAa,iCAAiC,oBAAoB,yBAAyB,gBAAgB,eAAe,YAAY,eAAe,cAAc,WAAW,kBAAkB,qBAAqB,yBAAyB,kBAAkB,2BAA2B,yBAAyB,kBAAkB,QAAQ,SAAS,yBAAyB,mBAAmB,0DAA0D,WAAW,SAAS,iBAAiB,uBAAuB;;ACA98I,4SAA4S,iBAAiB,kBAAkB,goBAAgoB,uBAAuB,kBAAkB,6BAA6B,SAAS,UAAU,oVAAoV,WAAW,WAAW,iBAAiB,UAAU,4BAA4B,+EAA+E,MAAM,gBAAgB,sKAAsK,gBAAgB,4BAA4B,uFAAuF,SAAS,4BAA4B,6NAA6N,SAAS,mBAAmB,0dAA0d,mBAAmB,sBAAsB,6PAA6P,YAAY,yBAAyB,0BAA0B,qBAAqB,UAAU,SAAS,kBAAkB,2DAA2D,iBAAiB,sBAAsB,WAAW,yBAAyB,qBAAqB,qBAAqB,kBAAkB,yDAAyD,UAAU,+DAA+D,cAAc,qDAAqD,qBAAqB,yDAAyD,qBAAqB,4BAA4B,kBAAkB,UAAU,yBAAyB,UAAU,mDAAmD,gBAAgB,iKAAiK,UAAU,WAAW,gDAAgD,mBAAmB,kDAAkD,gBAAgB,8EAA8E,UAAU,WAAW,iDAAiD,iBAAiB,6EAA6E,UAAU,WAAW,0BAA0B,kBAAkB,yBAAyB,gCAAgC,8BAA8B,+BAA+B,gBAAgB,kBAAkB,gCAAgC,mBAAmB,iBAAiB,kBAAkB,gUAAgU,qBAAqB,aAAa,8FAA8F,aAAa,WAAW,iBAAiB,mBAAmB,+BAA+B,uBAAuB,mBAAmB,gBAAgB,8BAA8B,gBAAgB,mBAAmB,kBAAkB,eAAe,kBAAkB,SAAS,QAAQ,UAAU,iCAAiC,UAAU,YAAY,WAAW,mBAAmB,gBAAgB,wCAAwC,UAAU,wBAAwB,8CAA8C,2BAA2B,0GAA0G,2BAA2B,eAAe,oCAAoC,WAAW,uBAAuB,2GAA2G,WAAW,0CAA0C,0BAA0B,kGAAkG,0BAA0B,eAAe,qCAAqC,kBAAkB,MAAM,cAAc,iBAAiB,kBAAkB,8CAA8C,QAAQ,sBAAsB,oDAAoD,yBAAyB,8CAA8C,SAAS,yBAAyB,oDAAoD,4BAA4B,mCAAmC,WAAW,kCAAkC,cAAc,kBAAkB,aAAa,eAAe,uCAAuC,qBAAqB,eAAe,aAAa,WAAW,YAAY,yBAAyB,cAAc,kBAAkB,gHAAgH,qBAAqB,WAAW,WAAW,wCAAwC,WAAW,WAAW,WAAW,uBAAuB,gBAAgB,wEAAwE,qBAAqB,gFAAgF,qBAAqB,8GAA8G,qBAAqB,iBAAiB,oHAAoH,WAAW,wTAAwT,wBAAwB,SAAS,iIAAiI,0BAA0B,kHAAkH,gBAAgB,qBAAqB,kCAAkC,YAAY,8BAA8B,WAAW,qDAAqD,eAAe,yBAAyB,qBAAqB,kBAAkB,YAAY,MAAM,0DAA0D,kBAAkB,iBAAiB,sFAAsF,WAAW,kBAAkB,cAAc,kBAAkB,qHAAqH,gBAAgB,SAAS,kCAAkC,kBAAkB,kBAAkB,iBAAiB,WAAW,uBAAuB,yJAAyJ,YAAY,iBAAiB,mBAAmB,+JAA+J,eAAe,yBAAyB,mKAAmK,yBAAyB,YAAY,iBAAiB,yKAAyK,yBAAyB,mKAAmK,WAAW,yKAAyK,eAAe,6BAA6B,+BAA+B,WAAW,qBAAqB,aAAa,mBAAmB,kBAAkB,gBAAgB,wEAAwE,eAAe,8EAA8E,qBAAqB,yBAAyB,qDAAqD,mBAAmB,gFAAgF,WAAW,qBAAqB,aAAa,mBAAmB,kBAAkB,gBAAgB,4OAA4O,qBAAqB,yBAAyB,WAAW,gRAAgR,yBAAyB,wEAAwE,WAAW,oBAAoB,oFAAoF,eAAe,6BAA6B,qFAAqF,eAAe,uGAAuG,qBAAqB,yBAAyB,0GAA0G,iBAAiB,4HAA4H,qBAAqB,yBAAyB,WAAW,8IAA8I,yBAAyB,uJAAuJ,cAAc,uJAAuJ,YAAY,uXAAuX,qBAAqB,yBAAyB,WAAW,6aAA6a,yBAAyB,8IAA8I,qBAAqB,yBAAyB,WAAW,gKAAgK,yBAAyB,iJAAiJ,sCAAsC,iPAAiP,yBAAyB,WAAW,mHAAmH,eAAe,WAAW,qIAAqI,6BAA6B,gkBAAgkB,yBAAyB,0EAA0E,yBAAyB,mCAAmC,kBAAkB,qBAAqB,WAAW,6GAA6G,6BAA6B,qBAAqB,+HAA+H,eAAe,qhBAAqhB,yBAAyB,iJAAiJ,sBAAsB,YAAY,iBAAiB,QAAQ,kBAAkB,qBAAqB,0GAA0G,yBAAyB,kBAAkB,UAAU,SAAS,SAAS,UAAU,kBAAkB,qBAAqB,yBAAyB,4HAA4H,eAAe,8IAA8I,aAAa,kBAAkB,oGAAoG,iBAAiB,WAAW,cAAc,iBAAiB,kBAAkB,8IAA8I,8BAA8B,+BAA+B,2IAA2I,yBAAyB,sBAAsB,qBAAqB,iBAAiB,iCAAiC,kCAAkC,sHAAsH,sBAAsB,gQAAgQ,4BAA4B,gQAAgQ,yBAAyB,kIAAkI,kBAAkB,UAAU,8BAA8B,eAAe,6BAA6B,SAAS,UAAU,wBAAwB,kBAAkB,MAAM,QAAQ,YAAY,mBAAmB,sBAAsB,qCAAqC,eAAe,yBAAyB,WAAW,kBAAkB,YAAY,WAAW,YAAY,eAAe,cAAc,kBAAkB,mBAAmB,sBAAsB,gBAAgB,gCAAgC,mBAAmB,6BAA6B,eAAe,kBAAkB,iBAAiB,cAAc,WAAW,0BAA0B,eAAe,YAAY,aAAa,iCAAiC,OAAO,MAAM,uBAAuB,mBAAmB,aAAa,mBAAmB,8JAA8J,WAAW,iBAAiB,+CAA+C,8JAA8J,WAAW,kBAAkB,oHAAoH,kBAAkB,wDAAwD,iCAAiC,kEAAkE,wBAAwB,wEAAwE,2BAA2B,8JAA8J,2BAA2B,eAAe,8DAA8D,uBAAuB,oEAAoE,0BAA0B,sJAAsJ,0BAA0B","file":"css/vendors.css","sourcesContent":[".rc-slider{position:relative;height:14px;padding:5px 0;width:100%;border-radius:6px;touch-action:none;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-rail{position:absolute;width:100%;background-color:#e9e9e9;height:4px;border-radius:6px}.rc-slider-track{position:absolute;left:0;height:4px;border-radius:6px;background-color:#abe2fb}.rc-slider-handle{position:absolute;width:14px;height:14px;cursor:pointer;cursor:-webkit-grab;margin-top:-5px;cursor:grab;border-radius:50%;border:solid 2px #96dbfa;background-color:#fff;touch-action:pan-x}.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging{border-color:#57c5f7;box-shadow:0 0 0 5px #96dbfa}.rc-slider-handle:focus{outline:none}.rc-slider-handle-click-focused:focus{border-color:#96dbfa;box-shadow:unset}.rc-slider-handle:hover{border-color:#57c5f7}.rc-slider-handle:active{border-color:#57c5f7;box-shadow:0 0 5px #57c5f7;cursor:-webkit-grabbing;cursor:grabbing}.rc-slider-mark{position:absolute;top:18px;left:0;width:100%;font-size:12px}.rc-slider-mark-text{position:absolute;display:inline-block;vertical-align:middle;text-align:center;cursor:pointer;color:#999}.rc-slider-mark-text-active{color:#666}.rc-slider-step{position:absolute;width:100%;height:4px;background:transparent}.rc-slider-dot{position:absolute;bottom:-2px;margin-left:-4px;width:8px;height:8px;border:2px solid #e9e9e9;background-color:#fff;cursor:pointer;border-radius:50%;vertical-align:middle}.rc-slider-dot-active{border-color:#96dbfa}.rc-slider-dot-reverse{margin-right:-4px}.rc-slider-disabled{background-color:#e9e9e9}.rc-slider-disabled .rc-slider-track{background-color:#ccc}.rc-slider-disabled .rc-slider-handle,.rc-slider-disabled .rc-slider-dot{border-color:#ccc;box-shadow:none;background-color:#fff;cursor:not-allowed}.rc-slider-disabled .rc-slider-mark-text,.rc-slider-disabled .rc-slider-dot{cursor:not-allowed !important}.rc-slider-vertical{width:14px;height:100%;padding:0 5px}.rc-slider-vertical .rc-slider-rail{height:100%;width:4px}.rc-slider-vertical .rc-slider-track{left:5px;bottom:0;width:4px}.rc-slider-vertical .rc-slider-handle{margin-left:-5px;touch-action:pan-y}.rc-slider-vertical .rc-slider-mark{top:0;left:18px;height:100%}.rc-slider-vertical .rc-slider-step{height:100%;width:4px}.rc-slider-vertical .rc-slider-dot{left:2px;margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:first-child{margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:last-child{margin-bottom:-4px}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{animation-duration:0.3s;animation-fill-mode:both;display:block !important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-leave{animation-duration:0.3s;animation-fill-mode:both;display:block !important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active{animation-name:rcSliderTooltipZoomDownIn;animation-play-state:running}.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active{animation-name:rcSliderTooltipZoomDownOut;animation-play-state:running}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{transform:scale(0, 0);animation-timing-function:cubic-bezier(0.23, 1, 0.32, 1)}.rc-slider-tooltip-zoom-down-leave{animation-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06)}@keyframes rcSliderTooltipZoomDownIn{0%{opacity:0;transform-origin:50% 100%;transform:scale(0, 0)}100%{transform-origin:50% 100%;transform:scale(1, 1)}}@keyframes rcSliderTooltipZoomDownOut{0%{transform-origin:50% 100%;transform:scale(1, 1)}100%{opacity:0;transform-origin:50% 100%;transform:scale(0, 0)}}.rc-slider-tooltip{position:absolute;left:-9999px;top:-9999px;visibility:visible;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip-hidden{display:none}.rc-slider-tooltip-placement-top{padding:4px 0 8px 0}.rc-slider-tooltip-inner{padding:6px 2px;min-width:24px;height:24px;font-size:12px;line-height:1;color:#fff;text-align:center;text-decoration:none;background-color:#6c6c6c;border-radius:6px;box-shadow:0 0 4px #d9d9d9}.rc-slider-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow{bottom:4px;left:50%;margin-left:-4px;border-width:4px 4px 0;border-top-color:#6c6c6c}\n",".react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{margin-left:-8px;position:absolute}.react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{box-sizing:content-box;position:absolute;border:8px solid transparent;height:0;width:1px}.react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before,.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{content:\"\";z-index:-1;border-width:8px;left:-8px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle{top:0;margin-top:-8px}.react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before{border-top:none;border-bottom-color:#f0f0f0}.react-datepicker-popper[data-placement^=\"bottom\"] .react-datepicker__triangle::before{top:-1px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^=\"top\"] .react-datepicker__triangle::before,.react-datepicker__year-read-view--down-arrow::before,.react-datepicker__month-read-view--down-arrow::before,.react-datepicker__month-year-read-view--down-arrow::before{bottom:-1px;border-top-color:#aeaeae}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:\"Helvetica Neue\", Helvetica, Arial, sans-serif;font-size:0.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:0.3rem;display:inline-block;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time{border-radius:0.3rem}.react-datepicker--time-only .react-datepicker__time-box{border-radius:0.3rem}.react-datepicker__triangle{position:absolute;left:50px}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^=\"bottom\"]{margin-top:10px}.react-datepicker-popper[data-placement=\"bottom-end\"] .react-datepicker__triangle,.react-datepicker-popper[data-placement=\"top-end\"] .react-datepicker__triangle{left:auto;right:50px}.react-datepicker-popper[data-placement^=\"top\"]{margin-bottom:10px}.react-datepicker-popper[data-placement^=\"right\"]{margin-left:8px}.react-datepicker-popper[data-placement^=\"right\"] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^=\"left\"]{margin-right:8px}.react-datepicker-popper[data-placement^=\"left\"] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:0.3rem;border-top-right-radius:0.3rem;padding-top:8px;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 2px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:bold;font-size:0.944rem}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{background:none;line-height:1.7rem;text-align:center;cursor:pointer;position:absolute;top:10px;width:0;padding:0;border:0.45rem solid transparent;z-index:1;height:10px;width:10px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:10px;border-right-color:#ccc}.react-datepicker__navigation--previous:hover{border-right-color:#b3b3b3}.react-datepicker__navigation--previous--disabled,.react-datepicker__navigation--previous--disabled:hover{border-right-color:#e6e6e6;cursor:default}.react-datepicker__navigation--next{right:10px;border-left-color:#ccc}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:80px}.react-datepicker__navigation--next:hover{border-left-color:#b3b3b3}.react-datepicker__navigation--next--disabled,.react-datepicker__navigation--next--disabled:hover{border-left-color:#e6e6e6;cursor:default}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px;border-top-color:#ccc}.react-datepicker__navigation--years-previous:hover{border-top-color:#b3b3b3}.react-datepicker__navigation--years-upcoming{top:-4px;border-bottom-color:#ccc}.react-datepicker__navigation--years-upcoming:hover{border-bottom-color:#b3b3b3}.react-datepicker__month-container{float:left}.react-datepicker__year-container{margin:0.4rem;text-align:center;display:flex;flex-wrap:wrap}.react-datepicker__year-container-text{display:inline-block;cursor:pointer;flex:1 0 30%;width:12px;padding:2px}.react-datepicker__month{margin:0.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:85px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=\"time\"]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=\"time\"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=\"time\"]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:0.3rem;position:absolute;right:-72px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:white}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + (1.7rem / 2));overflow-y:scroll;padding-right:0px;padding-left:0px;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:white;font-weight:bold}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:0.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:hover{border-radius:0.3rem;background-color:#f0f0f0}.react-datepicker__day-names,.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:0.166rem}.react-datepicker__month--selected,.react-datepicker__month--in-selecting-range,.react-datepicker__month--in-range,.react-datepicker__quarter--selected,.react-datepicker__quarter--in-selecting-range,.react-datepicker__quarter--in-range{border-radius:0.3rem;background-color:#216ba5;color:#fff}.react-datepicker__month--selected:hover,.react-datepicker__month--in-selecting-range:hover,.react-datepicker__month--in-range:hover,.react-datepicker__quarter--selected:hover,.react-datepicker__quarter--in-selecting-range:hover,.react-datepicker__quarter--in-range:hover{background-color:#1d5d90}.react-datepicker__month--disabled,.react-datepicker__quarter--disabled{color:#ccc;pointer-events:none}.react-datepicker__month--disabled:hover,.react-datepicker__quarter--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text{cursor:pointer}.react-datepicker__day:hover,.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover{border-radius:0.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today{font-weight:bold}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted{border-radius:0.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:hover,.react-datepicker__month-text--highlighted:hover,.react-datepicker__quarter-text--highlighted:hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1{color:magenta}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2{color:green}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range{border-radius:0.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--in-range:hover,.react-datepicker__month-text--selected:hover,.react-datepicker__month-text--in-selecting-range:hover,.react-datepicker__month-text--in-range:hover,.react-datepicker__quarter-text--selected:hover,.react-datepicker__quarter-text--in-selecting-range:hover,.react-datepicker__quarter-text--in-range:hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected{border-radius:0.3rem;background-color:#2a87d0;color:#fff}.react-datepicker__day--keyboard-selected:hover,.react-datepicker__month-text--keyboard-selected:hover,.react-datepicker__quarter-text--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range{background-color:rgba(33,107,165,0.5)}.react-datepicker__month--selecting-range .react-datepicker__day--in-range,.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range,.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range{background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled:hover,.react-datepicker__month-text--disabled:hover,.react-datepicker__quarter-text--disabled:hover{background-color:transparent}.react-datepicker__month-text.react-datepicker__month--selected:hover,.react-datepicker__month-text.react-datepicker__month--in-range:hover,.react-datepicker__month-text.react-datepicker__quarter--selected:hover,.react-datepicker__month-text.react-datepicker__quarter--in-range:hover,.react-datepicker__quarter-text.react-datepicker__month--selected:hover,.react-datepicker__quarter-text.react-datepicker__month--in-range:hover,.react-datepicker__quarter-text.react-datepicker__quarter--selected:hover,.react-datepicker__quarter-text.react-datepicker__quarter--in-range:hover{background-color:#216ba5}.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover{background-color:#f0f0f0}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:0.3rem}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-top-color:#ccc;float:right;margin-left:20px;top:8px;position:relative;border-width:0.45rem}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:0.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:0.3rem;border-top-right-radius:0.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:0.3rem;border-bottom-right-radius:0.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0px 6px 0px 0px;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon::after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:\"\\00d7\"}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:bold;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:rgba(0,0,0,0.8);left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-width: 400px), (max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__portal .react-datepicker__navigation{border:0.81rem solid transparent}.react-datepicker__portal .react-datepicker__navigation--previous{border-right-color:#ccc}.react-datepicker__portal .react-datepicker__navigation--previous:hover{border-right-color:#b3b3b3}.react-datepicker__portal .react-datepicker__navigation--previous--disabled,.react-datepicker__portal .react-datepicker__navigation--previous--disabled:hover{border-right-color:#e6e6e6;cursor:default}.react-datepicker__portal .react-datepicker__navigation--next{border-left-color:#ccc}.react-datepicker__portal .react-datepicker__navigation--next:hover{border-left-color:#b3b3b3}.react-datepicker__portal .react-datepicker__navigation--next--disabled,.react-datepicker__portal .react-datepicker__navigation--next--disabled:hover{border-left-color:#e6e6e6;cursor:default}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/build/imgs/05fc68e8e9705edcf46b48f81e80c07b.png b/app/build/imgs/05fc68e8e9705edcf46b48f81e80c07b.png deleted file mode 100644 index fec008a..0000000 Binary files a/app/build/imgs/05fc68e8e9705edcf46b48f81e80c07b.png and /dev/null differ diff --git a/app/build/imgs/06856678ce1a47758114a39e37a279dc.png b/app/build/imgs/06856678ce1a47758114a39e37a279dc.png deleted file mode 100644 index ada9898..0000000 Binary files a/app/build/imgs/06856678ce1a47758114a39e37a279dc.png and /dev/null differ diff --git a/app/build/imgs/082d284458449f85461c91ddc729b4fa.png b/app/build/imgs/082d284458449f85461c91ddc729b4fa.png deleted file mode 100644 index 0864f00..0000000 Binary files a/app/build/imgs/082d284458449f85461c91ddc729b4fa.png and /dev/null differ diff --git a/app/build/imgs/1b9c59d2fc6707ab4f13d7a389f6aaf5.png b/app/build/imgs/1b9c59d2fc6707ab4f13d7a389f6aaf5.png deleted file mode 100644 index 2323923..0000000 Binary files a/app/build/imgs/1b9c59d2fc6707ab4f13d7a389f6aaf5.png and /dev/null differ diff --git a/app/build/imgs/1e5a63b3472b583b4a730f013ec5b10d.png b/app/build/imgs/1e5a63b3472b583b4a730f013ec5b10d.png deleted file mode 100644 index 420c904..0000000 Binary files a/app/build/imgs/1e5a63b3472b583b4a730f013ec5b10d.png and /dev/null differ diff --git a/app/build/imgs/2106b0ef97949dda5ea996d4b8fe4b08.png b/app/build/imgs/2106b0ef97949dda5ea996d4b8fe4b08.png deleted file mode 100644 index 2e472f1..0000000 Binary files a/app/build/imgs/2106b0ef97949dda5ea996d4b8fe4b08.png and /dev/null differ diff --git a/app/build/imgs/29bb5c86a22d42aba10b6ed9ce8e85c6.png b/app/build/imgs/29bb5c86a22d42aba10b6ed9ce8e85c6.png deleted file mode 100644 index 1c488d2..0000000 Binary files a/app/build/imgs/29bb5c86a22d42aba10b6ed9ce8e85c6.png and /dev/null differ diff --git a/app/build/imgs/2cea2cba2c5e1348efe72e3abbf4eb74.png b/app/build/imgs/2cea2cba2c5e1348efe72e3abbf4eb74.png deleted file mode 100644 index 36b2668..0000000 Binary files a/app/build/imgs/2cea2cba2c5e1348efe72e3abbf4eb74.png and /dev/null differ diff --git a/app/build/imgs/2de8f879351e33a41cc9a7006d54bfda.png b/app/build/imgs/2de8f879351e33a41cc9a7006d54bfda.png deleted file mode 100644 index 17b15ac..0000000 Binary files a/app/build/imgs/2de8f879351e33a41cc9a7006d54bfda.png and /dev/null differ diff --git a/app/build/imgs/3536f3f7f55d746d1a9eac4ca5073246.png b/app/build/imgs/3536f3f7f55d746d1a9eac4ca5073246.png deleted file mode 100644 index d875a36..0000000 Binary files a/app/build/imgs/3536f3f7f55d746d1a9eac4ca5073246.png and /dev/null differ diff --git a/app/build/imgs/389852e34bc3b08bdfef2c8915cae2c7.png b/app/build/imgs/389852e34bc3b08bdfef2c8915cae2c7.png deleted file mode 100644 index 3231fc8..0000000 Binary files a/app/build/imgs/389852e34bc3b08bdfef2c8915cae2c7.png and /dev/null differ diff --git a/app/build/imgs/47cf894c6775c06f5c3f78d86e36f519.png b/app/build/imgs/47cf894c6775c06f5c3f78d86e36f519.png deleted file mode 100644 index 6b7f7cb..0000000 Binary files a/app/build/imgs/47cf894c6775c06f5c3f78d86e36f519.png and /dev/null differ diff --git a/app/build/imgs/4ac0232853de7d5d575cec38c2f6e0b6.png b/app/build/imgs/4ac0232853de7d5d575cec38c2f6e0b6.png deleted file mode 100644 index a560338..0000000 Binary files a/app/build/imgs/4ac0232853de7d5d575cec38c2f6e0b6.png and /dev/null differ diff --git a/app/build/imgs/4ac356832f4c6a00fad8265aa697e9db.png b/app/build/imgs/4ac356832f4c6a00fad8265aa697e9db.png deleted file mode 100644 index b0a80a5..0000000 Binary files a/app/build/imgs/4ac356832f4c6a00fad8265aa697e9db.png and /dev/null differ diff --git a/app/build/imgs/4f2f7c1630b4a591f198768620c86997.png b/app/build/imgs/4f2f7c1630b4a591f198768620c86997.png deleted file mode 100644 index dc34d94..0000000 Binary files a/app/build/imgs/4f2f7c1630b4a591f198768620c86997.png and /dev/null differ diff --git a/app/build/imgs/65221f779a26036fd1ba3b78b0012e99.png b/app/build/imgs/65221f779a26036fd1ba3b78b0012e99.png deleted file mode 100644 index 7fa2ce4..0000000 Binary files a/app/build/imgs/65221f779a26036fd1ba3b78b0012e99.png and /dev/null differ diff --git a/app/build/imgs/75739a5825c4c03a135ec0ca87019917.png b/app/build/imgs/75739a5825c4c03a135ec0ca87019917.png deleted file mode 100644 index 3835b05..0000000 Binary files a/app/build/imgs/75739a5825c4c03a135ec0ca87019917.png and /dev/null differ diff --git a/app/build/imgs/80b3f9edfc9d2d7b718c4caaf78cd3bf.png b/app/build/imgs/80b3f9edfc9d2d7b718c4caaf78cd3bf.png deleted file mode 100644 index ae311f5..0000000 Binary files a/app/build/imgs/80b3f9edfc9d2d7b718c4caaf78cd3bf.png and /dev/null differ diff --git a/app/build/imgs/919f7d1af774d980da11a1725f2c179b.png b/app/build/imgs/919f7d1af774d980da11a1725f2c179b.png deleted file mode 100644 index 80ea7cf..0000000 Binary files a/app/build/imgs/919f7d1af774d980da11a1725f2c179b.png and /dev/null differ diff --git a/app/build/imgs/a7352377424d00d6a7f5778adc045c97.png b/app/build/imgs/a7352377424d00d6a7f5778adc045c97.png deleted file mode 100644 index 2f40682..0000000 Binary files a/app/build/imgs/a7352377424d00d6a7f5778adc045c97.png and /dev/null differ diff --git a/app/build/imgs/a889bfe1458d2191318ca350a6f86f02.png b/app/build/imgs/a889bfe1458d2191318ca350a6f86f02.png deleted file mode 100644 index 8126296..0000000 Binary files a/app/build/imgs/a889bfe1458d2191318ca350a6f86f02.png and /dev/null differ diff --git a/app/build/imgs/abd9af55a4279c4739e5e439d2538eeb.png b/app/build/imgs/abd9af55a4279c4739e5e439d2538eeb.png deleted file mode 100644 index b29775a..0000000 Binary files a/app/build/imgs/abd9af55a4279c4739e5e439d2538eeb.png and /dev/null differ diff --git a/app/build/imgs/b4c195d9d53719dcc70f7eed78a9369b.png b/app/build/imgs/b4c195d9d53719dcc70f7eed78a9369b.png deleted file mode 100644 index 5e4faa6..0000000 Binary files a/app/build/imgs/b4c195d9d53719dcc70f7eed78a9369b.png and /dev/null differ diff --git a/app/build/imgs/c7066e3c6eea8aec2f175fef7239533e.png b/app/build/imgs/c7066e3c6eea8aec2f175fef7239533e.png deleted file mode 100644 index 66bc4d5..0000000 Binary files a/app/build/imgs/c7066e3c6eea8aec2f175fef7239533e.png and /dev/null differ diff --git a/app/build/imgs/ccf90d26d6ed1ba93cf3888d0453290d.png b/app/build/imgs/ccf90d26d6ed1ba93cf3888d0453290d.png deleted file mode 100644 index e9439c1..0000000 Binary files a/app/build/imgs/ccf90d26d6ed1ba93cf3888d0453290d.png and /dev/null differ diff --git a/app/build/imgs/f635b56b60afd46f212a2d109b96df60.png b/app/build/imgs/f635b56b60afd46f212a2d109b96df60.png deleted file mode 100644 index b0d4756..0000000 Binary files a/app/build/imgs/f635b56b60afd46f212a2d109b96df60.png and /dev/null differ diff --git a/app/build/index.html b/app/build/index.html deleted file mode 100644 index d958ee0..0000000 --- a/app/build/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - STIX 2.1 Modeler - - - - -
- - - diff --git a/app/build/js/main.258517e4a0b5fead5d7e.js b/app/build/js/main.258517e4a0b5fead5d7e.js deleted file mode 100644 index 168c8b6..0000000 --- a/app/build/js/main.258517e4a0b5fead5d7e.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{10:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json","$schema":"http://json-schema.org/draft-07/schema#","title":"core","description":"Common properties and behavior across all STIX Domain Objects and STIX Relationship Objects.","type":"object","properties":{"type":{"title":"type","type":"string","pattern":"^([a-z][a-z0-9]*)+(-[a-z0-9]+)*\\\\-?$","minLength":3,"maxLength":250,"description":"The type property identifies the type of STIX Object (SDO, Relationship Object, etc). The value of the type field MUST be one of the types defined by a STIX Object (e.g., indicator).","not":{"enum":["incident","action"]}},"spec_version":{"type":"string","enum":["2.0","2.1"],"description":"The version of the STIX specification used to represent this object."},"id":{"$ref":"../common/identifier.json","description":"The id property universally and uniquely identifies this object."},"created_by_ref":{"$ref":"../common/identifier.json","description":"The ID of the Source object that describes who created this object."},"labels":{"type":"array","description":"The labels property specifies a set of terms used to describe this object.","items":{"type":"string"},"minItems":1},"created":{"description":"The created property represents the time at which the first version of this object was created. The timstamp value MUST be precise to the nearest millisecond.","allOf":[{"$ref":"../common/timestamp.json"},{"title":"timestamp_millis","pattern":"T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{3,}Z$"}]},"modified":{"description":"The modified property represents the time that this particular version of the object was modified. The timstamp value MUST be precise to the nearest millisecond.","allOf":[{"$ref":"../common/timestamp.json"},{"title":"timestamp_millis","pattern":"T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{3,}Z$"}]},"revoked":{"type":"boolean","description":"The revoked property indicates whether the object has been revoked."},"confidence":{"type":"integer","minimum":0,"maximum":100,"description":"Identifies the confidence that the creator has in the correctness of their data."},"lang":{"type":"string","description":"Identifies the language of the text content in this object."},"external_references":{"type":"array","description":"A list of external references which refers to non-STIX information.","items":{"$ref":"../common/external-reference.json"},"minItems":1},"object_marking_refs":{"type":"array","description":"The list of marking-definition objects to be applied to this object.","items":{"$ref":"../common/identifier.json"},"minItems":1},"granular_markings":{"type":"array","description":"The set of granular markings that apply to this object.","items":{"$ref":"../common/granular-marking.json"},"minItems":1}},"allOf":[{"$ref":"../common/properties.json"}],"not":{"anyOf":[{"required":["severity"]},{"required":["action"]},{"required":["usernames"]},{"required":["phone_numbers"]}]},"required":["type","spec_version","id","created","modified"]}')},11:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json","$schema":"http://json-schema.org/draft-07/schema#","title":"cyber-observable-core","description":"Common properties and behavior across all Cyber Observable Objects.","type":"object","properties":{"type":{"type":"string","pattern":"^([a-z][a-z0-9]*)+(-[a-z0-9]+)*\\\\-?$","minLength":3,"maxLength":250,"description":"Indicates that this object is an Observable Object. The value of this property MUST be a valid Observable Object type name, but to allow for custom objects this has been removed from the schema.","not":{"enum":["action"]}},"spec_version":{"type":"string","enum":["2.0","2.1"],"description":"The version of the STIX specification used to represent the content in this cyber-observable."},"object_marking_refs":{"type":"array","description":"The list of marking-definition objects to be applied to this object.","items":{"$ref":"../common/identifier.json"},"minItems":1},"granular_markings":{"type":"array","description":"The set of granular markings that apply to this object.","items":{"$ref":"../common/granular-marking.json"},"minItems":1},"is_defanged":{"type":"boolean","description":"Defines whether or not the data contained within the object has been defanged."},"id":{"$ref":"../common/identifier.json","description":"Specifies the identifier of the observable object, as a string."},"extensions":{"description":"Specifies any extensions of the object, as a dictionary.","type":"object","minProperties":1,"patternProperties":{"^([a-z][a-z0-9]*)+(-[a-z0-9]+)*\\\\-ext$":{"type":"object","minProperties":1,"allOf":[{"$ref":"../common/properties.json"}]}},"addtionalProperties":false}},"allOf":[{"$ref":"../common/properties.json"}],"required":["type","id"]}')},322:function(e,t,i){e.exports={menu:"menu",row:"row","menu-item":"menu-item",menuItem:"menu-item",obs:"obs"}},328:function(e,t,i){e.exports={def:"def"}},334:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json","$schema":"http://json-schema.org/draft-07/schema#","title":"attack-pattern","description":"Attack Patterns are a type of TTP that describe ways that adversaries attempt to compromise targets. ","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `attack-pattern`.","enum":["attack-pattern"]},"aliases":{"type":"array","items":{"type":"string"},"description":"Alternative names used to identify this Attack Pattern."},"id":{"title":"id","pattern":"^attack-pattern--"},"name":{"type":"string","description":"The name used to identify the Attack Pattern."},"description":{"type":"string","description":"A description that provides more details and context about the Attack Pattern, potentially including its purpose and its key characteristics."},"kill_chain_phases":{"type":"array","description":"The list of kill chain phases for which this attack pattern is used.","items":{"$ref":"../common/kill-chain-phase.json"},"minItems":1}}}],"required":["name"]}')},335:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json","$schema":"http://json-schema.org/draft-07/schema#","title":"indicator","description":"Indicators contain a pattern that can be used to detect suspicious or malicious cyber activity.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `indicator`.","enum":["indicator"]},"id":{"title":"id","pattern":"^indicator--"},"indicator_types":{"type":"array","description":"This field is an Open Vocabulary that specifies the type of indicator. Open vocab - indicator-type-ov","items":{"type":"string"},"minItems":1},"name":{"type":"string","description":"The name used to identify the Indicator."},"description":{"type":"string","description":"A description that provides the recipient with context about this Indicator potentially including its purpose and its key characteristics."},"pattern":{"type":"string","description":"The detection pattern for this indicator."},"pattern_type":{"type":"string","description":"The type of pattern used in this indicator."},"pattern_version":{"type":"string","description":"The version of the pattern that is used."},"valid_from":{"$ref":"../common/timestamp.json","description":"The time from which this indicator should be considered valuable intelligence."},"valid_until":{"$ref":"../common/timestamp.json","description":"The time at which this indicator should no longer be considered valuable intelligence."},"kill_chain_phases":{"type":"array","description":"The phases of the kill chain that this indicator detects.","items":{"$ref":"../common/kill-chain-phase.json"},"minItems":1}}}],"required":["pattern","pattern_type","valid_from"],"definitions":{"indicator-type-ov":{"type":"string","enum":["anomalous-activity","anonymization","benign","compromised","malicious-activity","attribution","unknown"]},"pattern-type-ov":{"type":"string","enum":["stix","pcre","sigma","snort","suricata","yara"]}}}')},336:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json","$schema":"http://json-schema.org/draft-07/schema#","title":"malware","description":"Malware is a type of TTP that is also known as malicious code and malicious software, refers to a program that is inserted into a system, usually covertly, with the intent of compromising the confidentiality, integrity, or availability of the victim\'s data, applications, or operating system (OS) or of otherwise annoying or disrupting the victim.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `malware`.","enum":["malware"]},"id":{"title":"id","pattern":"^malware--"},"aliases":{"type":"array","description":"Alternative names used to identify this Malware or Malware family.","items":{"type":"string"},"minItems":1},"first_seen":{"$ref":"../common/timestamp.json","description":"The time that the malware instance or family was first seen."},"last_seen":{"$ref":"../common/timestamp.json","description":"The time that the malware family or malware instance was last seen."},"operating_system_refs":{"type":"array","description":"The operating systems that the malware family or malware instance is executable on.","items":{"allOf":[{"$ref":"../common/identifier.json"},{"pattern":"^software--"}]},"minItems":1},"architecture_execution_envs":{"type":"array","description":"The processor architectures (e.g., x86, ARM, etc.) that the malware instance or family is executable on. Open Vocab - processor-architecture-os.","items":{"type":"string"},"minItems":1},"implementation_languages":{"type":"array","description":"The programming language(s) used to implement the malware instance or family. Open Vocab - implementation-language-ov.","items":{"type":"string"},"minItems":1},"capabilities":{"type":"array","description":"Specifies any capabilities identified for the malware instance or family. Open Vocab - malware-capabilities-ov.","items":{"type":"string"},"minItems":1},"sample_refs":{"type":"array","description":"The sample_refs property specifies a list of identifiers of the SCO file or artifact objects associated with this malware instance(s) or family.","items":{"type":"string"},"minItems":1},"malware_types":{"type":"array","description":"The type of malware being described. Open Vocab - malware-type-ov","items":{"type":"string"},"minItems":1},"name":{"type":"string","description":"The name used to identify the Malware."},"description":{"type":"string","description":"Provides more context and details about the Malware object."},"kill_chain_phases":{"type":"array","description":"The list of kill chain phases for which this Malware instance can be used.","items":{"$ref":"../common/kill-chain-phase.json"},"minItems":1}}}],"required":["is_family"],"oneOf":[{"properties":{"is_family":{"type":"boolean","enum":[false],"description":"Whether the object represents a malware family (if true) or a malware instance (if false)."}}},{"properties":{"is_family":{"type":"boolean","enum":[true],"description":"Whether the object represents a malware family (if true) or a malware instance (if false)."}},"required":["name"]}],"definitions":{"malware-type-ov":{"type":"string","enum":["adware","backdoor","bot","bootkit","ddos","downloader","dropper","exploit-kit","keylogger","ransomware","remote-access-trojan","resource-exploitation","rogue-security-software","rootkit","screen-capture","spyware","trojan","unknown","virus","webshell","wiper","worm"]},"implementation-language-ov":{"type":"string","enum":["applescript","bash","c","c++","c#","go","java","javascript","lua","objective-c","perl","php","powershell","python","ruby","scala","swift","typescript","visual-basic","x86-32","x86-64"]},"malware-capabilities-ov":{"type":"string","enum":["accesses-remote-machines","anti-debugging","anti-disassembly","anti-emulation","anti-memory-forensics","anti-sandbox","anti-vm","captures-input-peripherals","captures-output-peripherals","captures-system-state-data","cleans-traces-of-infection","commits-fraud","communicates-with-c2","compromises-data-availability","compromises-data-integrity","compromises-system-availability","controls-local-machine","degrades-security-software","degrades-system-updates","determines-c2-server","emails-spam","escalates-privileges","evades-av","exfiltrates-data","fingerprints-host","hides-artifacts","hides-executing-code","infects-files","infects-remote-machines","installs-other-components","persists-after-system-reboot","prevents-artifact-access","prevents-artifact-deletion","probes-network-environment","self-modifies","steals-authentication-credentials","violates-system-operational-integrity"]},"processor-architecture-ov":{"type":"string","enum":["alpha","arm","ia-64","mips","powerpc","sparc","x86","x86-64"]}}}')},337:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json","$schema":"http://json-schema.org/draft-07/schema#","title":"malware-analysis","description":"Malware Analysis captures the metadata and results of a particular analysis performed (static or dynamic) on the malware instance or family.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `malware-analysis`.","enum":["malware-analysis"]},"id":{"title":"id","pattern":"^malware-analysis--"},"product":{"type":"string","description":"The name of the analysis engine or product that was used for this analysis."},"version":{"type":"string","description":"The version of the analysis product that was used to perform this analysis."},"configuration_version":{"type":"string","description":"The version of the analysis product configuration that was used to perform this analysis."},"modules":{"type":"array","items":{"type":"string"},"description":"The particular analysis product modules that were used to perform the analysis.","minItems":1},"analysis_engine_version":{"type":"string","description":"The version of the analysis engine or product that was used to perform this analysis."},"analysis_definition_version":{"type":"string","description":"The version of the analysis definitions used by the analysis tool."},"submitted":{"$ref":"../common/timestamp.json","description":"The date and time that this malware was first submitted for scanning or analysis."},"analysis_started":{"$ref":"../common/timestamp.json","description":"The date and time that the malware analysis was initiated."},"analysis_ended":{"$ref":"../common/timestamp.json","description":"The date and time that the malware analysis ended."},"result_name":{"type":"string","description":"The classification result or name assigned to the malware instance by the scanner tool."},"result":{"type":"string","description":"The classification result as determined by the scanner or tool analysis process."},"host_vm_ref":{"description":"A description of the virtual machine environment used to host the guest operating system (if applicable) that was used for the dynamic analysis of the malware instance or family.","allOf":[{"$ref":"../common/identifier.json"},{"pattern":"^software--"}]},"operating_system_ref":{"description":"The operating system that was used to perform the dynamic analysis.","allOf":[{"$ref":"../common/identifier.json"},{"pattern":"^software--"}]},"installed_software_refs":{"type":"array","description":"Any non-standard software installed on the operating system used for the dynamic analysis of the malware instance or family.","items":{"allOf":[{"$ref":"../common/identifier.json"},{"pattern":"^software--"}]},"minItems":1},"analysis_sco_refs":{"type":"array","description":"The list of STIX objects that were captured during the analysis process.","items":{"$ref":"../common/identifier.json"},"minItems":1},"sample_ref":{"description":"Refers to the object this analysis was performed against.","allOf":[{"$ref":"../common/identifier.json"},{"oneOf":[{"pattern":"^artifact--"},{"pattern":"^file--"},{"pattern":"^network-traffic--"}]}]}}}],"required":["product"],"anyOf":[{"required":["result"]},{"required":["analysis_sco_refs"]}],"definitions":{"malware-av-result-ov":{"type":"string","enum":["malicious","suspicious","benign","unknown"]}}}')},338:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json","$schema":"http://json-schema.org/draft-07/schema","title":"sighting","description":"A Sighting denotes the belief that something in CTI (e.g., an indicator, malware, tool, threat actor, etc.) was seen.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `sighting`.","enum":["sighting"]},"id":{"title":"id","pattern":"^sighting--"},"description":{"type":"string","description":"A description that provides more details and context about the Sighting."},"first_seen":{"$ref":"../common/timestamp.json","description":"The beginning of the time window during which the SDO referenced by the sighting_of_ref property was sighted."},"last_seen":{"$ref":"../common/timestamp.json","description":"The end of the time window during which the SDO referenced by the sighting_of_ref property was sighted."},"count":{"type":"integer","description":"This is an integer between 0 and 999,999,999 inclusive and represents the number of times the object was sighted.","minimum":0,"maximum":999999999},"sighting_of_ref":{"allOf":[{"$ref":"../common/identifier.json"},{"not":{"pattern":"^sighting--"}},{"not":{"pattern":"^relationship--"}},{"not":{"pattern":"^bundle--"}},{"not":{"pattern":"^marking-definition--"}},{"not":{"pattern":"^language-content--"}}],"description":"An ID reference to the object that has been sighted."},"observed_data_refs":{"type":"array","description":"A list of ID references to the Observed Data objects that contain the raw cyber data for this Sighting.","items":{"allOf":[{"$ref":"../common/identifier.json"},{"pattern":"^observed-data--"}]},"minItems":1},"where_sighted_refs":{"type":"array","description":"A list of ID references to the Identity or Location objects describing the entities or types of entities that saw the sighting.","items":{"allOf":[{"$ref":"../common/identifier.json"},{"pattern":"^(identity|location)--"}]},"minItems":1},"summary":{"type":"boolean","description":"The summary property indicates whether the Sighting should be considered summary data. "}}}],"required":["sighting_of_ref"]}')},339:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json","$schema":"http://json-schema.org/draft-07/schema#","title":"course-of-action","description":"A Course of Action is an action taken either to prevent an attack or to respond to an attack that is in progress. ","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `course-of-action`.","enum":["course-of-action"]},"id":{"title":"id","pattern":"^course-of-action--"},"name":{"type":"string","description":"The name used to identify the Course of Action."},"description":{"type":"string","description":"A description that provides more details and context about this object, potentially including its purpose and its key characteristics."}}}],"required":["name"]}')},340:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json","$schema":"http://json-schema.org/draft-07/schema#","title":"campaign","description":"A Campaign is a grouping of adversary behavior that describes a set of malicious activities or attacks that occur over a period of time against a specific set of targets.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `campaign`.","enum":["campaign"]},"id":{"title":"id","pattern":"^campaign--"},"name":{"type":"string","description":"The name used to identify the Campaign."},"description":{"type":"string","description":"A description that provides more details and context about the Campaign, potentially including its purpose and its key characteristics."},"aliases":{"type":"array","description":"Alternative names used to identify this campaign.","items":{"type":"string"},"minItems":1},"first_seen":{"$ref":"../common/timestamp.json","description":"The time that this Campaign was first seen."},"last_seen":{"$ref":"../common/timestamp.json","description":"The time that this Campaign was last seen."},"objective":{"type":"string","description":"This field defines the Campaign’s primary goal, objective, desired outcome, or intended effect."}}}],"required":["name"]}')},341:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json","$schema":"http://json-schema.org/draft-07/schema#","title":"observed-data","description":"Observed data conveys information that was observed on systems and networks, such as log data or network traffic, using the Cyber Observable specification.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `observed-data`.","enum":["observed-data"]},"id":{"title":"id","pattern":"^observed-data--"},"first_observed":{"$ref":"../common/timestamp.json","description":"The beginning of the time window that the data was observed during."},"last_observed":{"$ref":"../common/timestamp.json","description":"The end of the time window that the data was observed during."},"number_observed":{"type":"integer","description":"The number of times the data represented in the objects property was observed. This MUST be an integer between 1 and 999,999,999 inclusive.","minimum":1,"maximum":999999999},"objects":{"type":"object","description":"A dictionary of Cyber Observable Objects that describes the single \'fact\' that was observed.","minProperties":1,"patternProperties":{"^.*$":{"type":"object","oneOf":[{"allOf":[{"$ref":"../common/cyber-observable-core.json"},{"not":{"properties":{"type":{"type":"string","pattern":"^artifact|directory|file|mutex|process|software|user-account|windows-registry-key|x509-certificate|autonomous-system|domain-name|email-addr|email-message|ipv4-addr|ipv6-addr|mac-addr|network-traffic|url$","description":"Indicates that this object is a custom Observable Object."}}}}]},{"$ref":"../observables/artifact.json"},{"$ref":"../observables/autonomous-system.json"},{"$ref":"../observables/directory.json"},{"$ref":"../observables/domain-name.json"},{"$ref":"../observables/email-addr.json"},{"$ref":"../observables/email-message.json"},{"$ref":"../observables/file.json"},{"$ref":"../observables/ipv4-addr.json"},{"$ref":"../observables/ipv6-addr.json"},{"$ref":"../observables/mac-addr.json"},{"$ref":"../observables/mutex.json"},{"$ref":"../observables/network-traffic.json"},{"$ref":"../observables/process.json"},{"$ref":"../observables/software.json"},{"$ref":"../observables/url.json"},{"$ref":"../observables/user-account.json"},{"$ref":"../observables/windows-registry-key.json"},{"$ref":"../observables/x509-certificate.json"}]}}},"object_refs":{"type":"array","description":"A list of SCOs and SROs representing the observation.","items":{"$ref":"../common/identifier.json"},"minItems":1}}}],"required":["first_observed","last_observed","number_observed"],"oneOf":[{"required":["objects"]},{"required":["object_refs"]}]}')},342:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json","$schema":"http://json-schema.org/draft-07/schema#","title":"identity","description":"Identities can represent actual individuals, organizations, or groups (e.g., ACME, Inc.) as well as classes of individuals, organizations, or groups.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `identity`.","enum":["identity"]},"id":{"title":"id","pattern":"^identity--"},"roles":{"type":"array","description":"The list of roles that this Identity performs (e.g., CEO, Domain Administrators, Doctors, Hospital, or Retailer). No open vocabulary is yet defined for this property.","items":{"type":"string"},"minItems":1},"name":{"type":"string","description":"The name of this Identity."},"description":{"type":"string","description":"A description that provides more details and context about the Identity."},"identity_class":{"type":"string","description":"The type of entity that this Identity describes, e.g., an individual or organization. Open Vocab - identity-class-ov"},"sectors":{"type":"array","description":"The list of sectors that this Identity belongs to. Open Vocab - industry-sector-ov","items":{"type":"string"},"minItems":1},"contact_information":{"type":"string","description":"The contact information (e-mail, phone number, etc.) for this Identity."}}}],"required":["name"],"definitions":{"identity-class-ov":{"type":"string","enum":["individual","group","system","organization","class","unknown"]},"industry-sector-ov":{"type":"string","enum":["agriculture","aerospace","automotive","chemical","commercial","communications","construction","defense","education","energy","engineering","entertainment","financial-services","government","emergency-services","government-local","government-national","government-public-services","government-regional","healthcare","hospitality-leisure","infrastructure","dams","nuclear","water","insurance","manufacturing","mining","non-profit","pharmaceuticals","retail","technology","telecommunications","transportation","utilities"]}}}')},343:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json","$schema":"http://json-schema.org/draft-07/schema#","title":"tool","description":"Tools are legitimate software that can be used by threat actors to perform attacks.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `tool`.","enum":["tool"]},"id":{"title":"id","pattern":"^tool--"},"aliases":{"type":"array","description":"Alternative names used to identify this Tool.","items":{"type":"string"},"minItems":1},"tool_types":{"type":"array","description":"The kind(s) of tool(s) being described. Open Vocab - tool-type-ov","items":{"type":"string"},"minItems":1},"name":{"type":"string","description":"The name used to identify the Tool."},"description":{"type":"string","description":"Provides more context and details about the Tool object."},"tool_version":{"type":"string","description":"The version identifier associated with the tool."},"kill_chain_phases":{"type":"array","description":"The list of kill chain phases for which this Tool instance can be used.","items":{"$ref":"../common/kill-chain-phase.json"},"minItems":1}}}],"required":["name"],"definitions":{"tool-type-ov":{"type":"string","enum":["denial-of-service","exploitation","information-gathering","network-capture","credential-exploitation","remote-access","vulnerability-scanning","unknown"]}}}')},344:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json","$schema":"http://json-schema.org/draft-07/schema#","title":"report","description":"Reports are collections of threat intelligence focused on one or more topics, such as a description of a threat actor, malware, or attack technique, including context and related details.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `report`.","enum":["report"]},"id":{"title":"id","pattern":"^report--"},"report_types":{"type":"array","description":"This field is an Open Vocabulary that specifies the primary subject of this report. The suggested values for this field are in report-type-ov.","items":{"type":"string"},"minItems":1},"name":{"type":"string","description":"The name used to identify the Report."},"description":{"type":"string","description":"A description that provides more details and context about Report."},"published":{"$ref":"../common/timestamp.json","description":"The date that this report object was officially published by the creator of this report."},"object_refs":{"type":"array","description":"Specifies the STIX Objects that are referred to by this Report.","items":{"$ref":"../common/identifier.json"},"minItems":1}}}],"required":["name","object_refs","published"],"definitions":{"report-type-ov":{"type":"string","enum":["threat-report","attack-pattern","campaign","identity","indicator","malware","observed-data","threat-actor","tool","vulnerability"]}}}')},345:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json","$schema":"http://json-schema.org/draft-07/schema#","title":"vulnerability","description":"A Vulnerability is a mistake in software that can be directly used by a hacker to gain access to a system or network.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `vulnerability`.","enum":["vulnerability"]},"id":{"title":"id","pattern":"^vulnerability--"},"name":{"type":"string","description":"The name used to identify the Vulnerability."},"description":{"type":"string","description":"A description that provides more details and context about the Vulnerability."}}}],"required":["name"]}')},346:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json","$schema":"http://json-schema.org/draft-07/schema#","title":"grouping","description":"A Grouping object explicitly asserts that the referenced STIX Objects have a shared content.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `grouping`.","enum":["grouping"]},"id":{"title":"id","pattern":"^grouping--"},"name":{"type":"string","description":"A name used to identify the Grouping."},"description":{"type":"string","description":"A description which provides more details and context about the Grouping, potentially including the purpose and key characteristics."},"context":{"type":"string","description":"A short description of the particular context shared by the content referenced by the Grouping."},"object_refs":{"type":"array","description":"The STIX Objects (SDOs and SROs) that are referred to by this Grouping.","items":{"$ref":"../common/identifier.json"},"minItems":1}}}],"required":["context","object_refs"],"definitions":{"grouping-context-ov":{"type":"string","enum":["suspicious-activity","malware-analysis","unspecified"]}}}')},347:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json","$schema":"http://json-schema.org/draft-07/schema#","title":"infrastructure","description":"Infrastructure objects describe systems, software services, and associated physical or virtual resources.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `infrastructure`.","enum":["infrastructure"]},"id":{"title":"id","pattern":"^infrastructure--"},"name":{"type":"string","description":"The name used to identify the Infrastructure."},"description":{"type":"string","description":"A description that provides more details and context about this Infrastructure potentially including its purpose and its key characteristics."},"infrastructure_types":{"type":"array","description":"This field is an Open Vocabulary that specifies the type of infrastructure. Open vocab - infrastructure-type-ov","items":{"type":"string"},"minItems":1},"aliases":{"type":"array","description":"Alternative names used to identify this Infrastructure.","items":{"type":"string"},"minItems":1},"kill_chain_phases":{"type":"array","description":"The list of kill chain phases for which this infrastructure is used.","items":{"$ref":"../common/kill-chain-phase.json"},"minItems":1},"first_seen":{"$ref":"../common/timestamp.json","description":"The time that this infrastructure was first seen performing malicious activities."},"last_seen":{"$ref":"../common/timestamp.json","description":"The time that this infrastructure was last seen performing malicious activities."}}}],"required":["name"],"definitions":{"infrastructure-type-ov":{"type":"string","enum":["amplification","anonymization","botnet","command-and-control","exfiltration","hosting-malware","hosting-target-lists","phishing","reconnaissance","staging","unknown"]}}}')},348:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json","$schema":"http://json-schema.org/draft-07/schema#","title":"intrusion-set","description":"An Intrusion Set is a grouped set of adversary behavior and resources with common properties that is believed to be orchestrated by a single organization.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `intrusion-set`.","enum":["intrusion-set"]},"id":{"title":"id","pattern":"^intrusion-set--"},"name":{"type":"string","description":"The name used to identify the Intrusion Set."},"description":{"type":"string","description":"Provides more context and details about the Intrusion Set object."},"aliases":{"type":"array","description":"Alternative names used to identify this Intrusion Set.","items":{"type":"string"},"minItems":1},"first_seen":{"$ref":"../common/timestamp.json","description":"The time that this Intrusion Set was first seen."},"last_seen":{"$ref":"../common/timestamp.json","description":"The time that this Intrusion Set was last seen."},"goals":{"type":"array","description":"The high level goals of this Intrusion Set, namely, what are they trying to do.","items":{"type":"string"},"minItems":1},"resource_level":{"type":"string","description":"This defines the organizational level at which this Intrusion Set typically works. Open Vocab - attack-resource-level-ov"},"primary_motivation":{"type":"string","description":"The primary reason, motivation, or purpose behind this Intrusion Set. Open Vocab - attack-motivation-ov"},"secondary_motivations":{"type":"array","description":"The secondary reasons, motivations, or purposes behind this Intrusion Set. Open Vocab - attack-motivation-ov","items":{"type":"string"},"minItems":1}}}],"required":["name"],"definitions":{"attack-resource-level-ov":{"type":"string","enum":["individual","club","contest","team","organization","government"]},"attack-motivation-ov":{"type":"string","enum":["accidental","coercion","dominance","ideology","notoriety","organizational-gain","personal-gain","personal-satisfaction","revenge","unpredictable"]}}}')},349:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json","$schema":"http://json-schema.org/draft-07/schema#","title":"location","description":"A Location represents a geographic location. The location may be described as any, some or all of the following: region (e.g., North America), civic address (e.g. New York, US), latitude and longitude.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `location`.","enum":["location"]},"id":{"title":"id","pattern":"^location--"},"description":{"type":"string","description":"A textual description of the Location."},"name":{"type":"string","description":"A name used to identify the Location."},"latitude":{"type":"number","description":"The latitude of the Location in decimal degrees.","minimum":-90,"maximum":90},"longitude":{"type":"number","description":"The longitude of the Location in decimal degrees.","minimum":-180,"maximum":180},"precision":{"type":"number","description":"Defines the precision of the coordinates specified by the latitude and longitude properties, measured in meters."},"region":{"type":"string","description":"The region that this Location describes."},"country":{"type":"string","description":"The country that this Location describes."},"administrative_area":{"type":"string","description":"The state, province, or other sub-national administrative area that this Location describes."},"city":{"type":"string","description":"The city that this Location describes."},"street_address":{"type":"string","description":"The street address that this Location describes."},"postal_code":{"type":"string","description":"The postal code for this Location."}}},{"anyOf":[{"required":["region"]},{"required":["country"]},{"required":["latitude","longitude"]}]},{"oneOf":[{"required":["latitude","longitude"]},{"allOf":[{"not":{"required":["latitude"]}},{"not":{"required":["longitude"]}}]}]},{"oneOf":[{"required":["precision","latitude","longitude"]},{"not":{"required":["precision"]}}]}],"definitions":{"region-ov":{"type":"string","enum":["africa","eastern-africa","middle-africa","northern-africa","southern-africa","western-africa","americas","latin-america-caribbean","south-america","caribbean","central-america northern-america","asia","central-asia","eastern-asia","southern-asia","western-asia","europe eastern-europe","northern-europe","southern-europe","western-europe","oceania","australia-new-zealand","melanesia","micronesia","polynesia","antarctica"]}}}')},350:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json","$schema":"http://json-schema.org/draft-07/schema#","title":"threat-actor","description":"Threat Actors are actual individuals, groups, or organizations believed to be operating with malicious intent.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `threat-actor`.","enum":["threat-actor"]},"id":{"title":"id","pattern":"^threat-actor--"},"threat_actor_types":{"type":"array","description":"This field specifies the type of threat actor. Open Vocab - threat-actor-type-ov","items":{"type":"string"},"minItems":1},"name":{"type":"string","description":"A name used to identify this Threat Actor or Threat Actor group."},"description":{"type":"string","description":"A description that provides more details and context about the Threat Actor."},"aliases":{"type":"array","description":"A list of other names that this Threat Actor is believed to use.","items":{"type":"string"},"minItems":1},"roles":{"type":"array","description":"This is a list of roles the Threat Actor plays. Open Vocab - threat-actor-role-ov","items":{"type":"string"},"minItems":1},"goals":{"type":"array","description":"The high level goals of this Threat Actor, namely, what are they trying to do.","items":{"type":"string"},"minItems":1},"first_seen":{"$ref":"../common/timestamp.json","description":"The time that this Threat Actor was first seen."},"last_seen":{"$ref":"../common/timestamp.json","description":"The time that this Threat Actor was last seen."},"sophistication":{"type":"string","description":"The skill, specific knowledge, special training, or expertise a Threat Actor must have to perform the attack. Open Vocab - threat-actor-sophistication-ov"},"resource_level":{"type":"string","description":"This defines the organizational level at which this Threat Actor typically works. Open Vocab - attack-resource-level-ov"},"primary_motivation":{"type":"string","description":"The primary reason, motivation, or purpose behind this Threat Actor. Open Vocab - attack-motivation-ov"},"secondary_motivations":{"type":"array","description":"The secondary reasons, motivations, or purposes behind this Threat Actor. Open Vocab - attack-motivation-ov","items":{"type":"string"},"minItems":1},"personal_motivations":{"type":"array","description":"The personal reasons, motivations, or purposes of the Threat Actor regardless of organizational goals. Open Vocab - attack-motivation-ov","items":{"type":"string"},"minItems":1}}}],"required":["name"],"definitions":{"threat-actor-type-ov":{"type":"string","enum":["activist","competitor","crime-syndicate","criminal","hacker","insider-accidental","insider-disgruntled","nation-state","sensationalist","spy","terrorist","unknown"]},"threat-actor-role-ov":{"type":"string","enum":["agent","director","independent","sponsor","infrastructure-operator","infrastructure-architect","malware-author"]},"threat-actor-sophistication-ov":{"type":"string","enum":["none","minimal","intermediate","advanced","strategic","expert","innovator"]},"attack-resource-level-ov":{"type":"string","enum":["individual","club","contest","team","organization","government"]},"attack-motivation-ov":{"type":"string","enum":["accidental","coercion","dominance","ideology","notoriety","organizational-gain","personal-gain","personal-satisfaction","revenge","unpredictable"]}}}')},351:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json","$schema":"http://json-schema.org/draft-07/schema#","title":"note","description":"A Note is a comment or note containing informative text to help explain the context of one or more STIX Objects (SDOs or SROs) or to provide additional analysis that is not contained in the original object.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `note`.","enum":["note"]},"id":{"title":"id","pattern":"^note--"},"abstract":{"type":"string","description":"A brief summary of the note."},"content":{"type":"string","description":"The content of the note."},"authors":{"type":"array","description":"The name of the author(s) of this note (e.g., the analyst(s) that created it).","items":{"type":"string"},"minItems":1},"object_refs":{"type":"array","description":"The STIX Objects (SDOs and SROs) that the note is being applied to.","items":{"$ref":"../common/identifier.json"},"minItems":1}}}],"required":["object_refs"]}')},352:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json","$schema":"http://json-schema.org/draft-07/schema#","title":"opinion","description":"An Opinion is an assessment of the correctness of the information in a STIX Object produced by a different entity and captures the level of agreement or disagreement using a fixed scale.","type":"object","allOf":[{"$ref":"../common/core.json"},{"properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `opinion`.","enum":["opinion"]},"id":{"title":"id","pattern":"^opinion--"},"explanation":{"type":"string","description":"An explanation of why the producer has this Opinion."},"authors":{"type":"array","description":"The name of the author(s) of this opinion (e.g., the analyst(s) that created it).","items":{"type":"string"},"minItems":1},"object_refs":{"type":"array","description":"The STIX Objects (SDOs and SROs) that the opinion is being applied to.","items":{"$ref":"../common/identifier.json"},"minItems":1},"opinion":{"type":"string","description":"The opinion that the producer has about about all of the STIX Object(s) listed in the object_refs property.","enum":["strongly-disagree","disagree","neutral","agree","strongly-agree"]}}}],"required":["object_refs","opinion"]}')},353:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json","$schema":"http://json-schema.org/draft-07/schema#","title":"artifact","description":"The Artifact Object permits capturing an array of bytes (8-bits), as a base64-encoded string string, or linking to a file-like payload.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `artifact`.","enum":["artifact"]},"id":{"title":"id","pattern":"^artifact--"},"mime_type":{"type":"string","pattern":"^(application|audio|font|image|message|model|multipart|text|video)/[a-zA-Z0-9.+_-]+","description":"The value of this property MUST be a valid MIME type as specified in the IANA Media Types registry."},"payload_bin":{"$ref":"../common/binary.json","description":"Specifies the binary data contained in the artifact as a base64-encoded string."},"url":{"$ref":"../common/url-regex.json","description":"The value of this property MUST be a valid URL that resolves to the unencoded content."},"hashes":{"$ref":"../common/hashes-type.json","description":"Specifies a dictionary of hashes for the contents of the url or the payload_bin. This MUST be provided when the url property is present."},"encryption_algorithm":{"$ref":"#/definitions/encryption-algorithm-enum","description":"If the artifact is encrypted, specifies the type of encryption algorithm the binary data (either via payload_bin or url) is encoded in."},"decryption_key":{"type":"string","description":"Specifies the decryption key for the encrypted binary data (either via payload_bin or url)."}}},{"oneOf":[{"required":["payload_bin"],"not":{"required":["url"]}},{"required":["url","hashes"],"not":{"required":["payload_bin"]}}]},{"oneOf":[{"required":["encryption_algorithm"],"not":{"required":["decryption_key"]}},{"required":["encryption_algorithm","decryption_key"]},{"allOf":[{"not":{"required":["encryption_algorithm"]}},{"not":{"required":["decryption_key"]}}]}]}],"definitions":{"encryption-algorithm-enum":{"type":"string","enum":["AES-256-GCM","ChaCha20-Poly1305","mime-type-indicated"]}}}')},354:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json","$schema":"http://json-schema.org/draft-07/schema#","title":"software","description":"The Software Object represents high-level properties associated with software, including software products.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `software`.","enum":["software"]},"id":{"title":"id","pattern":"^software--"},"name":{"type":"string","description":"Specifies the name of the software."},"cpe":{"type":"string","pattern":"cpe:2\\\\.3:[aho\\\\*\\\\-](:(((\\\\?*|\\\\*?)([a-zA-Z0-9\\\\-\\\\._]|(\\\\\\\\[\\\\\\\\\\\\*\\\\?!\\"#$$%&\'\\\\(\\\\)\\\\+,/:;<=>@\\\\[\\\\]\\\\^`\\\\{\\\\|}~]))+(\\\\?*|\\\\*?))|[\\\\*\\\\-])){5}(:(([a-zA-Z]{2,3}(-([a-zA-Z]{2}|[0-9]{3}))?)|[\\\\*\\\\-]))(:(((\\\\?*|\\\\*?)([a-zA-Z0-9\\\\-\\\\._]|(\\\\\\\\[\\\\\\\\\\\\*\\\\?!\\"#$$%&\'\\\\(\\\\)\\\\+,/:;<=>@\\\\[\\\\]\\\\^`\\\\{\\\\|}~]))+(\\\\?*|\\\\*?))|[\\\\*\\\\-])){4}","description":"Specifies the Common Platform Enumeration (CPE) entry for the software, if available. The value for this property MUST be a CPE v2.3 entry from the official NVD CPE Dictionary."},"swid":{"type":"string","description":"Specifies the Software Identification (SWID) Tags entry for the software, if available."},"languages":{"type":"array","description":"Specifies the languages supported by the software. The value of each list member MUST be an ISO 639-2 language code.","items":{"type":"string","pattern":"^[a-z]{3}$"},"minItems":1},"vendor":{"type":"string","description":"Specifies the name of the vendor of the software."},"version":{"type":"string","description":"Specifies the version of the software."}}}],"required":["name"]}')},355:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json","$schema":"http://json-schema.org/draft-07/schema#","title":"ipv4-addr","description":"The IPv4 Address Object represents one or more IPv4 addresses expressed using CIDR notation.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `ipv4-addr`.","enum":["ipv4-addr"]},"id":{"title":"id","pattern":"^ipv4-addr--"},"value":{"type":"string","description":"Specifies one or more IPv4 addresses expressed using CIDR notation.","pattern":"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\\\/(3[0-2]|[1-2][0-9]|[0-9]))?$"},"resolves_to_refs":{"type":"array","description":"Specifies a list of references to one or more Layer 2 Media Access Control (MAC) addresses that the IPv4 address resolves to.","items":{"type":"string"},"minItems":1},"belongs_to_refs":{"type":"array","description":"Specifies a reference to one or more autonomous systems (AS) that the IPv4 address belongs to.","items":{"type":"string"},"minItems":1}},"required":["value"]}]}')},356:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json","$schema":"http://json-schema.org/draft-07/schema#","title":"ipv6-addr","description":"The IPv6 Address Object represents one or more IPv6 addresses expressed using CIDR notation.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `ipv6-addr`.","enum":["ipv6-addr"]},"id":{"title":"id","pattern":"^ipv6-addr--"},"value":{"type":"string","description":"Specifies one or more IPv6 addresses expressed using CIDR notation.","pattern":"^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\\\\/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?$"},"resolves_to_refs":{"type":"array","description":"Specifies a list of references to one or more Layer 2 Media Access Control (MAC) addresses that the IPv6 address resolves to.","items":{"type":"string"},"minItems":1},"belongs_to_refs":{"type":"array","description":"Specifies a reference to one or more autonomous systems (AS) that the IPv6 address belongs to.","items":{"type":"string"},"minItems":1}},"required":["value"]}]}')},357:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json","$schema":"http://json-schema.org/draft-07/schema#","title":"autonomous-system","description":"The AS object represents the properties of an Autonomous Systems (AS).","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `autonomous-system`.","enum":["autonomous-system"]},"id":{"title":"id","pattern":"^autonomous-system--"},"number":{"type":"integer","description":"Specifies the number assigned to the AS. Such assignments are typically performed by a Regional Internet Registries (RIR)."},"name":{"type":"string","description":"Specifies the name of the AS."},"rir":{"type":"string","description":"Specifies the name of the Regional Internet Registry (RIR) that assigned the number to the AS."}},"required":["number"]}]}')},358:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json","$schema":"http://json-schema.org/draft-07/schema#","title":"directory","description":"The Directory Object represents the properties common to a file system directory.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `directory`.","enum":["directory"]},"id":{"title":"id","pattern":"^directory--"},"path":{"type":"string","description":"Specifies the path, as originally observed, to the directory on the file system."},"path_enc":{"type":"string","pattern":"^[a-zA-Z0-9/\\\\.+_:-]{2,250}$","description":"Specifies the observed encoding for the path."},"ctime":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the directory was created."},"mtime":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the directory was last written to/modified."},"atime":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the directory was last accessed."},"contains_refs":{"type":"array","description":"Specifies a list of references to other File and/or Directory Objects contained within the directory.","items":{"type":"string"},"minItems":1}},"required":["path"]}]}')},359:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json","$schema":"http://json-schema.org/draft-07/schema#","title":"domain-name","description":"The Domain Name represents the properties of a network domain name.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `domain-name`.","enum":["domain-name"]},"id":{"title":"id","pattern":"^domain-name--"},"value":{"type":"string","description":"Specifies the value of the domain name.","format":"idn-hostname"},"resolves_to_refs":{"type":"array","description":"Specifies a list of references to one or more IP addresses or domain names that the domain name resolves to.","items":{"type":"string"},"minItems":1}},"required":["value"]}]}')},360:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json","$schema":"http://json-schema.org/draft-07/schema#","title":"email-addr","description":"The Email Address Object represents a single email address.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `email-addr`.","enum":["email-addr"]},"id":{"title":"id","pattern":"^email-addr--"},"value":{"type":"string","format":"email","description":"Specifies a single email address. This MUST not include the display name."},"display_name":{"type":"string","description":"Specifies a single email display name, i.e., the name that is displayed to the human user of a mail application."},"belongs_to_ref":{"description":"Specifies the user account that the email address belongs to, as a reference to a User Account Object.","type":"string"}},"required":["value"]}]}')},361:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json","$schema":"http://json-schema.org/draft-07/schema#","title":"email-message","description":"The Email Message Object represents an instance of an email message.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `email-message`.","enum":["email-message"]},"id":{"title":"id","pattern":"^email-message--"},"date":{"$ref":"../common/timestamp.json","description":"Specifies the date/time that the email message was sent."},"content_type":{"type":"string","description":"Specifies the value of the \'Content-Type\' header of the email message."},"from_ref":{"description":"Specifies the value of the \'From:\' header of the email message.","type":"string"},"sender_ref":{"description":"Specifies the value of the \'From\' field of the email message.","type":"string"},"to_refs":{"type":"array","description":"Specifies the mailboxes that are \'To:\' recipients of the email message.","items":{"type":"string"},"minItems":1},"cc_refs":{"type":"array","description":"Specifies the mailboxes that are \'CC:\' recipients of the email message.","items":{"type":"string"},"minItems":1},"bcc_refs":{"type":"array","description":"Specifies the mailboxes that are \'BCC:\' recipients of the email message.","items":{"type":"string"},"minItems":1},"message_id":{"type":"string","description":"Specifies the Message-ID field of the email message."},"subject":{"type":"string","description":"Specifies the subject of the email message."},"received_lines":{"type":"array","description":"Specifies one or more Received header fields that may be included in the email headers.","items":{"type":"string"}},"additional_header_fields":{"$ref":"#/definitions/email-additional-header-fields","description":"Specifies any other header fields found in the email message, as a dictionary."},"raw_email_ref":{"description":"Specifies the raw binary contents of the email message, including both the headers and body, as a reference to an Artifact Object.","type":"string"}}}],"oneOf":[{"properties":{"is_multipart":{"type":"boolean","enum":[false],"description":"Indicates whether the email body contains multiple MIME parts."},"body":{"type":"string","description":"Specifies a string containing the email body. This field MAY only be used if is_multipart is false."}},"required":["is_multipart"],"not":{"required":["body_multipart"]}},{"properties":{"is_multipart":{"type":"boolean","enum":[true],"description":"Indicates whether the email body contains multiple MIME parts."},"body_multipart":{"type":"array","description":"Specifies a list of the MIME parts that make up the email body. This property MAY only be used if is_multipart is true.","items":{"$ref":"#/definitions/mime-part-type"}}},"required":["is_multipart"],"not":{"required":["body"]}}],"definitions":{"mime-part-type":{"type":"object","description":"Specifies a component of a multi-part email body.","properties":{"body":{"type":"string","description":"Specifies the contents of the MIME part if the content_type is not provided OR starts with text/"},"body_raw_ref":{"type":"string","description":"Specifies the contents of non-textual MIME parts, that is those whose content_type does not start with text/, as a reference to an Artifact Object or File Object."},"content_type":{"type":"string","description":"Specifies the value of the \'Content-Type\' header field of the MIME part."},"content_disposition":{"type":"string","description":"Specifies the value of the \'Content-Disposition\' header field of the MIME part."}},"oneOf":[{"required":["body"]},{"required":["body_raw_ref"]}]},"email-additional-header-fields":{"allOf":[{"$ref":"../common/dictionary.json"}],"description":"Specifies any other header fields (except for date, received_lines, content_type, from_ref, sender_ref, to_refs, cc_refs, bcc_refs, and subject) found in the email message, as a dictionary.","not":{"patternProperties":{"^date|received_lines|content_type|from_ref|sender_ref|to_refs|cc_refs|bcc_refs|subject$":{"description":"Invalid additional header field types"}},"additionalProperties":false},"patternProperties":{"^[a-zA-Z0-9_-]{0,250}$":{"oneOf":[{"type":"array","items":{"type":"string"},"minItems":2},{"type":"string"}]}}}}}')},362:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json","$schema":"http://json-schema.org/draft-07/schema#","title":"file","description":"The File Object represents the properties of a file.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `file`.","enum":["file"]},"id":{"title":"id","pattern":"^file--"},"extensions":{"$ref":"#/definitions/file-extensions-dictionary","description":"The File Object defines the following extensions. In addition to these, producers MAY create their own. Extensions: ntfs-ext, raster-image-ext, pdf-ext, archive-ext, windows-pebinary-ext"},"hashes":{"$ref":"../common/hashes-type.json","description":"Specifies a dictionary of hashes for the file."},"size":{"type":"integer","minimum":0,"description":"Specifies the size of the file, in bytes, as a non-negative integer."},"name":{"type":"string","description":"Specifies the name of the file."},"name_enc":{"type":"string","pattern":"^[a-zA-Z0-9/\\\\.+_:-]{2,250}$","description":"Specifies the observed encoding for the name of the file."},"magic_number_hex":{"$ref":"../common/hex.json","description":"Specifies the hexadecimal constant (\'magic number\') associated with a specific file format that corresponds to the file, if applicable."},"mime_type":{"type":"string","description":"Specifies the MIME type name specified for the file, e.g., \'application/msword\'."},"ctime":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the file was created."},"mtime":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the file was last written to/modified."},"atime":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the file was last accessed."},"parent_directory_ref":{"description":"Specifies the parent directory of the file, as a reference to a Directory Object.","type":"string"},"contains_refs":{"type":"array","description":"Specifies a list of references to other Observable Objects contained within the file.","items":{"type":"string"},"minItems":1},"content_ref":{"description":"Specifies the content of the file, represented as an Artifact Object.","type":"string"}}}],"anyOf":[{"required":["hashes"]},{"required":["name"]}],"definitions":{"file-extensions-dictionary":{"allOf":[{"$ref":"../common/dictionary.json"}],"patternProperties":{"^ntfs-ext$":{"type":"object","description":"The NTFS file extension specifies a default extension for capturing properties specific to the storage of the file on the NTFS file system.","allOf":[{"properties":{"sid":{"type":"string","description":"Specifies the security ID (SID) value assigned to the file."},"alternate_data_streams":{"type":"array","description":"Specifies a list of NTFS alternate data streams that exist for the file.","items":{"properties":{"name":{"type":"string","description":"Specifies the name of the alternate data stream."},"hashes":{"$ref":"../common/hashes-type.json","description":"Specifies a dictionary of hashes for the data contained in the alternate data stream."},"size":{"type":"integer","description":"Specifies the size of the alternate data stream, in bytes, as a non-negative integer.","minimum":0}},"required":["name"]}}}},{"anyOf":[{"required":["sid"]},{"required":["alternate_data_streams"]}]}]},"^raster-image-ext$":{"type":"object","description":"The Raster Image file extension specifies a default extension for capturing properties specific to image files.","allOf":[{"properties":{"image_height":{"type":"integer","description":"Specifies the height of the image in the image file, in pixels."},"image_width":{"type":"integer","description":"Specifies the width of the image in the image file, in pixels."},"bits_per_pixel":{"type":"integer","description":"Specifies the sum of bits used for each color channel in the image in the image file, and thus the total number of pixels used for expressing the color depth of the image."},"exif_tags":{"allOf":[{"$ref":"../common/dictionary.json"}],"description":"Specifies the set of EXIF tags found in the image file, as a dictionary. Each key/value pair in the dictionary represents the name/value of a single EXIF tag.","patternProperties":{"^[A-Z][a-zA-Z0-9_-]+$":{"oneOf":[{"type":"string"},{"type":"integer"}]}},"additionalProperties":false}}},{"anyOf":[{"required":["image_height"]},{"required":["image_width"]},{"required":["bits_per_pixel"]},{"required":["image_compression_algorithm"]},{"required":["exif_tags"]}]}]},"^pdf-ext$":{"type":"object","description":"The PDF file extension specifies a default extension for capturing properties specific to PDF files.","allOf":[{"properties":{"version":{"type":"string","description":"Specifies the decimal version number of the string from the PDF header that specifies the version of the PDF specification to which the PDF file conforms. E.g., \'1.4\'."},"is_optimized":{"type":"boolean","description":"Specifies whether the PDF file has been optimized."},"document_info_dict":{"allOf":[{"$ref":"../common/dictionary.json"}],"patternProperties":{"^[a-zA-Z0-9_-]{0,250}$":{"type":"string"}},"description":"Specifies details of the PDF document information dictionary (DID), which includes properties like the document creation data and producer, as a dictionary."},"pdfid0":{"type":"string","description":"Specifies the first file identifier found for the PDF file."},"pdfid1":{"type":"string","description":"Specifies the second file identifier found for the PDF file."}}},{"anyOf":[{"required":["version"]},{"required":["is_optimized"]},{"required":["document_info_dict"]},{"required":["pdfid0"]},{"required":["pdfid1"]}]}]},"^archive-ext$":{"type":"object","description":"The Archive File extension specifies a default extension for capturing properties specific to archive files.","properties":{"contains_refs":{"type":"array","description":"Specifies the files contained in the archive, as a reference to one or more other File Objects. The objects referenced in this list MUST be of type file-object.","items":{"type":"string"},"minItems":1},"comment":{"type":"string","description":"Specifies a comment included as part of the archive file."}},"required":["contains_refs"]},"^windows-pebinary-ext$":{"type":"object","description":"The Windows PE Binary File extension specifies a default extension for capturing properties specific to Windows portable executable (PE) files.","properties":{"pe_type":{"type":"string","description":"Specifies the type of the PE binary. Open Vocabulary - windows-pebinary-type-ov"},"imphash":{"type":"string","description":"Specifies the special import hash, or \'imphash\', calculated for the PE Binary based on its imported libraries and functions."},"machine_hex":{"$ref":"../common/hex.json","description":"Specifies the type of target machine."},"number_of_sections":{"type":"integer","minimum":0,"description":"Specifies the number of sections in the PE binary, as a non-negative integer."},"time_date_stamp":{"type":"string","description":"Specifies the time when the PE binary was created. The timestamp value MUST BE precise to the second.","allOf":[{"$ref":"../common/timestamp.json"},{"pattern":"T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$"}]},"pointer_to_symbol_table_hex":{"$ref":"../common/hex.json","description":"Specifies the file offset of the COFF symbol table."},"number_of_symbols":{"type":"integer","minimum":0,"description":"Specifies the number of entries in the symbol table of the PE binary, as a non-negative integer."},"size_of_optional_header":{"type":"integer","minimum":0,"description":"Specifies the size of the optional header of the PE binary."},"characteristics_hex":{"$ref":"../common/hex.json","description":"Specifies the flags that indicate the file’s characteristics."},"file_header_hashes":{"$ref":"../common/hashes-type.json","description":"Specifies any hashes that were computed for the file header."},"optional_header":{"$ref":"#/definitions/windows-pe-optional-header-type","description":"Specifies the PE optional header of the PE binary."},"sections":{"type":"array","description":"Specifies metadata about the sections in the PE file.","items":{"$ref":"#/definitions/windows-pe-section"},"minItems":1}},"anyOf":[{"required":["imphash"]},{"required":["machine_hex"]},{"required":["number_of_sections"]},{"required":["time_date_stamp"]},{"required":["pointer_to_symbol_table_hex"]},{"required":["number_of_symbols"]},{"required":["size_of_optional_header"]},{"required":["characteristics_hex"]},{"required":["file_header_hashes"]},{"required":["optional_header"]},{"required":["sections"]}],"required":["pe_type"]}},"additionalProperties":{"$ref":"../common/dictionary.json","description":"Custom file extension"}},"windows-pe-optional-header-type":{"type":"object","minProperties":1,"additionalProperties":false,"description":"The Windows PE Optional Header type represents the properties of the PE optional header.","properties":{"magic_hex":{"$ref":"../common/hex.json","description":"Specifies the unsigned integer that indicates the type of the PE binary."},"major_linker_version":{"type":"integer","description":"Specifies the linker major version number."},"minor_linker_version":{"type":"integer","description":"Specifies the linker minor version number."},"size_of_code":{"type":"integer","minimum":0,"description":"Specifies the size of the code (text) section. If there are multiple such sections, this refers to the sum of the sizes of each section."},"size_of_initialized_data":{"type":"integer","minimum":0,"description":"Specifies the size of the initialized data section. If there are multiple such sections, this refers to the sum of the sizes of each section."},"size_of_uninitialized_data":{"type":"integer","minimum":0,"description":"Specifies the size of the uninitialized data section. If there are multiple such sections, this refers to the sum of the sizes of each section."},"address_of_entry_point":{"type":"integer","description":"Specifies the address of the entry point relative to the image base when the executable is loaded into memory."},"base_of_code":{"type":"integer","description":"Specifies the address that is relative to the image base of the beginning-of-code section when it is loaded into memory."},"base_of_data":{"type":"integer","description":"Specifies the address that is relative to the image base of the beginning-of-data section when it is loaded into memory."},"image_base":{"type":"integer","description":"Specifies the preferred address of the first byte of the image when loaded into memory."},"section_alignment":{"type":"integer","description":"Specifies the alignment (in bytes) of PE sections when they are loaded into memory."},"file_alignment":{"type":"integer","description":"Specifies the factor (in bytes) that is used to align the raw data of sections in the image file."},"major_os_version":{"type":"integer","description":"Specifies the major version number of the required operating system."},"minor_os_version":{"type":"integer","description":"Specifies the minor version number of the required operating system."},"major_image_version":{"type":"integer","description":"Specifies the major version number of the image."},"minor_image_version":{"type":"integer","description":"Specifies the minor version number of the image."},"major_subsystem_version":{"type":"integer","description":"Specifies the major version number of the subsystem."},"minor_subsystem_version":{"type":"integer","description":"Specifies the minor version number of the subsystem."},"win32_version_value_hex":{"$ref":"../common/hex.json","description":"Specifies the reserved win32 version value."},"size_of_image":{"type":"integer","minimum":0,"description":"Specifies the size, in bytes, of the image, including all headers, as the image is loaded in memory."},"size_of_headers":{"type":"integer","minimum":0,"description":"Specifies the combined size of the MS-DOS, PE header, and section headers, rounded up a multiple of the value specified in the file_alignment header."},"checksum_hex":{"$ref":"../common/hex.json","description":"Specifies the checksum of the PE binary."},"subsystem_hex":{"$ref":"../common/hex.json","description":"Specifies the subsystem (e.g., GUI, device driver, etc.) that is required to run this image."},"dll_characteristics_hex":{"$ref":"../common/hex.json","description":"Specifies the flags that characterize the PE binary."},"size_of_stack_reserve":{"type":"integer","minimum":0,"description":"Specifies the size of the stack to reserve"},"size_of_stack_commit":{"type":"integer","minimum":0,"description":"Specifies the size of the stack to commit."},"size_of_heap_reserve":{"type":"integer","minimum":0,"description":"Specifies the size of the local heap space to reserve."},"size_of_heap_commit":{"type":"integer","minimum":0,"description":"Specifies the size of the local heap space to commit."},"loader_flags_hex":{"$ref":"../common/hex.json","description":"Specifies the reserved loader flags."},"number_of_rva_and_sizes":{"type":"integer","description":"Specifies the number of data-directory entries in the remainder of the optional header."},"hashes":{"$ref":"../common/hashes-type.json","description":"Specifies any hashes that were computed for the optional header."}}},"windows-pe-section":{"type":"object","description":"The PE Section type specifies metadata about a PE file section.","properties":{"name":{"type":"string","description":"Specifies the name of the section."},"size":{"type":"integer","minimum":0,"description":"Specifies the size of the section, in bytes."},"entropy":{"type":"number","description":"Specifies the calculated entropy for the section, as calculated using the Shannon algorithm."},"hashes":{"$ref":"../common/hashes-type.json","description":"Specifies any hashes computed over the section."}},"required":["name"]},"windows-pebinary-type-ov":{"type":"string","enum":["exe","dll","sys"]}}}')},363:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json","$schema":"http://json-schema.org/draft-07/schema#","title":"mac-addr","description":"The MAC Address Object represents a single Media Access Control (MAC) address.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `mac-addr`.","enum":["mac-addr"]},"id":{"title":"id","pattern":"^mac-addr--"},"value":{"type":"string","pattern":"^([0-9a-f]{2}[:]){5}([0-9a-f]{2})$","description":"Specifies one or more mac addresses expressed using CIDR notation."}},"required":["value"]}]}')},364:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json","$schema":"http://json-schema.org/draft-07/schema#","title":"mutex","description":"The Mutex Object represents the properties of a mutual exclusion (mutex) object.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `mutex`.","enum":["mutex"]},"id":{"title":"id","pattern":"^mutex--"},"name":{"type":"string","description":"Specifies the name of the mutex object."}}}],"required":["name"]}')},365:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json","$schema":"http://json-schema.org/draft-07/schema#","title":"network-traffic","description":"The Network Traffic Object represents arbitrary network traffic that originates from a source and is addressed to a destination.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `network-traffic`.","enum":["network-traffic"]},"id":{"title":"id","pattern":"^network-traffic--"},"extensions":{"$ref":"#/definitions/network-traffic-extensions-dictionary","description":"The Network Traffic Object defines the following extensions. In addition to these, producers MAY create their own. Extensions: http-ext, tcp-ext, icmp-ext, socket-ext"},"start":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the network traffic was initiated, if known."},"end":{"$ref":"../common/timestamp.json","description":"Specifies the date/time the network traffic ended, if known."},"src_ref":{"description":"Specifies the source of the network traffic, as a reference to an Observable Object.","type":"string"},"dst_ref":{"description":"Specifies the destination of the network traffic, as a reference to an Observable Object.","type":"string"},"src_port":{"type":"integer","description":"Specifies the source port used in the network traffic, as an integer. The port value MUST be in the range of 0 - 65535.","minimum":0,"maximum":65535},"dst_port":{"type":"integer","description":"Specifies the destination port used in the network traffic, as an integer. The port value MUST be in the range of 0 - 65535.","minimum":0,"maximum":65535},"protocols":{"type":"array","description":"Specifies the protocols observed in the network traffic, along with their corresponding state.","items":{"type":"string"},"minItems":1},"src_byte_count":{"type":"integer","description":"Specifies the number of bytes sent from the source to the destination."},"dst_byte_count":{"type":"integer","description":"Specifies the number of bytes sent from the destination to the source."},"src_packets":{"type":"integer","description":"Specifies the number of packets sent from the source to the destination."},"dst_packets":{"type":"integer","description":"Specifies the number of packets sent destination to the source."},"ipfix":{"allOf":[{"$ref":"../common/dictionary.json"}],"patternProperties":{"^[a-zA-Z0-9_-]{0,250}$":{"anyOf":[{"type":"string"},{"type":"integer"}]}}},"src_payload_ref":{"description":"Specifies the bytes sent from the source to the destination.","type":"string"},"dst_payload_ref":{"description":"Specifies the bytes sent from the source to the destination.","type":"string"},"encapsulates_refs":{"type":"array","description":"Links to other network-traffic objects encapsulated by a network-traffic.","items":{"type":"string"},"minItems":1},"encapsulated_by_ref":{"description":"Links to another network-traffic object which encapsulates this object.","type":"string"}}}],"required":["protocols"],"anyOf":[{"required":["src_ref"]},{"required":["dst_ref"]}],"oneOf":[{"properties":{"is_active":{"type":"boolean","enum":[false],"description":"Indicates whether the network traffic is still ongoing."}},"required":["is_active"]},{"properties":{"is_active":{"type":"boolean","enum":[true],"description":"Indicates whether the network traffic is still ongoing."}},"required":["is_active"],"not":{"required":["end"]}},{"not":{"required":["is_active"]}}],"definitions":{"network-traffic-extensions-dictionary":{"allOf":[{"$ref":"../common/dictionary.json"}],"patternProperties":{"^http-request-ext$":{"type":"object","description":"The HTTP request extension specifies a default extension for capturing network traffic properties specific to HTTP requests.","properties":{"request_method":{"type":"string","description":"Specifies the HTTP method portion of the HTTP request line, as a lowercase string."},"request_value":{"type":"string","description":"Specifies the value (typically a resource path) portion of the HTTP request line."},"request_version":{"type":"string","description":"Specifies the HTTP version portion of the HTTP request line, as a lowercase string."},"request_header":{"allOf":[{"$ref":"../common/dictionary.json"}],"description":"Specifies all of the HTTP header fields that may be found in the HTTP client request, as a dictionary.","patternProperties":{"^.+$":{"type":"string"}},"additionalProperties":false},"message_body_length":{"type":"integer","description":"Specifies the length of the HTTP message body, if included, in bytes."},"message_body_data_ref":{"description":"Specifies the data contained in the HTTP message body, if included.","type":"string"}},"required":["request_method","request_value"]},"^icmp-ext$":{"type":"object","description":"The ICMP extension specifies a default extension for capturing network traffic properties specific to ICMP.","properties":{"icmp_type_hex":{"$ref":"../common/hex.json","description":"Specifies the ICMP type byte."},"icmp_code_hex":{"$ref":"../common/hex.json","description":"Specifies the ICMP code byte."}},"required":["icmp_type_hex","icmp_code_hex"]},"^socket-ext$":{"type":"object","description":"The Network Socket extension specifies a default extension for capturing network traffic properties associated with network sockets.","properties":{"address_family":{"type":"string","description":"Specifies the address family (AF_*) that the socket is configured for.","enum":["AF_UNSPEC","AF_INET","AF_IPX","AF_APPLETALK","AF_NETBIOS","AF_INET6","AF_IRDA","AF_BTH"]},"is_blocking":{"type":"boolean","description":"Specifies whether the socket is in blocking mode."},"is_listening":{"type":"boolean","description":"Specifies whether the socket is in listening mode."},"options":{"allOf":[{"$ref":"../common/dictionary.json"}],"description":"Specifies any options (SO_*) that may be used by the socket, as a dictionary.","patternProperties":{"^(SO|ICMP|ICMP6|IP|IPV6|MCAST|TCP|IRLMP)(_[A-Z]+)+$":{"type":"integer"}},"additionalProperties":false},"socket_type":{"type":"string","description":"Specifies the type of the socket.","enum":["SOCK_STREAM","SOCK_DGRAM","SOCK_RAW","SOCK_RDM","SOCK_SEQPACKET"]},"socket_descriptor":{"type":"integer","minimum":0,"description":"Specifies the socket file descriptor value associated with the socket, as a non-negative integer."},"socket_handle":{"type":"integer","description":"Specifies the handle or inode value associated with the socket."}},"required":["address_family"]},"^tcp-ext$":{"type":"object","description":"The TCP extension specifies a default extension for capturing network traffic properties specific to TCP.","allOf":[{"properties":{"src_flags_hex":{"$ref":"../common/hex.json","description":"Specifies the source TCP flags, as the union of all TCP flags observed between the start of the traffic (as defined by the start property) and the end of the traffic (as defined by the end property). "},"dst_flags_hex":{"$ref":"../common/hex.json","description":"Specifies the destination TCP flags, as the union of all TCP flags observed between the start of the traffic (as defined by the start property) and the end of the traffic (as defined by the end property)."}}},{"anyOf":[{"required":["src_flags_hex"]},{"required":["dst_flags_hex"]}]}]}},"additionalProperties":{"$ref":"../common/dictionary.json","description":"Custom file extension"}}}}')},366:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json","$schema":"http://json-schema.org/draft-07/schema#","title":"process","description":"The Process Object represents common properties of an instance of a computer program as executed on an operating system.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `process`.","enum":["process"]},"id":{"title":"id","pattern":"^process--"},"extensions":{"$ref":"#/definitions/process-extensions-dictionary","description":"The Process Object defines the following extensions. In addition to these, producers MAY create their own. Extensions: windows-process-ext, windows-service-ext."},"is_hidden":{"type":"boolean","description":"Specifies whether the process is hidden."},"pid":{"type":"integer","description":"Specifies the Process ID, or PID, of the process."},"created":{"$ref":"../common/timestamp.json","description":"Specifies the date/time at which the process was created."},"cwd":{"type":"string","description":"Specifies the current working directory of the process."},"command_line":{"type":"string","description":"Specifies the full command line used in executing the process, including the process name (which may be specified individually via the binary_ref.name property) and any arguments."},"environment_variables":{"$ref":"../common/dictionary.json","description":"Specifies the list of environment variables associated with the process as a dictionary."},"opened_connection_refs":{"type":"array","description":"Specifies the list of network connections opened by the process, as a reference to one or more Network Traffic Objects.","items":{"type":"string"},"minItems":1},"creator_user_ref":{"description":"Specifies the user that created the process, as a reference to a User Account Object.","type":"string"},"image_ref":{"description":"Specifies the executable binary that was executed as the process image, as a reference to a File Object.","type":"string"},"parent_ref":{"description":"Specifies the other process that spawned (i.e. is the parent of) this one, as represented by a Process Object.","type":"string"},"child_refs":{"type":"array","description":"Specifies the other processes that were spawned by (i.e. children of) this process, as a reference to one or more other Process Objects.","items":{"type":"string"},"minItems":1}}}],"anyOf":[{"required":["extensions"]},{"required":["is_hidden"]},{"required":["pid"]},{"required":["name"]},{"required":["created"]},{"required":["cwd"]},{"required":["arguments"]},{"required":["command_line"]},{"required":["environment_variables"]},{"required":["opened_connection_refs"]},{"required":["creator_user_ref"]},{"required":["image_ref"]},{"required":["parent_ref"]},{"required":["child_refs"]}],"definitions":{"process-extensions-dictionary":{"allOf":[{"$ref":"../common/dictionary.json"}],"patternProperties":{"^windows-process-ext$":{"type":"object","description":"The Windows Process extension specifies a default extension for capturing properties specific to Windows processes.","allOf":[{"properties":{"aslr_enabled":{"type":"boolean","description":"Specifies whether Address Space Layout Randomization (ASLR) is enabled for the process."},"dep_enabled":{"type":"boolean","description":"Specifies whether Data Execution Prevention (DEP) is enabled for the process."},"priority":{"type":"string","description":"Specifies the current priority class of the process in Windows."},"owner_sid":{"type":"string","description":"Specifies the Security ID (SID) value of the owner of the process."},"window_title":{"type":"string","description":"Specifies the title of the main window of the process."},"startup_info":{"$ref":"#/definitions/startup-info-dictionary","description":"Specifies the STARTUP_INFO struct used by the process, as a dictionary."},"integrity_level":{"$ref":"#/definitions/windows-integrity-level-enum","description":"Specifies the Windows integrity level, or trustworthiness, of the process."}}},{"anyOf":[{"required":["aslr_enabled"]},{"required":["dep_enabled"]},{"required":["priority"]},{"required":["owner_sid"]},{"required":["window_title"]},{"required":["startup_info"]}]}]},"^windows-service-ext$":{"type":"object","description":"The Windows Service extension specifies a default extension for capturing properties specific to Windows services.","properties":{"service_name":{"type":"string","description":"Specifies the name of the service."},"descriptions":{"type":"array","description":"Specifies the descriptions defined for the service.","items":{"type":"string"},"minItems":1},"display_name":{"type":"string","description":"Specifies the displayed name of the service in Windows GUI controls."},"group_name":{"type":"string","description":"Specifies the name of the load ordering group of which the service is a member."},"start_type":{"type":"string","description":"Specifies the start options defined for the service. windows-service-start-enum","enum":["SERVICE_AUTO_START","SERVICE_BOOT_START","SERVICE_DEMAND_START","SERVICE_DISABLED","SERVICE_SYSTEM_ALERT"]},"service_dll_refs":{"type":"array","description":"Specifies the DLLs loaded by the service, as a reference to one or more File Objects.","items":{"type":"string"},"minItems":1},"service_type":{"type":"string","description":"Specifies the type of the service. windows-service-enum","enum":["SERVICE_KERNEL_DRIVER","SERVICE_FILE_SYSTEM_DRIVER","SERVICE_WIN32_OWN_PROCESS","SERVICE_WIN32_SHARE_PROCESS"]},"service_status":{"type":"string","description":"Specifies the current status of the service. windows-service-status-enum","enum":["SERVICE_CONTINUE_PENDING","SERVICE_PAUSE_PENDING","SERVICE_PAUSED","SERVICE_RUNNING","SERVICE_START_PENDING","SERVICE_STOP_PENDING","SERVICE_STOPPED"]}},"anyOf":[{"required":["service_name"]},{"required":["descriptions"]},{"required":["display_name"]},{"required":["group_name"]},{"required":["start_type"]},{"required":["service_dll_refs"]},{"required":["service_type"]},{"required":["service_status"]}]}},"additionalProperties":{"$ref":"../common/dictionary.json","description":"Custom file extension"}},"startup-info-dictionary":{"allOf":[{"$ref":"../common/dictionary.json"}],"patternProperties":{"^lpDesktop|lpTitle|dwFillAttribute|dwFlags|wShowWindow|hStdInput|hStdOutput|hStdError$":{"type":"string"},"^lpReserved|lpReserved2$":{"type":"null"},"^cb|dwX|dwY|dwXSize|dwYSize|dwXCountChars|dwYCountChars$":{"type":"integer"},"^cbReserved2$":{"type":"integer","minimum":0,"maximum":0}},"additionalProperties":false},"windows-integrity-level-enum":{"type":"string","enum":["low","medium","high","system"]}}}')},367:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json","$schema":"http://json-schema.org/draft-07/schema#","title":"url","description":"The URL Object represents the properties of a uniform resource locator (URL).","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `url`.","enum":["url"]},"id":{"title":"id","pattern":"^url--"},"value":{"$ref":"../common/url-regex.json","description":"Specifies the value of the URL."}}}],"required":["value"]}')},368:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json","$schema":"http://json-schema.org/draft-07/schema#","title":"user-account","description":"The User Account Object represents an instance of any type of user account, including but not limited to operating system, device, messaging service, and social media platform accounts.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `user-account`.","enum":["user-account"]},"id":{"title":"id","pattern":"^user-account--"},"extensions":{"$ref":"#/definitions/user-account-extensions-dictionary","description":"The User Account Object defines the following extensions. In addition to these, producers MAY create their own. Extensions: unix-account-ext."},"user_id":{"type":"string","description":"Specifies the identifier of the account."},"credential":{"type":"string","description":"Specifies a cleartext credential. This is only intended to be used in capturing metadata from malware analysis (e.g., a hard-coded domain administrator password that the malware attempts to use for lateral movement) and SHOULD NOT be used for sharing of PII."},"account_login":{"type":"string","description":"Specifies the account login string, used in cases where the user_id property specifies something other than what a user would type when they login."},"account_type":{"type":"string","description":"Specifies the type of the account. This is an open vocabulary and values SHOULD come from the account-type-ov vocabulary."},"display_name":{"type":"string","description":"Specifies the display name of the account, to be shown in user interfaces, if applicable."},"is_service_account":{"type":"boolean","description":"Indicates that the account is associated with a network service or system process (daemon), not a specific individual."},"is_privileged":{"type":"boolean","description":"Specifies that the account has elevated privileges (i.e., in the case of root on Unix or the Windows Administrator account)."},"can_escalate_privs":{"type":"boolean","description":"Specifies that the account has the ability to escalate privileges (i.e., in the case of sudo on Unix or a Windows Domain Admin account)."},"is_disabled":{"type":"boolean","description":"Specifies if the account is disabled."},"account_created":{"$ref":"../common/timestamp.json","description":"Specifies when the account was created."},"account_expires":{"$ref":"../common/timestamp.json","description":"Specifies the expiration date of the account."},"credential_last_changed":{"$ref":"../common/timestamp.json","description":"Specifies when the account credential was last changed."},"account_first_login":{"$ref":"../common/timestamp.json","description":"Specifies when the account was first accessed."},"account_last_login":{"$ref":"../common/timestamp.json","description":"Specifies when the account was last accessed."}}}],"anyOf":[{"required":["extensions"]},{"required":["user_id"]},{"required":["credential"]},{"required":["account_login"]},{"required":["account_type"]},{"required":["display_name"]},{"required":["is_service_account"]},{"required":["is_privileged"]},{"required":["can_escalate_privs"]},{"required":["is_disabled"]},{"required":["account_created"]},{"required":["account_expires"]},{"required":["credential_last_changed"]},{"required":["account_first_login"]},{"required":["account_last_login"]}],"definitions":{"user-account-extensions-dictionary":{"allOf":[{"$ref":"../common/dictionary.json"}],"patternProperties":{"^unix-account-ext$":{"type":"object","description":"The User Account Object defines the following extensions. In addition to these, producers MAY create their own.","allOf":[{"properties":{"gid":{"type":"number","description":"Specifies the primary group ID of the account."},"groups":{"type":"array","description":"Specifies a list of names of groups that the account is a member of.","items":{"type":"string"},"minItems":1},"home_dir":{"type":"string","description":"Specifies the home directory of the account."},"shell":{"type":"string","description":"Specifies the account’s command shell."}}},{"anyOf":[{"required":["gid"]},{"required":["groups"]},{"required":["home_dir"]},{"required":["shell"]}]}]}},"additionalProperties":{"$ref":"../common/dictionary.json","description":"Custom file extension"}},"account-type-ov":{"type":"string","enum":["unix","windows local","windows domain","ldap","tacacs","radius","nis","openid","facebook","skype","twitter","kavi"]}}}')},369:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json","$schema":"http://json-schema.org/draft-07/schema#","title":"windows-registry-key","description":"The Registry Key Object represents the properties of a Windows registry key.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `windows-registry-key`.","enum":["windows-registry-key"]},"id":{"title":"id","pattern":"^windows-registry-key--"},"key":{"type":"string","pattern":"^HKEY_LOCAL_MACHINE|hkey_local_machine|HKEY_CURRENT_USER|hkey_current_user|HKEY_CLASSES_ROOT|hkey_classes_root|HKEY_CURRENT_CONFIG|hkey_current_config|HKEY_PERFORMANCE_DATA|hkey_performance_data|HKEY_USERS|hkey_users|HKEY_DYN_DATA|hkey_dyn_data","description":"Specifies the full registry key including the hive."},"values":{"type":"array","items":{"$ref":"#/definitions/windows-registry-value-type"},"description":"Specifies the values found under the registry key."},"modified_time":{"$ref":"../common/timestamp.json","description":"Specifies the last date/time that the registry key was modified."},"creator_user_ref":{"description":"Specifies a reference to a user account, represented as a User Account Object, that created the registry key.","type":"string"},"number_of_subkeys":{"type":"integer","description":"Specifies the number of subkeys contained under the registry key."}}}],"anyOf":[{"required":["key"]},{"required":["values"]},{"required":["modified"]},{"required":["creator_user_ref"]},{"required":["number_of_subkeys"]}],"definitions":{"windows-registry-value-type":{"type":"object","properties":{"name":{"type":"string","description":"Specifies the name of the registry value. For specifying the default value in a registry key, an empty string MUST be used."},"data":{"type":"string","description":"Specifies the data contained in the registry value."},"data_type":{"type":"string","description":"Specifies the registry (REG_*) data type used in the registry value.","enum":["REG_NONE","REG_SZ","REG_EXPAND_SZ","REG_BINARY","REG_DWORD","REG_DWORD_BIG_ENDIAN","REG_DWORD_LITTLE_ENDIAN","REG_LINK","REG_MULTI_SZ","REG_RESOURCE_LIST","REG_FULL_RESOURCE_DESCRIPTION","REG_RESOURCE_REQUIREMENTS_LIST","REG_QWORD","REG_INVALID_TYPE"]}},"anyOf":[{"required":["name"]},{"required":["data"]},{"required":["data_type"]}]}}}')},370:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json","$schema":"http://json-schema.org/draft-07/schema#","title":"x509-certificate","description":"The X509 Certificate Object represents the properties of an X.509 certificate.","type":"object","allOf":[{"$ref":"../common/cyber-observable-core.json"},{"properties":{"type":{"type":"string","description":"The value of this property MUST be `x509-certificate`.","enum":["x509-certificate"]},"id":{"title":"id","pattern":"^x509-certificate--"},"is_self_signed":{"type":"boolean","description":"Specifies whether the certificate is self-signed, i.e., whether it is signed by the same entity whose identity it certifies."},"hashes":{"$ref":"../common/hashes-type.json","description":"Specifies any hashes that were calculated for the entire contents of the certificate."},"version":{"type":"string","description":"Specifies the version of the encoded certificate."},"serial_number":{"type":"string","description":"Specifies the unique identifier for the certificate, as issued by a specific Certificate Authority."},"signature_algorithm":{"type":"string","description":"Specifies the name of the algorithm used to sign the certificate."},"issuer":{"type":"string","description":"Specifies the name of the Certificate Authority that issued the certificate."},"validity_not_before":{"$ref":"../common/timestamp.json","description":"Specifies the date on which the certificate validity period begins."},"validity_not_after":{"$ref":"../common/timestamp.json","description":"Specifies the date on which the certificate validity period ends."},"subject":{"type":"string","description":"Specifies the name of the entity associated with the public key stored in the subject public key field of the certificate."},"subject_public_key_algorithm":{"type":"string","description":"Specifies the name of the algorithm with which to encrypt data being sent to the subject."},"subject_public_key_modulus":{"type":"string","description":"Specifies the modulus portion of the subject’s public RSA key."},"subject_public_key_exponent":{"type":"integer","description":"Specifies the exponent portion of the subject’s public RSA key, as an integer."},"x509_v3_extensions":{"$ref":"#/definitions/x509-v3-extensions-type","description":"Specifies any standard X.509 v3 extensions that may be used in the certificate."}}},{"anyOf":[{"required":["is_self_signed"]},{"required":["hashes"]},{"required":["version"]},{"required":["serial_number"]},{"required":["signature_algorithm"]},{"required":["issuer"]},{"required":["validity_not_before"]},{"required":["validity_not_after"]},{"required":["subject"]},{"required":["subject_public_key_algorithm"]},{"required":["subject_public_key_modulus"]},{"required":["subject_public_key_exponent"]},{"required":["x509_v3_extensions"]}]}],"definitions":{"x509-v3-extensions-type":{"type":"object","allOf":[{"properties":{"basic_constraints":{"type":"string","description":"Specifies a multi-valued extension which indicates whether a certificate is a CA certificate."},"name_constraints":{"type":"string","description":"Specifies a namespace within which all subject names in subsequent certificates in a certification path MUST be located."},"policy_constraints":{"type":"string","description":"Specifies any constraints on path validation for certificates issued to CAs."},"key_usage":{"type":"string","description":"Specifies a multi-valued extension consisting of a list of names of the permitted key usages."},"extended_key_usage":{"type":"string","description":"Specifies a list of usages indicating purposes for which the certificate public key can be used for."},"subject_key_identifier":{"type":"string","description":"Specifies the identifier that provides a means of identifying certificates that contain a particular public key."},"authority_key_identifier":{"type":"string","description":"Specifies the identifier that provides a means of identifying the public key corresponding to the private key used to sign a certificate."},"subject_alternative_name":{"type":"string","description":"Specifies the additional identities to be bound to the subject of the certificate."},"issuer_alternative_name":{"type":"string","description":"Specifies the additional identities to be bound to the issuer of the certificate."},"subject_directory_attributes":{"type":"string","description":"Specifies the identification attributes (e.g., nationality) of the subject."},"crl_distribution_points":{"type":"string","description":"Specifies how CRL information is obtained."},"inhibit_any_policy":{"type":"string","description":"Specifies the number of additional certificates that may appear in the path before anyPolicy is no longer permitted."},"private_key_usage_period_not_before":{"$ref":"../common/timestamp.json","description":"Specifies the date on which the validity period begins for the private key, if it is different from the validity period of the certificate."},"private_key_usage_period_not_after":{"$ref":"../common/timestamp.json","description":"Specifies the date on which the validity period ends for the private key, if it is different from the validity period of the certificate."},"certificate_policies":{"type":"string","description":"Specifies a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers."},"policy_mappings":{"type":"string","description":"Specifies one or more pairs of OIDs; each pair includes an issuerDomainPolicy and a subjectDomainPolicy"}}},{"anyOf":[{"required":["basic_constraints"]},{"required":["name_constraints"]},{"required":["policy_constraints"]},{"required":["key_usage"]},{"required":["extended_key_usage"]},{"required":["subject_key_identifier"]},{"required":["authority_key_identifier"]},{"required":["subject_alternative_name"]},{"required":["issuer_alternative_name"]},{"required":["subject_directory_attributes"]},{"required":["crl_distribution_points"]},{"required":["inhibit_any_policy"]},{"required":["private_key_usage_period_not_before"]},{"required":["private_key_usage_period_not_after"]},{"required":["certificate_policies"]},{"required":["policy_mappings"]}]}]}}}')},480:function(e,t,i){var r={"./af":176,"./af.js":176,"./ar":177,"./ar-dz":178,"./ar-dz.js":178,"./ar-kw":179,"./ar-kw.js":179,"./ar-ly":180,"./ar-ly.js":180,"./ar-ma":181,"./ar-ma.js":181,"./ar-sa":182,"./ar-sa.js":182,"./ar-tn":183,"./ar-tn.js":183,"./ar.js":177,"./az":184,"./az.js":184,"./be":185,"./be.js":185,"./bg":186,"./bg.js":186,"./bm":187,"./bm.js":187,"./bn":188,"./bn.js":188,"./bo":189,"./bo.js":189,"./br":190,"./br.js":190,"./bs":191,"./bs.js":191,"./ca":192,"./ca.js":192,"./cs":193,"./cs.js":193,"./cv":194,"./cv.js":194,"./cy":195,"./cy.js":195,"./da":196,"./da.js":196,"./de":197,"./de-at":198,"./de-at.js":198,"./de-ch":199,"./de-ch.js":199,"./de.js":197,"./dv":200,"./dv.js":200,"./el":201,"./el.js":201,"./en-SG":202,"./en-SG.js":202,"./en-au":203,"./en-au.js":203,"./en-ca":204,"./en-ca.js":204,"./en-gb":205,"./en-gb.js":205,"./en-ie":206,"./en-ie.js":206,"./en-il":207,"./en-il.js":207,"./en-nz":208,"./en-nz.js":208,"./eo":209,"./eo.js":209,"./es":210,"./es-do":211,"./es-do.js":211,"./es-us":212,"./es-us.js":212,"./es.js":210,"./et":213,"./et.js":213,"./eu":214,"./eu.js":214,"./fa":215,"./fa.js":215,"./fi":216,"./fi.js":216,"./fo":217,"./fo.js":217,"./fr":218,"./fr-ca":219,"./fr-ca.js":219,"./fr-ch":220,"./fr-ch.js":220,"./fr.js":218,"./fy":221,"./fy.js":221,"./ga":222,"./ga.js":222,"./gd":223,"./gd.js":223,"./gl":224,"./gl.js":224,"./gom-latn":225,"./gom-latn.js":225,"./gu":226,"./gu.js":226,"./he":227,"./he.js":227,"./hi":228,"./hi.js":228,"./hr":229,"./hr.js":229,"./hu":230,"./hu.js":230,"./hy-am":231,"./hy-am.js":231,"./id":232,"./id.js":232,"./is":233,"./is.js":233,"./it":234,"./it-ch":235,"./it-ch.js":235,"./it.js":234,"./ja":236,"./ja.js":236,"./jv":237,"./jv.js":237,"./ka":238,"./ka.js":238,"./kk":239,"./kk.js":239,"./km":240,"./km.js":240,"./kn":241,"./kn.js":241,"./ko":242,"./ko.js":242,"./ku":243,"./ku.js":243,"./ky":244,"./ky.js":244,"./lb":245,"./lb.js":245,"./lo":246,"./lo.js":246,"./lt":247,"./lt.js":247,"./lv":248,"./lv.js":248,"./me":249,"./me.js":249,"./mi":250,"./mi.js":250,"./mk":251,"./mk.js":251,"./ml":252,"./ml.js":252,"./mn":253,"./mn.js":253,"./mr":254,"./mr.js":254,"./ms":255,"./ms-my":256,"./ms-my.js":256,"./ms.js":255,"./mt":257,"./mt.js":257,"./my":258,"./my.js":258,"./nb":259,"./nb.js":259,"./ne":260,"./ne.js":260,"./nl":261,"./nl-be":262,"./nl-be.js":262,"./nl.js":261,"./nn":263,"./nn.js":263,"./pa-in":264,"./pa-in.js":264,"./pl":265,"./pl.js":265,"./pt":266,"./pt-br":267,"./pt-br.js":267,"./pt.js":266,"./ro":268,"./ro.js":268,"./ru":269,"./ru.js":269,"./sd":270,"./sd.js":270,"./se":271,"./se.js":271,"./si":272,"./si.js":272,"./sk":273,"./sk.js":273,"./sl":274,"./sl.js":274,"./sq":275,"./sq.js":275,"./sr":276,"./sr-cyrl":277,"./sr-cyrl.js":277,"./sr.js":276,"./ss":278,"./ss.js":278,"./sv":279,"./sv.js":279,"./sw":280,"./sw.js":280,"./ta":281,"./ta.js":281,"./te":282,"./te.js":282,"./tet":283,"./tet.js":283,"./tg":284,"./tg.js":284,"./th":285,"./th.js":285,"./tl-ph":286,"./tl-ph.js":286,"./tlh":287,"./tlh.js":287,"./tr":288,"./tr.js":288,"./tzl":289,"./tzl.js":289,"./tzm":290,"./tzm-latn":291,"./tzm-latn.js":291,"./tzm.js":290,"./ug-cn":292,"./ug-cn.js":292,"./uk":293,"./uk.js":293,"./ur":294,"./ur.js":294,"./uz":295,"./uz-latn":296,"./uz-latn.js":296,"./uz.js":295,"./vi":297,"./vi.js":297,"./x-pseudo":298,"./x-pseudo.js":298,"./yo":299,"./yo.js":299,"./zh-cn":300,"./zh-cn.js":300,"./zh-hk":301,"./zh-hk.js":301,"./zh-tw":302,"./zh-tw.js":302};function s(e){var t=o(e);return i(t)}function o(e){if(!i.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}s.keys=function(){return Object.keys(r)},s.resolve=o,e.exports=s,s.id=480},521:function(e,t,i){e.exports={app:"app"}},523:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/919f7d1af774d980da11a1725f2c179b.png"},524:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/abd9af55a4279c4739e5e439d2538eeb.png"},525:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/29bb5c86a22d42aba10b6ed9ce8e85c6.png"},526:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/ccf90d26d6ed1ba93cf3888d0453290d.png"},527:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/082d284458449f85461c91ddc729b4fa.png"},528:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/1e5a63b3472b583b4a730f013ec5b10d.png"},529:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/75739a5825c4c03a135ec0ca87019917.png"},530:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/b4c195d9d53719dcc70f7eed78a9369b.png"},531:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/47cf894c6775c06f5c3f78d86e36f519.png"},532:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/2de8f879351e33a41cc9a7006d54bfda.png"},533:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/4ac356832f4c6a00fad8265aa697e9db.png"},534:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/f635b56b60afd46f212a2d109b96df60.png"},535:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/3536f3f7f55d746d1a9eac4ca5073246.png"},536:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/06856678ce1a47758114a39e37a279dc.png"},537:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/4ac0232853de7d5d575cec38c2f6e0b6.png"},538:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/65221f779a26036fd1ba3b78b0012e99.png"},539:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/4f2f7c1630b4a591f198768620c86997.png"},540:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/2106b0ef97949dda5ea996d4b8fe4b08.png"},541:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/80b3f9edfc9d2d7b718c4caaf78cd3bf.png"},542:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/a889bfe1458d2191318ca350a6f86f02.png"},543:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/1b9c59d2fc6707ab4f13d7a389f6aaf5.png"},544:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/05fc68e8e9705edcf46b48f81e80c07b.png"},545:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/a7352377424d00d6a7f5778adc045c97.png"},546:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/c7066e3c6eea8aec2f175fef7239533e.png"},547:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/2cea2cba2c5e1348efe72e3abbf4eb74.png"},548:function(e,t,i){"use strict";i.r(t),t.default=i.p+"imgs/389852e34bc3b08bdfef2c8915cae2c7.png"},549:function(e,t,i){e.exports={"top-menu":"top-menu",topMenu:"top-menu",row:"row","menu-item-small":"menu-item-small",menuItemSmall:"menu-item-small","menu-item-medium":"menu-item-medium",menuItemMedium:"menu-item-medium","json-btn":"json-btn",jsonBtn:"json-btn","json-paste-btn":"json-paste-btn",jsonPasteBtn:"json-paste-btn","reset-btn":"reset-btn",resetBtn:"reset-btn",i:"i"}},550:function(e,t,i){e.exports={node:"node","hide-node":"hide-node",hideNode:"hide-node","show-node":"show-node",showNode:"show-node","ok-border":"ok-border",okBorder:"ok-border","noway-border":"noway-border",nowayBorder:"noway-border"}},551:function(e,t,i){e.exports={mask:"mask",panel:"panel","hide-mask":"hide-mask",hideMask:"hide-mask"}},569:function(e,t,i){e.exports={"rc-slider-track":"rc-slider-track",rcSliderTrack:"rc-slider-track"}},571:function(e,t,i){e.exports={"react-datepicker-wrapper":"react-datepicker-wrapper",reactDatepickerWrapper:"react-datepicker-wrapper","react-datepicker__input-container":"react-datepicker__input-container",reactDatepickerInputContainer:"react-datepicker__input-container"}},58:function(e){e.exports=JSON.parse('{"$id":"http://raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json","$schema":"http://json-schema.org/draft-07/schema#","title":"marking-definition","description":"The marking-definition object represents a specific marking.","type":"object","properties":{"type":{"type":"string","description":"The type of this object, which MUST be the literal `marking-definition`.","enum":["marking-definition"]},"spec_version":{"type":"string","enum":["2.0","2.1"],"description":"The version of the STIX specification used to represent this object."},"name":{"type":"string","description":"A name used to identify the Marking Definition."},"created_by_ref":{"$ref":"../common/identifier.json","description":"The created_by_ref property specifies the ID of the identity object that describes the entity that created this Marking Definition."},"created":{"$ref":"../common/timestamp.json","description":"The created property represents the time at which the first version of this Marking Definition object was created."},"external_references":{"type":"array","description":"A list of external references which refers to non-STIX information.","items":{"$ref":"../common/external-reference.json"},"minItems":1},"object_marking_refs":{"type":"array","description":"The object_marking_refs property specifies a list of IDs of marking-definition objects that apply to this Marking Definition.","items":{"allOf":[{"$ref":"../common/identifier.json"},{"pattern":"^marking-definition--"}]},"minItems":1},"granular_markings":{"type":"array","description":"The granular_markings property specifies a list of granular markings applied to this object.","items":{"$ref":"granular-marking.json"},"minItems":1}},"oneOf":[{"properties":{"id":{"allOf":[{"$ref":"../common/identifier.json"},{"title":"id","pattern":"^marking-definition--","description":"An identifier for this bundle."}]}},"oneOf":[{"properties":{"definition_type":{"type":"string","description":"The definition_type property identifies the type of Marking Definition.","pattern":"^statement$"},"definition":{"$ref":"#/definitions/statement","description":"The definition property contains the marking object itself."}}},{"properties":{"definition_type":{"type":"string","description":"The definition_type property identifies the type of Marking Definition.","not":{"pattern":"^(statement)|(tlp)$"}},"definition":{"type":"object","description":"The definition property contains the marking object itself."}}}],"required":["id","type","spec_version","definition","definition_type","created"]},{"description":"The TLP marking type defines how you would represent a Traffic Light Protocol (TLP) marking in a definition field.","properties":{"created":{"type":"string","enum":["2017-01-20T00:00:00.000Z"]},"definition_type":{"type":"string","enum":["tlp"]}},"oneOf":[{"$ref":"#/definitions/tlp_white"},{"$ref":"#/definitions/tlp_green"},{"$ref":"#/definitions/tlp_amber"},{"$ref":"#/definitions/tlp_red"}]}],"definitions":{"statement":{"type":"object","description":"The Statement marking type defines the representation of a textual marking statement (e.g., copyright, terms of use, etc.) in a definition","properties":{"statement":{"type":"string","description":"A statement (e.g., copyright, terms of use) applied to the content marked by this marking definition."}},"required":["statement"]},"tlp_white":{"description":"The marking-definition object representing Traffic Light Protocol (TLP) White.","properties":{"id":{"type":"string","enum":["marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9"]},"definition":{"type":"object","properties":{"tlp":{"type":"string","enum":["white"]}}}}},"tlp_green":{"description":"The marking-definition object representing Traffic Light Protocol (TLP) Green.","properties":{"id":{"type":"string","enum":["marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da"]},"definition":{"type":"object","properties":{"tlp":{"type":"string","enum":["green"]}}}}},"tlp_amber":{"description":"The marking-definition object representing Traffic Light Protocol (TLP) Amber.","properties":{"id":{"type":"string","enum":["marking-definition--f88d31f6-486f-44da-b317-01333bde0b82"]},"definition":{"type":"object","properties":{"tlp":{"type":"string","enum":["amber"]}}}}},"tlp_red":{"description":"The marking-definition object representing Traffic Light Protocol (TLP) Red.","properties":{"id":{"type":"string","enum":["marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed"]},"definition":{"type":"object","properties":{"tlp":{"type":"string","enum":["red"]}}}}}}}')},628:function(e,t,i){e.exports={"array-container":"array-container",arrayContainer:"array-container","array-container-header":"array-container-header",arrayContainerHeader:"array-container-header","array-container-body":"array-container-body",arrayContainerBody:"array-container-body","array-container-item":"array-container-item",arrayContainerItem:"array-container-item","array-container-selected":"array-container-selected",arrayContainerSelected:"array-container-selected"}},629:function(e,t,i){e.exports={"kill-chain-container":"kill-chain-container",killChainContainer:"kill-chain-container","kill-chain-header":"kill-chain-header",killChainHeader:"kill-chain-header","kill-chain-body":"kill-chain-body",killChainBody:"kill-chain-body","kill-chain-options":"kill-chain-options",killChainOptions:"kill-chain-options","kill-chain-row":"kill-chain-row",killChainRow:"kill-chain-row","material-icons":"material-icons",materialIcons:"material-icons"}},630:function(e,t,i){e.exports={"er-container":"er-container",erContainer:"er-container","er-header":"er-header",erHeader:"er-header","er-body":"er-body",erBody:"er-body","er-block":"er-block",erBlock:"er-block","er-block-row":"er-block-row",erBlockRow:"er-block-row",remove:"remove",add:"add"}},631:function(e,t,i){},632:function(e,t,i){e.exports={boolean:"boolean",selected:"selected"}},633:function(e,t,i){e.exports={"go-container":"go-container",goContainer:"go-container","go-header":"go-header",goHeader:"go-header","go-body":"go-body",goBody:"go-body","go-block-input":"go-block-input",goBlockInput:"go-block-input",input:"input","add-container":"add-container",addContainer:"add-container","go-block":"go-block",goBlock:"go-block","go-block-row":"go-block-row",goBlockRow:"go-block-row",remove:"remove",add:"add"}},634:function(e,t,i){e.exports={"ct-container":"ct-container",ctContainer:"ct-container","ct-header":"ct-header",ctHeader:"ct-header","ct-body":"ct-body",ctBody:"ct-body","ct-block-input":"ct-block-input",ctBlockInput:"ct-block-input",input:"input","add-container":"add-container",addContainer:"add-container","ct-output":"ct-output",ctOutput:"ct-output","go-block":"go-block",goBlock:"go-block","go-block-row":"go-block-row",goBlockRow:"go-block-row",remove:"remove",add:"add"}},635:function(e,t,i){e.exports={details:"details",header:"header",title:"title",delete:"delete",text:"text",body:"body",item:"item","horizontal-slider":"horizontal-slider",horizontalSlider:"horizontal-slider","item-header":"item-header",itemHeader:"item-header",slider:"slider",footer:"footer"}},636:function(e,t,i){e.exports={def:"def",disabled:"disabled","disco-relationship":"disco-relationship",discoRelationship:"disco-relationship",standard:"standard",confirm:"confirm",caution:"caution",cancel:"cancel"}},637:function(e,t,i){e.exports={"json-viewer":"json-viewer",jsonViewer:"json-viewer","json-content":"json-content",jsonContent:"json-content","json-controls":"json-controls",jsonControls:"json-controls"}},638:function(e,t,i){e.exports={"json-paste":"json-paste",jsonPaste:"json-paste","paste-area":"paste-area",pasteArea:"paste-area","json-controls":"json-controls",jsonControls:"json-controls"}},639:function(e,t,i){e.exports={"relationship-picker":"relationship-picker",relationshipPicker:"relationship-picker",header:"header",content:"content",item:"item","src-image":"src-image",srcImage:"src-image","target-image":"target-image",targetImage:"target-image","rel-type":"rel-type",relType:"rel-type"}},640:function(e,t,i){e.exports={growl:"growl"}},641:function(e,t,i){e.exports={canvas:"canvas"}},644:function(e,t,i){"use strict";i.r(t);var r=i(0),s=i.n(r),o=i(1),a=i.n(o),n=i(27),c=i(134),p=i(126),d=(i(62),i(108),i(16)),l=i.n(d),h=i(17),m=i.n(h),f=(i(417),i(9)),u=i(5),b=i.n(u),g=i(57),y=i.n(g),_=i(333),v=i.n(_),x=i(3),j=i.n(x),w=i(19),k=i.n(w),S=i(10),C=i(334),O=(i(46),2.1);class T{constructor(e,t){var i=e.properties,r={},s=["first_seen","last_seen","first_observed","last_observed","modified","updated","created","valid_from","valid_until","submitted","analysis_started","analysis_ended","published","ctime","atime","mtime","date","account_created","account_expires","credential_last_changed","account_first_login","account_last_login","modified_time","validity_not_before","validity_not_after","start","end"],o=e=>{var t;switch(e){case"string":t="";break;case"dts":t=j()().format();break;case"integer":t=0;break;case"array":t=[];break;case"object":t={};break;case"boolean":t=!1}return t};for(var a in e.required.map(e=>{i[e]&&(i[e].required=!0)}),t.allOf?t.allOf.map(e=>{e.hasOwnProperty("properties")&&(r=e.properties)}):r=t.properties,t.required&&t.required.map(e=>{r[e]&&(r[e].required=!0)}),t)this[a]=t[a];var n=b()(i,r);for(var c in n)s.indexOf(c)>-1&&(n[c].type="dts"),n[c].type&&(n[c].value=o(n[c].type));n.type&&(n.type.control="literal",n.type.enum&&(n.type.value=n.type.enum[0])),n.aliases&&(n.aliases.control="csv"),n.kill_chain_phases&&(n.kill_chain_phases.control="killchain",n.kill_chain_phases.vocab=[{label:"Lockheed Kill Chain",value:"lockheed-martin-cyber-kill-chain",phases:[{label:"Reconnaissance",phase_name:"reconnaissance"},{label:"Weaponize",phase_name:"weaponization"},{label:"Delivery",phase_name:"delivery"},{label:"Exploitation",phase_name:"exploitation"},{label:"Installation",phase_name:"installation"},{label:"Command & Control (C2)",phase_name:"command-and-control"},{label:"Actions On Objectives",phase_name:"actions-on-objectives"}]}]),n.external_references&&(n.external_references.control="externalrefs"),n.id.control="hidden",n.confidence&&(n.confidence.control="slider"),n.description&&(n.description.control="textarea"),n.spec_version.value=O,n.spec_version.control="literal",n.labels&&(n.labels.vocab=["Lorem","Ipsum"]),n.extensions&&(n.extensions.control="genericobject",n.extensions.type="object",n.extensions.value={}),n.created_by_ref&&(n.created_by_ref.value="identity--".concat(k()()),n.created_by_ref.type="literal"),n.lang&&(n.lang.value="en",n.lang.control="hidden"),n.object_marking_refs.control="hidden",n.granular_markings.control="hidden",this.properties=n}}var H=new class extends T{constructor(){var e=b()({img:"attack-pattern.png",prefix:"attack-pattern--",active:!0,relationships:[{type:"targets",target:"identity"},{type:"targets",target:"location"},{type:"targets",target:"vulnerability"},{type:"uses",target:"malware"},{type:"uses",target:"tool"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},C);super(S,e)}},I=i(335);var N=new class extends T{constructor(){var e=b()({img:"indicator.png",prefix:"indicator--",active:!0,relationships:[{type:"indicates",target:"attack-pattern"},{type:"indicates",target:"campaign"},{type:"indicates",target:"intrusion-set"},{type:"indicates",target:"malware"},{type:"indicates",target:"threat-actor"},{type:"indicates",target:"tool"},{type:"indicates",target:"infrastructure"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},I);super(S,e),this.properties.indicator_types.vocab=this.definitions["indicator-type-ov"].enum,this.properties.pattern_type.vocab=this.definitions["pattern-type-ov"].enum,this.properties.pattern_type.control="stringselector",this.properties.pattern.control="confirmtextarea"}},$=i(336);var D=new class extends T{constructor(){var e=b()({img:"malware.png",prefix:"malware--",active:!0,relationships:[{type:"targets",target:"identity"},{type:"beacons-to",target:"infrastructure"},{type:"exfiltrates-to",target:"infrastructure"},{type:"compromises",target:"infrastructure"},{type:"targets",target:"vulnerability"},{type:"targets",target:"infrastructure"},{type:"uses",target:"infrastructure"},{type:"uses",target:"tool"},{type:"variant-of",target:"malware"},{type:"identifies",target:"observable","sub-target":"artifact",x_embed:"sample_refs"},{type:"operates-on",target:"observable","sub-target":"software",x_embed:"operating_system_refs"},{type:"identifies",target:"artifact",x_embed:"sample_refs"},{type:"originates-from",target:"location",x_exclusive:!0},{type:"targets",target:"location"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},$);super(S,e),this.properties.malware_types.vocab=this.definitions["malware-type-ov"].enum,this.properties.architecture_execution_envs.vocab=this.definitions["processor-architecture-ov"].enum,this.properties.implementation_languages.vocab=this.definitions["implementation-language-ov"].enum,this.properties.capabilities.vocab=this.definitions["malware-capabilities-ov"].enum,this.properties.operating_system_refs.control="hidden",this.properties.sample_refs.control="hidden",this.properties.aliases.control="csv"}},A=i(337);var P=new class extends T{constructor(){var e=b()({img:"malware-analysis.png",prefix:"malware-analysis--",active:!0,relationships:[{type:"characterizes",target:"malware"},{type:"analysis-of",target:"malware"},{type:"static-analysis-of",target:"malware"},{type:"dynamic-analysis-of",target:"malware"},{type:"identifies",target:"observable","sub-target":"artifact",x_exclusive:!0,x_embed:"sample_ref"},{type:"identifies",target:"artifact",x_exclusive:!0,x_embed:"sample_ref"},{type:"operates-on",target:"observable","sub-target":"software",x_exclusive:!0,x_embed:"operating_system_refs"},{type:"operates-virtually-on",target:"observable","sub-target":"software",x_exclusive:!0,x_embed:"host_vm_ref"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"},{type:"observed-artifact",target:"observable","sub-target":"artifact",x_embed:"analysis_sco_refs"},{type:"observed-autonomous-system",target:"observable","sub-target":"autonomous-system",x_embed:"analysis_sco_refs"},{type:"observed-directory",target:"observable","sub-target":"directory",x_embed:"analysis_sco_refs"},{type:"observed-domain",target:"observable","sub-target":"domain-name",x_embed:"analysis_sco_refs"},{type:"observed-ipv4-addr",target:"observable","sub-target":"ipv4-addr",x_embed:"analysis_sco_refs"},{type:"observed-ipv6-addr",target:"observable","sub-target":"ipv6-addr",x_embed:"analysis_sco_refs"},{type:"observed-email-msg",target:"observable","sub-target":"email-message",x_embed:"analysis_sco_refs"},{type:"observed-email-addr",target:"observable","sub-target":"email-addr",x_embed:"analysis_sco_refs"},{type:"observed-file",target:"observable","sub-target":"file",x_embed:"analysis_sco_refs"},{type:"observed-mac-addr",target:"observable","sub-target":"mac-addr",x_embed:"analysis_sco_refs"},{type:"observed-mutex",target:"observable","sub-target":"mutex",x_embed:"analysis_sco_refs"},{type:"observed-network-traffic",target:"observable","sub-target":"network-traffic",x_embed:"analysis_sco_refs"},{type:"observed-process",target:"observable","sub-target":"process",x_embed:"analysis_sco_refs"},{type:"observed-software",target:"observable","sub-target":"software",x_embed:"analysis_sco_refs"},{type:"observed-url",target:"observable","sub-target":"url",x_embed:"analysis_sco_refs"},{type:"observed-user-account",target:"observable","sub-target":"user-account",x_embed:"analysis_sco_refs"},{type:"observed-win-reg-key",target:"observable","sub-target":"windows-registry-key",x_embed:"analysis_sco_refs"},{type:"observed-x509-cert",target:"observable","sub-target":"x509-certificate",x_embed:"analysis_sco_refs"},{type:"observed-artifact",target:"artifact",x_embed:"analysis_sco_refs"},{type:"observed-autonomous-system",target:"autonomous-system",x_embed:"analysis_sco_refs"},{type:"observed-directory",target:"directory",x_embed:"analysis_sco_refs"},{type:"observed-domain",target:"domain-name",x_embed:"analysis_sco_refs"},{type:"observed-ipv4-addr",target:"ipv4-addr",x_embed:"analysis_sco_refs"},{type:"observed-ipv6-addr",target:"ipv6-addr",x_embed:"analysis_sco_refs"},{type:"observed-email-msg",target:"email-message",x_embed:"analysis_sco_refs"},{type:"observed-email-addr",target:"email-addr",x_embed:"analysis_sco_refs"},{type:"observed-file",target:"file",x_embed:"analysis_sco_refs"},{type:"observed-mac-addr",target:"mac-addr",x_embed:"analysis_sco_refs"},{type:"observed-mutex",target:"mutex",x_embed:"analysis_sco_refs"},{type:"observed-network-traffic",target:"network-traffic",x_embed:"analysis_sco_refs"},{type:"observed-process",target:"process",x_embed:"analysis_sco_refs"},{type:"observed-software",target:"software",x_embed:"analysis_sco_refs"},{type:"observed-url",target:"url",x_embed:"analysis_sco_refs"},{type:"observed-user-account",target:"user-account",x_embed:"analysis_sco_refs"},{type:"observed-win-reg-key",target:"windows-registry-key",x_embed:"analysis_sco_refs"},{type:"observed-x509-cert",target:"x509-certificate",x_embed:"analysis_sco_refs"}]},A);super(S,e),this.properties.modules.control="csv",this.properties.host_vm_ref.control="hidden",this.properties.operating_system_ref.control="hidden",this.properties.installed_software_refs.control="hidden",this.properties.sample_ref.control="hidden",this.properties.sample_ref.type="string",this.properties.sample_ref.value="",this.properties.operating_system_ref.type="string",this.properties.operating_system_ref.value="",this.properties.host_vm_ref.value="",this.properties.analysis_sco_refs.control="hidden"}},E=i(338);var q=new class extends T{constructor(){var e=b()({img:"sighting.png",prefix:"sighting--",active:!0,relationships:[{type:"sighting-of",target:"indicator",x_exclusive:!0,x_embed:"sighting_of_ref"},{type:"sighting-of",target:"malware",x_exclusive:!0,x_embed:"sighting_of_ref"},{type:"sighting-of",target:"threat-actor",x_exclusive:!0,x_embed:"sighting_of_ref"},{type:"sighting-of",target:"attack-pattern",x_exclusive:!0,x_embed:"sighting_of_ref"},{type:"sighting-of",target:"campaign",x_exclusive:!0,x_embed:"sighting_of_ref"},{type:"sighting-of",target:"tool",x_exclusive:!0,x_embed:"sighting_of_ref"},{type:"sighting-of",target:"vulnerability",x_exclusive:!0,x_embed:"sighting_of_ref"},{type:"observed",target:"observed-data",x_embed:"observed_data_refs"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},E);super(S,e),this.properties.sighting_of_ref.control="hidden",this.properties.observed_data_refs.control="hidden",this.properties.where_sighted_refs.control="hidden",this.properties.count.control="slider"}},R=i(339);var M=new class extends T{constructor(){var e=b()({img:"course-of-action.png",prefix:"course-of-action--",active:!0,relationships:[{type:"mitigates",target:"attack-pattern"},{type:"mitigates",target:"vulnerability"},{type:"mitigates",target:"malware"},{type:"mitigates",target:"tool"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},R);super(S,e)}},z=i(340);var J=new class extends T{constructor(){var e=b()({img:"campaign.png",prefix:"campaign--",active:!0,relationships:[{type:"attributed-to",target:"intrusion-set"},{type:"attributed-to",target:"threat-actor"},{type:"targets",target:"identity"},{type:"targets",target:"vulnerability"},{type:"uses",target:"attack-pattern"},{type:"uses",target:"malware"},{type:"uses",target:"tool"},{type:"compromises",target:"infrastructure"},{type:"uses",target:"infrastructure"},{type:"originates-from",target:"location",x_exclusive:!0},{type:"targets",target:"location"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},z);super(S,e)}},U=i(341);var B=new class extends T{constructor(){var e=b()({img:"observed-data.png",prefix:"observed-data--",active:!0,relationships:[{type:"observed-artifact",target:"observable","sub-target":"artifact",x_embed:"object_refs"},{type:"observed-autonomous-system",target:"observable","sub-target":"autonomous-system",x_embed:"object_refs"},{type:"observed-directory",target:"observable","sub-target":"directory",x_embed:"object_refs"},{type:"observed-domain",target:"observable","sub-target":"domain-name",x_embed:"object_refs"},{type:"observed-ipv4-addr",target:"observable","sub-target":"ipv4-addr",x_embed:"object_refs"},{type:"observed-ipv6-addr",target:"observable","sub-target":"ipv6-addr",x_embed:"object_refs"},{type:"observed-email-msg",target:"observable","sub-target":"email-message",x_embed:"object_refs"},{type:"observed-email-addr",target:"observable","sub-target":"email-addr",x_embed:"object_refs"},{type:"observed-file",target:"observable","sub-target":"file",x_embed:"object_refs"},{type:"observed-mac-addr",target:"observable","sub-target":"mac-addr",x_embed:"object_refs"},{type:"observed-mutex",target:"observable","sub-target":"mutex",x_embed:"object_refs"},{type:"observed-network-traffic",target:"observable","sub-target":"network-traffic",x_embed:"object_refs"},{type:"observed-process",target:"observable","sub-target":"process",x_embed:"object_refs"},{type:"observed-software",target:"observable","sub-target":"software",x_embed:"object_refs"},{type:"observed-url",target:"observable","sub-target":"url",x_embed:"object_refs"},{type:"observed-user-account",target:"observable","sub-target":"user-account",x_embed:"object_refs"},{type:"observed-win-reg-key",target:"observable","sub-target":"windows-registry-key",x_embed:"object_refs"},{type:"observed-x509-cert",target:"observable","sub-target":"x509-certificate",x_embed:"object_refs"},{type:"observed-artifact",target:"artifact",x_embed:"object_refs"},{type:"observed-autonomous-system",target:"autonomous-system",x_embed:"object_refs"},{type:"observed-directory",target:"directory",x_embed:"object_refs"},{type:"observed-domain",target:"domain-name",x_embed:"object_refs"},{type:"observed-ipv4-addr",target:"ipv4-addr",x_embed:"object_refs"},{type:"observed-ipv6-addr",target:"ipv6-addr",x_embed:"object_refs"},{type:"observed-email-msg",target:"email-message",x_embed:"object_refs"},{type:"observed-email-addr",target:"email-addr",x_embed:"object_refs"},{type:"observed-file",target:"file",x_embed:"object_refs"},{type:"observed-mac-addr",target:"mac-addr",x_embed:"object_refs"},{type:"observed-mutex",target:"mutex",x_embed:"object_refs"},{type:"observed-network-traffic",target:"network-traffic",x_embed:"object_refs"},{type:"observed-process",target:"process",x_embed:"object_refs"},{type:"observed-software",target:"software",x_embed:"object_refs"},{type:"observed-url",target:"url",x_embed:"object_refs"},{type:"observed-user-account",target:"user-account",x_embed:"object_refs"},{type:"observed-win-reg-key",target:"windows-registry-key",x_embed:"object_refs"},{type:"observed-x509-cert",target:"x509-certificate",x_embed:"object_refs"}]},U);super(S,e),this.properties.number_observed.control="slider",this.properties.object_refs.control="hidden",this.properties.objects.control="hidden"}},L=i(342);var F=new class extends T{constructor(){var e=b()({img:"identity.png",prefix:"identity--",active:!0,relationships:[{type:"located-at",target:"location"},{type:"saw",target:"sighting",x_reverse:!0,x_embed:"where_sighted_refs"}]},L);super(S,e),this.properties.identity_class.vocab=this.definitions["identity-class-ov"].enum,this.properties.identity_class.control="stringselector",this.properties.sectors.vocab=this.definitions["industry-sector-ov"].enum,this.properties.roles.control="csv"}},G=i(343);var V=new class extends T{constructor(){var e=b()({img:"tool.png",prefix:"tool--",active:!0,relationships:[{type:"targets",target:"identity"},{type:"targets",target:"vulnerability"},{type:"targets",target:"infrastructure"},{type:"targets",target:"location"},{type:"uses",target:"infrastructure"},{type:"created-by",target:"identity",x_exclusive:!0}]},G);super(S,e),this.properties.tool_types.vocab=this.definitions["tool-type-ov"].enum}},W=i(344);var X=new class extends T{constructor(){var e=b()({img:"report.png",prefix:"report--",active:!0,relationships:[{type:"references",target:"identity",x_embed:"object_refs"},{type:"references",target:"sighting",x_embed:"object_refs"},{type:"references",target:"observed-data",x_embed:"object_refs"},{type:"references",target:"indicator",x_embed:"object_refs"},{type:"references",target:"malware",x_embed:"object_refs"},{type:"references",target:"report",x_embed:"object_refs"},{type:"references",target:"attack-pattern",x_embed:"object_refs"},{type:"references",target:"threat-actor",x_embed:"object_refs"},{type:"references",target:"intrusion-set",x_embed:"object_refs"},{type:"references",target:"campaign",x_embed:"object_refs"},{type:"references",target:"course-of-action",x_embed:"object_refs"},{type:"references",target:"tool",x_embed:"object_refs"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},W);super(S,e),this.properties.object_refs.control="hidden",this.properties.report_types.vocab=this.definitions["report-type-ov"].enum}},K=i(345);var Y=new class extends T{constructor(){var e=b()({img:"vulnerability.png",prefix:"vulnerability--",active:!0,relationships:[{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},K);super(S,e)}},Z=i(346);var Q=new class extends T{constructor(){var e=b()({img:"grouping.png",prefix:"grouping--",active:!0,relationships:[{type:"group",target:"identity",x_embed:"object_refs"},{type:"group",target:"sighting",x_embed:"object_refs"},{type:"group",target:"observed-data",x_embed:"object_refs"},{type:"group",target:"indicator",x_embed:"object_refs"},{type:"group",target:"malware",x_embed:"object_refs"},{type:"group",target:"report",x_embed:"object_refs"},{type:"group",target:"attack-pattern",x_embed:"object_refs"},{type:"group",target:"threat-actor",x_embed:"object_refs"},{type:"group",target:"intrusion-set",x_embed:"object_refs"},{type:"group",target:"campaign",x_embed:"object_refs"},{type:"group",target:"course-of-action",x_embed:"object_refs"},{type:"group",target:"tool",x_embed:"object_refs"},{type:"group",target:"vulnerability",x_embed:"object_refs"},{type:"group",target:"infrastructure",x_embed:"object_refs"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},Z);super(S,e),this.properties.context.vocab=this.definitions["grouping-context-ov"].enum,this.properties.object_refs.control="hidden"}},ee=i(347);var te=new class extends T{constructor(){var e=b()({img:"infrastructure.png",prefix:"infrastructure--",active:!0,relationships:[{type:"communicates-with",target:"infrastructure"},{type:"consists-of",target:"infrastructure"},{type:"controls",target:"infrastructure"},{type:"uses",target:"infrastructure"},{type:"delivers",target:"malware"},{type:"has",target:"vulnerability"},{type:"hosts",target:"tool"},{type:"hosts",target:"malware"},{type:"located-at",target:"location"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},ee);super(S,e),this.properties.infrastructure_types.vocab=this.definitions["infrastructure-type-ov"].enum}},ie=i(348);var re=new class extends T{constructor(){var e=b()({img:"intrusion-set.png",prefix:"intrusion-set--",active:!0,relationships:[{type:"attributed-to",target:"threat-actor"},{type:"targets",target:"vulnerability"},{type:"targets",target:"identity"},{type:"uses",target:"tool"},{type:"uses",target:"attack-pattern"},{type:"uses",target:"malware"},{type:"compromises",target:"infrastructure"},{type:"hosts",target:"infrastructure"},{type:"owns",target:"infrastructure"},{type:"uses",target:"infrastructure"},{type:"originates-from",target:"location",x_exclusive:!0},{type:"targets",target:"location"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},ie);super(S,e),this.properties.goals.control="csv",this.properties.primary_motivation.vocab=y()(this.definitions["attack-motivation-ov"].enum),this.properties.primary_motivation.control="stringselector",this.properties.secondary_motivations.vocab=this.definitions["attack-motivation-ov"].enum,this.properties.resource_level.vocab=y()(this.definitions["attack-resource-level-ov"].enum),this.properties.resource_level.control="stringselector"}},se=i(349);var oe=new class extends T{constructor(){var e=b()({img:"location.png",prefix:"location--",active:!0,relationships:[{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},se);super(S,e)}},ae=i(350);var ne=new class extends T{constructor(){var e=b()({img:"threat-actor.png",prefix:"threat-actor--",active:!0,relationships:[{type:"attributed-to",target:"identity"},{type:"impersonates",target:"identity"},{type:"targets",target:"identity"},{type:"targets",target:"vulnerability"},{type:"uses",target:"attack-pattern"},{type:"uses",target:"malware"},{type:"uses",target:"tool"},{type:"uses",target:"infrastructure"},{type:"compromises",target:"infrastructure"},{type:"hosts",target:"infrastructure"},{type:"owns",target:"infrastructure"},{type:"located-at",target:"location"},{type:"created-by",target:"identity",x_exclusive:!0}]},ae);super(S,e),this.properties.sophistication.control="stringselector",this.properties.resource_level.control="stringselector",this.properties.primary_motivation.control="stringselector",this.properties.goals.control="csv",this.properties.sophistication.vocab=this.definitions["threat-actor-sophistication-ov"].enum,this.properties.resource_level.vocab=this.definitions["attack-resource-level-ov"].enum,this.properties.primary_motivation.vocab=this.definitions["attack-motivation-ov"].enum,this.properties.secondary_motivations.vocab=this.definitions["attack-motivation-ov"].enum,this.properties.personal_motivations.vocab=this.definitions["attack-motivation-ov"].enum,this.properties.roles.vocab=this.definitions["threat-actor-role-ov"].enum,this.properties.threat_actor_types.vocab=this.definitions["threat-actor-type-ov"].enum}},ce=i(351);var pe=new class extends T{constructor(){var e=b()({img:"note.png",prefix:"note--",active:!0,relationships:[{type:"note",target:"indicator",x_embed:"object_refs"},{type:"note",target:"malware",x_embed:"object_refs"},{type:"note",target:"campaign",x_embed:"object_refs"},{type:"note",target:"threat-actor",x_embed:"object_refs"},{type:"note",target:"infrastructure",x_embed:"object_refs"},{type:"note",target:"intrusion-set",x_embed:"object_refs"},{type:"note",target:"tool",x_embed:"object_refs"},{type:"note",target:"sighting",x_embed:"object_refs"},{type:"note",target:"observed-data",x_embed:"object_refs"},{type:"note",target:"report",x_embed:"object_refs"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},ce);super(S,e),this.properties.authors.control="csv",this.properties.object_refs.control="hidden",this.properties.content.control="textarea"}},de=i(352);var le=new class extends T{constructor(){var e=b()({img:"opinion.png",prefix:"opinion--",active:!0,relationships:[{type:"opinion",target:"indicator",x_embed:"object_refs"},{type:"opinion",target:"malware",x_embed:"object_refs"},{type:"opinion",target:"campaign",x_embed:"object_refs"},{type:"opinion",target:"threat-actor",x_embed:"object_refs"},{type:"opinion",target:"infrastructure",x_embed:"object_refs"},{type:"opinion",target:"intrusion-set",x_embed:"object_refs"},{type:"opinion",target:"tool",x_embed:"object_refs"},{type:"created-by",target:"identity",x_exclusive:!0,x_embed:"created_by_ref"}]},de);super(S,e),this.properties.authors.control="csv",this.properties.object_refs.control="hidden",this.properties.explanation.control="textarea",this.properties.opinion.control="textarea"}},he=i(58);var me=new class extends T{constructor(){var e=b()({img:"tlp-red.png",prefix:"marking-definition--",active:!0,relationships:[{type:"applies-to",target:"indicator",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"malware",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"malware-analysis",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"campaign",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"threat-actor",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"infrastructure",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"intrusion-set",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"tool",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"sighting",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"observed-data",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"report",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"course-of-action",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"vulnerability",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"grouping",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"attack-pattern",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"location",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"note",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"opinion",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"identity",x_exclusive:!0,x_embed:"object_marking_refs"}]},he);super(S,e),this.properties.definition={tlp:"red"},this.properties.definition.control="hidden"}};var fe=new class extends T{constructor(){var e=b()({img:"tlp-amber.png",prefix:"marking-definition--",active:!0,relationships:[{type:"applies-to",target:"indicator",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"malware",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"malware-analysis",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"campaign",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"threat-actor",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"infrastructure",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"intrusion-set",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"tool",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"sighting",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"observed-data",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"report",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"course-of-action",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"vulnerability",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"grouping",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"attack-pattern",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"location",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"note",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"opinion",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"identity",x_exclusive:!0,x_embed:"object_marking_refs"}]},he);super(S,e),this.properties.definition={tlp:"amber"},this.properties.definition.control="hidden"}};var ue=new class extends T{constructor(){var e=b()({img:"tlp-green.png",prefix:"marking-definition--",active:!0,relationships:[{type:"applies-to",target:"indicator",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"malware",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"malware-analysis",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"campaign",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"threat-actor",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"infrastructure",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"intrusion-set",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"tool",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"sighting",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"observed-data",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"report",x_reverse:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"course-of-action",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"vulnerability",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"grouping",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"attack-pattern",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"location",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"note",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"opinion",x_exclusive:!0,x_embed:"object_marking_refs"},{type:"applies-to",target:"identity",x_exclusive:!0,x_embed:"object_marking_refs"}]},he);super(S,e),this.properties.definition={tlp:"green"},this.properties.definition.control="hidden"}};var be=new class extends T{constructor(){super({required:[],properties:{}},{img:"observable.png",prefix:"observable--",active:!0,relationships:[],properties:{id:{},type:{enum:["observable"]},confidence:{},spec_version:{value:""},labels:{},created_by_ref:{},lang:{},object_marking_refs:{},granular_markings:{}}})}},ge=i(11),ye=i(353);var _e=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"artifact--",active:!1,relationships:[{type:"raw",target:"observable","sub-target":"artifact",x_reverse:!0,x_embed:"raw_email_ref"},{type:"content",target:"observable","sub-target":"file",x_reverse:!0,x_embed:"content_ref"},{type:"contains",target:"observable","sub-target":"file",x_reverse:!0,x_embed:"contains_refs"},{type:"src-payload",target:"observable","sub-target":"network-traffic",x_reverse:!0,x_exclusive:!0,x_embed:"src_payload_ref"},{type:"dst-payload",target:"observable","sub-target":"network-traffic",x_reverse:!0,x_exclusive:!0,x_embed:"dst_payload_ref"}]},ye);super(ge,e),this.properties.payload_bin.type="string",this.properties.url.type="string",this.properties.encryption_algorithm.type="string",this.properties.hashes.value={},this.properties.hashes.control="genericobject"}},ve=i(354);var xe=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"software--",active:!1,relationships:[]},ve);super(ge,e),this.properties.languages.control="csv"}},je=i(355);var we=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"ipv4-addr--",active:!1,relationships:[{type:"belongs-to",target:"autonomous-system",x_embed:"belongs_to_refs"},{type:"belongs-to",target:"observable","sub-target":"autonomous-system",x_embed:"belongs_to_refs"},{type:"resolves-to",target:"mac-addr",x_embed:"resolves_to_refs"},{type:"resolves-to",target:"observable","sub-target":"mac-addr",x_embed:"resolves_to_refs"},{type:"resolves-to",target:"domain-name",x_embed:"resolves_to_refs"},{type:"resolves-to",target:"observable","sub-target":"domain-name",x_embed:"resolves_to_refs"}]},je);super(ge,e),this.properties.resolves_to_refs.control="hidden",this.properties.belongs_to_refs.control="hidden"}},ke=i(356);var Se=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"ipv6-addr--",active:!1,relationships:[{type:"belongs-to",target:"autonomous-system",x_embed:"belongs_to_refs"},{type:"belongs-to",target:"observable","sub-target":"autonomous-system",x_embed:"belongs_to_refs"},{type:"resolves-to",target:"mac-addr",x_embed:"resolves_to_refs"},{type:"resolves-to",target:"observable","sub-target":"mac-addr",x_embed:"resolves_to_refs"}]},ke);super(ge,e),this.properties.resolves_to_refs.control="hidden",this.properties.belongs_to_refs.control="hidden"}},Ce=i(357);var Oe=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"autonomous-system--",active:!1,relationships:[{type:"belongs-to",target:"observable","sub-target":"ipv4-addr",x_reverse:!0,x_embed:"belongs_to_refs"},{type:"belongs-to",target:"observable","sub-target":"ipv6-addr",x_reverse:!0,x_embed:"belongs_to_refs"}]},Ce);super(ge,e),this.properties.number.control="slider"}},Te=i(358);var He=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"directory--",active:!1,relationships:[{type:"contains",target:"observable","sub-target":"directory",x_embed:"contains_refs"},{type:"parent-directory",target:"observable","sub-target":"file",x_reverse:!0,x_embed:"parent_directory_ref"},{type:"contains",target:"observable","sub-target":"file",x_reverse:!0,x_embed:"contains_refs"}]},Te);super(ge,e),this.properties.contains_refs.control="hidden"}},Ie=i(359);var Ne=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"domain-name--",active:!1,relationships:[{type:"resolves-to",target:"observable","sub-target":"ipv4-addr",x_reverse:!0,x_embed:"resolves_to_refs"},{type:"resolves-to",target:"observable","sub-target":"ipv6-addr",x_reverse:!0,x_embed:"resolves_to_refs"}]},Ie);super(ge,e),this.properties.resolves_to_refs.control="hidden"}},$e=i(360);var De=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"email-addr--",active:!1,relationships:[{type:"from",target:"observable","sub-target":"email-message",x_reverse:!0,x_embed:"from_ref"},{type:"to",target:"observable","sub-target":"email-message",x_reverse:!0,x_embed:"to_refs"},{type:"cc",target:"observable","sub-target":"email-message",x_reverse:!0,x_embed:"cc_refs"},{type:"bcc",target:"observable","sub-target":"email-message",x_reverse:!0,x_embed:"bcc_refs"},{type:"sender",target:"observable","sub-target":"email-message",x_reverse:!0,x_embed:"sender_ref"},{type:"addr-belongs-to",target:"observable","sub-target":"user-account",x_embed:"belongs_to_ref"},{type:"addr-belongs-to",target:"user-account",x_embed:"belongs_to_ref"}]},$e);super(ge,e),this.properties.belongs_to_ref.control="hidden"}},Ae=i(361);var Pe=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"email-message--",active:!1,relationships:[{type:"from",target:"observable","sub-target":"email-addr",x_embed:"from_ref"},{type:"from",target:"email-addr",x_embed:"from_ref"},{type:"to",target:"observable","sub-target":"email-addr",x_embed:"to_refs"},{type:"to",target:"email-addr",x_embed:"to_refs"},{type:"cc",target:"observable","sub-target":"email-addr",x_embed:"cc_refs"},{type:"cc",target:"email-addr",x_embed:"cc_refs"},{type:"bcc",target:"observable","sub-target":"email-addr",x_embed:"bcc_refs"},{type:"bcc",target:"email-addr",x_embed:"bcc_refs"},{type:"sender",target:"observable","sub-target":"email-addr",x_embed:"sender_ref"},{type:"sender",target:"email-addr",x_embed:"sender_ref"},{type:"raw",target:"observable","sub-target":"artifact",x_embed:"raw_email_ref"},{type:"raw",target:"artifact",x_embed:"raw_email_ref"}]},Ae);super(ge,e),this.properties.date.type="dts",this.properties.additional_header_fields.value={},this.properties.from_ref.control="hidden",this.properties.sender_ref.control="hidden",this.properties.to_refs.control="hidden",this.properties.cc_refs.control="hidden",this.properties.bcc_refs.control="hidden",this.properties.raw_email_ref.control="hidden",this.properties.additional_header_fields.control="genericobject"}},Ee=i(362);var qe=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"file--",active:!1,relationships:[{type:"content",target:"observable","sub-target":"artifact",x_embed:"content_ref"},{type:"content",target:"artifact",x_embed:"content_ref"},{type:"parent-directory",target:"observable","sub-target":"directory",x_embed:"parent_directory_ref"},{type:"parent-directory",target:"directory",x_embed:"parent_directory_ref"},{type:"contains",target:"observable","sub-target":"artifact",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"directory",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"domain-name",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"ipv4-addr",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"ipv6-addr",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"email-message",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"email-addr",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"file",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"mac-addr",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"mutex",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"url",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"user-account",x_embed:"contains_refs"},{type:"contains",target:"observable","sub-target":"windows-registry-key",x_embed:"contains_refs"},{type:"contains",target:"artifact",x_embed:"contains_refs"},{type:"contains",target:"directory",x_embed:"contains_refs"},{type:"contains",target:"domain-name",x_embed:"contains_refs"},{type:"contains",target:"ipv4-addr",x_embed:"contains_refs"},{type:"contains",target:"ipv6-addr",x_embed:"contains_refs"},{type:"contains",target:"email-message",x_embed:"contains_refs"},{type:"contains",target:"email-addr",x_embed:"contains_refs"},{type:"contains",target:"file",x_embed:"contains_refs"},{type:"contains",target:"mac-addr",x_embed:"contains_refs"},{type:"contains",target:"mutex",x_embed:"contains_refs"},{type:"contains",target:"url",x_embed:"contains_refs"},{type:"contains",target:"user-account",x_embed:"contains_refs"},{type:"contains",target:"windows-registry-key",x_embed:"contains_refs"},{type:"image",target:"observable","sub-target":"file",x_reverse:!0,x_exclusive:!0,x_embed:"image_ref"}]},Ee);super(ge,e),this.properties.hashes.value={},this.properties.content_ref.control="hidden",this.properties.parent_directory_ref.control="hidden",this.properties.contains_refs.control="hidden",this.properties.hashes.control="genericobject",this.properties.magic_number_hex.type="string",this.properties.size.type="string"}},Re=i(363);var Me=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"mac-addr--",active:!1,relationships:[{type:"resolves-to",target:"observable","sub-target":"ipv4-addr",x_reverse:!0,x_embed:"resolves_to_refs"},{type:"resolves-to",target:"observable","sub-target":"ipv6-addr",x_reverse:!0,x_embed:"resolves_to_refs"}]},Re);super(ge,e)}},ze=i(364);var Je=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"mutex--",active:!1,relationships:[{type:"contains",target:"observable","sub-target":"file",x_reverse:!0,x_embed:"contains_refs"}]},ze);super(ge,e)}},Ue=i(365);var Be=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"network-traffic--",active:!1,relationships:[{type:"src-payload",target:"observable","sub-target":"artifact",x_exclusive:!0,x_embed:"src_payload_ref"},{type:"src-payload",target:"artifact",x_exclusive:!0,x_embed:"src_payload_ref"},{type:"dst-payload",target:"observable","sub-target":"artifact",x_exclusive:!0,x_embed:"dst_payload_ref"},{type:"dst-payload",target:"artifact",x_exclusive:!0,x_embed:"dst_payload_ref"},{type:"encapsulates",target:"observable","sub-target":"network-traffic",x_embed:"encapsulates_refs"},{type:"encapsulates",target:"network-traffic",x_embed:"encapsulates_refs"},{type:"encapsulated-by",target:"observable","sub-target":"network-traffic",x_exclusive:!0,x_embed:"encapsulated_ref"},{type:"encapsulated-by",target:"network-traffic",x_exclusive:!0,x_embed:"encapsulated_ref"},{type:"opened-connections",target:"observable","sub-target":"process",x_reverse:!0,x_embed:"opened_connection_refs"}]},Ue);super(ge,e),this.properties.ipfix.value={},this.properties.src_payload_ref.control="hidden",this.properties.dst_payload_ref.control="hidden",this.properties.encapsulates_refs.control="hidden",this.properties.encapsulated_by_ref.control="hidden",this.properties.protocols.control="csv",this.properties.ipfix.control="genericobject",this.properties.src_port.type="string",this.properties.dst_port.type="string",this.properties.src_byte_count.type="string",this.properties.dst_byte_count.type="string",this.properties.src_packets.type="string",this.properties.dst_packets.type="string"}},Le=i(366);var Fe=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"process--",active:!1,relationships:[{type:"opened-connections",target:"observable","sub-target":"network-traffic",x_embed:"opened_connection_refs"},{type:"opened-connections",target:"network-traffic",x_embed:"opened_connection_refs"},{type:"creator-user",target:"observable","sub-target":"user-account",x_embed:"creator_user_ref"},{type:"creator-user",target:"user-account",x_embed:"creator_user_ref"},{type:"image",target:"observable","sub-target":"file",x_exclusive:!0,x_embed:"image_ref"},{type:"image",target:"file",x_exclusive:!0,x_embed:"image_ref"},{type:"parent-process",target:"observable","sub-target":"process",x_exclusive:!0,x_embed:"parent_ref"},{type:"parent-process",target:"process",x_exclusive:!0,x_embed:"parent_ref"},{type:"child-process",target:"observable","sub-target":"process",x_embed:"child_refs"},{type:"child-process",target:"process",x_embed:"child_refs"}]},Le);super(ge,e),this.properties.environment_variables.value={},this.properties.opened_connection_refs.control="hidden",this.properties.creator_user_ref.control="hidden",this.properties.image_ref.control="hidden",this.properties.parent_ref.control="hidden",this.properties.child_refs.control="hidden",this.properties.environment_variables.control="genericobject"}},Ge=i(367);var Ve=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"url--",active:!1,relationships:[{type:"contains",target:"observable","sub-target":"file",x_reverse:!0}]},Ge);super(ge,e),this.properties.value.type="string"}},We=i(368);var Xe=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"user-account--",active:!1,relationships:[{type:"addr-belongs-to",target:"observable","sub-target":"email-addr",x_reverse:!0,x_embed:"belongs_to_ref"},{type:"creator-user",target:"observable","sub-target":"process",x_reverse:!0,x_embed:"creator_user_ref"}]},We);super(ge,e)}},Ke=(i(54),i(65),i(369));var Ye=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"windows-registry-key--",active:!1,relationships:[{type:"contains",target:"observable","sub-target":"file",x_reverse:!0},{type:"creator-user",target:"observable","sub-target":"user-account",x_exclusive:!0},{type:"creator-user",target:"user-account",x_exclusive:!0}]},Ke);super(ge,e),this.properties.creator_user_ref.control="hidden",this.properties.number_of_subkeys.control="slider",this.properties.values.control="csv"}},Ze=i(370);var Qe,et,tt,it,rt,st,ot,at,nt,ct,pt,dt,lt,ht,mt,ft,ut,bt,gt=new class extends T{constructor(){var e=b()({img:"observable.png",prefix:"x509-certificate--",active:!1,relationships:[]},Ze);super(ge,e),this.properties.hashes.value={},this.properties.hashes.control="genericobject",this.properties.x509_v3_extensions.type="string"}},yt=(Qe=class{constructor(){l()(this,"showDetails",et,this),l()(this,"showJSON",tt,this),l()(this,"showJSONPaste",it,this),l()(this,"showRelPicker",rt,this),l()(this,"showGrowl",st,this),l()(this,"growlMessage",ot,this),l()(this,"relationships",at,this),l()(this,"dragging",nt,this),l()(this,"selected",ct,this),l()(this,"bundle",pt,this),l()(this,"pasteBundle",dt,this),l()(this,"nodes",lt,this),l()(this,"edges",ht,this),l()(this,"lines",mt,this),l()(this,"objects",ft,this),l()(this,"mousePosition",ut,this),this.bundle.spec_version="2.1",this.bundle.id=this.generateNodeID("bundle--"),this.bundle.type="bundle",this.bundle.objects=[]}setMousePosition(e){this.mousePosition.clientX=e.clientX,this.mousePosition.clientY=e.clientY}setSelected(e){this.selected=e}showModal(){this.modal=!0}hideModal(){this.modal=!1}generateNodeID(e){return"".concat(e).concat(k()())}addNodeToBundle(e){var t=e.properties,i={id:e.id};for(var r in t)void 0!==t[r].type&&(i[r]=t[r].value),"definition"===r&&(i[r]=t[r]);this.bundle.objects.push(i)}addRelationshipToBundle(e){if(e.x_embed){var t="";e.x_embed.indexOf("refs")>-1&&(t=[]),((e,t,i)=>{this.bundle.objects.map(r=>{e.x_reverse?r.id===e.target_ref&&("string"==typeof i?r[t]=e.source_ref:Array.isArray(i)&&r[t].push(e.source_ref)):r.id===e.source_ref&&(Array.isArray(t)?t.map(t=>{for(var i in r)i===t&&("string"==typeof r[t]?r[t]=e.target_ref:Array.isArray(r[t])?r[t].push(e.target_ref):console.warn("No type for relating in addRelationshipToBundle() in App.js"))}):"string"==typeof i?r[t]=e.target_ref:Array.isArray(i)&&r[t].push(e.target_ref))})})(e,e.x_embed,t)}else this.bundle.objects.push(e)}persistNode(e){var t=!1;if(e.type)return this.nodes.map(i=>{e.id===i.id&&(t=!0)}),t||(this.nodes.push(e),this.addNodeToBundle(e)),!t}removeKillChainPhase(e){var t=this.selected.properties,i=-1;t.kill_chain_phases.value.map((t,r)=>{t.kill_chain_name===e.kill_chain_name&&t.phase_name===e.phase_name&&(i=r)}),i>-1&&t.kill_chain_phases.value.splice(i,1),this.bundle.objects.map(t=>{i=-1,t.id===this.selected.id&&(t.kill_chain_phases.map((t,r)=>{t.kill_chain_name===e.kill_chain_name&&t.phase_name===e.phase_name&&(i=r)}),i>-1&&t.kill_chain_phases.splice(i,1))})}editNodeValues(e){var t,i=this.selected.properties,r={id:this.selected.id,value:e.currentTarget.value,name:e.currentTarget.name};if("array"===i[r.name].type)i[r.name].value.map((e,i)=>{e===r.value&&(t=i)}),t>-1?(i[r.name].value.splice(t,1),this.removeNodeArrayValuesInBundle(r)):(i[r.name].value.push(r.value),this.updateNodeArrayValuesInBundle(r));else if("object"===i[r.name].type){i[r.name].value=r.value;try{r.value=JSON.parse(r.value),this.updateNodeValuesInBundle(r)}catch(e){console.warn("not a valid object")}}else i[r.name].value=r.value,this.updateNodeValuesInBundle(r)}updateNodeValuesInBundle(e){this.bundle.objects.map(t=>{t.id===e.id&&(t[e.name]=e.value)})}updateNodeArrayValuesInBundle(e){this.bundle.objects.map(t=>{t.id===e.id&&t[e.name].push(e.value)})}addGenericObject(e,t){var i=this.selected.properties[e].value;i=v()(i,t),this.bundle.objects.map(t=>{t.id===this.selected.id&&(t[e]=i)})}deleteGenericObject(e,t){var i=this.selected.properties[e].value;delete i[t],this.bundle.objects.map(t=>{t.id===this.selected.id&&(t[e]=i)})}editCSVInput(e){var t=this.selected.properties,i={id:this.selected.id,value:e.currentTarget.value,name:e.currentTarget.name};t[i.name].value=[],i.value=i.value.replace(/, /g,","),i.value=i.value.replace(/ ,/g,",");var r=i.value.split(",");i.value.length||(r=[]),r.map(e=>{t[i.name].value.push(e)}),r.length>0?this.bundle.objects.map(e=>{e.id===i.id&&(e[i.name]=[],r.map(t=>{e[i.name].push(t)}))}):this.bundle.objects.map(e=>{e.id===i.id&&(e[i.name]=[])})}removeNodeArrayValuesInBundle(e){var t;this.bundle.objects.map(i=>{i.id===e.id&&i[e.name].map((i,r)=>{i===e.value&&(t=r)}),t>-1&&i[e.name].splice(t,1)})}addDefaultObject(e){var t={source_name:""};this.selected.properties[e].value.push(t),this.bundle.objects.map(i=>{i.id===this.selected.id&&i[e].push(t)})}changeERValue(e,t,i){this.selected.properties.external_references.value[i][t]=e,this.bundle.objects.map(r=>{r.id===this.selected.id&&(r.external_references[i][t]=e)})}deleteERObjectProperty(e,t){delete this.selected.properties.external_references.value[t][e],this.bundle.objects.map(i=>{i.id===this.selected.id&&delete i.external_references[t][e]})}blockDuplicateRelationships(e,t){var i=!1;return this.edges.map(r=>{r.source_ref===e&&r.target_ref===t&&(i=!0)}),i}makeRelationship(e,t,i){var r,s=!1,o=this.blockDuplicateRelationships(e.id,t.id);return i.x_exclusive&&this.edges.map(t=>{t.source_ref===e.id&&i.type===t.relationship_type&&(s=!0)}),o||s||(r={source_ref:e.id,target_ref:t.id,relationship_type:i.type,type:"relationship",created:j()(),modified:j()(),id:this.generateNodeID("relationship--"),targetObjectType:i.target},i["sub-target"]&&(r.subTarget=i["sub-target"]),i.x_reverse&&(r.x_reverse=!0),i.x_embed&&(r.x_embed=i.x_embed)),r}canRelate(e){var t=e.properties.type.enum[0],i=this.dragging.properties.type.enum[0],r=[];return e.id!==this.dragging.id&&(e.relationships.map(t=>{if(t.target===i){var s=this.makeRelationship(e,this.dragging,t);s&&r.push(s)}}),this.dragging.relationships.map(i=>{if(i.target===t){var s=this.makeRelationship(this.dragging,e,i);s&&r.push(s)}})),1===r.length?r=r[0]:0===r.length&&(r=void 0),r}addNodeWithRelationship(e){var t=this.canRelate(e),i=Object(f.toJS)(this.dragging);if(!Array.isArray(t)){var r=i;return t?("observable"===t.targetObjectType?"observable"===e.type||(t=this.handleGenericObservable(t)):(this.edges.push(t),this.persistNode(r)),this.addRelationshipToBundle(t),t):(this.persistNode(r),t)}this.relationships=t,this.showRelPicker=!0}getNodeByType(e){var t={};return this.objects.map(i=>{if(i.properties.type.enum[0]===e)for(var r in i)t[r]=i[r]}),t}getNodeById(e){var t;return this.nodes.map(i=>{i.id===e&&(t=i)}),t}handleGenericObservable(e){var t=this.dragging,i=this.getNodeByType(e.subTarget);return i.id=this.generateNodeID(i.prefix),e.target_ref=i.id,t=i,this.edges.push(e),this.persistNode(t),this.dragging=t,e}manuallySelectRelationship(e){var t=Object(f.toJS)(this.dragging);return"observable"===e.targetObjectType?e=this.handleGenericObservable(e):(this.edges.push(e),this.persistNode(t)),this.addRelationshipToBundle(e),this.relationships=[],this.showRelPicker=!1,e}createRelationshipFromPaste(e,t,i){var r,s,o=this.getNodeByType(t.type),a=!1;return s=i?i.split("--")[0]:t[e].split("--")[0],this.nodes.map(r=>{t[e]!==r.id&&i!==r.id||(a=!0)}),a&&o.relationships.map(o=>{o.x_embed&&o.x_embed===e&&o.target===s&&(r={source_ref:t.id,target_ref:i||t[e],relationship_type:o.type,type:"relationship",created:j()(),modified:j()(),id:this.generateNodeID("relationship--")})}),r}calculateLineDrag(){var e=this,t=setInterval(()=>{e.lines.map(e=>{e.position()})},1);setTimeout(()=>{window.clearInterval(t)},1e3)}loadBundleFromPaste(){var e=this;this.reset();try{var t=JSON.parse(this.pasteBundle);t.objects.map(e=>{if("relationship"!==e.type){var t=this.getNodeByType(e.type);for(var i in t.id=e.id,t.properties)t.properties[i].value=e[i];this.persistNode(t)}}),t.objects.map(t=>{if("relationship"===t.type&&(this.edges.push(t),this.bundle.objects.push(t)),"relationship"!==t.type){var i=function(i){if(i.indexOf("_ref")>-1&&t[i].length&&"external_references"!==i)if(Array.isArray(t[i]))t[i].map(r=>{var s=e.createRelationshipFromPaste(i,t,r);s&&e.edges.push(s)});else{var r=e.createRelationshipFromPaste(i,t);r&&e.edges.push(r)}};for(var r in t)i(r)}}),this.pasteBundle="",this.showJSONPaste=!1}catch(e){this.growlMessage="Incorrect JSON Syntax.",this.showGrowl=!0,console.warn(e)}}deleteSelectedNode(){var e=this.selected,t=[],i=(t,i,r)=>{this.bundle.objects.map(r=>{r.id===i.id&&(Array.isArray(r[t.x_embed])?r[t.x_embed].map((i,s)=>{i===e.id&&r[t.x_embed].splice(s,1)}):r[t.x_embed]="")})},r=e=>{this.bundle.objects.map((t,i)=>{t.id===e&&this.bundle.objects.splice(i,1)})},s=[];this.edges.map((s,o)=>{if(s.source_ref===e.id){e.id;var a=this.getNodeById(s.target_ref);t.push(o),s.x_reverse&&i(s,a),r(s.id)}else if(s.target_ref===e.id){var n=e.id,c=this.getNodeById(s.source_ref);t.push(o),s.x_embed?(Array.isArray(c.properties[s.x_embed])?c.properties[s.x_embed].map((e,t)=>{e.id===n&&c.properties[s.x_embed].splice(t,1)}):c.properties[s.x_embed]="",i(s,c)):r(s.id)}});for(var o=t.length;o--;)console.log(o),this.edges.splice(o,1);this.lines.map((t,i)=>{t.start.id===e.id||t.end.id===e.id?t.remove():s.push(t)}),this.lines=s,this.bundle.objects.map((t,i)=>{t.id===e.id&&this.bundle.objects.splice(i,1)}),this.nodes.map((t,i)=>{t.id===e.id&&this.nodes.splice(i,1)}),this.showDetails=!1}reset(){this.showDetails=!1,this.showJSON=!1,this.showRelPicker=!1,this.showGrowl=!1,this.growlMessage="",this.relationships=[],this.dragging={},this.selected={},this.bundle={},this.nodes=[],this.edges=[],this.bundle.spec_version="2.1",this.bundle.id=this.generateNodeID("bundle--"),this.bundle.type="bundle",this.bundle.objects=[],this.lines.map(e=>{e.remove()}),this.lines=[]}},et=m()(Qe.prototype,"showDetails",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),tt=m()(Qe.prototype,"showJSON",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),it=m()(Qe.prototype,"showJSONPaste",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),rt=m()(Qe.prototype,"showRelPicker",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),st=m()(Qe.prototype,"showGrowl",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),ot=m()(Qe.prototype,"growlMessage",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),at=m()(Qe.prototype,"relationships",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),nt=m()(Qe.prototype,"dragging",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{}}}),ct=m()(Qe.prototype,"selected",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{}}}),pt=m()(Qe.prototype,"bundle",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{}}}),dt=m()(Qe.prototype,"pasteBundle",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),lt=m()(Qe.prototype,"nodes",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),ht=m()(Qe.prototype,"edges",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),mt=m()(Qe.prototype,"lines",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),ft=m()(Qe.prototype,"objects",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[q,D,P,N,M,H,B,J,F,V,X,Y,Q,te,re,oe,ne,pe,le,me,fe,ue,_e,be,xe,we,Se,Oe,He,Ne,De,Pe,qe,Me,Je,Be,Fe,Ve,Xe,Ye,gt]}}),ut=m()(Qe.prototype,"mousePosition",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{clientX:0,clientY:0}}}),Qe),_t=p.store.setup({appStore:yt}),vt=i(8),xt=i(376),jt=i(40);i(502),i(521),i(7),i(322);var wt,kt,St,Ct,Ot,Tt=(wt=i(82),kt={},wt.keys().map((e,t)=>{kt[e.replace("./","")]=wt(e)}),kt),Ht=Object(vt.c)(bt=class extends a.a.Component{constructor(e){super(e),this.onDragStartHandler=this.onDragStartHandler.bind(this)}onDragStartHandler(e){var t=this.props.generateNodeID(this.props.o.prefix);this.props.o.id=t,e.dataTransfer.setData("node",JSON.stringify(this.props.o)),this.props.onDragStartHandler(e)}render(){var e=this.props.o;return s()("div",{className:"menu-item",draggable:"true",onDragStart:this.onDragStartHandler},void 0,s()("img",{src:Tt[e.img].default,draggable:"false"}))}})||bt,It=Object(vt.c)(St=class extends a.a.Component{constructor(e){super(e)}render(){return s()("div",{className:"menu"},void 0,s()("div",{className:"row"},void 0,this.props.objects.map((e,t)=>{if(e.active)return s()(Ht,{o:e,onDragStartHandler:this.props.onDragStartHandler,generateNodeID:this.props.generateNodeID},t)})))}})||St,Nt=i(18),$t=(i(549),s()("span",{className:"i material-icons"},void 0,"refresh")),Dt=s()(Nt.a,{}),At=Object(vt.c)(Ct=class extends a.a.Component{constructor(e){super(e)}render(){return s()("div",{className:"top-menu"},void 0,s()("div",{className:"row"},void 0,s()("div",{"data-tip":"Paste JSON",className:"json-paste-btn menu-item-medium",onClick:this.props.onClickShowJsonPasteHandler},void 0,"{ + }"),s()("div",{"data-tip":"View JSON",className:"json-btn menu-item-small",onClick:this.props.onClickShowJsonHandler},void 0,"{ }"),s()("div",{"data-tip":"Clear JSON",className:"reset-btn menu-item",onClick:this.props.onClickResetHandler},void 0,$t," Reset"),Dt))}})||Ct,Pt=i(12),Et=i.n(Pt);i(550);var qt,Rt,Mt,zt,Jt=function(e){var t={};return e.keys().map((i,r)=>{t[i.replace("./","")]=e(i)}),t}(i(82)),Ut=Object(vt.c)(Ot=class extends a.a.Component{constructor(e){super(e),this.onDragStartHandler=this.onDragStartHandler.bind(this),this.onDragOverHandler=this.onDragOverHandler.bind(this),this.onDropHandler=this.onDropHandler.bind(this),this.onDragEndHandler=this.onDragEndHandler.bind(this),this.onDragLeaveHandler=this.onDragLeaveHandler.bind(this)}onClickHandler(e){this.props.onClickHandler(e)}onDragStartHandler(e){e.dataTransfer.setData("node",JSON.stringify(this.props.n)),this.props.onDragStartHandler(e)}onDragEndHandler(e){this.props.onDragEndHandler(e)}onDragOverHandler(e){e.preventDefault(),this.props.onDragOverNodeHandler(e,this.props.n)}onDropHandler(e){e.preventDefault(),this.props.onDropOnNodeHandler(this.props.n),this.props.resetBorders(),e.stopPropagation()}onDragLeaveHandler(e){this.props.resetBorders()}render(){var e=this.props.n,t=Et()({node:!0,"hide-node":!0}),i=e.id.split("--")[0];return e.properties.name&&e.properties.name.value&&(i=e.properties.name.value),s()("div",{id:e.id,className:t,draggable:"true",onClick:()=>this.onClickHandler(e),onDragStart:this.onDragStartHandler,onDragEnd:this.onDragEndHandler,onDragOver:this.onDragOverHandler,onDrop:this.onDropHandler,onDragLeave:this.onDragLeaveHandler},void 0,s()("img",{src:Jt[e.img].default,draggable:"false"})," ",i)}})||Ot,Bt=i(136),Lt=(i(551),Object(vt.c)(qt=class extends a.a.Component{constructor(e){super(e),this.onClickHideHandler=this.onClickHideHandler.bind(this)}onClickHideHandler(){this.props.onClickHideHandler?this.props.onClickHideHandler():console.warn("No JSON Viewer close handler")}onClickPanelHandler(e){e.stopPropagation()}render(){var e=Et()({mask:!0,"hide-mask":!this.props.show});return s()("div",{className:e,onClick:this.onClickHideHandler},void 0,s()("div",{className:"panel",onClick:this.onClickPanelHandler},void 0,this.props.children))}})||qt),Ft=i(371),Gt=i.n(Ft),Vt=(i(568),i(569),Object(vt.b)("store")(Rt=Object(vt.c)(Rt=class extends a.a.Component{constructor(e){super(e),this.onChangeSliderHandler=this.onChangeSliderHandler.bind(this)}onChangeSliderHandler(e){this.props.onChangeHandler(this.props.field,e)}render(){return s()(Gt.a,{className:"horizontal-slider",value:this.props.value,marks:{10:10,20:20,30:30,40:40,50:50,60:60,70:70,80:80,90:90,100:100},onChange:this.onChangeSliderHandler})}})||Rt)||Rt),Wt=(i(328),Object(vt.b)("store")(Mt=Object(vt.c)(Mt=class extends a.a.Component{constructor(e){super(e),this.onChangeHandler=this.onChangeHandler.bind(this)}componentDidMount(){this.props.hasInitialFocus&&this.focus()}focus(){this.input&&this.input.focus()}onKeyDownHandler(e){13===e.keyCode&&this.props.onReturn?this.props.onReturn():27===e.keyCode&&this.props.onEscape&&this.props.onEscape()}onChangeHandler(e){this.props.onChange(e)}render(){var e=this.props.type?this.props.type:"text";return s()("div",{},void 0,a.a.createElement("input",{name:this.props.name,type:e,ref:e=>{this.input=e},autoComplete:this.props.autocomplete||"off",className:"def",placeholder:this.props.placeholder,onChange:this.onChangeHandler,onKeyDown:e=>this.onKeyDownHandler(e),value:this.props.value,disabled:this.props.disabled,id:this.props.id}))}})||Mt)||Mt),Xt=Object(vt.b)("store")(zt=Object(vt.c)(zt=class extends a.a.Component{constructor(e){super(e),this.onChangeHandler=this.onChangeHandler.bind(this)}componentDidMount(){this.props.hasInitialFocus&&this.focus()}focus(){this.input&&this.input.focus()}onKeyDownHandler(e){13===e.keyCode&&this.props.onReturn?this.props.onReturn():27===e.keyCode&&this.props.onEscape&&this.props.onEscape()}onChangeHandler(e){this.props.onChange(e)}render(){this.props.rows&&this.props.rows;return s()("div",{},void 0,a.a.createElement("textarea",{name:this.props.name,ref:e=>{this.input=e},autoComplete:this.props.autocomplete||"off",className:"def",placeholder:this.props.placeholder,onChange:this.onChangeHandler,onKeyDown:e=>this.onKeyDownHandler(e),value:this.props.value,disabled:this.props.disabled,id:this.props.id}))}})||zt)||zt,Kt=i(372),Yt=i.n(Kt);i(570),i(571);class Zt extends a.a.Component{constructor(e){super(e),this.onChange=this.onChange.bind(this)}onChange(e){this.props.onChange(this.props.name,e)}render(){var e=this.props.selected;"string"==typeof e&&(e=new Date(e));return s()(Yt.a,{selected:e,onChange:this.onChange,name:this.props.name})}}i(628);var Qt,ei,ti,ii,ri,si,oi,ai,ni=Object(vt.b)("store")(Qt=Object(vt.c)(Qt=class extends a.a.Component{constructor(e){super(e)}componentDidMount(){}onClickHandler(e,t){this.props.onClickHandler(e,t)}render(){var e=this.props.vocab?this.props.vocab:[],t=this.props.field,i=this.props.value,r=this.props.description,o=Et()({"array-container-item":!0});return s()("div",{className:"array-container"},void 0,s()("div",{className:"array-container-header"},void 0,t," ",s()("span",{"data-tip":r,className:"material-icons"},void 0,"info")),s()("div",{className:"array-container-body"},void 0,e.map((e,r)=>(o=i.indexOf(e)>-1?Et()({"array-container-item":!0,"array-container-selected":!0}):Et()({"array-container-item":!0}),s()("div",{className:o,onClick:()=>this.onClickHandler(t,e)},r,e)))))}})||Qt)||Qt,ci=(i(629),s()("option",{value:0},void 0," -- Select Kill Chain -- ")),pi=s()("option",{value:0},void 0," -- Select Phase -- "),di=Object(vt.b)("store")(ei=Object(vt.c)(ei=class extends a.a.Component{constructor(e){super(e),this.onChangePhaseHandler=this.onChangePhaseHandler.bind(this),this.populatePhase=this.populatePhase.bind(this)}componentDidMount(){}onChangePhaseHandler(e){var t="kc-name-".concat(this.props.node.id),i="phase-".concat(this.props.node.id),r=document.getElementById(t).selectedIndex,s={kill_chain_name:document.getElementById(t)[r].value,phase_name:e.currentTarget.value};this.props.onChangeHandler(this.props.field,s),document.getElementById(t).selectedIndex=0,document.getElementById(i).selectedIndex=0,document.getElementById(i).innerHTML="";var o=document.createElement("option");o.value=0,o.text=" -- Select Phase -- ",document.getElementById(i).add(o)}populatePhase(e){var t="phase-".concat(this.props.node.id),i=document.getElementById(t),r=e.currentTarget.value;this.props.vocab.map(e=>{e.value===r&&e.phases.map(e=>{var t=document.createElement("option");t.value=e.phase_name,t.text=e.label,i.add(t)})})}render(){var e=this.props.vocab?this.props.vocab:[],t=this.props.field,i=this.props.value,r=this.props.description,o=(i.len,"kc-name-".concat(this.props.node.id)),a="phase-".concat(this.props.node.id);return s()("div",{className:"kill-chain-container"},void 0,s()("div",{className:"kill-chain-header"},void 0,t," ",s()("span",{"data-tip":r,className:"material-icons"},void 0,"info")),s()("div",{className:"kill-chain-body"},void 0,s()("div",{className:"kill-chain-options"},void 0,s()("select",{id:o,onChange:this.populatePhase},void 0,ci,e.map(e=>s()("option",{value:e.value},e.value,e.label))),s()("select",{id:a,onChange:this.onChangePhaseHandler},void 0,pi)),i.map((e,i)=>s()("div",{className:"kill-chain-row"},i,s()("div",{},void 0,e.kill_chain_name," - ",e.phase_name," ",s()("span",{onClick:()=>this.props.onClickRemoveHandler(t,e),className:"material-icons"},void 0,"highlight_off"))))))}})||ei)||ei,li=(i(630),s()(Nt.a,{})),hi=Object(vt.b)("store")(ti=Object(vt.c)(ti=class extends a.a.Component{constructor(e){super(e),this.onClickHandler=this.onClickHandler.bind(this),this.onChangeERHandler=this.onChangeERHandler.bind(this),this.onClickAddHandler=this.onClickAddHandler.bind(this),this.onClickDeleteHandler=this.onClickDeleteHandler.bind(this)}componentDidMount(){}onChangeERHandler(e,t){}onClickAddHandler(e,t,i){this.props.onChangeERHandler(e.value,t.options[t.selectedIndex].value,i),e.value=""}onClickHandler(){this.state.property,this.state.value}onClickDeleteHandler(e,t){this.props.onClickDeletePropertyHandler(e,t)}render(){this.props.vocab&&this.props.vocab;var e=this.props.field,t=this.props.value,i=this.props.description;t.len;return s()("div",{className:"er-container"},void 0,s()("div",{className:"er-header"},void 0,e,s()("span",{"data-tip":i,className:"material-icons"},void 0,"info"),s()("span",{"data-tip":"Add an External Reference",onClick:()=>this.props.onClickAddObjectHandler(e),className:"add material-icons"},void 0,"control_point"),li),s()("div",{className:"er-body"},void 0,t.map((e,t)=>s()(mi,{i:t,kv:e,onChangeERHandler:this.onChangeERHandler,onClickAddHandler:this.onClickAddHandler,onClickDeleteHandler:this.onClickDeleteHandler},t))))}})||ti)||ti,mi=e=>{var t=[],i=(e.i,"select-".concat(e.i)),r="input-".concat(e.i),o=function(i){var r=s()("span",{onClick:()=>e.onClickDeleteHandler(i,e.i),className:"remove material-icons"},void 0,"highlight_off");"source_name"===i&&(r=void 0),t.push(s()("div",{className:"er-block-row"},k()(),s()("div",{},void 0,i,": ",e.kv[i]," ",r)))};for(var a in e.kv)o(a);return s()("div",{className:"er-block"},void 0,s()("div",{className:"er-block-row"},void 0,s()("select",{id:i},void 0,["source_name","description","url","hashes","external_id"].map(e=>s()("option",{value:e},k()(),e))),s()(Wt,{id:r,onChange:e.onChangeERHandler}),s()("span",{className:"add material-icons",onClick:()=>e.onClickAddHandler(document.getElementById(r),document.getElementById(i),e.i)},void 0,"control_point")),t)},fi=(i(631),Object(vt.b)("store")(ii=Object(vt.c)(ii=class extends a.a.Component{constructor(e){super(e)}componentDidMount(){}onClickHandler(e,t){this.props.onClickHandler(e,t)}render(){var e=this.props.value.join();return s()(Wt,{name:this.props.name,value:e,onChange:this.props.onChangeHandler})}})||ii)||ii),ui=(i(632),Object(vt.b)("store")(ri=Object(vt.c)(ri=class extends a.a.Component{constructor(e){super(e)}componentDidMount(){}onClickHandler(e,t){this.props.onClickHandler(e,t)}render(){var e=this.props.selected,t=Et()({selected:!1}),i=Et()({selected:!1});return e?t=Et()({selected:!0}):i=Et()({selected:!0}),s()("div",{className:"boolean"},void 0,s()("div",{className:t,onClick:()=>this.props.onClick(this.props.name,!0)},void 0,"True"),s()("div",{className:i,onClick:()=>this.props.onClick(this.props.name,!1)},void 0,"False"))}})||ri)||ri),bi=(i(633),s()(Nt.a,{})),gi=Object(vt.b)("store")(si=Object(vt.c)(si=class extends a.a.Component{constructor(e){super(e),this.onChangeInputHandler=this.onChangeInputHandler.bind(this),this.onClickAddObjectHandler=this.onClickAddObjectHandler.bind(this),this.onClickDeleteHandler=this.onClickDeleteHandler.bind(this),this.onClickCreateBlankHandler=this.onClickCreateBlankHandler.bind(this),this.state={key:"",value:""}}componentDidMount(){}onChangeInputHandler(e){e.preventDefault(),this.setState({[e.currentTarget.name]:e.currentTarget.value})}onClickDeleteHandler(e,t){this.props.onClickDeletePropertyHandler(e,t)}onClickCreateBlankHandler(){this.setState({key:"",value:""})}onClickAddObjectHandler(){var e={};e[this.state.key]=this.state.value,this.props.onClickAddObjectHandler(this.props.field,e)}render(){var e=this.props.field,t=this.props.value?this.props.value:[],i=this.props.description,r=[];for(var o in t)r.push(s()(yi,{v:t[o],k:o,field:e,onClickDeleteHandler:this.props.onClickDeleteObjectHandler},k()()));return s()("div",{className:"go-container"},void 0,s()("div",{className:"go-header"},void 0,e,s()("span",{"data-tip":i,className:"material-icons"},void 0,"info"),bi),s()("div",{className:"go-body"},void 0,s()("div",{className:"go-block-input"},void 0,s()("div",{className:"input"},void 0,s()(Wt,{name:"key",value:this.state.key,onChange:this.onChangeInputHandler})),s()("div",{className:"input"},void 0,s()(Wt,{name:"value",value:this.state.value,onChange:this.onChangeInputHandler})),s()("div",{className:"add-container"},void 0,s()("span",{onClick:this.onClickAddObjectHandler,className:"add material-icons"},void 0,"control_point"))),r))}})||si)||si,yi=e=>{var t=e.v;return"object"==typeof e.v&&(t=JSON.stringify(e.v)),s()("div",{className:"go-block"},void 0,s()("div",{className:"go-block-row"},void 0,e.k,": ",t," ",s()("span",{onClick:()=>e.onClickDeleteHandler(e.field,e.k),className:"remove material-icons"},void 0,"highlight_off")))},_i=(i(634),s()(Nt.a,{})),vi=Object(vt.b)("store")(oi=Object(vt.c)(oi=class extends a.a.Component{constructor(e){super(e),this.onChangeInputHandler=this.onChangeInputHandler.bind(this),this.onClickAddObjectHandler=this.onClickAddObjectHandler.bind(this),this.onClickDeleteHandler=this.onClickDeleteHandler.bind(this),this.state={value:""}}componentDidMount(){}onChangeInputHandler(e){e.preventDefault(),this.setState({value:e.currentTarget.value})}onClickDeleteHandler(e,t){this.props.onClickDeletePropertyHandler(e,t)}onClickAddObjectHandler(){this.props.onClickAddTextHandler(this.props.field,this.state.value)}render(){var e=this.props.field,t=this.props.value?this.props.value:[],i=this.props.description;return s()("div",{className:"ct-container"},void 0,s()("div",{className:"ct-header"},void 0,e,s()("span",{"data-tip":i,className:"material-icons"},void 0,"info"),_i),s()("div",{className:"ct-body"},void 0,s()("div",{className:"ct-block-input"},void 0,s()("div",{className:"input"},void 0,s()(Xt,{value:this.state.value,name:e,onChange:this.onChangeInputHandler})),s()("div",{className:"add-container"},void 0,s()("span",{onClick:this.onClickAddObjectHandler,className:"add material-icons"},void 0,"control_point"))),s()("div",{className:"ct-output"},void 0,t)))}})||oi)||oi;i(635);var xi=function(e){var t={};return e.keys().map((i,r)=>{t[i.replace("./","")]=e(i)}),t}(i(82)),ji=s()("span",{className:"material-icons"},void 0,"delete_forever"),wi=s()(Nt.a,{}),ki=s()("span",{className:"text"},void 0,"Delete"),Si=s()("div",{className:"footer"}),Ci=Object(vt.c)(ai=class extends a.a.Component{constructor(e){super(e),this.onChangeHandler=this.onChangeHandler.bind(this),this.onChangeDateHandler=this.onChangeDateHandler.bind(this)}onChangeHandler(e){this.props.onChangeNodeHandler(e)}onChangeDateHandler(e,t){this.props.onChangeDateHandler(e,t)}render(){var e,t=Object(f.toJS)(this.props.node),i={},r=[],o=ji;for(var a in t.properties&&(i=t.properties,e=s()("img",{src:xi[t.img].default,width:"30"})),i){var n=s()("div",{className:"item-header"},void 0,a,s()("span",{"data-tip":i[a].description,className:"material-icons"},void 0,"info"),wi),c=s()("div",{className:"item"},a,n,s()("div",{className:"item-value"},void 0,i[a].value));if(i[a].type&&!i[a].control)switch(i[a].type){case"number":case"string":c=s()("div",{className:"item"},a,n,s()("div",{className:"item-value"},void 0,s()(Wt,{name:a,value:i[a].value,onChange:this.onChangeHandler})));break;case"dts":c=s()("div",{className:"item"},a,n,s()("div",{className:"item-value"},void 0,s()(Zt,{name:a,selected:i[a].value,onChange:this.onChangeDateHandler})));break;case"array":c=s()(ni,{vocab:i[a].vocab,field:a,value:i[a].value,description:i[a].description,onClickHandler:this.props.onClickArrayHandler},a);break;case"boolean":c=s()("div",{className:"item"},a,n,s()("div",{className:"item-value"},void 0,s()(ui,{name:a,selected:i[a].value,onClick:this.props.onClickBooleanHandler})));break;case"object":c=s()("div",{className:"item"},a,n)}switch(i[a].control){case"hidden":c="";break;case"slider":c=s()("div",{className:"item slider"},a,n,s()("div",{className:"item-value"},void 0,s()(Vt,{value:i[a].value,field:a,onChangeHandler:this.props.onChangeSliderHandler})));break;case"csv":c=s()("div",{className:"item"},a,n,s()("div",{className:"item-value"},void 0,s()(fi,{name:a,value:i[a].value,onChangeHandler:this.props.onChangeCSVHandler},a)));break;case"killchain":c=s()(di,{vocab:i[a].vocab,node:t,field:a,value:i[a].value,description:i[a].description,onChangeHandler:this.props.onChangePhaseHandler,onClickRemoveHandler:this.props.onClickRemovePhaseHander},a);break;case"externalrefs":c=s()(hi,{node:t,field:a,value:i[a].value,description:i[a].description,onClickAddObjectHandler:this.props.onClickAddObjectHandler,onChangeERHandler:this.props.onChangeERHandler,onClickDeletePropertyHandler:this.props.onClickDeletePropertyHandler},a);break;case"stringselector":c=s()(ni,{vocab:i[a].vocab,field:a,value:i[a].value,description:i[a].description,onClickHandler:this.props.onClickArrayHandler},a);break;case"textarea":c=s()("div",{className:"item"},a,n,s()("div",{className:"item-value"},void 0,s()(Xt,{name:a,value:i[a].value,onChange:this.onChangeHandler})));break;case"genericobject":c=s()(gi,{name:a,value:i[a].value,description:i[a].description,field:a,onClickAddObjectHandler:this.props.onClickAddGenericObjectHandler,onClickDeleteObjectHandler:this.props.onClickDeleteGenericObjectHandler,onChangeHandler:this.props.onChangeGenericObjectHandler},k()());break;case"confirmtextarea":c=s()(vi,{name:a,value:i[a].value,description:i[a].description,field:a,onClickAddTextHandler:this.props.onClickAddTextHandler},k()())}r.push(c)}return s()(Lt,{show:this.props.show,onClickHideHandler:this.props.onClickHideHandler},void 0,s()("div",{className:"details"},void 0,s()("div",{className:"header"},void 0,s()("div",{className:"title"},void 0,e," ",t.id),s()("div",{className:"delete",onClick:this.props.onClickDeleteHandler},void 0,o," ",ki)),s()("div",{className:"body"},void 0,r),Si))}})||ai;i(636);class Oi extends a.a.Component{constructor(e){super(e),this.onClickHandler=this.onClickHandler.bind(this)}onClickHandler(){this.props.onClick&&this.props.onClick()}render(){var e=this.props.disabled?void 0:this.onClickHandler,t={def:!0,disabled:this.props.disabled};this.props.cls&&(t[this.props.cls]=!0);var i=Et()(t);return s()("div",{},void 0,s()("button",{className:i,onClick:e},void 0,this.props.children," ",this.props.text))}}i(637);var Ti,Hi,Ii,Ni=s()("i",{className:"material-icons"},void 0,"file_copy"),$i=Object(vt.c)(Ti=class extends a.a.Component{constructor(e){super(e),this.onClickCopyJSONHandler=this.onClickCopyJSONHandler.bind(this)}onClickCopyJSONHandler(){var e=document.createRange();e.selectNode(document.getElementById("json-content")),window.getSelection().removeAllRanges(),window.getSelection().addRange(e),document.execCommand("copy"),window.getSelection().removeAllRanges(),this.props.onClickShowGrowlHandler("JSON Copied to Clipboard")}render(){return s()(Lt,{show:this.props.show,onClickHideHandler:this.props.onClickHideHandler},void 0,s()("div",{className:"json-viewer"},void 0,s()("div",{className:"json-content"},void 0,s()("pre",{id:"json-content"},void 0,JSON.stringify(this.props.json,null,2))),s()("div",{className:"json-controls"},void 0,s()(Oi,{cls:"def standard json-copy",text:"Copy",onClick:this.onClickCopyJSONHandler},void 0,Ni))))}})||Ti,Di=(i(638),s()("i",{className:"material-icons"},void 0,"add")),Ai=Object(vt.c)(Hi=class extends a.a.Component{constructor(e){super(e)}render(){return s()(Lt,{show:this.props.show,onClickHideHandler:this.props.onClickHideHandler},void 0,s()("div",{className:"json-paste"},void 0,s()("div",{className:"paste-area"},void 0,s()(Xt,{onChange:this.props.onChangeJSONPasteHandler,value:this.props.value})),s()("div",{className:"json-controls"},void 0,s()(Oi,{cls:"def standard json-copy",text:"Load",onClick:this.props.onClickJSONPasteHandler},void 0,Di))))}})||Hi;i(639);var Pi,Ei,qi,Ri,Mi=function(e){var t={};return e.keys().map((i,r)=>{t[i.replace("./","")]=e(i)}),t}(i(82)),zi=Object(vt.c)(Ii=class extends a.a.Component{constructor(e){super(e)}onClickSelectRelHandler(e){this.props.onClickSelectRelHandler(e)}render(){return s()(Lt,{show:this.props.show,onClickHideHandler:this.props.onClickHideHandler},void 0,s()("div",{className:"relationship-picker"},void 0,s()("div",{className:"header"},void 0,s()("img",{src:Mi["relationship.png"].default,width:"20"})," Possible Relationships"),s()("div",{className:"content"},void 0,this.props.relationships.map(e=>{var t=e.source_ref.split("--")[0],i=e.target_ref.split("--")[0],r="".concat(t,".png"),o="".concat(i,".png");return Mi[r]||(Mi[r]={},Mi[r].default="imgs/3536f3f7f55d746d1a9eac4ca5073246.png"),Mi[o]||(Mi[o]={},Mi[o].default="imgs/3536f3f7f55d746d1a9eac4ca5073246.png"),e.subTarget&&(i=e.subTarget),s()("div",{className:"item",onClick:()=>this.onClickSelectRelHandler(e)},e.id,s()("img",{className:"src-image",src:Mi[r].default,width:"20"})," ",t,s()("span",{className:"rel-type"},void 0," ",e.relationship_type," "),i," ",s()("img",{className:"target-image",src:Mi[o].default,width:"20"}))}))))}})||Ii,Ji=(i(640),Object(vt.c)(Pi=class extends a.a.Component{constructor(e){super(e)}onClickHideHandler(){this.props.onClickHideHandler?this.props.onClickHideHandler():console.warn("No JSON Viewer close handler")}onClickPanelHandler(e){e.stopPropagation()}render(){var e=Et()({growl:!0,"hide-mask":!this.props.show});return this.props.timer&&this.props.timer(),s()("div",{className:e},void 0,s()("div",{className:"panel"},void 0,this.props.message))}})||Pi),Ui=(i(641),Object(vt.b)("store")(Ei=Object(vt.c)(Ei=class extends a.a.Component{constructor(e){super(e),this.store=this.props.store.appStore,this.generateNodeID=this.generateNodeID.bind(this),this.onDragStartHandler=this.onDragStartHandler.bind(this),this.onDragEndHandler=this.onDragEndHandler.bind(this),this.onDragOverHandler=this.onDragOverHandler.bind(this),this.onDropHandler=this.onDropHandler.bind(this),this.onClickHandler=this.onClickHandler.bind(this),this.onDragOverNodeHandler=this.onDragOverNodeHandler.bind(this),this.onDropOnNodeHandler=this.onDropOnNodeHandler.bind(this),this.onClickShowJsonHandler=this.onClickShowJsonHandler.bind(this),this.onClickHideJsonHandler=this.onClickHideJsonHandler.bind(this),this.onClickHideRelPickerHandler=this.onClickHideRelPickerHandler.bind(this),this.onClickHideDetailsHandler=this.onClickHideDetailsHandler.bind(this),this.onClickSelectRelHandler=this.onClickSelectRelHandler.bind(this),this.onClickShowGrowlHandler=this.onClickShowGrowlHandler.bind(this),this.onChangeNodeHandler=this.onChangeNodeHandler.bind(this),this.onChangeDateHandler=this.onChangeDateHandler.bind(this),this.onMessageTimerHandler=this.onMessageTimerHandler.bind(this),this.onClickArrayHandler=this.onClickArrayHandler.bind(this),this.onChangeSliderHandler=this.onChangeSliderHandler.bind(this),this.onChangeCSVHandler=this.onChangeCSVHandler.bind(this),this.onClickBooleanHandler=this.onClickBooleanHandler.bind(this),this.onChangePhaseHandler=this.onChangePhaseHandler.bind(this),this.onClickRemovePhaseHander=this.onClickRemovePhaseHander.bind(this),this.onClickAddObjectHandler=this.onClickAddObjectHandler.bind(this),this.onClickDeletePropertyHandler=this.onClickDeletePropertyHandler.bind(this),this.onClickResetHandler=this.onClickResetHandler.bind(this),this.onChangeERHandler=this.onChangeERHandler.bind(this),this.onChangeGenericObjectHandler=this.onChangeGenericObjectHandler.bind(this),this.onClickAddGenericObjectHandler=this.onClickAddGenericObjectHandler.bind(this),this.onClickDeleteGenericObjectHandler=this.onClickDeleteGenericObjectHandler.bind(this),this.onClickAddTextHandler=this.onClickAddTextHandler.bind(this),this.resetBorders=this.resetBorders.bind(this),this.onClickHideJsonPasteHandler=this.onClickHideJsonPasteHandler.bind(this),this.onClickShowJsonPasteHandler=this.onClickShowJsonPasteHandler.bind(this),this.onChangeJSONPasteHandler=this.onChangeJSONPasteHandler.bind(this),this.onClickJSONPasteHandler=this.onClickJSONPasteHandler.bind(this),this.onClickDeleteHandler=this.onClickDeleteHandler.bind(this)}componentWillMount(){document.addEventListener("dragover",e=>{this.store.setMousePosition(e)},!1)}componentWillUnmount(){document.removeEventListener("dragover",e=>{},!1)}onClickHandler(e){this.store.showDetails=!0,this.store.setSelected(e)}onClickHideDetailsHandler(){this.store.showDetails=!1}onClickHideJsonPasteHandler(){this.store.showJSONPaste=!1}onClickShowJsonPasteHandler(){this.store.showJSONPaste=!0}onClickShowGrowlHandler(e){this.store.growlMessage=e,this.store.showGrowl=!0}transition(e,t,i){var r=document.getElementById("canvas"),s=document.getElementById(e),o=(e,t)=>Math.random()*(t-100-e)+e,a={top:r.offsetTop+50,bottom:r.offsetTop-50+r.clientHeight,left:r.offsetLeft+50,right:r.offsetLeft-50+r.clientWidth};if(s){t||(s.classList.add("show-node"),s.classList.remove("hide-node"));var n=this.store.mousePosition.clientX,c=this.store.mousePosition.clientY;na.right&&(n=a.right-50),ca.right&&(c=a.bottom-50),i?(s.style.left="".concat(o(a.left,a.right),"px"),s.style.top="".concat(o(a.top,a.bottom),"px")):(s.style.left="".concat(n+50,"px"),s.style.top="".concat(c-50,"px"))}}onClickDeleteHandler(){this.store.deleteSelectedNode()}resetBorders(){this.clearAllCSSBorderCls(),this.store.failedRelationship=void 0}onChangeNodeHandler(e){this.store.editNodeValues(e)}mutateOnEvent(e,t){var i={currentTarget:{name:e,value:t}};this.onChangeNodeHandler(i)}onChangeDateHandler(e,t){var i=j()(t).format();this.onChangeNodeHandler(e,i)}onClickArrayHandler(e,t){this.mutateOnEvent(e,t)}onChangeSliderHandler(e,t){this.mutateOnEvent(e,t)}onClickBooleanHandler(e,t){this.mutateOnEvent(e,t)}onChangePhaseHandler(e,t){this.mutateOnEvent(e,t)}onClickAddTextHandler(e,t){this.mutateOnEvent(e,t)}onChangeGenericObjectHandler(e,t){this.mutateOnEvent(e,t.currentTarget.value)}onClickRemovePhaseHander(e,t){this.store.removeKillChainPhase(t)}onChangeCSVHandler(e){this.store.editCSVInput(e)}onClickSelectRelHandler(e){var t=this.store.manuallySelectRelationship(e);t&&(this.drawEdge(t),setTimeout(()=>{this.transition(this.store.dragging.id,!1)},500))}onClickAddObjectHandler(e){this.store.addDefaultObject(e)}onClickDeletePropertyHandler(e,t){this.store.deleteERObjectProperty(e,t)}onChangeERHandler(e,t,i){this.store.changeERValue(e,t,i)}generateNodeID(e){return this.store.generateNodeID(e)}onClickShowJsonHandler(){this.store.showJSON=!0}onClickHideJsonHandler(){this.store.showJSON=!1}onChangeJSONPasteHandler(e){this.store.pasteBundle=e.currentTarget.value}onClickJSONPasteHandler(){this.store.loadBundleFromPaste(),setTimeout(()=>{this.store.nodes.map(e=>{this.transition(e.id,!1,!0)})},200),this.store.edges.map(e=>{this.drawEdge(e)}),this.store.calculateLineDrag()}onClickHideRelPickerHandler(){this.store.showRelPicker=!1}onDragStartHandler(e){var t=JSON.parse(e.dataTransfer.getData("node"));this.store.dragging=t}onDragEndHandler(e){this.store.calculateLineDrag()}onDragOverHandler(e){e.preventDefault()}onMessageTimerHandler(){setTimeout(()=>{this.store.showGrowl=!1},2500)}onDropHandler(e){e.preventDefault();var t=JSON.parse(e.dataTransfer.getData("node"));"observable"===t.properties.type.enum[0]?(this.store.growlMessage="Observables can only be dropped onto existing STIX objects.",this.store.showGrowl=!0,this.transition(t.id,!0)):this.store.persistNode(t)?setTimeout(()=>{this.transition(t.id,!1)},200):this.transition(t.id,!0)}onDragOverNodeHandler(e,t){var i=this.store.canRelate(t);e.currentTarget.id!=this.store.dragging.id&&(i?e.currentTarget.classList.contains("ok-border")||e.currentTarget.classList.add("ok-border"):e.currentTarget.classList.contains("noway-border")||e.currentTarget.classList.add("noway-border"))}clearAllCSSBorderCls(){for(var e=document.getElementsByClassName("node"),t=0;t{this.transition(this.store.dragging.id,!1)},200),this.clearAllCSSBorderCls()}onClickAddGenericObjectHandler(e,t){this.store.addGenericObject(e,t)}onClickDeleteGenericObjectHandler(e,t){this.store.deleteGenericObject(e,t)}onClickResetHandler(){this.store.reset()}drawEdge(e){var t=e.source_ref,i=e.target_ref;setTimeout(()=>{this.transition(this.store.dragging.id,!1);var r=new Bt.a(document.getElementById(t),document.getElementById(i)),s=Bt.a.pathLabel(e.relationship_type,{color:"#484d59",outlineColor:"#484d59",fontWeight:"1px",letterSpacing:"2px",lineOffset:"13px"});r.setOptions({startSocket:"disc",endSocket:"disc",middleLabel:s,dash:{animation:!1}}),this.store.lines.push(r)},200)}render(){var e=this.store.nodes;return Array.from(document.getElementsByTagName("svg")).map(e=>{e.style.zIndex="-1"}),s()("div",{id:"canvas",className:"canvas",onDragOver:this.onDragOverHandler,onDrop:this.onDropHandler},void 0,e.map(e=>s()(Ut,{n:e,failedRelationship:this.store.failedRelationship,resetBorders:this.resetBorders,onClickHandler:this.onClickHandler,onDragStartHandler:this.onDragStartHandler,onDragEndHandler:this.onDragEndHandler,onDragOverNodeHandler:this.onDragOverNodeHandler,onDropOnNodeHandler:this.onDropOnNodeHandler},e.id)),s()(At,{onClickShowJsonHandler:this.onClickShowJsonHandler,onClickShowJsonPasteHandler:this.onClickShowJsonPasteHandler,onClickHideJsonHandler:this.onClickHideJsonHandler,onClickResetHandler:this.onClickResetHandler}),s()(It,{objects:this.store.objects,onDragStartHandler:this.onDragStartHandler,generateNodeID:this.generateNodeID}),s()(Ci,{show:this.store.showDetails,node:this.store.selected,onClickHideHandler:this.onClickHideDetailsHandler,onChangeNodeHandler:this.onChangeNodeHandler,onChangeDateHandler:this.onChangeDateHandler,onClickArrayHandler:this.onClickArrayHandler,onChangeSliderHandler:this.onChangeSliderHandler,onChangeCSVHandler:this.onChangeCSVHandler,onClickBooleanHandler:this.onClickBooleanHandler,onChangePhaseHandler:this.onChangePhaseHandler,onClickRemovePhaseHander:this.onClickRemovePhaseHander,onClickAddObjectHandler:this.onClickAddObjectHandler,onChangeERHandler:this.onChangeERHandler,onClickDeletePropertyHandler:this.onClickDeletePropertyHandler,onChangeGenericObjectHandler:this.onChangeGenericObjectHandler,onClickAddGenericObjectHandler:this.onClickAddGenericObjectHandler,onClickDeleteGenericObjectHandler:this.onClickDeleteGenericObjectHandler,onClickAddTextHandler:this.onClickAddTextHandler,onClickDeleteHandler:this.onClickDeleteHandler}),s()($i,{show:this.store.showJSON,json:this.store.bundle,onClickHideHandler:this.onClickHideJsonHandler,onClickShowGrowlHandler:this.onClickShowGrowlHandler}),s()(Ai,{show:this.store.showJSONPaste,json:this.store.pasteBundle,onClickHideHandler:this.onClickHideJsonPasteHandler,onChangeJSONPasteHandler:this.onChangeJSONPasteHandler,onClickJSONPasteHandler:this.onClickJSONPasteHandler,value:this.store.pasteBundle}),s()(zi,{show:this.store.showRelPicker,relationships:this.store.relationships,onClickHideHandler:this.onClickHideRelPickerHandler,onClickSelectRelHandler:this.onClickSelectRelHandler}),s()(Ji,{message:this.store.growlMessage,show:this.store.showGrowl,timer:this.onMessageTimerHandler}))}})||Ei)||Ei),Bi=(qi=Object(vt.b)("store"),Object(jt.e)(Ri=qi(Ri=Object(vt.c)(Ri=class extends o.Component{constructor(e){super(e)}render(){return s()("div",{className:"content"},void 0,s()(jt.a,{exact:!0,path:"/",render:e=>a.a.createElement(Ui,e)}))}})||Ri)||Ri)||Ri),Li=_t.inject({appStore:_t.appStore}),Fi=s()(xt.AppContainer,{},void 0,s()(vt.a,{store:Li},void 0,s()(c.a,{},void 0,s()(Bi,{}))));Object(n.render)(Fi,document.getElementById("app"))},82:function(e,t,i){var r={"./attack-pattern.png":523,"./campaign.png":524,"./course-of-action.png":525,"./grouping.png":526,"./identity.png":527,"./indicator.png":528,"./infrastructure.png":529,"./intrusion-set.png":530,"./location.png":531,"./malware-analysis.png":532,"./malware.png":533,"./note.png":534,"./observable.png":535,"./observed-data.png":536,"./opinion.png":537,"./playbook.png":538,"./relationship.png":539,"./report.png":540,"./restricted_marking.png":541,"./sighting.png":542,"./threat-actor.png":543,"./tlp-amber.png":544,"./tlp-green.png":545,"./tlp-red.png":546,"./tool.png":547,"./vulnerability.png":548};function s(e){var t=o(e);return i(t)}function o(e){if(!i.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}s.keys=function(){return Object.keys(r)},s.resolve=o,e.exports=s,s.id=82}},[[644,1,2]]]); -//# sourceMappingURL=main.258517e4a0b5fead5d7e.js.map \ No newline at end of file diff --git a/app/build/js/main.258517e4a0b5fead5d7e.js.map b/app/build/js/main.258517e4a0b5fead5d7e.js.map deleted file mode 100644 index 145d21a..0000000 --- a/app/build/js/main.258517e4a0b5fead5d7e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/components/menus/menu.scss?cb53","webpack:///./src/components/ui/inputs/text.scss?dc37","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/app.scss?e8a0","webpack:///./src/imgs/attack-pattern.png","webpack:///./src/imgs/campaign.png","webpack:///./src/imgs/course-of-action.png","webpack:///./src/imgs/grouping.png","webpack:///./src/imgs/identity.png","webpack:///./src/imgs/indicator.png","webpack:///./src/imgs/infrastructure.png","webpack:///./src/imgs/intrusion-set.png","webpack:///./src/imgs/location.png","webpack:///./src/imgs/malware-analysis.png","webpack:///./src/imgs/malware.png","webpack:///./src/imgs/note.png","webpack:///./src/imgs/observable.png","webpack:///./src/imgs/observed-data.png","webpack:///./src/imgs/opinion.png","webpack:///./src/imgs/playbook.png","webpack:///./src/imgs/relationship.png","webpack:///./src/imgs/report.png","webpack:///./src/imgs/restricted_marking.png","webpack:///./src/imgs/sighting.png","webpack:///./src/imgs/threat-actor.png","webpack:///./src/imgs/tlp-amber.png","webpack:///./src/imgs/tlp-green.png","webpack:///./src/imgs/tlp-red.png","webpack:///./src/imgs/tool.png","webpack:///./src/imgs/vulnerability.png","webpack:///./src/components/menus/top-menu.scss?4c78","webpack:///./src/components/node.scss?07f5","webpack:///./src/components/ui/panel/panel.scss?5f7e","webpack:///./src/components/ui/inputs/slider.scss?2a2a","webpack:///./src/components/ui/inputs/datetime.scss?4747","webpack:///./src/components/ui/inputs/arrayselector.scss?4da9","webpack:///./src/components/ui/complex/killchain.scss?8fa7","webpack:///./src/components/ui/complex/externalreferences.scss?a749","webpack:///./src/components/ui/inputs/boolean.scss?9e07","webpack:///./src/components/ui/complex/genericobject.scss?6df8","webpack:///./src/components/ui/complex/confirmtextarea.scss?7512","webpack:///./src/components/details.scss?14e4","webpack:///./src/components/ui/button/button.scss?6828","webpack:///./src/components/json-viewer.scss?0b5b","webpack:///./src/components/json-paste.scss?19dd","webpack:///./src/components/relationship-picker.scss?4f1f","webpack:///./src/components/ui/growl/growl.scss?c522","webpack:///./src/components/canvas.scss?a3f5","webpack:///./src/definition-adapters/Base.js","webpack:///./src/definition-adapters/AttackPattern.js","webpack:///./src/definition-adapters/Indicator.js","webpack:///./src/definition-adapters/Malware.js","webpack:///./src/definition-adapters/MalwareAnalysis.js","webpack:///./src/definition-adapters/Sighting.js","webpack:///./src/definition-adapters/CourseOfAction.js","webpack:///./src/definition-adapters/Campaign.js","webpack:///./src/definition-adapters/ObservedData.js","webpack:///./src/definition-adapters/Identity.js","webpack:///./src/definition-adapters/Tool.js","webpack:///./src/definition-adapters/Report.js","webpack:///./src/definition-adapters/Vulnerability.js","webpack:///./src/definition-adapters/Grouping.js","webpack:///./src/definition-adapters/Infrastructure.js","webpack:///./src/definition-adapters/IntrusionSet.js","webpack:///./src/definition-adapters/Location.js","webpack:///./src/definition-adapters/ThreatActor.js","webpack:///./src/definition-adapters/Note.js","webpack:///./src/definition-adapters/Opinion.js","webpack:///./src/definition-adapters/MarkingDefinitionRed.js","webpack:///./src/definition-adapters/MarkingDefinitionAmber.js","webpack:///./src/definition-adapters/MarkingDefinitionGreen.js","webpack:///./src/definition-adapters/Observable.js","webpack:///./src/definition-adapters/Artifact.js","webpack:///./src/definition-adapters/Software.js","webpack:///./src/definition-adapters/IPv4Addr.js","webpack:///./src/definition-adapters/IPv6Addr.js","webpack:///./src/definition-adapters/AutonomousSystem.js","webpack:///./src/definition-adapters/Directory.js","webpack:///./src/definition-adapters/DomainName.js","webpack:///./src/definition-adapters/EmailAddr.js","webpack:///./src/definition-adapters/EmailMessage.js","webpack:///./src/definition-adapters/File.js","webpack:///./src/definition-adapters/MacAddr.js","webpack:///./src/definition-adapters/Mutex.js","webpack:///./src/definition-adapters/NetworkTraffic.js","webpack:///./src/definition-adapters/Process.js","webpack:///./src/definition-adapters/Url.js","webpack:///./src/definition-adapters/UserAccount.js","webpack:///./src/definition-adapters/WindowsRegistryKey.js","webpack:///./src/definition-adapters/Certificate.js","webpack:///./src/stores/App.js","webpack:///./src/stores/Stores.js","webpack:///./src/components/menus/MenuItem.js","webpack:///./src/components/menus/Menu.js","webpack:///./src/components/menus/TopMenu.js","webpack:///./src/components/Node.js","webpack:///./src/components/ui/panel/Panel.js","webpack:///./src/components/ui/inputs/Slider.js","webpack:///./src/components/ui/inputs/Text.js","webpack:///./src/components/ui/inputs/TextArea.js","webpack:///./src/components/ui/inputs/DateTime.js","webpack:///./src/components/ui/inputs/ArraySelector.js","webpack:///./src/components/ui/complex/KillChain.js","webpack:///./src/components/ui/complex/ExternalReferences.js","webpack:///./src/components/ui/inputs/CSVInput.js","webpack:///./src/components/ui/inputs/Boolean.js","webpack:///./src/components/ui/complex/GenericObject.js","webpack:///./src/components/ui/complex/ConfirmTextarea.js","webpack:///./src/components/Details.js","webpack:///./src/components/ui/button/Button.js","webpack:///./src/components/JsonViewer.js","webpack:///./src/components/JsonPaste.js","webpack:///./src/components/RelationshipPicker.js","webpack:///./src/components/ui/growl/Growl.js","webpack:///./src/components/Canvas.js","webpack:///./src/App.jsx","webpack:///./src/index.jsx","webpack:///./src/imgs sync nonrecursive \\.(png|jpe"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","SPEC_VERSION","Base","constructor","common","def","commonProps","properties","defProps","dateFields","defaultValue","type","moment","format","item","required","allOf","hasOwnProperty","this","mergedProps","deepmerge","prop","indexOf","value","control","enum","vocab","uuidv4","singleton","rawDefinition","super","indicator_types","definitions","pattern_type","pattern","_cloneDeep","definition","labels","created_by_ref","lang","object_marking_refs","granular_markings","payload_bin","url","encryption_algorithm","hashes","languages","resolves_to_refs","belongs_to_refs","number","belongs_to_ref","date","additional_header_fields","from_ref","sender_ref","to_refs","cc_refs","bcc_refs","raw_email_ref","content_ref","parent_directory_ref","contains_refs","magic_number_hex","size","ipfix","src_payload_ref","dst_payload_ref","encapsulates_refs","encapsulated_by_ref","protocols","src_port","dst_port","src_byte_count","dst_byte_count","src_packets","dst_packets","environment_variables","opened_connection_refs","creator_user_ref","image_ref","parent_ref","child_refs","number_of_subkeys","values","x509_v3_extensions","App","bundle","spec_version","generateNodeID","objects","setMousePosition","event","mousePosition","clientX","clientY","setSelected","selected","showModal","modal","hideModal","prefix","addNodeToBundle","node","props","newProps","undefined","push","addRelationshipToBundle","relationship","x_embed","key","object","x_reverse","target_ref","source_ref","Array","isArray","k","console","warn","assignEmbeddedRelationship","persistNode","nodeExists","nodes","n","removeKillChainPhase","removeIdx","kill_chain_phases","phase","idx","kill_chain_name","phase_name","splice","editNodeValues","updateProps","currentTarget","name","i","removeNodeArrayValuesInBundle","updateNodeArrayValuesInBundle","JSON","parse","updateNodeValuesInBundle","error","addGenericObject","field","v","_merge","deleteGenericObject","editCSVInput","replace","newArray","split","length","addDefaultObject","changeERValue","input","select","deleteERObjectProperty","blockDuplicateRelationships","source","target","alreadyRelated","edges","edge","makeRelationship","rel","exclusiveRelationshipDefined","x_exclusive","relationship_type","created","modified","targetObjectType","subTarget","canRelate","nodeOnScreen","nodeOnScreenType","draggingType","dragging","relationships","madeRel","addNodeWithRelationship","toJS","nodeToPersist","handleGenericObservable","showRelPicker","getNodeByType","getNodeById","newNode","manuallySelectRelationship","createRelationshipFromPaste","r","targetType","targetExists","calculateLineDrag","me","setInterval","lines","line","position","setTimeout","window","clearInterval","loadBundleFromPaste","reset","pasteBundle","showJSONPaste","growlMessage","showGrowl","deleteSelectedNode","nodeToDelete","removeEdgePositions","removeEmbeddedTargetRelFromBundle","sourceNode","targetNode","removeExternalRelFromBundle","newLines","log","start","end","remove","showDetails","showJSON","observable","sighting","malware","ma","indicator","coa","ap","od","campaign","identity","tool","report","vuln","grouping","infra","is","location","ta","note","opinion","tlpred","tlpamber","tlpgreen","artifact","obs","software","ipv4","ipv6","autosys","dir","domain","emailaddr","emailmsg","file","mac","mutex","network","process","ua","winregkey","cert","store","setup","appStore","AppStore","images","require","index","Menu","observer","React","Component","onDragStartHandler","bind","dataTransfer","setData","stringify","render","className","draggable","onDragStart","src","img","default","active","TopMenu","data-tip","onClick","onClickShowJsonPasteHandler","onClickShowJsonHandler","onClickResetHandler","importAll","Node","onDragOverHandler","onDropHandler","onDragEndHandler","onDragLeaveHandler","onClickHandler","preventDefault","onDragOverNodeHandler","onDropOnNodeHandler","resetBorders","stopPropagation","cls","classNames","display","onDragEnd","onDragOver","onDrop","onDragLeave","Panel","onClickHideHandler","onClickPanelHandler","mask","show","children","Slider","inject","onChangeSliderHandler","onChangeHandler","marks","10","20","30","40","50","60","70","80","90","100","onChange","Text","componentDidMount","hasInitialFocus","focus","onKeyDownHandler","keyCode","onReturn","onEscape","inputType","ref","c","autoComplete","autocomplete","placeholder","onKeyDown","disabled","TextArea","rows","DateTime","datetime","dts","Date","ArraySelector","items","description","KillChain","onChangePhaseHandler","populatePhase","kcDomName","phaseDomName","kcIndex","document","getElementById","selectedIndex","innerHTML","option","createElement","text","add","phaseDOM","kc","phases","label","kcName","len","phaseName","p","onClickRemoveHandler","ExternalReferences","onChangeERHandler","onClickAddHandler","onClickDeleteHandler","options","state","property","onClickDeletePropertyHandler","onClickAddObjectHandler","ReferenceBlock","kv","blocks","selectID","inputID","uuid","join","trueCls","falseCls","GenericObject","onChangeInputHandler","onClickCreateBlankHandler","setState","ExtBlocks","onClickDeleteObjectHandler","ConfirmTextarea","onClickAddTextHandler","Details","onChangeDateHandler","onChangeNodeHandler","details","deleteIcon","width","header","onClickArrayHandler","onClickBooleanHandler","onChangeCSVHandler","onClickRemovePhaseHander","onClickAddGenericObjectHandler","onClickDeleteGenericObjectHandler","onChangeGenericObjectHandler","Button","clickHandler","classMap","classes","JsonViewer","onClickCopyJSONHandler","range","createRange","selectNode","getSelection","removeAllRanges","addRange","execCommand","onClickShowGrowlHandler","json","JsonPaste","onChangeJSONPasteHandler","onClickJSONPasteHandler","RelationshipPicker","onClickSelectRelHandler","srcImg","targetImg","Growl","growl","timer","message","Canvas","onClickHideJsonHandler","onClickHideRelPickerHandler","onClickHideDetailsHandler","onMessageTimerHandler","onClickHideJsonPasteHandler","componentWillMount","addEventListener","componentWillUnmount","removeEventListener","transition","sticky","random","canvas","calculate","min","max","Math","bounds","top","offsetTop","bottom","clientHeight","left","offsetLeft","right","clientWidth","classList","style","clearAllCSSBorderCls","failedRelationship","mutateOnEvent","persisted","drawEdge","getData","contains","getElementsByClassName","s","t","LeaderLine","labelProps","pathLabel","color","outlineColor","fontWeight","letterSpacing","lineOffset","setOptions","startSocket","endSocket","middleLabel","dash","animation","from","getElementsByTagName","element","zIndex","withRouter","exact","path","stores"],"mappings":"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","file":"js/main.258517e4a0b5fead5d7e.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"menu\":\"menu\",\"row\":\"row\",\"menu-item\":\"menu-item\",\"menuItem\":\"menu-item\",\"obs\":\"obs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"def\":\"def\"};","var map = {\n\t\"./af\": 176,\n\t\"./af.js\": 176,\n\t\"./ar\": 177,\n\t\"./ar-dz\": 178,\n\t\"./ar-dz.js\": 178,\n\t\"./ar-kw\": 179,\n\t\"./ar-kw.js\": 179,\n\t\"./ar-ly\": 180,\n\t\"./ar-ly.js\": 180,\n\t\"./ar-ma\": 181,\n\t\"./ar-ma.js\": 181,\n\t\"./ar-sa\": 182,\n\t\"./ar-sa.js\": 182,\n\t\"./ar-tn\": 183,\n\t\"./ar-tn.js\": 183,\n\t\"./ar.js\": 177,\n\t\"./az\": 184,\n\t\"./az.js\": 184,\n\t\"./be\": 185,\n\t\"./be.js\": 185,\n\t\"./bg\": 186,\n\t\"./bg.js\": 186,\n\t\"./bm\": 187,\n\t\"./bm.js\": 187,\n\t\"./bn\": 188,\n\t\"./bn.js\": 188,\n\t\"./bo\": 189,\n\t\"./bo.js\": 189,\n\t\"./br\": 190,\n\t\"./br.js\": 190,\n\t\"./bs\": 191,\n\t\"./bs.js\": 191,\n\t\"./ca\": 192,\n\t\"./ca.js\": 192,\n\t\"./cs\": 193,\n\t\"./cs.js\": 193,\n\t\"./cv\": 194,\n\t\"./cv.js\": 194,\n\t\"./cy\": 195,\n\t\"./cy.js\": 195,\n\t\"./da\": 196,\n\t\"./da.js\": 196,\n\t\"./de\": 197,\n\t\"./de-at\": 198,\n\t\"./de-at.js\": 198,\n\t\"./de-ch\": 199,\n\t\"./de-ch.js\": 199,\n\t\"./de.js\": 197,\n\t\"./dv\": 200,\n\t\"./dv.js\": 200,\n\t\"./el\": 201,\n\t\"./el.js\": 201,\n\t\"./en-SG\": 202,\n\t\"./en-SG.js\": 202,\n\t\"./en-au\": 203,\n\t\"./en-au.js\": 203,\n\t\"./en-ca\": 204,\n\t\"./en-ca.js\": 204,\n\t\"./en-gb\": 205,\n\t\"./en-gb.js\": 205,\n\t\"./en-ie\": 206,\n\t\"./en-ie.js\": 206,\n\t\"./en-il\": 207,\n\t\"./en-il.js\": 207,\n\t\"./en-nz\": 208,\n\t\"./en-nz.js\": 208,\n\t\"./eo\": 209,\n\t\"./eo.js\": 209,\n\t\"./es\": 210,\n\t\"./es-do\": 211,\n\t\"./es-do.js\": 211,\n\t\"./es-us\": 212,\n\t\"./es-us.js\": 212,\n\t\"./es.js\": 210,\n\t\"./et\": 213,\n\t\"./et.js\": 213,\n\t\"./eu\": 214,\n\t\"./eu.js\": 214,\n\t\"./fa\": 215,\n\t\"./fa.js\": 215,\n\t\"./fi\": 216,\n\t\"./fi.js\": 216,\n\t\"./fo\": 217,\n\t\"./fo.js\": 217,\n\t\"./fr\": 218,\n\t\"./fr-ca\": 219,\n\t\"./fr-ca.js\": 219,\n\t\"./fr-ch\": 220,\n\t\"./fr-ch.js\": 220,\n\t\"./fr.js\": 218,\n\t\"./fy\": 221,\n\t\"./fy.js\": 221,\n\t\"./ga\": 222,\n\t\"./ga.js\": 222,\n\t\"./gd\": 223,\n\t\"./gd.js\": 223,\n\t\"./gl\": 224,\n\t\"./gl.js\": 224,\n\t\"./gom-latn\": 225,\n\t\"./gom-latn.js\": 225,\n\t\"./gu\": 226,\n\t\"./gu.js\": 226,\n\t\"./he\": 227,\n\t\"./he.js\": 227,\n\t\"./hi\": 228,\n\t\"./hi.js\": 228,\n\t\"./hr\": 229,\n\t\"./hr.js\": 229,\n\t\"./hu\": 230,\n\t\"./hu.js\": 230,\n\t\"./hy-am\": 231,\n\t\"./hy-am.js\": 231,\n\t\"./id\": 232,\n\t\"./id.js\": 232,\n\t\"./is\": 233,\n\t\"./is.js\": 233,\n\t\"./it\": 234,\n\t\"./it-ch\": 235,\n\t\"./it-ch.js\": 235,\n\t\"./it.js\": 234,\n\t\"./ja\": 236,\n\t\"./ja.js\": 236,\n\t\"./jv\": 237,\n\t\"./jv.js\": 237,\n\t\"./ka\": 238,\n\t\"./ka.js\": 238,\n\t\"./kk\": 239,\n\t\"./kk.js\": 239,\n\t\"./km\": 240,\n\t\"./km.js\": 240,\n\t\"./kn\": 241,\n\t\"./kn.js\": 241,\n\t\"./ko\": 242,\n\t\"./ko.js\": 242,\n\t\"./ku\": 243,\n\t\"./ku.js\": 243,\n\t\"./ky\": 244,\n\t\"./ky.js\": 244,\n\t\"./lb\": 245,\n\t\"./lb.js\": 245,\n\t\"./lo\": 246,\n\t\"./lo.js\": 246,\n\t\"./lt\": 247,\n\t\"./lt.js\": 247,\n\t\"./lv\": 248,\n\t\"./lv.js\": 248,\n\t\"./me\": 249,\n\t\"./me.js\": 249,\n\t\"./mi\": 250,\n\t\"./mi.js\": 250,\n\t\"./mk\": 251,\n\t\"./mk.js\": 251,\n\t\"./ml\": 252,\n\t\"./ml.js\": 252,\n\t\"./mn\": 253,\n\t\"./mn.js\": 253,\n\t\"./mr\": 254,\n\t\"./mr.js\": 254,\n\t\"./ms\": 255,\n\t\"./ms-my\": 256,\n\t\"./ms-my.js\": 256,\n\t\"./ms.js\": 255,\n\t\"./mt\": 257,\n\t\"./mt.js\": 257,\n\t\"./my\": 258,\n\t\"./my.js\": 258,\n\t\"./nb\": 259,\n\t\"./nb.js\": 259,\n\t\"./ne\": 260,\n\t\"./ne.js\": 260,\n\t\"./nl\": 261,\n\t\"./nl-be\": 262,\n\t\"./nl-be.js\": 262,\n\t\"./nl.js\": 261,\n\t\"./nn\": 263,\n\t\"./nn.js\": 263,\n\t\"./pa-in\": 264,\n\t\"./pa-in.js\": 264,\n\t\"./pl\": 265,\n\t\"./pl.js\": 265,\n\t\"./pt\": 266,\n\t\"./pt-br\": 267,\n\t\"./pt-br.js\": 267,\n\t\"./pt.js\": 266,\n\t\"./ro\": 268,\n\t\"./ro.js\": 268,\n\t\"./ru\": 269,\n\t\"./ru.js\": 269,\n\t\"./sd\": 270,\n\t\"./sd.js\": 270,\n\t\"./se\": 271,\n\t\"./se.js\": 271,\n\t\"./si\": 272,\n\t\"./si.js\": 272,\n\t\"./sk\": 273,\n\t\"./sk.js\": 273,\n\t\"./sl\": 274,\n\t\"./sl.js\": 274,\n\t\"./sq\": 275,\n\t\"./sq.js\": 275,\n\t\"./sr\": 276,\n\t\"./sr-cyrl\": 277,\n\t\"./sr-cyrl.js\": 277,\n\t\"./sr.js\": 276,\n\t\"./ss\": 278,\n\t\"./ss.js\": 278,\n\t\"./sv\": 279,\n\t\"./sv.js\": 279,\n\t\"./sw\": 280,\n\t\"./sw.js\": 280,\n\t\"./ta\": 281,\n\t\"./ta.js\": 281,\n\t\"./te\": 282,\n\t\"./te.js\": 282,\n\t\"./tet\": 283,\n\t\"./tet.js\": 283,\n\t\"./tg\": 284,\n\t\"./tg.js\": 284,\n\t\"./th\": 285,\n\t\"./th.js\": 285,\n\t\"./tl-ph\": 286,\n\t\"./tl-ph.js\": 286,\n\t\"./tlh\": 287,\n\t\"./tlh.js\": 287,\n\t\"./tr\": 288,\n\t\"./tr.js\": 288,\n\t\"./tzl\": 289,\n\t\"./tzl.js\": 289,\n\t\"./tzm\": 290,\n\t\"./tzm-latn\": 291,\n\t\"./tzm-latn.js\": 291,\n\t\"./tzm.js\": 290,\n\t\"./ug-cn\": 292,\n\t\"./ug-cn.js\": 292,\n\t\"./uk\": 293,\n\t\"./uk.js\": 293,\n\t\"./ur\": 294,\n\t\"./ur.js\": 294,\n\t\"./uz\": 295,\n\t\"./uz-latn\": 296,\n\t\"./uz-latn.js\": 296,\n\t\"./uz.js\": 295,\n\t\"./vi\": 297,\n\t\"./vi.js\": 297,\n\t\"./x-pseudo\": 298,\n\t\"./x-pseudo.js\": 298,\n\t\"./yo\": 299,\n\t\"./yo.js\": 299,\n\t\"./zh-cn\": 300,\n\t\"./zh-cn.js\": 300,\n\t\"./zh-hk\": 301,\n\t\"./zh-hk.js\": 301,\n\t\"./zh-tw\": 302,\n\t\"./zh-tw.js\": 302\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 480;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"app\":\"app\"};","export default __webpack_public_path__ + \"imgs/919f7d1af774d980da11a1725f2c179b.png\";","export default __webpack_public_path__ + \"imgs/abd9af55a4279c4739e5e439d2538eeb.png\";","export default __webpack_public_path__ + \"imgs/29bb5c86a22d42aba10b6ed9ce8e85c6.png\";","export default __webpack_public_path__ + \"imgs/ccf90d26d6ed1ba93cf3888d0453290d.png\";","export default __webpack_public_path__ + \"imgs/082d284458449f85461c91ddc729b4fa.png\";","export default __webpack_public_path__ + \"imgs/1e5a63b3472b583b4a730f013ec5b10d.png\";","export default __webpack_public_path__ + \"imgs/75739a5825c4c03a135ec0ca87019917.png\";","export default __webpack_public_path__ + \"imgs/b4c195d9d53719dcc70f7eed78a9369b.png\";","export default __webpack_public_path__ + \"imgs/47cf894c6775c06f5c3f78d86e36f519.png\";","export default __webpack_public_path__ + \"imgs/2de8f879351e33a41cc9a7006d54bfda.png\";","export default __webpack_public_path__ + \"imgs/4ac356832f4c6a00fad8265aa697e9db.png\";","export default __webpack_public_path__ + \"imgs/f635b56b60afd46f212a2d109b96df60.png\";","export default __webpack_public_path__ + \"imgs/3536f3f7f55d746d1a9eac4ca5073246.png\";","export default __webpack_public_path__ + \"imgs/06856678ce1a47758114a39e37a279dc.png\";","export default __webpack_public_path__ + \"imgs/4ac0232853de7d5d575cec38c2f6e0b6.png\";","export default __webpack_public_path__ + \"imgs/65221f779a26036fd1ba3b78b0012e99.png\";","export default __webpack_public_path__ + \"imgs/4f2f7c1630b4a591f198768620c86997.png\";","export default __webpack_public_path__ + \"imgs/2106b0ef97949dda5ea996d4b8fe4b08.png\";","export default __webpack_public_path__ + \"imgs/80b3f9edfc9d2d7b718c4caaf78cd3bf.png\";","export default __webpack_public_path__ + \"imgs/a889bfe1458d2191318ca350a6f86f02.png\";","export default __webpack_public_path__ + \"imgs/1b9c59d2fc6707ab4f13d7a389f6aaf5.png\";","export default __webpack_public_path__ + \"imgs/05fc68e8e9705edcf46b48f81e80c07b.png\";","export default __webpack_public_path__ + \"imgs/a7352377424d00d6a7f5778adc045c97.png\";","export default __webpack_public_path__ + \"imgs/c7066e3c6eea8aec2f175fef7239533e.png\";","export default __webpack_public_path__ + \"imgs/2cea2cba2c5e1348efe72e3abbf4eb74.png\";","export default __webpack_public_path__ + \"imgs/389852e34bc3b08bdfef2c8915cae2c7.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"top-menu\":\"top-menu\",\"topMenu\":\"top-menu\",\"row\":\"row\",\"menu-item-small\":\"menu-item-small\",\"menuItemSmall\":\"menu-item-small\",\"menu-item-medium\":\"menu-item-medium\",\"menuItemMedium\":\"menu-item-medium\",\"json-btn\":\"json-btn\",\"jsonBtn\":\"json-btn\",\"json-paste-btn\":\"json-paste-btn\",\"jsonPasteBtn\":\"json-paste-btn\",\"reset-btn\":\"reset-btn\",\"resetBtn\":\"reset-btn\",\"i\":\"i\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"node\":\"node\",\"hide-node\":\"hide-node\",\"hideNode\":\"hide-node\",\"show-node\":\"show-node\",\"showNode\":\"show-node\",\"ok-border\":\"ok-border\",\"okBorder\":\"ok-border\",\"noway-border\":\"noway-border\",\"nowayBorder\":\"noway-border\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mask\":\"mask\",\"panel\":\"panel\",\"hide-mask\":\"hide-mask\",\"hideMask\":\"hide-mask\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rc-slider-track\":\"rc-slider-track\",\"rcSliderTrack\":\"rc-slider-track\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"react-datepicker-wrapper\":\"react-datepicker-wrapper\",\"reactDatepickerWrapper\":\"react-datepicker-wrapper\",\"react-datepicker__input-container\":\"react-datepicker__input-container\",\"reactDatepickerInputContainer\":\"react-datepicker__input-container\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"array-container\":\"array-container\",\"arrayContainer\":\"array-container\",\"array-container-header\":\"array-container-header\",\"arrayContainerHeader\":\"array-container-header\",\"array-container-body\":\"array-container-body\",\"arrayContainerBody\":\"array-container-body\",\"array-container-item\":\"array-container-item\",\"arrayContainerItem\":\"array-container-item\",\"array-container-selected\":\"array-container-selected\",\"arrayContainerSelected\":\"array-container-selected\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"kill-chain-container\":\"kill-chain-container\",\"killChainContainer\":\"kill-chain-container\",\"kill-chain-header\":\"kill-chain-header\",\"killChainHeader\":\"kill-chain-header\",\"kill-chain-body\":\"kill-chain-body\",\"killChainBody\":\"kill-chain-body\",\"kill-chain-options\":\"kill-chain-options\",\"killChainOptions\":\"kill-chain-options\",\"kill-chain-row\":\"kill-chain-row\",\"killChainRow\":\"kill-chain-row\",\"material-icons\":\"material-icons\",\"materialIcons\":\"material-icons\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"er-container\":\"er-container\",\"erContainer\":\"er-container\",\"er-header\":\"er-header\",\"erHeader\":\"er-header\",\"er-body\":\"er-body\",\"erBody\":\"er-body\",\"er-block\":\"er-block\",\"erBlock\":\"er-block\",\"er-block-row\":\"er-block-row\",\"erBlockRow\":\"er-block-row\",\"remove\":\"remove\",\"add\":\"add\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"boolean\":\"boolean\",\"selected\":\"selected\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"go-container\":\"go-container\",\"goContainer\":\"go-container\",\"go-header\":\"go-header\",\"goHeader\":\"go-header\",\"go-body\":\"go-body\",\"goBody\":\"go-body\",\"go-block-input\":\"go-block-input\",\"goBlockInput\":\"go-block-input\",\"input\":\"input\",\"add-container\":\"add-container\",\"addContainer\":\"add-container\",\"go-block\":\"go-block\",\"goBlock\":\"go-block\",\"go-block-row\":\"go-block-row\",\"goBlockRow\":\"go-block-row\",\"remove\":\"remove\",\"add\":\"add\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ct-container\":\"ct-container\",\"ctContainer\":\"ct-container\",\"ct-header\":\"ct-header\",\"ctHeader\":\"ct-header\",\"ct-body\":\"ct-body\",\"ctBody\":\"ct-body\",\"ct-block-input\":\"ct-block-input\",\"ctBlockInput\":\"ct-block-input\",\"input\":\"input\",\"add-container\":\"add-container\",\"addContainer\":\"add-container\",\"ct-output\":\"ct-output\",\"ctOutput\":\"ct-output\",\"go-block\":\"go-block\",\"goBlock\":\"go-block\",\"go-block-row\":\"go-block-row\",\"goBlockRow\":\"go-block-row\",\"remove\":\"remove\",\"add\":\"add\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"details\":\"details\",\"header\":\"header\",\"title\":\"title\",\"delete\":\"delete\",\"text\":\"text\",\"body\":\"body\",\"item\":\"item\",\"horizontal-slider\":\"horizontal-slider\",\"horizontalSlider\":\"horizontal-slider\",\"item-header\":\"item-header\",\"itemHeader\":\"item-header\",\"slider\":\"slider\",\"footer\":\"footer\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"def\":\"def\",\"disabled\":\"disabled\",\"disco-relationship\":\"disco-relationship\",\"discoRelationship\":\"disco-relationship\",\"standard\":\"standard\",\"confirm\":\"confirm\",\"caution\":\"caution\",\"cancel\":\"cancel\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"json-viewer\":\"json-viewer\",\"jsonViewer\":\"json-viewer\",\"json-content\":\"json-content\",\"jsonContent\":\"json-content\",\"json-controls\":\"json-controls\",\"jsonControls\":\"json-controls\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"json-paste\":\"json-paste\",\"jsonPaste\":\"json-paste\",\"paste-area\":\"paste-area\",\"pasteArea\":\"paste-area\",\"json-controls\":\"json-controls\",\"jsonControls\":\"json-controls\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"relationship-picker\":\"relationship-picker\",\"relationshipPicker\":\"relationship-picker\",\"header\":\"header\",\"content\":\"content\",\"item\":\"item\",\"src-image\":\"src-image\",\"srcImage\":\"src-image\",\"target-image\":\"target-image\",\"targetImage\":\"target-image\",\"rel-type\":\"rel-type\",\"relType\":\"rel-type\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"growl\":\"growl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"canvas\":\"canvas\"};","import deepmerge from \"deepmerge\";\nimport moment from \"moment\";\nimport uuidv4 from \"uuid\";\n\nconst SPEC_VERSION = 2.1;\n\nexport class Base {\n\n constructor(common, def) {\n const commonProps = common.properties;\n let defProps = {};\n const dateFields = [\n \"first_seen\",\n \"last_seen\",\n \"first_observed\",\n \"last_observed\",\n \"modified\",\n \"updated\",\n \"created\",\n \"valid_from\",\n \"valid_until\",\n \"submitted\",\n \"analysis_started\",\n \"analysis_ended\",\n \"published\",\n \"ctime\",\n \"atime\",\n \"mtime\",\n \"date\",\n \"account_created\",\n \"account_expires\",\n \"credential_last_changed\",\n \"account_first_login\",\n \"account_last_login\",\n \"modified_time\",\n \"validity_not_before\",\n \"validity_not_after\",\n \"start\",\n \"end\"\n ];\n const defaultValue = (type) => {\n let def;\n\n switch (type) {\n case \"string\":\n def = \"\";\n break;\n case \"dts\":\n def = moment().format();\n break;\n case \"integer\":\n def = 0;\n break;\n case \"array\":\n def = []\n break;\n case \"object\":\n def = {}\n break;\n case \"boolean\":\n def = false\n break;\n }\n\n return def;\n }\n\n common.required.map(item => {\n if (commonProps[item]) {\n commonProps[item].required = true;\n }\n });\n\n if (def.allOf) {\n def.allOf.map(item => {\n if (item.hasOwnProperty(\"properties\")) {\n defProps = item.properties;\n }\n });\n } else {\n defProps = def.properties;\n }\n\n if (def.required) {\n def.required.map(item => {\n if (defProps[item]) {\n defProps[item].required = true;\n }\n });\n }\n\n for (const item in def) {\n this[item] = def[item];\n }\n\n const mergedProps = deepmerge(commonProps, defProps);\n\n // Start special handling of common object\n // properties.\n for (let prop in mergedProps) {\n // For the sake of the editor, we need to\n // reset the type as dts on fields that require\n // a datetime.\n if (dateFields.indexOf(prop) > -1) {\n mergedProps[prop].type = \"dts\";\n }\n // Set default blank values based on the prop\n // type.\n if (mergedProps[prop].type) {\n mergedProps[prop].value = defaultValue(mergedProps[prop].type);\n }\n }\n\n if (mergedProps[\"type\"]) {\n mergedProps[\"type\"].control = \"literal\";\n if (mergedProps[\"type\"].enum) {\n mergedProps[\"type\"].value = mergedProps[\"type\"].enum[0];\n }\n }\n\n if (mergedProps[\"aliases\"]) {\n mergedProps[\"aliases\"].control = \"csv\";\n }\n\n if (mergedProps[\"kill_chain_phases\"]) {\n mergedProps[\"kill_chain_phases\"].control = \"killchain\";\n mergedProps[\"kill_chain_phases\"].vocab = [{\n \"label\": \"Lockheed Kill Chain\",\n \"value\": \"lockheed-martin-cyber-kill-chain\",\n \"phases\": [{\n \"label\": \"Reconnaissance\",\n \"phase_name\": \"reconnaissance\"\n }, {\n \"label\": \"Weaponize\",\n \"phase_name\": \"weaponization\"\n }, {\n \"label\": \"Delivery\",\n \"phase_name\": \"delivery\"\n }, {\n \"label\": \"Exploitation\",\n \"phase_name\": \"exploitation\"\n }, {\n \"label\": \"Installation\",\n \"phase_name\": \"installation\"\n }, {\n \"label\": \"Command & Control (C2)\",\n \"phase_name\": \"command-and-control\"\n }, {\n \"label\": \"Actions On Objectives\",\n \"phase_name\": \"actions-on-objectives\"\n }]\n }]\n }\n\n if (mergedProps[\"external_references\"]) {\n mergedProps[\"external_references\"].control = \"externalrefs\";\n }\n\n mergedProps[\"id\"].control = \"hidden\";\n\n if (mergedProps[\"confidence\"]) {\n mergedProps[\"confidence\"].control = \"slider\";\n }\n\n if (mergedProps[\"description\"]) {\n mergedProps[\"description\"].control = \"textarea\";\n }\n\n /**\n * These are defaults that are to be set by the TI orchestrator\n */\n\n mergedProps[\"spec_version\"].value = SPEC_VERSION;\n mergedProps[\"spec_version\"].control = \"literal\";\n\n // Setting the label defauts for all the objects here,\n // however, this can be set individually in each objects\n // definition adapter.\n if (mergedProps[\"labels\"]) {\n mergedProps[\"labels\"].vocab = [\n \"Lorem\",\n \"Ipsum\"\n ]\n }\n\n if (mergedProps[\"extensions\"]) {\n mergedProps[\"extensions\"].control = \"genericobject\";\n mergedProps[\"extensions\"].type = \"object\";\n mergedProps[\"extensions\"].value = {};\n }\n\n if (mergedProps[\"created_by_ref\"]) {\n mergedProps[\"created_by_ref\"].value = `identity--${uuidv4()}`\n mergedProps[\"created_by_ref\"].type = \"literal\";\n }\n\n if (mergedProps[\"lang\"]) {\n mergedProps[\"lang\"].value = \"en\";\n mergedProps[\"lang\"].control = \"hidden\";\n }\n\n mergedProps[\"object_marking_refs\"].control = \"hidden\";\n mergedProps[\"granular_markings\"].control = \"hidden\";\n\n this.properties = mergedProps;\n }\n}\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/attack-pattern.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass AttackPattern extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"attack-pattern.png\",\n \"prefix\": \"attack-pattern--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"targets\", \"target\": \"identity\"},\n {\"type\": \"targets\", \"target\": \"location\"},\n {\"type\": \"targets\", \"target\": \"vulnerability\"},\n {\"type\": \"uses\", \"target\": \"malware\"},\n {\"type\": \"uses\", \"target\": \"tool\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n }\n}\n\nconst singleton = new AttackPattern();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/indicator.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Indicator extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"indicator.png\",\n \"prefix\": \"indicator--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"indicates\", \"target\": \"attack-pattern\"},\n {\"type\": \"indicates\", \"target\": \"campaign\"},\n {\"type\": \"indicates\", \"target\": \"intrusion-set\"},\n {\"type\": \"indicates\", \"target\": \"malware\"},\n {\"type\": \"indicates\", \"target\": \"threat-actor\"},\n {\"type\": \"indicates\", \"target\": \"tool\"},\n {\"type\": \"indicates\", \"target\": \"infrastructure\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n // Hoist vocabs onto properties\n this.properties.indicator_types.vocab = this.definitions[\"indicator-type-ov\"].enum;\n this.properties.pattern_type.vocab = this.definitions[\"pattern-type-ov\"].enum;\n this.properties.pattern_type.control = \"stringselector\";\n\n this.properties.pattern.control = \"confirmtextarea\";\n }\n}\n\nconst singleton = new Indicator();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/malware.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Malware extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"malware.png\",\n \"prefix\": \"malware--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"targets\", \"target\": \"identity\"},\n {\"type\": \"beacons-to\", \"target\": \"infrastructure\"},\n {\"type\": \"exfiltrates-to\", \"target\": \"infrastructure\"},\n {\"type\": \"compromises\", \"target\": \"infrastructure\"},\n {\"type\": \"targets\", \"target\": \"vulnerability\"},\n {\"type\": \"targets\", \"target\": \"infrastructure\"},\n {\"type\": \"uses\", \"target\": \"infrastructure\"},\n {\"type\": \"uses\", \"target\": \"tool\"},\n {\"type\": \"variant-of\", \"target\": \"malware\"},\n {\"type\": \"identifies\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_embed\": \"sample_refs\"},\n {\"type\": \"operates-on\", \"target\": \"observable\", \"sub-target\": \"software\", \"x_embed\": \"operating_system_refs\"},\n {\"type\": \"identifies\", \"target\": \"artifact\", \"x_embed\": \"sample_refs\"},\n {\"type\": \"originates-from\", \"target\": \"location\", \"x_exclusive\": true},\n {\"type\": \"targets\", \"target\": \"location\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n // Hoist vocabs onto properties\n this.properties[\"malware_types\"].vocab = this.definitions[\"malware-type-ov\"].enum;\n this.properties[\"architecture_execution_envs\"].vocab = this.definitions[\"processor-architecture-ov\"].enum;\n this.properties[\"implementation_languages\"].vocab = this.definitions[\"implementation-language-ov\"].enum;\n this.properties[\"capabilities\"].vocab = this.definitions[\"malware-capabilities-ov\"].enum;\n\n this.properties[\"operating_system_refs\"].control = \"hidden\";\n this.properties[\"sample_refs\"].control = \"hidden\";\n this.properties[\"aliases\"].control = \"csv\";\n }\n}\n\nconst singleton = new Malware();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/malware-analysis.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass MalwareAnalysis extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"malware-analysis.png\",\n \"prefix\": \"malware-analysis--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"characterizes\", \"target\": \"malware\"},\n {\"type\": \"analysis-of\", \"target\": \"malware\"},\n {\"type\": \"static-analysis-of\", \"target\": \"malware\"},\n {\"type\": \"dynamic-analysis-of\", \"target\": \"malware\"},\n {\"type\": \"identifies\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_exclusive\": true, \"x_embed\": \"sample_ref\"},\n {\"type\": \"identifies\", \"target\": \"artifact\", \"x_exclusive\": true, \"x_embed\": \"sample_ref\"},\n {\"type\": \"operates-on\", \"target\": \"observable\", \"sub-target\": \"software\", \"x_exclusive\": true, \"x_embed\": \"operating_system_refs\"},\n {\"type\": \"operates-virtually-on\", \"target\": \"observable\", \"sub-target\": \"software\", \"x_exclusive\": true, \"x_embed\": \"host_vm_ref\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"},\n {\"type\": \"observed-artifact\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-autonomous-system\", \"target\": \"observable\", \"sub-target\": \"autonomous-system\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-directory\", \"target\": \"observable\", \"sub-target\": \"directory\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-domain\", \"target\": \"observable\", \"sub-target\": \"domain-name\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-ipv4-addr\", \"target\": \"observable\", \"sub-target\": \"ipv4-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-ipv6-addr\", \"target\": \"observable\", \"sub-target\": \"ipv6-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-email-msg\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-email-addr\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-file\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-mac-addr\", \"target\": \"observable\", \"sub-target\": \"mac-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-mutex\", \"target\": \"observable\", \"sub-target\": \"mutex\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-network-traffic\", \"target\": \"observable\", \"sub-target\": \"network-traffic\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-process\", \"target\": \"observable\", \"sub-target\": \"process\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-software\", \"target\": \"observable\", \"sub-target\": \"software\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-url\", \"target\": \"observable\", \"sub-target\": \"url\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-user-account\", \"target\": \"observable\", \"sub-target\": \"user-account\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-win-reg-key\", \"target\": \"observable\", \"sub-target\": \"windows-registry-key\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-x509-cert\", \"target\": \"observable\", \"sub-target\": \"x509-certificate\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-artifact\", \"target\": \"artifact\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-autonomous-system\", \"target\": \"autonomous-system\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-directory\", \"target\": \"directory\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-domain\", \"target\": \"domain-name\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-ipv4-addr\", \"target\": \"ipv4-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-ipv6-addr\", \"target\": \"ipv6-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-email-msg\", \"target\": \"email-message\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-email-addr\", \"target\": \"email-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-file\", \"target\": \"file\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-mac-addr\", \"target\": \"mac-addr\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-mutex\", \"target\": \"mutex\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-network-traffic\", \"target\": \"network-traffic\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-process\", \"target\": \"process\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-software\", \"target\": \"software\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-url\", \"target\": \"url\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-user-account\", \"target\": \"user-account\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-win-reg-key\", \"target\": \"windows-registry-key\", \"x_embed\": \"analysis_sco_refs\"},\n {\"type\": \"observed-x509-cert\", \"target\": \"x509-certificate\", \"x_embed\": \"analysis_sco_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"modules\"].control = \"csv\";\n this.properties[\"host_vm_ref\"].control = \"hidden\";\n this.properties[\"operating_system_ref\"].control = \"hidden\";\n this.properties[\"installed_software_refs\"].control = \"hidden\";\n this.properties[\"sample_ref\"].control = \"hidden\";\n this.properties[\"sample_ref\"].type = \"string\";\n this.properties[\"sample_ref\"].value = \"\";\n this.properties[\"operating_system_ref\"].type = \"string\";\n this.properties[\"operating_system_ref\"].value = \"\";\n this.properties[\"host_vm_ref\"].value = \"\";\n this.properties[\"analysis_sco_refs\"].control = \"hidden\";\n }\n}\n\nconst singleton = new MalwareAnalysis();\n\nexport default singleton\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/sighting.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Sighting extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"sighting.png\",\n \"prefix\": \"sighting--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"sighting-of\", \"target\": \"indicator\", \"x_exclusive\": true, \"x_embed\": \"sighting_of_ref\"},\n {\"type\": \"sighting-of\", \"target\": \"malware\", \"x_exclusive\": true, \"x_embed\": \"sighting_of_ref\"},\n {\"type\": \"sighting-of\", \"target\": \"threat-actor\", \"x_exclusive\": true, \"x_embed\": \"sighting_of_ref\"},\n {\"type\": \"sighting-of\", \"target\": \"attack-pattern\", \"x_exclusive\": true, \"x_embed\": \"sighting_of_ref\"},\n {\"type\": \"sighting-of\", \"target\": \"campaign\", \"x_exclusive\": true, \"x_embed\": \"sighting_of_ref\"},\n {\"type\": \"sighting-of\", \"target\": \"tool\", \"x_exclusive\": true, \"x_embed\": \"sighting_of_ref\"},\n {\"type\": \"sighting-of\", \"target\": \"vulnerability\", \"x_exclusive\": true, \"x_embed\": \"sighting_of_ref\"},\n {\"type\": \"observed\", \"target\": \"observed-data\", \"x_embed\": \"observed_data_refs\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"sighting_of_ref\"].control = \"hidden\";\n this.properties[\"observed_data_refs\"].control = \"hidden\";\n this.properties[\"where_sighted_refs\"].control = \"hidden\";\n\n this.properties[\"count\"].control = \"slider\";\n }\n}\n\nconst singleton = new Sighting();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/course-of-action.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass CourseOfAction extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"course-of-action.png\",\n \"prefix\": \"course-of-action--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"mitigates\", \"target\": \"attack-pattern\"},\n {\"type\": \"mitigates\", \"target\": \"vulnerability\"},\n {\"type\": \"mitigates\", \"target\": \"malware\"},\n {\"type\": \"mitigates\", \"target\": \"tool\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n }\n}\n\nconst singleton = new CourseOfAction();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/campaign.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Campaign extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"campaign.png\",\n \"prefix\": \"campaign--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"attributed-to\", \"target\": \"intrusion-set\"},\n {\"type\": \"attributed-to\", \"target\": \"threat-actor\"},\n {\"type\": \"targets\", \"target\": \"identity\"},\n {\"type\": \"targets\", \"target\": \"vulnerability\"},\n {\"type\": \"uses\", \"target\": \"attack-pattern\"},\n {\"type\": \"uses\", \"target\": \"malware\"},\n {\"type\": \"uses\", \"target\": \"tool\"},\n {\"type\": \"compromises\", \"target\": \"infrastructure\"},\n {\"type\": \"uses\", \"target\": \"infrastructure\"},\n {\"type\": \"originates-from\", \"target\": \"location\", \"x_exclusive\": true},\n {\"type\": \"targets\", \"target\": \"location\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n }\n}\n\nconst singleton = new Campaign();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/observed-data.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass ObservedData extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observed-data.png\",\n \"prefix\": \"observed-data--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"observed-artifact\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-autonomous-system\", \"target\": \"observable\", \"sub-target\": \"autonomous-system\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-directory\", \"target\": \"observable\", \"sub-target\": \"directory\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-domain\", \"target\": \"observable\", \"sub-target\": \"domain-name\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-ipv4-addr\", \"target\": \"observable\", \"sub-target\": \"ipv4-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-ipv6-addr\", \"target\": \"observable\", \"sub-target\": \"ipv6-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-email-msg\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-email-addr\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-file\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-mac-addr\", \"target\": \"observable\", \"sub-target\": \"mac-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-mutex\", \"target\": \"observable\", \"sub-target\": \"mutex\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-network-traffic\", \"target\": \"observable\", \"sub-target\": \"network-traffic\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-process\", \"target\": \"observable\", \"sub-target\": \"process\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-software\", \"target\": \"observable\", \"sub-target\": \"software\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-url\", \"target\": \"observable\", \"sub-target\": \"url\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-user-account\", \"target\": \"observable\", \"sub-target\": \"user-account\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-win-reg-key\", \"target\": \"observable\", \"sub-target\": \"windows-registry-key\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-x509-cert\", \"target\": \"observable\", \"sub-target\": \"x509-certificate\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-artifact\", \"target\": \"artifact\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-autonomous-system\", \"target\": \"autonomous-system\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-directory\", \"target\": \"directory\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-domain\", \"target\": \"domain-name\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-ipv4-addr\", \"target\": \"ipv4-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-ipv6-addr\", \"target\": \"ipv6-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-email-msg\", \"target\": \"email-message\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-email-addr\", \"target\": \"email-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-file\", \"target\": \"file\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-mac-addr\", \"target\": \"mac-addr\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-mutex\", \"target\": \"mutex\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-network-traffic\", \"target\": \"network-traffic\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-process\", \"target\": \"process\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-software\", \"target\": \"software\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-url\", \"target\": \"url\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-user-account\", \"target\": \"user-account\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-win-reg-key\", \"target\": \"windows-registry-key\", \"x_embed\": \"object_refs\"},\n {\"type\": \"observed-x509-cert\", \"target\": \"x509-certificate\", \"x_embed\": \"object_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"number_observed\"].control = \"slider\";\n this.properties[\"object_refs\"].control = \"hidden\";\n this.properties[\"objects\"].control = \"hidden\";\n }\n}\n\nconst singleton = new ObservedData();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/identity.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Identity extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"identity.png\",\n \"prefix\": \"identity--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"located-at\", \"target\": \"location\"},\n {\"type\": \"saw\", \"target\": \"sighting\", \"x_reverse\": true, \"x_embed\": \"where_sighted_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"identity_class\"].vocab = this.definitions[\"identity-class-ov\"].enum;\n this.properties[\"identity_class\"].control = \"stringselector\";\n this.properties[\"sectors\"].vocab = this.definitions[\"industry-sector-ov\"].enum;\n\n this.properties[\"roles\"].control = \"csv\";\n }\n}\n\nconst singleton = new Identity();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/tool.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Tool extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"tool.png\",\n \"prefix\": \"tool--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"targets\", \"target\": \"identity\"},\n {\"type\": \"targets\", \"target\": \"vulnerability\"},\n {\"type\": \"targets\", \"target\": \"infrastructure\"},\n {\"type\": \"targets\", \"target\": \"location\"},\n {\"type\": \"uses\", \"target\": \"infrastructure\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"tool_types\"].vocab = this.definitions[\"tool-type-ov\"].enum;\n }\n}\n\nconst singleton = new Tool();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/report.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Report extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"report.png\",\n \"prefix\": \"report--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"references\", \"target\": \"identity\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"sighting\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"observed-data\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"indicator\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"malware\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"report\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"attack-pattern\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"threat-actor\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"intrusion-set\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"campaign\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"course-of-action\", \"x_embed\": \"object_refs\"},\n {\"type\": \"references\", \"target\": \"tool\", \"x_embed\": \"object_refs\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"object_refs\"].control = \"hidden\";\n this.properties[\"report_types\"].vocab = this.definitions[\"report-type-ov\"].enum;\n }\n}\n\nconst singleton = new Report();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/vulnerability.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Vulnerability extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"vulnerability.png\",\n \"prefix\": \"vulnerability--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n }\n}\n\nconst singleton = new Vulnerability();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/grouping.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Grouping extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"grouping.png\",\n \"prefix\": \"grouping--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"group\", \"target\": \"identity\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"sighting\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"observed-data\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"indicator\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"malware\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"report\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"attack-pattern\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"threat-actor\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"intrusion-set\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"campaign\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"course-of-action\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"tool\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"vulnerability\", \"x_embed\": \"object_refs\"},\n {\"type\": \"group\", \"target\": \"infrastructure\", \"x_embed\": \"object_refs\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"context\"].vocab = this.definitions[\"grouping-context-ov\"].enum;\n this.properties[\"object_refs\"].control = \"hidden\";\n }\n}\n\nconst singleton = new Grouping();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/infrastructure.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Infrastructure extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"infrastructure.png\",\n \"prefix\": \"infrastructure--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"communicates-with\", \"target\": \"infrastructure\"},\n {\"type\": \"consists-of\", \"target\": \"infrastructure\"},\n {\"type\": \"controls\", \"target\": \"infrastructure\"},\n {\"type\": \"uses\", \"target\": \"infrastructure\"},\n {\"type\": \"delivers\", \"target\": \"malware\"},\n {\"type\": \"has\", \"target\": \"vulnerability\"},\n {\"type\": \"hosts\", \"target\": \"tool\"},\n {\"type\": \"hosts\", \"target\": \"malware\"},\n {\"type\": \"located-at\", \"target\": \"location\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"infrastructure_types\"].vocab = this.definitions[\"infrastructure-type-ov\"].enum;\n }\n}\n\nconst singleton = new Infrastructure();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/intrusion-set.json';\nimport _cloneDeep from 'lodash/cloneDeep';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass IntrusionSet extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"intrusion-set.png\",\n \"prefix\": \"intrusion-set--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"attributed-to\", \"target\": \"threat-actor\"},\n {\"type\": \"targets\", \"target\": \"vulnerability\"},\n {\"type\": \"targets\", \"target\": \"identity\"},\n {\"type\": \"uses\", \"target\": \"tool\"},\n {\"type\": \"uses\", \"target\": \"attack-pattern\"},\n {\"type\": \"uses\", \"target\": \"malware\"},\n {\"type\": \"compromises\", \"target\": \"infrastructure\"},\n {\"type\": \"hosts\", \"target\": \"infrastructure\"},\n {\"type\": \"owns\", \"target\": \"infrastructure\"},\n {\"type\": \"uses\", \"target\": \"infrastructure\"},\n {\"type\": \"originates-from\", \"target\": \"location\", \"x_exclusive\": true},\n {\"type\": \"targets\", \"target\": \"location\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"goals\"].control = \"csv\";\n this.properties[\"primary_motivation\"].vocab = _cloneDeep(this.definitions[\"attack-motivation-ov\"].enum);\n this.properties[\"primary_motivation\"].control = \"stringselector\";\n this.properties[\"secondary_motivations\"].vocab = this.definitions[\"attack-motivation-ov\"].enum;\n this.properties[\"resource_level\"].vocab = _cloneDeep(this.definitions[\"attack-resource-level-ov\"].enum);\n this.properties[\"resource_level\"].control = \"stringselector\";\n\n\n }\n}\n\nconst singleton = new IntrusionSet();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/location.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Location extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"location.png\",\n \"prefix\": \"location--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n }\n}\n\nconst singleton = new Location();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/threat-actor.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass ThreatActor extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"threat-actor.png\",\n \"prefix\": \"threat-actor--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"attributed-to\", \"target\": \"identity\"},\n {\"type\": \"impersonates\", \"target\": \"identity\"},\n {\"type\": \"targets\", \"target\": \"identity\"},\n {\"type\": \"targets\", \"target\": \"vulnerability\"},\n {\"type\": \"uses\", \"target\": \"attack-pattern\"},\n {\"type\": \"uses\", \"target\": \"malware\"},\n {\"type\": \"uses\", \"target\": \"tool\"},\n {\"type\": \"uses\", \"target\": \"infrastructure\"},\n {\"type\": \"compromises\", \"target\": \"infrastructure\"},\n {\"type\": \"hosts\", \"target\": \"infrastructure\"},\n {\"type\": \"owns\", \"target\": \"infrastructure\"},\n {\"type\": \"located-at\", \"target\": \"location\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true}\n ],\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"sophistication\"].control = \"stringselector\";\n this.properties[\"resource_level\"].control = \"stringselector\";\n this.properties[\"primary_motivation\"].control = \"stringselector\";\n this.properties[\"goals\"].control = \"csv\";\n this.properties[\"sophistication\"].vocab = this.definitions[\"threat-actor-sophistication-ov\"].enum;\n this.properties[\"resource_level\"].vocab = this.definitions[\"attack-resource-level-ov\"].enum;\n this.properties[\"primary_motivation\"].vocab = this.definitions[\"attack-motivation-ov\"].enum;\n this.properties[\"secondary_motivations\"].vocab = this.definitions[\"attack-motivation-ov\"].enum;\n this.properties[\"personal_motivations\"].vocab = this.definitions[\"attack-motivation-ov\"].enum;\n this.properties[\"roles\"].vocab = this.definitions[\"threat-actor-role-ov\"].enum;\n this.properties[\"threat_actor_types\"].vocab = this.definitions[\"threat-actor-type-ov\"].enum;\n\n }\n}\n\nconst singleton = new ThreatActor();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/note.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Note extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"note.png\",\n \"prefix\": \"note--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"note\", \"target\": \"indicator\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"malware\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"campaign\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"threat-actor\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"infrastructure\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"intrusion-set\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"tool\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"sighting\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"observed-data\", \"x_embed\": \"object_refs\"},\n {\"type\": \"note\", \"target\": \"report\", \"x_embed\": \"object_refs\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"authors\"].control = \"csv\";\n this.properties[\"object_refs\"].control = \"hidden\";\n this.properties[\"content\"].control = \"textarea\";\n }\n}\n\nconst singleton = new Note();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/opinion.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Opinion extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"opinion.png\",\n \"prefix\": \"opinion--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"opinion\", \"target\": \"indicator\", \"x_embed\": \"object_refs\"},\n {\"type\": \"opinion\", \"target\": \"malware\", \"x_embed\": \"object_refs\"},\n {\"type\": \"opinion\", \"target\": \"campaign\", \"x_embed\": \"object_refs\"},\n {\"type\": \"opinion\", \"target\": \"threat-actor\", \"x_embed\": \"object_refs\"},\n {\"type\": \"opinion\", \"target\": \"infrastructure\", \"x_embed\": \"object_refs\"},\n {\"type\": \"opinion\", \"target\": \"intrusion-set\", \"x_embed\": \"object_refs\"},\n {\"type\": \"opinion\", \"target\": \"tool\", \"x_embed\": \"object_refs\"},\n {\"type\": \"created-by\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"created_by_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"authors\"].control = \"csv\";\n this.properties[\"object_refs\"].control = \"hidden\";\n this.properties[\"explanation\"].control = \"textarea\";\n this.properties[\"opinion\"].control = \"textarea\";\n }\n}\n\nconst singleton = new Opinion();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/marking-definition.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass MarkingDefinitionRed extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"tlp-red.png\",\n \"prefix\": \"marking-definition--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"applies-to\", \"target\": \"indicator\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"malware\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"malware-analysis\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"campaign\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"threat-actor\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"infrastructure\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"intrusion-set\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"tool\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"sighting\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"observed-data\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"report\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"course-of-action\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"vulnerability\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"grouping\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"attack-pattern\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"location\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"note\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"opinion\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.definition = {\n \"tlp\": \"red\"\n };\n\n this.properties[\"definition\"].control = \"hidden\";\n }\n}\n\nconst singleton = new MarkingDefinitionRed();\n\nexport default singleton;\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/marking-definition.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass MarkingDefinitionAmber extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"tlp-amber.png\",\n \"prefix\": \"marking-definition--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"applies-to\", \"target\": \"indicator\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"malware\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"malware-analysis\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"campaign\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"threat-actor\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"infrastructure\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"intrusion-set\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"tool\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"sighting\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"observed-data\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"report\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"course-of-action\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"vulnerability\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"grouping\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"attack-pattern\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"location\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"note\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"opinion\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.definition = {\n \"tlp\": \"amber\"\n };\n\n this.properties[\"definition\"].control = \"hidden\";\n }\n}\n\nconst singleton = new MarkingDefinitionAmber();\n\nexport default singleton\n","import common from '../definitions/common.json';\nimport rawDefinition from '../definitions/marking-definition.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass MarkingDefinitionGreen extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"tlp-green.png\",\n \"prefix\": \"marking-definition--\",\n \"active\": true,\n \"relationships\": [\n {\"type\": \"applies-to\", \"target\": \"indicator\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"malware\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"malware-analysis\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"campaign\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"threat-actor\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"infrastructure\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"intrusion-set\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"tool\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"sighting\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"observed-data\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"report\", \"x_reverse\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"course-of-action\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"vulnerability\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"grouping\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"attack-pattern\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"location\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"note\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"opinion\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"},\n {\"type\": \"applies-to\", \"target\": \"identity\", \"x_exclusive\": true, \"x_embed\": \"object_marking_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.definition = {\n \"tlp\": \"green\"\n };\n\n this.properties[\"definition\"].control = \"hidden\";\n }\n}\n\nconst singleton = new MarkingDefinitionGreen();\n\nexport default singleton\n","import _cloneDeep from 'lodash/cloneDeep';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Observable extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"observable--\",\n \"active\": true,\n \"relationships\": [],\n properties: {\n \"id\": {},\n type: {\n enum: [\n \"observable\"\n ]\n },\n \"confidence\": {},\n \"spec_version\": {\n \"value\": \"\"\n },\n labels: {},\n created_by_ref: {},\n lang: {},\n object_marking_refs: {},\n granular_markings: {}\n\n }\n\n }\n\n const common = {\n required: [],\n properties: {}\n }\n\n super(common, definition_extension);\n }\n}\n\nconst singleton = new Observable();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/artifact.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Artifact extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"artifact--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"raw\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_reverse\": true, \"x_embed\": \"raw_email_ref\"},\n {\"type\": \"content\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true, \"x_embed\": \"content_ref\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true, \"x_embed\": \"contains_refs\"},\n {\"type\": \"src-payload\", \"target\": \"observable\", \"sub-target\": \"network-traffic\", \"x_reverse\": true, \"x_exclusive\": true, \"x_embed\": \"src_payload_ref\"},\n {\"type\": \"dst-payload\", \"target\": \"observable\", \"sub-target\": \"network-traffic\", \"x_reverse\": true, \"x_exclusive\": true, \"x_embed\": \"dst_payload_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.payload_bin.type = \"string\";\n this.properties.url.type = \"string\";\n this.properties.encryption_algorithm.type = \"string\";\n\n this.properties.hashes.value = {};\n\n this.properties.hashes.control = \"genericobject\";\n\n }\n}\n\nconst singleton = new Artifact();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/software.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Software extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"software--\",\n \"active\": false,\n \"relationships\": []\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.languages.control = \"csv\";\n }\n}\n\nconst singleton = new Software();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/ipv4-addr.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass IPv4Addr extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"ipv4-addr--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"belongs-to\", \"target\": \"autonomous-system\", \"x_embed\": \"belongs_to_refs\"},\n {\"type\": \"belongs-to\", \"target\": \"observable\", \"sub-target\": \"autonomous-system\", \"x_embed\": \"belongs_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"mac-addr\", \"x_embed\": \"resolves_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"observable\", \"sub-target\": \"mac-addr\", \"x_embed\": \"resolves_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"domain-name\", \"x_embed\": \"resolves_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"observable\", \"sub-target\": \"domain-name\", \"x_embed\": \"resolves_to_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.resolves_to_refs.control = \"hidden\";\n this.properties.belongs_to_refs.control = \"hidden\";\n }\n}\n\nconst singleton = new IPv4Addr();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/ipv6-addr.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass IPv6Addr extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"ipv6-addr--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"belongs-to\", \"target\": \"autonomous-system\", \"x_embed\": \"belongs_to_refs\"},\n {\"type\": \"belongs-to\", \"target\": \"observable\", \"sub-target\": \"autonomous-system\", \"x_embed\": \"belongs_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"mac-addr\", \"x_embed\": \"resolves_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"observable\", \"sub-target\": \"mac-addr\", \"x_embed\": \"resolves_to_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.resolves_to_refs.control = \"hidden\";\n this.properties.belongs_to_refs.control = \"hidden\";\n }\n}\n\nconst singleton = new IPv6Addr();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/autonomous-system.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass AutonomousSystem extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"autonomous-system--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"belongs-to\", \"target\": \"observable\", \"sub-target\": \"ipv4-addr\", \"x_reverse\": true, \"x_embed\": \"belongs_to_refs\"},\n {\"type\": \"belongs-to\", \"target\": \"observable\", \"sub-target\": \"ipv6-addr\", \"x_reverse\": true, \"x_embed\": \"belongs_to_refs\"}\n\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.number.control = \"slider\";\n }\n}\n\nconst singleton = new AutonomousSystem();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/directory.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Directory extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"directory--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"directory\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"parent-directory\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true, \"x_embed\": \"parent_directory_ref\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true, \"x_embed\": \"contains_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties[\"contains_refs\"].control = \"hidden\";\n }\n}\n\nconst singleton = new Directory();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/domain-name.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass DomainName extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"domain-name--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"resolves-to\", \"target\": \"observable\", \"sub-target\": \"ipv4-addr\", \"x_reverse\": true, \"x_embed\": \"resolves_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"observable\", \"sub-target\": \"ipv6-addr\", \"x_reverse\": true, \"x_embed\": \"resolves_to_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.resolves_to_refs.control = \"hidden\";\n }\n}\n\nconst singleton = new DomainName();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/email-addr.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass EmailAddr extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"email-addr--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"from\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_reverse\": true, \"x_embed\": \"from_ref\"},\n {\"type\": \"to\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_reverse\": true, \"x_embed\": \"to_refs\"},\n {\"type\": \"cc\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_reverse\": true, \"x_embed\": \"cc_refs\"},\n {\"type\": \"bcc\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_reverse\": true, \"x_embed\": \"bcc_refs\"},\n {\"type\": \"sender\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_reverse\": true, \"x_embed\": \"sender_ref\"},\n {\"type\": \"addr-belongs-to\", \"target\": \"observable\", \"sub-target\": \"user-account\", \"x_embed\": \"belongs_to_ref\"},\n {\"type\": \"addr-belongs-to\", \"target\": \"user-account\", \"x_embed\": \"belongs_to_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.belongs_to_ref.control = \"hidden\";\n }\n}\n\nconst singleton = new EmailAddr();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/email-message.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass EmailMessage extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"email-message--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"from\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"from_ref\"},\n {\"type\": \"from\", \"target\": \"email-addr\", \"x_embed\": \"from_ref\"},\n {\"type\": \"to\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"to_refs\"},\n {\"type\": \"to\", \"target\": \"email-addr\", \"x_embed\": \"to_refs\"},\n {\"type\": \"cc\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"cc_refs\"},\n {\"type\": \"cc\", \"target\": \"email-addr\", \"x_embed\": \"cc_refs\"},\n {\"type\": \"bcc\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"bcc_refs\"},\n {\"type\": \"bcc\", \"target\": \"email-addr\", \"x_embed\": \"bcc_refs\"},\n {\"type\": \"sender\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"sender_ref\"},\n {\"type\": \"sender\", \"target\": \"email-addr\", \"x_embed\": \"sender_ref\"},\n {\"type\": \"raw\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_embed\": \"raw_email_ref\"},\n {\"type\": \"raw\", \"target\": \"artifact\", \"x_embed\": \"raw_email_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.date.type = \"dts\";\n this.properties.additional_header_fields.value = {};\n\n this.properties.from_ref.control = \"hidden\";\n this.properties.sender_ref.control = \"hidden\";\n this.properties.to_refs.control = \"hidden\";\n this.properties.cc_refs.control = \"hidden\";\n this.properties.bcc_refs.control = \"hidden\";\n this.properties.raw_email_ref.control = \"hidden\";\n this.properties.additional_header_fields.control = \"genericobject\";\n }\n}\n\nconst singleton = new EmailMessage();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/file.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass File extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"file--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"content\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_embed\": \"content_ref\"},\n {\"type\": \"content\", \"target\": \"artifact\", \"x_embed\": \"content_ref\"},\n {\"type\": \"parent-directory\", \"target\": \"observable\", \"sub-target\": \"directory\", \"x_embed\": \"parent_directory_ref\"},\n {\"type\": \"parent-directory\", \"target\": \"directory\", \"x_embed\": \"parent_directory_ref\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"directory\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"domain-name\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"ipv4-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"ipv6-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"email-message\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"mac-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"mutex\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"url\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"user-account\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"windows-registry-key\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"artifact\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"directory\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"domain-name\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"ipv4-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"ipv6-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"email-message\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"email-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"file\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"mac-addr\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"mutex\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"url\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"user-account\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"contains\", \"target\": \"windows-registry-key\", \"x_embed\": \"contains_refs\"},\n {\"type\": \"image\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true, \"x_exclusive\": true, \"x_embed\": \"image_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n this.properties.hashes.value = {};\n\n this.properties.content_ref.control = \"hidden\";\n this.properties.parent_directory_ref.control = \"hidden\";\n this.properties.contains_refs.control = \"hidden\";\n this.properties.hashes.control = \"genericobject\";\n\n this.properties.magic_number_hex.type = \"string\";\n this.properties.size.type = \"string\";\n }\n}\n\nconst singleton = new File();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/mac-addr.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass MacAddr extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"mac-addr--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"resolves-to\", \"target\": \"observable\", \"sub-target\": \"ipv4-addr\", \"x_reverse\": true, \"x_embed\": \"resolves_to_refs\"},\n {\"type\": \"resolves-to\", \"target\": \"observable\", \"sub-target\": \"ipv6-addr\", \"x_reverse\": true, \"x_embed\": \"resolves_to_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n\n }\n}\n\nconst singleton = new MacAddr();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/mutex.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Mutex extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"mutex--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true, \"x_embed\": \"contains_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n }\n}\n\nconst singleton = new Mutex();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/network-traffic.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass NetworkTraffic extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"network-traffic--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"src-payload\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_exclusive\": true, \"x_embed\": \"src_payload_ref\"},\n {\"type\": \"src-payload\", \"target\": \"artifact\", \"x_exclusive\": true, \"x_embed\": \"src_payload_ref\"},\n {\"type\": \"dst-payload\", \"target\": \"observable\", \"sub-target\": \"artifact\", \"x_exclusive\": true, \"x_embed\": \"dst_payload_ref\"},\n {\"type\": \"dst-payload\", \"target\": \"artifact\", \"x_exclusive\": true, \"x_embed\": \"dst_payload_ref\"},\n {\"type\": \"encapsulates\", \"target\": \"observable\", \"sub-target\": \"network-traffic\", \"x_embed\": \"encapsulates_refs\"},\n {\"type\": \"encapsulates\", \"target\": \"network-traffic\", \"x_embed\": \"encapsulates_refs\"},\n {\"type\": \"encapsulated-by\", \"target\": \"observable\", \"sub-target\": \"network-traffic\", \"x_exclusive\": true, \"x_embed\": \"encapsulated_ref\"},\n {\"type\": \"encapsulated-by\", \"target\": \"network-traffic\", \"x_exclusive\": true, \"x_embed\": \"encapsulated_ref\"},\n {\"type\": \"opened-connections\", \"target\": \"observable\", \"sub-target\": \"process\", \"x_reverse\": true, \"x_embed\": \"opened_connection_refs\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.ipfix.value = {};\n\n this.properties.src_payload_ref.control = \"hidden\";\n this.properties.dst_payload_ref.control = \"hidden\";\n this.properties.encapsulates_refs.control = \"hidden\";\n this.properties.encapsulated_by_ref.control = \"hidden\";\n this.properties.protocols.control = \"csv\";\n\n this.properties.ipfix.control = \"genericobject\";\n\n this.properties.src_port.type = \"string\";\n this.properties.dst_port.type = \"string\";\n\n this.properties.src_byte_count.type = \"string\";\n this.properties.dst_byte_count.type = \"string\";\n this.properties.src_packets.type = \"string\";\n this.properties.dst_packets.type = \"string\";\n }\n}\n\nconst singleton = new NetworkTraffic();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/process.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Process extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"process--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"opened-connections\", \"target\": \"observable\", \"sub-target\": \"network-traffic\", \"x_embed\": \"opened_connection_refs\"},\n {\"type\": \"opened-connections\", \"target\": \"network-traffic\", \"x_embed\": \"opened_connection_refs\"},\n {\"type\": \"creator-user\", \"target\": \"observable\", \"sub-target\": \"user-account\", \"x_embed\": \"creator_user_ref\"},\n {\"type\": \"creator-user\", \"target\": \"user-account\", \"x_embed\": \"creator_user_ref\"},\n {\"type\": \"image\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_exclusive\": true, \"x_embed\": \"image_ref\"},\n {\"type\": \"image\", \"target\": \"file\", \"x_exclusive\": true, \"x_embed\": \"image_ref\"},\n {\"type\": \"parent-process\", \"target\": \"observable\", \"sub-target\": \"process\", \"x_exclusive\": true, \"x_embed\": \"parent_ref\"},\n {\"type\": \"parent-process\", \"target\": \"process\", \"x_exclusive\": true, \"x_embed\": \"parent_ref\"},\n {\"type\": \"child-process\", \"target\": \"observable\", \"sub-target\": \"process\", \"x_embed\": \"child_refs\"},\n {\"type\": \"child-process\", \"target\": \"process\", \"x_embed\": \"child_refs\"}\n\n\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.environment_variables.value = {};\n\n this.properties.opened_connection_refs.control = \"hidden\";\n this.properties.creator_user_ref.control = \"hidden\";\n this.properties.image_ref.control = \"hidden\";\n this.properties.parent_ref.control = \"hidden\";\n this.properties.child_refs.control = \"hidden\";\n\n this.properties.environment_variables.control = \"genericobject\";\n\n\n\n }\n}\n\nconst singleton = new Process();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/url.json';\nimport _cloneDeep from 'lodash/cloneDeep';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Url extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"url--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.value.type = \"string\";\n }\n}\n\nconst singleton = new Url();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/user-account.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass UserAccount extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"user-account--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"addr-belongs-to\", \"target\": \"observable\", \"sub-target\": \"email-addr\", \"x_reverse\": true, \"x_embed\": \"belongs_to_ref\"},\n {\"type\": \"creator-user\", \"target\": \"observable\", \"sub-target\": \"process\", \"x_reverse\": true, \"x_embed\": \"creator_user_ref\"}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n }\n}\n\nconst singleton = new UserAccount();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/windows-registry-key.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass WindowsRegistryKey extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"windows-registry-key--\",\n \"active\": false,\n \"relationships\": [\n {\"type\": \"contains\", \"target\": \"observable\", \"sub-target\": \"file\", \"x_reverse\": true},\n {\"type\": \"creator-user\", \"target\": \"observable\", \"sub-target\": \"user-account\", \"x_exclusive\": true},\n {\"type\": \"creator-user\", \"target\": \"user-account\", \"x_exclusive\": true}\n ]\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.creator_user_ref.control = \"hidden\";\n this.properties.number_of_subkeys.control = \"slider\";\n\n this.properties.values.control = \"csv\";\n }\n}\n\nconst singleton = new WindowsRegistryKey();\n\nexport default singleton;\n","import common from '../definitions/observable-common.json';\nimport rawDefinition from '../definitions/x509-certificate.json';\nimport deepmerge from 'deepmerge';\n\nimport {Base} from './Base';\n\nclass Certificate extends Base {\n\n constructor() {\n const definition_extension = {\n \"img\": \"observable.png\",\n \"prefix\": \"x509-certificate--\",\n \"active\": false,\n \"relationships\": []\n }\n\n let def = deepmerge(definition_extension, rawDefinition);\n\n super(common, def);\n\n this.properties.hashes.value = {};\n this.properties.hashes.control = \"genericobject\";\n\n this.properties.x509_v3_extensions.type = \"string\";\n\n }\n}\n\nconst singleton = new Certificate();\n\nexport default singleton;\n","import { observable, action, toJS } from \"mobx\";\nimport { dispatch } from 'rfx-core';\nimport deepmerge from 'deepmerge';\nimport _cloneDeep from 'lodash/cloneDeep';\nimport _merge from 'lodash/merge';\nimport moment from 'moment';\n\nimport uuidv4 from 'uuid';\n\nimport ap from '../definition-adapters/AttackPattern.js';\nimport indicator from '../definition-adapters/Indicator.js';\nimport malware from '../definition-adapters/Malware.js';\nimport ma from '../definition-adapters/MalwareAnalysis.js';\nimport sighting from '../definition-adapters/Sighting.js';\nimport coa from '../definition-adapters/CourseOfAction.js';\nimport campaign from '../definition-adapters/Campaign.js';\nimport od from '../definition-adapters/ObservedData.js';\nimport identity from '../definition-adapters/Identity.js';\nimport tool from '../definition-adapters/Tool.js';\nimport report from '../definition-adapters/Report.js';\nimport vuln from '../definition-adapters/Vulnerability.js';\nimport grouping from '../definition-adapters/Grouping.js';\nimport infra from '../definition-adapters/Infrastructure.js';\nimport is from '../definition-adapters/IntrusionSet.js';\nimport location from '../definition-adapters/Location.js';\nimport ta from '../definition-adapters/ThreatActor.js';\nimport note from '../definition-adapters/Note.js';\nimport opinion from '../definition-adapters/Opinion.js';\nimport tlpred from '../definition-adapters/MarkingDefinitionRed.js';\nimport tlpamber from '../definition-adapters/MarkingDefinitionAmber.js';\nimport tlpgreen from '../definition-adapters/MarkingDefinitionGreen.js';\n\nimport obs from '../definition-adapters/Observable.js';\nimport artifact from '../definition-adapters/Artifact.js';\nimport software from '../definition-adapters/Software.js';\nimport ipv4 from '../definition-adapters/IPv4Addr.js';\nimport ipv6 from '../definition-adapters/IPv6Addr.js';\nimport autosys from '../definition-adapters/AutonomousSystem.js';\nimport dir from '../definition-adapters/Directory.js';\nimport domain from '../definition-adapters/DomainName.js';\nimport emailaddr from '../definition-adapters/EmailAddr.js';\nimport emailmsg from '../definition-adapters/EmailMessage.js';\nimport file from '../definition-adapters/File.js';\nimport mac from '../definition-adapters/MacAddr.js';\nimport mutex from '../definition-adapters/Mutex.js';\nimport network from '../definition-adapters/NetworkTraffic.js';\nimport process from '../definition-adapters/Process.js';\nimport url from '../definition-adapters/Url.js';\nimport ua from '../definition-adapters/UserAccount.js';\nimport winregkey from '../definition-adapters/WindowsRegistryKey.js';\nimport cert from '../definition-adapters/Certificate.js';\n\nconst SPEC_VERSION = \"2.1\";\n\nexport default class App {\n\n @observable showDetails = false;\n @observable showJSON = false;\n @observable showJSONPaste = false;\n @observable showRelPicker = false;\n @observable showGrowl = false;\n @observable growlMessage = \"\";\n @observable relationships = [];\n @observable dragging = {};\n @observable selected = {};\n @observable bundle = {};\n @observable pasteBundle;\n @observable nodes = [];\n @observable edges = [];\n @observable lines = [];\n @observable objects = [\n sighting,\n malware,\n ma,\n indicator,\n coa,\n ap,\n od,\n campaign,\n identity,\n tool,\n report,\n vuln,\n grouping,\n infra,\n is,\n location,\n ta,\n note,\n opinion,\n tlpred,\n tlpamber,\n tlpgreen,\n artifact,\n obs,\n software,\n ipv4,\n ipv6,\n autosys,\n dir,\n domain,\n emailaddr,\n emailmsg,\n file,\n mac,\n mutex,\n network,\n process,\n url,\n ua,\n winregkey,\n cert\n ];\n @observable mousePosition = {\n clientX: 0,\n clientY: 0\n }\n\n constructor() {\n this.bundle.spec_version = SPEC_VERSION;\n this.bundle.id = this.generateNodeID(\"bundle--\");\n this.bundle.type = \"bundle\";\n this.bundle.objects = [];\n }\n\n setMousePosition(event) {\n this.mousePosition.clientX = event.clientX;\n this.mousePosition.clientY = event.clientY;\n }\n\n setSelected(o) {\n this.selected = o;\n }\n\n showModal() {\n this.modal = true;\n }\n\n hideModal() {\n this.modal = false;\n }\n\n generateNodeID(prefix) {\n return `${prefix}${uuidv4()}`;\n }\n\n addNodeToBundle(node) {\n const props = node.properties;\n\n const newProps = {\n id: node.id\n };\n\n for (const prop in props) {\n if (props[prop].type !== undefined) {\n newProps[prop] = props[prop].value;\n }\n\n if (prop === \"definition\") {\n newProps[prop] = props[prop];\n }\n }\n\n this.bundle.objects.push(newProps);\n }\n\n addRelationshipToBundle(relationship) {\n\n const assignEmbeddedRelationship = (relationship, key, type) => {\n this.bundle.objects.map(object => {\n if (relationship.x_reverse) {\n if (object.id === relationship.target_ref) {\n if (typeof(type) === \"string\") {\n object[key] = relationship.source_ref;\n } else if (Array.isArray(type)) {\n object[key].push(relationship.source_ref);\n }\n }\n } else {\n if (object.id === relationship.source_ref) {\n if (Array.isArray(key)) {\n key.map(k => {\n for (let item in object) {\n if (item === k) {\n if (typeof(object[k]) === \"string\") {\n object[k] = relationship.target_ref;\n } else if (Array.isArray(object[k])) {\n object[k].push(relationship.target_ref);\n } else {\n console.warn(\"No type for relating in addRelationshipToBundle() in App.js\")\n }\n }\n }\n });\n } else {\n if (typeof(type) === \"string\") {\n object[key] = relationship.target_ref;\n } else if (Array.isArray(type)) {\n object[key].push(relationship.target_ref);\n }\n }\n }\n }\n });\n }\n\n // The relationship object in the definition adapter\n // should delcare how it is to be stored.\n if (relationship.x_embed) {\n let type = \"\";\n\n // If the property is plural, we know it is an array.\n // Otherwise, keep it a string.\n if (relationship.x_embed.indexOf(\"refs\") > -1) {\n type = [];\n }\n\n assignEmbeddedRelationship(relationship, relationship.x_embed, type);\n } else {\n this.bundle.objects.push(relationship);\n }\n }\n\n persistNode(node) {\n let nodeExists = false;\n // This will block generic observables\n // from persisting.\n if (node.type) {\n this.nodes.map(n => {\n if (node.id === n.id) {\n nodeExists = true;\n }\n });\n\n if (!nodeExists) {\n this.nodes.push(node);\n this.addNodeToBundle(node);\n }\n\n return !nodeExists;\n }\n }\n\n removeKillChainPhase(value) {\n let props = this.selected.properties;\n let removeIdx = -1;\n\n // First we are going to remove the kill chain object\n // from the selected node.\n props.kill_chain_phases.value.map((phase, idx) => {\n if (phase.kill_chain_name === value.kill_chain_name && phase.phase_name === value.phase_name) {\n removeIdx = idx;\n }\n });\n\n if (removeIdx > -1) {\n props.kill_chain_phases.value.splice(removeIdx, 1);\n }\n\n // Now we are going to remove the kill chain object\n // from the bundle that is being built.\n this.bundle.objects.map(object => {\n removeIdx = -1;\n\n if (object.id === this.selected.id) {\n object.kill_chain_phases.map((phase, idx) => {\n if (phase.kill_chain_name === value.kill_chain_name && phase.phase_name === value.phase_name) {\n removeIdx = idx;\n }\n });\n\n if (removeIdx > -1) {\n object.kill_chain_phases.splice(removeIdx, 1);\n }\n }\n });\n }\n\n editNodeValues(event) {\n let props = this.selected.properties;\n let updateProps = {\n id: this.selected.id,\n value: event.currentTarget.value,\n name: event.currentTarget.name\n }\n\n // Array's clearly need different treatment than strings.\n if (props[updateProps.name].type === \"array\") {\n let idx;\n // We need to see if this is a push or\n // a splice.\n props[updateProps.name].value.map((prop, i) => {\n if (prop === updateProps.value) {\n idx = i;\n }\n });\n // If the value exists, we know this is a splice or,\n // remove operation. Otherwise, the user is trying\n // to add a value.\n if (idx > -1) {\n props[updateProps.name].value.splice(idx, 1);\n this.removeNodeArrayValuesInBundle(updateProps);\n } else {\n props[updateProps.name].value.push(updateProps.value);\n this.updateNodeArrayValuesInBundle(updateProps);\n }\n } else if (props[updateProps.name].type === \"object\") {\n props[updateProps.name].value = updateProps.value;\n\n try {\n updateProps.value = JSON.parse(updateProps.value);\n this.updateNodeValuesInBundle(updateProps);\n } catch (error) {\n console.warn(\"not a valid object\")\n }\n } else {\n props[updateProps.name].value = updateProps.value;\n this.updateNodeValuesInBundle(updateProps);\n }\n }\n\n updateNodeValuesInBundle(props) {\n this.bundle.objects.map(object => {\n if (object.id === props.id) {\n object[props.name] = props.value;\n }\n });\n }\n\n updateNodeArrayValuesInBundle(props) {\n this.bundle.objects.map(object => {\n if (object.id === props.id) {\n object[props.name].push(props.value);\n }\n });\n }\n\n addGenericObject(field, value) {\n let v = this.selected.properties[field].value;\n v = _merge(v, value);\n\n this.bundle.objects.map(object => {\n if (object.id === this.selected.id) {\n object[field] = v;\n }\n });\n }\n\n deleteGenericObject(field, key) {\n let v = this.selected.properties[field].value;\n\n delete v[key];\n\n this.bundle.objects.map(object => {\n if (object.id === this.selected.id) {\n object[field] = v;\n }\n });\n }\n\n /**\n * For editing CSV values we will do both the property\n * and the bundle updates in one function since they\n * are unique in how both are updated.\n */\n editCSVInput(event) {\n let props = this.selected.properties;\n let updateProps = {\n id: this.selected.id,\n value: event.currentTarget.value,\n name: event.currentTarget.name\n }\n\n props[updateProps.name].value = [];\n\n updateProps[\"value\"] = updateProps[\"value\"].replace(/, /g, \",\");\n updateProps[\"value\"] = updateProps[\"value\"].replace(/ ,/g, \",\");\n\n let newArray = updateProps[\"value\"].split(\",\");\n\n if (!updateProps.value.length) {\n newArray = [];\n }\n\n newArray.map(item => {\n props[updateProps.name].value.push(item);\n });\n\n if (newArray.length > 0) {\n this.bundle.objects.map(object => {\n if (object.id === updateProps.id) {\n object[updateProps.name] = [];\n newArray.map(item => {\n object[updateProps.name].push(item);\n });\n }\n });\n } else {\n this.bundle.objects.map(object => {\n if (object.id === updateProps.id) {\n object[updateProps.name] = [];\n }\n });\n }\n }\n\n removeNodeArrayValuesInBundle(props) {\n let idx;\n\n this.bundle.objects.map(object => {\n if (object.id === props.id) {\n object[props.name].map((item, i) => {\n if (item === props.value) {\n idx = i;\n }\n });\n }\n\n if (idx > -1) {\n object[props.name].splice(idx, 1);\n }\n });\n }\n\n addDefaultObject(field) {\n const def = {\n \"source_name\": \"\"\n };\n\n this.selected.properties[field].value.push(def);\n\n this.bundle.objects.map(object => {\n if (object.id === this.selected.id) {\n object[field].push(def);\n }\n });\n }\n\n changeERValue(input, select, idx) {\n let nodeProp = this.selected.properties[\"external_references\"].value;\n\n nodeProp[idx][select] = input;\n\n this.bundle.objects.map(object => {\n if (object.id === this.selected.id) {\n object[\"external_references\"][idx][select] = input;\n }\n });\n }\n\n deleteERObjectProperty(select, idx) {\n let nodeProp = this.selected.properties[\"external_references\"].value;\n\n delete nodeProp[idx][select];\n\n this.bundle.objects.map(object => {\n if (object.id === this.selected.id) {\n delete object[\"external_references\"][idx][select];\n }\n });\n }\n\n blockDuplicateRelationships(source, target) {\n let alreadyRelated = false;\n\n this.edges.map(edge => {\n if (edge.source_ref === source && edge.target_ref === target) {\n alreadyRelated = true;\n }\n });\n\n return alreadyRelated;\n }\n\n makeRelationship(source, target, relationship) {\n\n let rel;\n let exclusiveRelationshipDefined = false;\n const alreadyRelated = this.blockDuplicateRelationships(source.id, target.id);\n\n // Some relationships are exclusive by nature.\n // This bit of code will protect that exclusivity.\n if (relationship.x_exclusive) {\n this.edges.map(edge => {\n if (edge.source_ref === source.id && relationship.type === edge.relationship_type) {\n exclusiveRelationshipDefined = true;\n }\n });\n }\n\n if (!alreadyRelated && !exclusiveRelationshipDefined) {\n\n rel = {\n source_ref: source.id,\n target_ref: target.id,\n relationship_type: relationship.type,\n type: \"relationship\",\n created: moment(),\n modified: moment(),\n id: this.generateNodeID('relationship--'),\n targetObjectType: relationship.target\n };\n\n if (relationship[\"sub-target\"]) {\n rel.subTarget = relationship[\"sub-target\"];\n }\n\n // Identity and Sighting create an interesting relationship\n // in that Identity is the source and Sighting is the target.\n // However, the relationship is stored on the Sighting creating this\n // hybrid reverse scenario in the bundle but visually, it seems\n // normal.\n if (relationship.x_reverse) {\n rel.x_reverse = true;\n }\n\n if (relationship.x_embed) {\n rel.x_embed = relationship.x_embed;\n }\n }\n\n return rel;\n }\n\n canRelate(nodeOnScreen) {\n const nodeOnScreenType = nodeOnScreen.properties.type.enum[0];\n const draggingType = this.dragging.properties.type.enum[0];\n\n let rel = [];\n\n if (nodeOnScreen.id !== this.dragging.id) {\n nodeOnScreen.relationships.map(relationship => {\n if (relationship.target === draggingType) {\n let madeRel = this.makeRelationship(nodeOnScreen, this.dragging, relationship);\n if (madeRel) {\n rel.push(madeRel);\n }\n }\n });\n\n this.dragging.relationships.map(relationship => {\n if (relationship.target === nodeOnScreenType) {\n let madeRel = this.makeRelationship(this.dragging, nodeOnScreen, relationship);\n if (madeRel) {\n rel.push(madeRel);\n }\n }\n });\n }\n\n if (rel.length === 1) {\n rel = rel[0];\n } else if (rel.length === 0) {\n rel = undefined;\n }\n\n return rel;\n }\n\n addNodeWithRelationship(nodeOnScreen) {\n let relationship = this.canRelate(nodeOnScreen);\n const dragging = toJS(this.dragging);\n\n if (Array.isArray(relationship)) {\n this.relationships = relationship;\n this.showRelPicker = true;\n } else {\n let nodeToPersist = dragging;\n\n if (relationship) {\n // if the relationship is an observable, we need to swap\n // it out for the specific sub type.\n if (relationship.targetObjectType === \"observable\") {\n if (nodeOnScreen.type === \"observable\") {\n } else {\n relationship = this.handleGenericObservable(relationship);\n }\n\n } else {\n this.edges.push(relationship);\n this.persistNode(nodeToPersist);\n }\n\n this.addRelationshipToBundle(relationship);\n return relationship;\n\n } else {\n this.persistNode(nodeToPersist);\n return relationship;\n }\n }\n }\n\n getNodeByType(type) {\n let node = {};\n\n this.objects.map(object => {\n if (object.properties.type.enum[0] === type) {\n for (let key in object) {\n node[key] = object[key];\n }\n }\n });\n\n return node;\n }\n\n getNodeById(id) {\n let node;\n\n this.nodes.map(n => {\n if (n.id === id) {\n node = n;\n }\n });\n\n return node;\n }\n\n /**\n * Observables are dragged onto other SDO's as a\n * generic object and transformed after the user selects\n * the specific, targeted observable.\n */\n handleGenericObservable(relationship) {\n let nodeToPersist = this.dragging;\n const newNode = this.getNodeByType(relationship.subTarget);\n\n newNode.id = this.generateNodeID(newNode.prefix);\n relationship.target_ref = newNode.id;\n nodeToPersist = newNode;\n\n this.edges.push(relationship);\n this.persistNode(nodeToPersist);\n this.dragging = nodeToPersist;\n\n return relationship;\n }\n\n /**\n * When an SDO or Observable can relate to another\n * SDO in more than one way, the user will need to select\n * manually.\n */\n manuallySelectRelationship(relationship) {\n let nodeToPersist = toJS(this.dragging);\n\n if (relationship.targetObjectType === \"observable\") {\n relationship = this.handleGenericObservable(relationship);\n } else {\n this.edges.push(relationship);\n this.persistNode(nodeToPersist);\n }\n\n this.addRelationshipToBundle(relationship);\n\n this.relationships = [];\n this.showRelPicker = false;\n\n return relationship;\n }\n\n createRelationshipFromPaste(key, node, id) {\n let def = this.getNodeByType(node.type);\n let targetExists = false;\n let r;\n let targetType;\n\n if (id) {\n targetType = id.split(\"--\")[0];\n } else {\n targetType = node[key].split(\"--\")[0];\n }\n\n this.nodes.map(n => {\n if (node[key] === n.id || id === n.id) {\n targetExists = true;\n }\n });\n\n if (targetExists) {\n def.relationships.map(relationship => {\n if (relationship.x_embed && (relationship.x_embed === key && relationship.target === targetType)) {\n r = {\n source_ref: node.id,\n target_ref: id ? id : node[key],\n relationship_type: relationship.type,\n type: \"relationship\",\n created: moment(),\n modified: moment(),\n id: this.generateNodeID('relationship--')\n };\n }\n });\n }\n\n return r;\n }\n\n calculateLineDrag() {\n let me = this;\n\n let i = setInterval(() => {\n me.lines.map((line) => {\n line.position();\n });\n }, 1);\n\n setTimeout(() => {\n window.clearInterval(i);\n }, 1000);\n }\n\n loadBundleFromPaste() {\n this.reset();\n\n try {\n let bundle = JSON.parse(this.pasteBundle);\n\n // Handle SDO's first.\n bundle.objects.map(o => {\n if (o.type !== \"relationship\") {\n\n let newNode = this.getNodeByType(o.type);\n newNode.id = o.id;\n\n for (let key in newNode.properties) {\n newNode.properties[key].value = o[key];\n }\n\n this.persistNode(newNode);\n }\n });\n\n // Handle SRO's and synthetic relationships\n // after SDO's have been loaded.\n bundle.objects.map(o => {\n if (o.type === \"relationship\") {\n this.edges.push(o);\n this.bundle.objects.push(o);\n }\n\n if (o.type !== \"relationship\") {\n for (let key in o) {\n if ((key.indexOf(\"_ref\") > -1 && o[key].length) && key !== \"external_references\") {\n if (Array.isArray(o[key])) {\n o[key].map(id => {\n let rel = this.createRelationshipFromPaste(key, o, id);\n\n if (rel) {\n this.edges.push(rel);\n }\n })\n } else {\n let rel = this.createRelationshipFromPaste(key, o);\n\n if (rel) {\n this.edges.push(rel);\n }\n }\n }\n }\n }\n });\n\n this.pasteBundle = \"\";\n this.showJSONPaste = false;\n\n } catch (e) {\n this.growlMessage = \"Incorrect JSON Syntax.\";\n this.showGrowl = true;\n console.warn(e);\n }\n }\n\n deleteSelectedNode() {\n const nodeToDelete = this.selected;\n const removeEdgePositions = [];\n\n const removeEmbeddedTargetRelFromBundle = (rel, sourceNode, targetNode) => {\n this.bundle.objects.map(o => {\n if (o.id === sourceNode.id) {\n if (Array.isArray(o[rel.x_embed])) {\n o[rel.x_embed].map((r, i) => {\n if (r === nodeToDelete.id) {\n o[rel.x_embed].splice(i, 1);\n }\n });\n } else {\n o[rel.x_embed] = \"\";\n }\n }\n });\n }\n\n const removeExternalRelFromBundle = (id) => {\n this.bundle.objects.map((rel, i) => {\n if (rel.id === id) {\n this.bundle.objects.splice(i, 1);\n }\n });\n }\n\n let newLines = [];\n\n // Handle the edges that may be impacted by\n // removing a node.\n this.edges.map((rel, i) => {\n if (rel.source_ref === nodeToDelete.id) {\n let sourceNode = nodeToDelete.id;\n let targetNode = this.getNodeById(rel.target_ref);\n removeEdgePositions.push(i);\n\n // Need to account for the embedded reference anti-pattern.\n if (rel.x_reverse) {\n removeEmbeddedTargetRelFromBundle(rel, targetNode, sourceNode);\n }\n\n removeExternalRelFromBundle(rel.id);\n\n } else if (rel.target_ref === nodeToDelete.id) {\n let targetNode = nodeToDelete.id;\n let sourceNode = this.getNodeById(rel.source_ref);\n removeEdgePositions.push(i);\n\n if (rel.x_embed) {\n if (Array.isArray(sourceNode.properties[rel.x_embed])) {\n sourceNode.properties[rel.x_embed].map((o, i) => {\n if (o.id === targetNode) {\n sourceNode.properties[rel.x_embed].splice(i, 1);\n }\n });\n } else {\n sourceNode.properties[rel.x_embed] = \"\";\n }\n\n removeEmbeddedTargetRelFromBundle(rel, sourceNode, targetNode);\n } else {\n removeExternalRelFromBundle(rel.id);\n }\n }\n });\n\n for (let i = removeEdgePositions.length; i--;) {\n console.log(i)\n this.edges.splice(i, 1);\n }\n\n // Remove line the line SVG and push\n // any objects not being removed into the\n // temp array.\n this.lines.map((line, i) => {\n if (\n line.start.id === nodeToDelete.id ||\n line.end.id === nodeToDelete.id\n ) {\n line.remove();\n } else {\n newLines.push(line);\n }\n });\n\n this.lines = newLines;\n\n this.bundle.objects.map((o, i) => {\n if (o.id === nodeToDelete.id) {\n this.bundle.objects.splice(i, 1);\n }\n });\n\n // Remove the selected node from the nodes object.\n this.nodes.map((node, i) => {\n if (node.id === nodeToDelete.id) {\n this.nodes.splice(i, 1);\n }\n });\n\n this.showDetails = false;\n }\n\n reset() {\n this.showDetails = false;\n this.showJSON = false;\n this.showRelPicker = false;\n this.showGrowl = false;\n this.growlMessage = \"\";\n this.relationships = [];\n this.dragging = {};\n this.selected = {};\n this.bundle = {};\n this.nodes = [];\n this.edges = [];\n\n this.bundle.spec_version = SPEC_VERSION;\n this.bundle.id = this.generateNodeID(\"bundle--\");\n this.bundle.type = \"bundle\";\n this.bundle.objects = [];\n\n this.lines.map(line => {\n line.remove();\n });\n\n this.lines = [];\n }\n}\n","import { store } from \"rfx-core\";\n\nimport AppStore from \"./App\";\n\nexport default store.setup({\n appStore: AppStore\n});\n","import React from \"react\";\nimport { inject, observer } from \"mobx-react\";\nimport { toJS } from \"mobx\";\nimport PropTypes from \"prop-types\";\n\nimport menuStyle from \"./menu.scss\";\n\nfunction importAll(r) {\n let images = {};\n r.keys().map((item, index) => { images[item.replace('./', '')] = r(item); });\n return images;\n}\n\nconst images = importAll(require.context('../../imgs', false, /\\.(png|jpe?g|svg)$/));\n\n@observer\nexport default class Menu extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onDragStartHandler = this.onDragStartHandler.bind(this);\n\t}\n\n onDragStartHandler(event) {\n const id = this.props.generateNodeID(this.props.o.prefix);\n this.props.o.id = id;\n event.dataTransfer.setData(\"node\", JSON.stringify(this.props.o));\n\n this.props.onDragStartHandler(event);\n }\n\n render() {\n const o = this.props.o;\n\n return (\n
\n \n
\n )\n }\n}\n","import React from \"react\";\nimport { inject, observer } from \"mobx-react\";\nimport PropTypes from \"prop-types\";\n\nimport MenuItem from \"./MenuItem\";\n\nimport menuStyle from './menu.scss';\n\n@observer\nexport default class Menu extends React.Component {\n\n constructor(props) {\n super(props);\n\t}\n\n render() {\n return (\n
\n
\n {\n this.props.objects.map((o, i) => {\n if (o.active) {\n return \n }\n })\n }\n
\n
\n )\n }\n}\n","import React from \"react\";\nimport { inject, observer } from \"mobx-react\";\nimport Tooltip from \"react-tooltip\";\n\nimport menuStyle from './top-menu.scss';\n\n@observer\nexport default class TopMenu extends React.Component {\n\n constructor(props) {\n super(props);\n\t}\n\n render() {\n return (\n
\n
\n
\n {\"{ + }\"}\n
\n\n
\n {\"{ }\"}\n
\n\n
\n refresh Reset\n
\n\n \n
\n
\n )\n }\n}\n","import React from \"react\";\nimport { inject, observer } from \"mobx-react\";\nimport { toJS } from \"mobx\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\n\nimport nodeStyle from './node.scss';\n\nfunction importAll(r) {\n let images = {};\n r.keys().map((item, index) => { images[item.replace('./', '')] = r(item); });\n return images;\n}\n\nconst images = importAll(require.context('../imgs', false, /\\.(png|jpe?g|svg)$/));\n\n@observer\nexport default class Node extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onDragStartHandler = this.onDragStartHandler.bind(this);\n this.onDragOverHandler = this.onDragOverHandler.bind(this);\n this.onDropHandler = this.onDropHandler.bind(this);\n this.onDragEndHandler = this.onDragEndHandler.bind(this);\n this.onDragLeaveHandler = this.onDragLeaveHandler.bind(this);\n\t}\n\n onClickHandler(node) {\n this.props.onClickHandler(node);\n }\n\n onDragStartHandler(event) {\n event.dataTransfer.setData(\"node\", JSON.stringify(this.props.n));\n this.props.onDragStartHandler(event);\n }\n\n onDragEndHandler(event) {\n this.props.onDragEndHandler(event);\n }\n\n onDragOverHandler(event) {\n event.preventDefault();\n this.props.onDragOverNodeHandler(event, this.props.n);\n }\n\n onDropHandler(event) {\n event.preventDefault();\n this.props.onDropOnNodeHandler(this.props.n);\n this.props.resetBorders();\n event.stopPropagation();\n }\n\n onDragLeaveHandler(event) {\n this.props.resetBorders();\n }\n\n render() {\n const node = this.props.n;\n let hide = true;\n\n const cls = classNames({\n node: true,\n 'hide-node': hide\n });\n\n let display = node.id.split(\"--\")[0];\n\n if (node.properties.name && node.properties.name.value) {\n display = node.properties.name.value;\n }\n\n return (\n
this.onClickHandler(node)}\n onDragStart={this.onDragStartHandler}\n onDragEnd={this.onDragEndHandler}\n onDragOver={this.onDragOverHandler}\n onDrop={this.onDropHandler}\n onDragLeave={this.onDragLeaveHandler}>\n {display}\n
\n )\n }\n}\n","import React from \"react\";\nimport { inject, observer } from \"mobx-react\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\n\nimport panelStyle from './panel.scss';\n\n@observer\nexport default class Panel extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onClickHideHandler = this.onClickHideHandler.bind(this);\n\t}\n\n onClickHideHandler() {\n if (this.props.onClickHideHandler) {\n this.props.onClickHideHandler();\n } else {\n console.warn(\"No JSON Viewer close handler\");\n }\n\n }\n\n onClickPanelHandler(event) {\n event.stopPropagation();\n }\n\n render() {\n const cls = classNames({\n mask: true,\n 'hide-mask': !this.props.show\n });\n\n return (\n
\n
\n {this.props.children}\n
\n
\n )\n }\n}\n","import React from \"react\";\nimport { inject, observer } from \"mobx-react\";\nimport { toJS } from \"mobx\";\n\nimport RCSlider from \"rc-slider/lib/Slider\";\nimport 'rc-slider/assets/index.css'\n\nimport textStyle from \"./slider.scss\";\n\n@inject(\"store\")\n@observer\nexport default class Slider extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onChangeSliderHandler = this.onChangeSliderHandler.bind(this);\n }\n\n onChangeSliderHandler(value) {\n this.props.onChangeHandler(this.props.field, value);\n }\n\n render() {\n return (\n \n )\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\n\nimport textStyle from \"./text.scss\";\n\n@inject(\"store\")\n@observer\nexport default class Text extends React.Component {\n\n constructor(props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n }\n\n componentDidMount() {\n if (this.props.hasInitialFocus) {\n this.focus();\n }\n }\n\n focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n onKeyDownHandler(event) {\n if (event.keyCode === 13 && this.props.onReturn) {\n this.props.onReturn();\n } else if (event.keyCode === 27 && this.props.onEscape) {\n this.props.onEscape();\n }\n }\n\n onChangeHandler(event) {\n this.props.onChange(event);\n }\n\n render() {\n let inputType = this.props.type ? this.props.type : 'text';\n \n return (\n
\n { this.input = c }}\n autoComplete={this.props.autocomplete || \"off\"}\n className=\"def\"\n placeholder={this.props.placeholder}\n onChange={this.onChangeHandler}\n onKeyDown={e => this.onKeyDownHandler(e)}\n value={this.props.value}\n disabled={this.props.disabled}\n id={this.props.id}\n />\n
\n )\n }\n}\n\nText.propTypes = {\n hasInitialFocus: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onReturn: PropTypes.func,\n onEscape: PropTypes.func\n};\n","import React from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport textStyle from \"./text.scss\";\n\n@inject(\"store\")\n@observer\nexport default class TextArea extends React.Component {\n\n constructor(props) {\n super(props);\n this.onChangeHandler = this.onChangeHandler.bind(this);\n }\n\n componentDidMount() {\n if (this.props.hasInitialFocus) {\n this.focus();\n }\n }\n\n focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n onKeyDownHandler(event) {\n if (event.keyCode === 13 && this.props.onReturn) {\n this.props.onReturn();\n } else if (event.keyCode === 27 && this.props.onEscape) {\n this.props.onEscape();\n }\n }\n\n onChangeHandler(event) {\n this.props.onChange(event);\n }\n\n render() {\n let rows = this.props.rows ? this.props.rows : 1;\n\n return (\n
\n { this.input = c }}\n autoComplete={this.props.autocomplete || \"off\"}\n className=\"def\"\n placeholder={this.props.placeholder}\n onChange={this.onChangeHandler}\n onKeyDown={e => this.onKeyDownHandler(e)}\n value={this.props.value}\n disabled={this.props.disabled}\n id={this.props.id}\n />\n
\n )\n }\n}\n","import React from 'react';\nimport {observer, inject} from 'mobx-react';\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\n\nimport 'react-datepicker/dist/react-datepicker.css';\nimport dateStyle from './datetime.scss';\n\nexport default class DateTime extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onChange = this.onChange.bind(this);\n }\n\n onChange(datetime) {\n this.props.onChange(this.props.name, datetime);\n }\n\n render() {\n let dts = this.props.selected;\n\n if (typeof dts === 'string') {\n let dateObj = new Date(dts);\n dts = dateObj;\n }\n\n return (\n \n )\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\nimport classNames from \"classnames\";\nimport Tooltip from \"react-tooltip\";\n\nimport arrStyle from \"./arrayselector.scss\";\n\n@inject(\"store\")\n@observer\nexport default class ArraySelector extends React.Component {\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n\n }\n\n onClickHandler(field, value) {\n this.props.onClickHandler(field, value);\n }\n\n render() {\n const items = this.props.vocab ? this.props.vocab : [];\n const field = this.props.field;\n const value = this.props.value;\n const description = this.props.description;\n\n let cls = classNames({\n \"array-container-item\": true\n });\n\n return (\n
\n
\n {field} info\n
\n
\n {\n items.map((item, i) => {\n if (value.indexOf(item) > -1) {\n cls = classNames({\n \"array-container-item\": true,\n \"array-container-selected\": true\n });\n } else {\n cls = classNames({\n \"array-container-item\": true\n });\n }\n return
this.onClickHandler(field, item)}>{item}
\n })\n }\n
\n
\n )\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\nimport classNames from \"classnames\";\nimport Tooltip from \"react-tooltip\";\n\nimport killChainStyle from \"./killchain.scss\";\n\n@inject(\"store\")\n@observer\nexport default class KillChain extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onChangePhaseHandler = this.onChangePhaseHandler.bind(this);\n this.populatePhase = this.populatePhase.bind(this);\n }\n\n componentDidMount() {\n\n }\n\n onChangePhaseHandler(event) {\n const kcDomName = `kc-name-${this.props.node.id}`;\n const phaseDomName = `phase-${this.props.node.id}`;\n const kcIndex = document.getElementById(kcDomName).selectedIndex;\n const kcValue = document.getElementById(kcDomName)[kcIndex].value;\n const phaseValue = event.currentTarget.value;\n\n const value = {\n kill_chain_name: kcValue,\n phase_name: phaseValue\n };\n\n this.props.onChangeHandler(this.props.field, value);\n\n document.getElementById(kcDomName).selectedIndex = 0;\n document.getElementById(phaseDomName).selectedIndex = 0;\n\n // Reset phase name so we don't keep adding the same values\n // multiple times.\n document.getElementById(phaseDomName).innerHTML = \"\";\n var option = document.createElement(\"option\");\n option.value = 0\n option.text = \" -- Select Phase -- \";\n document.getElementById(phaseDomName).add(option);\n }\n\n populatePhase(event) {\n const phaseDomName = `phase-${this.props.node.id}`;\n const phaseDOM = document.getElementById(phaseDomName);\n const kc = event.currentTarget.value;\n\n this.props.vocab.map(item => {\n if (item.value === kc) {\n item.phases.map(phase => {\n var option = document.createElement(\"option\");\n option.value = phase.phase_name;\n option.text = phase.label;\n phaseDOM.add(option);\n });\n }\n });\n }\n\n render() {\n const vocab = this.props.vocab ? this.props.vocab : [];\n const field = this.props.field;\n const value = this.props.value;\n const description = this.props.description;\n\n const len = value.len;\n const kcName = `kc-name-${this.props.node.id}`;\n const phaseName = `phase-${this.props.node.id}`;\n\n return (\n
\n
\n {field} info\n
\n
\n
\n \n\n \n
\n\n {\n value.map((p, i) => {\n return (\n
\n
{p.kill_chain_name} - {p.phase_name} this.props.onClickRemoveHandler(field, p)} className=\"material-icons\">highlight_off
\n
\n )\n })\n }\n
\n
\n )\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\nimport classNames from \"classnames\";\nimport Tooltip from \"react-tooltip\";\nimport Text from \"../inputs/Text\";\nimport uuid from \"uuid\";\n\nimport killChainStyle from \"./externalreferences.scss\";\n\n@inject(\"store\")\n@observer\nexport default class ExternalReferences extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onClickHandler = this.onClickHandler.bind(this);\n this.onChangeERHandler = this.onChangeERHandler.bind(this);\n this.onClickAddHandler = this.onClickAddHandler.bind(this);\n this.onClickDeleteHandler = this.onClickDeleteHandler.bind(this);\n }\n\n componentDidMount() {\n\n }\n\n onChangeERHandler(event, value) {\n return undefined;\n }\n\n onClickAddHandler(input, select, idx) {\n this.props.onChangeERHandler(input.value, select.options[select.selectedIndex].value, idx);\n input.value = \"\";\n }\n\n onClickHandler() {\n const property = this.state.property;\n const value = this.state.value;\n }\n\n onClickDeleteHandler(select, idx) {\n this.props.onClickDeletePropertyHandler(select, idx);\n }\n\n render() {\n const vocab = this.props.vocab ? this.props.vocab : [];\n const field = this.props.field;\n const value = this.props.value;\n const description = this.props.description;\n\n const len = value.len;\n\n return (\n
\n
\n {field}\n info\n this.props.onClickAddObjectHandler(field)} className=\"add material-icons\">control_point\n \n
\n
\n {\n value.map((p, i) => {\n return (\n \n )\n })\n }\n
\n
\n )\n }\n}\n\nconst ReferenceBlock = (props) => {\n const blocks = [];\n const idx = props.i;\n const selectID = `select-${props.i}`;\n const inputID = `input-${props.i}`;\n\n const propValues = [\n \"source_name\",\n \"description\",\n \"url\",\n \"hashes\",\n \"external_id\"\n ];\n\n for (let item in props.kv) {\n let remove = props.onClickDeleteHandler(item, props.i)} className=\"remove material-icons\">highlight_off;\n\n if (item === \"source_name\") {\n remove = undefined;\n }\n\n blocks.push(\n
\n
{item}: {props.kv[item]} {remove}
\n
\n )\n }\n\n return
\n
\n \n \n props.onClickAddHandler(document.getElementById(inputID), document.getElementById(selectID), props.i)}>control_point\n
\n {blocks}\n
\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\nimport classNames from \"classnames\";\nimport Tooltip from \"react-tooltip\";\nimport Text from \"./Text\";\n\nimport csvStyle from \"./csvselector.scss\";\n\n@inject(\"store\")\n@observer\nexport default class ArraySelector extends React.Component {\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n\n }\n\n onClickHandler(field, value) {\n this.props.onClickHandler(field, value);\n }\n\n render() {\n\n const value = this.props.value.join();\n\n return (\n \n )\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\nimport classNames from \"classnames\";\n\nimport csvStyle from \"./boolean.scss\";\n\n@inject(\"store\")\n@observer\nexport default class ArraySelector extends React.Component {\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n\n }\n\n onClickHandler(field, value) {\n this.props.onClickHandler(field, value);\n }\n\n render() {\n const value = this.props.selected;\n let trueCls = classNames({\n selected: false\n });\n\n let falseCls = classNames({\n selected: false\n });\n\n if (value) {\n trueCls = classNames({\n selected: true\n });\n } else {\n falseCls = classNames({\n selected: true\n });\n }\n\n return (\n
\n
this.props.onClick(this.props.name, true)}>True
\n
this.props.onClick(this.props.name, false)}>False
\n
\n )\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\nimport classNames from \"classnames\";\nimport Tooltip from \"react-tooltip\";\nimport Text from \"../inputs/Text\";\nimport uuid from \"uuid\";\n\nimport killChainStyle from \"./genericobject.scss\";\n\n@inject(\"store\")\n@observer\nexport default class GenericObject extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onChangeInputHandler = this.onChangeInputHandler.bind(this);\n this.onClickAddObjectHandler = this.onClickAddObjectHandler.bind(this);\n this.onClickDeleteHandler = this.onClickDeleteHandler.bind(this);\n this.onClickCreateBlankHandler = this.onClickCreateBlankHandler.bind(this);\n\n this.state = {\n key: \"\",\n value: \"\"\n };\n }\n\n componentDidMount() {\n\n }\n\n onChangeInputHandler(event) {\n event.preventDefault();\n\n this.setState({\n [event.currentTarget.name]: event.currentTarget.value\n });\n }\n\n onClickDeleteHandler(select, idx) {\n this.props.onClickDeletePropertyHandler(select, idx);\n }\n\n onClickCreateBlankHandler() {\n this.setState({\n key: \"\",\n value: \"\"\n });\n }\n\n onClickAddObjectHandler() {\n const o = {};\n\n o[this.state.key] = this.state.value;\n\n this.props.onClickAddObjectHandler(this.props.field, o);\n }\n\n render() {\n const field = this.props.field;\n const value = this.props.value ? this.props.value : [];\n const description = this.props.description;\n const rows = [];\n\n for (let key in value) {\n rows.push(\n \n )\n }\n\n return (\n
\n
\n {field}\n info\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n control_point\n
\n
\n\n {rows}\n
\n
\n )\n }\n}\n\nconst ExtBlocks = (props) => {\n let v = props.v;\n\n if (typeof props.v === \"object\") {\n v = JSON.stringify(props.v);\n }\n\n return
\n
{props.k}: {v} props.onClickDeleteHandler(props.field, props.k)} className=\"remove material-icons\">highlight_off
\n
\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {observer, inject} from \"mobx-react\";\nimport classNames from \"classnames\";\nimport Tooltip from \"react-tooltip\";\nimport TextArea from \"../inputs/TextArea\";\nimport uuid from \"uuid\";\n\nimport confirmTextareaStyle from \"./confirmtextarea.scss\";\n\n@inject(\"store\")\n@observer\nexport default class ConfirmTextarea extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.onChangeInputHandler = this.onChangeInputHandler.bind(this);\n this.onClickAddObjectHandler = this.onClickAddObjectHandler.bind(this);\n this.onClickDeleteHandler = this.onClickDeleteHandler.bind(this);\n\n this.state = {\n value: \"\"\n };\n }\n\n componentDidMount() {\n\n }\n\n onChangeInputHandler(event) {\n event.preventDefault();\n\n this.setState({\n value: event.currentTarget.value\n });\n }\n\n onClickDeleteHandler(select, idx) {\n this.props.onClickDeletePropertyHandler(select, idx);\n }\n\n onClickAddObjectHandler() {\n this.props.onClickAddTextHandler(this.props.field, this.state.value);\n }\n\n render() {\n const field = this.props.field;\n const value = this.props.value ? this.props.value : [];\n const description = this.props.description;\n const rows = [];\n\n return (\n
\n
\n {field}\n info\n \n
\n
\n
\n
\n