From 2a4f10dc42d1f8ed4f2cf45c028ae64e9bf5b80e Mon Sep 17 00:00:00 2001 From: Darkiros Date: Tue, 22 Oct 2024 15:39:03 +0200 Subject: [PATCH] Add static site and MITRE ATT&CK Navigator --- {site => docs}/index.html | 3 +-- {site => docs}/mitre/CHANGELOG.md | 0 {site => docs}/mitre/CONTRIBUTING.md | 0 {site => docs}/mitre/MaterialIcons-Regular.ttf | Bin {site => docs}/mitre/README.md | 0 {site => docs}/mitre/USAGE.md | 0 {site => docs}/mitre/assets/config.json | 2 +- {site => docs}/mitre/assets/export.json | 0 .../mitre/assets/icons/MaterialIcons-Regular.ttf | Bin .../mitre/assets/icons/baseline-grid_on-24px.svg | 0 .../assets/icons/ic_camera_alt_black_24px.svg | 0 .../mitre/assets/icons/ic_check_box_black_24px.svg | 0 .../ic_check_box_outline_blank_black_24px.svg | 0 .../mitre/assets/icons/ic_clear_black_24px.svg | 0 .../mitre/assets/icons/ic_clear_gray_24px.svg | 0 .../mitre/assets/icons/ic_close_black_24px.svg | 0 .../assets/icons/ic_color_lens_black_24px.svg | 0 .../assets/icons/ic_content_copy_black_24px.svg | 0 .../assets/icons/ic_description_black_24px.svg | 0 .../mitre/assets/icons/ic_done_black_24px.svg | 0 .../mitre/assets/icons/ic_done_gray_24px.svg | 0 .../assets/icons/ic_exportAllExcel_black_24px.svg | 0 .../assets/icons/ic_exportAllJson_black_24px.svg | 0 .../assets/icons/ic_exportJson_black_24px.svg | 0 .../assets/icons/ic_file_download_black_24px.svg | 0 .../assets/icons/ic_file_upload_black_24px.svg | 0 .../assets/icons/ic_file_upload_gray_24px.svg | 0 .../assets/icons/ic_filter_list_black_24px.svg | 0 .../icons/ic_format_color_fill_black_24px.svg | 0 .../ic_format_color_fill_black_nobottom_24px.svg | 0 .../ic_format_color_fill_gray_nobottom_24px.svg | 0 .../assets/icons/ic_format_size_black_24px.svg | 0 .../assets/icons/ic_insert_chart_black_24px.svg | 0 .../assets/icons/ic_insert_chart_gray_24px.svg | 0 .../assets/icons/ic_insert_comment_black_24px.svg | 0 .../assets/icons/ic_insert_comment_gray_24px.svg | 0 .../icons/ic_keyboard_arrow_down_black_24px.svg | 0 .../icons/ic_keyboard_arrow_right_black_24px.svg | 0 .../icons/ic_keyboard_arrow_up_black_24px.svg | 0 .../assets/icons/ic_layers_clear_black_24px.svg | 0 .../assets/icons/ic_layers_clear_gray_24px.svg | 0 .../mitre/assets/icons/ic_link_black_24px.svg | 0 .../mitre/assets/icons/ic_link_gray_24px.svg | 0 .../mitre/assets/icons/ic_lock_black_24px.svg | 0 .../mitre/assets/icons/ic_lock_open_black_24px.svg | 0 .../mitre/assets/icons/ic_metadata_black_24px.svg | 0 .../mitre/assets/icons/ic_metadata_gray_24px.svg | 0 .../mitre/assets/icons/ic_palette_black_24px.svg | 0 .../ic_photo_size_select_large_black_24px.svg | 0 .../assets/icons/ic_playlist_add_black_24px.svg | 0 .../mitre/assets/icons/ic_push_pin_black_24px.svg | 0 .../mitre/assets/icons/ic_push_pin_gray.svg | 0 .../assets/icons/ic_remove_circle_black_24px.svg | 0 .../mitre/assets/icons/ic_save_black_24px.svg | 0 .../mitre/assets/icons/ic_save_gray_24px.svg | 0 .../mitre/assets/icons/ic_search_black_24px.svg | 0 .../mitre/assets/icons/ic_search_gray_24px.svg | 0 .../icons/ic_sort_alphabetically_ascending.svg | 0 ...ic_sort_alphabetically_ascending_black_24px.svg | 0 .../icons/ic_sort_alphabetically_black_24px.svg | 0 .../icons/ic_sort_alphabetically_descending.svg | 0 ...c_sort_alphabetically_descending_black_24px.svg | 0 .../assets/icons/ic_sort_numerically_ascending.svg | 0 .../ic_sort_numerically_ascending_black_24px.svg | 0 .../icons/ic_sort_numerically_black_24px.svg | 0 .../icons/ic_sort_numerically_descending.svg | 0 .../ic_sort_numerically_descending_black_24px.svg | 0 .../mitre/assets/icons/ic_texture_black_24px.svg | 0 .../mitre/assets/icons/ic_texture_gray_24px.svg | 0 .../mitre/assets/icons/ic_unfold_more_alt.svg | 0 .../assets/icons/ic_view_large_black_24px.svg | 0 .../mitre/assets/icons/ic_view_list_black_24px.svg | 0 .../mitre/assets/icons/ic_view_list_grey_24px.svg | 0 .../assets/icons/ic_view_medium_black_24px.svg | 0 .../assets/icons/ic_view_small_black_24px.svg | 0 .../assets/icons/ic_visibility_black_24px.svg | 0 .../mitre/assets/icons/ic_visibility_gray_24px.svg | 0 .../assets/icons/ic_visibility_off_black_24px.svg | 0 .../table_view_FILL0_wght400_GRAD0_opsz24.svg | 0 .../mitre/assets/icons/unfold_less_black_24px.svg | 0 .../mitre/assets/icons/unfold_less_gray_24px.svg | 0 .../assets/icons/unfold_more_alt_black_24px.svg | 0 .../assets/icons/unfold_more_alt_gray_24px.svg | 0 .../mitre/assets/icons/unfold_more_black_24px.svg | 0 .../mitre/assets/icons/unfold_more_gray_24px.svg | 0 .../mitre/assets/image_scoreVariableExample.png | Bin {site => docs}/mitre/favicon.ico | Bin docs/mitre/index.html | 13 +++++++++++++ {site => docs}/mitre/layers/README.md | 0 .../layers/samples/ATTACKcon 2018/Black_Pins.json | 0 .../layers/samples/ATTACKcon 2018/Blue_Pins.json | 0 .../layers/samples/ATTACKcon 2018/Gold_Pins.json | 0 .../layers/samples/ATTACKcon 2018/Red_Pins.json | 0 .../ATTACKcon 2018/Submitter_Responses.json | 0 {site => docs}/mitre/layers/samples/Bear_APT.json | 0 .../mitre/layers/samples/heatmap_layer.json | 0 .../mitre/layers/spec/v1.0/layerformat.md | 0 .../mitre/layers/spec/v1.1/layerformat.md | 0 .../mitre/layers/spec/v1.2/layerformat.md | 0 .../mitre/layers/spec/v1.3/layerformat.md | 0 .../mitre/layers/spec/v2.0/layerformat.md | 0 .../mitre/layers/spec/v2.1/layerformat.md | 0 .../mitre/layers/spec/v2.2/layerformat.md | 0 .../mitre/layers/spec/v3.0/layerformat.md | 0 .../mitre/layers/spec/v4.0/layerformat.md | 0 .../mitre/layers/spec/v4.1/layerformat.md | 0 .../mitre/layers/spec/v4.2/layerformat.md | 0 .../mitre/layers/spec/v4.3/layerformat.md | 0 .../mitre/layers/spec/v4.4/layerformat.md | 0 .../mitre/layers/spec/v4.5/layerformat.md | 0 {site => docs}/mitre/main.js | 8 ++++---- docs/mitre/main.js.map | 1 + {site => docs}/mitre/polyfills.js | 0 {site => docs}/mitre/polyfills.js.map | 0 .../mitre/roboto-cyrillic-400-normal.woff | Bin .../mitre/roboto-cyrillic-400-normal.woff2 | Bin .../mitre/roboto-cyrillic-ext-400-normal.woff | Bin .../mitre/roboto-cyrillic-ext-400-normal.woff2 | Bin {site => docs}/mitre/roboto-greek-400-normal.woff | Bin {site => docs}/mitre/roboto-greek-400-normal.woff2 | Bin .../mitre/roboto-greek-ext-400-normal.woff | Bin .../mitre/roboto-greek-ext-400-normal.woff2 | Bin {site => docs}/mitre/roboto-latin-400-normal.woff | Bin {site => docs}/mitre/roboto-latin-400-normal.woff2 | Bin .../mitre/roboto-latin-ext-400-normal.woff | Bin .../mitre/roboto-latin-ext-400-normal.woff2 | Bin .../mitre/roboto-mono-cyrillic-400-normal.woff | Bin .../mitre/roboto-mono-cyrillic-400-normal.woff2 | Bin .../mitre/roboto-mono-cyrillic-ext-400-normal.woff | Bin .../roboto-mono-cyrillic-ext-400-normal.woff2 | Bin .../mitre/roboto-mono-greek-400-normal.woff | Bin .../mitre/roboto-mono-greek-400-normal.woff2 | Bin .../mitre/roboto-mono-latin-400-normal.woff | Bin .../mitre/roboto-mono-latin-400-normal.woff2 | Bin .../mitre/roboto-mono-latin-ext-400-normal.woff | Bin .../mitre/roboto-mono-latin-ext-400-normal.woff2 | Bin .../mitre/roboto-mono-vietnamese-400-normal.woff | Bin .../mitre/roboto-mono-vietnamese-400-normal.woff2 | Bin .../mitre/roboto-vietnamese-400-normal.woff | Bin .../mitre/roboto-vietnamese-400-normal.woff2 | Bin {site => docs}/mitre/runtime.js | 0 {site => docs}/mitre/runtime.js.map | 0 {site => docs}/mitre/scripts.js | 0 {site => docs}/mitre/scripts.js.map | 0 {site => docs}/mitre/styles.css | 0 {site => docs}/mitre/styles.css.map | 2 +- {site => docs}/mitre/vendor.js | 0 {site => docs}/mitre/vendor.js.map | 0 site/mitre/index.html | 13 ------------- site/mitre/main.js.map | 1 - 150 files changed, 21 insertions(+), 22 deletions(-) rename {site => docs}/index.html (99%) rename {site => docs}/mitre/CHANGELOG.md (100%) rename {site => docs}/mitre/CONTRIBUTING.md (100%) rename {site => docs}/mitre/MaterialIcons-Regular.ttf (100%) rename {site => docs}/mitre/README.md (100%) rename {site => docs}/mitre/USAGE.md (100%) rename {site => docs}/mitre/assets/config.json (99%) rename {site => docs}/mitre/assets/export.json (100%) rename {site => docs}/mitre/assets/icons/MaterialIcons-Regular.ttf (100%) rename {site => docs}/mitre/assets/icons/baseline-grid_on-24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_camera_alt_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_check_box_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_check_box_outline_blank_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_clear_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_clear_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_close_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_color_lens_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_content_copy_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_description_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_done_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_done_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_exportAllExcel_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_exportAllJson_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_exportJson_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_file_download_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_file_upload_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_file_upload_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_filter_list_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_format_color_fill_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_format_color_fill_black_nobottom_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_format_color_fill_gray_nobottom_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_format_size_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_insert_chart_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_insert_chart_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_insert_comment_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_insert_comment_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_keyboard_arrow_down_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_keyboard_arrow_right_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_keyboard_arrow_up_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_layers_clear_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_layers_clear_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_link_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_link_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_lock_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_lock_open_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_metadata_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_metadata_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_palette_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_photo_size_select_large_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_playlist_add_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_push_pin_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_push_pin_gray.svg (100%) rename {site => docs}/mitre/assets/icons/ic_remove_circle_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_save_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_save_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_search_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_search_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_alphabetically_ascending.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_alphabetically_ascending_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_alphabetically_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_alphabetically_descending.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_alphabetically_descending_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_numerically_ascending.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_numerically_ascending_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_numerically_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_numerically_descending.svg (100%) rename {site => docs}/mitre/assets/icons/ic_sort_numerically_descending_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_texture_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_texture_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_unfold_more_alt.svg (100%) rename {site => docs}/mitre/assets/icons/ic_view_large_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_view_list_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_view_list_grey_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_view_medium_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_view_small_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_visibility_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_visibility_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/ic_visibility_off_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/table_view_FILL0_wght400_GRAD0_opsz24.svg (100%) rename {site => docs}/mitre/assets/icons/unfold_less_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/unfold_less_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/unfold_more_alt_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/unfold_more_alt_gray_24px.svg (100%) rename {site => docs}/mitre/assets/icons/unfold_more_black_24px.svg (100%) rename {site => docs}/mitre/assets/icons/unfold_more_gray_24px.svg (100%) rename {site => docs}/mitre/assets/image_scoreVariableExample.png (100%) rename {site => docs}/mitre/favicon.ico (100%) create mode 100644 docs/mitre/index.html rename {site => docs}/mitre/layers/README.md (100%) rename {site => docs}/mitre/layers/samples/ATTACKcon 2018/Black_Pins.json (100%) rename {site => docs}/mitre/layers/samples/ATTACKcon 2018/Blue_Pins.json (100%) rename {site => docs}/mitre/layers/samples/ATTACKcon 2018/Gold_Pins.json (100%) rename {site => docs}/mitre/layers/samples/ATTACKcon 2018/Red_Pins.json (100%) rename {site => docs}/mitre/layers/samples/ATTACKcon 2018/Submitter_Responses.json (100%) rename {site => docs}/mitre/layers/samples/Bear_APT.json (100%) rename {site => docs}/mitre/layers/samples/heatmap_layer.json (100%) rename {site => docs}/mitre/layers/spec/v1.0/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v1.1/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v1.2/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v1.3/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v2.0/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v2.1/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v2.2/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v3.0/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v4.0/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v4.1/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v4.2/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v4.3/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v4.4/layerformat.md (100%) rename {site => docs}/mitre/layers/spec/v4.5/layerformat.md (100%) rename {site => docs}/mitre/main.js (92%) create mode 100644 docs/mitre/main.js.map rename {site => docs}/mitre/polyfills.js (100%) rename {site => docs}/mitre/polyfills.js.map (100%) rename {site => docs}/mitre/roboto-cyrillic-400-normal.woff (100%) rename {site => docs}/mitre/roboto-cyrillic-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-cyrillic-ext-400-normal.woff (100%) rename {site => docs}/mitre/roboto-cyrillic-ext-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-greek-400-normal.woff (100%) rename {site => docs}/mitre/roboto-greek-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-greek-ext-400-normal.woff (100%) rename {site => docs}/mitre/roboto-greek-ext-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-latin-400-normal.woff (100%) rename {site => docs}/mitre/roboto-latin-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-latin-ext-400-normal.woff (100%) rename {site => docs}/mitre/roboto-latin-ext-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-mono-cyrillic-400-normal.woff (100%) rename {site => docs}/mitre/roboto-mono-cyrillic-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-mono-cyrillic-ext-400-normal.woff (100%) rename {site => docs}/mitre/roboto-mono-cyrillic-ext-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-mono-greek-400-normal.woff (100%) rename {site => docs}/mitre/roboto-mono-greek-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-mono-latin-400-normal.woff (100%) rename {site => docs}/mitre/roboto-mono-latin-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-mono-latin-ext-400-normal.woff (100%) rename {site => docs}/mitre/roboto-mono-latin-ext-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-mono-vietnamese-400-normal.woff (100%) rename {site => docs}/mitre/roboto-mono-vietnamese-400-normal.woff2 (100%) rename {site => docs}/mitre/roboto-vietnamese-400-normal.woff (100%) rename {site => docs}/mitre/roboto-vietnamese-400-normal.woff2 (100%) rename {site => docs}/mitre/runtime.js (100%) rename {site => docs}/mitre/runtime.js.map (100%) rename {site => docs}/mitre/scripts.js (100%) rename {site => docs}/mitre/scripts.js.map (100%) rename {site => docs}/mitre/styles.css (100%) rename {site => docs}/mitre/styles.css.map (91%) rename {site => docs}/mitre/vendor.js (100%) rename {site => docs}/mitre/vendor.js.map (100%) delete mode 100644 site/mitre/index.html delete mode 100644 site/mitre/main.js.map diff --git a/site/index.html b/docs/index.html similarity index 99% rename from site/index.html rename to docs/index.html index 4e940a7..4255d97 100644 --- a/site/index.html +++ b/docs/index.html @@ -306,7 +306,7 @@

list of CVEs

var mitre_button = document.createElement('div'); mitre_button.className = 'col-md-6'; mitre_button.style.textAlign = 'center'; - mitre_button.innerHTML = ''; + mitre_button.innerHTML = ''; control_row.appendChild(mitre_button); } @@ -325,7 +325,6 @@

list of CVEs

// Get the list of techniques, some node.to maybe null var techniques_list = data_cleaned.filter(node => node.to !== null); - console.log(techniques_list); var max_score = 0; diff --git a/site/mitre/CHANGELOG.md b/docs/mitre/CHANGELOG.md similarity index 100% rename from site/mitre/CHANGELOG.md rename to docs/mitre/CHANGELOG.md diff --git a/site/mitre/CONTRIBUTING.md b/docs/mitre/CONTRIBUTING.md similarity index 100% rename from site/mitre/CONTRIBUTING.md rename to docs/mitre/CONTRIBUTING.md diff --git a/site/mitre/MaterialIcons-Regular.ttf b/docs/mitre/MaterialIcons-Regular.ttf similarity index 100% rename from site/mitre/MaterialIcons-Regular.ttf rename to docs/mitre/MaterialIcons-Regular.ttf diff --git a/site/mitre/README.md b/docs/mitre/README.md similarity index 100% rename from site/mitre/README.md rename to docs/mitre/README.md diff --git a/site/mitre/USAGE.md b/docs/mitre/USAGE.md similarity index 100% rename from site/mitre/USAGE.md rename to docs/mitre/USAGE.md diff --git a/site/mitre/assets/config.json b/docs/mitre/assets/config.json similarity index 99% rename from site/mitre/assets/config.json rename to docs/mitre/assets/config.json index 89e55d6..0346829 100644 --- a/site/mitre/assets/config.json +++ b/docs/mitre/assets/config.json @@ -24,7 +24,7 @@ "default_layers": { "enabled": true, - "urls": ["mitre/assets/export.json"] + "urls": ["CVE2CAPEC/mitre/assets/export.json"] }, "comment_color": "yellow", diff --git a/site/mitre/assets/export.json b/docs/mitre/assets/export.json similarity index 100% rename from site/mitre/assets/export.json rename to docs/mitre/assets/export.json diff --git a/site/mitre/assets/icons/MaterialIcons-Regular.ttf b/docs/mitre/assets/icons/MaterialIcons-Regular.ttf similarity index 100% rename from site/mitre/assets/icons/MaterialIcons-Regular.ttf rename to docs/mitre/assets/icons/MaterialIcons-Regular.ttf diff --git a/site/mitre/assets/icons/baseline-grid_on-24px.svg b/docs/mitre/assets/icons/baseline-grid_on-24px.svg similarity index 100% rename from site/mitre/assets/icons/baseline-grid_on-24px.svg rename to docs/mitre/assets/icons/baseline-grid_on-24px.svg diff --git a/site/mitre/assets/icons/ic_camera_alt_black_24px.svg b/docs/mitre/assets/icons/ic_camera_alt_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_camera_alt_black_24px.svg rename to docs/mitre/assets/icons/ic_camera_alt_black_24px.svg diff --git a/site/mitre/assets/icons/ic_check_box_black_24px.svg b/docs/mitre/assets/icons/ic_check_box_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_check_box_black_24px.svg rename to docs/mitre/assets/icons/ic_check_box_black_24px.svg diff --git a/site/mitre/assets/icons/ic_check_box_outline_blank_black_24px.svg b/docs/mitre/assets/icons/ic_check_box_outline_blank_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_check_box_outline_blank_black_24px.svg rename to docs/mitre/assets/icons/ic_check_box_outline_blank_black_24px.svg diff --git a/site/mitre/assets/icons/ic_clear_black_24px.svg b/docs/mitre/assets/icons/ic_clear_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_clear_black_24px.svg rename to docs/mitre/assets/icons/ic_clear_black_24px.svg diff --git a/site/mitre/assets/icons/ic_clear_gray_24px.svg b/docs/mitre/assets/icons/ic_clear_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_clear_gray_24px.svg rename to docs/mitre/assets/icons/ic_clear_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_close_black_24px.svg b/docs/mitre/assets/icons/ic_close_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_close_black_24px.svg rename to docs/mitre/assets/icons/ic_close_black_24px.svg diff --git a/site/mitre/assets/icons/ic_color_lens_black_24px.svg b/docs/mitre/assets/icons/ic_color_lens_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_color_lens_black_24px.svg rename to docs/mitre/assets/icons/ic_color_lens_black_24px.svg diff --git a/site/mitre/assets/icons/ic_content_copy_black_24px.svg b/docs/mitre/assets/icons/ic_content_copy_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_content_copy_black_24px.svg rename to docs/mitre/assets/icons/ic_content_copy_black_24px.svg diff --git a/site/mitre/assets/icons/ic_description_black_24px.svg b/docs/mitre/assets/icons/ic_description_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_description_black_24px.svg rename to docs/mitre/assets/icons/ic_description_black_24px.svg diff --git a/site/mitre/assets/icons/ic_done_black_24px.svg b/docs/mitre/assets/icons/ic_done_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_done_black_24px.svg rename to docs/mitre/assets/icons/ic_done_black_24px.svg diff --git a/site/mitre/assets/icons/ic_done_gray_24px.svg b/docs/mitre/assets/icons/ic_done_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_done_gray_24px.svg rename to docs/mitre/assets/icons/ic_done_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_exportAllExcel_black_24px.svg b/docs/mitre/assets/icons/ic_exportAllExcel_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_exportAllExcel_black_24px.svg rename to docs/mitre/assets/icons/ic_exportAllExcel_black_24px.svg diff --git a/site/mitre/assets/icons/ic_exportAllJson_black_24px.svg b/docs/mitre/assets/icons/ic_exportAllJson_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_exportAllJson_black_24px.svg rename to docs/mitre/assets/icons/ic_exportAllJson_black_24px.svg diff --git a/site/mitre/assets/icons/ic_exportJson_black_24px.svg b/docs/mitre/assets/icons/ic_exportJson_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_exportJson_black_24px.svg rename to docs/mitre/assets/icons/ic_exportJson_black_24px.svg diff --git a/site/mitre/assets/icons/ic_file_download_black_24px.svg b/docs/mitre/assets/icons/ic_file_download_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_file_download_black_24px.svg rename to docs/mitre/assets/icons/ic_file_download_black_24px.svg diff --git a/site/mitre/assets/icons/ic_file_upload_black_24px.svg b/docs/mitre/assets/icons/ic_file_upload_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_file_upload_black_24px.svg rename to docs/mitre/assets/icons/ic_file_upload_black_24px.svg diff --git a/site/mitre/assets/icons/ic_file_upload_gray_24px.svg b/docs/mitre/assets/icons/ic_file_upload_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_file_upload_gray_24px.svg rename to docs/mitre/assets/icons/ic_file_upload_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_filter_list_black_24px.svg b/docs/mitre/assets/icons/ic_filter_list_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_filter_list_black_24px.svg rename to docs/mitre/assets/icons/ic_filter_list_black_24px.svg diff --git a/site/mitre/assets/icons/ic_format_color_fill_black_24px.svg b/docs/mitre/assets/icons/ic_format_color_fill_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_format_color_fill_black_24px.svg rename to docs/mitre/assets/icons/ic_format_color_fill_black_24px.svg diff --git a/site/mitre/assets/icons/ic_format_color_fill_black_nobottom_24px.svg b/docs/mitre/assets/icons/ic_format_color_fill_black_nobottom_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_format_color_fill_black_nobottom_24px.svg rename to docs/mitre/assets/icons/ic_format_color_fill_black_nobottom_24px.svg diff --git a/site/mitre/assets/icons/ic_format_color_fill_gray_nobottom_24px.svg b/docs/mitre/assets/icons/ic_format_color_fill_gray_nobottom_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_format_color_fill_gray_nobottom_24px.svg rename to docs/mitre/assets/icons/ic_format_color_fill_gray_nobottom_24px.svg diff --git a/site/mitre/assets/icons/ic_format_size_black_24px.svg b/docs/mitre/assets/icons/ic_format_size_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_format_size_black_24px.svg rename to docs/mitre/assets/icons/ic_format_size_black_24px.svg diff --git a/site/mitre/assets/icons/ic_insert_chart_black_24px.svg b/docs/mitre/assets/icons/ic_insert_chart_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_insert_chart_black_24px.svg rename to docs/mitre/assets/icons/ic_insert_chart_black_24px.svg diff --git a/site/mitre/assets/icons/ic_insert_chart_gray_24px.svg b/docs/mitre/assets/icons/ic_insert_chart_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_insert_chart_gray_24px.svg rename to docs/mitre/assets/icons/ic_insert_chart_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_insert_comment_black_24px.svg b/docs/mitre/assets/icons/ic_insert_comment_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_insert_comment_black_24px.svg rename to docs/mitre/assets/icons/ic_insert_comment_black_24px.svg diff --git a/site/mitre/assets/icons/ic_insert_comment_gray_24px.svg b/docs/mitre/assets/icons/ic_insert_comment_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_insert_comment_gray_24px.svg rename to docs/mitre/assets/icons/ic_insert_comment_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_keyboard_arrow_down_black_24px.svg b/docs/mitre/assets/icons/ic_keyboard_arrow_down_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_keyboard_arrow_down_black_24px.svg rename to docs/mitre/assets/icons/ic_keyboard_arrow_down_black_24px.svg diff --git a/site/mitre/assets/icons/ic_keyboard_arrow_right_black_24px.svg b/docs/mitre/assets/icons/ic_keyboard_arrow_right_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_keyboard_arrow_right_black_24px.svg rename to docs/mitre/assets/icons/ic_keyboard_arrow_right_black_24px.svg diff --git a/site/mitre/assets/icons/ic_keyboard_arrow_up_black_24px.svg b/docs/mitre/assets/icons/ic_keyboard_arrow_up_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_keyboard_arrow_up_black_24px.svg rename to docs/mitre/assets/icons/ic_keyboard_arrow_up_black_24px.svg diff --git a/site/mitre/assets/icons/ic_layers_clear_black_24px.svg b/docs/mitre/assets/icons/ic_layers_clear_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_layers_clear_black_24px.svg rename to docs/mitre/assets/icons/ic_layers_clear_black_24px.svg diff --git a/site/mitre/assets/icons/ic_layers_clear_gray_24px.svg b/docs/mitre/assets/icons/ic_layers_clear_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_layers_clear_gray_24px.svg rename to docs/mitre/assets/icons/ic_layers_clear_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_link_black_24px.svg b/docs/mitre/assets/icons/ic_link_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_link_black_24px.svg rename to docs/mitre/assets/icons/ic_link_black_24px.svg diff --git a/site/mitre/assets/icons/ic_link_gray_24px.svg b/docs/mitre/assets/icons/ic_link_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_link_gray_24px.svg rename to docs/mitre/assets/icons/ic_link_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_lock_black_24px.svg b/docs/mitre/assets/icons/ic_lock_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_lock_black_24px.svg rename to docs/mitre/assets/icons/ic_lock_black_24px.svg diff --git a/site/mitre/assets/icons/ic_lock_open_black_24px.svg b/docs/mitre/assets/icons/ic_lock_open_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_lock_open_black_24px.svg rename to docs/mitre/assets/icons/ic_lock_open_black_24px.svg diff --git a/site/mitre/assets/icons/ic_metadata_black_24px.svg b/docs/mitre/assets/icons/ic_metadata_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_metadata_black_24px.svg rename to docs/mitre/assets/icons/ic_metadata_black_24px.svg diff --git a/site/mitre/assets/icons/ic_metadata_gray_24px.svg b/docs/mitre/assets/icons/ic_metadata_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_metadata_gray_24px.svg rename to docs/mitre/assets/icons/ic_metadata_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_palette_black_24px.svg b/docs/mitre/assets/icons/ic_palette_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_palette_black_24px.svg rename to docs/mitre/assets/icons/ic_palette_black_24px.svg diff --git a/site/mitre/assets/icons/ic_photo_size_select_large_black_24px.svg b/docs/mitre/assets/icons/ic_photo_size_select_large_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_photo_size_select_large_black_24px.svg rename to docs/mitre/assets/icons/ic_photo_size_select_large_black_24px.svg diff --git a/site/mitre/assets/icons/ic_playlist_add_black_24px.svg b/docs/mitre/assets/icons/ic_playlist_add_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_playlist_add_black_24px.svg rename to docs/mitre/assets/icons/ic_playlist_add_black_24px.svg diff --git a/site/mitre/assets/icons/ic_push_pin_black_24px.svg b/docs/mitre/assets/icons/ic_push_pin_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_push_pin_black_24px.svg rename to docs/mitre/assets/icons/ic_push_pin_black_24px.svg diff --git a/site/mitre/assets/icons/ic_push_pin_gray.svg b/docs/mitre/assets/icons/ic_push_pin_gray.svg similarity index 100% rename from site/mitre/assets/icons/ic_push_pin_gray.svg rename to docs/mitre/assets/icons/ic_push_pin_gray.svg diff --git a/site/mitre/assets/icons/ic_remove_circle_black_24px.svg b/docs/mitre/assets/icons/ic_remove_circle_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_remove_circle_black_24px.svg rename to docs/mitre/assets/icons/ic_remove_circle_black_24px.svg diff --git a/site/mitre/assets/icons/ic_save_black_24px.svg b/docs/mitre/assets/icons/ic_save_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_save_black_24px.svg rename to docs/mitre/assets/icons/ic_save_black_24px.svg diff --git a/site/mitre/assets/icons/ic_save_gray_24px.svg b/docs/mitre/assets/icons/ic_save_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_save_gray_24px.svg rename to docs/mitre/assets/icons/ic_save_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_search_black_24px.svg b/docs/mitre/assets/icons/ic_search_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_search_black_24px.svg rename to docs/mitre/assets/icons/ic_search_black_24px.svg diff --git a/site/mitre/assets/icons/ic_search_gray_24px.svg b/docs/mitre/assets/icons/ic_search_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_search_gray_24px.svg rename to docs/mitre/assets/icons/ic_search_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_sort_alphabetically_ascending.svg b/docs/mitre/assets/icons/ic_sort_alphabetically_ascending.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_alphabetically_ascending.svg rename to docs/mitre/assets/icons/ic_sort_alphabetically_ascending.svg diff --git a/site/mitre/assets/icons/ic_sort_alphabetically_ascending_black_24px.svg b/docs/mitre/assets/icons/ic_sort_alphabetically_ascending_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_alphabetically_ascending_black_24px.svg rename to docs/mitre/assets/icons/ic_sort_alphabetically_ascending_black_24px.svg diff --git a/site/mitre/assets/icons/ic_sort_alphabetically_black_24px.svg b/docs/mitre/assets/icons/ic_sort_alphabetically_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_alphabetically_black_24px.svg rename to docs/mitre/assets/icons/ic_sort_alphabetically_black_24px.svg diff --git a/site/mitre/assets/icons/ic_sort_alphabetically_descending.svg b/docs/mitre/assets/icons/ic_sort_alphabetically_descending.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_alphabetically_descending.svg rename to docs/mitre/assets/icons/ic_sort_alphabetically_descending.svg diff --git a/site/mitre/assets/icons/ic_sort_alphabetically_descending_black_24px.svg b/docs/mitre/assets/icons/ic_sort_alphabetically_descending_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_alphabetically_descending_black_24px.svg rename to docs/mitre/assets/icons/ic_sort_alphabetically_descending_black_24px.svg diff --git a/site/mitre/assets/icons/ic_sort_numerically_ascending.svg b/docs/mitre/assets/icons/ic_sort_numerically_ascending.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_numerically_ascending.svg rename to docs/mitre/assets/icons/ic_sort_numerically_ascending.svg diff --git a/site/mitre/assets/icons/ic_sort_numerically_ascending_black_24px.svg b/docs/mitre/assets/icons/ic_sort_numerically_ascending_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_numerically_ascending_black_24px.svg rename to docs/mitre/assets/icons/ic_sort_numerically_ascending_black_24px.svg diff --git a/site/mitre/assets/icons/ic_sort_numerically_black_24px.svg b/docs/mitre/assets/icons/ic_sort_numerically_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_numerically_black_24px.svg rename to docs/mitre/assets/icons/ic_sort_numerically_black_24px.svg diff --git a/site/mitre/assets/icons/ic_sort_numerically_descending.svg b/docs/mitre/assets/icons/ic_sort_numerically_descending.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_numerically_descending.svg rename to docs/mitre/assets/icons/ic_sort_numerically_descending.svg diff --git a/site/mitre/assets/icons/ic_sort_numerically_descending_black_24px.svg b/docs/mitre/assets/icons/ic_sort_numerically_descending_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_sort_numerically_descending_black_24px.svg rename to docs/mitre/assets/icons/ic_sort_numerically_descending_black_24px.svg diff --git a/site/mitre/assets/icons/ic_texture_black_24px.svg b/docs/mitre/assets/icons/ic_texture_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_texture_black_24px.svg rename to docs/mitre/assets/icons/ic_texture_black_24px.svg diff --git a/site/mitre/assets/icons/ic_texture_gray_24px.svg b/docs/mitre/assets/icons/ic_texture_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_texture_gray_24px.svg rename to docs/mitre/assets/icons/ic_texture_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_unfold_more_alt.svg b/docs/mitre/assets/icons/ic_unfold_more_alt.svg similarity index 100% rename from site/mitre/assets/icons/ic_unfold_more_alt.svg rename to docs/mitre/assets/icons/ic_unfold_more_alt.svg diff --git a/site/mitre/assets/icons/ic_view_large_black_24px.svg b/docs/mitre/assets/icons/ic_view_large_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_view_large_black_24px.svg rename to docs/mitre/assets/icons/ic_view_large_black_24px.svg diff --git a/site/mitre/assets/icons/ic_view_list_black_24px.svg b/docs/mitre/assets/icons/ic_view_list_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_view_list_black_24px.svg rename to docs/mitre/assets/icons/ic_view_list_black_24px.svg diff --git a/site/mitre/assets/icons/ic_view_list_grey_24px.svg b/docs/mitre/assets/icons/ic_view_list_grey_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_view_list_grey_24px.svg rename to docs/mitre/assets/icons/ic_view_list_grey_24px.svg diff --git a/site/mitre/assets/icons/ic_view_medium_black_24px.svg b/docs/mitre/assets/icons/ic_view_medium_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_view_medium_black_24px.svg rename to docs/mitre/assets/icons/ic_view_medium_black_24px.svg diff --git a/site/mitre/assets/icons/ic_view_small_black_24px.svg b/docs/mitre/assets/icons/ic_view_small_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_view_small_black_24px.svg rename to docs/mitre/assets/icons/ic_view_small_black_24px.svg diff --git a/site/mitre/assets/icons/ic_visibility_black_24px.svg b/docs/mitre/assets/icons/ic_visibility_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_visibility_black_24px.svg rename to docs/mitre/assets/icons/ic_visibility_black_24px.svg diff --git a/site/mitre/assets/icons/ic_visibility_gray_24px.svg b/docs/mitre/assets/icons/ic_visibility_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_visibility_gray_24px.svg rename to docs/mitre/assets/icons/ic_visibility_gray_24px.svg diff --git a/site/mitre/assets/icons/ic_visibility_off_black_24px.svg b/docs/mitre/assets/icons/ic_visibility_off_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/ic_visibility_off_black_24px.svg rename to docs/mitre/assets/icons/ic_visibility_off_black_24px.svg diff --git a/site/mitre/assets/icons/table_view_FILL0_wght400_GRAD0_opsz24.svg b/docs/mitre/assets/icons/table_view_FILL0_wght400_GRAD0_opsz24.svg similarity index 100% rename from site/mitre/assets/icons/table_view_FILL0_wght400_GRAD0_opsz24.svg rename to docs/mitre/assets/icons/table_view_FILL0_wght400_GRAD0_opsz24.svg diff --git a/site/mitre/assets/icons/unfold_less_black_24px.svg b/docs/mitre/assets/icons/unfold_less_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/unfold_less_black_24px.svg rename to docs/mitre/assets/icons/unfold_less_black_24px.svg diff --git a/site/mitre/assets/icons/unfold_less_gray_24px.svg b/docs/mitre/assets/icons/unfold_less_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/unfold_less_gray_24px.svg rename to docs/mitre/assets/icons/unfold_less_gray_24px.svg diff --git a/site/mitre/assets/icons/unfold_more_alt_black_24px.svg b/docs/mitre/assets/icons/unfold_more_alt_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/unfold_more_alt_black_24px.svg rename to docs/mitre/assets/icons/unfold_more_alt_black_24px.svg diff --git a/site/mitre/assets/icons/unfold_more_alt_gray_24px.svg b/docs/mitre/assets/icons/unfold_more_alt_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/unfold_more_alt_gray_24px.svg rename to docs/mitre/assets/icons/unfold_more_alt_gray_24px.svg diff --git a/site/mitre/assets/icons/unfold_more_black_24px.svg b/docs/mitre/assets/icons/unfold_more_black_24px.svg similarity index 100% rename from site/mitre/assets/icons/unfold_more_black_24px.svg rename to docs/mitre/assets/icons/unfold_more_black_24px.svg diff --git a/site/mitre/assets/icons/unfold_more_gray_24px.svg b/docs/mitre/assets/icons/unfold_more_gray_24px.svg similarity index 100% rename from site/mitre/assets/icons/unfold_more_gray_24px.svg rename to docs/mitre/assets/icons/unfold_more_gray_24px.svg diff --git a/site/mitre/assets/image_scoreVariableExample.png b/docs/mitre/assets/image_scoreVariableExample.png similarity index 100% rename from site/mitre/assets/image_scoreVariableExample.png rename to docs/mitre/assets/image_scoreVariableExample.png diff --git a/site/mitre/favicon.ico b/docs/mitre/favicon.ico similarity index 100% rename from site/mitre/favicon.ico rename to docs/mitre/favicon.ico diff --git a/docs/mitre/index.html b/docs/mitre/index.html new file mode 100644 index 0000000..69f8cf5 --- /dev/null +++ b/docs/mitre/index.html @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/site/mitre/layers/README.md b/docs/mitre/layers/README.md similarity index 100% rename from site/mitre/layers/README.md rename to docs/mitre/layers/README.md diff --git a/site/mitre/layers/samples/ATTACKcon 2018/Black_Pins.json b/docs/mitre/layers/samples/ATTACKcon 2018/Black_Pins.json similarity index 100% rename from site/mitre/layers/samples/ATTACKcon 2018/Black_Pins.json rename to docs/mitre/layers/samples/ATTACKcon 2018/Black_Pins.json diff --git a/site/mitre/layers/samples/ATTACKcon 2018/Blue_Pins.json b/docs/mitre/layers/samples/ATTACKcon 2018/Blue_Pins.json similarity index 100% rename from site/mitre/layers/samples/ATTACKcon 2018/Blue_Pins.json rename to docs/mitre/layers/samples/ATTACKcon 2018/Blue_Pins.json diff --git a/site/mitre/layers/samples/ATTACKcon 2018/Gold_Pins.json b/docs/mitre/layers/samples/ATTACKcon 2018/Gold_Pins.json similarity index 100% rename from site/mitre/layers/samples/ATTACKcon 2018/Gold_Pins.json rename to docs/mitre/layers/samples/ATTACKcon 2018/Gold_Pins.json diff --git a/site/mitre/layers/samples/ATTACKcon 2018/Red_Pins.json b/docs/mitre/layers/samples/ATTACKcon 2018/Red_Pins.json similarity index 100% rename from site/mitre/layers/samples/ATTACKcon 2018/Red_Pins.json rename to docs/mitre/layers/samples/ATTACKcon 2018/Red_Pins.json diff --git a/site/mitre/layers/samples/ATTACKcon 2018/Submitter_Responses.json b/docs/mitre/layers/samples/ATTACKcon 2018/Submitter_Responses.json similarity index 100% rename from site/mitre/layers/samples/ATTACKcon 2018/Submitter_Responses.json rename to docs/mitre/layers/samples/ATTACKcon 2018/Submitter_Responses.json diff --git a/site/mitre/layers/samples/Bear_APT.json b/docs/mitre/layers/samples/Bear_APT.json similarity index 100% rename from site/mitre/layers/samples/Bear_APT.json rename to docs/mitre/layers/samples/Bear_APT.json diff --git a/site/mitre/layers/samples/heatmap_layer.json b/docs/mitre/layers/samples/heatmap_layer.json similarity index 100% rename from site/mitre/layers/samples/heatmap_layer.json rename to docs/mitre/layers/samples/heatmap_layer.json diff --git a/site/mitre/layers/spec/v1.0/layerformat.md b/docs/mitre/layers/spec/v1.0/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v1.0/layerformat.md rename to docs/mitre/layers/spec/v1.0/layerformat.md diff --git a/site/mitre/layers/spec/v1.1/layerformat.md b/docs/mitre/layers/spec/v1.1/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v1.1/layerformat.md rename to docs/mitre/layers/spec/v1.1/layerformat.md diff --git a/site/mitre/layers/spec/v1.2/layerformat.md b/docs/mitre/layers/spec/v1.2/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v1.2/layerformat.md rename to docs/mitre/layers/spec/v1.2/layerformat.md diff --git a/site/mitre/layers/spec/v1.3/layerformat.md b/docs/mitre/layers/spec/v1.3/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v1.3/layerformat.md rename to docs/mitre/layers/spec/v1.3/layerformat.md diff --git a/site/mitre/layers/spec/v2.0/layerformat.md b/docs/mitre/layers/spec/v2.0/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v2.0/layerformat.md rename to docs/mitre/layers/spec/v2.0/layerformat.md diff --git a/site/mitre/layers/spec/v2.1/layerformat.md b/docs/mitre/layers/spec/v2.1/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v2.1/layerformat.md rename to docs/mitre/layers/spec/v2.1/layerformat.md diff --git a/site/mitre/layers/spec/v2.2/layerformat.md b/docs/mitre/layers/spec/v2.2/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v2.2/layerformat.md rename to docs/mitre/layers/spec/v2.2/layerformat.md diff --git a/site/mitre/layers/spec/v3.0/layerformat.md b/docs/mitre/layers/spec/v3.0/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v3.0/layerformat.md rename to docs/mitre/layers/spec/v3.0/layerformat.md diff --git a/site/mitre/layers/spec/v4.0/layerformat.md b/docs/mitre/layers/spec/v4.0/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v4.0/layerformat.md rename to docs/mitre/layers/spec/v4.0/layerformat.md diff --git a/site/mitre/layers/spec/v4.1/layerformat.md b/docs/mitre/layers/spec/v4.1/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v4.1/layerformat.md rename to docs/mitre/layers/spec/v4.1/layerformat.md diff --git a/site/mitre/layers/spec/v4.2/layerformat.md b/docs/mitre/layers/spec/v4.2/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v4.2/layerformat.md rename to docs/mitre/layers/spec/v4.2/layerformat.md diff --git a/site/mitre/layers/spec/v4.3/layerformat.md b/docs/mitre/layers/spec/v4.3/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v4.3/layerformat.md rename to docs/mitre/layers/spec/v4.3/layerformat.md diff --git a/site/mitre/layers/spec/v4.4/layerformat.md b/docs/mitre/layers/spec/v4.4/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v4.4/layerformat.md rename to docs/mitre/layers/spec/v4.4/layerformat.md diff --git a/site/mitre/layers/spec/v4.5/layerformat.md b/docs/mitre/layers/spec/v4.5/layerformat.md similarity index 100% rename from site/mitre/layers/spec/v4.5/layerformat.md rename to docs/mitre/layers/spec/v4.5/layerformat.md diff --git a/site/mitre/main.js b/docs/mitre/main.js similarity index 92% rename from site/mitre/main.js rename to docs/mitre/main.js index 85c2786..2cc8f61 100644 --- a/site/mitre/main.js +++ b/docs/mitre/main.js @@ -5846,7 +5846,7 @@ class DataTableComponent { } }, dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_14__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_14__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_14__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_14__.NgSwitch, _angular_common__WEBPACK_IMPORTED_MODULE_14__.NgSwitchCase, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_15__.MatFormField, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_15__.MatLabel, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_15__.MatHint, _angular_material_form_field__WEBPACK_IMPORTED_MODULE_15__.MatSuffix, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.DefaultValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.NumberValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.CheckboxControlValueAccessor, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.NgControlStatus, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.MinValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.MaxValidator, _angular_forms__WEBPACK_IMPORTED_MODULE_16__.NgModel, _angular_material_input__WEBPACK_IMPORTED_MODULE_17__.MatInput, _angular_material_button__WEBPACK_IMPORTED_MODULE_18__.MatIconButton, _angular_material_icon__WEBPACK_IMPORTED_MODULE_19__.MatIcon, _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_20__.MatProgressSpinner, _angular_material_tooltip__WEBPACK_IMPORTED_MODULE_21__.MatTooltip, ngx_color_picker__WEBPACK_IMPORTED_MODULE_22__.ColorPickerDirective, _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_23__.MatDrawer, _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_23__.MatDrawerContainer, _angular_material_sidenav__WEBPACK_IMPORTED_MODULE_23__.MatDrawerContent, _matrix_matrix_side_matrix_side_component__WEBPACK_IMPORTED_MODULE_7__.MatrixSideComponent, _matrix_matrix_flat_matrix_flat_component__WEBPACK_IMPORTED_MODULE_8__.MatrixFlatComponent, _matrix_matrix_mini_matrix_mini_component__WEBPACK_IMPORTED_MODULE_9__.MatrixMiniComponent, _sidebar_sidebar_component__WEBPACK_IMPORTED_MODULE_10__.SidebarComponent, _list_input_list_input_component__WEBPACK_IMPORTED_MODULE_11__.ListInputComponent, _angular_common__WEBPACK_IMPORTED_MODULE_14__.TitleCasePipe], - styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, 0.1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}html{--mat-ripple-color:rgba(0, 0, 0, 0.1)}html{--mat-option-selected-state-label-text-color:#3f51b5;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-accent{--mat-option-selected-state-label-text-color:#ff4081;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-warn{--mat-option-selected-state-label-text-color:#f44336;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}html{--mat-optgroup-label-text-color:rgba(0, 0, 0, 0.87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color:#3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color:#f44336;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-app-background-color:#fafafa;--mat-app-text-color:rgba(0, 0, 0, 0.87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}.mat-theme-loaded-marker{display:none}html{--mat-option-label-text-font:Roboto, sans-serif;--mat-option-label-text-line-height:24px;--mat-option-label-text-size:16px;--mat-option-label-text-tracking:0.03125em;--mat-option-label-text-weight:400}html{--mat-optgroup-label-text-font:Roboto, sans-serif;--mat-optgroup-label-text-line-height:24px;--mat-optgroup-label-text-size:16px;--mat-optgroup-label-text-tracking:0.03125em;--mat-optgroup-label-text-weight:400}html{--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}html{--mdc-elevated-card-container-color:white;--mdc-elevated-card-container-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-color:white;--mdc-outlined-card-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-elevation:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-card-subtitle-text-color:rgba(0, 0, 0, 0.54)}html{--mat-card-title-text-font:Roboto, sans-serif;--mat-card-title-text-line-height:32px;--mat-card-title-text-size:20px;--mat-card-title-text-tracking:0.0125em;--mat-card-title-text-weight:500;--mat-card-subtitle-text-font:Roboto, sans-serif;--mat-card-subtitle-text-line-height:22px;--mat-card-subtitle-text-size:14px;--mat-card-subtitle-text-tracking:0.0071428571em;--mat-card-subtitle-text-weight:500}html{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color:#3f51b5;--mdc-linear-progress-track-color:rgba(63, 81, 181, 0.25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color:#ff4081;--mdc-linear-progress-track-color:rgba(255, 64, 129, 0.25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color:#f44336;--mdc-linear-progress-track-color:rgba(244, 67, 54, 0.25)}html{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}html{--mdc-plain-tooltip-container-color:#616161;--mdc-plain-tooltip-supporting-text-color:#fff}html{--mdc-plain-tooltip-supporting-text-font:Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size:12px;--mdc-plain-tooltip-supporting-text-weight:400;--mdc-plain-tooltip-supporting-text-tracking:0.0333333333em}html{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}html{--mdc-filled-text-field-caret-color:#3f51b5;--mdc-filled-text-field-focus-active-indicator-color:#3f51b5;--mdc-filled-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-filled-text-field-container-color:whitesmoke;--mdc-filled-text-field-disabled-container-color:#fafafa;--mdc-filled-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-error-hover-label-text-color:#f44336;--mdc-filled-text-field-error-focus-label-text-color:#f44336;--mdc-filled-text-field-error-label-text-color:#f44336;--mdc-filled-text-field-error-caret-color:#f44336;--mdc-filled-text-field-active-indicator-color:rgba(0, 0, 0, 0.42);--mdc-filled-text-field-disabled-active-indicator-color:rgba(0, 0, 0, 0.06);--mdc-filled-text-field-hover-active-indicator-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-error-active-indicator-color:#f44336;--mdc-filled-text-field-error-focus-active-indicator-color:#f44336;--mdc-filled-text-field-error-hover-active-indicator-color:#f44336;--mdc-outlined-text-field-caret-color:#3f51b5;--mdc-outlined-text-field-focus-outline-color:#3f51b5;--mdc-outlined-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-outlined-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-error-caret-color:#f44336;--mdc-outlined-text-field-error-focus-label-text-color:#f44336;--mdc-outlined-text-field-error-label-text-color:#f44336;--mdc-outlined-text-field-error-hover-label-text-color:#f44336;--mdc-outlined-text-field-outline-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-disabled-outline-color:rgba(0, 0, 0, 0.06);--mdc-outlined-text-field-hover-outline-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-error-focus-outline-color:#f44336;--mdc-outlined-text-field-error-hover-outline-color:#f44336;--mdc-outlined-text-field-error-outline-color:#f44336;--mat-form-field-focus-select-arrow-color:rgba(63, 81, 181, 0.87);--mat-form-field-disabled-input-text-placeholder-color:rgba(0, 0, 0, 0.38);--mat-form-field-state-layer-color:rgba(0, 0, 0, 0.87);--mat-form-field-error-text-color:#f44336;--mat-form-field-select-option-text-color:inherit;--mat-form-field-select-disabled-option-text-color:GrayText;--mat-form-field-leading-icon-color:unset;--mat-form-field-disabled-leading-icon-color:unset;--mat-form-field-trailing-icon-color:unset;--mat-form-field-disabled-trailing-icon-color:unset;--mat-form-field-error-focus-trailing-icon-color:unset;--mat-form-field-error-hover-trailing-icon-color:unset;--mat-form-field-error-trailing-icon-color:unset;--mat-form-field-enabled-select-arrow-color:rgba(0, 0, 0, 0.54);--mat-form-field-disabled-select-arrow-color:rgba(0, 0, 0, 0.38);--mat-form-field-hover-state-layer-opacity:0.04;--mat-form-field-focus-state-layer-opacity:0.08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color:#ff4081;--mdc-filled-text-field-focus-active-indicator-color:#ff4081;--mdc-filled-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mdc-outlined-text-field-caret-color:#ff4081;--mdc-outlined-text-field-focus-outline-color:#ff4081;--mdc-outlined-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mat-form-field-focus-select-arrow-color:rgba(255, 64, 129, 0.87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color:#f44336;--mdc-filled-text-field-focus-active-indicator-color:#f44336;--mdc-filled-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mdc-outlined-text-field-caret-color:#f44336;--mdc-outlined-text-field-focus-outline-color:#f44336;--mdc-outlined-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mat-form-field-focus-select-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-form-field-container-height:56px;--mat-form-field-filled-label-display:block;--mat-form-field-container-vertical-padding:16px;--mat-form-field-filled-with-label-container-padding-top:24px;--mat-form-field-filled-with-label-container-padding-bottom:8px}html{--mdc-filled-text-field-label-text-font:Roboto, sans-serif;--mdc-filled-text-field-label-text-size:16px;--mdc-filled-text-field-label-text-tracking:0.03125em;--mdc-filled-text-field-label-text-weight:400;--mdc-outlined-text-field-label-text-font:Roboto, sans-serif;--mdc-outlined-text-field-label-text-size:16px;--mdc-outlined-text-field-label-text-tracking:0.03125em;--mdc-outlined-text-field-label-text-weight:400;--mat-form-field-container-text-font:Roboto, sans-serif;--mat-form-field-container-text-line-height:24px;--mat-form-field-container-text-size:16px;--mat-form-field-container-text-tracking:0.03125em;--mat-form-field-container-text-weight:400;--mat-form-field-outlined-label-text-populated-size:16px;--mat-form-field-subscript-text-font:Roboto, sans-serif;--mat-form-field-subscript-text-line-height:20px;--mat-form-field-subscript-text-size:12px;--mat-form-field-subscript-text-tracking:0.0333333333em;--mat-form-field-subscript-text-weight:400}html{--mat-select-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(63, 81, 181, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(255, 64, 129, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(244, 67, 54, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-select-arrow-transform:translateY(-8px)}html{--mat-select-trigger-text-font:Roboto, sans-serif;--mat-select-trigger-text-line-height:24px;--mat-select-trigger-text-size:16px;--mat-select-trigger-text-tracking:0.03125em;--mat-select-trigger-text-weight:400}html{--mat-autocomplete-container-shape:4px;--mat-autocomplete-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-autocomplete-background-color:white}html{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mat-dialog-container-max-width:80vw;--mat-dialog-container-small-max-width:80vw;--mat-dialog-container-min-width:0;--mat-dialog-actions-alignment:start;--mat-dialog-actions-padding:8px;--mat-dialog-content-padding:20px 24px;--mat-dialog-with-actions-content-padding:20px 24px;--mat-dialog-headline-padding:0 24px 9px}html{--mdc-dialog-container-color:white;--mdc-dialog-subhead-color:rgba(0, 0, 0, 0.87);--mdc-dialog-supporting-text-color:rgba(0, 0, 0, 0.6)}html{--mdc-dialog-subhead-font:Roboto, sans-serif;--mdc-dialog-subhead-line-height:32px;--mdc-dialog-subhead-size:20px;--mdc-dialog-subhead-weight:500;--mdc-dialog-subhead-tracking:0.0125em;--mdc-dialog-supporting-text-font:Roboto, sans-serif;--mdc-dialog-supporting-text-line-height:24px;--mdc-dialog-supporting-text-size:16px;--mdc-dialog-supporting-text-weight:400;--mdc-dialog-supporting-text-tracking:0.03125em}.mat-mdc-standard-chip{--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px;--mdc-chip-outline-width:0;--mdc-chip-outline-color:transparent;--mdc-chip-disabled-outline-color:transparent;--mdc-chip-focus-outline-color:transparent;--mdc-chip-hover-state-layer-opacity:0.04;--mdc-chip-with-avatar-disabled-avatar-opacity:1;--mdc-chip-flat-selected-outline-width:0;--mdc-chip-selected-hover-state-layer-opacity:0.04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:1;--mdc-chip-with-icon-disabled-icon-opacity:1;--mat-chip-disabled-container-opacity:0.4;--mat-chip-trailing-action-opacity:0.54;--mat-chip-trailing-action-focus-opacity:1;--mat-chip-trailing-action-state-layer-color:transparent;--mat-chip-selected-trailing-action-state-layer-color:transparent;--mat-chip-trailing-action-hover-state-layer-opacity:0;--mat-chip-trailing-action-focus-state-layer-opacity:0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color:#212121;--mdc-chip-elevated-container-color:#e0e0e0;--mdc-chip-elevated-selected-container-color:#e0e0e0;--mdc-chip-elevated-disabled-container-color:#e0e0e0;--mdc-chip-flat-disabled-selected-container-color:#e0e0e0;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:#212121;--mdc-chip-selected-label-text-color:#212121;--mdc-chip-with-icon-icon-color:#212121;--mdc-chip-with-icon-disabled-icon-color:#212121;--mdc-chip-with-icon-selected-icon-color:#212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:#212121;--mdc-chip-with-trailing-icon-trailing-icon-color:#212121;--mat-chip-selected-disabled-trailing-icon-color:#212121;--mat-chip-selected-trailing-icon-color:#212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#3f51b5;--mdc-chip-elevated-selected-container-color:#3f51b5;--mdc-chip-elevated-disabled-container-color:#3f51b5;--mdc-chip-flat-disabled-selected-container-color:#3f51b5;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#ff4081;--mdc-chip-elevated-selected-container-color:#ff4081;--mdc-chip-elevated-disabled-container-color:#ff4081;--mdc-chip-flat-disabled-selected-container-color:#ff4081;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#f44336;--mdc-chip-elevated-selected-container-color:#f44336;--mdc-chip-elevated-disabled-container-color:#f44336;--mdc-chip-flat-disabled-selected-container-color:#f44336;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height:32px}.mat-mdc-standard-chip{--mdc-chip-label-text-font:Roboto, sans-serif;--mdc-chip-label-text-line-height:20px;--mdc-chip-label-text-size:14px;--mdc-chip-label-text-tracking:0.0178571429em;--mdc-chip-label-text-weight:400}html{--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1;--mat-switch-disabled-selected-handle-opacity:0.38;--mat-switch-disabled-unselected-handle-opacity:0.38;--mat-switch-unselected-handle-size:20px;--mat-switch-selected-handle-size:20px;--mat-switch-pressed-handle-size:20px;--mat-switch-with-icon-handle-size:20px;--mat-switch-selected-handle-horizontal-margin:0;--mat-switch-selected-with-icon-handle-horizontal-margin:0;--mat-switch-selected-pressed-handle-horizontal-margin:0;--mat-switch-unselected-handle-horizontal-margin:0;--mat-switch-unselected-with-icon-handle-horizontal-margin:0;--mat-switch-unselected-pressed-handle-horizontal-margin:0;--mat-switch-visible-track-opacity:1;--mat-switch-hidden-track-opacity:1;--mat-switch-visible-track-transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);--mat-switch-hidden-track-transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);--mat-switch-track-outline-width:1px;--mat-switch-track-outline-color:transparent;--mat-switch-selected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-color:transparent}html{--mdc-switch-selected-focus-state-layer-color:#3949ab;--mdc-switch-selected-handle-color:#3949ab;--mdc-switch-selected-hover-state-layer-color:#3949ab;--mdc-switch-selected-pressed-state-layer-color:#3949ab;--mdc-switch-selected-focus-handle-color:#1a237e;--mdc-switch-selected-hover-handle-color:#1a237e;--mdc-switch-selected-pressed-handle-color:#1a237e;--mdc-switch-selected-focus-track-color:#7986cb;--mdc-switch-selected-hover-track-color:#7986cb;--mdc-switch-selected-pressed-track-color:#7986cb;--mdc-switch-selected-track-color:#7986cb;--mdc-switch-disabled-selected-handle-color:#424242;--mdc-switch-disabled-selected-icon-color:#fff;--mdc-switch-disabled-selected-track-color:#424242;--mdc-switch-disabled-unselected-handle-color:#424242;--mdc-switch-disabled-unselected-icon-color:#fff;--mdc-switch-disabled-unselected-track-color:#424242;--mdc-switch-handle-surface-color:var(--mdc-theme-surface, #fff);--mdc-switch-handle-elevation-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-switch-handle-shadow-color:black;--mdc-switch-disabled-handle-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-switch-selected-icon-color:#fff;--mdc-switch-unselected-focus-handle-color:#212121;--mdc-switch-unselected-focus-state-layer-color:#424242;--mdc-switch-unselected-focus-track-color:#e0e0e0;--mdc-switch-unselected-handle-color:#616161;--mdc-switch-unselected-hover-handle-color:#212121;--mdc-switch-unselected-hover-state-layer-color:#424242;--mdc-switch-unselected-hover-track-color:#e0e0e0;--mdc-switch-unselected-icon-color:#fff;--mdc-switch-unselected-pressed-handle-color:#212121;--mdc-switch-unselected-pressed-state-layer-color:#424242;--mdc-switch-unselected-pressed-track-color:#e0e0e0;--mdc-switch-unselected-track-color:#e0e0e0;--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, 0.38)}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color:#d81b60;--mdc-switch-selected-handle-color:#d81b60;--mdc-switch-selected-hover-state-layer-color:#d81b60;--mdc-switch-selected-pressed-state-layer-color:#d81b60;--mdc-switch-selected-focus-handle-color:#880e4f;--mdc-switch-selected-hover-handle-color:#880e4f;--mdc-switch-selected-pressed-handle-color:#880e4f;--mdc-switch-selected-focus-track-color:#f06292;--mdc-switch-selected-hover-track-color:#f06292;--mdc-switch-selected-pressed-track-color:#f06292;--mdc-switch-selected-track-color:#f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color:#e53935;--mdc-switch-selected-handle-color:#e53935;--mdc-switch-selected-hover-state-layer-color:#e53935;--mdc-switch-selected-pressed-state-layer-color:#e53935;--mdc-switch-selected-focus-handle-color:#b71c1c;--mdc-switch-selected-hover-handle-color:#b71c1c;--mdc-switch-selected-pressed-handle-color:#b71c1c;--mdc-switch-selected-focus-track-color:#e57373;--mdc-switch-selected-hover-track-color:#e57373;--mdc-switch-selected-pressed-track-color:#e57373;--mdc-switch-selected-track-color:#e57373}html{--mdc-switch-state-layer-size:40px}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px}.mat-mdc-radio-button{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#3f51b5;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#ff4081;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#f44336;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}html{--mdc-radio-state-layer-size:40px;--mat-radio-touch-target-display:block}.mat-mdc-radio-button{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mat-slider-value-indicator-width:auto;--mat-slider-value-indicator-height:32px;--mat-slider-value-indicator-caret-display:block;--mat-slider-value-indicator-border-radius:4px;--mat-slider-value-indicator-padding:0 12px;--mat-slider-value-indicator-text-transform:none;--mat-slider-value-indicator-container-transform:translateX(-50%);--mdc-slider-active-track-height:6px;--mdc-slider-active-track-shape:9999px;--mdc-slider-handle-height:20px;--mdc-slider-handle-shape:50%;--mdc-slider-handle-width:20px;--mdc-slider-inactive-track-height:4px;--mdc-slider-inactive-track-shape:9999px;--mdc-slider-with-overlap-handle-outline-width:1px;--mdc-slider-with-tick-marks-active-container-opacity:0.6;--mdc-slider-with-tick-marks-container-shape:50%;--mdc-slider-with-tick-marks-container-size:2px;--mdc-slider-with-tick-marks-inactive-container-opacity:0.6}html{--mdc-slider-handle-color:#3f51b5;--mdc-slider-focus-handle-color:#3f51b5;--mdc-slider-hover-handle-color:#3f51b5;--mdc-slider-active-track-color:#3f51b5;--mdc-slider-inactive-track-color:#3f51b5;--mdc-slider-with-tick-marks-inactive-container-color:#3f51b5;--mdc-slider-with-tick-marks-active-container-color:white;--mdc-slider-disabled-active-track-color:#000;--mdc-slider-disabled-handle-color:#000;--mdc-slider-disabled-inactive-track-color:#000;--mdc-slider-label-container-color:#000;--mdc-slider-label-label-text-color:#fff;--mdc-slider-with-overlap-handle-outline-color:#fff;--mdc-slider-with-tick-marks-disabled-container-color:#000;--mdc-slider-handle-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-slider-ripple-color:#3f51b5;--mat-slider-hover-state-layer-color:rgba(63, 81, 181, 0.05);--mat-slider-focus-state-layer-color:rgba(63, 81, 181, 0.2);--mat-slider-value-indicator-opacity:0.6}html .mat-accent{--mat-slider-ripple-color:#ff4081;--mat-slider-hover-state-layer-color:rgba(255, 64, 129, 0.05);--mat-slider-focus-state-layer-color:rgba(255, 64, 129, 0.2);--mdc-slider-handle-color:#ff4081;--mdc-slider-focus-handle-color:#ff4081;--mdc-slider-hover-handle-color:#ff4081;--mdc-slider-active-track-color:#ff4081;--mdc-slider-inactive-track-color:#ff4081;--mdc-slider-with-tick-marks-inactive-container-color:#ff4081;--mdc-slider-with-tick-marks-active-container-color:white}html .mat-warn{--mat-slider-ripple-color:#f44336;--mat-slider-hover-state-layer-color:rgba(244, 67, 54, 0.05);--mat-slider-focus-state-layer-color:rgba(244, 67, 54, 0.2);--mdc-slider-handle-color:#f44336;--mdc-slider-focus-handle-color:#f44336;--mdc-slider-hover-handle-color:#f44336;--mdc-slider-active-track-color:#f44336;--mdc-slider-inactive-track-color:#f44336;--mdc-slider-with-tick-marks-inactive-container-color:#f44336;--mdc-slider-with-tick-marks-active-container-color:white}html{--mdc-slider-label-label-text-font:Roboto, sans-serif;--mdc-slider-label-label-text-size:14px;--mdc-slider-label-label-text-line-height:22px;--mdc-slider-label-label-text-tracking:0.0071428571em;--mdc-slider-label-label-text-weight:500}html{--mat-menu-container-shape:4px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px}html{--mat-menu-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-menu-item-icon-color:rgba(0, 0, 0, 0.87);--mat-menu-item-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-item-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-container-color:white;--mat-menu-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-menu-item-label-text-font:Roboto, sans-serif;--mat-menu-item-label-text-size:16px;--mat-menu-item-label-text-tracking:0.03125em;--mat-menu-item-label-text-line-height:24px;--mat-menu-item-label-text-weight:400}html{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38;--mat-list-active-indicator-color:transparent;--mat-list-active-indicator-shape:4px}html{--mdc-list-list-item-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-supporting-text-color:rgba(0, 0, 0, 0.54);--mdc-list-list-item-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-supporting-text-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-selected-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-disabled-label-text-color:black;--mdc-list-list-item-disabled-leading-icon-color:black;--mdc-list-list-item-disabled-trailing-icon-color:black;--mdc-list-list-item-hover-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-hover-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-focus-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-state-layer-color:black;--mdc-list-list-item-hover-state-layer-opacity:0.04;--mdc-list-list-item-focus-state-layer-color:black;--mdc-list-list-item-focus-state-layer-opacity:0.12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text{color:#3f51b5}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected.mdc-list-item--with-leading-icon .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height:48px;--mdc-list-list-item-two-line-container-height:64px;--mdc-list-list-item-three-line-container-height:88px;--mat-list-list-item-leading-icon-start-space:16px;--mat-list-list-item-leading-icon-end-space:32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size:40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mdc-list-list-item-label-text-font:Roboto, sans-serif;--mdc-list-list-item-label-text-line-height:24px;--mdc-list-list-item-label-text-size:16px;--mdc-list-list-item-label-text-tracking:0.03125em;--mdc-list-list-item-label-text-weight:400;--mdc-list-list-item-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height:20px;--mdc-list-list-item-supporting-text-size:14px;--mdc-list-list-item-supporting-text-tracking:0.0178571429em;--mdc-list-list-item-supporting-text-weight:400;--mdc-list-list-item-trailing-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height:20px;--mdc-list-list-item-trailing-supporting-text-size:12px;--mdc-list-list-item-trailing-supporting-text-tracking:0.0333333333em;--mdc-list-list-item-trailing-supporting-text-weight:400}.mdc-list-group__subheader{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-color:rgba(0, 0, 0, 0.87);--mat-paginator-container-background-color:white;--mat-paginator-enabled-icon-color:rgba(0, 0, 0, 0.54);--mat-paginator-disabled-icon-color:rgba(0, 0, 0, 0.12)}html{--mat-paginator-container-size:56px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px}html{--mat-paginator-container-text-font:Roboto, sans-serif;--mat-paginator-container-text-line-height:20px;--mat-paginator-container-text-size:12px;--mat-paginator-container-text-tracking:0.0333333333em;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:12px}html{--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px;--mat-tab-header-divider-color:transparent;--mat-tab-header-divider-height:0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color:#3f51b5;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#3f51b5;--mat-tab-header-active-ripple-color:#3f51b5;--mat-tab-header-inactive-ripple-color:#3f51b5;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#3f51b5;--mat-tab-header-active-hover-label-text-color:#3f51b5;--mat-tab-header-active-focus-indicator-color:#3f51b5;--mat-tab-header-active-hover-indicator-color:#3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color:#ff4081;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#ff4081;--mat-tab-header-active-ripple-color:#ff4081;--mat-tab-header-inactive-ripple-color:#ff4081;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#ff4081;--mat-tab-header-active-hover-label-text-color:#ff4081;--mat-tab-header-active-focus-indicator-color:#ff4081;--mat-tab-header-active-hover-indicator-color:#ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color:#f44336;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#f44336;--mat-tab-header-active-ripple-color:#f44336;--mat-tab-header-inactive-ripple-color:#f44336;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#f44336;--mat-tab-header-active-hover-label-text-color:#f44336;--mat-tab-header-active-focus-indicator-color:#f44336;--mat-tab-header-active-hover-indicator-color:#f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color:#3f51b5;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color:#ff4081;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color:#f44336;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header{--mat-tab-header-label-text-font:Roboto, sans-serif;--mat-tab-header-label-text-size:14px;--mat-tab-header-label-text-tracking:0.0892857143em;--mat-tab-header-label-text-line-height:36px;--mat-tab-header-label-text-weight:500}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}html{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black;--mat-checkbox-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-checkbox{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}html{--mdc-checkbox-state-layer-size:40px;--mat-checkbox-touch-target-display:block}.mat-mdc-checkbox{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-text-button-container-shape:4px;--mdc-text-button-keep-touch-target:false;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mdc-protected-button-container-shape:4px;--mdc-protected-button-keep-touch-target:false;--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-outlined-button-container-shape:4px;--mat-text-button-horizontal-padding:8px;--mat-text-button-with-icon-horizontal-padding:8px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-protected-button-horizontal-padding:16px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:15px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px}html{--mdc-text-button-label-text-color:black;--mdc-text-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-text-button-state-layer-color:black;--mat-text-button-disabled-state-layer-color:black;--mat-text-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-text-button-hover-state-layer-opacity:0.04;--mat-text-button-focus-state-layer-opacity:0.12;--mat-text-button-pressed-state-layer-opacity:0.12;--mdc-filled-button-container-color:white;--mdc-filled-button-label-text-color:black;--mdc-filled-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-filled-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-filled-button-state-layer-color:black;--mat-filled-button-disabled-state-layer-color:black;--mat-filled-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-filled-button-hover-state-layer-opacity:0.04;--mat-filled-button-focus-state-layer-opacity:0.12;--mat-filled-button-pressed-state-layer-opacity:0.12;--mdc-protected-button-container-color:white;--mdc-protected-button-label-text-color:black;--mdc-protected-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-protected-button-container-elevation-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-container-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-focus-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-hover-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-pressed-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-protected-button-container-shadow-color:#000;--mat-protected-button-state-layer-color:black;--mat-protected-button-disabled-state-layer-color:black;--mat-protected-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-protected-button-hover-state-layer-opacity:0.04;--mat-protected-button-focus-state-layer-opacity:0.12;--mat-protected-button-pressed-state-layer-opacity:0.12;--mdc-outlined-button-disabled-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-button-label-text-color:black;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:black;--mat-outlined-button-disabled-state-layer-color:black;--mat-outlined-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-outlined-button-hover-state-layer-opacity:0.04;--mat-outlined-button-focus-state-layer-opacity:0.12;--mat-outlined-button-pressed-state-layer-opacity:0.12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color:#3f51b5;--mat-text-button-state-layer-color:#3f51b5;--mat-text-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color:#ff4081;--mat-text-button-state-layer-color:#ff4081;--mat-text-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color:#f44336;--mat-text-button-state-layer-color:#f44336;--mat-text-button-ripple-color:rgba(244, 67, 54, 0.1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color:#3f51b5;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color:#ff4081;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color:#f44336;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color:#3f51b5;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color:#ff4081;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color:#f44336;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color:#3f51b5;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#3f51b5;--mat-outlined-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color:#ff4081;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#ff4081;--mat-outlined-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color:#f44336;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#f44336;--mat-outlined-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mdc-text-button-container-height:36px;--mdc-filled-button-container-height:36px;--mdc-outlined-button-container-height:36px;--mdc-protected-button-container-height:36px;--mat-text-button-touch-target-display:block;--mat-filled-button-touch-target-display:block;--mat-protected-button-touch-target-display:block;--mat-outlined-button-touch-target-display:block}html{--mdc-text-button-label-text-font:Roboto, sans-serif;--mdc-text-button-label-text-size:14px;--mdc-text-button-label-text-tracking:0.0892857143em;--mdc-text-button-label-text-weight:500;--mdc-text-button-label-text-transform:none;--mdc-filled-button-label-text-font:Roboto, sans-serif;--mdc-filled-button-label-text-size:14px;--mdc-filled-button-label-text-tracking:0.0892857143em;--mdc-filled-button-label-text-weight:500;--mdc-filled-button-label-text-transform:none;--mdc-outlined-button-label-text-font:Roboto, sans-serif;--mdc-outlined-button-label-text-size:14px;--mdc-outlined-button-label-text-tracking:0.0892857143em;--mdc-outlined-button-label-text-weight:500;--mdc-outlined-button-label-text-transform:none;--mdc-protected-button-label-text-font:Roboto, sans-serif;--mdc-protected-button-label-text-size:14px;--mdc-protected-button-label-text-tracking:0.0892857143em;--mdc-protected-button-label-text-weight:500;--mdc-protected-button-label-text-transform:none}html{--mdc-icon-button-icon-size:24px}html{--mdc-icon-button-icon-color:inherit;--mdc-icon-button-disabled-icon-color:rgba(0, 0, 0, 0.38);--mat-icon-button-state-layer-color:black;--mat-icon-button-disabled-state-layer-color:black;--mat-icon-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-icon-button-hover-state-layer-opacity:0.04;--mat-icon-button-focus-state-layer-opacity:0.12;--mat-icon-button-pressed-state-layer-opacity:0.12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color:#3f51b5;--mat-icon-button-state-layer-color:#3f51b5;--mat-icon-button-ripple-color:rgba(63, 81, 181, 0.1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color:#ff4081;--mat-icon-button-state-layer-color:#ff4081;--mat-icon-button-ripple-color:rgba(255, 64, 129, 0.1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color:#f44336;--mat-icon-button-state-layer-color:#f44336;--mat-icon-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mat-icon-button-touch-target-display:block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px;--mdc-fab-small-container-shape:50%;--mdc-fab-small-icon-size:24px;--mdc-extended-fab-container-height:48px;--mdc-extended-fab-container-shape:24px}html{--mdc-fab-container-color:white;--mdc-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-container-shadow-color:#000;--mat-fab-foreground-color:black;--mat-fab-state-layer-color:black;--mat-fab-disabled-state-layer-color:black;--mat-fab-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-hover-state-layer-opacity:0.04;--mat-fab-focus-state-layer-opacity:0.12;--mat-fab-pressed-state-layer-opacity:0.12;--mat-fab-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-fab-small-container-color:white;--mdc-fab-small-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-small-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-small-container-shadow-color:#000;--mat-fab-small-foreground-color:black;--mat-fab-small-state-layer-color:black;--mat-fab-small-disabled-state-layer-color:black;--mat-fab-small-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-small-hover-state-layer-opacity:0.04;--mat-fab-small-focus-state-layer-opacity:0.12;--mat-fab-small-pressed-state-layer-opacity:0.12;--mat-fab-small-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-small-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-extended-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-extended-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-extended-fab-container-shadow-color:#000}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color:#3f51b5;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color:#ff4081;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color:#f44336;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color:#3f51b5;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color:#ff4081;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color:#f44336;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html{--mat-fab-touch-target-display:block;--mat-fab-small-touch-target-display:block}html{--mdc-extended-fab-label-text-font:Roboto, sans-serif;--mdc-extended-fab-label-text-size:14px;--mdc-extended-fab-label-text-tracking:0.0892857143em;--mdc-extended-fab-label-text-weight:500}html{--mdc-snackbar-container-shape:4px}html{--mdc-snackbar-container-color:#333333;--mdc-snackbar-supporting-text-color:rgba(255, 255, 255, 0.87);--mat-snack-bar-button-color:#ff4081}html{--mdc-snackbar-supporting-text-font:Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height:20px;--mdc-snackbar-supporting-text-size:14px;--mdc-snackbar-supporting-text-weight:400}html{--mat-table-row-item-outline-width:1px}html{--mat-table-background-color:white;--mat-table-header-headline-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-outline-color:rgba(0, 0, 0, 0.12)}html{--mat-table-header-container-height:56px;--mat-table-footer-container-height:52px;--mat-table-row-item-container-height:52px}html{--mat-table-header-headline-font:Roboto, sans-serif;--mat-table-header-headline-line-height:22px;--mat-table-header-headline-size:14px;--mat-table-header-headline-weight:500;--mat-table-header-headline-tracking:0.0071428571em;--mat-table-row-item-label-text-font:Roboto, sans-serif;--mat-table-row-item-label-text-line-height:20px;--mat-table-row-item-label-text-size:14px;--mat-table-row-item-label-text-weight:400;--mat-table-row-item-label-text-tracking:0.0178571429em;--mat-table-footer-supporting-text-font:Roboto, sans-serif;--mat-table-footer-supporting-text-line-height:20px;--mat-table-footer-supporting-text-size:14px;--mat-table-footer-supporting-text-weight:400;--mat-table-footer-supporting-text-tracking:0.0178571429em}html{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}html{--mdc-circular-progress-active-indicator-color:#3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color:#ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color:#f44336}html{--mat-badge-container-shape:50%;--mat-badge-container-size:unset;--mat-badge-small-size-container-size:unset;--mat-badge-large-size-container-size:unset;--mat-badge-legacy-container-size:22px;--mat-badge-legacy-small-size-container-size:16px;--mat-badge-legacy-large-size-container-size:28px;--mat-badge-container-offset:-11px 0;--mat-badge-small-size-container-offset:-8px 0;--mat-badge-large-size-container-offset:-14px 0;--mat-badge-container-overlap-offset:-11px;--mat-badge-small-size-container-overlap-offset:-8px;--mat-badge-large-size-container-overlap-offset:-14px;--mat-badge-container-padding:0;--mat-badge-small-size-container-padding:0;--mat-badge-large-size-container-padding:0}html{--mat-badge-background-color:#3f51b5;--mat-badge-text-color:white;--mat-badge-disabled-state-background-color:#b9b9b9;--mat-badge-disabled-state-text-color:rgba(0, 0, 0, 0.38)}.mat-badge-accent{--mat-badge-background-color:#ff4081;--mat-badge-text-color:white}.mat-badge-warn{--mat-badge-background-color:#f44336;--mat-badge-text-color:white}html{--mat-badge-text-font:Roboto, sans-serif;--mat-badge-text-size:12px;--mat-badge-text-weight:600;--mat-badge-small-size-text-size:9px;--mat-badge-large-size-text-size:24px}html{--mat-bottom-sheet-container-shape:4px}html{--mat-bottom-sheet-container-text-color:rgba(0, 0, 0, 0.87);--mat-bottom-sheet-container-background-color:white}html{--mat-bottom-sheet-container-text-font:Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height:20px;--mat-bottom-sheet-container-text-size:14px;--mat-bottom-sheet-container-text-tracking:0.0178571429em;--mat-bottom-sheet-container-text-weight:400}html{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12}html{--mat-legacy-button-toggle-text-color:rgba(0, 0, 0, 0.38);--mat-legacy-button-toggle-state-layer-color:rgba(0, 0, 0, 0.12);--mat-legacy-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.54);--mat-legacy-button-toggle-selected-state-background-color:#e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-legacy-button-toggle-disabled-state-background-color:#eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-background-color:white;--mat-standard-button-toggle-state-layer-color:black;--mat-standard-button-toggle-selected-state-background-color:#e0e0e0;--mat-standard-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-standard-button-toggle-disabled-state-background-color:white;--mat-standard-button-toggle-disabled-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-divider-color:#e0e0e0}html{--mat-standard-button-toggle-height:48px}html{--mat-legacy-button-toggle-label-text-font:Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height:24px;--mat-legacy-button-toggle-label-text-size:16px;--mat-legacy-button-toggle-label-text-tracking:0.03125em;--mat-legacy-button-toggle-label-text-weight:400;--mat-standard-button-toggle-label-text-font:Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height:24px;--mat-standard-button-toggle-label-text-size:16px;--mat-standard-button-toggle-label-text-tracking:0.03125em;--mat-standard-button-toggle-label-text-weight:400}html{--mat-datepicker-calendar-container-shape:4px;--mat-datepicker-calendar-container-touch-shape:4px;--mat-datepicker-calendar-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-container-touch-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(63, 81, 181, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-toggle-active-state-icon-color:#3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color:rgba(63, 81, 181, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e;--mat-datepicker-toggle-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-body-label-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-period-button-text-color:black;--mat-datepicker-calendar-period-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-navigation-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-header-divider-color:rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-header-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-date-today-outline-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-today-disabled-state-outline-color:rgba(0, 0, 0, 0.18);--mat-datepicker-calendar-date-text-color:rgba(0, 0, 0, 0.87);--mat-datepicker-calendar-date-outline-color:transparent;--mat-datepicker-calendar-date-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-preview-state-outline-color:rgba(0, 0, 0, 0.24);--mat-datepicker-range-input-separator-color:rgba(0, 0, 0, 0.87);--mat-datepicker-range-input-disabled-state-separator-color:rgba(0, 0, 0, 0.38);--mat-datepicker-range-input-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-container-background-color:white;--mat-datepicker-calendar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(255, 64, 129, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(255, 64, 129, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(244, 67, 54, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(244, 67, 54, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color:#ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color:#f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display:none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-datepicker-calendar-text-font:Roboto, sans-serif;--mat-datepicker-calendar-text-size:13px;--mat-datepicker-calendar-body-label-text-size:14px;--mat-datepicker-calendar-body-label-text-weight:500;--mat-datepicker-calendar-period-button-text-size:14px;--mat-datepicker-calendar-period-button-text-weight:500;--mat-datepicker-calendar-header-text-size:11px;--mat-datepicker-calendar-header-text-weight:400}html{--mat-divider-width:1px}html{--mat-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-expansion-container-shape:4px;--mat-expansion-legacy-header-indicator-display:inline-block;--mat-expansion-header-indicator-display:none}html{--mat-expansion-container-background-color:white;--mat-expansion-container-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-actions-divider-color:rgba(0, 0, 0, 0.12);--mat-expansion-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-expansion-header-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-header-description-color:rgba(0, 0, 0, 0.54);--mat-expansion-header-indicator-color:rgba(0, 0, 0, 0.54)}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px}html{--mat-expansion-header-text-font:Roboto, sans-serif;--mat-expansion-header-text-size:14px;--mat-expansion-header-text-weight:500;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:Roboto, sans-serif;--mat-expansion-container-text-line-height:20px;--mat-expansion-container-text-size:14px;--mat-expansion-container-text-tracking:0.0178571429em;--mat-expansion-container-text-weight:400}html{--mat-grid-list-tile-header-primary-text-size:14px;--mat-grid-list-tile-header-secondary-text-size:12px;--mat-grid-list-tile-footer-primary-text-size:14px;--mat-grid-list-tile-footer-secondary-text-size:12px}html{--mat-icon-color:inherit}.mat-icon.mat-primary{--mat-icon-color:#3f51b5}.mat-icon.mat-accent{--mat-icon-color:#ff4081}.mat-icon.mat-warn{--mat-icon-color:#f44336}html{--mat-sidenav-container-shape:0;--mat-sidenav-container-elevation-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-sidenav-container-width:auto}html{--mat-sidenav-container-divider-color:rgba(0, 0, 0, 0.12);--mat-sidenav-container-background-color:white;--mat-sidenav-container-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-content-background-color:#fafafa;--mat-sidenav-content-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-scrim-color:rgba(0, 0, 0, 0.6)}html{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#3f51b5;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#3f51b5;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#3f51b5;--mat-stepper-header-edit-state-icon-foreground-color:white;--mat-stepper-container-color:white;--mat-stepper-line-color:rgba(0, 0, 0, 0.12);--mat-stepper-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-optional-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-selected-state-label-text-color:rgba(0, 0, 0, 0.87);--mat-stepper-header-error-state-label-text-color:#f44336;--mat-stepper-header-icon-background-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-error-state-icon-foreground-color:#f44336;--mat-stepper-header-error-state-icon-background-color:transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#ff4081;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#ff4081;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#ff4081;--mat-stepper-header-edit-state-icon-foreground-color:white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#f44336;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#f44336;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#f44336;--mat-stepper-header-edit-state-icon-foreground-color:white}html{--mat-stepper-header-height:72px}html{--mat-stepper-container-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-size:14px;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-weight:400}html{--mat-sort-arrow-color:#757575}html{--mat-toolbar-container-background-color:whitesmoke;--mat-toolbar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color:#3f51b5;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color:#ff4081;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color:#f44336;--mat-toolbar-container-text-color:white}html{--mat-toolbar-standard-height:64px;--mat-toolbar-mobile-height:56px}html{--mat-toolbar-title-text-font:Roboto, sans-serif;--mat-toolbar-title-text-line-height:32px;--mat-toolbar-title-text-size:20px;--mat-toolbar-title-text-tracking:0.0125em;--mat-toolbar-title-text-weight:500}html{--mat-tree-container-background-color:white;--mat-tree-node-text-color:rgba(0, 0, 0, 0.87)}html{--mat-tree-node-min-height:48px}html{--mat-tree-node-text-font:Roboto, sans-serif;--mat-tree-node-text-size:14px;--mat-tree-node-text-weight:400}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto, sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto, sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto, sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 calc(14px*.83)/20px Roboto, sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 calc(14px*.67)/20px Roboto, sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto, sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto, sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto, sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto, sans-serif;letter-spacing:-0.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto, sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto, sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto, sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9wcmVidWlsdC10aGVtZXMvaW5kaWdvLXBpbmsuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksZUFBZSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3Qix1QkFBdUIsQ0FBQyxpQ0FBaUMsZ0JBQWdCLENBQUMsb0JBQW9CLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLDJEQUEyRCxDQUFDLDBCQUEwQixDQUFDLDREQUE0RCxDQUFDLDhDQUE4QyxZQUFZLENBQUMscUJBQXFCLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsK0JBQStCLFNBQVMsQ0FBQyxPQUFPLENBQUMsbURBQW1ELG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsY0FBYyxDQUFDLFlBQVksQ0FBQyw2QkFBNkIsWUFBWSxDQUFDLDRCQUE0QixZQUFZLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMseUNBQXlDLENBQUMseURBQXlELENBQUMsU0FBUyxDQUFDLG1EQUFtRCxTQUFTLENBQUMsNkVBQTZFLFVBQVUsQ0FBQywyQkFBMkIsMEJBQTBCLENBQUMsa0NBQWtDLG1EQUFtRCxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQywrREFBK0QsU0FBUyxDQUFDLGtCQUFrQixDQUFDLHFDQUFxQyxlQUFlLENBQUMsNkNBQTZDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsY0FBYyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQywrQkFBK0IsV0FBVyxDQUFDLHlDQUF5Qyx3QkFBd0IsQ0FBQyxpQ0FBaUMsQ0FBQyxzQkFBc0IsQ0FBQywwQkFBMEIsQ0FBQyxpREFBaUQsd0JBQXdCLENBQUMsaUNBQWlDLENBQUMsbUJBQW1CLENBQUMseUNBQXlDLElBQUksQ0FBQyxDQUFDLHVDQUF1QyxJQUFJLENBQUMsQ0FBQyxvREFBb0QsOENBQThDLENBQUMsMERBQTBELDRDQUE0QyxDQUFDLHFCQUFxQixpQkFBaUIsQ0FBQyw2QkFBNkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLGdEQUFnRCxDQUFDLHVKQUF1SixDQUFDLDJEQUEyRCxDQUFDLG1DQUFtQyxVQUFVLENBQUMsMEJBQTBCLG9DQUFvQyxDQUFDLHlCQUF5QixpQkFBaUIsQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLG9EQUFvRCxDQUFDLG1LQUFtSyxDQUFDLCtEQUErRCxDQUFDLHVDQUF1QyxVQUFVLENBQUMsMEJBQTBCLHdDQUF3QyxDQUFDLG9CQUFvQiw2REFBNkQsQ0FBQyx3Q0FBd0MsQ0FBQyxLQUFLLHFDQUFxQyxDQUFDLEtBQUssb0RBQW9ELENBQUMsaURBQWlELENBQUMsd0RBQXdELENBQUMsd0RBQXdELENBQUMsMkRBQTJELENBQUMsWUFBWSxvREFBb0QsQ0FBQyxpREFBaUQsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQywyREFBMkQsQ0FBQyxVQUFVLG9EQUFvRCxDQUFDLGlEQUFpRCxDQUFDLHdEQUF3RCxDQUFDLHdEQUF3RCxDQUFDLDJEQUEyRCxDQUFDLEtBQUssbURBQW1ELENBQUMsYUFBYSxzREFBc0QsQ0FBQywyREFBMkQsQ0FBQyxvRUFBb0UsQ0FBQyxvRUFBb0UsQ0FBQyxpRUFBaUUsQ0FBQywrREFBK0QsQ0FBQyw4REFBOEQsQ0FBQyx1RUFBdUUsQ0FBQyxLQUFLLHNEQUFzRCxDQUFDLDJEQUEyRCxDQUFDLG9FQUFvRSxDQUFDLG9FQUFvRSxDQUFDLGlFQUFpRSxDQUFDLCtEQUErRCxDQUFDLDhEQUE4RCxDQUFDLHVFQUF1RSxDQUFDLFlBQVksc0RBQXNELENBQUMsMkRBQTJELENBQUMsb0VBQW9FLENBQUMsb0VBQW9FLENBQUMsaUVBQWlFLENBQUMsK0RBQStELENBQUMsOERBQThELENBQUMsdUVBQXVFLENBQUMsVUFBVSxzREFBc0QsQ0FBQywyREFBMkQsQ0FBQyxvRUFBb0UsQ0FBQyxvRUFBb0UsQ0FBQyxpRUFBaUUsQ0FBQywrREFBK0QsQ0FBQyw4REFBOEQsQ0FBQyx1RUFBdUUsQ0FBQyxLQUFLLGtDQUFrQyxDQUFDLHdDQUF3QyxDQUFDLCtEQUErRCx1SEFBdUgsQ0FBQywrREFBK0Qsd0hBQXdILENBQUMsK0RBQStELHdIQUF3SCxDQUFDLCtEQUErRCx3SEFBd0gsQ0FBQywrREFBK0QseUhBQXlILENBQUMsK0RBQStELHlIQUF5SCxDQUFDLCtEQUErRCwwSEFBMEgsQ0FBQywrREFBK0QsMEhBQTBILENBQUMsK0RBQStELDBIQUEwSCxDQUFDLCtEQUErRCwwSEFBMEgsQ0FBQyxpRUFBaUUsMkhBQTJILENBQUMsaUVBQWlFLDJIQUEySCxDQUFDLGlFQUFpRSwySEFBMkgsQ0FBQyxpRUFBaUUsMkhBQTJILENBQUMsaUVBQWlFLDJIQUEySCxDQUFDLGlFQUFpRSwySEFBMkgsQ0FBQyxpRUFBaUUsNEhBQTRILENBQUMsaUVBQWlFLDRIQUE0SCxDQUFDLGlFQUFpRSw0SEFBNEgsQ0FBQyxpRUFBaUUsNEhBQTRILENBQUMsaUVBQWlFLDZIQUE2SCxDQUFDLGlFQUFpRSw2SEFBNkgsQ0FBQyxpRUFBaUUsNkhBQTZILENBQUMsaUVBQWlFLDZIQUE2SCxDQUFDLGlFQUFpRSw2SEFBNkgsQ0FBQyx5QkFBeUIsWUFBWSxDQUFDLEtBQUssK0NBQStDLENBQUMsd0NBQXdDLENBQUMsaUNBQWlDLENBQUMsMENBQTBDLENBQUMsa0NBQWtDLENBQUMsS0FBSyxpREFBaUQsQ0FBQywwQ0FBMEMsQ0FBQyxtQ0FBbUMsQ0FBQyw0Q0FBNEMsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHFDQUFxQyxDQUFDLEtBQUsseUNBQXlDLENBQUMscUpBQXFKLENBQUMseUNBQXlDLENBQUMscURBQXFELENBQUMsb0pBQW9KLENBQUMsa0RBQWtELENBQUMsS0FBSyw2Q0FBNkMsQ0FBQyxzQ0FBc0MsQ0FBQywrQkFBK0IsQ0FBQyx1Q0FBdUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxnREFBZ0QsQ0FBQyx5Q0FBeUMsQ0FBQyxrQ0FBa0MsQ0FBQyxnREFBZ0QsQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLGlEQUFpRCxDQUFDLHNDQUFzQyxDQUFDLG1DQUFtQyxDQUFDLHNCQUFzQixvREFBb0QsQ0FBQyx5REFBeUQsQ0FBQyxpQ0FBaUMsb0RBQW9ELENBQUMsMERBQTBELENBQUMsK0JBQStCLG9EQUFvRCxDQUFDLHlEQUF5RCxDQUFDLEtBQUssdUNBQXVDLENBQUMsb0RBQW9ELENBQUMsS0FBSywyQ0FBMkMsQ0FBQyw4Q0FBOEMsQ0FBQyxLQUFLLDJEQUEyRCxDQUFDLDZDQUE2QyxDQUFDLDhDQUE4QyxDQUFDLDJEQUEyRCxDQUFDLEtBQUssbURBQW1ELENBQUMseURBQXlELENBQUMsMkNBQTJDLENBQUMsMkNBQTJDLENBQUMsaURBQWlELENBQUMsNkNBQTZDLENBQUMsS0FBSywyQ0FBMkMsQ0FBQyw0REFBNEQsQ0FBQyxzRUFBc0UsQ0FBQyxrREFBa0QsQ0FBQyx3REFBd0QsQ0FBQywyREFBMkQsQ0FBQyxpRUFBaUUsQ0FBQyxxRUFBcUUsQ0FBQyw0REFBNEQsQ0FBQyxxRUFBcUUsQ0FBQyx1RUFBdUUsQ0FBQyw0REFBNEQsQ0FBQyw0REFBNEQsQ0FBQyxzREFBc0QsQ0FBQyxpREFBaUQsQ0FBQyxrRUFBa0UsQ0FBQywyRUFBMkUsQ0FBQyx3RUFBd0UsQ0FBQyw0REFBNEQsQ0FBQyxrRUFBa0UsQ0FBQyxrRUFBa0UsQ0FBQyw2Q0FBNkMsQ0FBQyxxREFBcUQsQ0FBQyx3RUFBd0UsQ0FBQyw2REFBNkQsQ0FBQyxtRUFBbUUsQ0FBQyx1RUFBdUUsQ0FBQyw4REFBOEQsQ0FBQyx1RUFBdUUsQ0FBQyx5RUFBeUUsQ0FBQyxtREFBbUQsQ0FBQyw4REFBOEQsQ0FBQyx3REFBd0QsQ0FBQyw4REFBOEQsQ0FBQywyREFBMkQsQ0FBQyxvRUFBb0UsQ0FBQyxpRUFBaUUsQ0FBQywyREFBMkQsQ0FBQywyREFBMkQsQ0FBQyxxREFBcUQsQ0FBQyxpRUFBaUUsQ0FBQywwRUFBMEUsQ0FBQyxzREFBc0QsQ0FBQyx5Q0FBeUMsQ0FBQyxpREFBaUQsQ0FBQywyREFBMkQsQ0FBQyx5Q0FBeUMsQ0FBQyxrREFBa0QsQ0FBQywwQ0FBMEMsQ0FBQyxtREFBbUQsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyxnREFBZ0QsQ0FBQywrREFBK0QsQ0FBQyxnRUFBZ0UsQ0FBQywrQ0FBK0MsQ0FBQywrQ0FBK0MsQ0FBQywrQkFBK0IsMkNBQTJDLENBQUMsNERBQTRELENBQUMsdUVBQXVFLENBQUMsNkNBQTZDLENBQUMscURBQXFELENBQUMseUVBQXlFLENBQUMsa0VBQWtFLENBQUMsNkJBQTZCLDJDQUEyQyxDQUFDLDREQUE0RCxDQUFDLHNFQUFzRSxDQUFDLDZDQUE2QyxDQUFDLHFEQUFxRCxDQUFDLHdFQUF3RSxDQUFDLGlFQUFpRSxDQUFDLEtBQUssc0NBQXNDLENBQUMsMkNBQTJDLENBQUMsZ0RBQWdELENBQUMsNkRBQTZELENBQUMsK0RBQStELENBQUMsS0FBSywwREFBMEQsQ0FBQyw0Q0FBNEMsQ0FBQyxxREFBcUQsQ0FBQyw2Q0FBNkMsQ0FBQyw0REFBNEQsQ0FBQyw4Q0FBOEMsQ0FBQyx1REFBdUQsQ0FBQywrQ0FBK0MsQ0FBQyx1REFBdUQsQ0FBQyxnREFBZ0QsQ0FBQyx5Q0FBeUMsQ0FBQyxrREFBa0QsQ0FBQywwQ0FBMEMsQ0FBQyx3REFBd0QsQ0FBQyx1REFBdUQsQ0FBQyxnREFBZ0QsQ0FBQyx5Q0FBeUMsQ0FBQyx1REFBdUQsQ0FBQywwQ0FBMEMsQ0FBQyxLQUFLLHVKQUF1SixDQUFDLEtBQUsseUNBQXlDLENBQUMsMkRBQTJELENBQUMsNERBQTRELENBQUMsc0RBQXNELENBQUMsb0RBQW9ELENBQUMscURBQXFELENBQUMsd0RBQXdELENBQUMsd0RBQXdELENBQUMsb0NBQW9DLHlDQUF5QyxDQUFDLDJEQUEyRCxDQUFDLDREQUE0RCxDQUFDLHNEQUFzRCxDQUFDLG9EQUFvRCxDQUFDLHFEQUFxRCxDQUFDLHlEQUF5RCxDQUFDLHdEQUF3RCxDQUFDLGtDQUFrQyx5Q0FBeUMsQ0FBQywyREFBMkQsQ0FBQyw0REFBNEQsQ0FBQyxzREFBc0QsQ0FBQyxvREFBb0QsQ0FBQyxxREFBcUQsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQyxLQUFLLDZDQUE2QyxDQUFDLEtBQUssaURBQWlELENBQUMsMENBQTBDLENBQUMsbUNBQW1DLENBQUMsNENBQTRDLENBQUMsb0NBQW9DLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyw2SkFBNkosQ0FBQyxLQUFLLHlDQUF5QyxDQUFDLEtBQUssMEpBQTBKLENBQUMsd0NBQXdDLENBQUMsZ0NBQWdDLENBQUMscUNBQXFDLENBQUMsMkNBQTJDLENBQUMsa0NBQWtDLENBQUMsb0NBQW9DLENBQUMsZ0NBQWdDLENBQUMsc0NBQXNDLENBQUMsbURBQW1ELENBQUMsd0NBQXdDLENBQUMsS0FBSyxrQ0FBa0MsQ0FBQyw4Q0FBOEMsQ0FBQyxxREFBcUQsQ0FBQyxLQUFLLDRDQUE0QyxDQUFDLHFDQUFxQyxDQUFDLDhCQUE4QixDQUFDLCtCQUErQixDQUFDLHNDQUFzQyxDQUFDLG9EQUFvRCxDQUFDLDZDQUE2QyxDQUFDLHNDQUFzQyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLHVCQUF1Qix5Q0FBeUMsQ0FBQyxxREFBcUQsQ0FBQyxrREFBa0QsQ0FBQyw4REFBOEQsQ0FBQyx1Q0FBdUMsQ0FBQyxtQ0FBbUMsQ0FBQywwQkFBMEIsQ0FBQyxvQ0FBb0MsQ0FBQyw2Q0FBNkMsQ0FBQywwQ0FBMEMsQ0FBQyx5Q0FBeUMsQ0FBQyxnREFBZ0QsQ0FBQyx3Q0FBd0MsQ0FBQyxrREFBa0QsQ0FBQyw4REFBOEQsQ0FBQyw0Q0FBNEMsQ0FBQyx5Q0FBeUMsQ0FBQyx1Q0FBdUMsQ0FBQywwQ0FBMEMsQ0FBQyx3REFBd0QsQ0FBQyxpRUFBaUUsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyx1QkFBdUIsNENBQTRDLENBQUMsMkNBQTJDLENBQUMsb0RBQW9ELENBQUMsb0RBQW9ELENBQUMseURBQXlELENBQUMsd0NBQXdDLENBQUMsd0NBQXdDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsaURBQWlELENBQUMsa0RBQWtELENBQUMsbUNBQW1DLENBQUMsNENBQTRDLENBQUMsdUNBQXVDLENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsa0VBQWtFLENBQUMseURBQXlELENBQUMsd0RBQXdELENBQUMsK0NBQStDLENBQUMscUhBQXFILDBDQUEwQyxDQUFDLDJDQUEyQyxDQUFDLG9EQUFvRCxDQUFDLG9EQUFvRCxDQUFDLHlEQUF5RCxDQUFDLHdDQUF3QyxDQUFDLHdDQUF3QyxDQUFDLGlEQUFpRCxDQUFDLHlDQUF5QyxDQUFDLGlEQUFpRCxDQUFDLGtEQUFrRCxDQUFDLGlDQUFpQyxDQUFDLDBDQUEwQyxDQUFDLHFDQUFxQyxDQUFDLDhDQUE4QyxDQUFDLDhDQUE4QyxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHNEQUFzRCxDQUFDLDZDQUE2QyxDQUFDLG1IQUFtSCwwQ0FBMEMsQ0FBQywyQ0FBMkMsQ0FBQyxvREFBb0QsQ0FBQyxvREFBb0QsQ0FBQyx5REFBeUQsQ0FBQyx3Q0FBd0MsQ0FBQyx3Q0FBd0MsQ0FBQyxpREFBaUQsQ0FBQyx5Q0FBeUMsQ0FBQyxpREFBaUQsQ0FBQyxrREFBa0QsQ0FBQyxpQ0FBaUMsQ0FBQywwQ0FBMEMsQ0FBQyxxQ0FBcUMsQ0FBQyw4Q0FBOEMsQ0FBQyw4Q0FBOEMsQ0FBQyxnRUFBZ0UsQ0FBQyx1REFBdUQsQ0FBQyxzREFBc0QsQ0FBQyw2Q0FBNkMsQ0FBQywrR0FBK0csMENBQTBDLENBQUMsMkNBQTJDLENBQUMsb0RBQW9ELENBQUMsb0RBQW9ELENBQUMseURBQXlELENBQUMsd0NBQXdDLENBQUMsd0NBQXdDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsaURBQWlELENBQUMsa0RBQWtELENBQUMsaUNBQWlDLENBQUMsMENBQTBDLENBQUMscUNBQXFDLENBQUMsOENBQThDLENBQUMsOENBQThDLENBQUMsZ0VBQWdFLENBQUMsdURBQXVELENBQUMsc0RBQXNELENBQUMsNkNBQTZDLENBQUMsb0NBQW9DLGdDQUFnQyxDQUFDLHVCQUF1Qiw2Q0FBNkMsQ0FBQyxzQ0FBc0MsQ0FBQywrQkFBK0IsQ0FBQyw2Q0FBNkMsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLGdEQUFnRCxDQUFDLHdDQUF3QyxDQUFDLGtEQUFrRCxDQUFDLCtCQUErQixDQUFDLDhCQUE4QixDQUFDLDhCQUE4QixDQUFDLG9DQUFvQyxDQUFDLDhCQUE4QixDQUFDLDRCQUE0QixDQUFDLDZCQUE2QixDQUFDLHNDQUFzQyxDQUFDLG9EQUFvRCxDQUFDLG9EQUFvRCxDQUFDLHFEQUFxRCxDQUFDLHNEQUFzRCxDQUFDLHNEQUFzRCxDQUFDLHVEQUF1RCxDQUFDLGtEQUFrRCxDQUFDLG9EQUFvRCxDQUFDLHdDQUF3QyxDQUFDLHNDQUFzQyxDQUFDLHFDQUFxQyxDQUFDLHVDQUF1QyxDQUFDLGdEQUFnRCxDQUFDLDBEQUEwRCxDQUFDLHdEQUF3RCxDQUFDLGtEQUFrRCxDQUFDLDREQUE0RCxDQUFDLDBEQUEwRCxDQUFDLG9DQUFvQyxDQUFDLG1DQUFtQyxDQUFDLG1GQUFtRixDQUFDLG9GQUFvRixDQUFDLG9DQUFvQyxDQUFDLDRDQUE0QyxDQUFDLDZDQUE2QyxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLEtBQUsscURBQXFELENBQUMsMENBQTBDLENBQUMscURBQXFELENBQUMsdURBQXVELENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsa0RBQWtELENBQUMsK0NBQStDLENBQUMsK0NBQStDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsbURBQW1ELENBQUMsOENBQThDLENBQUMsa0RBQWtELENBQUMscURBQXFELENBQUMsZ0RBQWdELENBQUMsb0RBQW9ELENBQUMsZ0VBQWdFLENBQUMsa0pBQWtKLENBQUMsc0NBQXNDLENBQUMsMEpBQTBKLENBQUMscUNBQXFDLENBQUMsa0RBQWtELENBQUMsdURBQXVELENBQUMsaURBQWlELENBQUMsNENBQTRDLENBQUMsa0RBQWtELENBQUMsdURBQXVELENBQUMsaURBQWlELENBQUMsdUNBQXVDLENBQUMsb0RBQW9ELENBQUMseURBQXlELENBQUMsbURBQW1ELENBQUMsMkNBQTJDLENBQUMsMkRBQTJELENBQUMsMkJBQTJCLHFEQUFxRCxDQUFDLHNDQUFzQyxxREFBcUQsQ0FBQywwQ0FBMEMsQ0FBQyxxREFBcUQsQ0FBQyx1REFBdUQsQ0FBQyxnREFBZ0QsQ0FBQyxnREFBZ0QsQ0FBQyxrREFBa0QsQ0FBQywrQ0FBK0MsQ0FBQywrQ0FBK0MsQ0FBQyxpREFBaUQsQ0FBQyx5Q0FBeUMsQ0FBQyxvQ0FBb0MscURBQXFELENBQUMsMENBQTBDLENBQUMscURBQXFELENBQUMsdURBQXVELENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsa0RBQWtELENBQUMsK0NBQStDLENBQUMsK0NBQStDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsS0FBSyxrQ0FBa0MsQ0FBQywyQkFBMkIsbURBQW1ELENBQUMsNENBQTRDLENBQUMscUNBQXFDLENBQUMsbURBQW1ELENBQUMsc0NBQXNDLENBQUMsS0FBSywrQ0FBK0MsQ0FBQyxpREFBaUQsQ0FBQyxpQ0FBaUMsQ0FBQyxzQkFBc0IscURBQXFELENBQUMsa0NBQWtDLDhDQUE4QyxDQUFDLGdEQUFnRCxDQUFDLCtDQUErQyxDQUFDLHFEQUFxRCxDQUFDLDZEQUE2RCxDQUFDLDZDQUE2QyxDQUFDLDZDQUE2QyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLDhCQUE4QixDQUFDLHdDQUF3QyxDQUFDLG9EQUFvRCxDQUFDLGlDQUFpQyw4Q0FBOEMsQ0FBQyxnREFBZ0QsQ0FBQywrQ0FBK0MsQ0FBQyxxREFBcUQsQ0FBQyw2REFBNkQsQ0FBQyw2Q0FBNkMsQ0FBQyw2Q0FBNkMsQ0FBQyx1Q0FBdUMsQ0FBQywrQ0FBK0MsQ0FBQyw4QkFBOEIsQ0FBQyx3Q0FBd0MsQ0FBQyxvREFBb0QsQ0FBQywrQkFBK0IsOENBQThDLENBQUMsZ0RBQWdELENBQUMsK0NBQStDLENBQUMscURBQXFELENBQUMsNkRBQTZELENBQUMsNkNBQTZDLENBQUMsNkNBQTZDLENBQUMsdUNBQXVDLENBQUMsK0NBQStDLENBQUMsOEJBQThCLENBQUMsd0NBQXdDLENBQUMsb0RBQW9ELENBQUMsS0FBSyxpQ0FBaUMsQ0FBQyxzQ0FBc0MsQ0FBQyxzQkFBc0IsbURBQW1ELENBQUMsNENBQTRDLENBQUMscUNBQXFDLENBQUMsbURBQW1ELENBQUMsc0NBQXNDLENBQUMsS0FBSyx1Q0FBdUMsQ0FBQyx3Q0FBd0MsQ0FBQyxnREFBZ0QsQ0FBQyw4Q0FBOEMsQ0FBQywyQ0FBMkMsQ0FBQyxnREFBZ0QsQ0FBQyxpRUFBaUUsQ0FBQyxvQ0FBb0MsQ0FBQyxzQ0FBc0MsQ0FBQywrQkFBK0IsQ0FBQyw2QkFBNkIsQ0FBQyw4QkFBOEIsQ0FBQyxzQ0FBc0MsQ0FBQyx3Q0FBd0MsQ0FBQyxrREFBa0QsQ0FBQyx5REFBeUQsQ0FBQyxnREFBZ0QsQ0FBQywrQ0FBK0MsQ0FBQywyREFBMkQsQ0FBQyxLQUFLLGlDQUFpQyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHlDQUF5QyxDQUFDLDZEQUE2RCxDQUFDLHlEQUF5RCxDQUFDLDZDQUE2QyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLHVDQUF1QyxDQUFDLHdDQUF3QyxDQUFDLG1EQUFtRCxDQUFDLDBEQUEwRCxDQUFDLDJJQUEySSxDQUFDLGlDQUFpQyxDQUFDLDREQUE0RCxDQUFDLDJEQUEyRCxDQUFDLHdDQUF3QyxDQUFDLGlCQUFpQixpQ0FBaUMsQ0FBQyw2REFBNkQsQ0FBQyw0REFBNEQsQ0FBQyxpQ0FBaUMsQ0FBQyx1Q0FBdUMsQ0FBQyx1Q0FBdUMsQ0FBQyx1Q0FBdUMsQ0FBQyx5Q0FBeUMsQ0FBQyw2REFBNkQsQ0FBQyx5REFBeUQsQ0FBQyxlQUFlLGlDQUFpQyxDQUFDLDREQUE0RCxDQUFDLDJEQUEyRCxDQUFDLGlDQUFpQyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHlDQUF5QyxDQUFDLDZEQUE2RCxDQUFDLHlEQUF5RCxDQUFDLEtBQUsscURBQXFELENBQUMsdUNBQXVDLENBQUMsOENBQThDLENBQUMscURBQXFELENBQUMsd0NBQXdDLENBQUMsS0FBSyw4QkFBOEIsQ0FBQyxtQ0FBbUMsQ0FBQyxnQ0FBZ0MsQ0FBQyw0QkFBNEIsQ0FBQyw4QkFBOEIsQ0FBQyxvQ0FBb0MsQ0FBQyxxQ0FBcUMsQ0FBQyw4Q0FBOEMsQ0FBQywrQ0FBK0MsQ0FBQyxLQUFLLG9EQUFvRCxDQUFDLDhDQUE4QyxDQUFDLDJEQUEyRCxDQUFDLDJEQUEyRCxDQUFDLGdDQUFnQyxDQUFDLDRDQUE0QyxDQUFDLEtBQUssa0RBQWtELENBQUMsb0NBQW9DLENBQUMsNkNBQTZDLENBQUMsMkNBQTJDLENBQUMscUNBQXFDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyw2Q0FBNkMsQ0FBQyxnREFBZ0QsQ0FBQyx5REFBeUQsQ0FBQyxxREFBcUQsQ0FBQywyQ0FBMkMsQ0FBQyw2Q0FBNkMsQ0FBQyw0Q0FBNEMsQ0FBQywyREFBMkQsQ0FBQyxtREFBbUQsQ0FBQyxxREFBcUQsQ0FBQyx1REFBdUQsQ0FBQyx3REFBd0QsQ0FBQyw2Q0FBNkMsQ0FBQyxxQ0FBcUMsQ0FBQyxLQUFLLHlEQUF5RCxDQUFDLDhEQUE4RCxDQUFDLDJEQUEyRCxDQUFDLHVFQUF1RSxDQUFDLDREQUE0RCxDQUFDLHFFQUFxRSxDQUFDLG9EQUFvRCxDQUFDLHNEQUFzRCxDQUFDLHVEQUF1RCxDQUFDLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLGtFQUFrRSxDQUFDLCtEQUErRCxDQUFDLGtEQUFrRCxDQUFDLG1EQUFtRCxDQUFDLGtEQUFrRCxDQUFDLG1EQUFtRCxDQUFDLDBDQUEwQyw4Q0FBOEMsQ0FBQyxnREFBZ0QsQ0FBQywrQ0FBK0MsQ0FBQyxxREFBcUQsQ0FBQyw2REFBNkQsQ0FBQyw2Q0FBNkMsQ0FBQyw2Q0FBNkMsQ0FBQyx1Q0FBdUMsQ0FBQywrQ0FBK0MsQ0FBQyxrRUFBa0UsOENBQThDLENBQUMsZ0RBQWdELENBQUMsK0NBQStDLENBQUMscURBQXFELENBQUMsNkRBQTZELENBQUMsNkNBQTZDLENBQUMsNkNBQTZDLENBQUMsdUNBQXVDLENBQUMsK0NBQStDLENBQUMsOERBQThELDhDQUE4QyxDQUFDLGdEQUFnRCxDQUFDLCtDQUErQyxDQUFDLHFEQUFxRCxDQUFDLDZEQUE2RCxDQUFDLDZDQUE2QyxDQUFDLDZDQUE2QyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLHFCQUFxQiwrREFBK0QsQ0FBQyxpRUFBaUUsQ0FBQyw2Q0FBNkMsQ0FBQyxnREFBZ0QsQ0FBQyxnREFBZ0QsQ0FBQywwQ0FBMEMsQ0FBQyxrREFBa0QsQ0FBQyxrREFBa0QsQ0FBQyxrREFBa0QsQ0FBQyx3REFBd0QsQ0FBQyxnRUFBZ0UsQ0FBQyx1REFBdUQsQ0FBQyx1REFBdUQsQ0FBQyx5REFBeUQsQ0FBQyx1REFBdUQsQ0FBQyx1REFBdUQsQ0FBQyx5REFBeUQsQ0FBQyxnQ0FBZ0MsK0RBQStELENBQUMsaUVBQWlFLENBQUMsNkNBQTZDLENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsMENBQTBDLENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsd0RBQXdELENBQUMsZ0VBQWdFLENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsOEJBQThCLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLDZDQUE2QyxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLDBDQUEwQyxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVMQUF1TCxhQUFhLENBQUMsMk9BQTJPLGFBQWEsQ0FBQyxzTUFBc00sU0FBUyxDQUFDLEtBQUssbURBQW1ELENBQUMsbURBQW1ELENBQUMscURBQXFELENBQUMsa0RBQWtELENBQUMsZ0RBQWdELENBQUMsMENBQTBDLGlDQUFpQyxDQUFDLHlQQUF5UCxXQUFXLENBQUMsNFBBQTRQLFdBQVcsQ0FBQyxLQUFLLHVEQUF1RCxDQUFDLGdEQUFnRCxDQUFDLHlDQUF5QyxDQUFDLGtEQUFrRCxDQUFDLDBDQUEwQyxDQUFDLDREQUE0RCxDQUFDLHFEQUFxRCxDQUFDLDhDQUE4QyxDQUFDLDREQUE0RCxDQUFDLCtDQUErQyxDQUFDLHFFQUFxRSxDQUFDLDhEQUE4RCxDQUFDLHVEQUF1RCxDQUFDLHFFQUFxRSxDQUFDLHdEQUF3RCxDQUFDLDJCQUEyQixxQ0FBcUMsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLHdEQUF3RCxDQUFDLGdEQUFnRCxDQUFDLHNEQUFzRCxDQUFDLHVEQUF1RCxDQUFDLEtBQUssbUNBQW1DLENBQUMsZ0RBQWdELENBQUMseURBQXlELENBQUMsS0FBSyxzREFBc0QsQ0FBQywrQ0FBK0MsQ0FBQyx3Q0FBd0MsQ0FBQyxzREFBc0QsQ0FBQyx5Q0FBeUMsQ0FBQyw2Q0FBNkMsQ0FBQyxLQUFLLCtDQUErQyxDQUFDLDRDQUE0QyxDQUFDLG9EQUFvRCxDQUFDLDBDQUEwQyxDQUFDLGlDQUFpQyxDQUFDLHdDQUF3QyxrREFBa0QsQ0FBQywwREFBMEQsQ0FBQyw0Q0FBNEMsQ0FBQyw2REFBNkQsQ0FBQyxnREFBZ0QsQ0FBQyw0Q0FBNEMsQ0FBQyw4Q0FBOEMsQ0FBQyxtRUFBbUUsQ0FBQyxtRUFBbUUsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyxxREFBcUQsQ0FBQyxxREFBcUQsQ0FBQyw4REFBOEQsa0RBQWtELENBQUMsMERBQTBELENBQUMsNENBQTRDLENBQUMsNkRBQTZELENBQUMsZ0RBQWdELENBQUMsNENBQTRDLENBQUMsOENBQThDLENBQUMsbUVBQW1FLENBQUMsbUVBQW1FLENBQUMsc0RBQXNELENBQUMsc0RBQXNELENBQUMscURBQXFELENBQUMscURBQXFELENBQUMsMERBQTBELGtEQUFrRCxDQUFDLDBEQUEwRCxDQUFDLDRDQUE0QyxDQUFDLDZEQUE2RCxDQUFDLGdEQUFnRCxDQUFDLDRDQUE0QyxDQUFDLDhDQUE4QyxDQUFDLG1FQUFtRSxDQUFDLG1FQUFtRSxDQUFDLHNEQUFzRCxDQUFDLHNEQUFzRCxDQUFDLHFEQUFxRCxDQUFDLHFEQUFxRCxDQUFDLHNGQUFzRix5REFBeUQsQ0FBQyx1REFBdUQsQ0FBQyxvRkFBb0YseURBQXlELENBQUMsdURBQXVELENBQUMsZ0ZBQWdGLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLG9CQUFvQixvREFBb0QsQ0FBQyxvQkFBb0IsbURBQW1ELENBQUMscUNBQXFDLENBQUMsbURBQW1ELENBQUMsNENBQTRDLENBQUMsc0NBQXNDLENBQUMsS0FBSyxxREFBcUQsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQywwREFBMEQsQ0FBQyxLQUFLLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLDZDQUE2QyxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLDBDQUEwQyxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLGtCQUFrQixxREFBcUQsQ0FBQyw4QkFBOEIsK0RBQStELENBQUMsaUVBQWlFLENBQUMsNkNBQTZDLENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsMENBQTBDLENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsd0RBQXdELENBQUMsZ0VBQWdFLENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsMkJBQTJCLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLDZDQUE2QyxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLDBDQUEwQyxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLEtBQUssb0NBQW9DLENBQUMseUNBQXlDLENBQUMsa0JBQWtCLG1EQUFtRCxDQUFDLDRDQUE0QyxDQUFDLHFDQUFxQyxDQUFDLG1EQUFtRCxDQUFDLHNDQUFzQyxDQUFDLEtBQUsscUNBQXFDLENBQUMseUNBQXlDLENBQUMsdUNBQXVDLENBQUMsMkNBQTJDLENBQUMsMENBQTBDLENBQUMsOENBQThDLENBQUMsNkNBQTZDLENBQUMsdUNBQXVDLENBQUMseUNBQXlDLENBQUMsd0NBQXdDLENBQUMsa0RBQWtELENBQUMsa0NBQWtDLENBQUMsK0JBQStCLENBQUMsMkNBQTJDLENBQUMsb0NBQW9DLENBQUMsb0NBQW9DLENBQUMsOENBQThDLENBQUMsdUNBQXVDLENBQUMsdUNBQXVDLENBQUMsNkNBQTZDLENBQUMsc0NBQXNDLENBQUMsc0NBQXNDLENBQUMsS0FBSyx3Q0FBd0MsQ0FBQywrREFBK0QsQ0FBQyx5Q0FBeUMsQ0FBQyxrREFBa0QsQ0FBQyxpREFBaUQsQ0FBQyxnREFBZ0QsQ0FBQyxnREFBZ0QsQ0FBQyxrREFBa0QsQ0FBQyx5Q0FBeUMsQ0FBQywwQ0FBMEMsQ0FBQyxnRUFBZ0UsQ0FBQyxpRUFBaUUsQ0FBQywyQ0FBMkMsQ0FBQyxvREFBb0QsQ0FBQyxtREFBbUQsQ0FBQyxrREFBa0QsQ0FBQyxrREFBa0QsQ0FBQyxvREFBb0QsQ0FBQyw0Q0FBNEMsQ0FBQyw2Q0FBNkMsQ0FBQyxtRUFBbUUsQ0FBQyxvRUFBb0UsQ0FBQywrSkFBK0osQ0FBQyx1S0FBdUssQ0FBQyxzS0FBc0ssQ0FBQyxzS0FBc0ssQ0FBQyx5S0FBeUssQ0FBQyxrREFBa0QsQ0FBQyw4Q0FBOEMsQ0FBQyx1REFBdUQsQ0FBQyxzREFBc0QsQ0FBQyxxREFBcUQsQ0FBQyxxREFBcUQsQ0FBQyx1REFBdUQsQ0FBQyxnRUFBZ0UsQ0FBQyxtRUFBbUUsQ0FBQyw0Q0FBNEMsQ0FBQyx1REFBdUQsQ0FBQyw2Q0FBNkMsQ0FBQyxzREFBc0QsQ0FBQyxxREFBcUQsQ0FBQyxvREFBb0QsQ0FBQyxvREFBb0QsQ0FBQyxzREFBc0QsQ0FBQyw0QkFBNEIsMENBQTBDLENBQUMsMkNBQTJDLENBQUMscURBQXFELENBQUMsMkJBQTJCLDBDQUEwQyxDQUFDLDJDQUEyQyxDQUFDLHNEQUFzRCxDQUFDLHlCQUF5QiwwQ0FBMEMsQ0FBQywyQ0FBMkMsQ0FBQyxxREFBcUQsQ0FBQyx1Q0FBdUMsMkNBQTJDLENBQUMsMENBQTBDLENBQUMsMkNBQTJDLENBQUMseURBQXlELENBQUMsc0NBQXNDLDJDQUEyQyxDQUFDLDBDQUEwQyxDQUFDLDJDQUEyQyxDQUFDLHlEQUF5RCxDQUFDLG9DQUFvQywyQ0FBMkMsQ0FBQywwQ0FBMEMsQ0FBQywyQ0FBMkMsQ0FBQyx5REFBeUQsQ0FBQyxtQ0FBbUMsOENBQThDLENBQUMsNkNBQTZDLENBQUMsOENBQThDLENBQUMsNERBQTRELENBQUMsa0NBQWtDLDhDQUE4QyxDQUFDLDZDQUE2QyxDQUFDLDhDQUE4QyxDQUFDLDREQUE0RCxDQUFDLGdDQUFnQyw4Q0FBOEMsQ0FBQyw2Q0FBNkMsQ0FBQyw4Q0FBOEMsQ0FBQyw0REFBNEQsQ0FBQyxxQ0FBcUMsOENBQThDLENBQUMsdURBQXVELENBQUMsK0NBQStDLENBQUMseURBQXlELENBQUMsb0NBQW9DLDhDQUE4QyxDQUFDLHVEQUF1RCxDQUFDLCtDQUErQyxDQUFDLDBEQUEwRCxDQUFDLGtDQUFrQyw4Q0FBOEMsQ0FBQyx1REFBdUQsQ0FBQywrQ0FBK0MsQ0FBQyx5REFBeUQsQ0FBQyxLQUFLLHVDQUF1QyxDQUFDLHlDQUF5QyxDQUFDLDJDQUEyQyxDQUFDLDRDQUE0QyxDQUFDLDRDQUE0QyxDQUFDLDhDQUE4QyxDQUFDLGlEQUFpRCxDQUFDLGdEQUFnRCxDQUFDLEtBQUssb0RBQW9ELENBQUMsc0NBQXNDLENBQUMsb0RBQW9ELENBQUMsdUNBQXVDLENBQUMsMkNBQTJDLENBQUMsc0RBQXNELENBQUMsd0NBQXdDLENBQUMsc0RBQXNELENBQUMseUNBQXlDLENBQUMsNkNBQTZDLENBQUMsd0RBQXdELENBQUMsMENBQTBDLENBQUMsd0RBQXdELENBQUMsMkNBQTJDLENBQUMsK0NBQStDLENBQUMseURBQXlELENBQUMsMkNBQTJDLENBQUMseURBQXlELENBQUMsNENBQTRDLENBQUMsZ0RBQWdELENBQUMsS0FBSyxnQ0FBZ0MsQ0FBQyxLQUFLLG9DQUFvQyxDQUFDLHlEQUF5RCxDQUFDLHlDQUF5QyxDQUFDLGtEQUFrRCxDQUFDLGlEQUFpRCxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLGtEQUFrRCxDQUFDLHNDQUFzQyxvQ0FBb0MsQ0FBQywyQ0FBMkMsQ0FBQyxxREFBcUQsQ0FBQyxxQ0FBcUMsb0NBQW9DLENBQUMsMkNBQTJDLENBQUMsc0RBQXNELENBQUMsbUNBQW1DLG9DQUFvQyxDQUFDLDJDQUEyQyxDQUFDLHFEQUFxRCxDQUFDLEtBQUssNENBQTRDLENBQUMseUNBQXlDLHVDQUF1QyxDQUFDLDZDQUE2QyxDQUFDLDhDQUE4QyxDQUFDLFlBQVksQ0FBQyxLQUFLLDZCQUE2QixDQUFDLHdCQUF3QixDQUFDLG1DQUFtQyxDQUFDLDhCQUE4QixDQUFDLHdDQUF3QyxDQUFDLHVDQUF1QyxDQUFDLEtBQUssK0JBQStCLENBQUMsb0pBQW9KLENBQUMsMEpBQTBKLENBQUMsMEpBQTBKLENBQUMsNkpBQTZKLENBQUMscUNBQXFDLENBQUMsZ0NBQWdDLENBQUMsaUNBQWlDLENBQUMsMENBQTBDLENBQUMseUNBQXlDLENBQUMsd0NBQXdDLENBQUMsd0NBQXdDLENBQUMsMENBQTBDLENBQUMsNERBQTRELENBQUMsNkRBQTZELENBQUMscUNBQXFDLENBQUMsMEpBQTBKLENBQUMsZ0tBQWdLLENBQUMsZ0tBQWdLLENBQUMsbUtBQW1LLENBQUMsMkNBQTJDLENBQUMsc0NBQXNDLENBQUMsdUNBQXVDLENBQUMsZ0RBQWdELENBQUMsK0NBQStDLENBQUMsOENBQThDLENBQUMsOENBQThDLENBQUMsZ0RBQWdELENBQUMsa0VBQWtFLENBQUMsbUVBQW1FLENBQUMsNkpBQTZKLENBQUMsbUtBQW1LLENBQUMsbUtBQW1LLENBQUMsc0tBQXNLLENBQUMsOENBQThDLENBQUMsOEJBQThCLGlDQUFpQyxDQUFDLGdDQUFnQyxDQUFDLGlDQUFpQyxDQUFDLCtDQUErQyxDQUFDLDZCQUE2QixpQ0FBaUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxpQ0FBaUMsQ0FBQywrQ0FBK0MsQ0FBQywyQkFBMkIsaUNBQWlDLENBQUMsZ0NBQWdDLENBQUMsaUNBQWlDLENBQUMsK0NBQStDLENBQUMsbUNBQW1DLHVDQUF1QyxDQUFDLHNDQUFzQyxDQUFDLHVDQUF1QyxDQUFDLHFEQUFxRCxDQUFDLGtDQUFrQyx1Q0FBdUMsQ0FBQyxzQ0FBc0MsQ0FBQyx1Q0FBdUMsQ0FBQyxxREFBcUQsQ0FBQyxnQ0FBZ0MsdUNBQXVDLENBQUMsc0NBQXNDLENBQUMsdUNBQXVDLENBQUMscURBQXFELENBQUMsS0FBSyxvQ0FBb0MsQ0FBQywwQ0FBMEMsQ0FBQyxLQUFLLHFEQUFxRCxDQUFDLHVDQUF1QyxDQUFDLHFEQUFxRCxDQUFDLHdDQUF3QyxDQUFDLEtBQUssa0NBQWtDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyw4REFBOEQsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLHNEQUFzRCxDQUFDLCtDQUErQyxDQUFDLHdDQUF3QyxDQUFDLHlDQUF5QyxDQUFDLEtBQUssc0NBQXNDLENBQUMsS0FBSyxrQ0FBa0MsQ0FBQyxxREFBcUQsQ0FBQyx5REFBeUQsQ0FBQyxzREFBc0QsQ0FBQyxLQUFLLHdDQUF3QyxDQUFDLHdDQUF3QyxDQUFDLDBDQUEwQyxDQUFDLEtBQUssbURBQW1ELENBQUMsNENBQTRDLENBQUMscUNBQXFDLENBQUMsc0NBQXNDLENBQUMsbURBQW1ELENBQUMsdURBQXVELENBQUMsZ0RBQWdELENBQUMseUNBQXlDLENBQUMsMENBQTBDLENBQUMsdURBQXVELENBQUMsMERBQTBELENBQUMsbURBQW1ELENBQUMsNENBQTRDLENBQUMsNkNBQTZDLENBQUMsMERBQTBELENBQUMsS0FBSyxrREFBa0QsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLHNEQUFzRCxDQUFDLGlCQUFpQixzREFBc0QsQ0FBQyxlQUFlLHNEQUFzRCxDQUFDLEtBQUssK0JBQStCLENBQUMsZ0NBQWdDLENBQUMsMkNBQTJDLENBQUMsMkNBQTJDLENBQUMsc0NBQXNDLENBQUMsaURBQWlELENBQUMsaURBQWlELENBQUMsb0NBQW9DLENBQUMsOENBQThDLENBQUMsK0NBQStDLENBQUMsMENBQTBDLENBQUMsb0RBQW9ELENBQUMscURBQXFELENBQUMsK0JBQStCLENBQUMsMENBQTBDLENBQUMsMENBQTBDLENBQUMsS0FBSyxvQ0FBb0MsQ0FBQyw0QkFBNEIsQ0FBQyxtREFBbUQsQ0FBQyx5REFBeUQsQ0FBQyxrQkFBa0Isb0NBQW9DLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLG9DQUFvQyxDQUFDLDRCQUE0QixDQUFDLEtBQUssd0NBQXdDLENBQUMsMEJBQTBCLENBQUMsMkJBQTJCLENBQUMsb0NBQW9DLENBQUMscUNBQXFDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyxLQUFLLDJEQUEyRCxDQUFDLG1EQUFtRCxDQUFDLEtBQUsseURBQXlELENBQUMsa0RBQWtELENBQUMsMkNBQTJDLENBQUMseURBQXlELENBQUMsNENBQTRDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyxvQ0FBb0MsQ0FBQyxzREFBc0QsQ0FBQyxzQ0FBc0MsQ0FBQywyREFBMkQsQ0FBQywyREFBMkQsQ0FBQyxLQUFLLHlEQUF5RCxDQUFDLGdFQUFnRSxDQUFDLHdFQUF3RSxDQUFDLGtFQUFrRSxDQUFDLHdFQUF3RSxDQUFDLGtFQUFrRSxDQUFDLDJFQUEyRSxDQUFDLDJEQUEyRCxDQUFDLG1EQUFtRCxDQUFDLG9EQUFvRCxDQUFDLG9FQUFvRSxDQUFDLDBFQUEwRSxDQUFDLDBFQUEwRSxDQUFDLGtFQUFrRSxDQUFDLG1GQUFtRixDQUFDLDZFQUE2RSxDQUFDLGtEQUFrRCxDQUFDLEtBQUssd0NBQXdDLENBQUMsS0FBSyw2REFBNkQsQ0FBQyxzREFBc0QsQ0FBQywrQ0FBK0MsQ0FBQyx3REFBd0QsQ0FBQyxnREFBZ0QsQ0FBQywrREFBK0QsQ0FBQyx3REFBd0QsQ0FBQyxpREFBaUQsQ0FBQywwREFBMEQsQ0FBQyxrREFBa0QsQ0FBQyxLQUFLLDZDQUE2QyxDQUFDLG1EQUFtRCxDQUFDLG1LQUFtSyxDQUFDLDZLQUE2SyxDQUFDLEtBQUssOERBQThELENBQUMsc0VBQXNFLENBQUMsOEZBQThGLENBQUMsdUVBQXVFLENBQUMsa0ZBQWtGLENBQUMsa0ZBQWtGLENBQUMsdURBQXVELENBQUMscUZBQXFGLENBQUMsZ0dBQWdHLENBQUMsOEVBQThFLENBQUMsdUZBQXVGLENBQUMsc0RBQXNELENBQUMsbUVBQW1FLENBQUMsd0RBQXdELENBQUMsc0VBQXNFLENBQUMsMEVBQTBFLENBQUMsa0VBQWtFLENBQUMsK0RBQStELENBQUMsc0VBQXNFLENBQUMscUZBQXFGLENBQUMsNkRBQTZELENBQUMsd0RBQXdELENBQUMsNEVBQTRFLENBQUMsOEVBQThFLENBQUMsZ0VBQWdFLENBQUMsK0VBQStFLENBQUMsMEVBQTBFLENBQUMsMERBQTBELENBQUMsa0VBQWtFLENBQUMsbUNBQW1DLDhEQUE4RCxDQUFDLHNFQUFzRSxDQUFDLCtGQUErRixDQUFDLHVFQUF1RSxDQUFDLG1GQUFtRixDQUFDLG1GQUFtRixDQUFDLHNGQUFzRixDQUFDLGdHQUFnRyxDQUFDLDhFQUE4RSxDQUFDLHVGQUF1RixDQUFDLGlDQUFpQyw4REFBOEQsQ0FBQyxzRUFBc0UsQ0FBQyw4RkFBOEYsQ0FBQyx1RUFBdUUsQ0FBQyxrRkFBa0YsQ0FBQyxrRkFBa0YsQ0FBQyxxRkFBcUYsQ0FBQyxnR0FBZ0csQ0FBQyw4RUFBOEUsQ0FBQyx1RkFBdUYsQ0FBQyx5Q0FBeUMsdURBQXVELENBQUMsdUNBQXVDLHVEQUF1RCxDQUFDLHVCQUF1QiwyQ0FBMkMsQ0FBQyxnRUFBZ0UsdUNBQXVDLENBQUMsNkNBQTZDLENBQUMsOENBQThDLENBQUMsV0FBVyxDQUFDLEtBQUssc0RBQXNELENBQUMsd0NBQXdDLENBQUMsbURBQW1ELENBQUMsb0RBQW9ELENBQUMsc0RBQXNELENBQUMsdURBQXVELENBQUMsK0NBQStDLENBQUMsZ0RBQWdELENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLLHVDQUF1QyxDQUFDLEtBQUssbUNBQW1DLENBQUMsNERBQTRELENBQUMsNkNBQTZDLENBQUMsS0FBSyxnREFBZ0QsQ0FBQyx3REFBd0QsQ0FBQyx5REFBeUQsQ0FBQyxrRUFBa0UsQ0FBQyxrRUFBa0UsQ0FBQyxvRUFBb0UsQ0FBQyxxREFBcUQsQ0FBQyw0REFBNEQsQ0FBQywwREFBMEQsQ0FBQyxLQUFLLGtEQUFrRCxDQUFDLGlEQUFpRCxDQUFDLEtBQUssbURBQW1ELENBQUMscUNBQXFDLENBQUMsc0NBQXNDLENBQUMsK0NBQStDLENBQUMsNENBQTRDLENBQUMsc0RBQXNELENBQUMsK0NBQStDLENBQUMsd0NBQXdDLENBQUMsc0RBQXNELENBQUMseUNBQXlDLENBQUMsS0FBSyxrREFBa0QsQ0FBQyxvREFBb0QsQ0FBQyxrREFBa0QsQ0FBQyxvREFBb0QsQ0FBQyxLQUFLLHdCQUF3QixDQUFDLHNCQUFzQix3QkFBd0IsQ0FBQyxxQkFBcUIsd0JBQXdCLENBQUMsbUJBQW1CLHdCQUF3QixDQUFDLEtBQUssK0JBQStCLENBQUMsMEpBQTBKLENBQUMsa0NBQWtDLENBQUMsS0FBSyx5REFBeUQsQ0FBQyw4Q0FBOEMsQ0FBQyxzREFBc0QsQ0FBQyw4Q0FBOEMsQ0FBQyxvREFBb0QsQ0FBQyw0Q0FBNEMsQ0FBQyxLQUFLLGdEQUFnRCxDQUFDLGlFQUFpRSxDQUFDLCtEQUErRCxDQUFDLDZEQUE2RCxDQUFDLDJEQUEyRCxDQUFDLDZEQUE2RCxDQUFDLDJEQUEyRCxDQUFDLG1DQUFtQyxDQUFDLDRDQUE0QyxDQUFDLGdFQUFnRSxDQUFDLGdFQUFnRSxDQUFDLHlEQUF5RCxDQUFDLGtFQUFrRSxDQUFDLHdFQUF3RSxDQUFDLHlEQUF5RCxDQUFDLDhEQUE4RCxDQUFDLDhEQUE4RCxDQUFDLGtFQUFrRSxDQUFDLGlDQUFpQyxnREFBZ0QsQ0FBQyxpRUFBaUUsQ0FBQywrREFBK0QsQ0FBQyw2REFBNkQsQ0FBQywyREFBMkQsQ0FBQyw2REFBNkQsQ0FBQywyREFBMkQsQ0FBQywrQkFBK0IsZ0RBQWdELENBQUMsaUVBQWlFLENBQUMsK0RBQStELENBQUMsNkRBQTZELENBQUMsMkRBQTJELENBQUMsNkRBQTZELENBQUMsMkRBQTJELENBQUMsS0FBSyxnQ0FBZ0MsQ0FBQyxLQUFLLG9EQUFvRCxDQUFDLHVEQUF1RCxDQUFDLHlDQUF5QyxDQUFDLDBDQUEwQyxDQUFDLHFEQUFxRCxDQUFDLHdEQUF3RCxDQUFDLHlEQUF5RCxDQUFDLEtBQUssOEJBQThCLENBQUMsS0FBSyxtREFBbUQsQ0FBQyxzREFBc0QsQ0FBQyx5QkFBeUIsZ0RBQWdELENBQUMsd0NBQXdDLENBQUMsd0JBQXdCLGdEQUFnRCxDQUFDLHdDQUF3QyxDQUFDLHNCQUFzQixnREFBZ0QsQ0FBQyx3Q0FBd0MsQ0FBQyxLQUFLLGtDQUFrQyxDQUFDLGdDQUFnQyxDQUFDLEtBQUssZ0RBQWdELENBQUMseUNBQXlDLENBQUMsa0NBQWtDLENBQUMsMENBQTBDLENBQUMsbUNBQW1DLENBQUMsS0FBSywyQ0FBMkMsQ0FBQyw4Q0FBOEMsQ0FBQyxLQUFLLCtCQUErQixDQUFDLEtBQUssNENBQTRDLENBQUMsOEJBQThCLENBQUMsK0JBQStCLENBQUMsbUdBQW1HLHFDQUFxQyxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxtR0FBbUcscUNBQXFDLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLG1HQUFtRyxxQ0FBcUMsQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsMkZBQTJGLHFDQUFxQyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxtREFBbUQsK0NBQStDLENBQUMsZUFBZSxDQUFDLG1EQUFtRCwrQ0FBK0MsQ0FBQyxlQUFlLENBQUMsa0dBQWtHLHFDQUFxQyxDQUFDLDRCQUE0QixDQUFDLDRGQUE0RixxQ0FBcUMsQ0FBQyw0QkFBNEIsQ0FBQyxzR0FBc0csZUFBZSxDQUFDLGdGQUFnRixxQ0FBcUMsQ0FBQyw0QkFBNEIsQ0FBQyxnREFBZ0QscUNBQXFDLENBQUMsMEJBQTBCLENBQUMsZUFBZSxDQUFDLGdEQUFnRCxxQ0FBcUMsQ0FBQyw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsZ0RBQWdELHFDQUFxQyxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxnREFBZ0QscUNBQXFDLENBQUMsNEJBQTRCLENBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmlwcGxle292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZHtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnR7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUzZCgwLCAwLCAwKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1yaXBwbGUtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXJpcHBsZS1lbGVtZW50e2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbntib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2xlZnQ6MH1bZGlyPXJ0bF0gLmNkay12aXN1YWxseS1oaWRkZW57bGVmdDphdXRvO3JpZ2h0OjB9LmNkay1vdmVybGF5LWNvbnRhaW5lciwuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3B7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9we2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcHt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIGxpbmVhcixvcGFjaXR5IDFtcyBsaW5lYXI7dmlzaWJpbGl0eTpoaWRkZW47b3BhY2l0eToxfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5ne29wYWNpdHk6MDt2aXNpYmlsaXR5OnZpc2libGV9LmNkay1vdmVybGF5LWJhY2tkcm9wLW5vb3AtYW5pbWF0aW9ue3RyYW5zaXRpb246bm9uZX0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2Nre3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXple3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmd7cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveHtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHsvKiEqL31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHsvKiEqL30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7Ym9yZGVyOnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpIHZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlLCBzb2xpZCkgdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cywgNHB4KX0ubWF0LWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3Jle2NvbnRlbnQ6XCJcIn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZley0tbWF0LWZvY3VzLWluZGljYXRvci1kaXNwbGF5OiBibG9ja30ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTp2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1kaXNwbGF5LCBub25lKTtib3JkZXI6dmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpIHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSwgc29saWQpIHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6dmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cywgNHB4KX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6Zm9jdXM6OmJlZm9yZXtjb250ZW50OlwiXCJ9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZXstLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXk6IGJsb2NrfS5tYXQtYXBwLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tYXQtYXBwLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjp2YXIoLS1tYXQtYXBwLXRleHQtY29sb3IsIGluaGVyaXQpfWh0bWx7LS1tYXQtcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKX1odG1sey0tbWF0LW9wdGlvbi1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LWNvbG9yOiMzZjUxYjU7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1vcHRpb24taG92ZXItc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tc2VsZWN0ZWQtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KX0ubWF0LWFjY2VudHstLW1hdC1vcHRpb24tc2VsZWN0ZWQtc3RhdGUtbGFiZWwtdGV4dC1jb2xvcjojZmY0MDgxOy0tbWF0LW9wdGlvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtb3B0aW9uLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCk7LS1tYXQtb3B0aW9uLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCk7LS1tYXQtb3B0aW9uLXNlbGVjdGVkLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCl9Lm1hdC13YXJuey0tbWF0LW9wdGlvbi1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1vcHRpb24taG92ZXItc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tc2VsZWN0ZWQtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KX1odG1sey0tbWF0LW9wdGdyb3VwLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWF0LXByaW1hcnl7LS1tYXQtZnVsbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojYjBiMGIwOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6IzNmNTFiNTstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2IwYjBiMH1odG1sey0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2ZmNDA4MTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZhZmFmYTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZhZmFmYTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOiNiMGIwYjA7LS1tYXQtbWluaW1hbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNmZjQwODE7LS1tYXQtbWluaW1hbC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNiMGIwYjB9Lm1hdC1hY2NlbnR7LS1tYXQtZnVsbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojYjBiMGIwOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZmNDA4MTstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2IwYjBiMH0ubWF0LXdhcm57LS1tYXQtZnVsbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojYjBiMGIwOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2Y0NDMzNjstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2IwYjBiMH1odG1sey0tbWF0LWFwcC1iYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7LS1tYXQtYXBwLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWF0LWVsZXZhdGlvbi16MCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejJ7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXozLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoze2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16NCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16NHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo1LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo1e2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejYsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejZ7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejcsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejd7Ym94LXNoYWRvdzowcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejgsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejh7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejksLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEwLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejExLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEyLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEzLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE0LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE1LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE2LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTgsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE5LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIxLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjIsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejI0LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXJ7ZGlzcGxheTpub25lfWh0bWx7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1hdC1vcHRpb24tbGFiZWwtdGV4dC1zaXplOjE2cHg7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWF0LW9wdGlvbi1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LW9wdGdyb3VwLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tZGMtb3V0bGluZWQtY2FyZC1jb250YWluZXItc2hhcGU6NHB4Oy0tbWRjLW91dGxpbmVkLWNhcmQtb3V0bGluZS13aWR0aDoxcHh9aHRtbHstLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1lbGV2YXRpb246MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1jYXJkLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1vdXRsaW5lZC1jYXJkLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1jYXJkLWNvbnRhaW5lci1lbGV2YXRpb246MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LWNhcmQtc3VidGl0bGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfWh0bWx7LS1tYXQtY2FyZC10aXRsZS10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LWNhcmQtdGl0bGUtdGV4dC1saW5lLWhlaWdodDozMnB4Oy0tbWF0LWNhcmQtdGl0bGUtdGV4dC1zaXplOjIwcHg7LS1tYXQtY2FyZC10aXRsZS10ZXh0LXRyYWNraW5nOjAuMDEyNWVtOy0tbWF0LWNhcmQtdGl0bGUtdGV4dC13ZWlnaHQ6NTAwOy0tbWF0LWNhcmQtc3VidGl0bGUtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1jYXJkLXN1YnRpdGxlLXRleHQtbGluZS1oZWlnaHQ6MjJweDstLW1hdC1jYXJkLXN1YnRpdGxlLXRleHQtc2l6ZToxNHB4Oy0tbWF0LWNhcmQtc3VidGl0bGUtdGV4dC10cmFja2luZzowLjAwNzE0Mjg1NzFlbTstLW1hdC1jYXJkLXN1YnRpdGxlLXRleHQtd2VpZ2h0OjUwMH1odG1sey0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWhlaWdodDo0cHg7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWhlaWdodDo0cHg7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLXNoYXBlOjB9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyey0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjU7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuMjUpfS5tYXQtbWRjLXByb2dyZXNzLWJhci5tYXQtYWNjZW50ey0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODE7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjI1KX0ubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LXdhcm57LS1tZGMtbGluZWFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNjstLW1kYy1saW5lYXItcHJvZ3Jlc3MtdHJhY2stY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4yNSl9aHRtbHstLW1kYy1wbGFpbi10b29sdGlwLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tZGMtcGxhaW4tdG9vbHRpcC1zdXBwb3J0aW5nLXRleHQtbGluZS1oZWlnaHQ6MTZweH1odG1sey0tbWRjLXBsYWluLXRvb2x0aXAtY29udGFpbmVyLWNvbG9yOiM2MTYxNjE7LS1tZGMtcGxhaW4tdG9vbHRpcC1zdXBwb3J0aW5nLXRleHQtY29sb3I6I2ZmZn1odG1sey0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LXNpemU6MTJweDstLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LXRyYWNraW5nOjAuMDMzMzMzMzMzM2VtfWh0bWx7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtYWN0aXZlLWluZGljYXRvci1oZWlnaHQ6MXB4Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWZvY3VzLWFjdGl2ZS1pbmRpY2F0b3ItaGVpZ2h0OjJweDstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1jb250YWluZXItc2hhcGU6NHB4Oy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtb3V0bGluZS13aWR0aDoxcHg7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1mb2N1cy1vdXRsaW5lLXdpZHRoOjJweDstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWNvbnRhaW5lci1zaGFwZTo0cHh9aHRtbHstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1jYXJldC1jb2xvcjojM2Y1MWI1Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWZvY3VzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6IzNmNTFiNTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuODcpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWNvbnRhaW5lci1jb2xvcjp3aGl0ZXNtb2tlOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZmFmYWZhOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1pbnB1dC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZGlzYWJsZWQtaW5wdXQtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWVycm9yLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1lcnJvci1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZXJyb3ItbGFiZWwtdGV4dC1jb2xvcjojZjQ0MzM2Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWVycm9yLWNhcmV0LWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtYWN0aXZlLWluZGljYXRvci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNDIpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWRpc2FibGVkLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA2KTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1ob3Zlci1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZXJyb3ItYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWVycm9yLWZvY3VzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1lcnJvci1ob3Zlci1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1jYXJldC1jb2xvcjojM2Y1MWI1Oy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtb3V0bGluZS1jb2xvcjojM2Y1MWI1Oy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjg3KTstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtaG92ZXItbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1pbnB1dC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1kaXNhYmxlZC1pbnB1dC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWVycm9yLWNhcmV0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1ob3Zlci1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1kaXNhYmxlZC1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNik7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1mb2N1cy1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1ob3Zlci1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tYXQtZm9ybS1maWVsZC1mb2N1cy1zZWxlY3QtYXJyb3ctY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC44Nyk7LS1tYXQtZm9ybS1maWVsZC1kaXNhYmxlZC1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZm9ybS1maWVsZC1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LWZvcm0tZmllbGQtZXJyb3ItdGV4dC1jb2xvcjojZjQ0MzM2Oy0tbWF0LWZvcm0tZmllbGQtc2VsZWN0LW9wdGlvbi10ZXh0LWNvbG9yOmluaGVyaXQ7LS1tYXQtZm9ybS1maWVsZC1zZWxlY3QtZGlzYWJsZWQtb3B0aW9uLXRleHQtY29sb3I6R3JheVRleHQ7LS1tYXQtZm9ybS1maWVsZC1sZWFkaW5nLWljb24tY29sb3I6dW5zZXQ7LS1tYXQtZm9ybS1maWVsZC1kaXNhYmxlZC1sZWFkaW5nLWljb24tY29sb3I6dW5zZXQ7LS1tYXQtZm9ybS1maWVsZC10cmFpbGluZy1pY29uLWNvbG9yOnVuc2V0Oy0tbWF0LWZvcm0tZmllbGQtZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp1bnNldDstLW1hdC1mb3JtLWZpZWxkLWVycm9yLWZvY3VzLXRyYWlsaW5nLWljb24tY29sb3I6dW5zZXQ7LS1tYXQtZm9ybS1maWVsZC1lcnJvci1ob3Zlci10cmFpbGluZy1pY29uLWNvbG9yOnVuc2V0Oy0tbWF0LWZvcm0tZmllbGQtZXJyb3ItdHJhaWxpbmctaWNvbi1jb2xvcjp1bnNldDstLW1hdC1mb3JtLWZpZWxkLWVuYWJsZWQtc2VsZWN0LWFycm93LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZm9ybS1maWVsZC1kaXNhYmxlZC1zZWxlY3QtYXJyb3ctY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1hdC1mb3JtLWZpZWxkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1hdC1mb3JtLWZpZWxkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wOH0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnR7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtY2FyZXQtY29sb3I6I2ZmNDA4MTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1mb2N1cy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODE7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgNjQsIDEyOSwgMC44Nyk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1jYXJldC1jb2xvcjojZmY0MDgxOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtb3V0bGluZS1jb2xvcjojZmY0MDgxOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgNjQsIDEyOSwgMC44Nyk7LS1tYXQtZm9ybS1maWVsZC1mb2N1cy1zZWxlY3QtYXJyb3ctY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm57LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtY2FyZXQtY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1mb2N1cy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjg3KTstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWNhcmV0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1mb2N1cy1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpOy0tbWF0LWZvcm0tZmllbGQtZm9jdXMtc2VsZWN0LWFycm93LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpfWh0bWx7LS1tYXQtZm9ybS1maWVsZC1jb250YWluZXItaGVpZ2h0OjU2cHg7LS1tYXQtZm9ybS1maWVsZC1maWxsZWQtbGFiZWwtZGlzcGxheTpibG9jazstLW1hdC1mb3JtLWZpZWxkLWNvbnRhaW5lci12ZXJ0aWNhbC1wYWRkaW5nOjE2cHg7LS1tYXQtZm9ybS1maWVsZC1maWxsZWQtd2l0aC1sYWJlbC1jb250YWluZXItcGFkZGluZy10b3A6MjRweDstLW1hdC1mb3JtLWZpZWxkLWZpbGxlZC13aXRoLWxhYmVsLWNvbnRhaW5lci1wYWRkaW5nLWJvdHRvbTo4cHh9aHRtbHstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtc2l6ZToxNnB4Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtd2VpZ2h0OjQwMDstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtbGFiZWwtdGV4dC13ZWlnaHQ6NDAwOy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtZm9ybS1maWVsZC1jb250YWluZXItdGV4dC1saW5lLWhlaWdodDoyNHB4Oy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtc2l6ZToxNnB4Oy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtd2VpZ2h0OjQwMDstLW1hdC1mb3JtLWZpZWxkLW91dGxpbmVkLWxhYmVsLXRleHQtcG9wdWxhdGVkLXNpemU6MTZweDstLW1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC10ZXh0LXNpemU6MTJweDstLW1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC10ZXh0LXRyYWNraW5nOjAuMDMzMzMzMzMzM2VtOy0tbWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LXNlbGVjdC1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9aHRtbHstLW1hdC1zZWxlY3QtcGFuZWwtYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zZWxlY3QtZW5hYmxlZC10cmlnZ2VyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zZWxlY3QtZGlzYWJsZWQtdHJpZ2dlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtc2VsZWN0LXBsYWNlaG9sZGVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXNlbGVjdC1lbmFibGVkLWFycm93LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtc2VsZWN0LWRpc2FibGVkLWFycm93LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtc2VsZWN0LWZvY3VzZWQtYXJyb3ctY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC44Nyk7LS1tYXQtc2VsZWN0LWludmFsaWQtYXJyb3ctY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC44Nyl9aHRtbCAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnR7LS1tYXQtc2VsZWN0LXBhbmVsLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc2VsZWN0LWVuYWJsZWQtdHJpZ2dlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtc2VsZWN0LWRpc2FibGVkLXRyaWdnZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC1zZWxlY3QtZW5hYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LXNlbGVjdC1kaXNhYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1mb2N1c2VkLWFycm93LWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjg3KTstLW1hdC1zZWxlY3QtaW52YWxpZC1hcnJvdy1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjg3KX1odG1sIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm57LS1tYXQtc2VsZWN0LXBhbmVsLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc2VsZWN0LWVuYWJsZWQtdHJpZ2dlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtc2VsZWN0LWRpc2FibGVkLXRyaWdnZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC1zZWxlY3QtZW5hYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LXNlbGVjdC1kaXNhYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1mb2N1c2VkLWFycm93LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpOy0tbWF0LXNlbGVjdC1pbnZhbGlkLWFycm93LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpfWh0bWx7LS1tYXQtc2VsZWN0LWFycm93LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC04cHgpfWh0bWx7LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1zZWxlY3QtdHJpZ2dlci10ZXh0LWxpbmUtaGVpZ2h0OjI0cHg7LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC1zaXplOjE2cHg7LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC10cmFja2luZzowLjAzMTI1ZW07LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC13ZWlnaHQ6NDAwfWh0bWx7LS1tYXQtYXV0b2NvbXBsZXRlLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tYXQtYXV0b2NvbXBsZXRlLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LWF1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOndoaXRlfWh0bWx7LS1tZGMtZGlhbG9nLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1kaWFsb2ctY29udGFpbmVyLXNoYWRvdy1jb2xvcjojMDAwOy0tbWRjLWRpYWxvZy1jb250YWluZXItc2hhcGU6NHB4Oy0tbWF0LWRpYWxvZy1jb250YWluZXItbWF4LXdpZHRoOjgwdnc7LS1tYXQtZGlhbG9nLWNvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGg6ODB2dzstLW1hdC1kaWFsb2ctY29udGFpbmVyLW1pbi13aWR0aDowOy0tbWF0LWRpYWxvZy1hY3Rpb25zLWFsaWdubWVudDpzdGFydDstLW1hdC1kaWFsb2ctYWN0aW9ucy1wYWRkaW5nOjhweDstLW1hdC1kaWFsb2ctY29udGVudC1wYWRkaW5nOjIwcHggMjRweDstLW1hdC1kaWFsb2ctd2l0aC1hY3Rpb25zLWNvbnRlbnQtcGFkZGluZzoyMHB4IDI0cHg7LS1tYXQtZGlhbG9nLWhlYWRsaW5lLXBhZGRpbmc6MCAyNHB4IDlweH1odG1sey0tbWRjLWRpYWxvZy1jb250YWluZXItY29sb3I6d2hpdGU7LS1tZGMtZGlhbG9nLXN1YmhlYWQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX1odG1sey0tbWRjLWRpYWxvZy1zdWJoZWFkLWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWRpYWxvZy1zdWJoZWFkLWxpbmUtaGVpZ2h0OjMycHg7LS1tZGMtZGlhbG9nLXN1YmhlYWQtc2l6ZToyMHB4Oy0tbWRjLWRpYWxvZy1zdWJoZWFkLXdlaWdodDo1MDA7LS1tZGMtZGlhbG9nLXN1YmhlYWQtdHJhY2tpbmc6MC4wMTI1ZW07LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0OjI0cHg7LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC1zaXplOjE2cHg7LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LS1tZGMtY2hpcC1jb250YWluZXItc2hhcGUtZmFtaWx5OnJvdW5kZWQ7LS1tZGMtY2hpcC1jb250YWluZXItc2hhcGUtcmFkaXVzOjE2cHggMTZweCAxNnB4IDE2cHg7LS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2hhcGUtZmFtaWx5OnJvdW5kZWQ7LS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2hhcGUtcmFkaXVzOjE0cHggMTRweCAxNHB4IDE0cHg7LS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2l6ZToyOHB4Oy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tc2l6ZToxOHB4Oy0tbWRjLWNoaXAtb3V0bGluZS13aWR0aDowOy0tbWRjLWNoaXAtb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1jaGlwLWRpc2FibGVkLW91dGxpbmUtY29sb3I6dHJhbnNwYXJlbnQ7LS1tZGMtY2hpcC1mb2N1cy1vdXRsaW5lLWNvbG9yOnRyYW5zcGFyZW50Oy0tbWRjLWNoaXAtaG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWRjLWNoaXAtd2l0aC1hdmF0YXItZGlzYWJsZWQtYXZhdGFyLW9wYWNpdHk6MTstLW1kYy1jaGlwLWZsYXQtc2VsZWN0ZWQtb3V0bGluZS13aWR0aDowOy0tbWRjLWNoaXAtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tb3BhY2l0eToxOy0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tb3BhY2l0eToxOy0tbWF0LWNoaXAtZGlzYWJsZWQtY29udGFpbmVyLW9wYWNpdHk6MC40Oy0tbWF0LWNoaXAtdHJhaWxpbmctYWN0aW9uLW9wYWNpdHk6MC41NDstLW1hdC1jaGlwLXRyYWlsaW5nLWFjdGlvbi1mb2N1cy1vcGFjaXR5OjE7LS1tYXQtY2hpcC10cmFpbGluZy1hY3Rpb24tc3RhdGUtbGF5ZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1hY3Rpb24tc3RhdGUtbGF5ZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtY2hpcC10cmFpbGluZy1hY3Rpb24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowOy0tbWF0LWNoaXAtdHJhaWxpbmctYWN0aW9uLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwey0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtZWxldmF0ZWQtY29udGFpbmVyLWNvbG9yOiNlMGUwZTA7LS1tZGMtY2hpcC1lbGV2YXRlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6I2UwZTBlMDstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZTBlMGUwOy0tbWRjLWNoaXAtZmxhdC1kaXNhYmxlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6I2UwZTBlMDstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtc2VsZWN0ZWQtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hpcC13aXRoLWljb24tc2VsZWN0ZWQtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tYXQtY2hpcC1zZWxlY3RlZC1kaXNhYmxlZC10cmFpbGluZy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOiMyMTIxMjF9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnksLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtbWRjLWNoaXAtaGlnaGxpZ2h0ZWQubWF0LXByaW1hcnl7LS1tZGMtY2hpcC1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtZWxldmF0ZWQtY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hpcC1lbGV2YXRlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6IzNmNTFiNTstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoaXAtZmxhdC1kaXNhYmxlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6IzNmNTFiNTstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXNlbGVjdGVkLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWF0LWNoaXAtc2VsZWN0ZWQtZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1hdC1jaGlwLXNlbGVjdGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGV9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1hdC1tZGMtY2hpcC1oaWdobGlnaHRlZC5tYXQtYWNjZW50ey0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZmY0MDgxOy0tbWRjLWNoaXAtZWxldmF0ZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hpcC1lbGV2YXRlZC1kaXNhYmxlZC1jb250YWluZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGlwLWZsYXQtZGlzYWJsZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtY2hpcC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC1zZWxlY3RlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24tZGlzYWJsZWQtaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1hdC1jaGlwLXNlbGVjdGVkLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWF0LW1kYy1jaGlwLXNlbGVjdGVkLm1hdC13YXJuLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWF0LW1kYy1jaGlwLWhpZ2hsaWdodGVkLm1hdC13YXJuey0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoaXAtZWxldmF0ZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hpcC1lbGV2YXRlZC1kaXNhYmxlZC1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1jaGlwLWZsYXQtZGlzYWJsZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtY2hpcC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC1zZWxlY3RlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24tZGlzYWJsZWQtaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1hdC1jaGlwLXNlbGVjdGVkLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlfS5tYXQtbWRjLWNoaXAubWF0LW1kYy1zdGFuZGFyZC1jaGlwey0tbWRjLWNoaXAtY29udGFpbmVyLWhlaWdodDozMnB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1saW5lLWhlaWdodDoyMHB4Oy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDE3ODU3MTQyOWVtOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC13ZWlnaHQ6NDAwfWh0bWx7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWljb24tb3BhY2l0eTowLjM4Oy0tbWRjLXN3aXRjaC1kaXNhYmxlZC10cmFjay1vcGFjaXR5OjAuMTI7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1vcGFjaXR5OjAuMzg7LS1tZGMtc3dpdGNoLWhhbmRsZS1oZWlnaHQ6MjBweDstLW1kYy1zd2l0Y2gtaGFuZGxlLXNoYXBlOjEwcHg7LS1tZGMtc3dpdGNoLWhhbmRsZS13aWR0aDoyMHB4Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1pY29uLXNpemU6MThweDstLW1kYy1zd2l0Y2gtdHJhY2staGVpZ2h0OjE0cHg7LS1tZGMtc3dpdGNoLXRyYWNrLXNoYXBlOjdweDstLW1kYy1zd2l0Y2gtdHJhY2std2lkdGg6MzZweDstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1pY29uLXNpemU6MThweDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMDQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xOy0tbWF0LXN3aXRjaC1kaXNhYmxlZC1zZWxlY3RlZC1oYW5kbGUtb3BhY2l0eTowLjM4Oy0tbWF0LXN3aXRjaC1kaXNhYmxlZC11bnNlbGVjdGVkLWhhbmRsZS1vcGFjaXR5OjAuMzg7LS1tYXQtc3dpdGNoLXVuc2VsZWN0ZWQtaGFuZGxlLXNpemU6MjBweDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLXNpemU6MjBweDstLW1hdC1zd2l0Y2gtcHJlc3NlZC1oYW5kbGUtc2l6ZToyMHB4Oy0tbWF0LXN3aXRjaC13aXRoLWljb24taGFuZGxlLXNpemU6MjBweDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLWhvcml6b250YWwtbWFyZ2luOjA7LS1tYXQtc3dpdGNoLXNlbGVjdGVkLXdpdGgtaWNvbi1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtdW5zZWxlY3RlZC1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtdW5zZWxlY3RlZC13aXRoLWljb24taGFuZGxlLWhvcml6b250YWwtbWFyZ2luOjA7LS1tYXQtc3dpdGNoLXVuc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtdmlzaWJsZS10cmFjay1vcGFjaXR5OjE7LS1tYXQtc3dpdGNoLWhpZGRlbi10cmFjay1vcGFjaXR5OjE7LS1tYXQtc3dpdGNoLXZpc2libGUtdHJhY2stdHJhbnNpdGlvbjp0cmFuc2Zvcm0gNzVtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7LS1tYXQtc3dpdGNoLWhpZGRlbi10cmFjay10cmFuc2l0aW9uOnRyYW5zZm9ybSA3NW1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOy0tbWF0LXN3aXRjaC10cmFjay1vdXRsaW5lLXdpZHRoOjFweDstLW1hdC1zd2l0Y2gtdHJhY2stb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stb3V0bGluZS13aWR0aDoxcHg7LS1tYXQtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtdHJhY2stb3V0bGluZS13aWR0aDoxcHg7LS1tYXQtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtdHJhY2stb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudH1odG1sey0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojMzk0OWFiOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1oYW5kbGUtY29sb3I6IzM5NDlhYjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6IzM5NDlhYjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojMzk0OWFiOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6IzFhMjM3ZTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiMxYTIzN2U7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtaGFuZGxlLWNvbG9yOiMxYTIzN2U7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiM3OTg2Y2I7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiM3OTg2Y2I7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtdHJhY2stY29sb3I6Izc5ODZjYjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stY29sb3I6Izc5ODZjYjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiM0MjQyNDI7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtc2VsZWN0ZWQtdHJhY2stY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtdW5zZWxlY3RlZC1oYW5kbGUtY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiNmZmY7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtdHJhY2stY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtaGFuZGxlLXN1cmZhY2UtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpOy0tbWRjLXN3aXRjaC1oYW5kbGUtZWxldmF0aW9uLXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXN3aXRjaC1oYW5kbGUtc2hhZG93LWNvbG9yOmJsYWNrOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC1oYW5kbGUtZWxldmF0aW9uLXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6IzIxMjEyMTstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojNDI0MjQyOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiM2MTYxNjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiMyMTIxMjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1ob3Zlci10cmFjay1jb2xvcjojZTBlMGUwOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojMjEyMTIxOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtdHJhY2stY29sb3I6I2UwZTBlMDstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KX1odG1sIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZXstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX1odG1sIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZS5tYXQtYWNjZW50ey0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojZDgxYjYwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1oYW5kbGUtY29sb3I6I2Q4MWI2MDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2Q4MWI2MDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojZDgxYjYwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6Izg4MGU0ZjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiM4ODBlNGY7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtaGFuZGxlLWNvbG9yOiM4ODBlNGY7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNmMDYyOTI7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiNmMDYyOTI7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtdHJhY2stY29sb3I6I2YwNjI5MjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stY29sb3I6I2YwNjI5Mn1odG1sIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZS5tYXQtd2FybnstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2U1MzkzNTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiNlNTM5MzU7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiNlNTM5MzU7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6I2U1MzkzNTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtaGFuZGxlLWNvbG9yOiNiNzFjMWM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLWhhbmRsZS1jb2xvcjojYjcxYzFjOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojYjcxYzFjOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy10cmFjay1jb2xvcjojZTU3MzczOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci10cmFjay1jb2xvcjojZTU3MzczOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNlNTczNzM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXRyYWNrLWNvbG9yOiNlNTczNzN9aHRtbHstLW1kYy1zd2l0Y2gtc3RhdGUtbGF5ZXItc2l6ZTo0MHB4fWh0bWwgLm1hdC1tZGMtc2xpZGUtdG9nZ2xley0tbWRjLWZvcm0tZmllbGQtbGFiZWwtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLWZvcm0tZmllbGQtbGFiZWwtdGV4dC10cmFja2luZzowLjAxNzg1NzE0MjllbTstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tb3BhY2l0eTowLjM4Oy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1vcGFjaXR5OjAuMzg7LS1tZGMtcmFkaW8tc3RhdGUtbGF5ZXItc2l6ZTo0MHB4fS5tYXQtbWRjLXJhZGlvLWJ1dHRvbnstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1yYWRpby1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6IzNmNTFiNTstLW1hdC1yYWRpby1yaXBwbGUtY29sb3I6YmxhY2s7LS1tYXQtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6IzNmNTFiNTstLW1hdC1yYWRpby1kaXNhYmxlZC1sYWJlbC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tYXQtbWRjLXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmZjQwODE7LS1tYXQtcmFkaW8tcmlwcGxlLWNvbG9yOmJsYWNrOy0tbWF0LXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiNmZjQwODE7LS1tYXQtcmFkaW8tZGlzYWJsZWQtbGFiZWwtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX0ubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXdhcm57LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y0NDMzNjstLW1hdC1yYWRpby1yaXBwbGUtY29sb3I6YmxhY2s7LS1tYXQtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6I2Y0NDMzNjstLW1hdC1yYWRpby1kaXNhYmxlZC1sYWJlbC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfWh0bWx7LS1tZGMtcmFkaW8tc3RhdGUtbGF5ZXItc2l6ZTo0MHB4Oy0tbWF0LXJhZGlvLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrfS5tYXQtbWRjLXJhZGlvLWJ1dHRvbnstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLXdpZHRoOmF1dG87LS1tYXQtc2xpZGVyLXZhbHVlLWluZGljYXRvci1oZWlnaHQ6MzJweDstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLWNhcmV0LWRpc3BsYXk6YmxvY2s7LS1tYXQtc2xpZGVyLXZhbHVlLWluZGljYXRvci1ib3JkZXItcmFkaXVzOjRweDstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLXBhZGRpbmc6MCAxMnB4Oy0tbWF0LXNsaWRlci12YWx1ZS1pbmRpY2F0b3ItdGV4dC10cmFuc2Zvcm06bm9uZTstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLWNvbnRhaW5lci10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTstLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWhlaWdodDo2cHg7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1zaGFwZTo5OTk5cHg7LS1tZGMtc2xpZGVyLWhhbmRsZS1oZWlnaHQ6MjBweDstLW1kYy1zbGlkZXItaGFuZGxlLXNoYXBlOjUwJTstLW1kYy1zbGlkZXItaGFuZGxlLXdpZHRoOjIwcHg7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLWhlaWdodDo0cHg7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLXNoYXBlOjk5OTlweDstLW1kYy1zbGlkZXItd2l0aC1vdmVybGFwLWhhbmRsZS1vdXRsaW5lLXdpZHRoOjFweDstLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWFjdGl2ZS1jb250YWluZXItb3BhY2l0eTowLjY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1jb250YWluZXItc2hhcGU6NTAlOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtY29udGFpbmVyLXNpemU6MnB4Oy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLW9wYWNpdHk6MC42fWh0bWx7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojM2Y1MWI1Oy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6IzNmNTFiNTstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiMzZjUxYjU7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojM2Y1MWI1Oy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojM2Y1MWI1Oy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWRjLXNsaWRlci1kaXNhYmxlZC1hY3RpdmUtdHJhY2stY29sb3I6IzAwMDstLW1kYy1zbGlkZXItZGlzYWJsZWQtaGFuZGxlLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLWRpc2FibGVkLWluYWN0aXZlLXRyYWNrLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLWxhYmVsLWNvbnRhaW5lci1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LWNvbG9yOiNmZmY7LS1tZGMtc2xpZGVyLXdpdGgtb3ZlcmxhcC1oYW5kbGUtb3V0bGluZS1jb2xvcjojZmZmOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLWhhbmRsZS1lbGV2YXRpb246MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1zbGlkZXItcmlwcGxlLWNvbG9yOiMzZjUxYjU7LS1tYXQtc2xpZGVyLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuMDUpOy0tbWF0LXNsaWRlci1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjIpOy0tbWF0LXNsaWRlci12YWx1ZS1pbmRpY2F0b3Itb3BhY2l0eTowLjZ9aHRtbCAubWF0LWFjY2VudHstLW1hdC1zbGlkZXItcmlwcGxlLWNvbG9yOiNmZjQwODE7LS1tYXQtc2xpZGVyLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjA1KTstLW1hdC1zbGlkZXItZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuMik7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZmY0MDgxOy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2ZmNDA4MTstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNmZjQwODE7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZmY0MDgxOy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZmY0MDgxOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmZjQwODE7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOndoaXRlfWh0bWwgLm1hdC13YXJuey0tbWF0LXNsaWRlci1yaXBwbGUtY29sb3I6I2Y0NDMzNjstLW1hdC1zbGlkZXItaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4wNSk7LS1tYXQtc2xpZGVyLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuMik7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2Y0NDMzNjstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOndoaXRlfWh0bWx7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIycHg7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMDcxNDI4NTcxZW07LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtd2VpZ2h0OjUwMH1odG1sey0tbWF0LW1lbnUtY29udGFpbmVyLXNoYXBlOjRweDstLW1hdC1tZW51LWRpdmlkZXItYm90dG9tLXNwYWNpbmc6MDstLW1hdC1tZW51LWRpdmlkZXItdG9wLXNwYWNpbmc6MDstLW1hdC1tZW51LWl0ZW0tc3BhY2luZzoxNnB4Oy0tbWF0LW1lbnUtaXRlbS1pY29uLXNpemU6MjRweDstLW1hdC1tZW51LWl0ZW0tbGVhZGluZy1zcGFjaW5nOjE2cHg7LS1tYXQtbWVudS1pdGVtLXRyYWlsaW5nLXNwYWNpbmc6MTZweDstLW1hdC1tZW51LWl0ZW0td2l0aC1pY29uLWxlYWRpbmctc3BhY2luZzoxNnB4Oy0tbWF0LW1lbnUtaXRlbS13aXRoLWljb24tdHJhaWxpbmctc3BhY2luZzoxNnB4fWh0bWx7LS1tYXQtbWVudS1pdGVtLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1tZW51LWl0ZW0taWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LW1lbnUtaXRlbS1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMDQpOy0tbWF0LW1lbnUtaXRlbS1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMDQpOy0tbWF0LW1lbnUtY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWF0LW1lbnUtZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfWh0bWx7LS1tYXQtbWVudS1pdGVtLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtbWVudS1pdGVtLWxhYmVsLXRleHQtc2l6ZToxNnB4Oy0tbWF0LW1lbnUtaXRlbS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1tZW51LWl0ZW0tbGFiZWwtdGV4dC1saW5lLWhlaWdodDoyNHB4Oy0tbWF0LW1lbnUtaXRlbS1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1kYy1saXN0LWxpc3QtaXRlbS1jb250YWluZXItc2hhcGU6MDstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWF2YXRhci1zaGFwZTo1MCU7LS1tZGMtbGlzdC1saXN0LWl0ZW0tY29udGFpbmVyLWNvbG9yOnRyYW5zcGFyZW50Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXNlbGVjdGVkLWNvbnRhaW5lci1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWF2YXRhci1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWljb24tc2l6ZToyNHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctYXZhdGFyLXNpemU6NDBweDstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1pY29uLXNpemU6MjRweDstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjA7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGFiZWwtdGV4dC1vcGFjaXR5OjAuMzg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGVhZGluZy1pY29uLW9wYWNpdHk6MC4zODstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC10cmFpbGluZy1pY29uLW9wYWNpdHk6MC4zODstLW1hdC1saXN0LWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtbGlzdC1hY3RpdmUtaW5kaWNhdG9yLXNoYXBlOjRweH1odG1sey0tbWRjLWxpc3QtbGlzdC1pdGVtLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1kYy1saXN0LWxpc3QtaXRlbS1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtbGlzdC1saXN0LWl0ZW0tc2VsZWN0ZWQtdHJhaWxpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGVhZGluZy1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLWxlYWRpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLXRyYWlsaW5nLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMn0ubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojM2Y1MWI1fS5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmZjQwODF9Lm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjQ0MzM2fS5tYXQtbWRjLWxpc3Qtb3B0aW9uey0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6d2hpdGU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2t9Lm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudHstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOndoaXRlOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrfS5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuey0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6d2hpdGU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2t9Lm1hdC1tZGMtbGlzdC1iYXNlLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0LC5tYXQtbWRjLWxpc3QtYmFzZS5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6IzNmNTFiNX0ubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6IzNmNTFiNX0ubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19jb250ZW50LC5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2VuZHtvcGFjaXR5OjF9aHRtbHstLW1kYy1saXN0LWxpc3QtaXRlbS1vbmUtbGluZS1jb250YWluZXItaGVpZ2h0OjQ4cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tdHdvLWxpbmUtY29udGFpbmVyLWhlaWdodDo2NHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRocmVlLWxpbmUtY29udGFpbmVyLWhlaWdodDo4OHB4Oy0tbWF0LWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctaWNvbi1zdGFydC1zcGFjZToxNnB4Oy0tbWF0LWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctaWNvbi1lbmQtc3BhY2U6MzJweH0ubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1zdGF0ZS1sYXllci1zaXplOjQwcHh9Lm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1hdmF0YXIubWRjLWxpc3QtaXRlbS0td2l0aC1vbmUtbGluZSwubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWNoZWNrYm94Lm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmUsLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uLm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmV7aGVpZ2h0OjU2cHh9Lm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1hdmF0YXIubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMsLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1jaGVja2JveC5tZGMtbGlzdC1pdGVtLS13aXRoLXR3by1saW5lcywubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24ubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXN7aGVpZ2h0OjcycHh9aHRtbHstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LXdlaWdodDo0MDA7LS1tZGMtbGlzdC1saXN0LWl0ZW0tc3VwcG9ydGluZy10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC1saW5lLWhlaWdodDoyMHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC1zaXplOjE0cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tc3VwcG9ydGluZy10ZXh0LXRyYWNraW5nOjAuMDE3ODU3MTQyOWVtOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRyYWlsaW5nLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtc2l6ZToxMnB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRyYWlsaW5nLXN1cHBvcnRpbmctdGV4dC10cmFja2luZzowLjAzMzMzMzMzMzNlbTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtd2VpZ2h0OjQwMH0ubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcntmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMDkzNzVlbX1odG1sey0tbWF0LXBhZ2luYXRvci1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXBhZ2luYXRvci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1wYWdpbmF0b3ItZW5hYmxlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtcGFnaW5hdG9yLWRpc2FibGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LXBhZ2luYXRvci1jb250YWluZXItc2l6ZTo1NnB4Oy0tbWF0LXBhZ2luYXRvci1mb3JtLWZpZWxkLWNvbnRhaW5lci1oZWlnaHQ6NDBweDstLW1hdC1wYWdpbmF0b3ItZm9ybS1maWVsZC1jb250YWluZXItdmVydGljYWwtcGFkZGluZzo4cHh9aHRtbHstLW1hdC1wYWdpbmF0b3ItY29udGFpbmVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtcGFnaW5hdG9yLWNvbnRhaW5lci10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtcGFnaW5hdG9yLWNvbnRhaW5lci10ZXh0LXNpemU6MTJweDstLW1hdC1wYWdpbmF0b3ItY29udGFpbmVyLXRleHQtdHJhY2tpbmc6MC4wMzMzMzMzMzMzZW07LS1tYXQtcGFnaW5hdG9yLWNvbnRhaW5lci10ZXh0LXdlaWdodDo0MDA7LS1tYXQtcGFnaW5hdG9yLXNlbGVjdC10cmlnZ2VyLXRleHQtc2l6ZToxMnB4fWh0bWx7LS1tZGMtdGFiLWluZGljYXRvci1hY3RpdmUtaW5kaWNhdG9yLWhlaWdodDoycHg7LS1tZGMtdGFiLWluZGljYXRvci1hY3RpdmUtaW5kaWNhdG9yLXNoYXBlOjA7LS1tZGMtc2Vjb25kYXJ5LW5hdmlnYXRpb24tdGFiLWNvbnRhaW5lci1oZWlnaHQ6NDhweDstLW1hdC10YWItaGVhZGVyLWRpdmlkZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtdGFiLWhlYWRlci1kaXZpZGVyLWhlaWdodDowfS5tYXQtbWRjLXRhYi1ncm91cCwubWF0LW1kYy10YWItbmF2LWJhcnstLW1kYy10YWItaW5kaWNhdG9yLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6IzNmNTFiNTstLW1hdC10YWItaGVhZGVyLWRpc2FibGVkLXJpcHBsZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1pY29uLWNvbG9yOmJsYWNrOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjojM2Y1MWI1Oy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLXJpcHBsZS1jb2xvcjojM2Y1MWI1Oy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtcmlwcGxlLWNvbG9yOiMzZjUxYjU7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC10YWItaGVhZGVyLWluYWN0aXZlLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLWZvY3VzLWxhYmVsLXRleHQtY29sb3I6IzNmNTFiNTstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1ob3Zlci1sYWJlbC10ZXh0LWNvbG9yOiMzZjUxYjU7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtZm9jdXMtaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjU7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtaG92ZXItaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjV9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudHstLW1kYy10YWItaW5kaWNhdG9yLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2ZmNDA4MTstLW1hdC10YWItaGVhZGVyLWRpc2FibGVkLXJpcHBsZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1pY29uLWNvbG9yOmJsYWNrOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjojZmY0MDgxOy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLXJpcHBsZS1jb2xvcjojZmY0MDgxOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtcmlwcGxlLWNvbG9yOiNmZjQwODE7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC10YWItaGVhZGVyLWluYWN0aXZlLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLWZvY3VzLWxhYmVsLXRleHQtY29sb3I6I2ZmNDA4MTstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1ob3Zlci1sYWJlbC10ZXh0LWNvbG9yOiNmZjQwODE7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtZm9jdXMtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODE7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtaG92ZXItaW5kaWNhdG9yLWNvbG9yOiNmZjQwODF9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuey0tbWRjLXRhYi1pbmRpY2F0b3ItYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRhYi1oZWFkZXItZGlzYWJsZWQtcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWljb24tY29sb3I6YmxhY2s7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtcmlwcGxlLWNvbG9yOiNmNDQzMzY7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1yaXBwbGUtY29sb3I6I2Y0NDMzNjstLW1hdC10YWItaGVhZGVyLWluYWN0aXZlLWZvY3VzLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtaG92ZXItbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1mb2N1cy1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNjstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1ob3Zlci1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNn0ubWF0LW1kYy10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5ey0tbWF0LXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50ey0tbWF0LXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6I2ZmNDA4MTstLW1hdC10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm57LS1tYXQtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtYmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWZvcmVncm91bmQtY29sb3I6d2hpdGV9Lm1hdC1tZGMtdGFiLWhlYWRlcnstLW1kYy1zZWNvbmRhcnktbmF2aWdhdGlvbi10YWItY29udGFpbmVyLWhlaWdodDo0OHB4fS5tYXQtbWRjLXRhYi1oZWFkZXJ7LS1tYXQtdGFiLWhlYWRlci1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXRhYi1oZWFkZXItbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tYXQtdGFiLWhlYWRlci1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDg5Mjg1NzE0M2VtOy0tbWF0LXRhYi1oZWFkZXItbGFiZWwtdGV4dC1saW5lLWhlaWdodDozNnB4Oy0tbWF0LXRhYi1oZWFkZXItbGFiZWwtdGV4dC13ZWlnaHQ6NTAwfWh0bWx7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNmZmY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjE2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjE2fWh0bWx7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjp3aGl0ZTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1jaGVja2JveC1kaXNhYmxlZC1sYWJlbC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tYXQtbWRjLWNoZWNrYm94ey0tbWRjLWZvcm0tZmllbGQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1wcmltYXJ5ey0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6d2hpdGU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2t9Lm1hdC1tZGMtY2hlY2tib3gubWF0LXdhcm57LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjp3aGl0ZTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFja31odG1sey0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemU6NDBweDstLW1hdC1jaGVja2JveC10b3VjaC10YXJnZXQtZGlzcGxheTpibG9ja30ubWF0LW1kYy1jaGVja2JveHstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1kYy10ZXh0LWJ1dHRvbi1jb250YWluZXItc2hhcGU6NHB4Oy0tbWRjLXRleHQtYnV0dG9uLWtlZXAtdG91Y2gtdGFyZ2V0OmZhbHNlOy0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLXNoYXBlOjRweDstLW1kYy1maWxsZWQtYnV0dG9uLWtlZXAtdG91Y2gtdGFyZ2V0OmZhbHNlOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLXNoYXBlOjRweDstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWtlZXAtdG91Y2gtdGFyZ2V0OmZhbHNlOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1rZWVwLXRvdWNoLXRhcmdldDpmYWxzZTstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS13aWR0aDoxcHg7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tYXQtdGV4dC1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nOjhweDstLW1hdC10ZXh0LWJ1dHRvbi13aXRoLWljb24taG9yaXpvbnRhbC1wYWRkaW5nOjhweDstLW1hdC10ZXh0LWJ1dHRvbi1pY29uLXNwYWNpbmc6OHB4Oy0tbWF0LXRleHQtYnV0dG9uLWljb24tb2Zmc2V0OjA7LS1tYXQtZmlsbGVkLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmc6MTZweDstLW1hdC1maWxsZWQtYnV0dG9uLWljb24tc3BhY2luZzo4cHg7LS1tYXQtZmlsbGVkLWJ1dHRvbi1pY29uLW9mZnNldDotNHB4Oy0tbWF0LXByb3RlY3RlZC1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nOjE2cHg7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi1pY29uLXNwYWNpbmc6OHB4Oy0tbWF0LXByb3RlY3RlZC1idXR0b24taWNvbi1vZmZzZXQ6LTRweDstLW1hdC1vdXRsaW5lZC1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nOjE1cHg7LS1tYXQtb3V0bGluZWQtYnV0dG9uLWljb24tc3BhY2luZzo4cHg7LS1tYXQtb3V0bGluZWQtYnV0dG9uLWljb24tb2Zmc2V0Oi00cHh9aHRtbHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOmJsYWNrOy0tbWRjLXRleHQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1hdC10ZXh0LWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC10ZXh0LWJ1dHRvbi1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC10ZXh0LWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEpOy0tbWF0LXRleHQtYnV0dG9uLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1hdC10ZXh0LWJ1dHRvbi1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtdGV4dC1idXR0b24tcHJlc3NlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6d2hpdGU7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOmJsYWNrOy0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmlsbGVkLWJ1dHRvbi1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZmlsbGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1maWxsZWQtYnV0dG9uLWRpc2FibGVkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWZpbGxlZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKTstLW1hdC1maWxsZWQtYnV0dG9uLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1hdC1maWxsZWQtYnV0dG9uLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1hdC1maWxsZWQtYnV0dG9uLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpibGFjazstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWZvY3VzLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXByb3RlY3RlZC1idXR0b24taG92ZXItY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1wcmVzc2VkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFkb3ctY29sb3I6IzAwMDstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEpOy0tbWF0LXByb3RlY3RlZC1idXR0b24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LXByb3RlY3RlZC1idXR0b24tZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWF0LXByb3RlY3RlZC1idXR0b24tcHJlc3NlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOmJsYWNrOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1vdXRsaW5lZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKTstLW1hdC1vdXRsaW5lZC1idXR0b24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyfS5tYXQtbWRjLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMzZjUxYjU7LS1tYXQtdGV4dC1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6IzNmNTFiNTstLW1hdC10ZXh0LWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC4xKX0ubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZjQwODE7LS1tYXQtdGV4dC1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1hdC10ZXh0LWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuMSl9Lm1hdC1tZGMtYnV0dG9uLm1hdC13YXJuey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1hdC10ZXh0LWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRleHQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjEpfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWZpbGxlZC1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6d2hpdGU7LS1tYXQtZmlsbGVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmNDA4MTstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tYXQtZmlsbGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1maWxsZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LXdhcm57LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tYXQtZmlsbGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1maWxsZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojM2Y1MWI1Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LXByb3RlY3RlZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmNDA4MTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LXByb3RlY3RlZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IzNmNTFiNTstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC4xKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmY0MDgxOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOiNmZjQwODE7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgNjQsIDEyOSwgMC4xKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1odG1sey0tbWRjLXRleHQtYnV0dG9uLWNvbnRhaW5lci1oZWlnaHQ6MzZweDstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1oZWlnaHQ6MzZweDstLW1kYy1vdXRsaW5lZC1idXR0b24tY29udGFpbmVyLWhlaWdodDozNnB4Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWhlaWdodDozNnB4Oy0tbWF0LXRleHQtYnV0dG9uLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrOy0tbWF0LWZpbGxlZC1idXR0b24tdG91Y2gtdGFyZ2V0LWRpc3BsYXk6YmxvY2s7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi10b3VjaC10YXJnZXQtZGlzcGxheTpibG9jazstLW1hdC1vdXRsaW5lZC1idXR0b24tdG91Y2gtdGFyZ2V0LWRpc3BsYXk6YmxvY2t9aHRtbHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wODkyODU3MTQzZW07LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC13ZWlnaHQ6NTAwOy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtdHJhbnNmb3JtOm5vbmU7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDg5Mjg1NzE0M2VtOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC13ZWlnaHQ6NTAwOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC10cmFuc2Zvcm06bm9uZTstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wODkyODU3MTQzZW07LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtd2VpZ2h0OjUwMDstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC10cmFuc2Zvcm06bm9uZTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wODkyODU3MTQzZW07LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXdlaWdodDo1MDA7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXRyYW5zZm9ybTpub25lfWh0bWx7LS1tZGMtaWNvbi1idXR0b24taWNvbi1zaXplOjI0cHh9aHRtbHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOmluaGVyaXQ7LS1tZGMtaWNvbi1idXR0b24tZGlzYWJsZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LWljb24tYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWljb24tYnV0dG9uLWRpc2FibGVkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWljb24tYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMSk7LS1tYXQtaWNvbi1idXR0b24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LWljb24tYnV0dG9uLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1hdC1pY29uLWJ1dHRvbi1wcmVzc2VkLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMn1odG1sIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWljb24tYnV0dG9uLWljb24tY29sb3I6IzNmNTFiNTstLW1hdC1pY29uLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWF0LWljb24tYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjEpfWh0bWwgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LWFjY2VudHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmZjQwODE7LS1tYXQtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1hdC1pY29uLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuMSl9aHRtbCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmNDQzMzY7LS1tYXQtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6I2Y0NDMzNjstLW1hdC1pY29uLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1odG1sey0tbWF0LWljb24tYnV0dG9uLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrfS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2V7LS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZTo0OHB4O3dpZHRoOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1zdGF0ZS1sYXllci1zaXplKTtoZWlnaHQ6dmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO3BhZGRpbmc6MTJweH1odG1sey0tbWRjLWZhYi1jb250YWluZXItc2hhcGU6NTAlOy0tbWRjLWZhYi1pY29uLXNpemU6MjRweDstLW1kYy1mYWItc21hbGwtY29udGFpbmVyLXNoYXBlOjUwJTstLW1kYy1mYWItc21hbGwtaWNvbi1zaXplOjI0cHg7LS1tZGMtZXh0ZW5kZWQtZmFiLWNvbnRhaW5lci1oZWlnaHQ6NDhweDstLW1kYy1leHRlbmRlZC1mYWItY29udGFpbmVyLXNoYXBlOjI0cHh9aHRtbHstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWRjLWZhYi1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmFiLWZvY3VzLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1mYWItaG92ZXItY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZhYi1wcmVzc2VkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmFiLWNvbnRhaW5lci1zaGFkb3ctY29sb3I6IzAwMDstLW1hdC1mYWItZm9yZWdyb3VuZC1jb2xvcjpibGFjazstLW1hdC1mYWItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tYXQtZmFiLWRpc2FibGVkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWZhYi1yaXBwbGUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEpOy0tbWF0LWZhYi1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMDQ7LS1tYXQtZmFiLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1hdC1mYWItcHJlc3NlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtZmFiLWRpc2FibGVkLXN0YXRlLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LWZhYi1kaXNhYmxlZC1zdGF0ZS1mb3JlZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtZmFiLXNtYWxsLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1mYWItc21hbGwtY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZhYi1zbWFsbC1mb2N1cy1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmFiLXNtYWxsLWhvdmVyLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1mYWItc21hbGwtcHJlc3NlZC1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZhYi1zbWFsbC1jb250YWluZXItc2hhZG93LWNvbG9yOiMwMDA7LS1tYXQtZmFiLXNtYWxsLWZvcmVncm91bmQtY29sb3I6YmxhY2s7LS1tYXQtZmFiLXNtYWxsLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWZhYi1zbWFsbC1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1mYWItc21hbGwtcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKTstLW1hdC1mYWItc21hbGwtaG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LWZhYi1zbWFsbC1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtZmFiLXNtYWxsLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWF0LWZhYi1zbWFsbC1kaXNhYmxlZC1zdGF0ZS1jb250YWluZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1mYWItc21hbGwtZGlzYWJsZWQtc3RhdGUtZm9yZWdyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWV4dGVuZGVkLWZhYi1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZXh0ZW5kZWQtZmFiLWZvY3VzLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1leHRlbmRlZC1mYWItaG92ZXItY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWV4dGVuZGVkLWZhYi1wcmVzc2VkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZXh0ZW5kZWQtZmFiLWNvbnRhaW5lci1zaGFkb3ctY29sb3I6IzAwMH1odG1sIC5tYXQtbWRjLWZhYi5tYXQtcHJpbWFyeXstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tYXQtZmFiLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtZmFiLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpfWh0bWwgLm1hdC1tZGMtZmFiLm1hdC1hY2NlbnR7LS1tZGMtZmFiLWNvbnRhaW5lci1jb2xvcjojZmY0MDgxOy0tbWF0LWZhYi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1mYWItcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1odG1sIC5tYXQtbWRjLWZhYi5tYXQtd2FybnstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tYXQtZmFiLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtZmFiLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpfWh0bWwgLm1hdC1tZGMtbWluaS1mYWIubWF0LXByaW1hcnl7LS1tZGMtZmFiLXNtYWxsLWNvbnRhaW5lci1jb2xvcjojM2Y1MWI1Oy0tbWF0LWZhYi1zbWFsbC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1zbWFsbC1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1mYWItc21hbGwtcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1odG1sIC5tYXQtbWRjLW1pbmktZmFiLm1hdC1hY2NlbnR7LS1tZGMtZmFiLXNtYWxsLWNvbnRhaW5lci1jb2xvcjojZmY0MDgxOy0tbWF0LWZhYi1zbWFsbC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1zbWFsbC1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1mYWItc21hbGwtcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1odG1sIC5tYXQtbWRjLW1pbmktZmFiLm1hdC13YXJuey0tbWRjLWZhYi1zbWFsbC1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1hdC1mYWItc21hbGwtZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1mYWItc21hbGwtc3RhdGUtbGF5ZXItY29sb3I6d2hpdGU7LS1tYXQtZmFiLXNtYWxsLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9aHRtbHstLW1hdC1mYWItdG91Y2gtdGFyZ2V0LWRpc3BsYXk6YmxvY2s7LS1tYXQtZmFiLXNtYWxsLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrfWh0bWx7LS1tZGMtZXh0ZW5kZWQtZmFiLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtZXh0ZW5kZWQtZmFiLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLWV4dGVuZGVkLWZhYi1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDg5Mjg1NzE0M2VtOy0tbWRjLWV4dGVuZGVkLWZhYi1sYWJlbC10ZXh0LXdlaWdodDo1MDB9aHRtbHstLW1kYy1zbmFja2Jhci1jb250YWluZXItc2hhcGU6NHB4fWh0bWx7LS1tZGMtc25hY2tiYXItY29udGFpbmVyLWNvbG9yOiMzMzMzMzM7LS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7LS1tYXQtc25hY2stYmFyLWJ1dHRvbi1jb2xvcjojZmY0MDgxfWh0bWx7LS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1saW5lLWhlaWdodDoyMHB4Oy0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1zaXplOjE0cHg7LS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC10YWJsZS1yb3ctaXRlbS1vdXRsaW5lLXdpZHRoOjFweH1odG1sey0tbWF0LXRhYmxlLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtdGFibGUtaGVhZGVyLWhlYWRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXRhYmxlLXJvdy1pdGVtLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LXRhYmxlLWhlYWRlci1jb250YWluZXItaGVpZ2h0OjU2cHg7LS1tYXQtdGFibGUtZm9vdGVyLWNvbnRhaW5lci1oZWlnaHQ6NTJweDstLW1hdC10YWJsZS1yb3ctaXRlbS1jb250YWluZXItaGVpZ2h0OjUycHh9aHRtbHstLW1hdC10YWJsZS1oZWFkZXItaGVhZGxpbmUtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtdGFibGUtaGVhZGVyLWhlYWRsaW5lLWxpbmUtaGVpZ2h0OjIycHg7LS1tYXQtdGFibGUtaGVhZGVyLWhlYWRsaW5lLXNpemU6MTRweDstLW1hdC10YWJsZS1oZWFkZXItaGVhZGxpbmUtd2VpZ2h0OjUwMDstLW1hdC10YWJsZS1oZWFkZXItaGVhZGxpbmUtdHJhY2tpbmc6MC4wMDcxNDI4NTcxZW07LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC10YWJsZS1yb3ctaXRlbS1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC13ZWlnaHQ6NDAwOy0tbWF0LXRhYmxlLXJvdy1pdGVtLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tYXQtdGFibGUtZm9vdGVyLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC10YWJsZS1mb290ZXItc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtdGFibGUtZm9vdGVyLXN1cHBvcnRpbmctdGV4dC1zaXplOjE0cHg7LS1tYXQtdGFibGUtZm9vdGVyLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWF0LXRhYmxlLWZvb3Rlci1zdXBwb3J0aW5nLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW19aHRtbHstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLXdpZHRoOjRweDstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1zaXplOjQ4cHh9aHRtbHstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjV9aHRtbCAubWF0LWFjY2VudHstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODF9aHRtbCAubWF0LXdhcm57LS1tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2fWh0bWx7LS1tYXQtYmFkZ2UtY29udGFpbmVyLXNoYXBlOjUwJTstLW1hdC1iYWRnZS1jb250YWluZXItc2l6ZTp1bnNldDstLW1hdC1iYWRnZS1zbWFsbC1zaXplLWNvbnRhaW5lci1zaXplOnVuc2V0Oy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLXNpemU6dW5zZXQ7LS1tYXQtYmFkZ2UtbGVnYWN5LWNvbnRhaW5lci1zaXplOjIycHg7LS1tYXQtYmFkZ2UtbGVnYWN5LXNtYWxsLXNpemUtY29udGFpbmVyLXNpemU6MTZweDstLW1hdC1iYWRnZS1sZWdhY3ktbGFyZ2Utc2l6ZS1jb250YWluZXItc2l6ZToyOHB4Oy0tbWF0LWJhZGdlLWNvbnRhaW5lci1vZmZzZXQ6LTExcHggMDstLW1hdC1iYWRnZS1zbWFsbC1zaXplLWNvbnRhaW5lci1vZmZzZXQ6LThweCAwOy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLW9mZnNldDotMTRweCAwOy0tbWF0LWJhZGdlLWNvbnRhaW5lci1vdmVybGFwLW9mZnNldDotMTFweDstLW1hdC1iYWRnZS1zbWFsbC1zaXplLWNvbnRhaW5lci1vdmVybGFwLW9mZnNldDotOHB4Oy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLW92ZXJsYXAtb2Zmc2V0Oi0xNHB4Oy0tbWF0LWJhZGdlLWNvbnRhaW5lci1wYWRkaW5nOjA7LS1tYXQtYmFkZ2Utc21hbGwtc2l6ZS1jb250YWluZXItcGFkZGluZzowOy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLXBhZGRpbmc6MH1odG1sey0tbWF0LWJhZGdlLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC1iYWRnZS10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWJhZGdlLWRpc2FibGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6I2I5YjliOTstLW1hdC1iYWRnZS1kaXNhYmxlZC1zdGF0ZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1hdC1iYWRnZS1hY2NlbnR7LS1tYXQtYmFkZ2UtYmFja2dyb3VuZC1jb2xvcjojZmY0MDgxOy0tbWF0LWJhZGdlLXRleHQtY29sb3I6d2hpdGV9Lm1hdC1iYWRnZS13YXJuey0tbWF0LWJhZGdlLWJhY2tncm91bmQtY29sb3I6I2Y0NDMzNjstLW1hdC1iYWRnZS10ZXh0LWNvbG9yOndoaXRlfWh0bWx7LS1tYXQtYmFkZ2UtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1iYWRnZS10ZXh0LXNpemU6MTJweDstLW1hdC1iYWRnZS10ZXh0LXdlaWdodDo2MDA7LS1tYXQtYmFkZ2Utc21hbGwtc2l6ZS10ZXh0LXNpemU6OXB4Oy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtdGV4dC1zaXplOjI0cHh9aHRtbHstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXNoYXBlOjRweH1odG1sey0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZX1odG1sey0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXRleHQtc2l6ZToxNHB4Oy0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItdGV4dC10cmFja2luZzowLjAxNzg1NzE0MjllbTstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLWhlaWdodDozNnB4Oy0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLXNoYXBlOjJweDstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjE7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1zaGFwZTo0cHg7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMDQ7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTJ9aHRtbHstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtbGVnYWN5LWJ1dHRvbi10b2dnbGUtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1zZWxlY3RlZC1zdGF0ZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtbGVnYWN5LWJ1dHRvbi10b2dnbGUtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojZTBlMGUwOy0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLWRpc2FibGVkLXN0YXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjI2KTstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWU7LS1tYXQtbGVnYWN5LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojYmRiZGJkOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojZTBlMGUwOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtc2VsZWN0ZWQtc3RhdGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQtc3RhdGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMjYpOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLXNlbGVjdGVkLXN0YXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLXNlbGVjdGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6I2JkYmRiZDstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWRpdmlkZXItY29sb3I6I2UwZTBlMH1odG1sey0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtaGVpZ2h0OjQ4cHh9aHRtbHstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXdlaWdodDo0MDA7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtbGFiZWwtdGV4dC1saW5lLWhlaWdodDoyNHB4Oy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtbGFiZWwtdGV4dC1zaXplOjE2cHg7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWxhYmVsLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItY29udGFpbmVyLXNoYXBlOjRweDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWNvbnRhaW5lci10b3VjaC1zaGFwZTo0cHg7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWNvbnRhaW5lci10b3VjaC1lbGV2YXRpb24tc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjU7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLXNlbGVjdGVkLWRpc2FibGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC40KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtdG9kYXktc2VsZWN0ZWQtc3RhdGUtb3V0bGluZS1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtZm9jdXMtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1ob3Zlci1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuMyk7LS1tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLXN0YXRlLWljb24tY29sb3I6IzNmNTFiNTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tcmFuZ2Utc3RhdGUtYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjIpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1jb21wYXJpc29uLXJhbmdlLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDksIDE3MSwgMCwgMC4yKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tb3ZlcmxhcC1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNhOGRhYjU7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLW92ZXJsYXAtcmFuZ2Utc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojNDZhMzVlOy0tbWF0LWRhdGVwaWNrZXItdG9nZ2xlLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWJvZHktbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItcGVyaW9kLWJ1dHRvbi10ZXh0LWNvbG9yOmJsYWNrOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItcGVyaW9kLWJ1dHRvbi1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1uYXZpZ2F0aW9uLWJ1dHRvbi1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1oZWFkZXItZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItaGVhZGVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtdG9kYXktb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS10b2RheS1kaXNhYmxlZC1zdGF0ZS1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xOCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtZGlzYWJsZWQtc3RhdGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1wcmV2aWV3LXN0YXRlLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjI0KTstLW1hdC1kYXRlcGlja2VyLXJhbmdlLWlucHV0LXNlcGFyYXRvci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LWRhdGVwaWNrZXItcmFuZ2UtaW5wdXQtZGlzYWJsZWQtc3RhdGUtc2VwYXJhdG9yLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZGF0ZXBpY2tlci1yYW5nZS1pbnB1dC1kaXNhYmxlZC1zdGF0ZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWNvbnRhaW5lci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudHstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtc2VsZWN0ZWQtc3RhdGUtdGV4dC1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojZmY0MDgxOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1kaXNhYmxlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjQpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS10b2RheS1zZWxlY3RlZC1zdGF0ZS1vdXRsaW5lLWNvbG9yOndoaXRlOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1mb2N1cy1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1ob3Zlci1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjIpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1jb21wYXJpc29uLXJhbmdlLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDksIDE3MSwgMCwgMC4yKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tb3ZlcmxhcC1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNhOGRhYjU7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLW92ZXJsYXAtcmFuZ2Utc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojNDZhMzVlfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLXNlbGVjdGVkLWRpc2FibGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC40KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtdG9kYXktc2VsZWN0ZWQtc3RhdGUtb3V0bGluZS1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtZm9jdXMtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1ob3Zlci1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuMyk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLXJhbmdlLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4yKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tY29tcGFyaXNvbi1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ5LCAxNzEsIDAsIDAuMik7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLW92ZXJsYXAtcmFuZ2Utc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojYThkYWI1Oy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1vdmVybGFwLXJhbmdlLXNlbGVjdGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6IzQ2YTM1ZX0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50ey0tbWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS1zdGF0ZS1pY29uLWNvbG9yOiNmZjQwODF9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57LS1tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLXN0YXRlLWljb24tY29sb3I6I2Y0NDMzNn0ubWF0LWNhbGVuZGFyLWNvbnRyb2xzey0tbWF0LWljb24tYnV0dG9uLXRvdWNoLXRhcmdldC1kaXNwbGF5Om5vbmV9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNley0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemU6NDBweDt3aWR0aDp2YXIoLS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSk7aGVpZ2h0OnZhcigtLW1kYy1pY29uLWJ1dHRvbi1zdGF0ZS1sYXllci1zaXplKTtwYWRkaW5nOjhweH1odG1sey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLXRleHQtc2l6ZToxM3B4Oy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItYm9keS1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWJvZHktbGFiZWwtdGV4dC13ZWlnaHQ6NTAwOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItcGVyaW9kLWJ1dHRvbi10ZXh0LXNpemU6MTRweDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLXBlcmlvZC1idXR0b24tdGV4dC13ZWlnaHQ6NTAwOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItaGVhZGVyLXRleHQtc2l6ZToxMXB4Oy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItaGVhZGVyLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LWRpdmlkZXItd2lkdGg6MXB4fWh0bWx7LS1tYXQtZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfWh0bWx7LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tYXQtZXhwYW5zaW9uLWxlZ2FjeS1oZWFkZXItaW5kaWNhdG9yLWRpc3BsYXk6aW5saW5lLWJsb2NrOy0tbWF0LWV4cGFuc2lvbi1oZWFkZXItaW5kaWNhdG9yLWRpc3BsYXk6bm9uZX1odG1sey0tbWF0LWV4cGFuc2lvbi1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1leHBhbnNpb24tY29udGFpbmVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1leHBhbnNpb24tYWN0aW9ucy1kaXZpZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tYXQtZXhwYW5zaW9uLWhlYWRlci1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMDQpOy0tbWF0LWV4cGFuc2lvbi1oZWFkZXItZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1leHBhbnNpb24taGVhZGVyLWRpc2FibGVkLXN0YXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjI2KTstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1leHBhbnNpb24taGVhZGVyLWRlc2NyaXB0aW9uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZXhwYW5zaW9uLWhlYWRlci1pbmRpY2F0b3ItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX1odG1sey0tbWF0LWV4cGFuc2lvbi1oZWFkZXItY29sbGFwc2VkLXN0YXRlLWhlaWdodDo0OHB4Oy0tbWF0LWV4cGFuc2lvbi1oZWFkZXItZXhwYW5kZWQtc3RhdGUtaGVpZ2h0OjY0cHh9aHRtbHstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtZXhwYW5zaW9uLWhlYWRlci10ZXh0LXNpemU6MTRweDstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtd2VpZ2h0OjUwMDstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtbGluZS1oZWlnaHQ6aW5oZXJpdDstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtdHJhY2tpbmc6aW5oZXJpdDstLW1hdC1leHBhbnNpb24tY29udGFpbmVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci10ZXh0LXNpemU6MTRweDstLW1hdC1leHBhbnNpb24tY29udGFpbmVyLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1ncmlkLWxpc3QtdGlsZS1oZWFkZXItcHJpbWFyeS10ZXh0LXNpemU6MTRweDstLW1hdC1ncmlkLWxpc3QtdGlsZS1oZWFkZXItc2Vjb25kYXJ5LXRleHQtc2l6ZToxMnB4Oy0tbWF0LWdyaWQtbGlzdC10aWxlLWZvb3Rlci1wcmltYXJ5LXRleHQtc2l6ZToxNHB4Oy0tbWF0LWdyaWQtbGlzdC10aWxlLWZvb3Rlci1zZWNvbmRhcnktdGV4dC1zaXplOjEycHh9aHRtbHstLW1hdC1pY29uLWNvbG9yOmluaGVyaXR9Lm1hdC1pY29uLm1hdC1wcmltYXJ5ey0tbWF0LWljb24tY29sb3I6IzNmNTFiNX0ubWF0LWljb24ubWF0LWFjY2VudHstLW1hdC1pY29uLWNvbG9yOiNmZjQwODF9Lm1hdC1pY29uLm1hdC13YXJuey0tbWF0LWljb24tY29sb3I6I2Y0NDMzNn1odG1sey0tbWF0LXNpZGVuYXYtY29udGFpbmVyLXNoYXBlOjA7LS1tYXQtc2lkZW5hdi1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1zaWRlbmF2LWNvbnRhaW5lci13aWR0aDphdXRvfWh0bWx7LS1tYXQtc2lkZW5hdi1jb250YWluZXItZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LXNpZGVuYXYtY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc2lkZW5hdi1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXNpZGVuYXYtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7LS1tYXQtc2lkZW5hdi1jb250ZW50LXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zaWRlbmF2LXNjcmltLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX1odG1sey0tbWF0LXN0ZXBwZXItaGVhZGVyLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItZG9uZS1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC1zdGVwcGVyLWhlYWRlci1kb25lLXN0YXRlLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1lZGl0LXN0YXRlLWljb24tYmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1Oy0tbWF0LXN0ZXBwZXItaGVhZGVyLWVkaXQtc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LXN0ZXBwZXItY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWF0LXN0ZXBwZXItbGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCk7LS1tYXQtc3RlcHBlci1oZWFkZXItZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1zdGVwcGVyLWhlYWRlci1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtc3RlcHBlci1oZWFkZXItb3B0aW9uYWwtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LXN0ZXBwZXItaGVhZGVyLXNlbGVjdGVkLXN0YXRlLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zdGVwcGVyLWhlYWRlci1lcnJvci1zdGF0ZS1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtc3RlcHBlci1oZWFkZXItZXJyb3Itc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItZXJyb3Itc3RhdGUtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWh0bWwgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50ey0tbWF0LXN0ZXBwZXItaGVhZGVyLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6I2ZmNDA4MTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItZG9uZS1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6I2ZmNDA4MTstLW1hdC1zdGVwcGVyLWhlYWRlci1kb25lLXN0YXRlLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1lZGl0LXN0YXRlLWljb24tYmFja2dyb3VuZC1jb2xvcjojZmY0MDgxOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWVkaXQtc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlfWh0bWwgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybnstLW1hdC1zdGVwcGVyLWhlYWRlci1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItc2VsZWN0ZWQtc3RhdGUtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItc2VsZWN0ZWQtc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWRvbmUtc3RhdGUtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItZG9uZS1zdGF0ZS1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItZWRpdC1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6I2Y0NDMzNjstLW1hdC1zdGVwcGVyLWhlYWRlci1lZGl0LXN0YXRlLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZX1odG1sey0tbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodDo3MnB4fWh0bWx7LS1tYXQtc3RlcHBlci1jb250YWluZXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1zdGVwcGVyLWhlYWRlci1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWF0LXN0ZXBwZXItaGVhZGVyLWxhYmVsLXRleHQtd2VpZ2h0OjQwMDstLW1hdC1zdGVwcGVyLWhlYWRlci1lcnJvci1zdGF0ZS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1zb3J0LWFycm93LWNvbG9yOiM3NTc1NzV9aHRtbHstLW1hdC10b29sYmFyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOndoaXRlc21va2U7LS1tYXQtdG9vbGJhci1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfS5tYXQtdG9vbGJhci5tYXQtcHJpbWFyeXstLW1hdC10b29sYmFyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjU7LS1tYXQtdG9vbGJhci1jb250YWluZXItdGV4dC1jb2xvcjp3aGl0ZX0ubWF0LXRvb2xiYXIubWF0LWFjY2VudHstLW1hdC10b29sYmFyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiNmZjQwODE7LS1tYXQtdG9vbGJhci1jb250YWluZXItdGV4dC1jb2xvcjp3aGl0ZX0ubWF0LXRvb2xiYXIubWF0LXdhcm57LS1tYXQtdG9vbGJhci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRvb2xiYXItY29udGFpbmVyLXRleHQtY29sb3I6d2hpdGV9aHRtbHstLW1hdC10b29sYmFyLXN0YW5kYXJkLWhlaWdodDo2NHB4Oy0tbWF0LXRvb2xiYXItbW9iaWxlLWhlaWdodDo1NnB4fWh0bWx7LS1tYXQtdG9vbGJhci10aXRsZS10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXRvb2xiYXItdGl0bGUtdGV4dC1saW5lLWhlaWdodDozMnB4Oy0tbWF0LXRvb2xiYXItdGl0bGUtdGV4dC1zaXplOjIwcHg7LS1tYXQtdG9vbGJhci10aXRsZS10ZXh0LXRyYWNraW5nOjAuMDEyNWVtOy0tbWF0LXRvb2xiYXItdGl0bGUtdGV4dC13ZWlnaHQ6NTAwfWh0bWx7LS1tYXQtdHJlZS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC10cmVlLW5vZGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfWh0bWx7LS1tYXQtdHJlZS1ub2RlLW1pbi1oZWlnaHQ6NDhweH1odG1sey0tbWF0LXRyZWUtbm9kZS10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXRyZWUtbm9kZS10ZXh0LXNpemU6MTRweDstLW1hdC10cmVlLW5vZGUtdGV4dC13ZWlnaHQ6NDAwfS5tYXQtaDEsLm1hdC1oZWFkbGluZS01LC5tYXQtdHlwb2dyYXBoeSAubWF0LWgxLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTUsLm1hdC10eXBvZ3JhcGh5IGgxe2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyLC5tYXQtaGVhZGxpbmUtNiwubWF0LXR5cG9ncmFwaHkgLm1hdC1oMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1oZWFkbGluZS02LC5tYXQtdHlwb2dyYXBoeSBoMntmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMTI1ZW07bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJ0aXRsZS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWgzLC5tYXQtdHlwb2dyYXBoeSAubWF0LXN1YnRpdGxlLTEsLm1hdC10eXBvZ3JhcGh5IGgze2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwOTM3NWVtO21hcmdpbjowIDAgMTZweH0ubWF0LWg0LC5tYXQtYm9keS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWg0LC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHktMSwubWF0LXR5cG9ncmFwaHkgaDR7Zm9udDo0MDAgMTZweC8yNHB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDMxMjVlbTttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgLm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgaDV7Zm9udDo0MDAgY2FsYygxNHB4Ki44MykvMjBweCBSb2JvdG8sIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IGg2e2ZvbnQ6NDAwIGNhbGMoMTRweCouNjcpLzIwcHggUm9ib3RvLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nLC5tYXQtc3VidGl0bGUtMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LXN0cm9uZywubWF0LXR5cG9ncmFwaHkgLm1hdC1zdWJ0aXRsZS0ye2ZvbnQ6NTAwIDE0cHgvMjJweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwNzE0Mjg1NzFlbX0ubWF0LWJvZHksLm1hdC1ib2R5LTIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtYm9keSwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LTIsLm1hdC10eXBvZ3JhcGh5e2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAxNzg1NzE0MjllbX0ubWF0LWJvZHkgcCwubWF0LWJvZHktMiBwLC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHkgcCwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LTIgcCwubWF0LXR5cG9ncmFwaHkgcHttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbCwubWF0LWNhcHRpb24sLm1hdC10eXBvZ3JhcGh5IC5tYXQtc21hbGwsLm1hdC10eXBvZ3JhcGh5IC5tYXQtY2FwdGlvbntmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMzMzMzMzMzMzZW19Lm1hdC1oZWFkbGluZS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTF7Zm9udDozMDAgOTZweC85NnB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMTU2MjVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1oZWFkbGluZS0yLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTJ7Zm9udDozMDAgNjBweC82MHB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotLjAwODMzMzMzMzNlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1oZWFkbGluZS0zLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTN7Zm9udDo0MDAgNDhweC81MHB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtaGVhZGxpbmUtNCwubWF0LXR5cG9ncmFwaHkgLm1hdC1oZWFkbGluZS00e2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwNzM1Mjk0MTJlbTttYXJnaW46MCAwIDY0cHh9Il0sInNvdXJjZVJvb3QiOiIifQ== */@charset \"UTF-8\";\n/**\n * Colors used across the Navigator. Shared by the ATT&CK Website.\n * For each color-pair:\n * - \"color\" refers to the color itself\n * - \"on-color\" refers to the most readable text-color to appear on top of the color.\n * Note: some colors don't define on-colors. This is because, for these colors, they aren't intended to\n * appear with inner content. For example, \"link\" is only intended to be used for link text, which inherently\n * cannot have inner text.\n */\n/* You can add global styles to this file, and also import other style files */\n/* roboto-cyrillic-ext-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-cyrillic-ext-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-cyrillic-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* roboto-cyrillic-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-cyrillic-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-cyrillic-400-normal.woff') format(\"woff\");\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* roboto-greek-ext-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-greek-ext-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-greek-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+1F00-1FFF;\n}\n/* roboto-greek-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-greek-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-greek-400-normal.woff') format(\"woff\");\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* roboto-vietnamese-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-vietnamese-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-vietnamese-400-normal.woff') format(\"woff\");\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* roboto-latin-ext-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-latin-ext-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-latin-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* roboto-latin-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-latin-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-latin-400-normal.woff') format(\"woff\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* roboto-mono-cyrillic-ext-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-mono-cyrillic-ext-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-mono-cyrillic-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* roboto-mono-cyrillic-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-mono-cyrillic-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-mono-cyrillic-400-normal.woff') format(\"woff\");\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* roboto-mono-greek-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-mono-greek-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-mono-greek-400-normal.woff') format(\"woff\");\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* roboto-mono-vietnamese-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-mono-vietnamese-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-mono-vietnamese-400-normal.woff') format(\"woff\");\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* roboto-mono-latin-ext-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-mono-latin-ext-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-mono-latin-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* roboto-mono-latin-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('mitre/roboto-mono-latin-400-normal.woff2') format(\"woff2\"), url('mitre/roboto-mono-latin-400-normal.woff') format(\"woff\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/**\n * Colors used across the Navigator. Shared by the ATT&CK Website.\n * For each color-pair:\n * - \"color\" refers to the color itself\n * - \"on-color\" refers to the most readable text-color to appear on top of the color.\n * Note: some colors don't define on-colors. This is because, for these colors, they aren't intended to\n * appear with inner content. For example, \"link\" is only intended to be used for link text, which inherently\n * cannot have inner text.\n */\n@media print {\n @page {\n size: A3;\n margin: 0;\n }\n}\n@font-face {\n font-family: \"Material Icons\";\n font-style: normal;\n font-display: block;\n font-weight: 400;\n src: local(\"Material Icons\"), local(\"MaterialIcons-Regular\"), url('mitre/MaterialIcons-Regular.ttf') format(\"truetype\");\n}\n.material-icons {\n font-family: \"Material Icons\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px; /* Preferred icon size */\n display: inline-block;\n line-height: 1;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: normal;\n white-space: nowrap;\n direction: ltr;\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n /* Support for IE. */\n font-feature-settings: \"liga\";\n}\n\n.text-deemphasis {\n color: #6b7279;\n font-size: 12px !important;\n letter-spacing: normal;\n}\n\nbody {\n margin: 0;\n overflow-y: scroll;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n}\n\n@media (prefers-color-scheme: dark) {\n .theme-use-system .svgcontainer {\n background-color: white;\n }\n}\n.theme-override-dark .svgcontainer {\n background-color: white;\n}\n\n.mdc-button, .mat-mdc-button-base {\n letter-spacing: normal !important;\n}\n\n.mat-dialog .mat-mdc-dialog-actions {\n justify-content: center;\n}\n.mat-dialog .mat-mdc-dialog-title {\n text-align: center;\n}\n.mat-dialog .mat-mdc-dialog-content {\n color: black !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-dialog .mat-mdc-dialog-content {\n color: white !important;\n }\n}\n.theme-override-dark .mat-dialog .mat-mdc-dialog-content {\n color: white !important;\n}\n\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mdc-dialog__surface {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mdc-dialog__surface {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mdc-dialog__title,\n .theme-use-system .mat-mdc-dialog-container .mdc-dialog__content {\n color: white !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mdc-dialog__title,\n.theme-override-dark .mat-mdc-dialog-container .mdc-dialog__content {\n color: white !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mat-mdc-button-base {\n border-color: #4c4c68;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mat-mdc-button-base {\n border-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mat-mdc-button-base {\n color: white;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mat-mdc-button-base {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .help-dialog h1 {\n border-color: white;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .help-dialog h1 {\n border-color: white;\n}\n.mat-mdc-dialog-container .content {\n overflow-y: scroll;\n max-height: 60vh;\n font-size: 11pt;\n}\n.mat-mdc-dialog-container .content p,\n.mat-mdc-dialog-container .content ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n}\n.mat-mdc-dialog-container .content code {\n color: black;\n padding: 1px 2px;\n word-break: break-word;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .content code {\n background-color: #1a1a23;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .content code {\n background-color: #1a1a23;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .content code {\n border-color: #ddd !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .content code {\n border-color: #ddd !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .content code {\n color: white !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .content code {\n color: white !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container a {\n color: #7588e8 !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container a {\n color: #7588e8 !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container a:active,\n .theme-use-system .mat-mdc-dialog-container a:visited {\n color: #e847e8;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container a:active,\n.theme-override-dark .mat-mdc-dialog-container a:visited {\n color: #e847e8;\n}\n.mat-mdc-dialog-container .top-button {\n display: inline;\n float: right;\n margin-top: 14px;\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */ /* Konqueror HTML */ /* Firefox */ /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome and Opera */\n}\n\n.controlsContainer {\n text-align: right;\n display: block;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer {\n background-color: #ddd;\n }\n}\n.theme-override-light .controlsContainer {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer {\n background-color: #2e2e3f;\n}\n@media print {\n .controlsContainer {\n display: none;\n }\n}\n.controlsContainer ul {\n margin: 0;\n padding: 0;\n}\n.controlsContainer .label .control-row-item + .control-row-item {\n margin-right: 6px;\n}\n.controlsContainer .control-sections > li {\n list-style: none;\n display: inline-block;\n border-left: 1px solid #c9c9c9;\n padding: 0 5px 0 5px;\n position: relative;\n}\n.controlsContainer .control-sections > li .section-label {\n font-size: 8pt;\n top: -12px;\n position: absolute;\n padding: 0 5px;\n border-radius: 2px 2px 0 0;\n text-align: center;\n cursor: default;\n -webkit-user-select: none;\n user-select: none;\n white-space: nowrap;\n z-index: 1;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n background-color: #ddd;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .section-label {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .section-label {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n color: #555;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .section-label {\n color: #555;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .section-label {\n color: white;\n}\n.controlsContainer .control-sections > li .control-row-item {\n display: inline-block;\n position: relative;\n height: 34px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: black;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: #aaaaaa;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: #aaaaaa;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button {\n border-radius: 3px;\n padding: 5px;\n height: 24px;\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #d0d0d0;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #d0d0d0;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #4c4c68;\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button.dropdown::after {\n font-size: 5pt;\n content: \"\u25BC\";\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button span {\n vertical-align: middle;\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button .control-label {\n padding-right: 5px;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container {\n position: absolute;\n z-index: 100;\n width: max-content;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: white;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid black;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid #4c4c68;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid #4c4c68;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px rgba(0, 0, 0, 0.5);\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px rgba(0, 0, 0, 0.5);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px #2e2e3f;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.left {\n right: 0;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.inputfield {\n width: 150px;\n padding: 0px 10px 10px;\n z-index: 1000;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.inputfield .mat-mdc-form-field {\n width: 100%;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.inputfield .mat-mdc-form-field:first-child {\n padding-top: 5px;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-floating-label {\n color: rgba(255, 255, 255, 0.9);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-floating-label {\n color: rgba(255, 255, 255, 0.9);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element,\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element::placeholder {\n color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element,\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element::placeholder {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element:disabled {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element:disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mdc-line-ripple::before {\n border-bottom-color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mdc-line-ripple::before {\n border-bottom-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n border-bottom-color: transparent;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n border-bottom-color: transparent;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-value-text {\n color: rgba(255, 255, 255, 0.9);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-value-text {\n color: rgba(255, 255, 255, 0.9);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-arrow {\n color: rgba(255, 255, 255, 0.9);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-arrow {\n color: rgba(255, 255, 255, 0.9);\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(0, 0, 0, 0.38);\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(0, 0, 0, 0.38);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.checkbox-custom {\n opacity: 0;\n position: absolute;\n}\n.checkbox-custom:disabled {\n cursor: default;\n}\n\n.checkbox-custom,\n.checkbox-custom-label {\n display: inline-block;\n vertical-align: middle;\n margin: 5px;\n cursor: pointer;\n}\n\n.checkbox-custom-label {\n position: relative;\n}\n.checkbox-custom-label.disabled {\n cursor: default;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom-label.disabled {\n color: rgba(0, 0, 0, 0.46);\n }\n}\n.theme-override-light .checkbox-custom-label.disabled {\n color: rgba(0, 0, 0, 0.46);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom-label.disabled {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .checkbox-custom-label.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.checkbox-custom + .checkbox-custom-label:before {\n content: \"\";\n background: #fff;\n border: 3px solid #ddd;\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 10px;\n padding: 2px;\n margin-right: 5px;\n text-align: center;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .checkbox-custom:checked + .checkbox-custom-label:before {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n background: #464dff;\n }\n}\n.theme-override-dark .checkbox-custom:checked + .checkbox-custom-label:before {\n background: #464dff;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px rgb(96, 197, 255);\n }\n}\n.theme-override-light .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #464dff;\n }\n}\n.theme-override-dark .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #464dff;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #b0b0b0;\n }\n}\n.theme-override-light .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #b0b0b0;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #a3a3a3;\n }\n}\n.theme-override-dark .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #a3a3a3;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #b0b0b0;\n }\n}\n.theme-override-light .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #b0b0b0;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #a3a3a3;\n }\n}\n.theme-override-dark .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #a3a3a3;\n}\n\n.dialog-custom .mat-mdc-dialog-container {\n padding: 0 !important;\n}\n\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-side.mat-drawer-end {\n border-left: none;\n }\n}\n.theme-override-dark .mat-drawer-side.mat-drawer-end {\n border-left: none;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .mat-drawer-inner-container {\n background-color: #f1f1f1;\n }\n}\n.theme-override-light .mat-drawer-inner-container {\n background-color: #f1f1f1;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .mat-drawer-inner-container {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container a {\n color: #7588e8;\n }\n}\n.theme-override-dark .mat-drawer-inner-container a {\n color: #7588e8;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container a:visited,\n .theme-use-system .mat-drawer-inner-container a:active {\n color: #e847e8;\n }\n}\n.theme-override-dark .mat-drawer-inner-container a:visited,\n.theme-override-dark .mat-drawer-inner-container a:active {\n color: #e847e8;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__leading,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__notch,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__trailing, .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__leading,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__notch,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__trailing {\n border-color: white !important;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__leading,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__notch,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__trailing, .theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__leading,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__notch,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__trailing {\n border-color: white !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-card {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-card {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-card {\n color: white;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-card {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-expansion-panel .mat-expansion-panel-header,\n .theme-use-system .mat-drawer-inner-container .mat-expansion-panel-body {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-expansion-panel .mat-expansion-panel-header,\n.theme-override-dark .mat-drawer-inner-container .mat-expansion-panel-body {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-expansion-panel-header-title {\n color: white;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-expansion-panel-header-title {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-divider {\n border-top-color: #4c4c68;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-divider {\n border-top-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-button-base {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-button-base {\n background-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-button-base {\n color: white;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-button-base {\n color: white;\n}\n\n.mat-mdc-dialog-container .markdown {\n padding: 25px;\n}\n\n.popover {\n position: absolute;\n border-radius: 4px !important;\n width: unset !important;\n}\n\n.mat-mdc-form-field .mdc-text-field--filled, .mat-mdc-form-field .mdc-text-field--filled:hover {\n background-color: transparent !important;\n}\n\n.hide-subscript .mat-mdc-form-field-subscript-wrapper {\n display: none !important;\n}\n\n.mat-mdc-floating-label, .mat-mdc-form-field-hint {\n letter-spacing: normal !important;\n}\n\n.mat-expansion-panel-body {\n padding-bottom: 24px !important;\n}\n\n.matrices {\n overflow-x: scroll;\n min-height: 50vh;\n border: 1px solid #ddd;\n transition: height ease-in-out 0.2s;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .matrices {\n background-color: #21212c;\n }\n}\n.theme-override-dark .matrices {\n background-color: #21212c;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .matrices {\n color: white;\n }\n}\n.theme-override-dark .matrices {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .matrices {\n border: none;\n }\n}\n.theme-override-dark .matrices {\n border: none;\n}\n.matrices .spinner {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 50vh;\n}\n.matrices .spinner mat-progress-spinner circle {\n stroke: #6b7279;\n}\n.matrices .matrices-columns {\n display: table;\n}\n.matrices .matrices-columns .matrix-column {\n display: table-cell;\n white-space: normal;\n padding: 10px;\n}\n@media print {\n .matrices .matrices-columns .matrix-column {\n padding: 0;\n }\n}\n.matrices .matrices-columns .matrix-column .matrix-name {\n text-align: center;\n padding-bottom: 5px;\n margin-bottom: 5px;\n font-size: 16px;\n border-bottom: 1px solid #ddd;\n}\n.matrices .matrices-columns .matrix-column + .matrix-column {\n border-left: 1px solid #ddd;\n}\n\n.colorpicker {\n width: 88px !important;\n align-items: center;\n text-align: center;\n}\n.colorpicker .color-block {\n cursor: pointer;\n margin: 2.5px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorpicker .color-block {\n border: 1px solid black;\n }\n}\n.theme-override-light .colorpicker .color-block {\n border: 1px solid black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorpicker .color-block {\n border: 1px solid rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorpicker .color-block {\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n.colorpicker .color-block.square {\n display: inline-block;\n width: 15px;\n height: 15px;\n}\n.colorpicker .color-block.wide {\n display: block;\n height: 15px;\n font-size: 10pt;\n color: gray;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorpicker .color-block.wide {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorpicker .color-block.wide {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.colorSetup {\n font-size: 8pt;\n}\n.colorSetup .colorpicker {\n width: 10ex;\n}\n.colorSetup .gradient-section-label {\n font-weight: bold;\n padding: 4px;\n text-align: center;\n}\n.colorSetup .gradient-section-content {\n border-style: solid;\n border-width: 1px 0;\n text-align: left;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .gradient-section-content {\n border-color: black;\n }\n}\n.theme-override-light .colorSetup .gradient-section-content {\n border-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-section-content {\n border-color: white;\n }\n}\n.theme-override-dark .colorSetup .gradient-section-content {\n border-color: white;\n}\n.colorSetup .display-buttons {\n text-align: center;\n}\n.colorSetup .display-buttons .squarebutton {\n padding: 4px 0;\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .display-buttons .squarebutton {\n border: 1px solid #ddd;\n }\n}\n.theme-override-light .colorSetup .display-buttons .squarebutton {\n border: 1px solid #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .display-buttons .squarebutton {\n border: 1px solid rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorSetup .display-buttons .squarebutton {\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .display-buttons .squarebutton:hover {\n background: #f1f1f1;\n }\n}\n.theme-override-light .colorSetup .display-buttons .squarebutton:hover {\n background: #f1f1f1;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .display-buttons .squarebutton:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .colorSetup .display-buttons .squarebutton:hover {\n background: #464dff;\n}\n.colorSetup .display-buttons .squarebutton.gradient:hover {\n text-decoration: underline;\n}\n.colorSetup .display-buttons .presetsmenu {\n width: 90%;\n display: inline-block;\n}\n.colorSetup .gradient-controls table {\n padding: 0;\n margin: 0;\n border-collapse: collapse;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button {\n background-color: #1a1a23;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button {\n background-color: #1a1a23;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button {\n border: 1px solid rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button {\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button {\n color: white;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button:hover {\n background-color: black;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button:hover {\n background-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td input {\n background-color: black;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td input {\n background-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td input {\n color: white;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td input {\n color: white;\n}\n.colorSetup .gradient-controls table td.buttons > div {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.colorSetup .gradient-controls table td .left,\n.colorSetup .gradient-controls table td .right {\n display: inline-block;\n}\n.colorSetup .gradient-controls table td .left {\n float: left;\n}\n.colorSetup .gradient-controls table td .right {\n text-align: left;\n}\n.colorSetup .gradient-controls table td .right select {\n width: 80px;\n}\n.colorSetup .gradient-controls table td.col2 {\n width: 45px;\n}\n.colorSetup .gradient-controls table td.col2 input[type=number] {\n width: 40px;\n}\n.colorSetup .gradient-controls table .minmax {\n text-align: center;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .gradient-controls table .minmax {\n background-color: #f1f1f1;\n }\n}\n.theme-override-light .colorSetup .gradient-controls table .minmax {\n background-color: #f1f1f1;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table .minmax {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table .minmax {\n background-color: #4c4c68;\n}\n.colorSetup .gradient-controls .addcolor {\n width: 100%;\n}\n\n.select_behavior {\n padding: 5px;\n text-align: left;\n}\n\n.control-section-header {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n height: 30px;\n}\n\n.control-section-tabs {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n.control-section-tabs .section-label {\n cursor: pointer;\n padding: 6px 24px;\n border-style: solid;\n border-width: 1px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label {\n color: black;\n }\n}\n.theme-override-light .control-section-tabs .section-label {\n color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label {\n color: white;\n }\n}\n.theme-override-dark .control-section-tabs .section-label {\n color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label {\n border-color: black;\n }\n}\n.theme-override-light .control-section-tabs .section-label {\n border-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label {\n border-color: white;\n }\n}\n.theme-override-dark .control-section-tabs .section-label {\n border-color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label.active {\n background-color: white;\n }\n}\n.theme-override-light .control-section-tabs .section-label.active {\n background-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label.active {\n background-color: #364370;\n }\n}\n.theme-override-dark .control-section-tabs .section-label.active {\n background-color: #364370;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label.active {\n border-color: #464DFF;\n }\n}\n.theme-override-light .control-section-tabs .section-label.active {\n border-color: #464DFF;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label.active {\n border-color: #464DFF;\n }\n}\n.theme-override-dark .control-section-tabs .section-label.active {\n border-color: #464DFF;\n}\n.control-section-tabs .control-bar-help .control-help-button {\n text-align: center;\n width: 4ex;\n height: 3ex;\n padding: 5px;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .control-help-button svg {\n fill: white;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .control-help-button svg {\n fill: white;\n}\n.control-section-tabs .control-bar-help .control-help-button:hover svg {\n fill: #505050;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .control-help-button:hover svg {\n fill: white;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .control-help-button:hover svg {\n fill: white;\n}\n.control-section-tabs .control-bar-help .dropdown-container {\n position: absolute;\n right: 16px;\n display: flex;\n justify-content: center;\n flex-flow: column;\n background: white;\n border-style: solid;\n border-color: #ddd;\n border-width: 1px 0 1px 1px;\n box-shadow: 2px 1px 1px #ddd;\n border-radius: 0 0 5px 5px;\n padding: 10px;\n top: 40px;\n z-index: 9;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n background: #3f3f56;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n background: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n border-color: #3f3f56;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n border-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n box-shadow: 2px 1px 1px #2e2e3f;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n box-shadow: 2px 1px 1px #2e2e3f;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n color: #7588e8;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n color: #7588e8;\n}\n.control-section-tabs .control-bar-help .dropdown-container button {\n border: none;\n background-color: transparent;\n text-align: right;\n padding-bottom: 5px;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container button {\n color: white;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container button {\n color: white;\n}\n.control-section-tabs .control-bar-help .dropdown-container button:hover {\n text-decoration: underline;\n cursor: pointer;\n}\n\n.mat-mdc-select :focus {\n color: #63961c;\n}\n\n.filters {\n padding: 4px;\n}\n.filters .filter {\n text-align: left;\n}\n.filters .filter:not(:first-child) {\n margin-top: 4px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .filters .filter .filter-option:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .filters .filter .filter-option:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .filters .filter .filter-option:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .filters .filter .filter-option:hover {\n background: #464dff;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .warning {\n color: #b30000;\n }\n}\n.theme-override-light .warning {\n color: #b30000;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .warning {\n color: #ffab0f;\n }\n}\n.theme-override-dark .warning {\n color: #ffab0f;\n}\n\n.warning-label {\n vertical-align: super;\n}\n\n.multiselect {\n text-align: center;\n}\n.multiselect .multiselect-grouping .multiselect-grouping-label {\n padding: 4px;\n font-weight: bold;\n}\n.multiselect .multiselect-grouping .multiselect-list {\n text-align: left;\n border-top: 1px solid black;\n border-bottom: 1px solid black;\n height: 200px;\n overflow-y: scroll;\n}\n.multiselect .multiselect-grouping .multiselect-list table {\n border-collapse: collapse;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: #464dff;\n}\n.multiselect .multiselect-grouping .multiselect-list .multiselect-list-item .multiselect-list-item-label {\n width: 25ex;\n}\n.multiselect .multiselect-grouping .multiselect-list .multiselect-list-item.selected:not(:hover) {\n background: #ddd;\n}\n\n.search {\n text-align: center;\n}\n.search .search-list {\n margin-top: 2px;\n text-align: left;\n border-top: 1px solid black;\n border-bottom: 1px solid black;\n height: 300px;\n overflow-y: scroll;\n}\n.search .search-list table {\n border-collapse: collapse;\n width: 325px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .search .search-list .search-list-item:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .search .search-list .search-list-item:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .search .search-list .search-list-item:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .search .search-list .search-list-item:hover {\n background: #464dff;\n}\n.search .search-list .search-list-item .search-list-item-label {\n width: 25ex;\n}\n.search .search-list .search-list-item.selected:not(:hover) {\n background: #ddd;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .search-button:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .search-button:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .search-button:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .search-button:hover {\n background: #464dff;\n}\n\n.button {\n border: none;\n padding: 4px 10px;\n text-align: center;\n margin: 2px 1px;\n transition: 0.3s;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .button {\n background-color: #ddd;\n }\n}\n.theme-override-light .button {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .button {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .button {\n background-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .button {\n color: white;\n }\n}\n.theme-override-dark .button {\n color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .button:hover {\n background-color: #b8b8b8;\n }\n}\n.theme-override-light .button:hover {\n background-color: #b8b8b8;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .button:hover {\n background-color: #7588e8;\n }\n}\n.theme-override-dark .button:hover {\n background-color: #7588e8;\n}\n\n.deselectNumber {\n font-size: 5pt;\n bottom: 2px;\n right: 4px;\n position: absolute;\n text-align: right;\n}\n\n.legend {\n z-index: 999;\n position: fixed;\n bottom: 0;\n right: 0;\n width: 300px;\n height: -moz-fit-content;\n height: fit-content;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legend {\n background-color: white;\n }\n}\n.theme-override-light .legend {\n background-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legend {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .legend {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legend {\n border-left: 1px solid #ddd;\n }\n}\n.theme-override-light .legend {\n border-left: 1px solid #ddd;\n}\n@media print {\n .legend {\n display: none;\n }\n}\n.legend .itemArea {\n position: static;\n overflow-y: scroll;\n margin: 30px 8px 8px;\n height: 270px;\n width: 100%;\n overflow-x: hidden;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legend .itemArea {\n color: white;\n }\n}\n.theme-override-dark .legend .itemArea {\n color: white;\n}\n.legend .itemArea .item + .item {\n margin-top: 6px;\n}\n.legend .itemArea .item {\n width: 100%;\n padding-left: 5px;\n}\n.legend .itemArea .item .label {\n margin-left: 10px;\n width: 180px;\n}\n\n.legendBar {\n z-index: 999;\n position: fixed;\n bottom: 0;\n right: 0;\n width: 300px;\n height: 30px;\n transition: 0.3s;\n display: flex;\n align-items: center;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legendBar {\n background-color: #ddd;\n }\n}\n.theme-override-light .legendBar {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legendBar {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .legendBar {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legendBar {\n color: white;\n }\n}\n.theme-override-dark .legendBar {\n color: white;\n}\n@media print {\n .legendBar {\n display: none;\n }\n}\n.legendBar .title {\n flex: 1;\n text-align: center;\n font-size: 14px;\n}\n.legendBar:hover {\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legendBar:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .legendBar:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legendBar:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .legendBar:hover {\n background: #464dff;\n}\n\n.layout {\n width: 100px;\n text-align: left;\n}\n.layout select {\n width: 100%;\n}\n.layout .section {\n padding: 10px;\n}\n.layout .section + .section {\n border-top: 1px solid #f1f1f1;\n}\n.layout .subsection {\n padding-left: 5px;\n}\n.layout .subsection .inner-dropdown-container {\n margin: 5px;\n}\n\n.list-input {\n width: 250px !important;\n overflow-y: auto;\n max-height: 50vh;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvZGF0YXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLi9zcmMvY29sb3JzLnNjc3MiLCJ3ZWJwYWNrOi8vLi9zcmMvc3R5bGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2Uvcm9ib3RvL2luZGV4LmNzcyIsIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9AZm9udHNvdXJjZS9yb2JvdG8tbW9uby9pbmRleC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDU2hCOzs7Ozs7OztFQUFBO0FDVEEsOEVBQUE7QUNBQSxtQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwySEFBQTtFQUNBLHNGQUFBO0FIYUY7QUdWQSwrQkFBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtSEFBQTtFQUNBLG9FQUFBO0FIWUY7QUdUQSxnQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxSEFBQTtFQUNBLDBCQUFBO0FIV0Y7QUdSQSw0QkFBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSw2R0FBQTtFQUNBLHNGQUFBO0FIVUY7QUdQQSxpQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1SEFBQTtFQUNBLHVLQUFBO0FIU0Y7QUdOQSxnQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxSEFBQTtFQUNBLGdKQUFBO0FIUUY7QUdMQSw0QkFBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSw2R0FBQTtFQUNBLGlNQUFBO0FIT0Y7QUkxRUEsd0NBQUE7QUFDQTtFQUNFLDBCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EscUlBQUE7RUFDQSxzRkFBQTtBSjRFRjtBSXpFQSxvQ0FBQTtBQUNBO0VBQ0UsMEJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSw2SEFBQTtFQUNBLG9FQUFBO0FKMkVGO0FJeEVBLGlDQUFBO0FBQ0E7RUFDRSwwQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVIQUFBO0VBQ0Esc0ZBQUE7QUowRUY7QUl2RUEsc0NBQUE7QUFDQTtFQUNFLDBCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUlBQUE7RUFDQSx1S0FBQTtBSnlFRjtBSXRFQSxxQ0FBQTtBQUNBO0VBQ0UsMEJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrSEFBQTtFQUNBLGdKQUFBO0FKd0VGO0FJckVBLGlDQUFBO0FBQ0E7RUFDRSwwQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHVIQUFBO0VBQ0EsaU1BQUE7QUp1RUY7QUN2SEE7Ozs7Ozs7O0VBQUE7QUNIQTtFQUNJO0lBQ0ksUUFBQTtJQUNBLFNBQUE7RUZxSU47QUFDRjtBRWxJQTtFQUNJLDZCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUhBQ0k7QUZtSVI7QUU5SEE7RUFDSSw2QkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBLEVBQUEsd0JBQUE7RUFDQSxxQkFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFQUNBLHNCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFFQSxxQ0FBQTtFQUNBLG1DQUFBO0VBQ0EsbUNBQUE7RUFDQSxrQ0FBQTtFQUVBLHlCQUFBO0VBQ0Esa0NBQUE7RUFFQSxvQkFBQTtFQUNBLDZCQUFBO0FGNkhKOztBRTFIQTtFQUNJLGNBQUE7RUFDQSwwQkFBQTtFQUNBLHNCQUFBO0FGNkhKOztBRTFIQTtFQUNJLFNBQUE7RUFDQSxrQkFBQTtFQUNBLHdJQUFBO0FGNkhKOztBQ3NCUTtFQUhKO0lBSVEsdUJDaEo4QztFRjhIeEQ7QUFDRjtBQ29CSTtFQUdJLHVCQ3RKa0Q7QUZrSTFEOztBRS9IQTtFQUNJLGlDQUFBO0FGa0lKOztBRTlISTtFQUNJLHVCQUFBO0FGaUlSO0FFL0hJO0VBQ0ksa0JBQUE7QUZpSVI7QUUvSEk7RUFDSSx1QkFBQTtBRmlJUjtBQ0RRO0VBSEo7SUFJUSx1QkNoSXVDO0VGb0lqRDtBQUNGO0FDRkk7RUFHSSx1QkN0STJDO0FGd0luRDs7QUNUUTtFQUhKO0lBSVEseUJDMUhrRDtFRnVJNUQ7QUFDRjtBQ1hJO0VBR0kseUJDaElzRDtBRjJJOUQ7QUNsQlE7RUFISjs7SUFJUSx1QkN0SHVDO0VGNElqRDtBQUNGO0FDcEJJOztFQUdJLHVCQzVIMkM7QUZpSm5EO0FDNUJRO0VBSEo7SUFJUSxxQkNuSDhDO0VGa0p4RDtBQUNGO0FDN0JJO0VBR0kscUJDekhrRDtBRnNKMUQ7QUNwQ1E7RUFISjtJQUlRLFlDbEh1QztFRnlKakQ7QUFDRjtBQ3JDSTtFQUdJLFlDeEgyQztBRjZKbkQ7QUM1Q1E7RUFISjtJQUlRLG1CQzlHOEM7RUY2SnhEO0FBQ0Y7QUM3Q0k7RUFHSSxtQkNwSGtEO0FGaUsxRDtBRTlKSTtFQUNJLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FGZ0tSO0FFOUpROztFQUVJLHVCQUFBO0VBQ0EscUJBQUE7QUZnS1o7QUU3SlE7RUFJSSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQkFBQTtBRjRKWjtBQ25FUTtFQUhKO0lBSVEseUJDL0ZzRDtFRnFLaEU7QUFDRjtBQ3BFSTtFQUdJLHlCQ3JHMEQ7QUZ5S2xFO0FDM0VRO0VBSEo7SUFJUSw2QkM5RmtEO0VGNEs1RDtBQUNGO0FDNUVJO0VBR0ksNkJDcEdzRDtBRmdMOUQ7QUNuRlE7RUFISjtJQUlRLHVCQzdGMkM7RUZtTHJEO0FBQ0Y7QUNwRkk7RUFHSSx1QkNuRytDO0FGdUx2RDtBQzNGUTtFQUhKO0lBSVEseUJDckZ1QztFRm1MakQ7QUFDRjtBQzVGSTtFQUdJLHlCQzNGMkM7QUZ1TG5EO0FDbkdRO0VBSEo7O0lBSVEsY0NoRnVDO0VGdUxqRDtBQUNGO0FDckdJOztFQUdJLGNDdEYyQztBRjRMbkQ7QUV6TEk7RUFDSSxlQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FGMkxSOztBRXZMQTtFQUNJLDJCQUFBLEVBQUEsZUFBQTtFQUNBLHlCQUFBLEVBQUEsV0FBQSxFQUNBLG1CQUFBLEVBQ0EsWUFBQSxFQUNBLDJCQUFBO0VBQ0EsaUJBQUE7RUFDQTtnRUFBQTtBRjJMSjs7QUVqTEE7RUFHSSxpQkFBQTtFQUNBLGNBQUE7QUZrTEo7QUNySlE7RUFISjtJQUlRLHNCQ2pDb0M7RUZ5TDlDO0FBQ0Y7QUN0Skk7RUFHSSxzQkN2Q3dDO0FGNkxoRDtBQzFJUTtFQUhKO0lBSVEseUJDcER1RDtFRmlNakU7QUFDRjtBQzNJSTtFQUdJLHlCQzFEMkQ7QUZxTW5FO0FFak1JO0VBTEo7SUFNUSxhQUFBO0VGb01OO0FBQ0Y7QUVsTUk7RUFDSSxTQUFBO0VBQ0EsVUFBQTtBRm9NUjtBRWhNUTtFQUNJLGlCQUFBO0FGa01aO0FFOUxJO0VBQ0ksZ0JBQUE7RUFDQSxxQkFBQTtFQUVBLDhCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtBRitMUjtBRTVMUTtFQUdJLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtVQUFBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxVQUFBO0FGNExaO0FDcE1RO0VBSEo7SUFJUSxzQkNKNEM7RUYyTXREO0FBQ0Y7QUNyTUk7RUFHSSxzQkNWZ0Q7QUYrTXhEO0FDekxRO0VBSEo7SUFJUSx5QkN2QitEO0VGbU56RTtBQUNGO0FDMUxJO0VBR0kseUJDN0JtRTtBRnVOM0U7QUNwTlE7RUFISjtJQUlRLFdDSGlDO0VGME4zQztBQUNGO0FDck5JO0VBR0ksV0NUcUM7QUY4TjdDO0FDek1RO0VBSEo7SUFJUSxZQ3RCd0Q7RUZrT2xFO0FBQ0Y7QUMxTUk7RUFHSSxZQzVCNEQ7QUZzT3BFO0FFek5RO0VBQ0kscUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUYyTlo7QUN6T1E7RUFISjtJQUlRLFlDZ0JxQztFRjROL0M7QUFDRjtBQzFPSTtFQUdJLFlDVXlDO0FGZ09qRDtBQzlOUTtFQUhKO0lBSVEsWUNINEM7RUZvT3REO0FBQ0Y7QUMvTkk7RUFHSSxZQ1RnRDtBRndPeEQ7QUN6UFE7RUFISjtJQUlRLGNDb0JxQztFRndPL0M7QUFDRjtBQzFQSTtFQUdJLGNDY3lDO0FGNE9qRDtBQzlPUTtFQUhKO0lBSVEsZ0NDQzhDO0VGZ1B4RDtBQUNGO0FDL09JO0VBR0ksZ0NDTGtEO0FGb1AxRDtBRWpQWTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0FGbVBoQjtBQy9RUTtFQUhKO0lBSVEseUJDOEJvRDtFRm9QOUQ7QUFDRjtBQ2hSSTtFQUdJLHlCQ3dCd0Q7QUZ3UGhFO0FDcFFRO0VBSEo7SUFJUSx5QkNXbUY7RUY0UDdGO0FBQ0Y7QUNyUUk7RUFHSSx5QkNLdUY7QUZnUS9GO0FFN1BnQjtFQUNJLGNBQUE7RUFDQSxZQUFBO0FGK1BwQjtBRTdQZ0I7RUFDSSxzQkFBQTtBRitQcEI7QUU3UGdCO0VBQ0ksa0JBQUE7QUYrUHBCO0FFMVBZO0VBU0ksa0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUZvUGhCO0FDOVNRO0VBSEo7SUFJUSx1QkMrQ2dEO0VGa1ExRDtBQUNGO0FDL1NJO0VBR0ksdUJDeUNvRDtBRnNRNUQ7QUNuU1E7RUFISjtJQUlRLHlCQzRCdUQ7RUYwUWpFO0FBQ0Y7QUNwU0k7RUFHSSx5QkNzQjJEO0FGOFFuRTtBQzlUUTtFQUhKO0lBSVEsdUJDZ0RzQztFRmlSaEQ7QUFDRjtBQy9USTtFQUdJLHVCQzBDMEM7QUZxUmxEO0FDblRRO0VBSEo7SUFJUSx5QkM2QnVEO0VGeVJqRTtBQUNGO0FDcFRJO0VBR0kseUJDdUIyRDtBRjZSbkU7QUM5VVE7RUFISjtJQUlRLDJDQ2lEMEM7RUZnU3BEO0FBQ0Y7QUMvVUk7RUFHSSwyQ0MyQzhDO0FGb1N0RDtBQ25VUTtFQUhKO0lBSVEsZ0NDOEIyRTtFRndTckY7QUFDRjtBQ3BVSTtFQUdJLGdDQ3dCK0U7QUY0U3ZGO0FFMVNnQjtFQUNJLFFBQUE7QUY0U3BCO0FFclNnQjtFQUNJLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7QUZ1U3BCO0FFclNvQjtFQUNJLFdBQUE7QUZ1U3hCO0FFclN3QjtFQUNJLGdCQUFBO0FGdVM1QjtBQ3pWUTtFQUhKO0lBSVEsK0JDc0RtRDtFRnNTN0Q7QUFDRjtBQzFWSTtFQUdJLCtCQ2dEdUQ7QUYwUy9EO0FDaldRO0VBSEo7O0lBSVEsWUMyRG1EO0VGMFM3RDtBQUNGO0FDbldJOztFQUdJLFlDcUR1RDtBRitTL0Q7QUMzV1E7RUFISjtJQUlRLGdDQzhEbUQ7RUZnVDdEO0FBQ0Y7QUM1V0k7RUFHSSxnQ0N3RHVEO0FGb1QvRDtBQ25YUTtFQUhKO0lBSVEsMEJDaUVpRTtFRnFUM0U7QUFDRjtBQ3BYSTtFQUdJLDBCQzJEcUU7QUZ5VDdFO0FDM1hRO0VBSEo7SUFJUSxnQ0NvRWlFO0VGMFQzRTtBQUNGO0FDNVhJO0VBR0ksZ0NDOERxRTtBRjhUN0U7QUNuWVE7RUFISjtJQUlRLHNIQ3VFWTtFRitUdEI7QUFDRjtBQ3BZSTtFQUdJLHNIQ2lFZ0I7QUZtVXhCO0FDM1lRO0VBSEo7SUFJUSwrQkMyRW1EO0VGbVU3RDtBQUNGO0FDNVlJO0VBR0ksK0JDcUV1RDtBRnVVL0Q7QUNuWlE7RUFISjtJQUlRLCtCQzhFbUQ7RUZ3VTdEO0FBQ0Y7QUNwWkk7RUFHSSwrQkN3RXVEO0FGNFUvRDtBQzlhUTtFQUhKO0lBSVEsMEJDcUd5QztFRjRVbkQ7QUFDRjtBQy9hSTtFQUdJLDBCQytGNkM7QUZnVnJEO0FDbmFRO0VBSEo7SUFJUSxnQ0NrRjhEO0VGb1Z4RTtBQUNGO0FDcGFJO0VBR0ksZ0NDNEVrRTtBRndWMUU7O0FFN1VBO0VBQ0ksVUFBQTtFQUNBLGtCQUFBO0FGZ1ZKO0FFOVVJO0VBQ0ksZUFBQTtBRmdWUjs7QUU1VUE7O0VBRUkscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0FGK1VKOztBRTVVQTtFQUNJLGtCQUFBO0FGK1VKO0FFN1VJO0VBRUksZUFBQTtBRjhVUjtBQ3JkUTtFQUhKO0lBSVEsMEJDcUk2QjtFRm1WdkM7QUFDRjtBQ3RkSTtFQUdJLDBCQytIaUM7QUZ1VnpDO0FDMWNRO0VBSEo7SUFJUSxnQ0NrSGtEO0VGMlY1RDtBQUNGO0FDM2NJO0VBR0ksZ0NDNEdzRDtBRitWOUQ7O0FFMVZBO0VBQ0ksV0FBQTtFQUNBLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBRjZWSjs7QUNsZlE7RUFISjtJQUlRLDZCQ3dKOEI7RUY4VnhDO0FBQ0Y7QUNwZkk7RUFHSSw2QkNrSmtDO0FGa1cxQztBQ3hlUTtFQUhKO0lBSVEsbUJDcUkyRDtFRnNXckU7QUFDRjtBQ3plSTtFQUdJLG1CQytIK0Q7QUYwV3ZFO0FDbmdCUTtFQUhKO0lBSVEsbURDeUo4QjtFRjZXeEM7QUFDRjtBQ3BnQkk7RUFHSSxtRENtSmtDO0FGaVgxQztBQ3hmUTtFQUhKO0lBSVEseUNDc0lpRjtFRnFYM0Y7QUFDRjtBQ3pmSTtFQUdJLHlDQ2dJcUY7QUZ5WDdGOztBQ25oQlE7RUFISjtJQUlRLG1CQzZKOEI7RUYwWHhDO0FBQ0Y7QUNyaEJJO0VBR0ksbUJDdUprQztBRjhYMUM7QUN6Z0JRO0VBSEo7SUFJUSxtQkMwSTZFO0VGa1l2RjtBQUNGO0FDMWdCSTtFQUdJLG1CQ29JaUY7QUZzWXpGO0FDcGlCUTtFQUhKO0lBSVEseUNDZ0tKO0VGdVlOO0FBQ0Y7QUNyaUJJO0VBR0kseUNDMEpBO0FGMllSO0FDemhCUTtFQUhKO0lBSVEseUNDOElKO0VGOFlOO0FBQ0Y7QUMxaEJJO0VBR0kseUNDd0lBO0FGa1pSOztBRTNZQTtFQUNJLHFCQUFBO0FGOFlKOztBQ3JpQlE7RUFISjtJQUlRLGlCQzBKeUM7RUYrWW5EO0FBQ0Y7QUN2aUJJO0VBR0ksaUJDb0o2QztBRm1ackQ7O0FDamtCUTtFQUhKO0lBSVEseUJDaUxvQztFRm9aOUM7QUFDRjtBQ25rQkk7RUFHSSx5QkMyS3dDO0FGd1poRDtBQ3ZqQlE7RUFISjtJQUlRLHlCQzhKd0Q7RUY0WmxFO0FBQ0Y7QUN4akJJO0VBR0kseUJDd0o0RDtBRmdhcEU7QUMvakJRO0VBSEo7SUFJUSxjQ2lLdUM7RUZpYWpEO0FBQ0Y7QUNoa0JJO0VBR0ksY0MySjJDO0FGcWFuRDtBQ3ZrQlE7RUFISjs7SUFJUSxjQ3FLdUM7RUZzYWpEO0FBQ0Y7QUN6a0JJOztFQUdJLGNDK0oyQztBRjJhbkQ7QUNqbEJRO0VBSEo7Ozs7O0lBSVEsOEJDMktrRDtFRjZhNUQ7QUFDRjtBQ3RsQkk7Ozs7O0VBR0ksOEJDcUtzRDtBRnFiOUQ7QUNqbUJRO0VBSEo7SUFJUSx5QkNnTGtEO0VGb2I1RDtBQUNGO0FDbG1CSTtFQUdJLHlCQzBLc0Q7QUZ3YjlEO0FDem1CUTtFQUhKO0lBSVEsWUNpTHVDO0VGMmJqRDtBQUNGO0FDMW1CSTtFQUdJLFlDMksyQztBRitibkQ7QUNqbkJRO0VBSEo7O0lBSVEseUJDc0xrRDtFRitiNUQ7QUFDRjtBQ25uQkk7O0VBR0kseUJDZ0xzRDtBRm9jOUQ7QUMzbkJRO0VBSEo7SUFJUSxZQzBMdUM7RUZvY2pEO0FBQ0Y7QUM1bkJJO0VBR0ksWUNvTDJDO0FGd2NuRDtBQ25vQlE7RUFISjtJQUlRLHlCQzhMa0Q7RUZ3YzVEO0FBQ0Y7QUNwb0JJO0VBR0kseUJDd0xzRDtBRjRjOUQ7QUMzb0JRO0VBSEo7SUFJUSx5QkNrTWtEO0VGNGM1RDtBQUNGO0FDNW9CSTtFQUdJLHlCQzRMc0Q7QUZnZDlEO0FDbnBCUTtFQUhKO0lBSVEsWUNtTXVDO0VGbWRqRDtBQUNGO0FDcHBCSTtFQUdJLFlDNkwyQztBRnVkbkQ7O0FFbmRBO0VBQ0ksYUFBQTtBRnNkSjs7QUVsZEE7RUFFSSxrQkFBQTtF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QSxRQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFJQSxtQkFBQTtBQTJwQ0o7QUNuN0NRO0VBSEo7SUFJUSxzQkQwUW9DO0VBNHFDOUM7QUFDRjtBQ3A3Q0k7RUFHSSxzQkRvUXdDO0FBZ3JDaEQ7QUN4NkNRO0VBSEo7SUFJUSx5QkR1UHVEO0VBb3JDakU7QUFDRjtBQ3o2Q0k7RUFHSSx5QkRpUDJEO0FBd3JDbkU7QUNoN0NRO0VBSEo7SUFJUSxZRHdQbUM7RUEyckM3QztBQUNGO0FDajdDSTtFQUdJLFlEa1B1QztBQStyQy9DO0FBdHJDSTtFQVhKO0lBWVEsYUFBQTtFQXlyQ047QUFDRjtBQXRyQ0k7RUFDSSxPQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0FBd3JDUjtBQXJyQ0k7RUFFSSxlQUFBO0FBc3JDUjtBQ3g5Q1E7RUFISjtJQUlRLDZCRGdTa0M7RUEyckM1QztBQUNGO0FDejlDSTtFQUdJLDZCRDBSc0M7QUErckM5QztBQzc4Q1E7RUFISjtJQUlRLG1CRDZRK0Q7RUFtc0N6RTtBQUNGO0FDOThDSTtFQUdJLG1CRHVRbUU7QUF1c0MzRTs7QUFsc0NBO0VBQ0ksWUFBQTtFQUNBLGdCQUFBO0FBcXNDSjtBQW5zQ0k7RUFDSSxXQUFBO0FBcXNDUjtBQWxzQ0k7RUFDSSxhQUFBO0FBb3NDUjtBQWxzQ1E7RUFDSSw2QkFBQTtBQW9zQ1o7QUFoc0NJO0VBQ0ksaUJBQUE7QUFrc0NSO0FBaHNDUTtFQUNJLFdBQUE7QUFrc0NaOztBQTdyQ0E7RUFDSSx1QkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUFnc0NKIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vY29sb3JzLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzLnNjc3MnO1xuXG4kY2VsbFNpemU6IDE1cHg7XG5cbi8vICBfICBfIF9fXyBfX18gXyAgXyBfICAgIF9fXyBfX18gXyAgXyBfX19fXyBfX18gXyAgXyAgX19fXG4vLyB8IHx8IHxfIF8vIF9ffCB8fCB8IHwgIHxfIF8vIF9ffCB8fCB8XyAgIF98XyBffCBcXHwgfC8gX198XG4vLyB8IF9fIHx8IHwgKF8gfCBfXyB8IHxfXyB8IHwgKF8gfCBfXyB8IHwgfCAgfCB8fCAuYCB8IChfIHxcbi8vIHxffHxffF9fX1xcX19ffF98fF98X19fX3xfX19cXF9fX3xffHxffCB8X3wgfF9fX3xffFxcX3xcXF9fX3xcblxuLy8gIF9fICBfXyAgIF8gICBfX18gXyAgXyAgIF9fX19fIF8gICBfX18gXyAgICBfX19cbi8vIHwgIFxcLyAgfCAvX1xcIHxfIF98IFxcfCB8IHxfICAgXy9fXFwgfCBfICkgfCAgfCBfX3xcbi8vIHwgfFxcL3wgfC8gXyBcXCB8IHx8IC5gIHwgICB8IHwvIF8gXFx8IF8gXFwgfF9ffCBffFxuLy8gfF98ICB8Xy9fLyBcXF9cXF9fX3xffFxcX3wgICB8Xy9fLyBcXF9cXF9fXy9fX19ffF9fX3xcblxuLy8gY29udGVudCBvZiBlYWNoIHRhYlxuLm1hdHJpY2VzIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBsaWdodGVuKGNvbG9yKGRhcmstMSksIDMlKSk7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JvcmRlcicsIG5vbmUpO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICBtaW4taGVpZ2h0OiA1MHZoO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yKHBhbmVsLWRhcmspO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCBlYXNlLWluLW91dCAwLjJzO1xuXG4gICAgLnNwaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiA1MHZoO1xuXG4gICAgICAgIG1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSB7XG4gICAgICAgICAgICBzdHJva2U6IG9uLWNvbG9yLWRlZW1waGFzaXMoYm9keSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0cmljZXMtY29sdW1ucyB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgICAgIC5tYXRyaXgtY29sdW1uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdHJpeC1uYW1lIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIC5tYXRyaXgtY29sdW1uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGNvbG9yKHBhbmVsLWRhcmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29sb3JwaWNrZXIge1xuICAgIHdpZHRoOiAoJGNlbGxTaXplICsgNSArIDIpICogNCAhaW1wb3J0YW50OyAvL292ZXJyaWRlIHByZXNldCB3aWR0aFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmNvbG9yLWJsb2NrIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JvcmRlcicsIDFweCBzb2xpZCBibGFjaywgMXB4IHNvbGlkIGNvbG9yKGRhcmstZGlzYWJsZWQpKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW46IDIuNXB4O1xuXG4gICAgICAgICYuc3F1YXJlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY2VsbFNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjZWxsU2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYud2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1kaXNhYmxlZCkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjZWxsU2l6ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4od2hpdGUsIDUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vY29sb3IgY29udHJvbHNcbi5jb2xvclNldHVwIHtcbiAgICBmb250LXNpemU6IDhwdDtcblxuICAgIC5jb2xvcnBpY2tlciB7XG4gICAgICAgIHdpZHRoOiAxMGV4O1xuICAgIH1cblxuICAgIC5ncmFkaWVudC1zZWN0aW9uLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5ncmFkaWVudC1zZWN0aW9uLWNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYm9yZGVyLWNvbG9yJywgYmxhY2ssIHdoaXRlKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAuZGlzcGxheS1idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5zcXVhcmVidXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JvcmRlcicsIDFweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKSwgMXB4IHNvbGlkIGNvbG9yKGRhcmstZGlzYWJsZWQpKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZCcsIGNvbG9yKHBhbmVsLWxpZ2h0KSwgY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvcikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmdyYWRpZW50OmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLy9zaW5jZSBiYWNrZ3JvdW5kIGNvbG9yIHdvbid0IGJlIHNlZW4gb24gZ3JhZGllbnQgYnV0dG9uc1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByZXNldHNtZW51IHtcbiAgICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JhZGllbnQtY29udHJvbHMge1xuICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKGRhcmstMSkpO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JvcmRlcicsIDFweCBzb2xpZCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCB3aGl0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBibGFjayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYmFja2dyb3VuZC1jb2xvcicsIGJsYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIHdoaXRlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmJ1dHRvbnMgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubGVmdCxcbiAgICAgICAgICAgICAgICAucmlnaHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucmlnaHQge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuY29sMiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0NXB4O1xuXG4gICAgICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9J251bWJlciddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWlubWF4IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWxpZ2h0KSwgY29sb3IoZGFyay00KSk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFkZGNvbG9yIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VsZWN0X2JlaGF2aW9yIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNvbnRyb2wtc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBcbiAgICBoZWlnaHQ6IDMwcHg7XG4gIH1cbiAgXG4gIC5jb250cm9sLXNlY3Rpb24tdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIFxuICAgIC5zZWN0aW9uLWxhYmVsIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBcbiAgICAgIHBhZGRpbmc6IDZweCAyNHB4O1xuICAgIFxuICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJjb2xvclwiLCBibGFjaywgd2hpdGUpO1xuICAgIFxuICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJib3JkZXItY29sb3JcIiwgYmxhY2ssIHdoaXRlKTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJiYWNrZ3JvdW5kLWNvbG9yXCIsIHdoaXRlLCAjMzY0MzcwKTtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJib3JkZXItY29sb3JcIiwgIzQ2NERGRiwgIzQ2NERGRik7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAuY29udHJvbC1iYXItaGVscCB7XG4gICAgICAuY29udHJvbC1oZWxwLWJ1dHRvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDRleDtcbiAgICAgICAgaGVpZ2h0OiAzZXg7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KFwiZmlsbFwiLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciBzdmcge1xuICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seShcImZpbGxcIiwgb24tY29sb3IoZGFyaykpO1xuICAgICAgICAgIGZpbGw6ICM1MDUwNTA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KFwiYmFja2dyb3VuZFwiLCBjb2xvcihkYXJrLTMpKTtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KFwiYm9yZGVyLWNvbG9yXCIsIGNvbG9yKGRhcmstMykpO1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoXCJib3gtc2hhZG93XCIsIDJweCAxcHggMXB4IGNvbG9yKGRhcmstMikpO1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoXCJjb2xvclwiLCBjb2xvcihkYXJrLWxpbmspKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDFweCAxcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDJweCAxcHggMXB4ICNkZGQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA1cHggNXB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICB0b3A6IDQwcHg7XG4gICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoXCJjb2xvclwiLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbn1cblxuLm1hdC1tZGMtc2VsZWN0IHtcbiAgICA6Zm9jdXMge1xuICAgICAgICBjb2xvcjogIzYzOTYxYztcbiAgICB9XG59XG5cbi5maWx0ZXJzIHtcbiAgICBwYWRkaW5nOiA0cHg7XG5cbiAgICAuZmlsdGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWx0ZXItb3B0aW9uIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kJywgY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi53YXJuaW5nIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignY29sb3InLCAjYjMwMDAwLCAjZmZhYjBmKTtcbn1cblxuLndhcm5pbmctbGFiZWwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbn1cblxuLm11bHRpc2VsZWN0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXVsdGlzZWxlY3QtZ3JvdXBpbmcge1xuICAgICAgICAubXVsdGlzZWxlY3QtZ3JvdXBpbmctbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXVsdGlzZWxlY3QtbGlzdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgICAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tdWx0aXNlbGVjdC1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZCcsIGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWNvbG9yKSwgY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvcikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5tdWx0aXNlbGVjdC1saXN0LWl0ZW0tbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjVleDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNlbGVjdGVkOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3IocGFuZWwtZGFyayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VhcmNoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuc2VhcmNoLWxpc3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG5cbiAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgICAgIHdpZHRoOiAzMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2gtbGlzdC1pdGVtIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kJywgY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zZWFyY2gtbGlzdC1pdGVtLWxhYmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zZWxlY3RlZDpub3QoOmhvdmVyKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3IocGFuZWwtZGFyayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtYnV0dG9uIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQnLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1jb2xvciksIGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWRhcmstY29sb3IpKTtcbiAgICB9XG59XG5cbi5idXR0b24ge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kLWNvbG9yJywgY29sb3IocGFuZWwtZGFyayksIGNvbG9yKGRhcmstNCkpO1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDJweCAxcHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKGJ1dHRvbi1kYXJrKSwgY29sb3IoZGFyay1saW5rKSk7XG4gICAgfVxufVxuXG4uZGVzZWxlY3ROdW1iZXIge1xuICAgIGZvbnQtc2l6ZTogNXB0O1xuICAgIGJvdHRvbTogMnB4O1xuICAgIHJpZ2h0OiA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubGVnZW5kIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIHdoaXRlLCBjb2xvcihkYXJrLTMpKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1saWdodC1vbmx5KCdib3JkZXItbGVmdCcsIDFweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKSk7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuaXRlbUFyZWEge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykpO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIG1hcmdpbjogMzBweCA4cHggOHB4O1xuICAgICAgICBoZWlnaHQ6IDI3MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgIC5pdGVtICsgLml0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubGVnZW5kQmFyIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWRhcmspLCBjb2xvcihkYXJrLTMpKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykpO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAudGl0bGUge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQnLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1jb2xvciksIGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWRhcmstY29sb3IpKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLmxheW91dCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICAgICAgJiArIC5zZWN0aW9uIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcihwYW5lbC1saWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3Vic2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuXG4gICAgICAgIC5pbm5lci1kcm9wZG93bi1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5saXN0LWlucHV0IHtcbiAgICB3aWR0aDogMjUwcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDUwdmg7XG59XG4iLCIkY29sdW1uLWhvdmVyLWNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7XG4kZGlzYWJsZWQtY29sb3I6IGRhcmtlbigkY29sdW1uLWhvdmVyLWNvbG9yLCAyMCUpO1xuXG4vLyBBVFQmQ0sgQnJhbmQgY29sb3JzXG4kYXR0YWNrLWNvbG9yczogKFxuICAgIGF0dGFjay1vcmFuZ2U6ICNjNjNmMWYsXG4gICAgYXR0YWNrLWJsdWU6ICMwNjJmNGYsXG4pO1xuXG4vKipcbiAqIENvbG9ycyB1c2VkIGFjcm9zcyB0aGUgTmF2aWdhdG9yLiBTaGFyZWQgYnkgdGhlIEFUVCZDSyBXZWJzaXRlLlxuICogRm9yIGVhY2ggY29sb3ItcGFpcjpcbiAqICAgLSBcImNvbG9yXCIgcmVmZXJzIHRvIHRoZSBjb2xvciBpdHNlbGZcbiAqICAgLSBcIm9uLWNvbG9yXCIgcmVmZXJzIHRvIHRoZSBtb3N0IHJlYWRhYmxlIHRleHQtY29sb3IgdG8gYXBwZWFyIG9uIHRvcCBvZiB0aGUgY29sb3IuXG4gKiBOb3RlOiBzb21lIGNvbG9ycyBkb24ndCBkZWZpbmUgb24tY29sb3JzLiBUaGlzIGlzIGJlY2F1c2UsIGZvciB0aGVzZSBjb2xvcnMsIHRoZXkgYXJlbid0IGludGVuZGVkIHRvXG4gKiBhcHBlYXIgd2l0aCBpbm5lciBjb250ZW50LiBGb3IgZXhhbXBsZSwgXCJsaW5rXCIgaXMgb25seSBpbnRlbmRlZCB0byBiZSB1c2VkIGZvciBsaW5rIHRleHQsIHdoaWNoIGluaGVyZW50bHlcbiAqIGNhbm5vdCBoYXZlIGlubmVyIHRleHQuXG4gKi9cbiRjb2xvcnM6IChcbiAgICBwcmltYXJ5OiAoXG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRhdHRhY2stY29sb3JzLCBhdHRhY2stb3JhbmdlKSxcbiAgICAgICAgb24tY29sb3I6IHdoaXRlLFxuICAgICksXG4gICAgLy91c2VkIGZvciBoZWFkZXIgYW5kIHNvbWUgbmF2IGVsZW1lbnRzXG4gICAgc2Vjb25kYXJ5OlxuICAgICAgICAoXG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkYXR0YWNrLWNvbG9ycywgYXR0YWNrLWJsdWUpLFxuICAgICAgICAgICAgb24tY29sb3I6IHdoaXRlLFxuICAgICAgICApLFxuICAgIC8vdXNlZCBmb3IgZm9vdGVyIGFuZCBzb21lIGJ1dHRvbnNcbiAgICBib2R5OlxuICAgICAgICAoXG4gICAgICAgICAgICBjb2xvcjogd2hpdGUsXG4gICAgICAgICAgICBvbi1jb2xvcjogIzM5NDM0YyxcbiAgICAgICAgKSxcbiAgICAvL3ByaW1hcnkgcGFnZSBib2R5XG4gICAgbGlnaHQ6XG4gICAgICAgIChcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSxcbiAgICAgICAgICAgIG9uLWNvbG9yOiAjMzk0MzRjLFxuICAgICAgICApLFxuICAgIGRhcms6IChcbiAgICAgICAgY29sb3I6ICMwODA4MGIsXG4gICAgICAgIG9uLWNvbG9yOiB3aGl0ZSxcbiAgICApLFxuICAgIC8vIGRhcmsgdGhlbWUgY29sb3JzIHZhcmlhdGlvbnMgMC0zIChmcm9tIGRhcmtlc3QgdG8gbGlnaHRlc3QpXG4gICAgZGFyay0xOlxuICAgICAgICAoXG4gICAgICAgICAgICBjb2xvcjogIzFhMWEyMyxcbiAgICAgICAgICAgIG9uLWNvbG9yOiB3aGl0ZSxcbiAgICAgICAgKSxcbiAgICBkYXJrLTI6IChcbiAgICAgICAgY29sb3I6ICMyZTJlM2YsXG4gICAgICAgIG9uLWNvbG9yOiAjZmE2MzQxLFxuICAgICksXG4gICAgLy8gYWNjZW50IGRhcmsgY29sb3Igc2NoZW1lICh1c2VkIGZvciA6aG92ZXIgc2VsZWN0b3JzKVxuICAgIGRhcmstMzpcbiAgICAgICAgKFxuICAgICAgICAgICAgY29sb3I6ICMzZjNmNTYsXG4gICAgICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgICAgICksXG4gICAgZGFyay00OiAoXG4gICAgICAgIGNvbG9yOiAjNGM0YzY4LFxuICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgKSxcbiAgICBkYXJrLWRpc2FibGVkOiAoXG4gICAgICAgIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAyNSUpLFxuICAgICksXG4gICAgZGFyay1saW5rOiAoXG4gICAgICAgIGNvbG9yOiAjNzU4OGU4LFxuICAgICksXG4gICAgZGFyay1saW5rLWFjdGl2ZTogKFxuICAgICAgICBjb2xvcjogI2U4NDdlOCxcbiAgICApLFxuICAgIGxpbms6IChcbiAgICAgICAgY29sb3I6ICM0ZjdjYWMsXG4gICAgKSxcbiAgICAvLyBoeXBlcmxpbmtzXG4gICAgbWF0cml4LWhlYWRlcjpcbiAgICAgICAgKFxuICAgICAgICAgICAgY29sb3I6IGdyYXksXG4gICAgICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgICAgICksXG4gICAgLy8gY29sb3Igb2YgbWF0cml4IGhlYWRlcnNcbiAgICBjZWxsLWhpZ2hsaWdodC1jb2xvcjpcbiAgICAgICAgKFxuICAgICAgICAgICAgY29sb3I6IHJnYig5NiwgMTk3LCAyNTUpLFxuICAgICAgICApLFxuICAgIGNlbGwtaGlnaGxpZ2h0LWRhcmstY29sb3I6IChcbiAgICAgICAgY29sb3I6ICM0NjRkZmYsXG4gICAgKSxcbiAgICBob3Zlci1jZWxsLWZvbnQtY29sb3I6IChcbiAgICAgICAgY29sb3I6IHJnYigwLCAwLCAwKSxcbiAgICApLFxuICAgIHBhbmVsLWRhcms6IChcbiAgICAgICAgY29sb3I6ICNkZGQsXG4gICAgKSxcbiAgICBwYW5lbC1saWdodDogKFxuICAgICAgICBjb2xvcjogbGlnaHRlbigjZGRkLCA4JSksXG4gICAgKSxcbiAgICB0YWItdGV4dC1jb2xvcjogKFxuICAgICAgICBjb2xvcjogIzU1NSxcbiAgICApLFxuICAgIGJ1dHRvbi1kYXJrOiAoXG4gICAgICAgIGNvbG9yOiAjYjhiOGI4LFxuICAgICksXG4gICAgLy9ib290c3RyYXAgY29sb3JzXG4gICAgYm9vdHN0cmFwLXByaW1hcnk6XG4gICAgICAgIChcbiAgICAgICAgICAgIGNvbG9yOiAjNDI4YmNhLFxuICAgICAgICAgICAgb24tY29sb3I6IHdoaXRlLFxuICAgICAgICApLFxuICAgIGJvb3RzdHJhcC1zdWNjZXNzOiAoXG4gICAgICAgIGNvbG9yOiAjNWNiODVjLFxuICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgKSxcbiAgICBib290c3RyYXAtZGFuZ2VyOiAoXG4gICAgICAgIGNvbG9yOiAjZDk1MzRmLFxuICAgICAgICBvbi1jb2xvcjogYmxhY2ssXG4gICAgKSxcbiAgICBib290c3RyYXAtd2FybmluZzogKFxuICAgICAgICBjb2xvcjogI2YwYWQ0ZSxcbiAgICAgICAgb24tY29sb3I6IGJsYWNrLFxuICAgICksXG4gICAgYm9vdHN0cmFwLWluZm86IChcbiAgICAgICAgY29sb3I6ICM1YmMwZGUsXG4gICAgICAgIG9uLWNvbG9yOiB3aGl0ZSxcbiAgICApLFxuKTtcblxuLy8gYWNjZXNzb3IgaGVscGVyIGZvciAkY29sb3JzLiBHZXRzIHRoZSBjb2xvciBvZiB0aGUgbmFtZWQgcGFpclxuQGZ1bmN0aW9uIGNvbG9yKCRuYW1lKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJG5hbWUpLCAnY29sb3InKTtcbn1cblxuLy8gZ2l2ZW4gYSBjb2xvciBuYW1lLCBnZXQgYW4gYWx0ZXJuYXRlIHZlcnNpb24gb2YgdGhlIGNvbG9yLCBmb3IgcGF0dGVybmluZ1xuLy8gaWYgdGhlIGJhc2UgY29sb3IgaXMgZGFyaywgdGhlIGFsdGVybmF0ZSB3aWxsIGJlIHNsaWdodGx5IGxpZ2h0ZXIuXG4vLyBpZiB0aGUgYmFzZSBjb2xvciBpcyBsaWdodCwgdGhlIGFsdGVybmF0ZSB3aWxsIGJlIHNsaWdodGx5IGRhcmtlci5cbi8vIGNvbnRyYXN0LCBhbiBvcHRpb25hbCBhcmd1bWVudCwgbXVsdGlwbGllcyB0byBjcmVhdGUgYSBtb3JlIGRpc3RhbnQgb3Igc2ltaWxhciBjb2xvci4gPjEgaXMgbW9yZSBkaXN0YW50LCA8MSBpcyBtb3JlIHNpbWlsYXIuXG5AZnVuY3Rpb24gY29sb3ItYWx0ZXJuYXRlKCRuYW1lLCAkY29udHJhc3Q6IDEpIHtcbiAgICBAcmV0dXJuIG1peChpbnZlcnQoY29sb3IoJG5hbWUpKSwgY29sb3IoJG5hbWUpLCAkd2VpZ2h0OiAkY29udHJhc3QgKiA1JSk7XG59XG5cbi8vIGFjY2Vzc29yIGhlbHBlciBmb3IgJGNvbG9ycy4gR2V0cyB0aGUgb24tY29sb3Igb2YgdGhlIG5hbWVkIHBhaXJcbkBmdW5jdGlvbiBvbi1jb2xvcigkbmFtZSkge1xuICAgIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICRuYW1lKSwgJ29uLWNvbG9yJyk7XG59XG5cbi8vIGdpdmVuIGEgY29sb3ItbmFtZSwgZ2V0IGFuIGVtcGhhc2l6ZWQgdmVyc2lvbiBvZiB0aGUgb24tY29sb3IuXG4vLyBUaGUgZW1waGFzaXplZCBvbi1jb2xvciBpcyBsZXNzIGxpa2UgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AZnVuY3Rpb24gb24tY29sb3ItZW1waGFzaXMoJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1peChpbnZlcnQoY29sb3IoJG5hbWUpKSwgb24tY29sb3IoJG5hbWUpKTtcbn1cbi8vIGdpdmVuIGEgY29sb3ItbmFtZSwgZ2V0IGFuIGRlZW1waGFzaXplZCB2ZXJzaW9uIG9mIHRoZSBvbi1jb2xvci5cbi8vIFRoZSBkZWVtcGhhc2l6ZWQgb24tY29sb3IgaXMgbW9yZSBsaWtlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQGZ1bmN0aW9uIG9uLWNvbG9yLWRlZW1waGFzaXMoJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1peChjb2xvcigkbmFtZSksIG9uLWNvbG9yKCRuYW1lKSwgMjUlKTtcbn1cblxuLy8gZ2l2ZW4gYSBjb2xvciBuYW1lLCBjb21wdXRlIGEgYm9yZGVyIGNvbG9yIGZvciB0aGUgY29sb3JcbkBmdW5jdGlvbiBib3JkZXItY29sb3IoJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1peChpbnZlcnQoY29sb3IoJG5hbWUpKSwgY29sb3IoJG5hbWUpLCAxMi41JSk7XG4gICAgLy8gQHJldHVybiByZ2JhKGludmVydChjb2xvcigkbmFtZSkpLCAwLjEyNSk7XG59XG5cbi8vIElNUE9SVEFOVCBVU0FHRSBOT1RFOlxuLy8gdG8gdXNlIGFkYXB0aXZlIGNvbG9ycywgeW91IE1VU1QgZGlzYWJsZSB2aWV3IGVuY2Fwc3VsYXRpb24gb24gdGhlIGNvbXBvbmVudFxuLy8geW91J3JlIGFwcGx5aW5nIHRoZSBzdHlsZXMgd2l0aGluLiBPdGhlcndpc2UgYW5jZXN0b3IgY2xhc3NlcyBjYW5ub3QgYmUgYXNzZXNzZWRcbi8vIGJ5IHRoZSBtaXhpbnMgdG8gZGV0ZXJtaW5lIHRoZSBhcHAgdGhlbWUgY29uZmlndXJhdGlvbi5cblxuLy8vIGFzc2lnbiB0aGUgcHJvcGVydHkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIGluIHRoZSBsaWdodCBhbmQgZGFyayB0aGVtZXNcbi8vLyBAcGFyYW0ge3Byb3BlcnR5fSAkcHJvcGVydHkgdGhlIHByb3BlcnR5IHlvdSB3YW50IHRvIHNldCB0aGUgdmFsdWUgb2Zcbi8vLyBAcGFyYW0ge3ZhbHVlfSAkbGlnaHQtdmFsdWUgdGhlIHZhbHVlIHRvIGFzc2lnbiB3aGVuIGluIHRoZSBsaWdodCB0aGVtZVxuLy8vIEBwYXJhbSB7dmFsdWV9ICRkYXJrLXZhbHVlIHRoZSB2YWx1ZSB0byBhc3NpZ24gd2hlbiBpbiB0aGUgZGFyayB0aGVtZVxuQG1peGluIGFkYXB0aXZlLWNvbG9yKCRwcm9wZXJ0eSwgJGxpZ2h0LXZhbHVlLCAkZGFyay12YWx1ZSkge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWxpZ2h0LW9ubHkoJHByb3BlcnR5LCAkbGlnaHQtdmFsdWUpO1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgkcHJvcGVydHksICRkYXJrLXZhbHVlKTtcbn1cblxuLy8vIGFzc2lnbiB0aGUgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUgb25seSB3aGVuIGluIHRoZSBsaWdodCB0aGVtZVxuLy8vIEBwYXJhbSB7cHJvcGVydHl9ICRwcm9wZXJ0eSB0aGUgcHJvcGVydHkgeW91IHdhbnQgdG8gc2V0IHRoZSB2YWx1ZSBvZlxuLy8vIEBwYXJhbSB7dmFsdWV9ICRsaWdodC12YWx1ZSB0aGUgdmFsdWUgdG8gYXNzaWduIHdoZW4gaW4gdGhlIGxpZ2h0IHRoZW1lXG5AbWl4aW4gYWRhcHRpdmUtY29sb3ItbGlnaHQtb25seSgkcHJvcGVydHksICRsaWdodC12YWx1ZSkge1xuICAgIC50aGVtZS11c2Utc3lzdGVtICYge1xuICAgICAgICAvLyB3aGVuIHRoZSBhbmNlc3RvciBjbGFzcyBzaG93cyB0aGF0IHRoZSBhcHAgaXMgY29uZmlndXJlZCB0byB1c2UgdGhlIHN5c3RlbSB0aGVtZSxcbiAgICAgICAgLy8gdXNlIGEgbWVkaWEgcXVlcnkgdG8gYXNzaWduIHRoZSBsaWdodCB2YWx1ZVxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkge1xuICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkbGlnaHQtdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRoZW1lLW92ZXJyaWRlLWxpZ2h0ICYge1xuICAgICAgICAvLyB3aGVuIHRoZSBhbmNlc3RvciBjbGFzcyBzaG93cyB0aGF0IHRoZSBhcHAgaXMgY29uZmlndXJlZCB0byB1c2UgdGhlIGxpZ2h0IHRoZW1lLFxuICAgICAgICAvLyBhc3NpZ24gdGhlIGxpZ2h0IHZhbHVlXG4gICAgICAgICN7JHByb3BlcnR5fTogJGxpZ2h0LXZhbHVlO1xuICAgIH1cbn1cblxuLy8vIGFzc2lnbiB0aGUgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUgb25seSB3aGVuIGluIHRoZSBkYXJrIHRoZW1lXG4vLy8gQHBhcmFtIHtwcm9wZXJ0eX0gJHByb3BlcnR5IHRoZSBwcm9wZXJ0eSB5b3Ugd2FudCB0byBzZXQgdGhlIHZhbHVlIG9mXG4vLy8gQHBhcmFtIHt2YWx1ZX0gJGxpZ2h0LXZhbHVlIHRoZSB2YWx1ZSB0byBhc3NpZ24gd2hlbiBpbiB0aGUgbGlnaHQgdGhlbWVcbi8vLyBAcGFyYW0ge3ZhbHVlfSAkZGFyay12YWx1ZSB0aGUgdmFsdWUgdG8gYXNzaWduIHdoZW4gaW4gdGhlIGRhcmsgdGhlbWVcbkBtaXhpbiBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJHByb3BlcnR5LCAkZGFyay12YWx1ZSkge1xuICAgIC50aGVtZS11c2Utc3lzdGVtICYge1xuICAgICAgICAvLyB3aGVuIHRoZSBhbmNlc3RvciBjbGFzcyBzaG93cyB0aGF0IHRoZSBhcHAgaXMgY29uZmlndXJlZCB0byB1c2UgdGhlIHN5c3RlbSB0aGVtZSxcbiAgICAgICAgLy8gdXNlIGEgbWVkaWEgcXVlcnkgdG8gYXNzaWduIHRoZSBkYXJrIHZhbHVlXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJGRhcmstdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRoZW1lLW92ZXJyaWRlLWRhcmsgJiB7XG4gICAgICAgIC8vIHdoZW4gdGhlIGFuY2VzdG9yIGNsYXNzIHNob3dzIHRoYXQgdGhlIGFwcCBpcyBjb25maWd1cmVkIHRvIHVzZSB0aGUgZGFyayB0aGVtZSxcbiAgICAgICAgLy8gYXNzaWduIHRoZSBkYXJrIHZhbHVlXG4gICAgICAgICN7JHByb3BlcnR5fTogJGRhcmstdmFsdWU7XG4gICAgfVxufVxuIiwiLyogWW91IGNhbiBhZGQgZ2xvYmFsIHN0eWxlcyB0byB0aGlzIGZpbGUsIGFuZCBhbHNvIGltcG9ydCBvdGhlciBzdHlsZSBmaWxlcyAqL1xuQGltcG9ydCAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJlYnVpbHQtdGhlbWVzL2luZGlnby1waW5rLmNzcyc7XG5AaW1wb3J0ICdAZm9udHNvdXJjZS9yb2JvdG8nO1xuQGltcG9ydCAnQGZvbnRzb3VyY2Uvcm9ib3RvLW1vbm8nO1xuQGltcG9ydCAnY29sb3JzLnNjc3MnO1xuXG5AbWVkaWEgcHJpbnQge1xuICAgIEBwYWdlIHtcbiAgICAgICAgc2l6ZTogQTM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LWRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOlxuICAgICAgICBsb2NhbCgnTWF0ZXJpYWwgSWNvbnMnKSxcbiAgICAgICAgbG9jYWwoJ01hdGVyaWFsSWNvbnMtUmVndWxhcicpLFxuICAgICAgICB1cmwoYXNzZXRzL2ljb25zL01hdGVyaWFsSWNvbnMtUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cblxuLm1hdGVyaWFsLWljb25zIHtcbiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDI0cHg7IC8qIFByZWZlcnJlZCBpY29uIHNpemUgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGRpcmVjdGlvbjogbHRyO1xuXG4gICAgLyogU3VwcG9ydCBmb3IgYWxsIFdlYktpdCBicm93c2Vycy4gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAvKiBTdXBwb3J0IGZvciBTYWZhcmkgYW5kIENocm9tZS4gKi9cbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXG4gICAgLyogU3VwcG9ydCBmb3IgRmlyZWZveC4gKi9cbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gICAgLyogU3VwcG9ydCBmb3IgSUUuICovXG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG59XG5cbi50ZXh0LWRlZW1waGFzaXMge1xuICAgIGNvbG9yOiBvbi1jb2xvci1kZWVtcGhhc2lzKGJvZHkpO1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG59XG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbn1cblxuLnN2Z2NvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdiYWNrZ3JvdW5kLWNvbG9yJywgd2hpdGUpO1xufVxuXG4ubWRjLWJ1dHRvbiwgLm1hdC1tZGMtYnV0dG9uLWJhc2Uge1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLm1hdC1kaWFsb2cge1xuICAgIC5tYXQtbWRjLWRpYWxvZy1hY3Rpb25zIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5tYXQtbWRjLWRpYWxvZy10aXRsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLm1hdC1tZGMtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspICFpbXBvcnRhbnQpO1xuICAgIH1cbn1cblxuLm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBjb2xvcihkYXJrLTIpKTtcbiAgICB9XG4gICAgLm1kYy1kaWFsb2dfX3RpdGxlLFxuICAgIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspICFpbXBvcnRhbnQpO1xuICAgIH1cbiAgICAubWF0LW1kYy1idXR0b24tYmFzZSB7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWNvbG9yJywgY29sb3IoZGFyay00KSk7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgfVxuXG4gICAgLmhlbHAtZGlhbG9nIGgxIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdib3JkZXItY29sb3InLCBvbi1jb2xvcihkYXJrLTEpKTtcbiAgICB9XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB0O1xuXG4gICAgICAgIHAsXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMWVtO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBjb2xvcihkYXJrLTEpKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWNvbG9yJywgY29sb3IocGFuZWwtZGFyaykgIWltcG9ydGFudCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykgIWltcG9ydGFudCk7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcHggMnB4O1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1saW5rKSAhaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBhOmFjdGl2ZSxcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1saW5rLWFjdGl2ZSkpO1xuICAgIH1cblxuICAgIC50b3AtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgfVxufVxuXG4ubm9zZWxlY3Qge1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgLyogaU9TIFNhZmFyaSAqL1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIFNhZmFyaSAqL1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTsgLyogS29ucXVlcm9yIEhUTUwgKi9cbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJbnRlcm5ldCBFeHBsb3Jlci9FZGdlICovXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLyogTm9uLXByZWZpeGVkIHZlcnNpb24sIGN1cnJlbnRseVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgYnkgQ2hyb21lIGFuZCBPcGVyYSAqL1xufVxuXG4vLyAgIF9fXyBfX18gIF8gIF8gX19fX18gX19fICBfX18gIF8gICAgX19fXG4vLyAgLyBfXy8gXyBcXHwgXFx8IHxfICAgX3wgXyBcXC8gXyBcXHwgfCAgLyBfX3xcbi8vIHwgKF98IChfKSB8IC5gIHwgfCB8IHwgICAvIChfKSB8IHxfX1xcX18gXFxcbi8vICBcXF9fX1xcX19fL3xffFxcX3wgfF98IHxffF9cXFxcX19fL3xfX19ffF9fXy9cblxuLy8gcGFuZWwgd2l0aCBjb250cm9sc1xuLmNvbnRyb2xzQ29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWRhcmspLCBjb2xvcihkYXJrLTIpKTtcblxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmxhYmVse1xuICAgICAgICAuY29udHJvbC1yb3ctaXRlbSArIC5jb250cm9sLXJvdy1pdGVte1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udHJvbC1zZWN0aW9ucyA+IGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAvLyAmOm5vdCg6bGFzdC1jaGlsZCl7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgZGFya2VuKGNvbG9yKHBhbmVsLWRhcmspLCA4JSk7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4IDAgNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLy8gbGFiZWwgZm9yIGEgc2VjdGlvbiBvZiBjb250cm9scywgZS5nIGxheWVyIGNvbnRyb2xzIG9yIHRlY2huaXF1ZSBjb250cm9sc1xuICAgICAgICAuc2VjdGlvbi1sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWRhcmspLCBjb2xvcihkYXJrLTIpKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdjb2xvcicsIGNvbG9yKHRhYi10ZXh0LWNvbG9yKSwgb24tY29sb3IoZGFyaykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiA4cHQ7XG4gICAgICAgICAgICB0b3A6IC0xMnB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udHJvbC1yb3ctaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDM0cHg7XG5cbiAgICAgICAgICAgICYgPiA6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdjb2xvcicsIGJsYWNrLCB3aGl0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiAuZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdjb2xvcicsICNhYWFhYWEsIHJnYigyNTUgMjU1IDI1NSAvIDI1JSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udHJvbC1yb3ctYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQtY29sb3InLCBkYXJrZW4oY29sb3IocGFuZWwtZGFyayksIDUlKSwgY29sb3IoZGFyay00KSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDVwdDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ8OiwpbCvCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNwYW57XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZHJvcGRvd24gY29udHJvbHMgY29udGFpbmVyXG4gICAgICAgICAgICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIHdoaXRlLCBjb2xvcihkYXJrLTIpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYm9yZGVyJywgMXB4IHNvbGlkIGJsYWNrLCAxcHggc29saWQgY29sb3IoZGFyay00KSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JveC1zaGFkb3cnLCAwcHggMTBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjUpLCAwcHggMTBweCA1cHggY29sb3IoZGFyay0yKSk7XG5cbiAgICAgICAgICAgICAgICAmLmxlZnQge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAwOyAvL2RyYXcgb24gdG9wIG9mIG90aGVyIGNvbnRyb2xzXG4gICAgICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgJi5pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggMTBweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5tYXQtbWRjLWZvcm0tZmllbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubWF0LW1kYy1pbnB1dC1lbGVtZW50LFxuICAgICAgICAgICAgICAgIC5tYXQtbWRjLWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWJvdHRvbS1jb2xvcicsIG9uLWNvbG9yKGRhcmspKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JvcmRlci1ib3R0b20tY29sb3InLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seShcbiAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtc2VsZWN0LXZhbHVlLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtc2VsZWN0LWFycm93IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmRpc2FibGVkLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignY29sb3InLCByZ2JhKDAsIDAsIDAsIDAuMzgpLCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDaGVja2JveCBTdHlsaW5nIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi5jaGVja2JveC1jdXN0b20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbi5jaGVja2JveC1jdXN0b20sXG4uY2hlY2tib3gtY3VzdG9tLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVja2JveC1jdXN0b20tbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignY29sb3InLCByZ2JhKDAsIDAsIDAsIDAuNDYpLCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbi5jaGVja2JveC1jdXN0b20gKyAuY2hlY2tib3gtY3VzdG9tLWxhYmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDNweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNoZWNrYm94LWN1c3RvbTpjaGVja2VkICsgLmNoZWNrYm94LWN1c3RvbS1sYWJlbDpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kJywgY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSk7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JveC1zaGFkb3cnLCBpbnNldCAwcHggMHB4IDBweCAxcHggY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBpbnNldCAwcHggMHB4IDBweCAxcHggY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvcikpO1xufVxuXG4uY2hlY2tib3gtY3VzdG9tOmNoZWNrZWQ6ZGlzYWJsZWQgKyAuY2hlY2tib3gtY3VzdG9tLWxhYmVsOmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQnLCBkZXNhdHVyYXRlKGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWNvbG9yKSwgMTAwJSksIGRlc2F0dXJhdGUoY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvciksIDEwMCUpKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcihcbiAgICAgICAgJ2JveC1zaGFkb3cnLFxuICAgICAgICBpbnNldCAwcHggMHB4IDBweCAxcHggZGVzYXR1cmF0ZShjb2xvcihjZWxsLWhpZ2hsaWdodC1jb2xvciksIDEwMCUpLFxuICAgICAgICBpbnNldCAwcHggMHB4IDBweCAxcHggZGVzYXR1cmF0ZShjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSwgMTAwJSlcbiAgICApO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gRGlhbG9nIFN0eWxpbmcgLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uZGlhbG9nLWN1c3RvbSAubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWxlZnQnLCBub25lKTtcbn1cblxuLm1hdC1kcmF3ZXItaW5uZXItY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWxpZ2h0KSwgY29sb3IoZGFyay0yKSk7XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIGNvbG9yKGRhcmstbGluaykpO1xuICAgIH1cbiAgICBhOnZpc2l0ZWQsXG4gICAgYTphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1saW5rLWFjdGl2ZSkpO1xuICAgIH1cbiAgICAubWF0LW1kYy1mb3JtLWZpZWxkLCAubWF0LW1kYy1mb3JtLWZpZWxkOmhvdmVyIHtcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWNvbG9yJywgb24tY29sb3IoZGFyaykgIWltcG9ydGFudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LW1kYy1jYXJkIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdiYWNrZ3JvdW5kLWNvbG9yJywgY29sb3IoZGFyay0zKSk7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgfVxuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLFxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBjb2xvcihkYXJrLTMpKTtcbiAgICB9XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykpO1xuICAgIH1cblxuICAgIC5tYXQtZGl2aWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLXRvcC1jb2xvcicsIGNvbG9yKGRhcmstNCkpO1xuICAgIH1cblxuICAgIC5tYXQtbWRjLWJ1dHRvbi1iYXNlIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdiYWNrZ3JvdW5kLWNvbG9yJywgY29sb3IoZGFyay00KSk7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgfVxufVxuXG4ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIC5tYXJrZG93biB7XG4gICAgcGFkZGluZzogMjVweDtcbn1cblxuLy8gcGF0Y2ggcG9wb3ZlciBzdHlsZVxuLnBvcG92ZXIge1xuICAgIC8vcG9zaXRpb25pbmcgYmVjYXVzZSB3ZSBkaWRuJ3QgaW1wb3J0IGJvb3RzdHJhcFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyBhZGQgYm9yZGVyIHJhZGl1c1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICAgIC8vZG9uJ3QgZm9yY2UgMjByZW0gd2lkdGgsIGNvbmZvcm0gdG8gY29udGVudCBvZiBwb3BvdmVyXG4gICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi8vIGZvcm0gZmllbGQgc3R5bGluZ1xuLm1hdC1tZGMtZm9ybS1maWVsZCB7XG4gICAgLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQsIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB9XG59XG4uaGlkZS1zdWJzY3JpcHQge1xuICAgIC5tYXQtbWRjLWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuLm1hdC1tZGMtZmxvYXRpbmctbGFiZWwsIC5tYXQtbWRjLWZvcm0tZmllbGQtaGludCB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4vLyBleHBhbnNpb24gcGFuZWwgc3R5bGluZ1xuLm1hdC1leHBhbnNpb24tcGFuZWwtYm9keSB7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbn0iLCIvKiByb2JvdG8tY3lyaWxsaWMtZXh0LTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tY3lyaWxsaWMtZXh0LTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLFUrMUM4MC0xQzg4LFUrMjBCNCxVKzJERTAtMkRGRixVK0E2NDAtQTY5RixVK0ZFMkUtRkUyRjtcbn1cblxuLyogcm9ib3RvLWN5cmlsbGljLTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1jeXJpbGxpYy00MDAtbm9ybWFsLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksIHVybCguL2ZpbGVzL3JvYm90by1jeXJpbGxpYy00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsVSswNDAwLTA0NUYsVSswNDkwLTA0OTEsVSswNEIwLTA0QjEsVSsyMTE2O1xufVxuXG4vKiByb2JvdG8tZ3JlZWstZXh0LTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1ncmVlay1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tZ3JlZWstZXh0LTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGO1xufVxuXG4vKiByb2JvdG8tZ3JlZWstNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4vZmlsZXMvcm9ib3RvLWdyZWVrLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLWdyZWVrLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LFUrMDM3QS0wMzdGLFUrMDM4NC0wMzhBLFUrMDM4QyxVKzAzOEUtMDNBMSxVKzAzQTMtMDNGRjtcbn1cblxuLyogcm9ib3RvLXZpZXRuYW1lc2UtNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4vZmlsZXMvcm9ib3RvLXZpZXRuYW1lc2UtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tdmlldG5hbWVzZS00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMyxVKzAxMTAtMDExMSxVKzAxMjgtMDEyOSxVKzAxNjgtMDE2OSxVKzAxQTAtMDFBMSxVKzAxQUYtMDFCMCxVKzAzMDAtMDMwMSxVKzAzMDMtMDMwNCxVKzAzMDgtMDMwOSxVKzAzMjMsVSswMzI5LFUrMUVBMC0xRUY5LFUrMjBBQjtcbn1cblxuLyogcm9ib3RvLWxhdGluLWV4dC00MDAtbm9ybWFsICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbGF0aW4tZXh0LTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLWxhdGluLWV4dC00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJBRixVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzFFMDAtMUU5RixVKzFFRjItMUVGRixVKzIwMjAsVSsyMEEwLTIwQUIsVSsyMEFELTIwQzAsVSsyMTEzLFUrMkM2MC0yQzdGLFUrQTcyMC1BN0ZGO1xufVxuXG4vKiByb2JvdG8tbGF0aW4tNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4vZmlsZXMvcm9ib3RvLWxhdGluLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLWxhdGluLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLFUrMDEzMSxVKzAxNTItMDE1MyxVKzAyQkItMDJCQyxVKzAyQzYsVSswMkRBLFUrMDJEQyxVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzIwMDAtMjA2RixVKzIwNzQsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDtcbn0iLCIvKiByb2JvdG8tbW9uby1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbC53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsVSsxQzgwLTFDODgsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGO1xufVxuXG4vKiByb2JvdG8tbW9uby1jeXJpbGxpYy00MDAtbm9ybWFsICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1tb25vLWN5cmlsbGljLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLW1vbm8tY3lyaWxsaWMtNDAwLW5vcm1hbC53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzAxLFUrMDQwMC0wNDVGLFUrMDQ5MC0wNDkxLFUrMDRCMC0wNEIxLFUrMjExNjtcbn1cblxuLyogcm9ib3RvLW1vbm8tZ3JlZWstNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1ncmVlay00MDAtbm9ybWFsLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksIHVybCguL2ZpbGVzL3JvYm90by1tb25vLWdyZWVrLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LFUrMDM3QS0wMzdGLFUrMDM4NC0wMzhBLFUrMDM4QyxVKzAzOEUtMDNBMSxVKzAzQTMtMDNGRjtcbn1cblxuLyogcm9ib3RvLW1vbm8tdmlldG5hbWVzZS00MDAtbm9ybWFsICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1tb25vLXZpZXRuYW1lc2UtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby12aWV0bmFtZXNlLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLFUrMDExMC0wMTExLFUrMDEyOC0wMTI5LFUrMDE2OC0wMTY5LFUrMDFBMC0wMUExLFUrMDFBRi0wMUIwLFUrMDMwMC0wMzAxLFUrMDMwMy0wMzA0LFUrMDMwOC0wMzA5LFUrMDMyMyxVKzAzMjksVSsxRUEwLTFFRjksVSsyMEFCO1xufVxuXG4vKiByb2JvdG8tbW9uby1sYXRpbi1leHQtNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1sYXRpbi1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1sYXRpbi1leHQtNDAwLW5vcm1hbC53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQUYsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsxRTAwLTFFOUYsVSsxRUYyLTFFRkYsVSsyMDIwLFUrMjBBMC0yMEFCLFUrMjBBRC0yMEMwLFUrMjExMyxVKzJDNjAtMkM3RixVK0E3MjAtQTdGRjtcbn1cblxuLyogcm9ib3RvLW1vbm8tbGF0aW4tNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1sYXRpbi00MDAtbm9ybWFsLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksIHVybCguL2ZpbGVzL3JvYm90by1tb25vLWxhdGluLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLFUrMDEzMSxVKzAxNTItMDE1MyxVKzAyQkItMDJCQyxVKzAyQzYsVSswMkRBLFUrMDJEQyxVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzIwMDAtMjA2RixVKzIwNzQsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDtcbn0iXSwic291cmNlUm9vdCI6IiJ9 */"], + styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, 0.1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}html{--mat-ripple-color:rgba(0, 0, 0, 0.1)}html{--mat-option-selected-state-label-text-color:#3f51b5;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-accent{--mat-option-selected-state-label-text-color:#ff4081;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-warn{--mat-option-selected-state-label-text-color:#f44336;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}html{--mat-optgroup-label-text-color:rgba(0, 0, 0, 0.87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color:#3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color:#f44336;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-app-background-color:#fafafa;--mat-app-text-color:rgba(0, 0, 0, 0.87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}.mat-theme-loaded-marker{display:none}html{--mat-option-label-text-font:Roboto, sans-serif;--mat-option-label-text-line-height:24px;--mat-option-label-text-size:16px;--mat-option-label-text-tracking:0.03125em;--mat-option-label-text-weight:400}html{--mat-optgroup-label-text-font:Roboto, sans-serif;--mat-optgroup-label-text-line-height:24px;--mat-optgroup-label-text-size:16px;--mat-optgroup-label-text-tracking:0.03125em;--mat-optgroup-label-text-weight:400}html{--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}html{--mdc-elevated-card-container-color:white;--mdc-elevated-card-container-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-color:white;--mdc-outlined-card-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-elevation:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-card-subtitle-text-color:rgba(0, 0, 0, 0.54)}html{--mat-card-title-text-font:Roboto, sans-serif;--mat-card-title-text-line-height:32px;--mat-card-title-text-size:20px;--mat-card-title-text-tracking:0.0125em;--mat-card-title-text-weight:500;--mat-card-subtitle-text-font:Roboto, sans-serif;--mat-card-subtitle-text-line-height:22px;--mat-card-subtitle-text-size:14px;--mat-card-subtitle-text-tracking:0.0071428571em;--mat-card-subtitle-text-weight:500}html{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color:#3f51b5;--mdc-linear-progress-track-color:rgba(63, 81, 181, 0.25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color:#ff4081;--mdc-linear-progress-track-color:rgba(255, 64, 129, 0.25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color:#f44336;--mdc-linear-progress-track-color:rgba(244, 67, 54, 0.25)}html{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}html{--mdc-plain-tooltip-container-color:#616161;--mdc-plain-tooltip-supporting-text-color:#fff}html{--mdc-plain-tooltip-supporting-text-font:Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size:12px;--mdc-plain-tooltip-supporting-text-weight:400;--mdc-plain-tooltip-supporting-text-tracking:0.0333333333em}html{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}html{--mdc-filled-text-field-caret-color:#3f51b5;--mdc-filled-text-field-focus-active-indicator-color:#3f51b5;--mdc-filled-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-filled-text-field-container-color:whitesmoke;--mdc-filled-text-field-disabled-container-color:#fafafa;--mdc-filled-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-error-hover-label-text-color:#f44336;--mdc-filled-text-field-error-focus-label-text-color:#f44336;--mdc-filled-text-field-error-label-text-color:#f44336;--mdc-filled-text-field-error-caret-color:#f44336;--mdc-filled-text-field-active-indicator-color:rgba(0, 0, 0, 0.42);--mdc-filled-text-field-disabled-active-indicator-color:rgba(0, 0, 0, 0.06);--mdc-filled-text-field-hover-active-indicator-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-error-active-indicator-color:#f44336;--mdc-filled-text-field-error-focus-active-indicator-color:#f44336;--mdc-filled-text-field-error-hover-active-indicator-color:#f44336;--mdc-outlined-text-field-caret-color:#3f51b5;--mdc-outlined-text-field-focus-outline-color:#3f51b5;--mdc-outlined-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-outlined-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-error-caret-color:#f44336;--mdc-outlined-text-field-error-focus-label-text-color:#f44336;--mdc-outlined-text-field-error-label-text-color:#f44336;--mdc-outlined-text-field-error-hover-label-text-color:#f44336;--mdc-outlined-text-field-outline-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-disabled-outline-color:rgba(0, 0, 0, 0.06);--mdc-outlined-text-field-hover-outline-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-error-focus-outline-color:#f44336;--mdc-outlined-text-field-error-hover-outline-color:#f44336;--mdc-outlined-text-field-error-outline-color:#f44336;--mat-form-field-focus-select-arrow-color:rgba(63, 81, 181, 0.87);--mat-form-field-disabled-input-text-placeholder-color:rgba(0, 0, 0, 0.38);--mat-form-field-state-layer-color:rgba(0, 0, 0, 0.87);--mat-form-field-error-text-color:#f44336;--mat-form-field-select-option-text-color:inherit;--mat-form-field-select-disabled-option-text-color:GrayText;--mat-form-field-leading-icon-color:unset;--mat-form-field-disabled-leading-icon-color:unset;--mat-form-field-trailing-icon-color:unset;--mat-form-field-disabled-trailing-icon-color:unset;--mat-form-field-error-focus-trailing-icon-color:unset;--mat-form-field-error-hover-trailing-icon-color:unset;--mat-form-field-error-trailing-icon-color:unset;--mat-form-field-enabled-select-arrow-color:rgba(0, 0, 0, 0.54);--mat-form-field-disabled-select-arrow-color:rgba(0, 0, 0, 0.38);--mat-form-field-hover-state-layer-opacity:0.04;--mat-form-field-focus-state-layer-opacity:0.08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color:#ff4081;--mdc-filled-text-field-focus-active-indicator-color:#ff4081;--mdc-filled-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mdc-outlined-text-field-caret-color:#ff4081;--mdc-outlined-text-field-focus-outline-color:#ff4081;--mdc-outlined-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mat-form-field-focus-select-arrow-color:rgba(255, 64, 129, 0.87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color:#f44336;--mdc-filled-text-field-focus-active-indicator-color:#f44336;--mdc-filled-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mdc-outlined-text-field-caret-color:#f44336;--mdc-outlined-text-field-focus-outline-color:#f44336;--mdc-outlined-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mat-form-field-focus-select-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-form-field-container-height:56px;--mat-form-field-filled-label-display:block;--mat-form-field-container-vertical-padding:16px;--mat-form-field-filled-with-label-container-padding-top:24px;--mat-form-field-filled-with-label-container-padding-bottom:8px}html{--mdc-filled-text-field-label-text-font:Roboto, sans-serif;--mdc-filled-text-field-label-text-size:16px;--mdc-filled-text-field-label-text-tracking:0.03125em;--mdc-filled-text-field-label-text-weight:400;--mdc-outlined-text-field-label-text-font:Roboto, sans-serif;--mdc-outlined-text-field-label-text-size:16px;--mdc-outlined-text-field-label-text-tracking:0.03125em;--mdc-outlined-text-field-label-text-weight:400;--mat-form-field-container-text-font:Roboto, sans-serif;--mat-form-field-container-text-line-height:24px;--mat-form-field-container-text-size:16px;--mat-form-field-container-text-tracking:0.03125em;--mat-form-field-container-text-weight:400;--mat-form-field-outlined-label-text-populated-size:16px;--mat-form-field-subscript-text-font:Roboto, sans-serif;--mat-form-field-subscript-text-line-height:20px;--mat-form-field-subscript-text-size:12px;--mat-form-field-subscript-text-tracking:0.0333333333em;--mat-form-field-subscript-text-weight:400}html{--mat-select-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(63, 81, 181, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(255, 64, 129, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(244, 67, 54, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-select-arrow-transform:translateY(-8px)}html{--mat-select-trigger-text-font:Roboto, sans-serif;--mat-select-trigger-text-line-height:24px;--mat-select-trigger-text-size:16px;--mat-select-trigger-text-tracking:0.03125em;--mat-select-trigger-text-weight:400}html{--mat-autocomplete-container-shape:4px;--mat-autocomplete-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-autocomplete-background-color:white}html{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mat-dialog-container-max-width:80vw;--mat-dialog-container-small-max-width:80vw;--mat-dialog-container-min-width:0;--mat-dialog-actions-alignment:start;--mat-dialog-actions-padding:8px;--mat-dialog-content-padding:20px 24px;--mat-dialog-with-actions-content-padding:20px 24px;--mat-dialog-headline-padding:0 24px 9px}html{--mdc-dialog-container-color:white;--mdc-dialog-subhead-color:rgba(0, 0, 0, 0.87);--mdc-dialog-supporting-text-color:rgba(0, 0, 0, 0.6)}html{--mdc-dialog-subhead-font:Roboto, sans-serif;--mdc-dialog-subhead-line-height:32px;--mdc-dialog-subhead-size:20px;--mdc-dialog-subhead-weight:500;--mdc-dialog-subhead-tracking:0.0125em;--mdc-dialog-supporting-text-font:Roboto, sans-serif;--mdc-dialog-supporting-text-line-height:24px;--mdc-dialog-supporting-text-size:16px;--mdc-dialog-supporting-text-weight:400;--mdc-dialog-supporting-text-tracking:0.03125em}.mat-mdc-standard-chip{--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px;--mdc-chip-outline-width:0;--mdc-chip-outline-color:transparent;--mdc-chip-disabled-outline-color:transparent;--mdc-chip-focus-outline-color:transparent;--mdc-chip-hover-state-layer-opacity:0.04;--mdc-chip-with-avatar-disabled-avatar-opacity:1;--mdc-chip-flat-selected-outline-width:0;--mdc-chip-selected-hover-state-layer-opacity:0.04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:1;--mdc-chip-with-icon-disabled-icon-opacity:1;--mat-chip-disabled-container-opacity:0.4;--mat-chip-trailing-action-opacity:0.54;--mat-chip-trailing-action-focus-opacity:1;--mat-chip-trailing-action-state-layer-color:transparent;--mat-chip-selected-trailing-action-state-layer-color:transparent;--mat-chip-trailing-action-hover-state-layer-opacity:0;--mat-chip-trailing-action-focus-state-layer-opacity:0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color:#212121;--mdc-chip-elevated-container-color:#e0e0e0;--mdc-chip-elevated-selected-container-color:#e0e0e0;--mdc-chip-elevated-disabled-container-color:#e0e0e0;--mdc-chip-flat-disabled-selected-container-color:#e0e0e0;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:#212121;--mdc-chip-selected-label-text-color:#212121;--mdc-chip-with-icon-icon-color:#212121;--mdc-chip-with-icon-disabled-icon-color:#212121;--mdc-chip-with-icon-selected-icon-color:#212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:#212121;--mdc-chip-with-trailing-icon-trailing-icon-color:#212121;--mat-chip-selected-disabled-trailing-icon-color:#212121;--mat-chip-selected-trailing-icon-color:#212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#3f51b5;--mdc-chip-elevated-selected-container-color:#3f51b5;--mdc-chip-elevated-disabled-container-color:#3f51b5;--mdc-chip-flat-disabled-selected-container-color:#3f51b5;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#ff4081;--mdc-chip-elevated-selected-container-color:#ff4081;--mdc-chip-elevated-disabled-container-color:#ff4081;--mdc-chip-flat-disabled-selected-container-color:#ff4081;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#f44336;--mdc-chip-elevated-selected-container-color:#f44336;--mdc-chip-elevated-disabled-container-color:#f44336;--mdc-chip-flat-disabled-selected-container-color:#f44336;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height:32px}.mat-mdc-standard-chip{--mdc-chip-label-text-font:Roboto, sans-serif;--mdc-chip-label-text-line-height:20px;--mdc-chip-label-text-size:14px;--mdc-chip-label-text-tracking:0.0178571429em;--mdc-chip-label-text-weight:400}html{--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1;--mat-switch-disabled-selected-handle-opacity:0.38;--mat-switch-disabled-unselected-handle-opacity:0.38;--mat-switch-unselected-handle-size:20px;--mat-switch-selected-handle-size:20px;--mat-switch-pressed-handle-size:20px;--mat-switch-with-icon-handle-size:20px;--mat-switch-selected-handle-horizontal-margin:0;--mat-switch-selected-with-icon-handle-horizontal-margin:0;--mat-switch-selected-pressed-handle-horizontal-margin:0;--mat-switch-unselected-handle-horizontal-margin:0;--mat-switch-unselected-with-icon-handle-horizontal-margin:0;--mat-switch-unselected-pressed-handle-horizontal-margin:0;--mat-switch-visible-track-opacity:1;--mat-switch-hidden-track-opacity:1;--mat-switch-visible-track-transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);--mat-switch-hidden-track-transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);--mat-switch-track-outline-width:1px;--mat-switch-track-outline-color:transparent;--mat-switch-selected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-color:transparent}html{--mdc-switch-selected-focus-state-layer-color:#3949ab;--mdc-switch-selected-handle-color:#3949ab;--mdc-switch-selected-hover-state-layer-color:#3949ab;--mdc-switch-selected-pressed-state-layer-color:#3949ab;--mdc-switch-selected-focus-handle-color:#1a237e;--mdc-switch-selected-hover-handle-color:#1a237e;--mdc-switch-selected-pressed-handle-color:#1a237e;--mdc-switch-selected-focus-track-color:#7986cb;--mdc-switch-selected-hover-track-color:#7986cb;--mdc-switch-selected-pressed-track-color:#7986cb;--mdc-switch-selected-track-color:#7986cb;--mdc-switch-disabled-selected-handle-color:#424242;--mdc-switch-disabled-selected-icon-color:#fff;--mdc-switch-disabled-selected-track-color:#424242;--mdc-switch-disabled-unselected-handle-color:#424242;--mdc-switch-disabled-unselected-icon-color:#fff;--mdc-switch-disabled-unselected-track-color:#424242;--mdc-switch-handle-surface-color:var(--mdc-theme-surface, #fff);--mdc-switch-handle-elevation-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-switch-handle-shadow-color:black;--mdc-switch-disabled-handle-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-switch-selected-icon-color:#fff;--mdc-switch-unselected-focus-handle-color:#212121;--mdc-switch-unselected-focus-state-layer-color:#424242;--mdc-switch-unselected-focus-track-color:#e0e0e0;--mdc-switch-unselected-handle-color:#616161;--mdc-switch-unselected-hover-handle-color:#212121;--mdc-switch-unselected-hover-state-layer-color:#424242;--mdc-switch-unselected-hover-track-color:#e0e0e0;--mdc-switch-unselected-icon-color:#fff;--mdc-switch-unselected-pressed-handle-color:#212121;--mdc-switch-unselected-pressed-state-layer-color:#424242;--mdc-switch-unselected-pressed-track-color:#e0e0e0;--mdc-switch-unselected-track-color:#e0e0e0;--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, 0.38)}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color:#d81b60;--mdc-switch-selected-handle-color:#d81b60;--mdc-switch-selected-hover-state-layer-color:#d81b60;--mdc-switch-selected-pressed-state-layer-color:#d81b60;--mdc-switch-selected-focus-handle-color:#880e4f;--mdc-switch-selected-hover-handle-color:#880e4f;--mdc-switch-selected-pressed-handle-color:#880e4f;--mdc-switch-selected-focus-track-color:#f06292;--mdc-switch-selected-hover-track-color:#f06292;--mdc-switch-selected-pressed-track-color:#f06292;--mdc-switch-selected-track-color:#f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color:#e53935;--mdc-switch-selected-handle-color:#e53935;--mdc-switch-selected-hover-state-layer-color:#e53935;--mdc-switch-selected-pressed-state-layer-color:#e53935;--mdc-switch-selected-focus-handle-color:#b71c1c;--mdc-switch-selected-hover-handle-color:#b71c1c;--mdc-switch-selected-pressed-handle-color:#b71c1c;--mdc-switch-selected-focus-track-color:#e57373;--mdc-switch-selected-hover-track-color:#e57373;--mdc-switch-selected-pressed-track-color:#e57373;--mdc-switch-selected-track-color:#e57373}html{--mdc-switch-state-layer-size:40px}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px}.mat-mdc-radio-button{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#3f51b5;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#ff4081;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#f44336;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}html{--mdc-radio-state-layer-size:40px;--mat-radio-touch-target-display:block}.mat-mdc-radio-button{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mat-slider-value-indicator-width:auto;--mat-slider-value-indicator-height:32px;--mat-slider-value-indicator-caret-display:block;--mat-slider-value-indicator-border-radius:4px;--mat-slider-value-indicator-padding:0 12px;--mat-slider-value-indicator-text-transform:none;--mat-slider-value-indicator-container-transform:translateX(-50%);--mdc-slider-active-track-height:6px;--mdc-slider-active-track-shape:9999px;--mdc-slider-handle-height:20px;--mdc-slider-handle-shape:50%;--mdc-slider-handle-width:20px;--mdc-slider-inactive-track-height:4px;--mdc-slider-inactive-track-shape:9999px;--mdc-slider-with-overlap-handle-outline-width:1px;--mdc-slider-with-tick-marks-active-container-opacity:0.6;--mdc-slider-with-tick-marks-container-shape:50%;--mdc-slider-with-tick-marks-container-size:2px;--mdc-slider-with-tick-marks-inactive-container-opacity:0.6}html{--mdc-slider-handle-color:#3f51b5;--mdc-slider-focus-handle-color:#3f51b5;--mdc-slider-hover-handle-color:#3f51b5;--mdc-slider-active-track-color:#3f51b5;--mdc-slider-inactive-track-color:#3f51b5;--mdc-slider-with-tick-marks-inactive-container-color:#3f51b5;--mdc-slider-with-tick-marks-active-container-color:white;--mdc-slider-disabled-active-track-color:#000;--mdc-slider-disabled-handle-color:#000;--mdc-slider-disabled-inactive-track-color:#000;--mdc-slider-label-container-color:#000;--mdc-slider-label-label-text-color:#fff;--mdc-slider-with-overlap-handle-outline-color:#fff;--mdc-slider-with-tick-marks-disabled-container-color:#000;--mdc-slider-handle-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-slider-ripple-color:#3f51b5;--mat-slider-hover-state-layer-color:rgba(63, 81, 181, 0.05);--mat-slider-focus-state-layer-color:rgba(63, 81, 181, 0.2);--mat-slider-value-indicator-opacity:0.6}html .mat-accent{--mat-slider-ripple-color:#ff4081;--mat-slider-hover-state-layer-color:rgba(255, 64, 129, 0.05);--mat-slider-focus-state-layer-color:rgba(255, 64, 129, 0.2);--mdc-slider-handle-color:#ff4081;--mdc-slider-focus-handle-color:#ff4081;--mdc-slider-hover-handle-color:#ff4081;--mdc-slider-active-track-color:#ff4081;--mdc-slider-inactive-track-color:#ff4081;--mdc-slider-with-tick-marks-inactive-container-color:#ff4081;--mdc-slider-with-tick-marks-active-container-color:white}html .mat-warn{--mat-slider-ripple-color:#f44336;--mat-slider-hover-state-layer-color:rgba(244, 67, 54, 0.05);--mat-slider-focus-state-layer-color:rgba(244, 67, 54, 0.2);--mdc-slider-handle-color:#f44336;--mdc-slider-focus-handle-color:#f44336;--mdc-slider-hover-handle-color:#f44336;--mdc-slider-active-track-color:#f44336;--mdc-slider-inactive-track-color:#f44336;--mdc-slider-with-tick-marks-inactive-container-color:#f44336;--mdc-slider-with-tick-marks-active-container-color:white}html{--mdc-slider-label-label-text-font:Roboto, sans-serif;--mdc-slider-label-label-text-size:14px;--mdc-slider-label-label-text-line-height:22px;--mdc-slider-label-label-text-tracking:0.0071428571em;--mdc-slider-label-label-text-weight:500}html{--mat-menu-container-shape:4px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px}html{--mat-menu-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-menu-item-icon-color:rgba(0, 0, 0, 0.87);--mat-menu-item-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-item-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-container-color:white;--mat-menu-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-menu-item-label-text-font:Roboto, sans-serif;--mat-menu-item-label-text-size:16px;--mat-menu-item-label-text-tracking:0.03125em;--mat-menu-item-label-text-line-height:24px;--mat-menu-item-label-text-weight:400}html{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38;--mat-list-active-indicator-color:transparent;--mat-list-active-indicator-shape:4px}html{--mdc-list-list-item-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-supporting-text-color:rgba(0, 0, 0, 0.54);--mdc-list-list-item-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-supporting-text-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-selected-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-disabled-label-text-color:black;--mdc-list-list-item-disabled-leading-icon-color:black;--mdc-list-list-item-disabled-trailing-icon-color:black;--mdc-list-list-item-hover-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-hover-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-focus-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-state-layer-color:black;--mdc-list-list-item-hover-state-layer-opacity:0.04;--mdc-list-list-item-focus-state-layer-color:black;--mdc-list-list-item-focus-state-layer-opacity:0.12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text{color:#3f51b5}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected.mdc-list-item--with-leading-icon .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height:48px;--mdc-list-list-item-two-line-container-height:64px;--mdc-list-list-item-three-line-container-height:88px;--mat-list-list-item-leading-icon-start-space:16px;--mat-list-list-item-leading-icon-end-space:32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size:40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mdc-list-list-item-label-text-font:Roboto, sans-serif;--mdc-list-list-item-label-text-line-height:24px;--mdc-list-list-item-label-text-size:16px;--mdc-list-list-item-label-text-tracking:0.03125em;--mdc-list-list-item-label-text-weight:400;--mdc-list-list-item-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height:20px;--mdc-list-list-item-supporting-text-size:14px;--mdc-list-list-item-supporting-text-tracking:0.0178571429em;--mdc-list-list-item-supporting-text-weight:400;--mdc-list-list-item-trailing-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height:20px;--mdc-list-list-item-trailing-supporting-text-size:12px;--mdc-list-list-item-trailing-supporting-text-tracking:0.0333333333em;--mdc-list-list-item-trailing-supporting-text-weight:400}.mdc-list-group__subheader{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-color:rgba(0, 0, 0, 0.87);--mat-paginator-container-background-color:white;--mat-paginator-enabled-icon-color:rgba(0, 0, 0, 0.54);--mat-paginator-disabled-icon-color:rgba(0, 0, 0, 0.12)}html{--mat-paginator-container-size:56px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px}html{--mat-paginator-container-text-font:Roboto, sans-serif;--mat-paginator-container-text-line-height:20px;--mat-paginator-container-text-size:12px;--mat-paginator-container-text-tracking:0.0333333333em;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:12px}html{--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px;--mat-tab-header-divider-color:transparent;--mat-tab-header-divider-height:0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color:#3f51b5;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#3f51b5;--mat-tab-header-active-ripple-color:#3f51b5;--mat-tab-header-inactive-ripple-color:#3f51b5;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#3f51b5;--mat-tab-header-active-hover-label-text-color:#3f51b5;--mat-tab-header-active-focus-indicator-color:#3f51b5;--mat-tab-header-active-hover-indicator-color:#3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color:#ff4081;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#ff4081;--mat-tab-header-active-ripple-color:#ff4081;--mat-tab-header-inactive-ripple-color:#ff4081;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#ff4081;--mat-tab-header-active-hover-label-text-color:#ff4081;--mat-tab-header-active-focus-indicator-color:#ff4081;--mat-tab-header-active-hover-indicator-color:#ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color:#f44336;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#f44336;--mat-tab-header-active-ripple-color:#f44336;--mat-tab-header-inactive-ripple-color:#f44336;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#f44336;--mat-tab-header-active-hover-label-text-color:#f44336;--mat-tab-header-active-focus-indicator-color:#f44336;--mat-tab-header-active-hover-indicator-color:#f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color:#3f51b5;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color:#ff4081;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color:#f44336;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header{--mat-tab-header-label-text-font:Roboto, sans-serif;--mat-tab-header-label-text-size:14px;--mat-tab-header-label-text-tracking:0.0892857143em;--mat-tab-header-label-text-line-height:36px;--mat-tab-header-label-text-weight:500}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}html{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black;--mat-checkbox-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-checkbox{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}html{--mdc-checkbox-state-layer-size:40px;--mat-checkbox-touch-target-display:block}.mat-mdc-checkbox{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-text-button-container-shape:4px;--mdc-text-button-keep-touch-target:false;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mdc-protected-button-container-shape:4px;--mdc-protected-button-keep-touch-target:false;--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-outlined-button-container-shape:4px;--mat-text-button-horizontal-padding:8px;--mat-text-button-with-icon-horizontal-padding:8px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-protected-button-horizontal-padding:16px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:15px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px}html{--mdc-text-button-label-text-color:black;--mdc-text-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-text-button-state-layer-color:black;--mat-text-button-disabled-state-layer-color:black;--mat-text-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-text-button-hover-state-layer-opacity:0.04;--mat-text-button-focus-state-layer-opacity:0.12;--mat-text-button-pressed-state-layer-opacity:0.12;--mdc-filled-button-container-color:white;--mdc-filled-button-label-text-color:black;--mdc-filled-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-filled-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-filled-button-state-layer-color:black;--mat-filled-button-disabled-state-layer-color:black;--mat-filled-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-filled-button-hover-state-layer-opacity:0.04;--mat-filled-button-focus-state-layer-opacity:0.12;--mat-filled-button-pressed-state-layer-opacity:0.12;--mdc-protected-button-container-color:white;--mdc-protected-button-label-text-color:black;--mdc-protected-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-protected-button-container-elevation-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-container-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-focus-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-hover-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-pressed-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-protected-button-container-shadow-color:#000;--mat-protected-button-state-layer-color:black;--mat-protected-button-disabled-state-layer-color:black;--mat-protected-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-protected-button-hover-state-layer-opacity:0.04;--mat-protected-button-focus-state-layer-opacity:0.12;--mat-protected-button-pressed-state-layer-opacity:0.12;--mdc-outlined-button-disabled-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-button-label-text-color:black;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:black;--mat-outlined-button-disabled-state-layer-color:black;--mat-outlined-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-outlined-button-hover-state-layer-opacity:0.04;--mat-outlined-button-focus-state-layer-opacity:0.12;--mat-outlined-button-pressed-state-layer-opacity:0.12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color:#3f51b5;--mat-text-button-state-layer-color:#3f51b5;--mat-text-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color:#ff4081;--mat-text-button-state-layer-color:#ff4081;--mat-text-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color:#f44336;--mat-text-button-state-layer-color:#f44336;--mat-text-button-ripple-color:rgba(244, 67, 54, 0.1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color:#3f51b5;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color:#ff4081;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color:#f44336;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color:#3f51b5;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color:#ff4081;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color:#f44336;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color:#3f51b5;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#3f51b5;--mat-outlined-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color:#ff4081;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#ff4081;--mat-outlined-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color:#f44336;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#f44336;--mat-outlined-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mdc-text-button-container-height:36px;--mdc-filled-button-container-height:36px;--mdc-outlined-button-container-height:36px;--mdc-protected-button-container-height:36px;--mat-text-button-touch-target-display:block;--mat-filled-button-touch-target-display:block;--mat-protected-button-touch-target-display:block;--mat-outlined-button-touch-target-display:block}html{--mdc-text-button-label-text-font:Roboto, sans-serif;--mdc-text-button-label-text-size:14px;--mdc-text-button-label-text-tracking:0.0892857143em;--mdc-text-button-label-text-weight:500;--mdc-text-button-label-text-transform:none;--mdc-filled-button-label-text-font:Roboto, sans-serif;--mdc-filled-button-label-text-size:14px;--mdc-filled-button-label-text-tracking:0.0892857143em;--mdc-filled-button-label-text-weight:500;--mdc-filled-button-label-text-transform:none;--mdc-outlined-button-label-text-font:Roboto, sans-serif;--mdc-outlined-button-label-text-size:14px;--mdc-outlined-button-label-text-tracking:0.0892857143em;--mdc-outlined-button-label-text-weight:500;--mdc-outlined-button-label-text-transform:none;--mdc-protected-button-label-text-font:Roboto, sans-serif;--mdc-protected-button-label-text-size:14px;--mdc-protected-button-label-text-tracking:0.0892857143em;--mdc-protected-button-label-text-weight:500;--mdc-protected-button-label-text-transform:none}html{--mdc-icon-button-icon-size:24px}html{--mdc-icon-button-icon-color:inherit;--mdc-icon-button-disabled-icon-color:rgba(0, 0, 0, 0.38);--mat-icon-button-state-layer-color:black;--mat-icon-button-disabled-state-layer-color:black;--mat-icon-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-icon-button-hover-state-layer-opacity:0.04;--mat-icon-button-focus-state-layer-opacity:0.12;--mat-icon-button-pressed-state-layer-opacity:0.12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color:#3f51b5;--mat-icon-button-state-layer-color:#3f51b5;--mat-icon-button-ripple-color:rgba(63, 81, 181, 0.1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color:#ff4081;--mat-icon-button-state-layer-color:#ff4081;--mat-icon-button-ripple-color:rgba(255, 64, 129, 0.1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color:#f44336;--mat-icon-button-state-layer-color:#f44336;--mat-icon-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mat-icon-button-touch-target-display:block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px;--mdc-fab-small-container-shape:50%;--mdc-fab-small-icon-size:24px;--mdc-extended-fab-container-height:48px;--mdc-extended-fab-container-shape:24px}html{--mdc-fab-container-color:white;--mdc-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-container-shadow-color:#000;--mat-fab-foreground-color:black;--mat-fab-state-layer-color:black;--mat-fab-disabled-state-layer-color:black;--mat-fab-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-hover-state-layer-opacity:0.04;--mat-fab-focus-state-layer-opacity:0.12;--mat-fab-pressed-state-layer-opacity:0.12;--mat-fab-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-fab-small-container-color:white;--mdc-fab-small-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-small-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-small-container-shadow-color:#000;--mat-fab-small-foreground-color:black;--mat-fab-small-state-layer-color:black;--mat-fab-small-disabled-state-layer-color:black;--mat-fab-small-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-small-hover-state-layer-opacity:0.04;--mat-fab-small-focus-state-layer-opacity:0.12;--mat-fab-small-pressed-state-layer-opacity:0.12;--mat-fab-small-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-small-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-extended-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-extended-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-extended-fab-container-shadow-color:#000}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color:#3f51b5;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color:#ff4081;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color:#f44336;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color:#3f51b5;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color:#ff4081;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color:#f44336;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html{--mat-fab-touch-target-display:block;--mat-fab-small-touch-target-display:block}html{--mdc-extended-fab-label-text-font:Roboto, sans-serif;--mdc-extended-fab-label-text-size:14px;--mdc-extended-fab-label-text-tracking:0.0892857143em;--mdc-extended-fab-label-text-weight:500}html{--mdc-snackbar-container-shape:4px}html{--mdc-snackbar-container-color:#333333;--mdc-snackbar-supporting-text-color:rgba(255, 255, 255, 0.87);--mat-snack-bar-button-color:#ff4081}html{--mdc-snackbar-supporting-text-font:Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height:20px;--mdc-snackbar-supporting-text-size:14px;--mdc-snackbar-supporting-text-weight:400}html{--mat-table-row-item-outline-width:1px}html{--mat-table-background-color:white;--mat-table-header-headline-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-outline-color:rgba(0, 0, 0, 0.12)}html{--mat-table-header-container-height:56px;--mat-table-footer-container-height:52px;--mat-table-row-item-container-height:52px}html{--mat-table-header-headline-font:Roboto, sans-serif;--mat-table-header-headline-line-height:22px;--mat-table-header-headline-size:14px;--mat-table-header-headline-weight:500;--mat-table-header-headline-tracking:0.0071428571em;--mat-table-row-item-label-text-font:Roboto, sans-serif;--mat-table-row-item-label-text-line-height:20px;--mat-table-row-item-label-text-size:14px;--mat-table-row-item-label-text-weight:400;--mat-table-row-item-label-text-tracking:0.0178571429em;--mat-table-footer-supporting-text-font:Roboto, sans-serif;--mat-table-footer-supporting-text-line-height:20px;--mat-table-footer-supporting-text-size:14px;--mat-table-footer-supporting-text-weight:400;--mat-table-footer-supporting-text-tracking:0.0178571429em}html{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}html{--mdc-circular-progress-active-indicator-color:#3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color:#ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color:#f44336}html{--mat-badge-container-shape:50%;--mat-badge-container-size:unset;--mat-badge-small-size-container-size:unset;--mat-badge-large-size-container-size:unset;--mat-badge-legacy-container-size:22px;--mat-badge-legacy-small-size-container-size:16px;--mat-badge-legacy-large-size-container-size:28px;--mat-badge-container-offset:-11px 0;--mat-badge-small-size-container-offset:-8px 0;--mat-badge-large-size-container-offset:-14px 0;--mat-badge-container-overlap-offset:-11px;--mat-badge-small-size-container-overlap-offset:-8px;--mat-badge-large-size-container-overlap-offset:-14px;--mat-badge-container-padding:0;--mat-badge-small-size-container-padding:0;--mat-badge-large-size-container-padding:0}html{--mat-badge-background-color:#3f51b5;--mat-badge-text-color:white;--mat-badge-disabled-state-background-color:#b9b9b9;--mat-badge-disabled-state-text-color:rgba(0, 0, 0, 0.38)}.mat-badge-accent{--mat-badge-background-color:#ff4081;--mat-badge-text-color:white}.mat-badge-warn{--mat-badge-background-color:#f44336;--mat-badge-text-color:white}html{--mat-badge-text-font:Roboto, sans-serif;--mat-badge-text-size:12px;--mat-badge-text-weight:600;--mat-badge-small-size-text-size:9px;--mat-badge-large-size-text-size:24px}html{--mat-bottom-sheet-container-shape:4px}html{--mat-bottom-sheet-container-text-color:rgba(0, 0, 0, 0.87);--mat-bottom-sheet-container-background-color:white}html{--mat-bottom-sheet-container-text-font:Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height:20px;--mat-bottom-sheet-container-text-size:14px;--mat-bottom-sheet-container-text-tracking:0.0178571429em;--mat-bottom-sheet-container-text-weight:400}html{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12}html{--mat-legacy-button-toggle-text-color:rgba(0, 0, 0, 0.38);--mat-legacy-button-toggle-state-layer-color:rgba(0, 0, 0, 0.12);--mat-legacy-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.54);--mat-legacy-button-toggle-selected-state-background-color:#e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-legacy-button-toggle-disabled-state-background-color:#eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-background-color:white;--mat-standard-button-toggle-state-layer-color:black;--mat-standard-button-toggle-selected-state-background-color:#e0e0e0;--mat-standard-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-standard-button-toggle-disabled-state-background-color:white;--mat-standard-button-toggle-disabled-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-divider-color:#e0e0e0}html{--mat-standard-button-toggle-height:48px}html{--mat-legacy-button-toggle-label-text-font:Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height:24px;--mat-legacy-button-toggle-label-text-size:16px;--mat-legacy-button-toggle-label-text-tracking:0.03125em;--mat-legacy-button-toggle-label-text-weight:400;--mat-standard-button-toggle-label-text-font:Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height:24px;--mat-standard-button-toggle-label-text-size:16px;--mat-standard-button-toggle-label-text-tracking:0.03125em;--mat-standard-button-toggle-label-text-weight:400}html{--mat-datepicker-calendar-container-shape:4px;--mat-datepicker-calendar-container-touch-shape:4px;--mat-datepicker-calendar-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-container-touch-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(63, 81, 181, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-toggle-active-state-icon-color:#3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color:rgba(63, 81, 181, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e;--mat-datepicker-toggle-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-body-label-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-period-button-text-color:black;--mat-datepicker-calendar-period-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-navigation-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-header-divider-color:rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-header-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-date-today-outline-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-today-disabled-state-outline-color:rgba(0, 0, 0, 0.18);--mat-datepicker-calendar-date-text-color:rgba(0, 0, 0, 0.87);--mat-datepicker-calendar-date-outline-color:transparent;--mat-datepicker-calendar-date-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-preview-state-outline-color:rgba(0, 0, 0, 0.24);--mat-datepicker-range-input-separator-color:rgba(0, 0, 0, 0.87);--mat-datepicker-range-input-disabled-state-separator-color:rgba(0, 0, 0, 0.38);--mat-datepicker-range-input-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-container-background-color:white;--mat-datepicker-calendar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(255, 64, 129, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(255, 64, 129, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(244, 67, 54, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(244, 67, 54, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color:#ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color:#f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display:none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-datepicker-calendar-text-font:Roboto, sans-serif;--mat-datepicker-calendar-text-size:13px;--mat-datepicker-calendar-body-label-text-size:14px;--mat-datepicker-calendar-body-label-text-weight:500;--mat-datepicker-calendar-period-button-text-size:14px;--mat-datepicker-calendar-period-button-text-weight:500;--mat-datepicker-calendar-header-text-size:11px;--mat-datepicker-calendar-header-text-weight:400}html{--mat-divider-width:1px}html{--mat-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-expansion-container-shape:4px;--mat-expansion-legacy-header-indicator-display:inline-block;--mat-expansion-header-indicator-display:none}html{--mat-expansion-container-background-color:white;--mat-expansion-container-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-actions-divider-color:rgba(0, 0, 0, 0.12);--mat-expansion-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-expansion-header-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-header-description-color:rgba(0, 0, 0, 0.54);--mat-expansion-header-indicator-color:rgba(0, 0, 0, 0.54)}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px}html{--mat-expansion-header-text-font:Roboto, sans-serif;--mat-expansion-header-text-size:14px;--mat-expansion-header-text-weight:500;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:Roboto, sans-serif;--mat-expansion-container-text-line-height:20px;--mat-expansion-container-text-size:14px;--mat-expansion-container-text-tracking:0.0178571429em;--mat-expansion-container-text-weight:400}html{--mat-grid-list-tile-header-primary-text-size:14px;--mat-grid-list-tile-header-secondary-text-size:12px;--mat-grid-list-tile-footer-primary-text-size:14px;--mat-grid-list-tile-footer-secondary-text-size:12px}html{--mat-icon-color:inherit}.mat-icon.mat-primary{--mat-icon-color:#3f51b5}.mat-icon.mat-accent{--mat-icon-color:#ff4081}.mat-icon.mat-warn{--mat-icon-color:#f44336}html{--mat-sidenav-container-shape:0;--mat-sidenav-container-elevation-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-sidenav-container-width:auto}html{--mat-sidenav-container-divider-color:rgba(0, 0, 0, 0.12);--mat-sidenav-container-background-color:white;--mat-sidenav-container-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-content-background-color:#fafafa;--mat-sidenav-content-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-scrim-color:rgba(0, 0, 0, 0.6)}html{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#3f51b5;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#3f51b5;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#3f51b5;--mat-stepper-header-edit-state-icon-foreground-color:white;--mat-stepper-container-color:white;--mat-stepper-line-color:rgba(0, 0, 0, 0.12);--mat-stepper-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-optional-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-selected-state-label-text-color:rgba(0, 0, 0, 0.87);--mat-stepper-header-error-state-label-text-color:#f44336;--mat-stepper-header-icon-background-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-error-state-icon-foreground-color:#f44336;--mat-stepper-header-error-state-icon-background-color:transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#ff4081;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#ff4081;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#ff4081;--mat-stepper-header-edit-state-icon-foreground-color:white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#f44336;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#f44336;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#f44336;--mat-stepper-header-edit-state-icon-foreground-color:white}html{--mat-stepper-header-height:72px}html{--mat-stepper-container-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-size:14px;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-weight:400}html{--mat-sort-arrow-color:#757575}html{--mat-toolbar-container-background-color:whitesmoke;--mat-toolbar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color:#3f51b5;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color:#ff4081;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color:#f44336;--mat-toolbar-container-text-color:white}html{--mat-toolbar-standard-height:64px;--mat-toolbar-mobile-height:56px}html{--mat-toolbar-title-text-font:Roboto, sans-serif;--mat-toolbar-title-text-line-height:32px;--mat-toolbar-title-text-size:20px;--mat-toolbar-title-text-tracking:0.0125em;--mat-toolbar-title-text-weight:500}html{--mat-tree-container-background-color:white;--mat-tree-node-text-color:rgba(0, 0, 0, 0.87)}html{--mat-tree-node-min-height:48px}html{--mat-tree-node-text-font:Roboto, sans-serif;--mat-tree-node-text-size:14px;--mat-tree-node-text-weight:400}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto, sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto, sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto, sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 calc(14px*.83)/20px Roboto, sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 calc(14px*.67)/20px Roboto, sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto, sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto, sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto, sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto, sans-serif;letter-spacing:-0.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto, sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto, sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto, sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9wcmVidWlsdC10aGVtZXMvaW5kaWdvLXBpbmsuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksZUFBZSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3Qix1QkFBdUIsQ0FBQyxpQ0FBaUMsZ0JBQWdCLENBQUMsb0JBQW9CLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLDJEQUEyRCxDQUFDLDBCQUEwQixDQUFDLDREQUE0RCxDQUFDLDhDQUE4QyxZQUFZLENBQUMscUJBQXFCLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsK0JBQStCLFNBQVMsQ0FBQyxPQUFPLENBQUMsbURBQW1ELG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsY0FBYyxDQUFDLFlBQVksQ0FBQyw2QkFBNkIsWUFBWSxDQUFDLDRCQUE0QixZQUFZLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMseUNBQXlDLENBQUMseURBQXlELENBQUMsU0FBUyxDQUFDLG1EQUFtRCxTQUFTLENBQUMsNkVBQTZFLFVBQVUsQ0FBQywyQkFBMkIsMEJBQTBCLENBQUMsa0NBQWtDLG1EQUFtRCxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQywrREFBK0QsU0FBUyxDQUFDLGtCQUFrQixDQUFDLHFDQUFxQyxlQUFlLENBQUMsNkNBQTZDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsY0FBYyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQywrQkFBK0IsV0FBVyxDQUFDLHlDQUF5Qyx3QkFBd0IsQ0FBQyxpQ0FBaUMsQ0FBQyxzQkFBc0IsQ0FBQywwQkFBMEIsQ0FBQyxpREFBaUQsd0JBQXdCLENBQUMsaUNBQWlDLENBQUMsbUJBQW1CLENBQUMseUNBQXlDLElBQUksQ0FBQyxDQUFDLHVDQUF1QyxJQUFJLENBQUMsQ0FBQyxvREFBb0QsOENBQThDLENBQUMsMERBQTBELDRDQUE0QyxDQUFDLHFCQUFxQixpQkFBaUIsQ0FBQyw2QkFBNkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLGdEQUFnRCxDQUFDLHVKQUF1SixDQUFDLDJEQUEyRCxDQUFDLG1DQUFtQyxVQUFVLENBQUMsMEJBQTBCLG9DQUFvQyxDQUFDLHlCQUF5QixpQkFBaUIsQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLG9EQUFvRCxDQUFDLG1LQUFtSyxDQUFDLCtEQUErRCxDQUFDLHVDQUF1QyxVQUFVLENBQUMsMEJBQTBCLHdDQUF3QyxDQUFDLG9CQUFvQiw2REFBNkQsQ0FBQyx3Q0FBd0MsQ0FBQyxLQUFLLHFDQUFxQyxDQUFDLEtBQUssb0RBQW9ELENBQUMsaURBQWlELENBQUMsd0RBQXdELENBQUMsd0RBQXdELENBQUMsMkRBQTJELENBQUMsWUFBWSxvREFBb0QsQ0FBQyxpREFBaUQsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQywyREFBMkQsQ0FBQyxVQUFVLG9EQUFvRCxDQUFDLGlEQUFpRCxDQUFDLHdEQUF3RCxDQUFDLHdEQUF3RCxDQUFDLDJEQUEyRCxDQUFDLEtBQUssbURBQW1ELENBQUMsYUFBYSxzREFBc0QsQ0FBQywyREFBMkQsQ0FBQyxvRUFBb0UsQ0FBQyxvRUFBb0UsQ0FBQyxpRUFBaUUsQ0FBQywrREFBK0QsQ0FBQyw4REFBOEQsQ0FBQyx1RUFBdUUsQ0FBQyxLQUFLLHNEQUFzRCxDQUFDLDJEQUEyRCxDQUFDLG9FQUFvRSxDQUFDLG9FQUFvRSxDQUFDLGlFQUFpRSxDQUFDLCtEQUErRCxDQUFDLDhEQUE4RCxDQUFDLHVFQUF1RSxDQUFDLFlBQVksc0RBQXNELENBQUMsMkRBQTJELENBQUMsb0VBQW9FLENBQUMsb0VBQW9FLENBQUMsaUVBQWlFLENBQUMsK0RBQStELENBQUMsOERBQThELENBQUMsdUVBQXVFLENBQUMsVUFBVSxzREFBc0QsQ0FBQywyREFBMkQsQ0FBQyxvRUFBb0UsQ0FBQyxvRUFBb0UsQ0FBQyxpRUFBaUUsQ0FBQywrREFBK0QsQ0FBQyw4REFBOEQsQ0FBQyx1RUFBdUUsQ0FBQyxLQUFLLGtDQUFrQyxDQUFDLHdDQUF3QyxDQUFDLCtEQUErRCx1SEFBdUgsQ0FBQywrREFBK0Qsd0hBQXdILENBQUMsK0RBQStELHdIQUF3SCxDQUFDLCtEQUErRCx3SEFBd0gsQ0FBQywrREFBK0QseUhBQXlILENBQUMsK0RBQStELHlIQUF5SCxDQUFDLCtEQUErRCwwSEFBMEgsQ0FBQywrREFBK0QsMEhBQTBILENBQUMsK0RBQStELDBIQUEwSCxDQUFDLCtEQUErRCwwSEFBMEgsQ0FBQyxpRUFBaUUsMkhBQTJILENBQUMsaUVBQWlFLDJIQUEySCxDQUFDLGlFQUFpRSwySEFBMkgsQ0FBQyxpRUFBaUUsMkhBQTJILENBQUMsaUVBQWlFLDJIQUEySCxDQUFDLGlFQUFpRSwySEFBMkgsQ0FBQyxpRUFBaUUsNEhBQTRILENBQUMsaUVBQWlFLDRIQUE0SCxDQUFDLGlFQUFpRSw0SEFBNEgsQ0FBQyxpRUFBaUUsNEhBQTRILENBQUMsaUVBQWlFLDZIQUE2SCxDQUFDLGlFQUFpRSw2SEFBNkgsQ0FBQyxpRUFBaUUsNkhBQTZILENBQUMsaUVBQWlFLDZIQUE2SCxDQUFDLGlFQUFpRSw2SEFBNkgsQ0FBQyx5QkFBeUIsWUFBWSxDQUFDLEtBQUssK0NBQStDLENBQUMsd0NBQXdDLENBQUMsaUNBQWlDLENBQUMsMENBQTBDLENBQUMsa0NBQWtDLENBQUMsS0FBSyxpREFBaUQsQ0FBQywwQ0FBMEMsQ0FBQyxtQ0FBbUMsQ0FBQyw0Q0FBNEMsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHFDQUFxQyxDQUFDLEtBQUsseUNBQXlDLENBQUMscUpBQXFKLENBQUMseUNBQXlDLENBQUMscURBQXFELENBQUMsb0pBQW9KLENBQUMsa0RBQWtELENBQUMsS0FBSyw2Q0FBNkMsQ0FBQyxzQ0FBc0MsQ0FBQywrQkFBK0IsQ0FBQyx1Q0FBdUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxnREFBZ0QsQ0FBQyx5Q0FBeUMsQ0FBQyxrQ0FBa0MsQ0FBQyxnREFBZ0QsQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLGlEQUFpRCxDQUFDLHNDQUFzQyxDQUFDLG1DQUFtQyxDQUFDLHNCQUFzQixvREFBb0QsQ0FBQyx5REFBeUQsQ0FBQyxpQ0FBaUMsb0RBQW9ELENBQUMsMERBQTBELENBQUMsK0JBQStCLG9EQUFvRCxDQUFDLHlEQUF5RCxDQUFDLEtBQUssdUNBQXVDLENBQUMsb0RBQW9ELENBQUMsS0FBSywyQ0FBMkMsQ0FBQyw4Q0FBOEMsQ0FBQyxLQUFLLDJEQUEyRCxDQUFDLDZDQUE2QyxDQUFDLDhDQUE4QyxDQUFDLDJEQUEyRCxDQUFDLEtBQUssbURBQW1ELENBQUMseURBQXlELENBQUMsMkNBQTJDLENBQUMsMkNBQTJDLENBQUMsaURBQWlELENBQUMsNkNBQTZDLENBQUMsS0FBSywyQ0FBMkMsQ0FBQyw0REFBNEQsQ0FBQyxzRUFBc0UsQ0FBQyxrREFBa0QsQ0FBQyx3REFBd0QsQ0FBQywyREFBMkQsQ0FBQyxpRUFBaUUsQ0FBQyxxRUFBcUUsQ0FBQyw0REFBNEQsQ0FBQyxxRUFBcUUsQ0FBQyx1RUFBdUUsQ0FBQyw0REFBNEQsQ0FBQyw0REFBNEQsQ0FBQyxzREFBc0QsQ0FBQyxpREFBaUQsQ0FBQyxrRUFBa0UsQ0FBQywyRUFBMkUsQ0FBQyx3RUFBd0UsQ0FBQyw0REFBNEQsQ0FBQyxrRUFBa0UsQ0FBQyxrRUFBa0UsQ0FBQyw2Q0FBNkMsQ0FBQyxxREFBcUQsQ0FBQyx3RUFBd0UsQ0FBQyw2REFBNkQsQ0FBQyxtRUFBbUUsQ0FBQyx1RUFBdUUsQ0FBQyw4REFBOEQsQ0FBQyx1RUFBdUUsQ0FBQyx5RUFBeUUsQ0FBQyxtREFBbUQsQ0FBQyw4REFBOEQsQ0FBQyx3REFBd0QsQ0FBQyw4REFBOEQsQ0FBQywyREFBMkQsQ0FBQyxvRUFBb0UsQ0FBQyxpRUFBaUUsQ0FBQywyREFBMkQsQ0FBQywyREFBMkQsQ0FBQyxxREFBcUQsQ0FBQyxpRUFBaUUsQ0FBQywwRUFBMEUsQ0FBQyxzREFBc0QsQ0FBQyx5Q0FBeUMsQ0FBQyxpREFBaUQsQ0FBQywyREFBMkQsQ0FBQyx5Q0FBeUMsQ0FBQyxrREFBa0QsQ0FBQywwQ0FBMEMsQ0FBQyxtREFBbUQsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyxnREFBZ0QsQ0FBQywrREFBK0QsQ0FBQyxnRUFBZ0UsQ0FBQywrQ0FBK0MsQ0FBQywrQ0FBK0MsQ0FBQywrQkFBK0IsMkNBQTJDLENBQUMsNERBQTRELENBQUMsdUVBQXVFLENBQUMsNkNBQTZDLENBQUMscURBQXFELENBQUMseUVBQXlFLENBQUMsa0VBQWtFLENBQUMsNkJBQTZCLDJDQUEyQyxDQUFDLDREQUE0RCxDQUFDLHNFQUFzRSxDQUFDLDZDQUE2QyxDQUFDLHFEQUFxRCxDQUFDLHdFQUF3RSxDQUFDLGlFQUFpRSxDQUFDLEtBQUssc0NBQXNDLENBQUMsMkNBQTJDLENBQUMsZ0RBQWdELENBQUMsNkRBQTZELENBQUMsK0RBQStELENBQUMsS0FBSywwREFBMEQsQ0FBQyw0Q0FBNEMsQ0FBQyxxREFBcUQsQ0FBQyw2Q0FBNkMsQ0FBQyw0REFBNEQsQ0FBQyw4Q0FBOEMsQ0FBQyx1REFBdUQsQ0FBQywrQ0FBK0MsQ0FBQyx1REFBdUQsQ0FBQyxnREFBZ0QsQ0FBQyx5Q0FBeUMsQ0FBQyxrREFBa0QsQ0FBQywwQ0FBMEMsQ0FBQyx3REFBd0QsQ0FBQyx1REFBdUQsQ0FBQyxnREFBZ0QsQ0FBQyx5Q0FBeUMsQ0FBQyx1REFBdUQsQ0FBQywwQ0FBMEMsQ0FBQyxLQUFLLHVKQUF1SixDQUFDLEtBQUsseUNBQXlDLENBQUMsMkRBQTJELENBQUMsNERBQTRELENBQUMsc0RBQXNELENBQUMsb0RBQW9ELENBQUMscURBQXFELENBQUMsd0RBQXdELENBQUMsd0RBQXdELENBQUMsb0NBQW9DLHlDQUF5QyxDQUFDLDJEQUEyRCxDQUFDLDREQUE0RCxDQUFDLHNEQUFzRCxDQUFDLG9EQUFvRCxDQUFDLHFEQUFxRCxDQUFDLHlEQUF5RCxDQUFDLHdEQUF3RCxDQUFDLGtDQUFrQyx5Q0FBeUMsQ0FBQywyREFBMkQsQ0FBQyw0REFBNEQsQ0FBQyxzREFBc0QsQ0FBQyxvREFBb0QsQ0FBQyxxREFBcUQsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQyxLQUFLLDZDQUE2QyxDQUFDLEtBQUssaURBQWlELENBQUMsMENBQTBDLENBQUMsbUNBQW1DLENBQUMsNENBQTRDLENBQUMsb0NBQW9DLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyw2SkFBNkosQ0FBQyxLQUFLLHlDQUF5QyxDQUFDLEtBQUssMEpBQTBKLENBQUMsd0NBQXdDLENBQUMsZ0NBQWdDLENBQUMscUNBQXFDLENBQUMsMkNBQTJDLENBQUMsa0NBQWtDLENBQUMsb0NBQW9DLENBQUMsZ0NBQWdDLENBQUMsc0NBQXNDLENBQUMsbURBQW1ELENBQUMsd0NBQXdDLENBQUMsS0FBSyxrQ0FBa0MsQ0FBQyw4Q0FBOEMsQ0FBQyxxREFBcUQsQ0FBQyxLQUFLLDRDQUE0QyxDQUFDLHFDQUFxQyxDQUFDLDhCQUE4QixDQUFDLCtCQUErQixDQUFDLHNDQUFzQyxDQUFDLG9EQUFvRCxDQUFDLDZDQUE2QyxDQUFDLHNDQUFzQyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLHVCQUF1Qix5Q0FBeUMsQ0FBQyxxREFBcUQsQ0FBQyxrREFBa0QsQ0FBQyw4REFBOEQsQ0FBQyx1Q0FBdUMsQ0FBQyxtQ0FBbUMsQ0FBQywwQkFBMEIsQ0FBQyxvQ0FBb0MsQ0FBQyw2Q0FBNkMsQ0FBQywwQ0FBMEMsQ0FBQyx5Q0FBeUMsQ0FBQyxnREFBZ0QsQ0FBQyx3Q0FBd0MsQ0FBQyxrREFBa0QsQ0FBQyw4REFBOEQsQ0FBQyw0Q0FBNEMsQ0FBQyx5Q0FBeUMsQ0FBQyx1Q0FBdUMsQ0FBQywwQ0FBMEMsQ0FBQyx3REFBd0QsQ0FBQyxpRUFBaUUsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyx1QkFBdUIsNENBQTRDLENBQUMsMkNBQTJDLENBQUMsb0RBQW9ELENBQUMsb0RBQW9ELENBQUMseURBQXlELENBQUMsd0NBQXdDLENBQUMsd0NBQXdDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsaURBQWlELENBQUMsa0RBQWtELENBQUMsbUNBQW1DLENBQUMsNENBQTRDLENBQUMsdUNBQXVDLENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsa0VBQWtFLENBQUMseURBQXlELENBQUMsd0RBQXdELENBQUMsK0NBQStDLENBQUMscUhBQXFILDBDQUEwQyxDQUFDLDJDQUEyQyxDQUFDLG9EQUFvRCxDQUFDLG9EQUFvRCxDQUFDLHlEQUF5RCxDQUFDLHdDQUF3QyxDQUFDLHdDQUF3QyxDQUFDLGlEQUFpRCxDQUFDLHlDQUF5QyxDQUFDLGlEQUFpRCxDQUFDLGtEQUFrRCxDQUFDLGlDQUFpQyxDQUFDLDBDQUEwQyxDQUFDLHFDQUFxQyxDQUFDLDhDQUE4QyxDQUFDLDhDQUE4QyxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHNEQUFzRCxDQUFDLDZDQUE2QyxDQUFDLG1IQUFtSCwwQ0FBMEMsQ0FBQywyQ0FBMkMsQ0FBQyxvREFBb0QsQ0FBQyxvREFBb0QsQ0FBQyx5REFBeUQsQ0FBQyx3Q0FBd0MsQ0FBQyx3Q0FBd0MsQ0FBQyxpREFBaUQsQ0FBQyx5Q0FBeUMsQ0FBQyxpREFBaUQsQ0FBQyxrREFBa0QsQ0FBQyxpQ0FBaUMsQ0FBQywwQ0FBMEMsQ0FBQyxxQ0FBcUMsQ0FBQyw4Q0FBOEMsQ0FBQyw4Q0FBOEMsQ0FBQyxnRUFBZ0UsQ0FBQyx1REFBdUQsQ0FBQyxzREFBc0QsQ0FBQyw2Q0FBNkMsQ0FBQywrR0FBK0csMENBQTBDLENBQUMsMkNBQTJDLENBQUMsb0RBQW9ELENBQUMsb0RBQW9ELENBQUMseURBQXlELENBQUMsd0NBQXdDLENBQUMsd0NBQXdDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsaURBQWlELENBQUMsa0RBQWtELENBQUMsaUNBQWlDLENBQUMsMENBQTBDLENBQUMscUNBQXFDLENBQUMsOENBQThDLENBQUMsOENBQThDLENBQUMsZ0VBQWdFLENBQUMsdURBQXVELENBQUMsc0RBQXNELENBQUMsNkNBQTZDLENBQUMsb0NBQW9DLGdDQUFnQyxDQUFDLHVCQUF1Qiw2Q0FBNkMsQ0FBQyxzQ0FBc0MsQ0FBQywrQkFBK0IsQ0FBQyw2Q0FBNkMsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLGdEQUFnRCxDQUFDLHdDQUF3QyxDQUFDLGtEQUFrRCxDQUFDLCtCQUErQixDQUFDLDhCQUE4QixDQUFDLDhCQUE4QixDQUFDLG9DQUFvQyxDQUFDLDhCQUE4QixDQUFDLDRCQUE0QixDQUFDLDZCQUE2QixDQUFDLHNDQUFzQyxDQUFDLG9EQUFvRCxDQUFDLG9EQUFvRCxDQUFDLHFEQUFxRCxDQUFDLHNEQUFzRCxDQUFDLHNEQUFzRCxDQUFDLHVEQUF1RCxDQUFDLGtEQUFrRCxDQUFDLG9EQUFvRCxDQUFDLHdDQUF3QyxDQUFDLHNDQUFzQyxDQUFDLHFDQUFxQyxDQUFDLHVDQUF1QyxDQUFDLGdEQUFnRCxDQUFDLDBEQUEwRCxDQUFDLHdEQUF3RCxDQUFDLGtEQUFrRCxDQUFDLDREQUE0RCxDQUFDLDBEQUEwRCxDQUFDLG9DQUFvQyxDQUFDLG1DQUFtQyxDQUFDLG1GQUFtRixDQUFDLG9GQUFvRixDQUFDLG9DQUFvQyxDQUFDLDRDQUE0QyxDQUFDLDZDQUE2QyxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLEtBQUsscURBQXFELENBQUMsMENBQTBDLENBQUMscURBQXFELENBQUMsdURBQXVELENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsa0RBQWtELENBQUMsK0NBQStDLENBQUMsK0NBQStDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsbURBQW1ELENBQUMsOENBQThDLENBQUMsa0RBQWtELENBQUMscURBQXFELENBQUMsZ0RBQWdELENBQUMsb0RBQW9ELENBQUMsZ0VBQWdFLENBQUMsa0pBQWtKLENBQUMsc0NBQXNDLENBQUMsMEpBQTBKLENBQUMscUNBQXFDLENBQUMsa0RBQWtELENBQUMsdURBQXVELENBQUMsaURBQWlELENBQUMsNENBQTRDLENBQUMsa0RBQWtELENBQUMsdURBQXVELENBQUMsaURBQWlELENBQUMsdUNBQXVDLENBQUMsb0RBQW9ELENBQUMseURBQXlELENBQUMsbURBQW1ELENBQUMsMkNBQTJDLENBQUMsMkRBQTJELENBQUMsMkJBQTJCLHFEQUFxRCxDQUFDLHNDQUFzQyxxREFBcUQsQ0FBQywwQ0FBMEMsQ0FBQyxxREFBcUQsQ0FBQyx1REFBdUQsQ0FBQyxnREFBZ0QsQ0FBQyxnREFBZ0QsQ0FBQyxrREFBa0QsQ0FBQywrQ0FBK0MsQ0FBQywrQ0FBK0MsQ0FBQyxpREFBaUQsQ0FBQyx5Q0FBeUMsQ0FBQyxvQ0FBb0MscURBQXFELENBQUMsMENBQTBDLENBQUMscURBQXFELENBQUMsdURBQXVELENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsa0RBQWtELENBQUMsK0NBQStDLENBQUMsK0NBQStDLENBQUMsaURBQWlELENBQUMseUNBQXlDLENBQUMsS0FBSyxrQ0FBa0MsQ0FBQywyQkFBMkIsbURBQW1ELENBQUMsNENBQTRDLENBQUMscUNBQXFDLENBQUMsbURBQW1ELENBQUMsc0NBQXNDLENBQUMsS0FBSywrQ0FBK0MsQ0FBQyxpREFBaUQsQ0FBQyxpQ0FBaUMsQ0FBQyxzQkFBc0IscURBQXFELENBQUMsa0NBQWtDLDhDQUE4QyxDQUFDLGdEQUFnRCxDQUFDLCtDQUErQyxDQUFDLHFEQUFxRCxDQUFDLDZEQUE2RCxDQUFDLDZDQUE2QyxDQUFDLDZDQUE2QyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLDhCQUE4QixDQUFDLHdDQUF3QyxDQUFDLG9EQUFvRCxDQUFDLGlDQUFpQyw4Q0FBOEMsQ0FBQyxnREFBZ0QsQ0FBQywrQ0FBK0MsQ0FBQyxxREFBcUQsQ0FBQyw2REFBNkQsQ0FBQyw2Q0FBNkMsQ0FBQyw2Q0FBNkMsQ0FBQyx1Q0FBdUMsQ0FBQywrQ0FBK0MsQ0FBQyw4QkFBOEIsQ0FBQyx3Q0FBd0MsQ0FBQyxvREFBb0QsQ0FBQywrQkFBK0IsOENBQThDLENBQUMsZ0RBQWdELENBQUMsK0NBQStDLENBQUMscURBQXFELENBQUMsNkRBQTZELENBQUMsNkNBQTZDLENBQUMsNkNBQTZDLENBQUMsdUNBQXVDLENBQUMsK0NBQStDLENBQUMsOEJBQThCLENBQUMsd0NBQXdDLENBQUMsb0RBQW9ELENBQUMsS0FBSyxpQ0FBaUMsQ0FBQyxzQ0FBc0MsQ0FBQyxzQkFBc0IsbURBQW1ELENBQUMsNENBQTRDLENBQUMscUNBQXFDLENBQUMsbURBQW1ELENBQUMsc0NBQXNDLENBQUMsS0FBSyx1Q0FBdUMsQ0FBQyx3Q0FBd0MsQ0FBQyxnREFBZ0QsQ0FBQyw4Q0FBOEMsQ0FBQywyQ0FBMkMsQ0FBQyxnREFBZ0QsQ0FBQyxpRUFBaUUsQ0FBQyxvQ0FBb0MsQ0FBQyxzQ0FBc0MsQ0FBQywrQkFBK0IsQ0FBQyw2QkFBNkIsQ0FBQyw4QkFBOEIsQ0FBQyxzQ0FBc0MsQ0FBQyx3Q0FBd0MsQ0FBQyxrREFBa0QsQ0FBQyx5REFBeUQsQ0FBQyxnREFBZ0QsQ0FBQywrQ0FBK0MsQ0FBQywyREFBMkQsQ0FBQyxLQUFLLGlDQUFpQyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHlDQUF5QyxDQUFDLDZEQUE2RCxDQUFDLHlEQUF5RCxDQUFDLDZDQUE2QyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLHVDQUF1QyxDQUFDLHdDQUF3QyxDQUFDLG1EQUFtRCxDQUFDLDBEQUEwRCxDQUFDLDJJQUEySSxDQUFDLGlDQUFpQyxDQUFDLDREQUE0RCxDQUFDLDJEQUEyRCxDQUFDLHdDQUF3QyxDQUFDLGlCQUFpQixpQ0FBaUMsQ0FBQyw2REFBNkQsQ0FBQyw0REFBNEQsQ0FBQyxpQ0FBaUMsQ0FBQyx1Q0FBdUMsQ0FBQyx1Q0FBdUMsQ0FBQyx1Q0FBdUMsQ0FBQyx5Q0FBeUMsQ0FBQyw2REFBNkQsQ0FBQyx5REFBeUQsQ0FBQyxlQUFlLGlDQUFpQyxDQUFDLDREQUE0RCxDQUFDLDJEQUEyRCxDQUFDLGlDQUFpQyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHVDQUF1QyxDQUFDLHlDQUF5QyxDQUFDLDZEQUE2RCxDQUFDLHlEQUF5RCxDQUFDLEtBQUsscURBQXFELENBQUMsdUNBQXVDLENBQUMsOENBQThDLENBQUMscURBQXFELENBQUMsd0NBQXdDLENBQUMsS0FBSyw4QkFBOEIsQ0FBQyxtQ0FBbUMsQ0FBQyxnQ0FBZ0MsQ0FBQyw0QkFBNEIsQ0FBQyw4QkFBOEIsQ0FBQyxvQ0FBb0MsQ0FBQyxxQ0FBcUMsQ0FBQyw4Q0FBOEMsQ0FBQywrQ0FBK0MsQ0FBQyxLQUFLLG9EQUFvRCxDQUFDLDhDQUE4QyxDQUFDLDJEQUEyRCxDQUFDLDJEQUEyRCxDQUFDLGdDQUFnQyxDQUFDLDRDQUE0QyxDQUFDLEtBQUssa0RBQWtELENBQUMsb0NBQW9DLENBQUMsNkNBQTZDLENBQUMsMkNBQTJDLENBQUMscUNBQXFDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyw2Q0FBNkMsQ0FBQyxnREFBZ0QsQ0FBQyx5REFBeUQsQ0FBQyxxREFBcUQsQ0FBQywyQ0FBMkMsQ0FBQyw2Q0FBNkMsQ0FBQyw0Q0FBNEMsQ0FBQywyREFBMkQsQ0FBQyxtREFBbUQsQ0FBQyxxREFBcUQsQ0FBQyx1REFBdUQsQ0FBQyx3REFBd0QsQ0FBQyw2Q0FBNkMsQ0FBQyxxQ0FBcUMsQ0FBQyxLQUFLLHlEQUF5RCxDQUFDLDhEQUE4RCxDQUFDLDJEQUEyRCxDQUFDLHVFQUF1RSxDQUFDLDREQUE0RCxDQUFDLHFFQUFxRSxDQUFDLG9EQUFvRCxDQUFDLHNEQUFzRCxDQUFDLHVEQUF1RCxDQUFDLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLGtFQUFrRSxDQUFDLCtEQUErRCxDQUFDLGtEQUFrRCxDQUFDLG1EQUFtRCxDQUFDLGtEQUFrRCxDQUFDLG1EQUFtRCxDQUFDLDBDQUEwQyw4Q0FBOEMsQ0FBQyxnREFBZ0QsQ0FBQywrQ0FBK0MsQ0FBQyxxREFBcUQsQ0FBQyw2REFBNkQsQ0FBQyw2Q0FBNkMsQ0FBQyw2Q0FBNkMsQ0FBQyx1Q0FBdUMsQ0FBQywrQ0FBK0MsQ0FBQyxrRUFBa0UsOENBQThDLENBQUMsZ0RBQWdELENBQUMsK0NBQStDLENBQUMscURBQXFELENBQUMsNkRBQTZELENBQUMsNkNBQTZDLENBQUMsNkNBQTZDLENBQUMsdUNBQXVDLENBQUMsK0NBQStDLENBQUMsOERBQThELDhDQUE4QyxDQUFDLGdEQUFnRCxDQUFDLCtDQUErQyxDQUFDLHFEQUFxRCxDQUFDLDZEQUE2RCxDQUFDLDZDQUE2QyxDQUFDLDZDQUE2QyxDQUFDLHVDQUF1QyxDQUFDLCtDQUErQyxDQUFDLHFCQUFxQiwrREFBK0QsQ0FBQyxpRUFBaUUsQ0FBQyw2Q0FBNkMsQ0FBQyxnREFBZ0QsQ0FBQyxnREFBZ0QsQ0FBQywwQ0FBMEMsQ0FBQyxrREFBa0QsQ0FBQyxrREFBa0QsQ0FBQyxrREFBa0QsQ0FBQyx3REFBd0QsQ0FBQyxnRUFBZ0UsQ0FBQyx1REFBdUQsQ0FBQyx1REFBdUQsQ0FBQyx5REFBeUQsQ0FBQyx1REFBdUQsQ0FBQyx1REFBdUQsQ0FBQyx5REFBeUQsQ0FBQyxnQ0FBZ0MsK0RBQStELENBQUMsaUVBQWlFLENBQUMsNkNBQTZDLENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsMENBQTBDLENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsd0RBQXdELENBQUMsZ0VBQWdFLENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsOEJBQThCLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLDZDQUE2QyxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLDBDQUEwQyxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVMQUF1TCxhQUFhLENBQUMsMk9BQTJPLGFBQWEsQ0FBQyxzTUFBc00sU0FBUyxDQUFDLEtBQUssbURBQW1ELENBQUMsbURBQW1ELENBQUMscURBQXFELENBQUMsa0RBQWtELENBQUMsZ0RBQWdELENBQUMsMENBQTBDLGlDQUFpQyxDQUFDLHlQQUF5UCxXQUFXLENBQUMsNFBBQTRQLFdBQVcsQ0FBQyxLQUFLLHVEQUF1RCxDQUFDLGdEQUFnRCxDQUFDLHlDQUF5QyxDQUFDLGtEQUFrRCxDQUFDLDBDQUEwQyxDQUFDLDREQUE0RCxDQUFDLHFEQUFxRCxDQUFDLDhDQUE4QyxDQUFDLDREQUE0RCxDQUFDLCtDQUErQyxDQUFDLHFFQUFxRSxDQUFDLDhEQUE4RCxDQUFDLHVEQUF1RCxDQUFDLHFFQUFxRSxDQUFDLHdEQUF3RCxDQUFDLDJCQUEyQixxQ0FBcUMsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLHdEQUF3RCxDQUFDLGdEQUFnRCxDQUFDLHNEQUFzRCxDQUFDLHVEQUF1RCxDQUFDLEtBQUssbUNBQW1DLENBQUMsZ0RBQWdELENBQUMseURBQXlELENBQUMsS0FBSyxzREFBc0QsQ0FBQywrQ0FBK0MsQ0FBQyx3Q0FBd0MsQ0FBQyxzREFBc0QsQ0FBQyx5Q0FBeUMsQ0FBQyw2Q0FBNkMsQ0FBQyxLQUFLLCtDQUErQyxDQUFDLDRDQUE0QyxDQUFDLG9EQUFvRCxDQUFDLDBDQUEwQyxDQUFDLGlDQUFpQyxDQUFDLHdDQUF3QyxrREFBa0QsQ0FBQywwREFBMEQsQ0FBQyw0Q0FBNEMsQ0FBQyw2REFBNkQsQ0FBQyxnREFBZ0QsQ0FBQyw0Q0FBNEMsQ0FBQyw4Q0FBOEMsQ0FBQyxtRUFBbUUsQ0FBQyxtRUFBbUUsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyxxREFBcUQsQ0FBQyxxREFBcUQsQ0FBQyw4REFBOEQsa0RBQWtELENBQUMsMERBQTBELENBQUMsNENBQTRDLENBQUMsNkRBQTZELENBQUMsZ0RBQWdELENBQUMsNENBQTRDLENBQUMsOENBQThDLENBQUMsbUVBQW1FLENBQUMsbUVBQW1FLENBQUMsc0RBQXNELENBQUMsc0RBQXNELENBQUMscURBQXFELENBQUMscURBQXFELENBQUMsMERBQTBELGtEQUFrRCxDQUFDLDBEQUEwRCxDQUFDLDRDQUE0QyxDQUFDLDZEQUE2RCxDQUFDLGdEQUFnRCxDQUFDLDRDQUE0QyxDQUFDLDhDQUE4QyxDQUFDLG1FQUFtRSxDQUFDLG1FQUFtRSxDQUFDLHNEQUFzRCxDQUFDLHNEQUFzRCxDQUFDLHFEQUFxRCxDQUFDLHFEQUFxRCxDQUFDLHNGQUFzRix5REFBeUQsQ0FBQyx1REFBdUQsQ0FBQyxvRkFBb0YseURBQXlELENBQUMsdURBQXVELENBQUMsZ0ZBQWdGLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLG9CQUFvQixvREFBb0QsQ0FBQyxvQkFBb0IsbURBQW1ELENBQUMscUNBQXFDLENBQUMsbURBQW1ELENBQUMsNENBQTRDLENBQUMsc0NBQXNDLENBQUMsS0FBSyxxREFBcUQsQ0FBQyxzREFBc0QsQ0FBQyxzREFBc0QsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQyx3REFBd0QsQ0FBQywwREFBMEQsQ0FBQyxLQUFLLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLDZDQUE2QyxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLDBDQUEwQyxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLGtCQUFrQixxREFBcUQsQ0FBQyw4QkFBOEIsK0RBQStELENBQUMsaUVBQWlFLENBQUMsNkNBQTZDLENBQUMsZ0RBQWdELENBQUMsZ0RBQWdELENBQUMsMENBQTBDLENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsa0RBQWtELENBQUMsd0RBQXdELENBQUMsZ0VBQWdFLENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsdURBQXVELENBQUMsdURBQXVELENBQUMseURBQXlELENBQUMsMkJBQTJCLCtEQUErRCxDQUFDLGlFQUFpRSxDQUFDLDZDQUE2QyxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLDBDQUEwQyxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxDQUFDLHdEQUF3RCxDQUFDLGdFQUFnRSxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLHVEQUF1RCxDQUFDLHVEQUF1RCxDQUFDLHlEQUF5RCxDQUFDLEtBQUssb0NBQW9DLENBQUMseUNBQXlDLENBQUMsa0JBQWtCLG1EQUFtRCxDQUFDLDRDQUE0QyxDQUFDLHFDQUFxQyxDQUFDLG1EQUFtRCxDQUFDLHNDQUFzQyxDQUFDLEtBQUsscUNBQXFDLENBQUMseUNBQXlDLENBQUMsdUNBQXVDLENBQUMsMkNBQTJDLENBQUMsMENBQTBDLENBQUMsOENBQThDLENBQUMsNkNBQTZDLENBQUMsdUNBQXVDLENBQUMseUNBQXlDLENBQUMsd0NBQXdDLENBQUMsa0RBQWtELENBQUMsa0NBQWtDLENBQUMsK0JBQStCLENBQUMsMkNBQTJDLENBQUMsb0NBQW9DLENBQUMsb0NBQW9DLENBQUMsOENBQThDLENBQUMsdUNBQXVDLENBQUMsdUNBQXVDLENBQUMsNkNBQTZDLENBQUMsc0NBQXNDLENBQUMsc0NBQXNDLENBQUMsS0FBSyx3Q0FBd0MsQ0FBQywrREFBK0QsQ0FBQyx5Q0FBeUMsQ0FBQyxrREFBa0QsQ0FBQyxpREFBaUQsQ0FBQyxnREFBZ0QsQ0FBQyxnREFBZ0QsQ0FBQyxrREFBa0QsQ0FBQyx5Q0FBeUMsQ0FBQywwQ0FBMEMsQ0FBQyxnRUFBZ0UsQ0FBQyxpRUFBaUUsQ0FBQywyQ0FBMkMsQ0FBQyxvREFBb0QsQ0FBQyxtREFBbUQsQ0FBQyxrREFBa0QsQ0FBQyxrREFBa0QsQ0FBQyxvREFBb0QsQ0FBQyw0Q0FBNEMsQ0FBQyw2Q0FBNkMsQ0FBQyxtRUFBbUUsQ0FBQyxvRUFBb0UsQ0FBQywrSkFBK0osQ0FBQyx1S0FBdUssQ0FBQyxzS0FBc0ssQ0FBQyxzS0FBc0ssQ0FBQyx5S0FBeUssQ0FBQyxrREFBa0QsQ0FBQyw4Q0FBOEMsQ0FBQyx1REFBdUQsQ0FBQyxzREFBc0QsQ0FBQyxxREFBcUQsQ0FBQyxxREFBcUQsQ0FBQyx1REFBdUQsQ0FBQyxnRUFBZ0UsQ0FBQyxtRUFBbUUsQ0FBQyw0Q0FBNEMsQ0FBQyx1REFBdUQsQ0FBQyw2Q0FBNkMsQ0FBQyxzREFBc0QsQ0FBQyxxREFBcUQsQ0FBQyxvREFBb0QsQ0FBQyxvREFBb0QsQ0FBQyxzREFBc0QsQ0FBQyw0QkFBNEIsMENBQTBDLENBQUMsMkNBQTJDLENBQUMscURBQXFELENBQUMsMkJBQTJCLDBDQUEwQyxDQUFDLDJDQUEyQyxDQUFDLHNEQUFzRCxDQUFDLHlCQUF5QiwwQ0FBMEMsQ0FBQywyQ0FBMkMsQ0FBQyxxREFBcUQsQ0FBQyx1Q0FBdUMsMkNBQTJDLENBQUMsMENBQTBDLENBQUMsMkNBQTJDLENBQUMseURBQXlELENBQUMsc0NBQXNDLDJDQUEyQyxDQUFDLDBDQUEwQyxDQUFDLDJDQUEyQyxDQUFDLHlEQUF5RCxDQUFDLG9DQUFvQywyQ0FBMkMsQ0FBQywwQ0FBMEMsQ0FBQywyQ0FBMkMsQ0FBQyx5REFBeUQsQ0FBQyxtQ0FBbUMsOENBQThDLENBQUMsNkNBQTZDLENBQUMsOENBQThDLENBQUMsNERBQTRELENBQUMsa0NBQWtDLDhDQUE4QyxDQUFDLDZDQUE2QyxDQUFDLDhDQUE4QyxDQUFDLDREQUE0RCxDQUFDLGdDQUFnQyw4Q0FBOEMsQ0FBQyw2Q0FBNkMsQ0FBQyw4Q0FBOEMsQ0FBQyw0REFBNEQsQ0FBQyxxQ0FBcUMsOENBQThDLENBQUMsdURBQXVELENBQUMsK0NBQStDLENBQUMseURBQXlELENBQUMsb0NBQW9DLDhDQUE4QyxDQUFDLHVEQUF1RCxDQUFDLCtDQUErQyxDQUFDLDBEQUEwRCxDQUFDLGtDQUFrQyw4Q0FBOEMsQ0FBQyx1REFBdUQsQ0FBQywrQ0FBK0MsQ0FBQyx5REFBeUQsQ0FBQyxLQUFLLHVDQUF1QyxDQUFDLHlDQUF5QyxDQUFDLDJDQUEyQyxDQUFDLDRDQUE0QyxDQUFDLDRDQUE0QyxDQUFDLDhDQUE4QyxDQUFDLGlEQUFpRCxDQUFDLGdEQUFnRCxDQUFDLEtBQUssb0RBQW9ELENBQUMsc0NBQXNDLENBQUMsb0RBQW9ELENBQUMsdUNBQXVDLENBQUMsMkNBQTJDLENBQUMsc0RBQXNELENBQUMsd0NBQXdDLENBQUMsc0RBQXNELENBQUMseUNBQXlDLENBQUMsNkNBQTZDLENBQUMsd0RBQXdELENBQUMsMENBQTBDLENBQUMsd0RBQXdELENBQUMsMkNBQTJDLENBQUMsK0NBQStDLENBQUMseURBQXlELENBQUMsMkNBQTJDLENBQUMseURBQXlELENBQUMsNENBQTRDLENBQUMsZ0RBQWdELENBQUMsS0FBSyxnQ0FBZ0MsQ0FBQyxLQUFLLG9DQUFvQyxDQUFDLHlEQUF5RCxDQUFDLHlDQUF5QyxDQUFDLGtEQUFrRCxDQUFDLGlEQUFpRCxDQUFDLGdEQUFnRCxDQUFDLGdEQUFnRCxDQUFDLGtEQUFrRCxDQUFDLHNDQUFzQyxvQ0FBb0MsQ0FBQywyQ0FBMkMsQ0FBQyxxREFBcUQsQ0FBQyxxQ0FBcUMsb0NBQW9DLENBQUMsMkNBQTJDLENBQUMsc0RBQXNELENBQUMsbUNBQW1DLG9DQUFvQyxDQUFDLDJDQUEyQyxDQUFDLHFEQUFxRCxDQUFDLEtBQUssNENBQTRDLENBQUMseUNBQXlDLHVDQUF1QyxDQUFDLDZDQUE2QyxDQUFDLDhDQUE4QyxDQUFDLFlBQVksQ0FBQyxLQUFLLDZCQUE2QixDQUFDLHdCQUF3QixDQUFDLG1DQUFtQyxDQUFDLDhCQUE4QixDQUFDLHdDQUF3QyxDQUFDLHVDQUF1QyxDQUFDLEtBQUssK0JBQStCLENBQUMsb0pBQW9KLENBQUMsMEpBQTBKLENBQUMsMEpBQTBKLENBQUMsNkpBQTZKLENBQUMscUNBQXFDLENBQUMsZ0NBQWdDLENBQUMsaUNBQWlDLENBQUMsMENBQTBDLENBQUMseUNBQXlDLENBQUMsd0NBQXdDLENBQUMsd0NBQXdDLENBQUMsMENBQTBDLENBQUMsNERBQTRELENBQUMsNkRBQTZELENBQUMscUNBQXFDLENBQUMsMEpBQTBKLENBQUMsZ0tBQWdLLENBQUMsZ0tBQWdLLENBQUMsbUtBQW1LLENBQUMsMkNBQTJDLENBQUMsc0NBQXNDLENBQUMsdUNBQXVDLENBQUMsZ0RBQWdELENBQUMsK0NBQStDLENBQUMsOENBQThDLENBQUMsOENBQThDLENBQUMsZ0RBQWdELENBQUMsa0VBQWtFLENBQUMsbUVBQW1FLENBQUMsNkpBQTZKLENBQUMsbUtBQW1LLENBQUMsbUtBQW1LLENBQUMsc0tBQXNLLENBQUMsOENBQThDLENBQUMsOEJBQThCLGlDQUFpQyxDQUFDLGdDQUFnQyxDQUFDLGlDQUFpQyxDQUFDLCtDQUErQyxDQUFDLDZCQUE2QixpQ0FBaUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxpQ0FBaUMsQ0FBQywrQ0FBK0MsQ0FBQywyQkFBMkIsaUNBQWlDLENBQUMsZ0NBQWdDLENBQUMsaUNBQWlDLENBQUMsK0NBQStDLENBQUMsbUNBQW1DLHVDQUF1QyxDQUFDLHNDQUFzQyxDQUFDLHVDQUF1QyxDQUFDLHFEQUFxRCxDQUFDLGtDQUFrQyx1Q0FBdUMsQ0FBQyxzQ0FBc0MsQ0FBQyx1Q0FBdUMsQ0FBQyxxREFBcUQsQ0FBQyxnQ0FBZ0MsdUNBQXVDLENBQUMsc0NBQXNDLENBQUMsdUNBQXVDLENBQUMscURBQXFELENBQUMsS0FBSyxvQ0FBb0MsQ0FBQywwQ0FBMEMsQ0FBQyxLQUFLLHFEQUFxRCxDQUFDLHVDQUF1QyxDQUFDLHFEQUFxRCxDQUFDLHdDQUF3QyxDQUFDLEtBQUssa0NBQWtDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyw4REFBOEQsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLHNEQUFzRCxDQUFDLCtDQUErQyxDQUFDLHdDQUF3QyxDQUFDLHlDQUF5QyxDQUFDLEtBQUssc0NBQXNDLENBQUMsS0FBSyxrQ0FBa0MsQ0FBQyxxREFBcUQsQ0FBQyx5REFBeUQsQ0FBQyxzREFBc0QsQ0FBQyxLQUFLLHdDQUF3QyxDQUFDLHdDQUF3QyxDQUFDLDBDQUEwQyxDQUFDLEtBQUssbURBQW1ELENBQUMsNENBQTRDLENBQUMscUNBQXFDLENBQUMsc0NBQXNDLENBQUMsbURBQW1ELENBQUMsdURBQXVELENBQUMsZ0RBQWdELENBQUMseUNBQXlDLENBQUMsMENBQTBDLENBQUMsdURBQXVELENBQUMsMERBQTBELENBQUMsbURBQW1ELENBQUMsNENBQTRDLENBQUMsNkNBQTZDLENBQUMsMERBQTBELENBQUMsS0FBSyxrREFBa0QsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLHNEQUFzRCxDQUFDLGlCQUFpQixzREFBc0QsQ0FBQyxlQUFlLHNEQUFzRCxDQUFDLEtBQUssK0JBQStCLENBQUMsZ0NBQWdDLENBQUMsMkNBQTJDLENBQUMsMkNBQTJDLENBQUMsc0NBQXNDLENBQUMsaURBQWlELENBQUMsaURBQWlELENBQUMsb0NBQW9DLENBQUMsOENBQThDLENBQUMsK0NBQStDLENBQUMsMENBQTBDLENBQUMsb0RBQW9ELENBQUMscURBQXFELENBQUMsK0JBQStCLENBQUMsMENBQTBDLENBQUMsMENBQTBDLENBQUMsS0FBSyxvQ0FBb0MsQ0FBQyw0QkFBNEIsQ0FBQyxtREFBbUQsQ0FBQyx5REFBeUQsQ0FBQyxrQkFBa0Isb0NBQW9DLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLG9DQUFvQyxDQUFDLDRCQUE0QixDQUFDLEtBQUssd0NBQXdDLENBQUMsMEJBQTBCLENBQUMsMkJBQTJCLENBQUMsb0NBQW9DLENBQUMscUNBQXFDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyxLQUFLLDJEQUEyRCxDQUFDLG1EQUFtRCxDQUFDLEtBQUsseURBQXlELENBQUMsa0RBQWtELENBQUMsMkNBQTJDLENBQUMseURBQXlELENBQUMsNENBQTRDLENBQUMsS0FBSyxzQ0FBc0MsQ0FBQyxvQ0FBb0MsQ0FBQyxzREFBc0QsQ0FBQyxzQ0FBc0MsQ0FBQywyREFBMkQsQ0FBQywyREFBMkQsQ0FBQyxLQUFLLHlEQUF5RCxDQUFDLGdFQUFnRSxDQUFDLHdFQUF3RSxDQUFDLGtFQUFrRSxDQUFDLHdFQUF3RSxDQUFDLGtFQUFrRSxDQUFDLDJFQUEyRSxDQUFDLDJEQUEyRCxDQUFDLG1EQUFtRCxDQUFDLG9EQUFvRCxDQUFDLG9FQUFvRSxDQUFDLDBFQUEwRSxDQUFDLDBFQUEwRSxDQUFDLGtFQUFrRSxDQUFDLG1GQUFtRixDQUFDLDZFQUE2RSxDQUFDLGtEQUFrRCxDQUFDLEtBQUssd0NBQXdDLENBQUMsS0FBSyw2REFBNkQsQ0FBQyxzREFBc0QsQ0FBQywrQ0FBK0MsQ0FBQyx3REFBd0QsQ0FBQyxnREFBZ0QsQ0FBQywrREFBK0QsQ0FBQyx3REFBd0QsQ0FBQyxpREFBaUQsQ0FBQywwREFBMEQsQ0FBQyxrREFBa0QsQ0FBQyxLQUFLLDZDQUE2QyxDQUFDLG1EQUFtRCxDQUFDLG1LQUFtSyxDQUFDLDZLQUE2SyxDQUFDLEtBQUssOERBQThELENBQUMsc0VBQXNFLENBQUMsOEZBQThGLENBQUMsdUVBQXVFLENBQUMsa0ZBQWtGLENBQUMsa0ZBQWtGLENBQUMsdURBQXVELENBQUMscUZBQXFGLENBQUMsZ0dBQWdHLENBQUMsOEVBQThFLENBQUMsdUZBQXVGLENBQUMsc0RBQXNELENBQUMsbUVBQW1FLENBQUMsd0RBQXdELENBQUMsc0VBQXNFLENBQUMsMEVBQTBFLENBQUMsa0VBQWtFLENBQUMsK0RBQStELENBQUMsc0VBQXNFLENBQUMscUZBQXFGLENBQUMsNkRBQTZELENBQUMsd0RBQXdELENBQUMsNEVBQTRFLENBQUMsOEVBQThFLENBQUMsZ0VBQWdFLENBQUMsK0VBQStFLENBQUMsMEVBQTBFLENBQUMsMERBQTBELENBQUMsa0VBQWtFLENBQUMsbUNBQW1DLDhEQUE4RCxDQUFDLHNFQUFzRSxDQUFDLCtGQUErRixDQUFDLHVFQUF1RSxDQUFDLG1GQUFtRixDQUFDLG1GQUFtRixDQUFDLHNGQUFzRixDQUFDLGdHQUFnRyxDQUFDLDhFQUE4RSxDQUFDLHVGQUF1RixDQUFDLGlDQUFpQyw4REFBOEQsQ0FBQyxzRUFBc0UsQ0FBQyw4RkFBOEYsQ0FBQyx1RUFBdUUsQ0FBQyxrRkFBa0YsQ0FBQyxrRkFBa0YsQ0FBQyxxRkFBcUYsQ0FBQyxnR0FBZ0csQ0FBQyw4RUFBOEUsQ0FBQyx1RkFBdUYsQ0FBQyx5Q0FBeUMsdURBQXVELENBQUMsdUNBQXVDLHVEQUF1RCxDQUFDLHVCQUF1QiwyQ0FBMkMsQ0FBQyxnRUFBZ0UsdUNBQXVDLENBQUMsNkNBQTZDLENBQUMsOENBQThDLENBQUMsV0FBVyxDQUFDLEtBQUssc0RBQXNELENBQUMsd0NBQXdDLENBQUMsbURBQW1ELENBQUMsb0RBQW9ELENBQUMsc0RBQXNELENBQUMsdURBQXVELENBQUMsK0NBQStDLENBQUMsZ0RBQWdELENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLLHVDQUF1QyxDQUFDLEtBQUssbUNBQW1DLENBQUMsNERBQTRELENBQUMsNkNBQTZDLENBQUMsS0FBSyxnREFBZ0QsQ0FBQyx3REFBd0QsQ0FBQyx5REFBeUQsQ0FBQyxrRUFBa0UsQ0FBQyxrRUFBa0UsQ0FBQyxvRUFBb0UsQ0FBQyxxREFBcUQsQ0FBQyw0REFBNEQsQ0FBQywwREFBMEQsQ0FBQyxLQUFLLGtEQUFrRCxDQUFDLGlEQUFpRCxDQUFDLEtBQUssbURBQW1ELENBQUMscUNBQXFDLENBQUMsc0NBQXNDLENBQUMsK0NBQStDLENBQUMsNENBQTRDLENBQUMsc0RBQXNELENBQUMsK0NBQStDLENBQUMsd0NBQXdDLENBQUMsc0RBQXNELENBQUMseUNBQXlDLENBQUMsS0FBSyxrREFBa0QsQ0FBQyxvREFBb0QsQ0FBQyxrREFBa0QsQ0FBQyxvREFBb0QsQ0FBQyxLQUFLLHdCQUF3QixDQUFDLHNCQUFzQix3QkFBd0IsQ0FBQyxxQkFBcUIsd0JBQXdCLENBQUMsbUJBQW1CLHdCQUF3QixDQUFDLEtBQUssK0JBQStCLENBQUMsMEpBQTBKLENBQUMsa0NBQWtDLENBQUMsS0FBSyx5REFBeUQsQ0FBQyw4Q0FBOEMsQ0FBQyxzREFBc0QsQ0FBQyw4Q0FBOEMsQ0FBQyxvREFBb0QsQ0FBQyw0Q0FBNEMsQ0FBQyxLQUFLLGdEQUFnRCxDQUFDLGlFQUFpRSxDQUFDLCtEQUErRCxDQUFDLDZEQUE2RCxDQUFDLDJEQUEyRCxDQUFDLDZEQUE2RCxDQUFDLDJEQUEyRCxDQUFDLG1DQUFtQyxDQUFDLDRDQUE0QyxDQUFDLGdFQUFnRSxDQUFDLGdFQUFnRSxDQUFDLHlEQUF5RCxDQUFDLGtFQUFrRSxDQUFDLHdFQUF3RSxDQUFDLHlEQUF5RCxDQUFDLDhEQUE4RCxDQUFDLDhEQUE4RCxDQUFDLGtFQUFrRSxDQUFDLGlDQUFpQyxnREFBZ0QsQ0FBQyxpRUFBaUUsQ0FBQywrREFBK0QsQ0FBQyw2REFBNkQsQ0FBQywyREFBMkQsQ0FBQyw2REFBNkQsQ0FBQywyREFBMkQsQ0FBQywrQkFBK0IsZ0RBQWdELENBQUMsaUVBQWlFLENBQUMsK0RBQStELENBQUMsNkRBQTZELENBQUMsMkRBQTJELENBQUMsNkRBQTZELENBQUMsMkRBQTJELENBQUMsS0FBSyxnQ0FBZ0MsQ0FBQyxLQUFLLG9EQUFvRCxDQUFDLHVEQUF1RCxDQUFDLHlDQUF5QyxDQUFDLDBDQUEwQyxDQUFDLHFEQUFxRCxDQUFDLHdEQUF3RCxDQUFDLHlEQUF5RCxDQUFDLEtBQUssOEJBQThCLENBQUMsS0FBSyxtREFBbUQsQ0FBQyxzREFBc0QsQ0FBQyx5QkFBeUIsZ0RBQWdELENBQUMsd0NBQXdDLENBQUMsd0JBQXdCLGdEQUFnRCxDQUFDLHdDQUF3QyxDQUFDLHNCQUFzQixnREFBZ0QsQ0FBQyx3Q0FBd0MsQ0FBQyxLQUFLLGtDQUFrQyxDQUFDLGdDQUFnQyxDQUFDLEtBQUssZ0RBQWdELENBQUMseUNBQXlDLENBQUMsa0NBQWtDLENBQUMsMENBQTBDLENBQUMsbUNBQW1DLENBQUMsS0FBSywyQ0FBMkMsQ0FBQyw4Q0FBOEMsQ0FBQyxLQUFLLCtCQUErQixDQUFDLEtBQUssNENBQTRDLENBQUMsOEJBQThCLENBQUMsK0JBQStCLENBQUMsbUdBQW1HLHFDQUFxQyxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxtR0FBbUcscUNBQXFDLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLG1HQUFtRyxxQ0FBcUMsQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsMkZBQTJGLHFDQUFxQyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxtREFBbUQsK0NBQStDLENBQUMsZUFBZSxDQUFDLG1EQUFtRCwrQ0FBK0MsQ0FBQyxlQUFlLENBQUMsa0dBQWtHLHFDQUFxQyxDQUFDLDRCQUE0QixDQUFDLDRGQUE0RixxQ0FBcUMsQ0FBQyw0QkFBNEIsQ0FBQyxzR0FBc0csZUFBZSxDQUFDLGdGQUFnRixxQ0FBcUMsQ0FBQyw0QkFBNEIsQ0FBQyxnREFBZ0QscUNBQXFDLENBQUMsMEJBQTBCLENBQUMsZUFBZSxDQUFDLGdEQUFnRCxxQ0FBcUMsQ0FBQyw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsZ0RBQWdELHFDQUFxQyxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxnREFBZ0QscUNBQXFDLENBQUMsNEJBQTRCLENBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtcmlwcGxle292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZHtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnR7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUzZCgwLCAwLCAwKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1hdC1yaXBwbGUtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXJpcHBsZS1lbGVtZW50e2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbntib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2xlZnQ6MH1bZGlyPXJ0bF0gLmNkay12aXN1YWxseS1oaWRkZW57bGVmdDphdXRvO3JpZ2h0OjB9LmNkay1vdmVybGF5LWNvbnRhaW5lciwuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3B7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9we2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcHt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIGxpbmVhcixvcGFjaXR5IDFtcyBsaW5lYXI7dmlzaWJpbGl0eTpoaWRkZW47b3BhY2l0eToxfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5ne29wYWNpdHk6MDt2aXNpYmlsaXR5OnZpc2libGV9LmNkay1vdmVybGF5LWJhY2tkcm9wLW5vb3AtYW5pbWF0aW9ue3RyYW5zaXRpb246bm9uZX0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2Nre3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXple3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmd7cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveHtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHsvKiEqL31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHsvKiEqL30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7Ym9yZGVyOnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpIHZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlLCBzb2xpZCkgdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOnZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cywgNHB4KX0ubWF0LWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3Jle2NvbnRlbnQ6XCJcIn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZley0tbWF0LWZvY3VzLWluZGljYXRvci1kaXNwbGF5OiBibG9ja30ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTp2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1kaXNwbGF5LCBub25lKTtib3JkZXI6dmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpIHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSwgc29saWQpIHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6dmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cywgNHB4KX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6Zm9jdXM6OmJlZm9yZXtjb250ZW50OlwiXCJ9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZXstLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXk6IGJsb2NrfS5tYXQtYXBwLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tYXQtYXBwLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjp2YXIoLS1tYXQtYXBwLXRleHQtY29sb3IsIGluaGVyaXQpfWh0bWx7LS1tYXQtcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKX1odG1sey0tbWF0LW9wdGlvbi1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LWNvbG9yOiMzZjUxYjU7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1vcHRpb24taG92ZXItc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tc2VsZWN0ZWQtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KX0ubWF0LWFjY2VudHstLW1hdC1vcHRpb24tc2VsZWN0ZWQtc3RhdGUtbGFiZWwtdGV4dC1jb2xvcjojZmY0MDgxOy0tbWF0LW9wdGlvbi1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtb3B0aW9uLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCk7LS1tYXQtb3B0aW9uLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCk7LS1tYXQtb3B0aW9uLXNlbGVjdGVkLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCl9Lm1hdC13YXJuey0tbWF0LW9wdGlvbi1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1vcHRpb24taG92ZXItc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1vcHRpb24tc2VsZWN0ZWQtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KX1odG1sey0tbWF0LW9wdGdyb3VwLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWF0LXByaW1hcnl7LS1tYXQtZnVsbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojYjBiMGIwOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6IzNmNTFiNTstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2IwYjBiMH1odG1sey0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2ZmNDA4MTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZhZmFmYTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZhZmFmYTstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1mdWxsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOiNiMGIwYjA7LS1tYXQtbWluaW1hbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNmZjQwODE7LS1tYXQtbWluaW1hbC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNiMGIwYjB9Lm1hdC1hY2NlbnR7LS1tYXQtZnVsbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojYjBiMGIwOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2ZmNDA4MTstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2IwYjBiMH0ubWF0LXdhcm57LS1tYXQtZnVsbC1wc2V1ZG8tY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjojZmFmYWZhOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjojYjBiMGIwOy0tbWF0LWZ1bGwtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2IwYjBiMDstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2Y0NDMzNjstLW1hdC1taW5pbWFsLXBzZXVkby1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6I2IwYjBiMH1odG1sey0tbWF0LWFwcC1iYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7LS1tYXQtYXBwLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWF0LWVsZXZhdGlvbi16MCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MSwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejJ7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXozLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoze2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16NCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16NHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo1LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXo1e2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejYsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejZ7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejcsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejd7Ym94LXNoYWRvdzowcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejgsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejh7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejksLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEwLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejExLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEyLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejEzLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE0LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE1LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE2LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTgsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE5LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMCwubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIxLC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjIsLm1hdC1tZGMtZWxldmF0aW9uLXNwZWNpZmljLm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMywubWF0LW1kYy1lbGV2YXRpb24tc3BlY2lmaWMubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejI0LC5tYXQtbWRjLWVsZXZhdGlvbi1zcGVjaWZpYy5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXJ7ZGlzcGxheTpub25lfWh0bWx7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1hdC1vcHRpb24tbGFiZWwtdGV4dC1zaXplOjE2cHg7LS1tYXQtb3B0aW9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWF0LW9wdGlvbi1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LW9wdGdyb3VwLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1vcHRncm91cC1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tZGMtb3V0bGluZWQtY2FyZC1jb250YWluZXItc2hhcGU6NHB4Oy0tbWRjLW91dGxpbmVkLWNhcmQtb3V0bGluZS13aWR0aDoxcHh9aHRtbHstLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1lbGV2YXRpb246MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1jYXJkLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1vdXRsaW5lZC1jYXJkLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1jYXJkLWNvbnRhaW5lci1lbGV2YXRpb246MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LWNhcmQtc3VidGl0bGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpfWh0bWx7LS1tYXQtY2FyZC10aXRsZS10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LWNhcmQtdGl0bGUtdGV4dC1saW5lLWhlaWdodDozMnB4Oy0tbWF0LWNhcmQtdGl0bGUtdGV4dC1zaXplOjIwcHg7LS1tYXQtY2FyZC10aXRsZS10ZXh0LXRyYWNraW5nOjAuMDEyNWVtOy0tbWF0LWNhcmQtdGl0bGUtdGV4dC13ZWlnaHQ6NTAwOy0tbWF0LWNhcmQtc3VidGl0bGUtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1jYXJkLXN1YnRpdGxlLXRleHQtbGluZS1oZWlnaHQ6MjJweDstLW1hdC1jYXJkLXN1YnRpdGxlLXRleHQtc2l6ZToxNHB4Oy0tbWF0LWNhcmQtc3VidGl0bGUtdGV4dC10cmFja2luZzowLjAwNzE0Mjg1NzFlbTstLW1hdC1jYXJkLXN1YnRpdGxlLXRleHQtd2VpZ2h0OjUwMH1odG1sey0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWhlaWdodDo0cHg7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWhlaWdodDo0cHg7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLXNoYXBlOjB9Lm1hdC1tZGMtcHJvZ3Jlc3MtYmFyey0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjU7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuMjUpfS5tYXQtbWRjLXByb2dyZXNzLWJhci5tYXQtYWNjZW50ey0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODE7LS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjI1KX0ubWF0LW1kYy1wcm9ncmVzcy1iYXIubWF0LXdhcm57LS1tZGMtbGluZWFyLXByb2dyZXNzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNjstLW1kYy1saW5lYXItcHJvZ3Jlc3MtdHJhY2stY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4yNSl9aHRtbHstLW1kYy1wbGFpbi10b29sdGlwLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tZGMtcGxhaW4tdG9vbHRpcC1zdXBwb3J0aW5nLXRleHQtbGluZS1oZWlnaHQ6MTZweH1odG1sey0tbWRjLXBsYWluLXRvb2x0aXAtY29udGFpbmVyLWNvbG9yOiM2MTYxNjE7LS1tZGMtcGxhaW4tdG9vbHRpcC1zdXBwb3J0aW5nLXRleHQtY29sb3I6I2ZmZn1odG1sey0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LXNpemU6MTJweDstLW1kYy1wbGFpbi10b29sdGlwLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLXBsYWluLXRvb2x0aXAtc3VwcG9ydGluZy10ZXh0LXRyYWNraW5nOjAuMDMzMzMzMzMzM2VtfWh0bWx7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtYWN0aXZlLWluZGljYXRvci1oZWlnaHQ6MXB4Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWZvY3VzLWFjdGl2ZS1pbmRpY2F0b3ItaGVpZ2h0OjJweDstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1jb250YWluZXItc2hhcGU6NHB4Oy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtb3V0bGluZS13aWR0aDoxcHg7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1mb2N1cy1vdXRsaW5lLXdpZHRoOjJweDstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWNvbnRhaW5lci1zaGFwZTo0cHh9aHRtbHstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1jYXJldC1jb2xvcjojM2Y1MWI1Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWZvY3VzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6IzNmNTFiNTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuODcpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWNvbnRhaW5lci1jb2xvcjp3aGl0ZXNtb2tlOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZmFmYWZhOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1pbnB1dC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZGlzYWJsZWQtaW5wdXQtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWVycm9yLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1lcnJvci1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZXJyb3ItbGFiZWwtdGV4dC1jb2xvcjojZjQ0MzM2Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWVycm9yLWNhcmV0LWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtYWN0aXZlLWluZGljYXRvci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNDIpOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWRpc2FibGVkLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA2KTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1ob3Zlci1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZXJyb3ItYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWVycm9yLWZvY3VzLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1lcnJvci1ob3Zlci1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1jYXJldC1jb2xvcjojM2Y1MWI1Oy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtb3V0bGluZS1jb2xvcjojM2Y1MWI1Oy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjg3KTstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtaG92ZXItbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1pbnB1dC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1kaXNhYmxlZC1pbnB1dC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWVycm9yLWNhcmV0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1ob3Zlci1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1kaXNhYmxlZC1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNik7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1mb2N1cy1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1ob3Zlci1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1lcnJvci1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tYXQtZm9ybS1maWVsZC1mb2N1cy1zZWxlY3QtYXJyb3ctY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC44Nyk7LS1tYXQtZm9ybS1maWVsZC1kaXNhYmxlZC1pbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZm9ybS1maWVsZC1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LWZvcm0tZmllbGQtZXJyb3ItdGV4dC1jb2xvcjojZjQ0MzM2Oy0tbWF0LWZvcm0tZmllbGQtc2VsZWN0LW9wdGlvbi10ZXh0LWNvbG9yOmluaGVyaXQ7LS1tYXQtZm9ybS1maWVsZC1zZWxlY3QtZGlzYWJsZWQtb3B0aW9uLXRleHQtY29sb3I6R3JheVRleHQ7LS1tYXQtZm9ybS1maWVsZC1sZWFkaW5nLWljb24tY29sb3I6dW5zZXQ7LS1tYXQtZm9ybS1maWVsZC1kaXNhYmxlZC1sZWFkaW5nLWljb24tY29sb3I6dW5zZXQ7LS1tYXQtZm9ybS1maWVsZC10cmFpbGluZy1pY29uLWNvbG9yOnVuc2V0Oy0tbWF0LWZvcm0tZmllbGQtZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp1bnNldDstLW1hdC1mb3JtLWZpZWxkLWVycm9yLWZvY3VzLXRyYWlsaW5nLWljb24tY29sb3I6dW5zZXQ7LS1tYXQtZm9ybS1maWVsZC1lcnJvci1ob3Zlci10cmFpbGluZy1pY29uLWNvbG9yOnVuc2V0Oy0tbWF0LWZvcm0tZmllbGQtZXJyb3ItdHJhaWxpbmctaWNvbi1jb2xvcjp1bnNldDstLW1hdC1mb3JtLWZpZWxkLWVuYWJsZWQtc2VsZWN0LWFycm93LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZm9ybS1maWVsZC1kaXNhYmxlZC1zZWxlY3QtYXJyb3ctY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1hdC1mb3JtLWZpZWxkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1hdC1mb3JtLWZpZWxkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wOH0ubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnR7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtY2FyZXQtY29sb3I6I2ZmNDA4MTstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1mb2N1cy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODE7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgNjQsIDEyOSwgMC44Nyk7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1jYXJldC1jb2xvcjojZmY0MDgxOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtb3V0bGluZS1jb2xvcjojZmY0MDgxOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI1NSwgNjQsIDEyOSwgMC44Nyk7LS1tYXQtZm9ybS1maWVsZC1mb2N1cy1zZWxlY3QtYXJyb3ctY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuODcpfS5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm57LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtY2FyZXQtY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1mb2N1cy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmNDQzMzY7LS1tZGMtZmlsbGVkLXRleHQtZmllbGQtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjg3KTstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWNhcmV0LWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1mb2N1cy1vdXRsaW5lLWNvbG9yOiNmNDQzMzY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpOy0tbWF0LWZvcm0tZmllbGQtZm9jdXMtc2VsZWN0LWFycm93LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpfWh0bWx7LS1tYXQtZm9ybS1maWVsZC1jb250YWluZXItaGVpZ2h0OjU2cHg7LS1tYXQtZm9ybS1maWVsZC1maWxsZWQtbGFiZWwtZGlzcGxheTpibG9jazstLW1hdC1mb3JtLWZpZWxkLWNvbnRhaW5lci12ZXJ0aWNhbC1wYWRkaW5nOjE2cHg7LS1tYXQtZm9ybS1maWVsZC1maWxsZWQtd2l0aC1sYWJlbC1jb250YWluZXItcGFkZGluZy10b3A6MjRweDstLW1hdC1mb3JtLWZpZWxkLWZpbGxlZC13aXRoLWxhYmVsLWNvbnRhaW5lci1wYWRkaW5nLWJvdHRvbTo4cHh9aHRtbHstLW1kYy1maWxsZWQtdGV4dC1maWVsZC1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtc2l6ZToxNnB4Oy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWRjLWZpbGxlZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtd2VpZ2h0OjQwMDstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtb3V0bGluZWQtdGV4dC1maWVsZC1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1kYy1vdXRsaW5lZC10ZXh0LWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWRjLW91dGxpbmVkLXRleHQtZmllbGQtbGFiZWwtdGV4dC13ZWlnaHQ6NDAwOy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtZm9ybS1maWVsZC1jb250YWluZXItdGV4dC1saW5lLWhlaWdodDoyNHB4Oy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtc2l6ZToxNnB4Oy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtOy0tbWF0LWZvcm0tZmllbGQtY29udGFpbmVyLXRleHQtd2VpZ2h0OjQwMDstLW1hdC1mb3JtLWZpZWxkLW91dGxpbmVkLWxhYmVsLXRleHQtcG9wdWxhdGVkLXNpemU6MTZweDstLW1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC10ZXh0LXNpemU6MTJweDstLW1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC10ZXh0LXRyYWNraW5nOjAuMDMzMzMzMzMzM2VtOy0tbWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LXNlbGVjdC1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9aHRtbHstLW1hdC1zZWxlY3QtcGFuZWwtYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zZWxlY3QtZW5hYmxlZC10cmlnZ2VyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zZWxlY3QtZGlzYWJsZWQtdHJpZ2dlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtc2VsZWN0LXBsYWNlaG9sZGVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXNlbGVjdC1lbmFibGVkLWFycm93LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtc2VsZWN0LWRpc2FibGVkLWFycm93LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtc2VsZWN0LWZvY3VzZWQtYXJyb3ctY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC44Nyk7LS1tYXQtc2VsZWN0LWludmFsaWQtYXJyb3ctY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC44Nyl9aHRtbCAubWF0LW1kYy1mb3JtLWZpZWxkLm1hdC1hY2NlbnR7LS1tYXQtc2VsZWN0LXBhbmVsLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc2VsZWN0LWVuYWJsZWQtdHJpZ2dlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtc2VsZWN0LWRpc2FibGVkLXRyaWdnZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC1zZWxlY3QtZW5hYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LXNlbGVjdC1kaXNhYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1mb2N1c2VkLWFycm93LWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjg3KTstLW1hdC1zZWxlY3QtaW52YWxpZC1hcnJvdy1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjg3KX1odG1sIC5tYXQtbWRjLWZvcm0tZmllbGQubWF0LXdhcm57LS1tYXQtc2VsZWN0LXBhbmVsLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc2VsZWN0LWVuYWJsZWQtdHJpZ2dlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtc2VsZWN0LWRpc2FibGVkLXRyaWdnZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC1zZWxlY3QtZW5hYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LXNlbGVjdC1kaXNhYmxlZC1hcnJvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXNlbGVjdC1mb2N1c2VkLWFycm93LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpOy0tbWF0LXNlbGVjdC1pbnZhbGlkLWFycm93LWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuODcpfWh0bWx7LS1tYXQtc2VsZWN0LWFycm93LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC04cHgpfWh0bWx7LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1zZWxlY3QtdHJpZ2dlci10ZXh0LWxpbmUtaGVpZ2h0OjI0cHg7LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC1zaXplOjE2cHg7LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC10cmFja2luZzowLjAzMTI1ZW07LS1tYXQtc2VsZWN0LXRyaWdnZXItdGV4dC13ZWlnaHQ6NDAwfWh0bWx7LS1tYXQtYXV0b2NvbXBsZXRlLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tYXQtYXV0b2NvbXBsZXRlLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LWF1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOndoaXRlfWh0bWx7LS1tZGMtZGlhbG9nLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1kaWFsb2ctY29udGFpbmVyLXNoYWRvdy1jb2xvcjojMDAwOy0tbWRjLWRpYWxvZy1jb250YWluZXItc2hhcGU6NHB4Oy0tbWF0LWRpYWxvZy1jb250YWluZXItbWF4LXdpZHRoOjgwdnc7LS1tYXQtZGlhbG9nLWNvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGg6ODB2dzstLW1hdC1kaWFsb2ctY29udGFpbmVyLW1pbi13aWR0aDowOy0tbWF0LWRpYWxvZy1hY3Rpb25zLWFsaWdubWVudDpzdGFydDstLW1hdC1kaWFsb2ctYWN0aW9ucy1wYWRkaW5nOjhweDstLW1hdC1kaWFsb2ctY29udGVudC1wYWRkaW5nOjIwcHggMjRweDstLW1hdC1kaWFsb2ctd2l0aC1hY3Rpb25zLWNvbnRlbnQtcGFkZGluZzoyMHB4IDI0cHg7LS1tYXQtZGlhbG9nLWhlYWRsaW5lLXBhZGRpbmc6MCAyNHB4IDlweH1odG1sey0tbWRjLWRpYWxvZy1jb250YWluZXItY29sb3I6d2hpdGU7LS1tZGMtZGlhbG9nLXN1YmhlYWQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX1odG1sey0tbWRjLWRpYWxvZy1zdWJoZWFkLWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWRpYWxvZy1zdWJoZWFkLWxpbmUtaGVpZ2h0OjMycHg7LS1tZGMtZGlhbG9nLXN1YmhlYWQtc2l6ZToyMHB4Oy0tbWRjLWRpYWxvZy1zdWJoZWFkLXdlaWdodDo1MDA7LS1tZGMtZGlhbG9nLXN1YmhlYWQtdHJhY2tpbmc6MC4wMTI1ZW07LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1kaWFsb2ctc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0OjI0cHg7LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC1zaXplOjE2cHg7LS1tZGMtZGlhbG9nLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLWRpYWxvZy1zdXBwb3J0aW5nLXRleHQtdHJhY2tpbmc6MC4wMzEyNWVtfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LS1tZGMtY2hpcC1jb250YWluZXItc2hhcGUtZmFtaWx5OnJvdW5kZWQ7LS1tZGMtY2hpcC1jb250YWluZXItc2hhcGUtcmFkaXVzOjE2cHggMTZweCAxNnB4IDE2cHg7LS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2hhcGUtZmFtaWx5OnJvdW5kZWQ7LS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2hhcGUtcmFkaXVzOjE0cHggMTRweCAxNHB4IDE0cHg7LS1tZGMtY2hpcC13aXRoLWF2YXRhci1hdmF0YXItc2l6ZToyOHB4Oy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tc2l6ZToxOHB4Oy0tbWRjLWNoaXAtb3V0bGluZS13aWR0aDowOy0tbWRjLWNoaXAtb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1jaGlwLWRpc2FibGVkLW91dGxpbmUtY29sb3I6dHJhbnNwYXJlbnQ7LS1tZGMtY2hpcC1mb2N1cy1vdXRsaW5lLWNvbG9yOnRyYW5zcGFyZW50Oy0tbWRjLWNoaXAtaG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWRjLWNoaXAtd2l0aC1hdmF0YXItZGlzYWJsZWQtYXZhdGFyLW9wYWNpdHk6MTstLW1kYy1jaGlwLWZsYXQtc2VsZWN0ZWQtb3V0bGluZS13aWR0aDowOy0tbWRjLWNoaXAtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tb3BhY2l0eToxOy0tbWRjLWNoaXAtd2l0aC1pY29uLWRpc2FibGVkLWljb24tb3BhY2l0eToxOy0tbWF0LWNoaXAtZGlzYWJsZWQtY29udGFpbmVyLW9wYWNpdHk6MC40Oy0tbWF0LWNoaXAtdHJhaWxpbmctYWN0aW9uLW9wYWNpdHk6MC41NDstLW1hdC1jaGlwLXRyYWlsaW5nLWFjdGlvbi1mb2N1cy1vcGFjaXR5OjE7LS1tYXQtY2hpcC10cmFpbGluZy1hY3Rpb24tc3RhdGUtbGF5ZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1hY3Rpb24tc3RhdGUtbGF5ZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtY2hpcC10cmFpbGluZy1hY3Rpb24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowOy0tbWF0LWNoaXAtdHJhaWxpbmctYWN0aW9uLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MH0ubWF0LW1kYy1zdGFuZGFyZC1jaGlwey0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtZWxldmF0ZWQtY29udGFpbmVyLWNvbG9yOiNlMGUwZTA7LS1tZGMtY2hpcC1lbGV2YXRlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6I2UwZTBlMDstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojZTBlMGUwOy0tbWRjLWNoaXAtZmxhdC1kaXNhYmxlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6I2UwZTBlMDstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtc2VsZWN0ZWQtbGFiZWwtdGV4dC1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hpcC13aXRoLWljb24tc2VsZWN0ZWQtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tYXQtY2hpcC1zZWxlY3RlZC1kaXNhYmxlZC10cmFpbGluZy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOiMyMTIxMjF9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnksLm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtbWRjLWNoaXAtaGlnaGxpZ2h0ZWQubWF0LXByaW1hcnl7LS1tZGMtY2hpcC1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtZWxldmF0ZWQtY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hpcC1lbGV2YXRlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6IzNmNTFiNTstLW1kYy1jaGlwLWVsZXZhdGVkLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoaXAtZmxhdC1kaXNhYmxlZC1zZWxlY3RlZC1jb250YWluZXItY29sb3I6IzNmNTFiNTstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXNlbGVjdGVkLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24taWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1kaXNhYmxlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLXNlbGVjdGVkLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlOy0tbWF0LWNoaXAtc2VsZWN0ZWQtZGlzYWJsZWQtdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1hdC1jaGlwLXNlbGVjdGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGV9Lm1hdC1tZGMtc3RhbmRhcmQtY2hpcC5tYXQtbWRjLWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCwubWF0LW1kYy1zdGFuZGFyZC1jaGlwLm1hdC1tZGMtY2hpcC1oaWdobGlnaHRlZC5tYXQtYWNjZW50ey0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZmY0MDgxOy0tbWRjLWNoaXAtZWxldmF0ZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hpcC1lbGV2YXRlZC1kaXNhYmxlZC1jb250YWluZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGlwLWZsYXQtZGlzYWJsZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtY2hpcC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC1zZWxlY3RlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24tZGlzYWJsZWQtaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1hdC1jaGlwLXNlbGVjdGVkLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlfS5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWF0LW1kYy1jaGlwLXNlbGVjdGVkLm1hdC13YXJuLC5tYXQtbWRjLXN0YW5kYXJkLWNoaXAubWF0LW1kYy1jaGlwLWhpZ2hsaWdodGVkLm1hdC13YXJuey0tbWRjLWNoaXAtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLWVsZXZhdGVkLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoaXAtZWxldmF0ZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hpcC1lbGV2YXRlZC1kaXNhYmxlZC1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1jaGlwLWZsYXQtZGlzYWJsZWQtc2VsZWN0ZWQtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoaXAtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hpcC1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtY2hpcC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGlwLXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1kYy1jaGlwLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tZGMtY2hpcC1zZWxlY3RlZC1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC1pY29uLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLWljb24tZGlzYWJsZWQtaWNvbi1jb2xvcjp3aGl0ZTstLW1kYy1jaGlwLXdpdGgtaWNvbi1zZWxlY3RlZC1pY29uLWNvbG9yOndoaXRlOy0tbWRjLWNoaXAtd2l0aC10cmFpbGluZy1pY29uLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tZGMtY2hpcC13aXRoLXRyYWlsaW5nLWljb24tdHJhaWxpbmctaWNvbi1jb2xvcjp3aGl0ZTstLW1hdC1jaGlwLXNlbGVjdGVkLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6d2hpdGU7LS1tYXQtY2hpcC1zZWxlY3RlZC10cmFpbGluZy1pY29uLWNvbG9yOndoaXRlfS5tYXQtbWRjLWNoaXAubWF0LW1kYy1zdGFuZGFyZC1jaGlwey0tbWRjLWNoaXAtY29udGFpbmVyLWhlaWdodDozMnB4fS5tYXQtbWRjLXN0YW5kYXJkLWNoaXB7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1saW5lLWhlaWdodDoyMHB4Oy0tbWRjLWNoaXAtbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tZGMtY2hpcC1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDE3ODU3MTQyOWVtOy0tbWRjLWNoaXAtbGFiZWwtdGV4dC13ZWlnaHQ6NDAwfWh0bWx7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWljb24tb3BhY2l0eTowLjM4Oy0tbWRjLXN3aXRjaC1kaXNhYmxlZC10cmFjay1vcGFjaXR5OjAuMTI7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1vcGFjaXR5OjAuMzg7LS1tZGMtc3dpdGNoLWhhbmRsZS1oZWlnaHQ6MjBweDstLW1kYy1zd2l0Y2gtaGFuZGxlLXNoYXBlOjEwcHg7LS1tZGMtc3dpdGNoLWhhbmRsZS13aWR0aDoyMHB4Oy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1pY29uLXNpemU6MThweDstLW1kYy1zd2l0Y2gtdHJhY2staGVpZ2h0OjE0cHg7LS1tZGMtc3dpdGNoLXRyYWNrLXNoYXBlOjdweDstLW1kYy1zd2l0Y2gtdHJhY2std2lkdGg6MzZweDstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1pY29uLXNpemU6MThweDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMDQ7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xOy0tbWF0LXN3aXRjaC1kaXNhYmxlZC1zZWxlY3RlZC1oYW5kbGUtb3BhY2l0eTowLjM4Oy0tbWF0LXN3aXRjaC1kaXNhYmxlZC11bnNlbGVjdGVkLWhhbmRsZS1vcGFjaXR5OjAuMzg7LS1tYXQtc3dpdGNoLXVuc2VsZWN0ZWQtaGFuZGxlLXNpemU6MjBweDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLXNpemU6MjBweDstLW1hdC1zd2l0Y2gtcHJlc3NlZC1oYW5kbGUtc2l6ZToyMHB4Oy0tbWF0LXN3aXRjaC13aXRoLWljb24taGFuZGxlLXNpemU6MjBweDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLWhvcml6b250YWwtbWFyZ2luOjA7LS1tYXQtc3dpdGNoLXNlbGVjdGVkLXdpdGgtaWNvbi1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtdW5zZWxlY3RlZC1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtdW5zZWxlY3RlZC13aXRoLWljb24taGFuZGxlLWhvcml6b250YWwtbWFyZ2luOjA7LS1tYXQtc3dpdGNoLXVuc2VsZWN0ZWQtcHJlc3NlZC1oYW5kbGUtaG9yaXpvbnRhbC1tYXJnaW46MDstLW1hdC1zd2l0Y2gtdmlzaWJsZS10cmFjay1vcGFjaXR5OjE7LS1tYXQtc3dpdGNoLWhpZGRlbi10cmFjay1vcGFjaXR5OjE7LS1tYXQtc3dpdGNoLXZpc2libGUtdHJhY2stdHJhbnNpdGlvbjp0cmFuc2Zvcm0gNzVtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7LS1tYXQtc3dpdGNoLWhpZGRlbi10cmFjay10cmFuc2l0aW9uOnRyYW5zZm9ybSA3NW1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOy0tbWF0LXN3aXRjaC10cmFjay1vdXRsaW5lLXdpZHRoOjFweDstLW1hdC1zd2l0Y2gtdHJhY2stb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDstLW1hdC1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stb3V0bGluZS13aWR0aDoxcHg7LS1tYXQtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtdHJhY2stb3V0bGluZS13aWR0aDoxcHg7LS1tYXQtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtdHJhY2stb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudH1odG1sey0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojMzk0OWFiOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1oYW5kbGUtY29sb3I6IzM5NDlhYjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6IzM5NDlhYjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojMzk0OWFiOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6IzFhMjM3ZTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiMxYTIzN2U7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtaGFuZGxlLWNvbG9yOiMxYTIzN2U7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiM3OTg2Y2I7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiM3OTg2Y2I7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtdHJhY2stY29sb3I6Izc5ODZjYjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stY29sb3I6Izc5ODZjYjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiM0MjQyNDI7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtc2VsZWN0ZWQtdHJhY2stY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtdW5zZWxlY3RlZC1oYW5kbGUtY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOiNmZmY7LS1tZGMtc3dpdGNoLWRpc2FibGVkLXVuc2VsZWN0ZWQtdHJhY2stY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtaGFuZGxlLXN1cmZhY2UtY29sb3I6dmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpOy0tbWRjLXN3aXRjaC1oYW5kbGUtZWxldmF0aW9uLXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXN3aXRjaC1oYW5kbGUtc2hhZG93LWNvbG9yOmJsYWNrOy0tbWRjLXN3aXRjaC1kaXNhYmxlZC1oYW5kbGUtZWxldmF0aW9uLXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6IzIxMjEyMTstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojNDI0MjQyOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiM2MTYxNjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiMyMTIxMjE7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1ob3Zlci10cmFjay1jb2xvcjojZTBlMGUwOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLWljb24tY29sb3I6I2ZmZjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojMjEyMTIxOy0tbWRjLXN3aXRjaC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6IzQyNDI0MjstLW1kYy1zd2l0Y2gtdW5zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNlMGUwZTA7LS1tZGMtc3dpdGNoLXVuc2VsZWN0ZWQtdHJhY2stY29sb3I6I2UwZTBlMDstLW1kYy1zd2l0Y2gtZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KX1odG1sIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZXstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX1odG1sIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZS5tYXQtYWNjZW50ey0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojZDgxYjYwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1oYW5kbGUtY29sb3I6I2Q4MWI2MDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2Q4MWI2MDstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojZDgxYjYwOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy1oYW5kbGUtY29sb3I6Izg4MGU0ZjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaG92ZXItaGFuZGxlLWNvbG9yOiM4ODBlNGY7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtaGFuZGxlLWNvbG9yOiM4ODBlNGY7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWZvY3VzLXRyYWNrLWNvbG9yOiNmMDYyOTI7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXRyYWNrLWNvbG9yOiNmMDYyOTI7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtdHJhY2stY29sb3I6I2YwNjI5MjstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtdHJhY2stY29sb3I6I2YwNjI5Mn1odG1sIC5tYXQtbWRjLXNsaWRlLXRvZ2dsZS5tYXQtd2FybnstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2U1MzkzNTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtaGFuZGxlLWNvbG9yOiNlNTM5MzU7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiNlNTM5MzU7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6I2U1MzkzNTstLW1kYy1zd2l0Y2gtc2VsZWN0ZWQtZm9jdXMtaGFuZGxlLWNvbG9yOiNiNzFjMWM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLWhvdmVyLWhhbmRsZS1jb2xvcjojYjcxYzFjOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLWhhbmRsZS1jb2xvcjojYjcxYzFjOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1mb2N1cy10cmFjay1jb2xvcjojZTU3MzczOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1ob3Zlci10cmFjay1jb2xvcjojZTU3MzczOy0tbWRjLXN3aXRjaC1zZWxlY3RlZC1wcmVzc2VkLXRyYWNrLWNvbG9yOiNlNTczNzM7LS1tZGMtc3dpdGNoLXNlbGVjdGVkLXRyYWNrLWNvbG9yOiNlNTczNzN9aHRtbHstLW1kYy1zd2l0Y2gtc3RhdGUtbGF5ZXItc2l6ZTo0MHB4fWh0bWwgLm1hdC1tZGMtc2xpZGUtdG9nZ2xley0tbWRjLWZvcm0tZmllbGQtbGFiZWwtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLWZvcm0tZmllbGQtbGFiZWwtdGV4dC10cmFja2luZzowLjAxNzg1NzE0MjllbTstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tb3BhY2l0eTowLjM4Oy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1vcGFjaXR5OjAuMzg7LS1tZGMtcmFkaW8tc3RhdGUtbGF5ZXItc2l6ZTo0MHB4fS5tYXQtbWRjLXJhZGlvLWJ1dHRvbnstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KX0ubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1yYWRpby1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6IzNmNTFiNTstLW1hdC1yYWRpby1yaXBwbGUtY29sb3I6YmxhY2s7LS1tYXQtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6IzNmNTFiNTstLW1hdC1yYWRpby1kaXNhYmxlZC1sYWJlbC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tYXQtbWRjLXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50ey0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmZjQwODE7LS1tYXQtcmFkaW8tcmlwcGxlLWNvbG9yOmJsYWNrOy0tbWF0LXJhZGlvLWNoZWNrZWQtcmlwcGxlLWNvbG9yOiNmZjQwODE7LS1tYXQtcmFkaW8tZGlzYWJsZWQtbGFiZWwtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KX0ubWF0LW1kYy1yYWRpby1idXR0b24ubWF0LXdhcm57LS1tZGMtcmFkaW8tZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y0NDMzNjstLW1hdC1yYWRpby1yaXBwbGUtY29sb3I6YmxhY2s7LS1tYXQtcmFkaW8tY2hlY2tlZC1yaXBwbGUtY29sb3I6I2Y0NDMzNjstLW1hdC1yYWRpby1kaXNhYmxlZC1sYWJlbC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfWh0bWx7LS1tZGMtcmFkaW8tc3RhdGUtbGF5ZXItc2l6ZTo0MHB4Oy0tbWF0LXJhZGlvLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrfS5tYXQtbWRjLXJhZGlvLWJ1dHRvbnstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLXdpZHRoOmF1dG87LS1tYXQtc2xpZGVyLXZhbHVlLWluZGljYXRvci1oZWlnaHQ6MzJweDstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLWNhcmV0LWRpc3BsYXk6YmxvY2s7LS1tYXQtc2xpZGVyLXZhbHVlLWluZGljYXRvci1ib3JkZXItcmFkaXVzOjRweDstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLXBhZGRpbmc6MCAxMnB4Oy0tbWF0LXNsaWRlci12YWx1ZS1pbmRpY2F0b3ItdGV4dC10cmFuc2Zvcm06bm9uZTstLW1hdC1zbGlkZXItdmFsdWUtaW5kaWNhdG9yLWNvbnRhaW5lci10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTstLW1kYy1zbGlkZXItYWN0aXZlLXRyYWNrLWhlaWdodDo2cHg7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1zaGFwZTo5OTk5cHg7LS1tZGMtc2xpZGVyLWhhbmRsZS1oZWlnaHQ6MjBweDstLW1kYy1zbGlkZXItaGFuZGxlLXNoYXBlOjUwJTstLW1kYy1zbGlkZXItaGFuZGxlLXdpZHRoOjIwcHg7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLWhlaWdodDo0cHg7LS1tZGMtc2xpZGVyLWluYWN0aXZlLXRyYWNrLXNoYXBlOjk5OTlweDstLW1kYy1zbGlkZXItd2l0aC1vdmVybGFwLWhhbmRsZS1vdXRsaW5lLXdpZHRoOjFweDstLW1kYy1zbGlkZXItd2l0aC10aWNrLW1hcmtzLWFjdGl2ZS1jb250YWluZXItb3BhY2l0eTowLjY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1jb250YWluZXItc2hhcGU6NTAlOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtY29udGFpbmVyLXNpemU6MnB4Oy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLW9wYWNpdHk6MC42fWh0bWx7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojM2Y1MWI1Oy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6IzNmNTFiNTstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiMzZjUxYjU7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojM2Y1MWI1Oy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojM2Y1MWI1Oy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWRjLXNsaWRlci1kaXNhYmxlZC1hY3RpdmUtdHJhY2stY29sb3I6IzAwMDstLW1kYy1zbGlkZXItZGlzYWJsZWQtaGFuZGxlLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLWRpc2FibGVkLWluYWN0aXZlLXRyYWNrLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLWxhYmVsLWNvbnRhaW5lci1jb2xvcjojMDAwOy0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LWNvbG9yOiNmZmY7LS1tZGMtc2xpZGVyLXdpdGgtb3ZlcmxhcC1oYW5kbGUtb3V0bGluZS1jb2xvcjojZmZmOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiMwMDA7LS1tZGMtc2xpZGVyLWhhbmRsZS1lbGV2YXRpb246MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1zbGlkZXItcmlwcGxlLWNvbG9yOiMzZjUxYjU7LS1tYXQtc2xpZGVyLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuMDUpOy0tbWF0LXNsaWRlci1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjIpOy0tbWF0LXNsaWRlci12YWx1ZS1pbmRpY2F0b3Itb3BhY2l0eTowLjZ9aHRtbCAubWF0LWFjY2VudHstLW1hdC1zbGlkZXItcmlwcGxlLWNvbG9yOiNmZjQwODE7LS1tYXQtc2xpZGVyLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjA1KTstLW1hdC1zbGlkZXItZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuMik7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZmY0MDgxOy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2ZmNDA4MTstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNmZjQwODE7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZmY0MDgxOy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZmY0MDgxOy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmZjQwODE7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOndoaXRlfWh0bWwgLm1hdC13YXJuey0tbWF0LXNsaWRlci1yaXBwbGUtY29sb3I6I2Y0NDMzNjstLW1hdC1zbGlkZXItaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4wNSk7LS1tYXQtc2xpZGVyLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuMik7LS1tZGMtc2xpZGVyLWhhbmRsZS1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1mb2N1cy1oYW5kbGUtY29sb3I6I2Y0NDMzNjstLW1kYy1zbGlkZXItaG92ZXItaGFuZGxlLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLWFjdGl2ZS10cmFjay1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci1pbmFjdGl2ZS10cmFjay1jb2xvcjojZjQ0MzM2Oy0tbWRjLXNsaWRlci13aXRoLXRpY2stbWFya3MtaW5hY3RpdmUtY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtc2xpZGVyLXdpdGgtdGljay1tYXJrcy1hY3RpdmUtY29udGFpbmVyLWNvbG9yOndoaXRlfWh0bWx7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLXNsaWRlci1sYWJlbC1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIycHg7LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMDcxNDI4NTcxZW07LS1tZGMtc2xpZGVyLWxhYmVsLWxhYmVsLXRleHQtd2VpZ2h0OjUwMH1odG1sey0tbWF0LW1lbnUtY29udGFpbmVyLXNoYXBlOjRweDstLW1hdC1tZW51LWRpdmlkZXItYm90dG9tLXNwYWNpbmc6MDstLW1hdC1tZW51LWRpdmlkZXItdG9wLXNwYWNpbmc6MDstLW1hdC1tZW51LWl0ZW0tc3BhY2luZzoxNnB4Oy0tbWF0LW1lbnUtaXRlbS1pY29uLXNpemU6MjRweDstLW1hdC1tZW51LWl0ZW0tbGVhZGluZy1zcGFjaW5nOjE2cHg7LS1tYXQtbWVudS1pdGVtLXRyYWlsaW5nLXNwYWNpbmc6MTZweDstLW1hdC1tZW51LWl0ZW0td2l0aC1pY29uLWxlYWRpbmctc3BhY2luZzoxNnB4Oy0tbWF0LW1lbnUtaXRlbS13aXRoLWljb24tdHJhaWxpbmctc3BhY2luZzoxNnB4fWh0bWx7LS1tYXQtbWVudS1pdGVtLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1tZW51LWl0ZW0taWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LW1lbnUtaXRlbS1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMDQpOy0tbWF0LW1lbnUtaXRlbS1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMDQpOy0tbWF0LW1lbnUtY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWF0LW1lbnUtZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfWh0bWx7LS1tYXQtbWVudS1pdGVtLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtbWVudS1pdGVtLWxhYmVsLXRleHQtc2l6ZToxNnB4Oy0tbWF0LW1lbnUtaXRlbS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1tZW51LWl0ZW0tbGFiZWwtdGV4dC1saW5lLWhlaWdodDoyNHB4Oy0tbWF0LW1lbnUtaXRlbS1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1kYy1saXN0LWxpc3QtaXRlbS1jb250YWluZXItc2hhcGU6MDstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWF2YXRhci1zaGFwZTo1MCU7LS1tZGMtbGlzdC1saXN0LWl0ZW0tY29udGFpbmVyLWNvbG9yOnRyYW5zcGFyZW50Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXNlbGVjdGVkLWNvbnRhaW5lci1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWF2YXRhci1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWljb24tc2l6ZToyNHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctYXZhdGFyLXNpemU6NDBweDstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1pY29uLXNpemU6MjRweDstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjp0cmFuc3BhcmVudDstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjA7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGFiZWwtdGV4dC1vcGFjaXR5OjAuMzg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGVhZGluZy1pY29uLW9wYWNpdHk6MC4zODstLW1kYy1saXN0LWxpc3QtaXRlbS1kaXNhYmxlZC10cmFpbGluZy1pY29uLW9wYWNpdHk6MC4zODstLW1hdC1saXN0LWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtbGlzdC1hY3RpdmUtaW5kaWNhdG9yLXNoYXBlOjRweH1odG1sey0tbWRjLWxpc3QtbGlzdC1pdGVtLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1kYy1saXN0LWxpc3QtaXRlbS1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1saXN0LWxpc3QtaXRlbS1sZWFkaW5nLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtbGlzdC1saXN0LWl0ZW0tc2VsZWN0ZWQtdHJhaWxpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0tZGlzYWJsZWQtbGVhZGluZy1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWRpc2FibGVkLXRyYWlsaW5nLWljb24tY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLWxlYWRpbmctaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWhvdmVyLXRyYWlsaW5nLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1saXN0LWxpc3QtaXRlbS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtbGlzdC1saXN0LWl0ZW0taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMn0ubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojM2Y1MWI1fS5tYXQtYWNjZW50IC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LWFjY2VudCAubWRjLWxpc3QtaXRlbV9fZW5key0tbWRjLXJhZGlvLWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6YmxhY2s7LS1tZGMtcmFkaW8tZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1yYWRpby1zZWxlY3RlZC1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmZjQwODF9Lm1hdC13YXJuIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LXdhcm4gLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOmJsYWNrOy0tbWRjLXJhZGlvLWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpibGFjazstLW1kYy1yYWRpby11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1yYWRpby11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1yYWRpby11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLXJhZGlvLXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1yYWRpby1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtcmFkaW8tc2VsZWN0ZWQtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLXJhZGlvLXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZjQ0MzM2fS5tYXQtbWRjLWxpc3Qtb3B0aW9uey0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6d2hpdGU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2t9Lm1hdC1tZGMtbGlzdC1vcHRpb24ubWF0LWFjY2VudHstLW1kYy1jaGVja2JveC1kaXNhYmxlZC1zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOndoaXRlOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojMjEyMTIxOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrfS5tYXQtbWRjLWxpc3Qtb3B0aW9uLm1hdC13YXJuey0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6d2hpdGU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2t9Lm1hdC1tZGMtbGlzdC1iYXNlLm1hdC1tZGMtbGlzdC1iYXNlIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0LC5tYXQtbWRjLWxpc3QtYmFzZS5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHR7Y29sb3I6IzNmNTFiNX0ubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LW1kYy1saXN0LWJhc2UubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtbGlzdC1pdGVtLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWxpc3QtaXRlbV9fc3RhcnR7Y29sb3I6IzNmNTFiNX0ubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19zdGFydCwubWF0LW1kYy1saXN0LWJhc2UgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19jb250ZW50LC5tYXQtbWRjLWxpc3QtYmFzZSAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX2VuZHtvcGFjaXR5OjF9aHRtbHstLW1kYy1saXN0LWxpc3QtaXRlbS1vbmUtbGluZS1jb250YWluZXItaGVpZ2h0OjQ4cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tdHdvLWxpbmUtY29udGFpbmVyLWhlaWdodDo2NHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRocmVlLWxpbmUtY29udGFpbmVyLWhlaWdodDo4OHB4Oy0tbWF0LWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctaWNvbi1zdGFydC1zcGFjZToxNnB4Oy0tbWF0LWxpc3QtbGlzdC1pdGVtLWxlYWRpbmctaWNvbi1lbmQtc3BhY2U6MzJweH0ubWRjLWxpc3QtaXRlbV9fc3RhcnQsLm1kYy1saXN0LWl0ZW1fX2VuZHstLW1kYy1yYWRpby1zdGF0ZS1sYXllci1zaXplOjQwcHh9Lm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1hdmF0YXIubWRjLWxpc3QtaXRlbS0td2l0aC1vbmUtbGluZSwubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWNoZWNrYm94Lm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmUsLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1pY29uLm1kYy1saXN0LWl0ZW0tLXdpdGgtb25lLWxpbmV7aGVpZ2h0OjU2cHh9Lm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1hdmF0YXIubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXMsLm1hdC1tZGMtbGlzdC1pdGVtLm1kYy1saXN0LWl0ZW0tLXdpdGgtbGVhZGluZy1jaGVja2JveC5tZGMtbGlzdC1pdGVtLS13aXRoLXR3by1saW5lcywubWF0LW1kYy1saXN0LWl0ZW0ubWRjLWxpc3QtaXRlbS0td2l0aC1sZWFkaW5nLWljb24ubWRjLWxpc3QtaXRlbS0td2l0aC10d28tbGluZXN7aGVpZ2h0OjcycHh9aHRtbHstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWxpc3QtbGlzdC1pdGVtLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1kYy1saXN0LWxpc3QtaXRlbS1sYWJlbC10ZXh0LXdlaWdodDo0MDA7LS1tZGMtbGlzdC1saXN0LWl0ZW0tc3VwcG9ydGluZy10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC1saW5lLWhlaWdodDoyMHB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC1zaXplOjE0cHg7LS1tZGMtbGlzdC1saXN0LWl0ZW0tc3VwcG9ydGluZy10ZXh0LXRyYWNraW5nOjAuMDE3ODU3MTQyOWVtOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRyYWlsaW5nLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtc2l6ZToxMnB4Oy0tbWRjLWxpc3QtbGlzdC1pdGVtLXRyYWlsaW5nLXN1cHBvcnRpbmctdGV4dC10cmFja2luZzowLjAzMzMzMzMzMzNlbTstLW1kYy1saXN0LWxpc3QtaXRlbS10cmFpbGluZy1zdXBwb3J0aW5nLXRleHQtd2VpZ2h0OjQwMH0ubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcntmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMDkzNzVlbX1odG1sey0tbWF0LXBhZ2luYXRvci1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXBhZ2luYXRvci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1wYWdpbmF0b3ItZW5hYmxlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtcGFnaW5hdG9yLWRpc2FibGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LXBhZ2luYXRvci1jb250YWluZXItc2l6ZTo1NnB4Oy0tbWF0LXBhZ2luYXRvci1mb3JtLWZpZWxkLWNvbnRhaW5lci1oZWlnaHQ6NDBweDstLW1hdC1wYWdpbmF0b3ItZm9ybS1maWVsZC1jb250YWluZXItdmVydGljYWwtcGFkZGluZzo4cHh9aHRtbHstLW1hdC1wYWdpbmF0b3ItY29udGFpbmVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtcGFnaW5hdG9yLWNvbnRhaW5lci10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtcGFnaW5hdG9yLWNvbnRhaW5lci10ZXh0LXNpemU6MTJweDstLW1hdC1wYWdpbmF0b3ItY29udGFpbmVyLXRleHQtdHJhY2tpbmc6MC4wMzMzMzMzMzMzZW07LS1tYXQtcGFnaW5hdG9yLWNvbnRhaW5lci10ZXh0LXdlaWdodDo0MDA7LS1tYXQtcGFnaW5hdG9yLXNlbGVjdC10cmlnZ2VyLXRleHQtc2l6ZToxMnB4fWh0bWx7LS1tZGMtdGFiLWluZGljYXRvci1hY3RpdmUtaW5kaWNhdG9yLWhlaWdodDoycHg7LS1tZGMtdGFiLWluZGljYXRvci1hY3RpdmUtaW5kaWNhdG9yLXNoYXBlOjA7LS1tZGMtc2Vjb25kYXJ5LW5hdmlnYXRpb24tdGFiLWNvbnRhaW5lci1oZWlnaHQ6NDhweDstLW1hdC10YWItaGVhZGVyLWRpdmlkZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1tYXQtdGFiLWhlYWRlci1kaXZpZGVyLWhlaWdodDowfS5tYXQtbWRjLXRhYi1ncm91cCwubWF0LW1kYy10YWItbmF2LWJhcnstLW1kYy10YWItaW5kaWNhdG9yLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6IzNmNTFiNTstLW1hdC10YWItaGVhZGVyLWRpc2FibGVkLXJpcHBsZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1pY29uLWNvbG9yOmJsYWNrOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjojM2Y1MWI1Oy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLXJpcHBsZS1jb2xvcjojM2Y1MWI1Oy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtcmlwcGxlLWNvbG9yOiMzZjUxYjU7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC10YWItaGVhZGVyLWluYWN0aXZlLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLWZvY3VzLWxhYmVsLXRleHQtY29sb3I6IzNmNTFiNTstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1ob3Zlci1sYWJlbC10ZXh0LWNvbG9yOiMzZjUxYjU7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtZm9jdXMtaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjU7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtaG92ZXItaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjV9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC1hY2NlbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWFjY2VudHstLW1kYy10YWItaW5kaWNhdG9yLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6I2ZmNDA4MTstLW1hdC10YWItaGVhZGVyLWRpc2FibGVkLXJpcHBsZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1pY29uLWNvbG9yOmJsYWNrOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtbGFiZWwtdGV4dC1jb2xvcjojZmY0MDgxOy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLXJpcHBsZS1jb2xvcjojZmY0MDgxOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtcmlwcGxlLWNvbG9yOiNmZjQwODE7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1mb2N1cy1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC10YWItaGVhZGVyLWluYWN0aXZlLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLWZvY3VzLWxhYmVsLXRleHQtY29sb3I6I2ZmNDA4MTstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1ob3Zlci1sYWJlbC10ZXh0LWNvbG9yOiNmZjQwODE7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtZm9jdXMtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODE7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtaG92ZXItaW5kaWNhdG9yLWNvbG9yOiNmZjQwODF9Lm1hdC1tZGMtdGFiLWdyb3VwLm1hdC13YXJuLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC13YXJuey0tbWRjLXRhYi1pbmRpY2F0b3ItYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRhYi1oZWFkZXItZGlzYWJsZWQtcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWljb24tY29sb3I6YmxhY2s7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KTstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtcmlwcGxlLWNvbG9yOiNmNDQzMzY7LS1tYXQtdGFiLWhlYWRlci1pbmFjdGl2ZS1yaXBwbGUtY29sb3I6I2Y0NDMzNjstLW1hdC10YWItaGVhZGVyLWluYWN0aXZlLWZvY3VzLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjYpOy0tbWF0LXRhYi1oZWFkZXItaW5hY3RpdmUtaG92ZXItbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNik7LS1tYXQtdGFiLWhlYWRlci1hY3RpdmUtZm9jdXMtbGFiZWwtdGV4dC1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRhYi1oZWFkZXItYWN0aXZlLWhvdmVyLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1mb2N1cy1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNjstLW1hdC10YWItaGVhZGVyLWFjdGl2ZS1ob3Zlci1pbmRpY2F0b3ItY29sb3I6I2Y0NDMzNn0ubWF0LW1kYy10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSwubWF0LW1kYy10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5ey0tbWF0LXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQsLm1hdC1tZGMtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50ey0tbWF0LXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWJhY2tncm91bmQtY29sb3I6I2ZmNDA4MTstLW1hdC10YWItaGVhZGVyLXdpdGgtYmFja2dyb3VuZC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlfS5tYXQtbWRjLXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuLC5tYXQtbWRjLXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm57LS1tYXQtdGFiLWhlYWRlci13aXRoLWJhY2tncm91bmQtYmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRhYi1oZWFkZXItd2l0aC1iYWNrZ3JvdW5kLWZvcmVncm91bmQtY29sb3I6d2hpdGV9Lm1hdC1tZGMtdGFiLWhlYWRlcnstLW1kYy1zZWNvbmRhcnktbmF2aWdhdGlvbi10YWItY29udGFpbmVyLWhlaWdodDo0OHB4fS5tYXQtbWRjLXRhYi1oZWFkZXJ7LS1tYXQtdGFiLWhlYWRlci1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXRhYi1oZWFkZXItbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tYXQtdGFiLWhlYWRlci1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDg5Mjg1NzE0M2VtOy0tbWF0LXRhYi1oZWFkZXItbGFiZWwtdGV4dC1saW5lLWhlaWdodDozNnB4Oy0tbWF0LXRhYi1oZWFkZXItbGFiZWwtdGV4dC13ZWlnaHQ6NTAwfWh0bWx7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtY2hlY2ttYXJrLWNvbG9yOiNmZmY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjE2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjE2fWh0bWx7LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjp3aGl0ZTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZmY0MDgxOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNmZjQwODE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1jaGVja2JveC1kaXNhYmxlZC1sYWJlbC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpfS5tYXQtbWRjLWNoZWNrYm94ey0tbWRjLWZvcm0tZmllbGQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfS5tYXQtbWRjLWNoZWNrYm94Lm1hdC1wcmltYXJ5ey0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1kaXNhYmxlZC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1jaGVja21hcmstY29sb3I6d2hpdGU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtZm9jdXMtaWNvbi1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzNmNTFiNTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1pY29uLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1pY29uLWNvbG9yOiMyMTIxMjE7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2t9Lm1hdC1tZGMtY2hlY2tib3gubWF0LXdhcm57LS1tZGMtY2hlY2tib3gtZGlzYWJsZWQtc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LWRpc2FibGVkLXVuc2VsZWN0ZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWNoZWNrbWFyay1jb2xvcjp3aGl0ZTstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1mb2N1cy1pY29uLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItaWNvbi1jb2xvcjojZjQ0MzM2Oy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLWljb24tY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWZvY3VzLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLWljb24tY29sb3I6IzIxMjEyMTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLXByZXNzZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWRjLWNoZWNrYm94LXNlbGVjdGVkLWZvY3VzLXN0YXRlLWxheWVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtc2VsZWN0ZWQtaG92ZXItc3RhdGUtbGF5ZXItY29sb3I6I2Y0NDMzNjstLW1kYy1jaGVja2JveC1zZWxlY3RlZC1wcmVzc2VkLXN0YXRlLWxheWVyLWNvbG9yOiNmNDQzMzY7LS1tZGMtY2hlY2tib3gtdW5zZWxlY3RlZC1mb2N1cy1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1kYy1jaGVja2JveC11bnNlbGVjdGVkLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWRjLWNoZWNrYm94LXVuc2VsZWN0ZWQtcHJlc3NlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFja31odG1sey0tbWRjLWNoZWNrYm94LXN0YXRlLWxheWVyLXNpemU6NDBweDstLW1hdC1jaGVja2JveC10b3VjaC10YXJnZXQtZGlzcGxheTpibG9ja30ubWF0LW1kYy1jaGVja2JveHstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1kYy1mb3JtLWZpZWxkLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tZGMtZm9ybS1maWVsZC1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1kYy10ZXh0LWJ1dHRvbi1jb250YWluZXItc2hhcGU6NHB4Oy0tbWRjLXRleHQtYnV0dG9uLWtlZXAtdG91Y2gtdGFyZ2V0OmZhbHNlOy0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLXNoYXBlOjRweDstLW1kYy1maWxsZWQtYnV0dG9uLWtlZXAtdG91Y2gtdGFyZ2V0OmZhbHNlOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLXNoYXBlOjRweDstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWtlZXAtdG91Y2gtdGFyZ2V0OmZhbHNlOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1rZWVwLXRvdWNoLXRhcmdldDpmYWxzZTstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS13aWR0aDoxcHg7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tYXQtdGV4dC1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nOjhweDstLW1hdC10ZXh0LWJ1dHRvbi13aXRoLWljb24taG9yaXpvbnRhbC1wYWRkaW5nOjhweDstLW1hdC10ZXh0LWJ1dHRvbi1pY29uLXNwYWNpbmc6OHB4Oy0tbWF0LXRleHQtYnV0dG9uLWljb24tb2Zmc2V0OjA7LS1tYXQtZmlsbGVkLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmc6MTZweDstLW1hdC1maWxsZWQtYnV0dG9uLWljb24tc3BhY2luZzo4cHg7LS1tYXQtZmlsbGVkLWJ1dHRvbi1pY29uLW9mZnNldDotNHB4Oy0tbWF0LXByb3RlY3RlZC1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nOjE2cHg7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi1pY29uLXNwYWNpbmc6OHB4Oy0tbWF0LXByb3RlY3RlZC1idXR0b24taWNvbi1vZmZzZXQ6LTRweDstLW1hdC1vdXRsaW5lZC1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nOjE1cHg7LS1tYXQtb3V0bGluZWQtYnV0dG9uLWljb24tc3BhY2luZzo4cHg7LS1tYXQtb3V0bGluZWQtYnV0dG9uLWljb24tb2Zmc2V0Oi00cHh9aHRtbHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOmJsYWNrOy0tbWRjLXRleHQtYnV0dG9uLWRpc2FibGVkLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjM4KTstLW1hdC10ZXh0LWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC10ZXh0LWJ1dHRvbi1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC10ZXh0LWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEpOy0tbWF0LXRleHQtYnV0dG9uLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1hdC10ZXh0LWJ1dHRvbi1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtdGV4dC1idXR0b24tcHJlc3NlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6d2hpdGU7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOmJsYWNrOy0tbWRjLWZpbGxlZC1idXR0b24tZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmlsbGVkLWJ1dHRvbi1kaXNhYmxlZC1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZmlsbGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1maWxsZWQtYnV0dG9uLWRpc2FibGVkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWZpbGxlZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKTstLW1hdC1maWxsZWQtYnV0dG9uLWhvdmVyLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4wNDstLW1hdC1maWxsZWQtYnV0dG9uLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1hdC1maWxsZWQtYnV0dG9uLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjpibGFjazstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWRpc2FibGVkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWZvY3VzLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLXByb3RlY3RlZC1idXR0b24taG92ZXItY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1wcmVzc2VkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1zaGFkb3ctY29sb3I6IzAwMDstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LXByb3RlY3RlZC1idXR0b24tZGlzYWJsZWQtc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEpOy0tbWF0LXByb3RlY3RlZC1idXR0b24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LXByb3RlY3RlZC1idXR0b24tZm9jdXMtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWF0LXByb3RlY3RlZC1idXR0b24tcHJlc3NlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWRpc2FibGVkLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1vdXRsaW5lZC1idXR0b24tZGlzYWJsZWQtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOmJsYWNrOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1vdXRsaW5lZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKTstLW1hdC1vdXRsaW5lZC1idXR0b24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyfS5tYXQtbWRjLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiMzZjUxYjU7LS1tYXQtdGV4dC1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6IzNmNTFiNTstLW1hdC10ZXh0LWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC4xKX0ubWF0LW1kYy1idXR0b24ubWF0LWFjY2VudHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOiNmZjQwODE7LS1tYXQtdGV4dC1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1hdC10ZXh0LWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuMSl9Lm1hdC1tZGMtYnV0dG9uLm1hdC13YXJuey0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1hdC10ZXh0LWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRleHQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjEpfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWZpbGxlZC1idXR0b24tY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWZpbGxlZC1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6d2hpdGU7LS1tYXQtZmlsbGVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpfS5tYXQtbWRjLXVuZWxldmF0ZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmNDA4MTstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tYXQtZmlsbGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1maWxsZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Lm1hdC1tZGMtdW5lbGV2YXRlZC1idXR0b24ubWF0LXdhcm57LS1tZGMtZmlsbGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1kYy1maWxsZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tYXQtZmlsbGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1maWxsZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojM2Y1MWI1Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LXByb3RlY3RlZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX0ubWF0LW1kYy1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnR7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1jb250YWluZXItY29sb3I6I2ZmNDA4MTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6d2hpdGU7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9Lm1hdC1tZGMtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWNvbnRhaW5lci1jb2xvcjojZjQ0MzM2Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjp3aGl0ZTstLW1hdC1wcm90ZWN0ZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LXByb3RlY3RlZC1idXR0b24tcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXByaW1hcnl7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6IzNmNTFiNTstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC4xKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LWFjY2VudHstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1jb2xvcjojZmY0MDgxOy0tbWRjLW91dGxpbmVkLWJ1dHRvbi1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOiNmZjQwODE7LS1tYXQtb3V0bGluZWQtYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgNjQsIDEyOSwgMC4xKX0ubWF0LW1kYy1vdXRsaW5lZC1idXR0b24ubWF0LXdhcm57LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtY29sb3I6I2Y0NDMzNjstLW1kYy1vdXRsaW5lZC1idXR0b24tb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojZjQ0MzM2Oy0tbWF0LW91dGxpbmVkLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1odG1sey0tbWRjLXRleHQtYnV0dG9uLWNvbnRhaW5lci1oZWlnaHQ6MzZweDstLW1kYy1maWxsZWQtYnV0dG9uLWNvbnRhaW5lci1oZWlnaHQ6MzZweDstLW1kYy1vdXRsaW5lZC1idXR0b24tY29udGFpbmVyLWhlaWdodDozNnB4Oy0tbWRjLXByb3RlY3RlZC1idXR0b24tY29udGFpbmVyLWhlaWdodDozNnB4Oy0tbWF0LXRleHQtYnV0dG9uLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrOy0tbWF0LWZpbGxlZC1idXR0b24tdG91Y2gtdGFyZ2V0LWRpc3BsYXk6YmxvY2s7LS1tYXQtcHJvdGVjdGVkLWJ1dHRvbi10b3VjaC10YXJnZXQtZGlzcGxheTpibG9jazstLW1hdC1vdXRsaW5lZC1idXR0b24tdG91Y2gtdGFyZ2V0LWRpc3BsYXk6YmxvY2t9aHRtbHstLW1kYy10ZXh0LWJ1dHRvbi1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wODkyODU3MTQzZW07LS1tZGMtdGV4dC1idXR0b24tbGFiZWwtdGV4dC13ZWlnaHQ6NTAwOy0tbWRjLXRleHQtYnV0dG9uLWxhYmVsLXRleHQtdHJhbnNmb3JtOm5vbmU7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tZGMtZmlsbGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDg5Mjg1NzE0M2VtOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC13ZWlnaHQ6NTAwOy0tbWRjLWZpbGxlZC1idXR0b24tbGFiZWwtdGV4dC10cmFuc2Zvcm06bm9uZTstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wODkyODU3MTQzZW07LS1tZGMtb3V0bGluZWQtYnV0dG9uLWxhYmVsLXRleHQtd2VpZ2h0OjUwMDstLW1kYy1vdXRsaW5lZC1idXR0b24tbGFiZWwtdGV4dC10cmFuc2Zvcm06bm9uZTstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1kYy1wcm90ZWN0ZWQtYnV0dG9uLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wODkyODU3MTQzZW07LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXdlaWdodDo1MDA7LS1tZGMtcHJvdGVjdGVkLWJ1dHRvbi1sYWJlbC10ZXh0LXRyYW5zZm9ybTpub25lfWh0bWx7LS1tZGMtaWNvbi1idXR0b24taWNvbi1zaXplOjI0cHh9aHRtbHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOmluaGVyaXQ7LS1tZGMtaWNvbi1idXR0b24tZGlzYWJsZWQtaWNvbi1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LWljb24tYnV0dG9uLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWljb24tYnV0dG9uLWRpc2FibGVkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWljb24tYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMSk7LS1tYXQtaWNvbi1idXR0b24taG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LWljb24tYnV0dG9uLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1hdC1pY29uLWJ1dHRvbi1wcmVzc2VkLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMn1odG1sIC5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1wcmltYXJ5ey0tbWRjLWljb24tYnV0dG9uLWljb24tY29sb3I6IzNmNTFiNTstLW1hdC1pY29uLWJ1dHRvbi1zdGF0ZS1sYXllci1jb2xvcjojM2Y1MWI1Oy0tbWF0LWljb24tYnV0dG9uLXJpcHBsZS1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjEpfWh0bWwgLm1hdC1tZGMtaWNvbi1idXR0b24ubWF0LWFjY2VudHstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmZjQwODE7LS1tYXQtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6I2ZmNDA4MTstLW1hdC1pY29uLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDY0LCAxMjksIDAuMSl9aHRtbCAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtd2FybnstLW1kYy1pY29uLWJ1dHRvbi1pY29uLWNvbG9yOiNmNDQzMzY7LS1tYXQtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItY29sb3I6I2Y0NDMzNjstLW1hdC1pY29uLWJ1dHRvbi1yaXBwbGUtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4xKX1odG1sey0tbWF0LWljb24tYnV0dG9uLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrfS5tYXQtbWRjLWljb24tYnV0dG9uLm1hdC1tZGMtYnV0dG9uLWJhc2V7LS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZTo0OHB4O3dpZHRoOnZhcigtLW1kYy1pY29uLWJ1dHRvbi1zdGF0ZS1sYXllci1zaXplKTtoZWlnaHQ6dmFyKC0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemUpO3BhZGRpbmc6MTJweH1odG1sey0tbWRjLWZhYi1jb250YWluZXItc2hhcGU6NTAlOy0tbWRjLWZhYi1pY29uLXNpemU6MjRweDstLW1kYy1mYWItc21hbGwtY29udGFpbmVyLXNoYXBlOjUwJTstLW1kYy1mYWItc21hbGwtaWNvbi1zaXplOjI0cHg7LS1tZGMtZXh0ZW5kZWQtZmFiLWNvbnRhaW5lci1oZWlnaHQ6NDhweDstLW1kYy1leHRlbmRlZC1mYWItY29udGFpbmVyLXNoYXBlOjI0cHh9aHRtbHstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWRjLWZhYi1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmFiLWZvY3VzLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1mYWItaG92ZXItY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZhYi1wcmVzc2VkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmFiLWNvbnRhaW5lci1zaGFkb3ctY29sb3I6IzAwMDstLW1hdC1mYWItZm9yZWdyb3VuZC1jb2xvcjpibGFjazstLW1hdC1mYWItc3RhdGUtbGF5ZXItY29sb3I6YmxhY2s7LS1tYXQtZmFiLWRpc2FibGVkLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWZhYi1yaXBwbGUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEpOy0tbWF0LWZhYi1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMDQ7LS1tYXQtZmFiLWZvY3VzLXN0YXRlLWxheWVyLW9wYWNpdHk6MC4xMjstLW1hdC1mYWItcHJlc3NlZC1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtZmFiLWRpc2FibGVkLXN0YXRlLWNvbnRhaW5lci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LWZhYi1kaXNhYmxlZC1zdGF0ZS1mb3JlZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tZGMtZmFiLXNtYWxsLWNvbnRhaW5lci1jb2xvcjp3aGl0ZTstLW1kYy1mYWItc21hbGwtY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZhYi1zbWFsbC1mb2N1cy1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZmFiLXNtYWxsLWhvdmVyLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1mYWItc21hbGwtcHJlc3NlZC1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWZhYi1zbWFsbC1jb250YWluZXItc2hhZG93LWNvbG9yOiMwMDA7LS1tYXQtZmFiLXNtYWxsLWZvcmVncm91bmQtY29sb3I6YmxhY2s7LS1tYXQtZmFiLXNtYWxsLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LWZhYi1zbWFsbC1kaXNhYmxlZC1zdGF0ZS1sYXllci1jb2xvcjpibGFjazstLW1hdC1mYWItc21hbGwtcmlwcGxlLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xKTstLW1hdC1mYWItc21hbGwtaG92ZXItc3RhdGUtbGF5ZXItb3BhY2l0eTowLjA0Oy0tbWF0LWZhYi1zbWFsbC1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTI7LS1tYXQtZmFiLXNtYWxsLXByZXNzZWQtc3RhdGUtbGF5ZXItb3BhY2l0eTowLjEyOy0tbWF0LWZhYi1zbWFsbC1kaXNhYmxlZC1zdGF0ZS1jb250YWluZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1mYWItc21hbGwtZGlzYWJsZWQtc3RhdGUtZm9yZWdyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWRjLWV4dGVuZGVkLWZhYi1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZXh0ZW5kZWQtZmFiLWZvY3VzLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1kYy1leHRlbmRlZC1mYWItaG92ZXItY29udGFpbmVyLWVsZXZhdGlvbi1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWRjLWV4dGVuZGVkLWZhYi1wcmVzc2VkLWNvbnRhaW5lci1lbGV2YXRpb24tc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1tZGMtZXh0ZW5kZWQtZmFiLWNvbnRhaW5lci1zaGFkb3ctY29sb3I6IzAwMH1odG1sIC5tYXQtbWRjLWZhYi5tYXQtcHJpbWFyeXstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiMzZjUxYjU7LS1tYXQtZmFiLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtZmFiLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpfWh0bWwgLm1hdC1tZGMtZmFiLm1hdC1hY2NlbnR7LS1tZGMtZmFiLWNvbnRhaW5lci1jb2xvcjojZmY0MDgxOy0tbWF0LWZhYi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1mYWItcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1odG1sIC5tYXQtbWRjLWZhYi5tYXQtd2FybnstLW1kYy1mYWItY29udGFpbmVyLWNvbG9yOiNmNDQzMzY7LS1tYXQtZmFiLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtZmFiLXN0YXRlLWxheWVyLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1yaXBwbGUtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpfWh0bWwgLm1hdC1tZGMtbWluaS1mYWIubWF0LXByaW1hcnl7LS1tZGMtZmFiLXNtYWxsLWNvbnRhaW5lci1jb2xvcjojM2Y1MWI1Oy0tbWF0LWZhYi1zbWFsbC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1zbWFsbC1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1mYWItc21hbGwtcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1odG1sIC5tYXQtbWRjLW1pbmktZmFiLm1hdC1hY2NlbnR7LS1tZGMtZmFiLXNtYWxsLWNvbnRhaW5lci1jb2xvcjojZmY0MDgxOy0tbWF0LWZhYi1zbWFsbC1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LWZhYi1zbWFsbC1zdGF0ZS1sYXllci1jb2xvcjp3aGl0ZTstLW1hdC1mYWItc21hbGwtcmlwcGxlLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKX1odG1sIC5tYXQtbWRjLW1pbmktZmFiLm1hdC13YXJuey0tbWRjLWZhYi1zbWFsbC1jb250YWluZXItY29sb3I6I2Y0NDMzNjstLW1hdC1mYWItc21hbGwtZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1mYWItc21hbGwtc3RhdGUtbGF5ZXItY29sb3I6d2hpdGU7LS1tYXQtZmFiLXNtYWxsLXJpcHBsZS1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSl9aHRtbHstLW1hdC1mYWItdG91Y2gtdGFyZ2V0LWRpc3BsYXk6YmxvY2s7LS1tYXQtZmFiLXNtYWxsLXRvdWNoLXRhcmdldC1kaXNwbGF5OmJsb2NrfWh0bWx7LS1tZGMtZXh0ZW5kZWQtZmFiLWxhYmVsLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tZGMtZXh0ZW5kZWQtZmFiLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWRjLWV4dGVuZGVkLWZhYi1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDg5Mjg1NzE0M2VtOy0tbWRjLWV4dGVuZGVkLWZhYi1sYWJlbC10ZXh0LXdlaWdodDo1MDB9aHRtbHstLW1kYy1zbmFja2Jhci1jb250YWluZXItc2hhcGU6NHB4fWh0bWx7LS1tZGMtc25hY2tiYXItY29udGFpbmVyLWNvbG9yOiMzMzMzMzM7LS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nyk7LS1tYXQtc25hY2stYmFyLWJ1dHRvbi1jb2xvcjojZmY0MDgxfWh0bWx7LS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1saW5lLWhlaWdodDoyMHB4Oy0tbWRjLXNuYWNrYmFyLXN1cHBvcnRpbmctdGV4dC1zaXplOjE0cHg7LS1tZGMtc25hY2tiYXItc3VwcG9ydGluZy10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC10YWJsZS1yb3ctaXRlbS1vdXRsaW5lLXdpZHRoOjFweH1odG1sey0tbWF0LXRhYmxlLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtdGFibGUtaGVhZGVyLWhlYWRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyk7LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXRhYmxlLXJvdy1pdGVtLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LXRhYmxlLWhlYWRlci1jb250YWluZXItaGVpZ2h0OjU2cHg7LS1tYXQtdGFibGUtZm9vdGVyLWNvbnRhaW5lci1oZWlnaHQ6NTJweDstLW1hdC10YWJsZS1yb3ctaXRlbS1jb250YWluZXItaGVpZ2h0OjUycHh9aHRtbHstLW1hdC10YWJsZS1oZWFkZXItaGVhZGxpbmUtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtdGFibGUtaGVhZGVyLWhlYWRsaW5lLWxpbmUtaGVpZ2h0OjIycHg7LS1tYXQtdGFibGUtaGVhZGVyLWhlYWRsaW5lLXNpemU6MTRweDstLW1hdC10YWJsZS1oZWFkZXItaGVhZGxpbmUtd2VpZ2h0OjUwMDstLW1hdC10YWJsZS1oZWFkZXItaGVhZGxpbmUtdHJhY2tpbmc6MC4wMDcxNDI4NTcxZW07LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC10YWJsZS1yb3ctaXRlbS1sYWJlbC10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC1zaXplOjE0cHg7LS1tYXQtdGFibGUtcm93LWl0ZW0tbGFiZWwtdGV4dC13ZWlnaHQ6NDAwOy0tbWF0LXRhYmxlLXJvdy1pdGVtLWxhYmVsLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tYXQtdGFibGUtZm9vdGVyLXN1cHBvcnRpbmctdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC10YWJsZS1mb290ZXItc3VwcG9ydGluZy10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtdGFibGUtZm9vdGVyLXN1cHBvcnRpbmctdGV4dC1zaXplOjE0cHg7LS1tYXQtdGFibGUtZm9vdGVyLXN1cHBvcnRpbmctdGV4dC13ZWlnaHQ6NDAwOy0tbWF0LXRhYmxlLWZvb3Rlci1zdXBwb3J0aW5nLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW19aHRtbHstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLXdpZHRoOjRweDstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1zaXplOjQ4cHh9aHRtbHstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiMzZjUxYjV9aHRtbCAubWF0LWFjY2VudHstLW1kYy1jaXJjdWxhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiNmZjQwODF9aHRtbCAubWF0LXdhcm57LS1tZGMtY2lyY3VsYXItcHJvZ3Jlc3MtYWN0aXZlLWluZGljYXRvci1jb2xvcjojZjQ0MzM2fWh0bWx7LS1tYXQtYmFkZ2UtY29udGFpbmVyLXNoYXBlOjUwJTstLW1hdC1iYWRnZS1jb250YWluZXItc2l6ZTp1bnNldDstLW1hdC1iYWRnZS1zbWFsbC1zaXplLWNvbnRhaW5lci1zaXplOnVuc2V0Oy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLXNpemU6dW5zZXQ7LS1tYXQtYmFkZ2UtbGVnYWN5LWNvbnRhaW5lci1zaXplOjIycHg7LS1tYXQtYmFkZ2UtbGVnYWN5LXNtYWxsLXNpemUtY29udGFpbmVyLXNpemU6MTZweDstLW1hdC1iYWRnZS1sZWdhY3ktbGFyZ2Utc2l6ZS1jb250YWluZXItc2l6ZToyOHB4Oy0tbWF0LWJhZGdlLWNvbnRhaW5lci1vZmZzZXQ6LTExcHggMDstLW1hdC1iYWRnZS1zbWFsbC1zaXplLWNvbnRhaW5lci1vZmZzZXQ6LThweCAwOy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLW9mZnNldDotMTRweCAwOy0tbWF0LWJhZGdlLWNvbnRhaW5lci1vdmVybGFwLW9mZnNldDotMTFweDstLW1hdC1iYWRnZS1zbWFsbC1zaXplLWNvbnRhaW5lci1vdmVybGFwLW9mZnNldDotOHB4Oy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLW92ZXJsYXAtb2Zmc2V0Oi0xNHB4Oy0tbWF0LWJhZGdlLWNvbnRhaW5lci1wYWRkaW5nOjA7LS1tYXQtYmFkZ2Utc21hbGwtc2l6ZS1jb250YWluZXItcGFkZGluZzowOy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtY29udGFpbmVyLXBhZGRpbmc6MH1odG1sey0tbWF0LWJhZGdlLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC1iYWRnZS10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWJhZGdlLWRpc2FibGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6I2I5YjliOTstLW1hdC1iYWRnZS1kaXNhYmxlZC1zdGF0ZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCl9Lm1hdC1iYWRnZS1hY2NlbnR7LS1tYXQtYmFkZ2UtYmFja2dyb3VuZC1jb2xvcjojZmY0MDgxOy0tbWF0LWJhZGdlLXRleHQtY29sb3I6d2hpdGV9Lm1hdC1iYWRnZS13YXJuey0tbWF0LWJhZGdlLWJhY2tncm91bmQtY29sb3I6I2Y0NDMzNjstLW1hdC1iYWRnZS10ZXh0LWNvbG9yOndoaXRlfWh0bWx7LS1tYXQtYmFkZ2UtdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1iYWRnZS10ZXh0LXNpemU6MTJweDstLW1hdC1iYWRnZS10ZXh0LXdlaWdodDo2MDA7LS1tYXQtYmFkZ2Utc21hbGwtc2l6ZS10ZXh0LXNpemU6OXB4Oy0tbWF0LWJhZGdlLWxhcmdlLXNpemUtdGV4dC1zaXplOjI0cHh9aHRtbHstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXNoYXBlOjRweH1odG1sey0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZX1odG1sey0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXRleHQtbGluZS1oZWlnaHQ6MjBweDstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXRleHQtc2l6ZToxNHB4Oy0tbWF0LWJvdHRvbS1zaGVldC1jb250YWluZXItdGV4dC10cmFja2luZzowLjAxNzg1NzE0MjllbTstLW1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLWhlaWdodDozNnB4Oy0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLXNoYXBlOjJweDstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjE7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1zaGFwZTo0cHg7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1ob3Zlci1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMDQ7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1zdGF0ZS1sYXllci1vcGFjaXR5OjAuMTJ9aHRtbHstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtbGVnYWN5LWJ1dHRvbi10b2dnbGUtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1zZWxlY3RlZC1zdGF0ZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtbGVnYWN5LWJ1dHRvbi10b2dnbGUtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojZTBlMGUwOy0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLWRpc2FibGVkLXN0YXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjI2KTstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWU7LS1tYXQtbGVnYWN5LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojYmRiZGJkOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLXN0YXRlLWxheWVyLWNvbG9yOmJsYWNrOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojZTBlMGUwOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtc2VsZWN0ZWQtc3RhdGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQtc3RhdGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMjYpOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLXNlbGVjdGVkLXN0YXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLXNlbGVjdGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6I2JkYmRiZDstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWRpdmlkZXItY29sb3I6I2UwZTBlMH1odG1sey0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtaGVpZ2h0OjQ4cHh9aHRtbHstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LWxlZ2FjeS1idXR0b24tdG9nZ2xlLWxhYmVsLXRleHQtbGluZS1oZWlnaHQ6MjRweDstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1sZWdhY3ktYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXdlaWdodDo0MDA7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtbGFiZWwtdGV4dC1saW5lLWhlaWdodDoyNHB4Oy0tbWF0LXN0YW5kYXJkLWJ1dHRvbi10b2dnbGUtbGFiZWwtdGV4dC1zaXplOjE2cHg7LS1tYXQtc3RhbmRhcmQtYnV0dG9uLXRvZ2dsZS1sYWJlbC10ZXh0LXRyYWNraW5nOjAuMDMxMjVlbTstLW1hdC1zdGFuZGFyZC1idXR0b24tdG9nZ2xlLWxhYmVsLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItY29udGFpbmVyLXNoYXBlOjRweDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWNvbnRhaW5lci10b3VjaC1zaGFwZTo0cHg7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWNvbnRhaW5lci10b3VjaC1lbGV2YXRpb24tc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1odG1sey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjU7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLXNlbGVjdGVkLWRpc2FibGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSg2MywgODEsIDE4MSwgMC40KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtdG9kYXktc2VsZWN0ZWQtc3RhdGUtb3V0bGluZS1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtZm9jdXMtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1ob3Zlci1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjMsIDgxLCAxODEsIDAuMyk7LS1tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLXN0YXRlLWljb24tY29sb3I6IzNmNTFiNTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tcmFuZ2Utc3RhdGUtYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDYzLCA4MSwgMTgxLCAwLjIpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1jb21wYXJpc29uLXJhbmdlLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDksIDE3MSwgMCwgMC4yKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tb3ZlcmxhcC1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNhOGRhYjU7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLW92ZXJsYXAtcmFuZ2Utc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojNDZhMzVlOy0tbWF0LWRhdGVwaWNrZXItdG9nZ2xlLWljb24tY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWJvZHktbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItcGVyaW9kLWJ1dHRvbi10ZXh0LWNvbG9yOmJsYWNrOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItcGVyaW9kLWJ1dHRvbi1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1uYXZpZ2F0aW9uLWJ1dHRvbi1pY29uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1oZWFkZXItZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItaGVhZGVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtdG9kYXktb3V0bGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS10b2RheS1kaXNhYmxlZC1zdGF0ZS1vdXRsaW5lLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xOCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtb3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtZGlzYWJsZWQtc3RhdGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMzgpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1wcmV2aWV3LXN0YXRlLW91dGxpbmUtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjI0KTstLW1hdC1kYXRlcGlja2VyLXJhbmdlLWlucHV0LXNlcGFyYXRvci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LWRhdGVwaWNrZXItcmFuZ2UtaW5wdXQtZGlzYWJsZWQtc3RhdGUtc2VwYXJhdG9yLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZGF0ZXBpY2tlci1yYW5nZS1pbnB1dC1kaXNhYmxlZC1zdGF0ZS10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4zOCk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWNvbnRhaW5lci10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44Nyl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudHstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtc2VsZWN0ZWQtc3RhdGUtdGV4dC1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojZmY0MDgxOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1kaXNhYmxlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjQpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS10b2RheS1zZWxlY3RlZC1zdGF0ZS1vdXRsaW5lLWNvbG9yOndoaXRlOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1mb2N1cy1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1ob3Zlci1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCA2NCwgMTI5LCAwLjIpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1jb21wYXJpc29uLXJhbmdlLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDksIDE3MSwgMCwgMC4yKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tb3ZlcmxhcC1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNhOGRhYjU7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLW92ZXJsYXAtcmFuZ2Utc2VsZWN0ZWQtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojNDZhMzVlfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS10ZXh0LWNvbG9yOndoaXRlOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1zZWxlY3RlZC1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLXNlbGVjdGVkLWRpc2FibGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC40KTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtdG9kYXktc2VsZWN0ZWQtc3RhdGUtb3V0bGluZS1jb2xvcjp3aGl0ZTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtZm9jdXMtc3RhdGUtYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCwgNjcsIDU0LCAwLjMpOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1ob3Zlci1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LCA2NywgNTQsIDAuMyk7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLXJhbmdlLXN0YXRlLWJhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsIDY3LCA1NCwgMC4yKTstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWRhdGUtaW4tY29tcGFyaXNvbi1yYW5nZS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ5LCAxNzEsIDAsIDAuMik7LS1tYXQtZGF0ZXBpY2tlci1jYWxlbmRhci1kYXRlLWluLW92ZXJsYXAtcmFuZ2Utc3RhdGUtYmFja2dyb3VuZC1jb2xvcjojYThkYWI1Oy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItZGF0ZS1pbi1vdmVybGFwLXJhbmdlLXNlbGVjdGVkLXN0YXRlLWJhY2tncm91bmQtY29sb3I6IzQ2YTM1ZX0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50ey0tbWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS1zdGF0ZS1pY29uLWNvbG9yOiNmZjQwODF9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57LS1tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLXN0YXRlLWljb24tY29sb3I6I2Y0NDMzNn0ubWF0LWNhbGVuZGFyLWNvbnRyb2xzey0tbWF0LWljb24tYnV0dG9uLXRvdWNoLXRhcmdldC1kaXNwbGF5Om5vbmV9Lm1hdC1jYWxlbmRhci1jb250cm9scyAubWF0LW1kYy1pY29uLWJ1dHRvbi5tYXQtbWRjLWJ1dHRvbi1iYXNley0tbWRjLWljb24tYnV0dG9uLXN0YXRlLWxheWVyLXNpemU6NDBweDt3aWR0aDp2YXIoLS1tZGMtaWNvbi1idXR0b24tc3RhdGUtbGF5ZXItc2l6ZSk7aGVpZ2h0OnZhcigtLW1kYy1pY29uLWJ1dHRvbi1zdGF0ZS1sYXllci1zaXplKTtwYWRkaW5nOjhweH1odG1sey0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLXRleHQtc2l6ZToxM3B4Oy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItYm9keS1sYWJlbC10ZXh0LXNpemU6MTRweDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLWJvZHktbGFiZWwtdGV4dC13ZWlnaHQ6NTAwOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItcGVyaW9kLWJ1dHRvbi10ZXh0LXNpemU6MTRweDstLW1hdC1kYXRlcGlja2VyLWNhbGVuZGFyLXBlcmlvZC1idXR0b24tdGV4dC13ZWlnaHQ6NTAwOy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItaGVhZGVyLXRleHQtc2l6ZToxMXB4Oy0tbWF0LWRhdGVwaWNrZXItY2FsZW5kYXItaGVhZGVyLXRleHQtd2VpZ2h0OjQwMH1odG1sey0tbWF0LWRpdmlkZXItd2lkdGg6MXB4fWh0bWx7LS1tYXQtZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpfWh0bWx7LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci1zaGFwZTo0cHg7LS1tYXQtZXhwYW5zaW9uLWxlZ2FjeS1oZWFkZXItaW5kaWNhdG9yLWRpc3BsYXk6aW5saW5lLWJsb2NrOy0tbWF0LWV4cGFuc2lvbi1oZWFkZXItaW5kaWNhdG9yLWRpc3BsYXk6bm9uZX1odG1sey0tbWF0LWV4cGFuc2lvbi1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1leHBhbnNpb24tY29udGFpbmVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1leHBhbnNpb24tYWN0aW9ucy1kaXZpZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4xMik7LS1tYXQtZXhwYW5zaW9uLWhlYWRlci1ob3Zlci1zdGF0ZS1sYXllci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMDQpOy0tbWF0LWV4cGFuc2lvbi1oZWFkZXItZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1leHBhbnNpb24taGVhZGVyLWRpc2FibGVkLXN0YXRlLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjI2KTstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1leHBhbnNpb24taGVhZGVyLWRlc2NyaXB0aW9uLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtZXhwYW5zaW9uLWhlYWRlci1pbmRpY2F0b3ItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjU0KX1odG1sey0tbWF0LWV4cGFuc2lvbi1oZWFkZXItY29sbGFwc2VkLXN0YXRlLWhlaWdodDo0OHB4Oy0tbWF0LWV4cGFuc2lvbi1oZWFkZXItZXhwYW5kZWQtc3RhdGUtaGVpZ2h0OjY0cHh9aHRtbHstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtZXhwYW5zaW9uLWhlYWRlci10ZXh0LXNpemU6MTRweDstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtd2VpZ2h0OjUwMDstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtbGluZS1oZWlnaHQ6aW5oZXJpdDstLW1hdC1leHBhbnNpb24taGVhZGVyLXRleHQtdHJhY2tpbmc6aW5oZXJpdDstLW1hdC1leHBhbnNpb24tY29udGFpbmVyLXRleHQtZm9udDpSb2JvdG8sIHNhbnMtc2VyaWY7LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci10ZXh0LWxpbmUtaGVpZ2h0OjIwcHg7LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci10ZXh0LXNpemU6MTRweDstLW1hdC1leHBhbnNpb24tY29udGFpbmVyLXRleHQtdHJhY2tpbmc6MC4wMTc4NTcxNDI5ZW07LS1tYXQtZXhwYW5zaW9uLWNvbnRhaW5lci10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1ncmlkLWxpc3QtdGlsZS1oZWFkZXItcHJpbWFyeS10ZXh0LXNpemU6MTRweDstLW1hdC1ncmlkLWxpc3QtdGlsZS1oZWFkZXItc2Vjb25kYXJ5LXRleHQtc2l6ZToxMnB4Oy0tbWF0LWdyaWQtbGlzdC10aWxlLWZvb3Rlci1wcmltYXJ5LXRleHQtc2l6ZToxNHB4Oy0tbWF0LWdyaWQtbGlzdC10aWxlLWZvb3Rlci1zZWNvbmRhcnktdGV4dC1zaXplOjEycHh9aHRtbHstLW1hdC1pY29uLWNvbG9yOmluaGVyaXR9Lm1hdC1pY29uLm1hdC1wcmltYXJ5ey0tbWF0LWljb24tY29sb3I6IzNmNTFiNX0ubWF0LWljb24ubWF0LWFjY2VudHstLW1hdC1pY29uLWNvbG9yOiNmZjQwODF9Lm1hdC1pY29uLm1hdC13YXJuey0tbWF0LWljb24tY29sb3I6I2Y0NDMzNn1odG1sey0tbWF0LXNpZGVuYXYtY29udGFpbmVyLXNoYXBlOjA7LS1tYXQtc2lkZW5hdi1jb250YWluZXItZWxldmF0aW9uLXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTstLW1hdC1zaWRlbmF2LWNvbnRhaW5lci13aWR0aDphdXRvfWh0bWx7LS1tYXQtc2lkZW5hdi1jb250YWluZXItZGl2aWRlci1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LXNpZGVuYXYtY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc2lkZW5hdi1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpOy0tbWF0LXNpZGVuYXYtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7LS1tYXQtc2lkZW5hdi1jb250ZW50LXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zaWRlbmF2LXNjcmltLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC42KX1odG1sey0tbWF0LXN0ZXBwZXItaGVhZGVyLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItZG9uZS1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6IzNmNTFiNTstLW1hdC1zdGVwcGVyLWhlYWRlci1kb25lLXN0YXRlLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1lZGl0LXN0YXRlLWljb24tYmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1Oy0tbWF0LXN0ZXBwZXItaGVhZGVyLWVkaXQtc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LXN0ZXBwZXItY29udGFpbmVyLWNvbG9yOndoaXRlOy0tbWF0LXN0ZXBwZXItbGluZS1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuMTIpOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWhvdmVyLXN0YXRlLWxheWVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNCk7LS1tYXQtc3RlcHBlci1oZWFkZXItZm9jdXMtc3RhdGUtbGF5ZXItY29sb3I6cmdiYSgwLCAwLCAwLCAwLjA0KTstLW1hdC1zdGVwcGVyLWhlYWRlci1sYWJlbC10ZXh0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtc3RlcHBlci1oZWFkZXItb3B0aW9uYWwtbGFiZWwtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNTQpOy0tbWF0LXN0ZXBwZXItaGVhZGVyLXNlbGVjdGVkLXN0YXRlLWxhYmVsLXRleHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjg3KTstLW1hdC1zdGVwcGVyLWhlYWRlci1lcnJvci1zdGF0ZS1sYWJlbC10ZXh0LWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC41NCk7LS1tYXQtc3RlcHBlci1oZWFkZXItZXJyb3Itc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItZXJyb3Itc3RhdGUtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWh0bWwgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50ey0tbWF0LXN0ZXBwZXItaGVhZGVyLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6I2ZmNDA4MTstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItZG9uZS1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6I2ZmNDA4MTstLW1hdC1zdGVwcGVyLWhlYWRlci1kb25lLXN0YXRlLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC1zdGVwcGVyLWhlYWRlci1lZGl0LXN0YXRlLWljb24tYmFja2dyb3VuZC1jb2xvcjojZmY0MDgxOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWVkaXQtc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlfWh0bWwgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybnstLW1hdC1zdGVwcGVyLWhlYWRlci1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItc2VsZWN0ZWQtc3RhdGUtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItc2VsZWN0ZWQtc3RhdGUtaWNvbi1mb3JlZ3JvdW5kLWNvbG9yOndoaXRlOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWRvbmUtc3RhdGUtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7LS1tYXQtc3RlcHBlci1oZWFkZXItZG9uZS1zdGF0ZS1pY29uLWZvcmVncm91bmQtY29sb3I6d2hpdGU7LS1tYXQtc3RlcHBlci1oZWFkZXItZWRpdC1zdGF0ZS1pY29uLWJhY2tncm91bmQtY29sb3I6I2Y0NDMzNjstLW1hdC1zdGVwcGVyLWhlYWRlci1lZGl0LXN0YXRlLWljb24tZm9yZWdyb3VuZC1jb2xvcjp3aGl0ZX1odG1sey0tbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodDo3MnB4fWh0bWx7LS1tYXQtc3RlcHBlci1jb250YWluZXItdGV4dC1mb250OlJvYm90bywgc2Fucy1zZXJpZjstLW1hdC1zdGVwcGVyLWhlYWRlci1sYWJlbC10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXN0ZXBwZXItaGVhZGVyLWxhYmVsLXRleHQtc2l6ZToxNHB4Oy0tbWF0LXN0ZXBwZXItaGVhZGVyLWxhYmVsLXRleHQtd2VpZ2h0OjQwMDstLW1hdC1zdGVwcGVyLWhlYWRlci1lcnJvci1zdGF0ZS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LXNpemU6MTZweDstLW1hdC1zdGVwcGVyLWhlYWRlci1zZWxlY3RlZC1zdGF0ZS1sYWJlbC10ZXh0LXdlaWdodDo0MDB9aHRtbHstLW1hdC1zb3J0LWFycm93LWNvbG9yOiM3NTc1NzV9aHRtbHstLW1hdC10b29sYmFyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOndoaXRlc21va2U7LS1tYXQtdG9vbGJhci1jb250YWluZXItdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfS5tYXQtdG9vbGJhci5tYXQtcHJpbWFyeXstLW1hdC10b29sYmFyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjU7LS1tYXQtdG9vbGJhci1jb250YWluZXItdGV4dC1jb2xvcjp3aGl0ZX0ubWF0LXRvb2xiYXIubWF0LWFjY2VudHstLW1hdC10b29sYmFyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiNmZjQwODE7LS1tYXQtdG9vbGJhci1jb250YWluZXItdGV4dC1jb2xvcjp3aGl0ZX0ubWF0LXRvb2xiYXIubWF0LXdhcm57LS1tYXQtdG9vbGJhci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2Oy0tbWF0LXRvb2xiYXItY29udGFpbmVyLXRleHQtY29sb3I6d2hpdGV9aHRtbHstLW1hdC10b29sYmFyLXN0YW5kYXJkLWhlaWdodDo2NHB4Oy0tbWF0LXRvb2xiYXItbW9iaWxlLWhlaWdodDo1NnB4fWh0bWx7LS1tYXQtdG9vbGJhci10aXRsZS10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXRvb2xiYXItdGl0bGUtdGV4dC1saW5lLWhlaWdodDozMnB4Oy0tbWF0LXRvb2xiYXItdGl0bGUtdGV4dC1zaXplOjIwcHg7LS1tYXQtdG9vbGJhci10aXRsZS10ZXh0LXRyYWNraW5nOjAuMDEyNWVtOy0tbWF0LXRvb2xiYXItdGl0bGUtdGV4dC13ZWlnaHQ6NTAwfWh0bWx7LS1tYXQtdHJlZS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstLW1hdC10cmVlLW5vZGUtdGV4dC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpfWh0bWx7LS1tYXQtdHJlZS1ub2RlLW1pbi1oZWlnaHQ6NDhweH1odG1sey0tbWF0LXRyZWUtbm9kZS10ZXh0LWZvbnQ6Um9ib3RvLCBzYW5zLXNlcmlmOy0tbWF0LXRyZWUtbm9kZS10ZXh0LXNpemU6MTRweDstLW1hdC10cmVlLW5vZGUtdGV4dC13ZWlnaHQ6NDAwfS5tYXQtaDEsLm1hdC1oZWFkbGluZS01LC5tYXQtdHlwb2dyYXBoeSAubWF0LWgxLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTUsLm1hdC10eXBvZ3JhcGh5IGgxe2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyLC5tYXQtaGVhZGxpbmUtNiwubWF0LXR5cG9ncmFwaHkgLm1hdC1oMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1oZWFkbGluZS02LC5tYXQtdHlwb2dyYXBoeSBoMntmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMTI1ZW07bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJ0aXRsZS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWgzLC5tYXQtdHlwb2dyYXBoeSAubWF0LXN1YnRpdGxlLTEsLm1hdC10eXBvZ3JhcGh5IGgze2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwOTM3NWVtO21hcmdpbjowIDAgMTZweH0ubWF0LWg0LC5tYXQtYm9keS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWg0LC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHktMSwubWF0LXR5cG9ncmFwaHkgaDR7Zm9udDo0MDAgMTZweC8yNHB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDMxMjVlbTttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgLm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgaDV7Zm9udDo0MDAgY2FsYygxNHB4Ki44MykvMjBweCBSb2JvdG8sIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IC5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IGg2e2ZvbnQ6NDAwIGNhbGMoMTRweCouNjcpLzIwcHggUm9ib3RvLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nLC5tYXQtc3VidGl0bGUtMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LXN0cm9uZywubWF0LXR5cG9ncmFwaHkgLm1hdC1zdWJ0aXRsZS0ye2ZvbnQ6NTAwIDE0cHgvMjJweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwNzE0Mjg1NzFlbX0ubWF0LWJvZHksLm1hdC1ib2R5LTIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtYm9keSwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LTIsLm1hdC10eXBvZ3JhcGh5e2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAxNzg1NzE0MjllbX0ubWF0LWJvZHkgcCwubWF0LWJvZHktMiBwLC5tYXQtdHlwb2dyYXBoeSAubWF0LWJvZHkgcCwubWF0LXR5cG9ncmFwaHkgLm1hdC1ib2R5LTIgcCwubWF0LXR5cG9ncmFwaHkgcHttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbCwubWF0LWNhcHRpb24sLm1hdC10eXBvZ3JhcGh5IC5tYXQtc21hbGwsLm1hdC10eXBvZ3JhcGh5IC5tYXQtY2FwdGlvbntmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi4wMzMzMzMzMzMzZW19Lm1hdC1oZWFkbGluZS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTF7Zm9udDozMDAgOTZweC85NnB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMTU2MjVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1oZWFkbGluZS0yLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTJ7Zm9udDozMDAgNjBweC82MHB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotLjAwODMzMzMzMzNlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1oZWFkbGluZS0zLC5tYXQtdHlwb2dyYXBoeSAubWF0LWhlYWRsaW5lLTN7Zm9udDo0MDAgNDhweC81MHB4IFJvYm90bywgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtaGVhZGxpbmUtNCwubWF0LXR5cG9ncmFwaHkgLm1hdC1oZWFkbGluZS00e2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjAwNzM1Mjk0MTJlbTttYXJnaW46MCAwIDY0cHh9Il0sInNvdXJjZVJvb3QiOiIifQ== */@charset \"UTF-8\";\n/**\n * Colors used across the Navigator. Shared by the ATT&CK Website.\n * For each color-pair:\n * - \"color\" refers to the color itself\n * - \"on-color\" refers to the most readable text-color to appear on top of the color.\n * Note: some colors don't define on-colors. This is because, for these colors, they aren't intended to\n * appear with inner content. For example, \"link\" is only intended to be used for link text, which inherently\n * cannot have inner text.\n */\n/* You can add global styles to this file, and also import other style files */\n/* roboto-cyrillic-ext-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-cyrillic-ext-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-cyrillic-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* roboto-cyrillic-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-cyrillic-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-cyrillic-400-normal.woff') format(\"woff\");\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* roboto-greek-ext-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-greek-ext-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-greek-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+1F00-1FFF;\n}\n/* roboto-greek-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-greek-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-greek-400-normal.woff') format(\"woff\");\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* roboto-vietnamese-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-vietnamese-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-vietnamese-400-normal.woff') format(\"woff\");\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* roboto-latin-ext-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-latin-ext-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-latin-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* roboto-latin-400-normal */\n@font-face {\n font-family: \"Roboto\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-latin-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-latin-400-normal.woff') format(\"woff\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* roboto-mono-cyrillic-ext-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-mono-cyrillic-ext-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-mono-cyrillic-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* roboto-mono-cyrillic-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-mono-cyrillic-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-mono-cyrillic-400-normal.woff') format(\"woff\");\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* roboto-mono-greek-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-mono-greek-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-mono-greek-400-normal.woff') format(\"woff\");\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* roboto-mono-vietnamese-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-mono-vietnamese-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-mono-vietnamese-400-normal.woff') format(\"woff\");\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* roboto-mono-latin-ext-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-mono-latin-ext-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-mono-latin-ext-400-normal.woff') format(\"woff\");\n unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* roboto-mono-latin-400-normal */\n@font-face {\n font-family: \"Roboto Mono\";\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url('CVE2CAPEC/mitre/roboto-mono-latin-400-normal.woff2') format(\"woff2\"), url('CVE2CAPEC/mitre/roboto-mono-latin-400-normal.woff') format(\"woff\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/**\n * Colors used across the Navigator. Shared by the ATT&CK Website.\n * For each color-pair:\n * - \"color\" refers to the color itself\n * - \"on-color\" refers to the most readable text-color to appear on top of the color.\n * Note: some colors don't define on-colors. This is because, for these colors, they aren't intended to\n * appear with inner content. For example, \"link\" is only intended to be used for link text, which inherently\n * cannot have inner text.\n */\n@media print {\n @page {\n size: A3;\n margin: 0;\n }\n}\n@font-face {\n font-family: \"Material Icons\";\n font-style: normal;\n font-display: block;\n font-weight: 400;\n src: local(\"Material Icons\"), local(\"MaterialIcons-Regular\"), url('CVE2CAPEC/mitre/MaterialIcons-Regular.ttf') format(\"truetype\");\n}\n.material-icons {\n font-family: \"Material Icons\";\n font-weight: normal;\n font-style: normal;\n font-size: 24px; /* Preferred icon size */\n display: inline-block;\n line-height: 1;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: normal;\n white-space: nowrap;\n direction: ltr;\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n /* Support for IE. */\n font-feature-settings: \"liga\";\n}\n\n.text-deemphasis {\n color: #6b7279;\n font-size: 12px !important;\n letter-spacing: normal;\n}\n\nbody {\n margin: 0;\n overflow-y: scroll;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n}\n\n@media (prefers-color-scheme: dark) {\n .theme-use-system .svgcontainer {\n background-color: white;\n }\n}\n.theme-override-dark .svgcontainer {\n background-color: white;\n}\n\n.mdc-button, .mat-mdc-button-base {\n letter-spacing: normal !important;\n}\n\n.mat-dialog .mat-mdc-dialog-actions {\n justify-content: center;\n}\n.mat-dialog .mat-mdc-dialog-title {\n text-align: center;\n}\n.mat-dialog .mat-mdc-dialog-content {\n color: black !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-dialog .mat-mdc-dialog-content {\n color: white !important;\n }\n}\n.theme-override-dark .mat-dialog .mat-mdc-dialog-content {\n color: white !important;\n}\n\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mdc-dialog__surface {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mdc-dialog__surface {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mdc-dialog__title,\n .theme-use-system .mat-mdc-dialog-container .mdc-dialog__content {\n color: white !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mdc-dialog__title,\n.theme-override-dark .mat-mdc-dialog-container .mdc-dialog__content {\n color: white !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mat-mdc-button-base {\n border-color: #4c4c68;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mat-mdc-button-base {\n border-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .mat-mdc-button-base {\n color: white;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .mat-mdc-button-base {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .help-dialog h1 {\n border-color: white;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .help-dialog h1 {\n border-color: white;\n}\n.mat-mdc-dialog-container .content {\n overflow-y: scroll;\n max-height: 60vh;\n font-size: 11pt;\n}\n.mat-mdc-dialog-container .content p,\n.mat-mdc-dialog-container .content ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n}\n.mat-mdc-dialog-container .content code {\n color: black;\n padding: 1px 2px;\n word-break: break-word;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .content code {\n background-color: #1a1a23;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .content code {\n background-color: #1a1a23;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .content code {\n border-color: #ddd !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .content code {\n border-color: #ddd !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container .content code {\n color: white !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container .content code {\n color: white !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container a {\n color: #7588e8 !important;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container a {\n color: #7588e8 !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-mdc-dialog-container a:active,\n .theme-use-system .mat-mdc-dialog-container a:visited {\n color: #e847e8;\n }\n}\n.theme-override-dark .mat-mdc-dialog-container a:active,\n.theme-override-dark .mat-mdc-dialog-container a:visited {\n color: #e847e8;\n}\n.mat-mdc-dialog-container .top-button {\n display: inline;\n float: right;\n margin-top: 14px;\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */ /* Konqueror HTML */ /* Firefox */ /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome and Opera */\n}\n\n.controlsContainer {\n text-align: right;\n display: block;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer {\n background-color: #ddd;\n }\n}\n.theme-override-light .controlsContainer {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer {\n background-color: #2e2e3f;\n}\n@media print {\n .controlsContainer {\n display: none;\n }\n}\n.controlsContainer ul {\n margin: 0;\n padding: 0;\n}\n.controlsContainer .label .control-row-item + .control-row-item {\n margin-right: 6px;\n}\n.controlsContainer .control-sections > li {\n list-style: none;\n display: inline-block;\n border-left: 1px solid #c9c9c9;\n padding: 0 5px 0 5px;\n position: relative;\n}\n.controlsContainer .control-sections > li .section-label {\n font-size: 8pt;\n top: -12px;\n position: absolute;\n padding: 0 5px;\n border-radius: 2px 2px 0 0;\n text-align: center;\n cursor: default;\n -webkit-user-select: none;\n user-select: none;\n white-space: nowrap;\n z-index: 1;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n background-color: #ddd;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .section-label {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .section-label {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n color: #555;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .section-label {\n color: #555;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .section-label {\n color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .section-label {\n color: white;\n}\n.controlsContainer .control-sections > li .control-row-item {\n display: inline-block;\n position: relative;\n height: 34px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: black;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item > :not(.disabled) {\n color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: #aaaaaa;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: #aaaaaa;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item > .disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button {\n border-radius: 3px;\n padding: 5px;\n height: 24px;\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #d0d0d0;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #d0d0d0;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .control-row-button:hover {\n background-color: #4c4c68;\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button.dropdown::after {\n font-size: 5pt;\n content: \"\u25BC\";\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button span {\n vertical-align: middle;\n}\n.controlsContainer .control-sections > li .control-row-item .control-row-button .control-label {\n padding-right: 5px;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container {\n position: absolute;\n z-index: 100;\n width: max-content;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: white;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid black;\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid #4c4c68;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n border: 1px solid #4c4c68;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px rgba(0, 0, 0, 0.5);\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px rgba(0, 0, 0, 0.5);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px #2e2e3f;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container {\n box-shadow: 0px 10px 5px #2e2e3f;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.left {\n right: 0;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.inputfield {\n width: 150px;\n padding: 0px 10px 10px;\n z-index: 1000;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.inputfield .mat-mdc-form-field {\n width: 100%;\n}\n.controlsContainer .control-sections > li .control-row-item .dropdown-container.inputfield .mat-mdc-form-field:first-child {\n padding-top: 5px;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-floating-label {\n color: rgba(255, 255, 255, 0.9);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-floating-label {\n color: rgba(255, 255, 255, 0.9);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element,\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element::placeholder {\n color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element,\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element::placeholder {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element:disabled {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-input-element:disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mdc-line-ripple::before {\n border-bottom-color: white;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mdc-line-ripple::before {\n border-bottom-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n border-bottom-color: transparent;\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n border-bottom-color: transparent;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-value-text {\n color: rgba(255, 255, 255, 0.9);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-value-text {\n color: rgba(255, 255, 255, 0.9);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-arrow {\n color: rgba(255, 255, 255, 0.9);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .mat-mdc-select-arrow {\n color: rgba(255, 255, 255, 0.9);\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(0, 0, 0, 0.38);\n }\n}\n.theme-override-light .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(0, 0, 0, 0.38);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .controlsContainer .control-sections > li .control-row-item .dropdown-container .disabled-text {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.checkbox-custom {\n opacity: 0;\n position: absolute;\n}\n.checkbox-custom:disabled {\n cursor: default;\n}\n\n.checkbox-custom,\n.checkbox-custom-label {\n display: inline-block;\n vertical-align: middle;\n margin: 5px;\n cursor: pointer;\n}\n\n.checkbox-custom-label {\n position: relative;\n}\n.checkbox-custom-label.disabled {\n cursor: default;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom-label.disabled {\n color: rgba(0, 0, 0, 0.46);\n }\n}\n.theme-override-light .checkbox-custom-label.disabled {\n color: rgba(0, 0, 0, 0.46);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom-label.disabled {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .checkbox-custom-label.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.checkbox-custom + .checkbox-custom-label:before {\n content: \"\";\n background: #fff;\n border: 3px solid #ddd;\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 10px;\n padding: 2px;\n margin-right: 5px;\n text-align: center;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .checkbox-custom:checked + .checkbox-custom-label:before {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n background: #464dff;\n }\n}\n.theme-override-dark .checkbox-custom:checked + .checkbox-custom-label:before {\n background: #464dff;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px rgb(96, 197, 255);\n }\n}\n.theme-override-light .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #464dff;\n }\n}\n.theme-override-dark .checkbox-custom:checked + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #464dff;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #b0b0b0;\n }\n}\n.theme-override-light .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #b0b0b0;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #a3a3a3;\n }\n}\n.theme-override-dark .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n background: #a3a3a3;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #b0b0b0;\n }\n}\n.theme-override-light .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #b0b0b0;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #a3a3a3;\n }\n}\n.theme-override-dark .checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n box-shadow: inset 0px 0px 0px 1px #a3a3a3;\n}\n\n.dialog-custom .mat-mdc-dialog-container {\n padding: 0 !important;\n}\n\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-side.mat-drawer-end {\n border-left: none;\n }\n}\n.theme-override-dark .mat-drawer-side.mat-drawer-end {\n border-left: none;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .mat-drawer-inner-container {\n background-color: #f1f1f1;\n }\n}\n.theme-override-light .mat-drawer-inner-container {\n background-color: #f1f1f1;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container {\n background-color: #2e2e3f;\n }\n}\n.theme-override-dark .mat-drawer-inner-container {\n background-color: #2e2e3f;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container a {\n color: #7588e8;\n }\n}\n.theme-override-dark .mat-drawer-inner-container a {\n color: #7588e8;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container a:visited,\n .theme-use-system .mat-drawer-inner-container a:active {\n color: #e847e8;\n }\n}\n.theme-override-dark .mat-drawer-inner-container a:visited,\n.theme-override-dark .mat-drawer-inner-container a:active {\n color: #e847e8;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__leading,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__notch,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__trailing, .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__leading,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__notch,\n .theme-use-system .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__trailing {\n border-color: white !important;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__leading,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__notch,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field .mdc-notched-outline__trailing, .theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__leading,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__notch,\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-form-field:hover .mdc-notched-outline__trailing {\n border-color: white !important;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-card {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-card {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-card {\n color: white;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-card {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-expansion-panel .mat-expansion-panel-header,\n .theme-use-system .mat-drawer-inner-container .mat-expansion-panel-body {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-expansion-panel .mat-expansion-panel-header,\n.theme-override-dark .mat-drawer-inner-container .mat-expansion-panel-body {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-expansion-panel-header-title {\n color: white;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-expansion-panel-header-title {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-divider {\n border-top-color: #4c4c68;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-divider {\n border-top-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-button-base {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-button-base {\n background-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .mat-drawer-inner-container .mat-mdc-button-base {\n color: white;\n }\n}\n.theme-override-dark .mat-drawer-inner-container .mat-mdc-button-base {\n color: white;\n}\n\n.mat-mdc-dialog-container .markdown {\n padding: 25px;\n}\n\n.popover {\n position: absolute;\n border-radius: 4px !important;\n width: unset !important;\n}\n\n.mat-mdc-form-field .mdc-text-field--filled, .mat-mdc-form-field .mdc-text-field--filled:hover {\n background-color: transparent !important;\n}\n\n.hide-subscript .mat-mdc-form-field-subscript-wrapper {\n display: none !important;\n}\n\n.mat-mdc-floating-label, .mat-mdc-form-field-hint {\n letter-spacing: normal !important;\n}\n\n.mat-expansion-panel-body {\n padding-bottom: 24px !important;\n}\n\n.matrices {\n overflow-x: scroll;\n min-height: 50vh;\n border: 1px solid #ddd;\n transition: height ease-in-out 0.2s;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .matrices {\n background-color: #21212c;\n }\n}\n.theme-override-dark .matrices {\n background-color: #21212c;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .matrices {\n color: white;\n }\n}\n.theme-override-dark .matrices {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .matrices {\n border: none;\n }\n}\n.theme-override-dark .matrices {\n border: none;\n}\n.matrices .spinner {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 50vh;\n}\n.matrices .spinner mat-progress-spinner circle {\n stroke: #6b7279;\n}\n.matrices .matrices-columns {\n display: table;\n}\n.matrices .matrices-columns .matrix-column {\n display: table-cell;\n white-space: normal;\n padding: 10px;\n}\n@media print {\n .matrices .matrices-columns .matrix-column {\n padding: 0;\n }\n}\n.matrices .matrices-columns .matrix-column .matrix-name {\n text-align: center;\n padding-bottom: 5px;\n margin-bottom: 5px;\n font-size: 16px;\n border-bottom: 1px solid #ddd;\n}\n.matrices .matrices-columns .matrix-column + .matrix-column {\n border-left: 1px solid #ddd;\n}\n\n.colorpicker {\n width: 88px !important;\n align-items: center;\n text-align: center;\n}\n.colorpicker .color-block {\n cursor: pointer;\n margin: 2.5px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorpicker .color-block {\n border: 1px solid black;\n }\n}\n.theme-override-light .colorpicker .color-block {\n border: 1px solid black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorpicker .color-block {\n border: 1px solid rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorpicker .color-block {\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n.colorpicker .color-block.square {\n display: inline-block;\n width: 15px;\n height: 15px;\n}\n.colorpicker .color-block.wide {\n display: block;\n height: 15px;\n font-size: 10pt;\n color: gray;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorpicker .color-block.wide {\n color: rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorpicker .color-block.wide {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.colorSetup {\n font-size: 8pt;\n}\n.colorSetup .colorpicker {\n width: 10ex;\n}\n.colorSetup .gradient-section-label {\n font-weight: bold;\n padding: 4px;\n text-align: center;\n}\n.colorSetup .gradient-section-content {\n border-style: solid;\n border-width: 1px 0;\n text-align: left;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .gradient-section-content {\n border-color: black;\n }\n}\n.theme-override-light .colorSetup .gradient-section-content {\n border-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-section-content {\n border-color: white;\n }\n}\n.theme-override-dark .colorSetup .gradient-section-content {\n border-color: white;\n}\n.colorSetup .display-buttons {\n text-align: center;\n}\n.colorSetup .display-buttons .squarebutton {\n padding: 4px 0;\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .display-buttons .squarebutton {\n border: 1px solid #ddd;\n }\n}\n.theme-override-light .colorSetup .display-buttons .squarebutton {\n border: 1px solid #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .display-buttons .squarebutton {\n border: 1px solid rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorSetup .display-buttons .squarebutton {\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .display-buttons .squarebutton:hover {\n background: #f1f1f1;\n }\n}\n.theme-override-light .colorSetup .display-buttons .squarebutton:hover {\n background: #f1f1f1;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .display-buttons .squarebutton:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .colorSetup .display-buttons .squarebutton:hover {\n background: #464dff;\n}\n.colorSetup .display-buttons .squarebutton.gradient:hover {\n text-decoration: underline;\n}\n.colorSetup .display-buttons .presetsmenu {\n width: 90%;\n display: inline-block;\n}\n.colorSetup .gradient-controls table {\n padding: 0;\n margin: 0;\n border-collapse: collapse;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button {\n background-color: #1a1a23;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button {\n background-color: #1a1a23;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button {\n border: 1px solid rgba(255, 255, 255, 0.25);\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button {\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button {\n color: white;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button {\n color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td button:hover {\n background-color: black;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td button:hover {\n background-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td input {\n background-color: black;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td input {\n background-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table td input {\n color: white;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table td input {\n color: white;\n}\n.colorSetup .gradient-controls table td.buttons > div {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.colorSetup .gradient-controls table td .left,\n.colorSetup .gradient-controls table td .right {\n display: inline-block;\n}\n.colorSetup .gradient-controls table td .left {\n float: left;\n}\n.colorSetup .gradient-controls table td .right {\n text-align: left;\n}\n.colorSetup .gradient-controls table td .right select {\n width: 80px;\n}\n.colorSetup .gradient-controls table td.col2 {\n width: 45px;\n}\n.colorSetup .gradient-controls table td.col2 input[type=number] {\n width: 40px;\n}\n.colorSetup .gradient-controls table .minmax {\n text-align: center;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .colorSetup .gradient-controls table .minmax {\n background-color: #f1f1f1;\n }\n}\n.theme-override-light .colorSetup .gradient-controls table .minmax {\n background-color: #f1f1f1;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .colorSetup .gradient-controls table .minmax {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .colorSetup .gradient-controls table .minmax {\n background-color: #4c4c68;\n}\n.colorSetup .gradient-controls .addcolor {\n width: 100%;\n}\n\n.select_behavior {\n padding: 5px;\n text-align: left;\n}\n\n.control-section-header {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n height: 30px;\n}\n\n.control-section-tabs {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n.control-section-tabs .section-label {\n cursor: pointer;\n padding: 6px 24px;\n border-style: solid;\n border-width: 1px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label {\n color: black;\n }\n}\n.theme-override-light .control-section-tabs .section-label {\n color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label {\n color: white;\n }\n}\n.theme-override-dark .control-section-tabs .section-label {\n color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label {\n border-color: black;\n }\n}\n.theme-override-light .control-section-tabs .section-label {\n border-color: black;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label {\n border-color: white;\n }\n}\n.theme-override-dark .control-section-tabs .section-label {\n border-color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label.active {\n background-color: white;\n }\n}\n.theme-override-light .control-section-tabs .section-label.active {\n background-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label.active {\n background-color: #364370;\n }\n}\n.theme-override-dark .control-section-tabs .section-label.active {\n background-color: #364370;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .control-section-tabs .section-label.active {\n border-color: #464DFF;\n }\n}\n.theme-override-light .control-section-tabs .section-label.active {\n border-color: #464DFF;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .section-label.active {\n border-color: #464DFF;\n }\n}\n.theme-override-dark .control-section-tabs .section-label.active {\n border-color: #464DFF;\n}\n.control-section-tabs .control-bar-help .control-help-button {\n text-align: center;\n width: 4ex;\n height: 3ex;\n padding: 5px;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .control-help-button svg {\n fill: white;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .control-help-button svg {\n fill: white;\n}\n.control-section-tabs .control-bar-help .control-help-button:hover svg {\n fill: #505050;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .control-help-button:hover svg {\n fill: white;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .control-help-button:hover svg {\n fill: white;\n}\n.control-section-tabs .control-bar-help .dropdown-container {\n position: absolute;\n right: 16px;\n display: flex;\n justify-content: center;\n flex-flow: column;\n background: white;\n border-style: solid;\n border-color: #ddd;\n border-width: 1px 0 1px 1px;\n box-shadow: 2px 1px 1px #ddd;\n border-radius: 0 0 5px 5px;\n padding: 10px;\n top: 40px;\n z-index: 9;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n background: #3f3f56;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n background: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n border-color: #3f3f56;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n border-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n box-shadow: 2px 1px 1px #2e2e3f;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n box-shadow: 2px 1px 1px #2e2e3f;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container {\n color: #7588e8;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container {\n color: #7588e8;\n}\n.control-section-tabs .control-bar-help .dropdown-container button {\n border: none;\n background-color: transparent;\n text-align: right;\n padding-bottom: 5px;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .control-section-tabs .control-bar-help .dropdown-container button {\n color: white;\n }\n}\n.theme-override-dark .control-section-tabs .control-bar-help .dropdown-container button {\n color: white;\n}\n.control-section-tabs .control-bar-help .dropdown-container button:hover {\n text-decoration: underline;\n cursor: pointer;\n}\n\n.mat-mdc-select :focus {\n color: #63961c;\n}\n\n.filters {\n padding: 4px;\n}\n.filters .filter {\n text-align: left;\n}\n.filters .filter:not(:first-child) {\n margin-top: 4px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .filters .filter .filter-option:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .filters .filter .filter-option:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .filters .filter .filter-option:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .filters .filter .filter-option:hover {\n background: #464dff;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .warning {\n color: #b30000;\n }\n}\n.theme-override-light .warning {\n color: #b30000;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .warning {\n color: #ffab0f;\n }\n}\n.theme-override-dark .warning {\n color: #ffab0f;\n}\n\n.warning-label {\n vertical-align: super;\n}\n\n.multiselect {\n text-align: center;\n}\n.multiselect .multiselect-grouping .multiselect-grouping-label {\n padding: 4px;\n font-weight: bold;\n}\n.multiselect .multiselect-grouping .multiselect-list {\n text-align: left;\n border-top: 1px solid black;\n border-bottom: 1px solid black;\n height: 200px;\n overflow-y: scroll;\n}\n.multiselect .multiselect-grouping .multiselect-list table {\n border-collapse: collapse;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .multiselect .multiselect-grouping .multiselect-list .multiselect-list-item:hover {\n background: #464dff;\n}\n.multiselect .multiselect-grouping .multiselect-list .multiselect-list-item .multiselect-list-item-label {\n width: 25ex;\n}\n.multiselect .multiselect-grouping .multiselect-list .multiselect-list-item.selected:not(:hover) {\n background: #ddd;\n}\n\n.search {\n text-align: center;\n}\n.search .search-list {\n margin-top: 2px;\n text-align: left;\n border-top: 1px solid black;\n border-bottom: 1px solid black;\n height: 300px;\n overflow-y: scroll;\n}\n.search .search-list table {\n border-collapse: collapse;\n width: 325px;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .search .search-list .search-list-item:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .search .search-list .search-list-item:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .search .search-list .search-list-item:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .search .search-list .search-list-item:hover {\n background: #464dff;\n}\n.search .search-list .search-list-item .search-list-item-label {\n width: 25ex;\n}\n.search .search-list .search-list-item.selected:not(:hover) {\n background: #ddd;\n}\n\n@media (prefers-color-scheme: light) {\n .theme-use-system .search-button:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .search-button:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .search-button:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .search-button:hover {\n background: #464dff;\n}\n\n.button {\n border: none;\n padding: 4px 10px;\n text-align: center;\n margin: 2px 1px;\n transition: 0.3s;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .button {\n background-color: #ddd;\n }\n}\n.theme-override-light .button {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .button {\n background-color: #4c4c68;\n }\n}\n.theme-override-dark .button {\n background-color: #4c4c68;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .button {\n color: white;\n }\n}\n.theme-override-dark .button {\n color: white;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .button:hover {\n background-color: #b8b8b8;\n }\n}\n.theme-override-light .button:hover {\n background-color: #b8b8b8;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .button:hover {\n background-color: #7588e8;\n }\n}\n.theme-override-dark .button:hover {\n background-color: #7588e8;\n}\n\n.deselectNumber {\n font-size: 5pt;\n bottom: 2px;\n right: 4px;\n position: absolute;\n text-align: right;\n}\n\n.legend {\n z-index: 999;\n position: fixed;\n bottom: 0;\n right: 0;\n width: 300px;\n height: -moz-fit-content;\n height: fit-content;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legend {\n background-color: white;\n }\n}\n.theme-override-light .legend {\n background-color: white;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legend {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .legend {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legend {\n border-left: 1px solid #ddd;\n }\n}\n.theme-override-light .legend {\n border-left: 1px solid #ddd;\n}\n@media print {\n .legend {\n display: none;\n }\n}\n.legend .itemArea {\n position: static;\n overflow-y: scroll;\n margin: 30px 8px 8px;\n height: 270px;\n width: 100%;\n overflow-x: hidden;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legend .itemArea {\n color: white;\n }\n}\n.theme-override-dark .legend .itemArea {\n color: white;\n}\n.legend .itemArea .item + .item {\n margin-top: 6px;\n}\n.legend .itemArea .item {\n width: 100%;\n padding-left: 5px;\n}\n.legend .itemArea .item .label {\n margin-left: 10px;\n width: 180px;\n}\n\n.legendBar {\n z-index: 999;\n position: fixed;\n bottom: 0;\n right: 0;\n width: 300px;\n height: 30px;\n transition: 0.3s;\n display: flex;\n align-items: center;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legendBar {\n background-color: #ddd;\n }\n}\n.theme-override-light .legendBar {\n background-color: #ddd;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legendBar {\n background-color: #3f3f56;\n }\n}\n.theme-override-dark .legendBar {\n background-color: #3f3f56;\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legendBar {\n color: white;\n }\n}\n.theme-override-dark .legendBar {\n color: white;\n}\n@media print {\n .legendBar {\n display: none;\n }\n}\n.legendBar .title {\n flex: 1;\n text-align: center;\n font-size: 14px;\n}\n.legendBar:hover {\n cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n .theme-use-system .legendBar:hover {\n background: rgb(96, 197, 255);\n }\n}\n.theme-override-light .legendBar:hover {\n background: rgb(96, 197, 255);\n}\n@media (prefers-color-scheme: dark) {\n .theme-use-system .legendBar:hover {\n background: #464dff;\n }\n}\n.theme-override-dark .legendBar:hover {\n background: #464dff;\n}\n\n.layout {\n width: 100px;\n text-align: left;\n}\n.layout select {\n width: 100%;\n}\n.layout .section {\n padding: 10px;\n}\n.layout .section + .section {\n border-top: 1px solid #f1f1f1;\n}\n.layout .subsection {\n padding-left: 5px;\n}\n.layout .subsection .inner-dropdown-container {\n margin: 5px;\n}\n\n.list-input {\n width: 250px !important;\n overflow-y: auto;\n max-height: 50vh;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9hcHAvZGF0YXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLi9zcmMvY29sb3JzLnNjc3MiLCJ3ZWJwYWNrOi8vLi9zcmMvc3R5bGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2Uvcm9ib3RvL2luZGV4LmNzcyIsIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9AZm9udHNvdXJjZS9yb2JvdG8tbW9uby9pbmRleC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDU2hCOzs7Ozs7OztFQUFBO0FDVEEsOEVBQUE7QUNBQSxtQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwySEFBQTtFQUNBLHNGQUFBO0FIYUY7QUdWQSwrQkFBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtSEFBQTtFQUNBLG9FQUFBO0FIWUY7QUdUQSxnQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxSEFBQTtFQUNBLDBCQUFBO0FIV0Y7QUdSQSw0QkFBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSw2R0FBQTtFQUNBLHNGQUFBO0FIVUY7QUdQQSxpQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1SEFBQTtFQUNBLHVLQUFBO0FIU0Y7QUdOQSxnQ0FBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxSEFBQTtFQUNBLGdKQUFBO0FIUUY7QUdMQSw0QkFBQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Es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LFdDSGlDO0VGME4zQztBQUNGO0FDck5JO0VBR0ksV0NUcUM7QUY4TjdDO0FDek1RO0VBSEo7SUFJUSxZQ3RCd0Q7RUZrT2xFO0FBQ0Y7QUMxTUk7RUFHSSxZQzVCNEQ7QUZzT3BFO0FFek5RO0VBQ0kscUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUYyTlo7QUN6T1E7RUFISjtJQUlRLFlDZ0JxQztFRjROL0M7QUFDRjtBQzFPSTtFQUdJLFlDVXlDO0FGZ09qRDtBQzlOUTtFQUhKO0lBSVEsWUNINEM7RUZvT3REO0FBQ0Y7QUMvTkk7RUFHSSxZQ1RnRDtBRndPeEQ7QUN6UFE7RUFISjtJQUlRLGNDb0JxQztFRndPL0M7QUFDRjtBQzFQSTtFQUdJLGNDY3lDO0FGNE9qRDtBQzlPUTtFQUhKO0lBSVEsZ0NDQzhDO0VGZ1B4RDtBQUNGO0FDL09JO0VBR0ksZ0NDTGtEO0FGb1AxRDtBRWpQWTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0FGbVBoQjtBQy9RUTtFQUhKO0lBSVEseUJDOEJvRDtFRm9QOUQ7QUFDRjtBQ2hSSTtFQUdJLHlCQ3dCd0Q7QUZ3UGhFO0FDcFFRO0VBSEo7SUFJUSx5QkNXbUY7RUY0UDdGO0FBQ0Y7QUNyUUk7RUFHSSx5QkNLdUY7QUZnUS9GO0FFN1BnQjtFQUNJLGNBQUE7RUFDQSxZQUFBO0FGK1BwQjtBRTdQZ0I7RUFDSSxzQkFBQTtBRitQcEI7QUU3UGdCO0VBQ0ksa0JBQUE7QUYrUHBCO0FFMVBZO0VBU0ksa0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUZvUGhCO0FDOVNRO0VBSEo7SUFJUSx1QkMrQ2dEO0VGa1ExRDtBQUNGO0FDL1NJO0VBR0ksdUJDeUNvRDtBRnNRNUQ7QUNuU1E7RUFISjtJQUlRLHlCQzRCdUQ7RUYwUWpFO0FBQ0Y7QUNwU0k7RUFHSSx5QkNzQjJEO0FGOFFuRTtBQzlUUTtFQUhKO0lBSVEsdUJDZ0RzQztFRmlSaEQ7QUFDRjtBQy9USTtFQUdJLHVCQzBDMEM7QUZxUmxEO0FDblRRO0VBSEo7SUFJUSx5QkM2QnVEO0VGeVJqRTtBQUNGO0FDcFRJO0VBR0kseUJDdUIyRDtBRjZSbkU7QUM5VVE7RUFISjtJQUlRLDJDQ2lEMEM7RUZnU3BEO0FBQ0Y7QUMvVUk7RUFHSSwyQ0MyQzhDO0FGb1N0RDtBQ25VUTtFQUhKO0lBSVEsZ0NDOEIyRTtFRndTckY7QUFDRjtBQ3BVSTtFQUdJLGdDQ3dCK0U7QUY0U3ZGO0FFMVNnQjtFQUNJLFFBQUE7QUY0U3BCO0FFclNnQjtFQUNJLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7QUZ1U3BCO0FFclNvQjtFQUNJLFdBQUE7QUZ1U3hCO0FFclN3QjtFQUNJLGdCQUFBO0FGdVM1QjtBQ3pWUTtFQUhKO0lBSVEsK0JDc0RtRDtFRnNTN0Q7QUFDRjtBQzFWSTtFQUdJLCtCQ2dEdUQ7QUYwUy9EO0FDaldRO0VBSEo7O0lBSVEsWUMyRG1EO0VGMFM3RDtBQUNGO0FDbldJOztFQUdJLFlDcUR1RDtBRitTL0Q7QUMzV1E7RUFISjtJQUlRLGdDQzhEbUQ7RUZnVDdEO0FBQ0Y7QUM1V0k7RUFHSSxnQ0N3RHVEO0FGb1QvRDtBQ25YUTtFQUhKO0lBSVEsMEJDaUVpRTtFRnFUM0U7QUFDRjtBQ3BYSTtFQUdJLDBCQzJEcUU7QUZ5VDdFO0FDM1hRO0VBSEo7SUFJUSxnQ0NvRWlFO0VGMFQzRTtBQUNGO0FDNVhJO0VBR0ksZ0NDOERxRTtBRjhUN0U7QUNuWVE7RUFISjtJQUlRLHNIQ3VFWTtFRitUdEI7QUFDRjtBQ3BZSTtFQUdJLHNIQ2lFZ0I7QUZtVXhCO0FDM1lRO0VBSEo7SUFJUSwrQkMyRW1EO0VGbVU3RDtBQUNGO0FDNVlJO0VBR0ksK0JDcUV1RDtBRnVVL0Q7QUNuWlE7RUFISjtJQUlRLCtCQzhFbUQ7RUZ3VTdEO0FBQ0Y7QUNwWkk7RUFHSSwrQkN3RXVEO0FGNFUvRDtBQzlhUTtFQUhKO0lBSVEsMEJDcUd5QztFRjRVbkQ7QUFDRjtBQy9hSTtFQUdJLDBCQytGNkM7QUZnVnJEO0FDbmFRO0VBSEo7SUFJUSxnQ0NrRjhEO0VGb1Z4RTtBQUNGO0FDcGFJO0VBR0ksZ0NDNEVrRTtBRndWMUU7O0FFN1VBO0VBQ0ksVUFBQTtFQUNBLGtCQUFBO0FGZ1ZKO0FFOVVJO0VBQ0ksZUFBQTtBRmdWUjs7QUU1VUE7O0VBRUkscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0FGK1VKOztBRTVVQTtFQUNJLGtCQUFBO0FGK1VKO0FFN1VJO0VBRUksZUFBQTtBRjhVUjtBQ3JkUTtFQUhKO0lBSVEsMEJDcUk2QjtFRm1WdkM7QUFDRjtBQ3RkSTtFQUdJLDBCQytIaUM7QUZ1VnpDO0FDMWNRO0VBSEo7SUFJUSxnQ0NrSGtEO0VGMlY1RDtBQUNGO0FDM2NJO0VBR0ksZ0NDNEdzRDtBRitWOUQ7O0FFMVZBO0VBQ0ksV0FBQTtFQUNBLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBRjZWSjs7QUNsZlE7RUFISjtJQUlRLDZCQ3dKOEI7RUY4VnhDO0FBQ0Y7QUNwZkk7RUFHSSw2QkNrSmtDO0FGa1cxQztBQ3hlUTtFQUhKO0lBSVEsbUJDcUkyRDtFRnNXckU7QUFDRjtBQ3plSTtFQUdJLG1CQytIK0Q7QUYwV3ZFO0FDbmdCUTtFQUhKO0lBSVEsbURDeUo4QjtFRjZXeEM7QUFDRjtBQ3BnQkk7RUFHSSxtRENtSmtDO0FGaVgxQztBQ3hmUTtFQUhKO0lBSVEseUNDc0lpRjtFRnFYM0Y7QUFDRjtBQ3pmSTtFQUdJLHlDQ2dJcUY7QUZ5WDdGOztBQ25oQlE7RUFISjtJQUlRLG1CQzZKOEI7RUYwWHhDO0FBQ0Y7QUNyaEJJO0VBR0ksbUJDdUprQztBRjhYMUM7QUN6Z0JRO0VBSEo7SUFJUSxtQkMwSTZFO0VGa1l2RjtBQUNGO0FDMWdCSTtFQUdJLG1CQ29JaUY7QUZzWXpGO0FDcGlCUTtFQUhKO0lBSVEseUNDZ0tKO0VGdVlOO0FBQ0Y7QUNyaUJJO0VBR0kseUNDMEpBO0FGMllSO0FDemhCUTtFQUhKO0lBSVEseUNDOElKO0VGOFlOO0FBQ0Y7QUMxaEJJO0VBR0kseUNDd0lBO0FGa1pSOztBRTNZQTtFQUNJLHFCQUFBO0FGOFlKOztBQ3JpQlE7RUFISjtJQUlRLGlCQzBKeUM7RUYrWW5EO0FBQ0Y7QUN2aUJJO0VBR0ksaUJDb0o2QztBRm1ackQ7O0FDamtCUTtFQUhKO0lBSVEseUJDaUxvQztFRm9aOUM7QUFDRjtBQ25rQkk7RUFHSSx5QkMyS3dDO0FGd1poRDtBQ3ZqQlE7RUFISjtJQUlRLHlCQzhKd0Q7RUY0WmxFO0FBQ0Y7QUN4akJJO0VBR0kseUJDd0o0RDtBRmdhcEU7QUMvakJRO0VBSEo7SUFJUSxjQ2lLdUM7RUZpYWpEO0FBQ0Y7QUNoa0JJO0VBR0ksY0MySjJDO0FGcWFuRDtBQ3ZrQlE7RUFISjs7SUFJUSxjQ3FLdUM7RUZzYWpEO0FBQ0Y7QUN6a0JJOztFQUdJLGNDK0oyQztBRjJhbkQ7QUNqbEJRO0VBSEo7Ozs7O0lBSVEsOEJDMktrRDtFRjZhNUQ7QUFDRjtBQ3RsQkk7Ozs7O0VBR0ksOEJDcUtzRDtBRnFiOUQ7QUNqbUJRO0VBSEo7SUFJUSx5QkNnTGtEO0VGb2I1RDtBQUNGO0FDbG1CSTtFQUdJLHlCQzBLc0Q7QUZ3YjlEO0FDem1CUTtFQUhKO0lBSVEsWUNpTHVDO0VGMmJqRDtBQUNGO0FDMW1CSTtFQUdJLFlDMksyQztBRitibkQ7QUNqbkJRO0VBSEo7O0lBSVEseUJDc0xrRDtFRitiNUQ7QUFDRjtBQ25uQkk7O0VBR0kseUJDZ0xzRDtBRm9jOUQ7QUMzbkJRO0VBSEo7SUFJUSxZQzBMdUM7RUZvY2pEO0FBQ0Y7QUM1bkJJO0VBR0ksWUNvTDJDO0FGd2NuRDtBQ25vQlE7RUFISjtJQUlRLHlCQzhMa0Q7RUZ3YzVEO0FBQ0Y7QUNwb0JJO0VBR0kseUJDd0xzRDtBRjRjOUQ7QUMzb0JRO0VBSEo7SUFJUSx5QkNrTWtEO0VGNGM1RDtBQUNGO0FDNW9CSTtFQUdJLHlCQzRMc0Q7QUZnZDlEO0FDbnBCUTtFQUhKO0lBSVEsWUNtTXVDO0VGbWRqRDtBQUNGO0FDcHBCSTtFQUdJLFlDNkwyQztBRnVkbkQ7O0FFbmRBO0VBQ0ksYUFBQTtBRnNkSjs7QUVsZEE7RUFFSSxrQkFBQTtF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QSxRQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFJQSxtQkFBQTtBQTJwQ0o7QUNuN0NRO0VBSEo7SUFJUSxzQkQwUW9DO0VBNHFDOUM7QUFDRjtBQ3A3Q0k7RUFHSSxzQkRvUXdDO0FBZ3JDaEQ7QUN4NkNRO0VBSEo7SUFJUSx5QkR1UHVEO0VBb3JDakU7QUFDRjtBQ3o2Q0k7RUFHSSx5QkRpUDJEO0FBd3JDbkU7QUNoN0NRO0VBSEo7SUFJUSxZRHdQbUM7RUEyckM3QztBQUNGO0FDajdDSTtFQUdJLFlEa1B1QztBQStyQy9DO0FBdHJDSTtFQVhKO0lBWVEsYUFBQTtFQXlyQ047QUFDRjtBQXRyQ0k7RUFDSSxPQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0FBd3JDUjtBQXJyQ0k7RUFFSSxlQUFBO0FBc3JDUjtBQ3g5Q1E7RUFISjtJQUlRLDZCRGdTa0M7RUEyckM1QztBQUNGO0FDejlDSTtFQUdJLDZCRDBSc0M7QUErckM5QztBQzc4Q1E7RUFISjtJQUlRLG1CRDZRK0Q7RUFtc0N6RTtBQUNGO0FDOThDSTtFQUdJLG1CRHVRbUU7QUF1c0MzRTs7QUFsc0NBO0VBQ0ksWUFBQTtFQUNBLGdCQUFBO0FBcXNDSjtBQW5zQ0k7RUFDSSxXQUFBO0FBcXNDUjtBQWxzQ0k7RUFDSSxhQUFBO0FBb3NDUjtBQWxzQ1E7RUFDSSw2QkFBQTtBQW9zQ1o7QUFoc0NJO0VBQ0ksaUJBQUE7QUFrc0NSO0FBaHNDUTtFQUNJLFdBQUE7QUFrc0NaOztBQTdyQ0E7RUFDSSx1QkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUFnc0NKIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vY29sb3JzLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzLnNjc3MnO1xuXG4kY2VsbFNpemU6IDE1cHg7XG5cbi8vICBfICBfIF9fXyBfX18gXyAgXyBfICAgIF9fXyBfX18gXyAgXyBfX19fXyBfX18gXyAgXyAgX19fXG4vLyB8IHx8IHxfIF8vIF9ffCB8fCB8IHwgIHxfIF8vIF9ffCB8fCB8XyAgIF98XyBffCBcXHwgfC8gX198XG4vLyB8IF9fIHx8IHwgKF8gfCBfXyB8IHxfXyB8IHwgKF8gfCBfXyB8IHwgfCAgfCB8fCAuYCB8IChfIHxcbi8vIHxffHxffF9fX1xcX19ffF98fF98X19fX3xfX19cXF9fX3xffHxffCB8X3wgfF9fX3xffFxcX3xcXF9fX3xcblxuLy8gIF9fICBfXyAgIF8gICBfX18gXyAgXyAgIF9fX19fIF8gICBfX18gXyAgICBfX19cbi8vIHwgIFxcLyAgfCAvX1xcIHxfIF98IFxcfCB8IHxfICAgXy9fXFwgfCBfICkgfCAgfCBfX3xcbi8vIHwgfFxcL3wgfC8gXyBcXCB8IHx8IC5gIHwgICB8IHwvIF8gXFx8IF8gXFwgfF9ffCBffFxuLy8gfF98ICB8Xy9fLyBcXF9cXF9fX3xffFxcX3wgICB8Xy9fLyBcXF9cXF9fXy9fX19ffF9fX3xcblxuLy8gY29udGVudCBvZiBlYWNoIHRhYlxuLm1hdHJpY2VzIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBsaWdodGVuKGNvbG9yKGRhcmstMSksIDMlKSk7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JvcmRlcicsIG5vbmUpO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICBtaW4taGVpZ2h0OiA1MHZoO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yKHBhbmVsLWRhcmspO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCBlYXNlLWluLW91dCAwLjJzO1xuXG4gICAgLnNwaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiA1MHZoO1xuXG4gICAgICAgIG1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSB7XG4gICAgICAgICAgICBzdHJva2U6IG9uLWNvbG9yLWRlZW1waGFzaXMoYm9keSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0cmljZXMtY29sdW1ucyB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgICAgIC5tYXRyaXgtY29sdW1uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdHJpeC1uYW1lIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIC5tYXRyaXgtY29sdW1uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGNvbG9yKHBhbmVsLWRhcmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29sb3JwaWNrZXIge1xuICAgIHdpZHRoOiAoJGNlbGxTaXplICsgNSArIDIpICogNCAhaW1wb3J0YW50OyAvL292ZXJyaWRlIHByZXNldCB3aWR0aFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmNvbG9yLWJsb2NrIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JvcmRlcicsIDFweCBzb2xpZCBibGFjaywgMXB4IHNvbGlkIGNvbG9yKGRhcmstZGlzYWJsZWQpKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW46IDIuNXB4O1xuXG4gICAgICAgICYuc3F1YXJlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY2VsbFNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjZWxsU2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYud2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1kaXNhYmxlZCkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjZWxsU2l6ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4od2hpdGUsIDUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vY29sb3IgY29udHJvbHNcbi5jb2xvclNldHVwIHtcbiAgICBmb250LXNpemU6IDhwdDtcblxuICAgIC5jb2xvcnBpY2tlciB7XG4gICAgICAgIHdpZHRoOiAxMGV4O1xuICAgIH1cblxuICAgIC5ncmFkaWVudC1zZWN0aW9uLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5ncmFkaWVudC1zZWN0aW9uLWNvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYm9yZGVyLWNvbG9yJywgYmxhY2ssIHdoaXRlKTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAuZGlzcGxheS1idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5zcXVhcmVidXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JvcmRlcicsIDFweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKSwgMXB4IHNvbGlkIGNvbG9yKGRhcmstZGlzYWJsZWQpKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZCcsIGNvbG9yKHBhbmVsLWxpZ2h0KSwgY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvcikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmdyYWRpZW50OmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLy9zaW5jZSBiYWNrZ3JvdW5kIGNvbG9yIHdvbid0IGJlIHNlZW4gb24gZ3JhZGllbnQgYnV0dG9uc1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByZXNldHNtZW51IHtcbiAgICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JhZGllbnQtY29udHJvbHMge1xuICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKGRhcmstMSkpO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JvcmRlcicsIDFweCBzb2xpZCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCB3aGl0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBibGFjayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYmFja2dyb3VuZC1jb2xvcicsIGJsYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIHdoaXRlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmJ1dHRvbnMgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubGVmdCxcbiAgICAgICAgICAgICAgICAucmlnaHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucmlnaHQge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuY29sMiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0NXB4O1xuXG4gICAgICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9J251bWJlciddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWlubWF4IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWxpZ2h0KSwgY29sb3IoZGFyay00KSk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFkZGNvbG9yIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VsZWN0X2JlaGF2aW9yIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNvbnRyb2wtc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBcbiAgICBoZWlnaHQ6IDMwcHg7XG4gIH1cbiAgXG4gIC5jb250cm9sLXNlY3Rpb24tdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIFxuICAgIC5zZWN0aW9uLWxhYmVsIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBcbiAgICAgIHBhZGRpbmc6IDZweCAyNHB4O1xuICAgIFxuICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJjb2xvclwiLCBibGFjaywgd2hpdGUpO1xuICAgIFxuICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJib3JkZXItY29sb3JcIiwgYmxhY2ssIHdoaXRlKTtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJiYWNrZ3JvdW5kLWNvbG9yXCIsIHdoaXRlLCAjMzY0MzcwKTtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoXCJib3JkZXItY29sb3JcIiwgIzQ2NERGRiwgIzQ2NERGRik7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAuY29udHJvbC1iYXItaGVscCB7XG4gICAgICAuY29udHJvbC1oZWxwLWJ1dHRvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDRleDtcbiAgICAgICAgaGVpZ2h0OiAzZXg7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KFwiZmlsbFwiLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciBzdmcge1xuICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seShcImZpbGxcIiwgb24tY29sb3IoZGFyaykpO1xuICAgICAgICAgIGZpbGw6ICM1MDUwNTA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KFwiYmFja2dyb3VuZFwiLCBjb2xvcihkYXJrLTMpKTtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KFwiYm9yZGVyLWNvbG9yXCIsIGNvbG9yKGRhcmstMykpO1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoXCJib3gtc2hhZG93XCIsIDJweCAxcHggMXB4IGNvbG9yKGRhcmstMikpO1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoXCJjb2xvclwiLCBjb2xvcihkYXJrLWxpbmspKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDFweCAxcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDJweCAxcHggMXB4ICNkZGQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA1cHggNXB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICB0b3A6IDQwcHg7XG4gICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoXCJjb2xvclwiLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbn1cblxuLm1hdC1tZGMtc2VsZWN0IHtcbiAgICA6Zm9jdXMge1xuICAgICAgICBjb2xvcjogIzYzOTYxYztcbiAgICB9XG59XG5cbi5maWx0ZXJzIHtcbiAgICBwYWRkaW5nOiA0cHg7XG5cbiAgICAuZmlsdGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWx0ZXItb3B0aW9uIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kJywgY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi53YXJuaW5nIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignY29sb3InLCAjYjMwMDAwLCAjZmZhYjBmKTtcbn1cblxuLndhcm5pbmctbGFiZWwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbn1cblxuLm11bHRpc2VsZWN0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXVsdGlzZWxlY3QtZ3JvdXBpbmcge1xuICAgICAgICAubXVsdGlzZWxlY3QtZ3JvdXBpbmctbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXVsdGlzZWxlY3QtbGlzdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgICAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tdWx0aXNlbGVjdC1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZCcsIGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWNvbG9yKSwgY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvcikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5tdWx0aXNlbGVjdC1saXN0LWl0ZW0tbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjVleDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNlbGVjdGVkOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3IocGFuZWwtZGFyayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VhcmNoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuc2VhcmNoLWxpc3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG5cbiAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgICAgIHdpZHRoOiAzMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2gtbGlzdC1pdGVtIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kJywgY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zZWFyY2gtbGlzdC1pdGVtLWxhYmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zZWxlY3RlZDpub3QoOmhvdmVyKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3IocGFuZWwtZGFyayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtYnV0dG9uIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQnLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1jb2xvciksIGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWRhcmstY29sb3IpKTtcbiAgICB9XG59XG5cbi5idXR0b24ge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kLWNvbG9yJywgY29sb3IocGFuZWwtZGFyayksIGNvbG9yKGRhcmstNCkpO1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDJweCAxcHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKGJ1dHRvbi1kYXJrKSwgY29sb3IoZGFyay1saW5rKSk7XG4gICAgfVxufVxuXG4uZGVzZWxlY3ROdW1iZXIge1xuICAgIGZvbnQtc2l6ZTogNXB0O1xuICAgIGJvdHRvbTogMnB4O1xuICAgIHJpZ2h0OiA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubGVnZW5kIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIHdoaXRlLCBjb2xvcihkYXJrLTMpKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1saWdodC1vbmx5KCdib3JkZXItbGVmdCcsIDFweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKSk7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuaXRlbUFyZWEge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykpO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIG1hcmdpbjogMzBweCA4cHggOHB4O1xuICAgICAgICBoZWlnaHQ6IDI3MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgIC5pdGVtICsgLml0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubGVnZW5kQmFyIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWRhcmspLCBjb2xvcihkYXJrLTMpKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykpO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAudGl0bGUge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQnLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1jb2xvciksIGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWRhcmstY29sb3IpKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLmxheW91dCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICAgICAgJiArIC5zZWN0aW9uIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcihwYW5lbC1saWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3Vic2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuXG4gICAgICAgIC5pbm5lci1kcm9wZG93bi1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5saXN0LWlucHV0IHtcbiAgICB3aWR0aDogMjUwcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDUwdmg7XG59XG4iLCIkY29sdW1uLWhvdmVyLWNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7XG4kZGlzYWJsZWQtY29sb3I6IGRhcmtlbigkY29sdW1uLWhvdmVyLWNvbG9yLCAyMCUpO1xuXG4vLyBBVFQmQ0sgQnJhbmQgY29sb3JzXG4kYXR0YWNrLWNvbG9yczogKFxuICAgIGF0dGFjay1vcmFuZ2U6ICNjNjNmMWYsXG4gICAgYXR0YWNrLWJsdWU6ICMwNjJmNGYsXG4pO1xuXG4vKipcbiAqIENvbG9ycyB1c2VkIGFjcm9zcyB0aGUgTmF2aWdhdG9yLiBTaGFyZWQgYnkgdGhlIEFUVCZDSyBXZWJzaXRlLlxuICogRm9yIGVhY2ggY29sb3ItcGFpcjpcbiAqICAgLSBcImNvbG9yXCIgcmVmZXJzIHRvIHRoZSBjb2xvciBpdHNlbGZcbiAqICAgLSBcIm9uLWNvbG9yXCIgcmVmZXJzIHRvIHRoZSBtb3N0IHJlYWRhYmxlIHRleHQtY29sb3IgdG8gYXBwZWFyIG9uIHRvcCBvZiB0aGUgY29sb3IuXG4gKiBOb3RlOiBzb21lIGNvbG9ycyBkb24ndCBkZWZpbmUgb24tY29sb3JzLiBUaGlzIGlzIGJlY2F1c2UsIGZvciB0aGVzZSBjb2xvcnMsIHRoZXkgYXJlbid0IGludGVuZGVkIHRvXG4gKiBhcHBlYXIgd2l0aCBpbm5lciBjb250ZW50LiBGb3IgZXhhbXBsZSwgXCJsaW5rXCIgaXMgb25seSBpbnRlbmRlZCB0byBiZSB1c2VkIGZvciBsaW5rIHRleHQsIHdoaWNoIGluaGVyZW50bHlcbiAqIGNhbm5vdCBoYXZlIGlubmVyIHRleHQuXG4gKi9cbiRjb2xvcnM6IChcbiAgICBwcmltYXJ5OiAoXG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRhdHRhY2stY29sb3JzLCBhdHRhY2stb3JhbmdlKSxcbiAgICAgICAgb24tY29sb3I6IHdoaXRlLFxuICAgICksXG4gICAgLy91c2VkIGZvciBoZWFkZXIgYW5kIHNvbWUgbmF2IGVsZW1lbnRzXG4gICAgc2Vjb25kYXJ5OlxuICAgICAgICAoXG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkYXR0YWNrLWNvbG9ycywgYXR0YWNrLWJsdWUpLFxuICAgICAgICAgICAgb24tY29sb3I6IHdoaXRlLFxuICAgICAgICApLFxuICAgIC8vdXNlZCBmb3IgZm9vdGVyIGFuZCBzb21lIGJ1dHRvbnNcbiAgICBib2R5OlxuICAgICAgICAoXG4gICAgICAgICAgICBjb2xvcjogd2hpdGUsXG4gICAgICAgICAgICBvbi1jb2xvcjogIzM5NDM0YyxcbiAgICAgICAgKSxcbiAgICAvL3ByaW1hcnkgcGFnZSBib2R5XG4gICAgbGlnaHQ6XG4gICAgICAgIChcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSxcbiAgICAgICAgICAgIG9uLWNvbG9yOiAjMzk0MzRjLFxuICAgICAgICApLFxuICAgIGRhcms6IChcbiAgICAgICAgY29sb3I6ICMwODA4MGIsXG4gICAgICAgIG9uLWNvbG9yOiB3aGl0ZSxcbiAgICApLFxuICAgIC8vIGRhcmsgdGhlbWUgY29sb3JzIHZhcmlhdGlvbnMgMC0zIChmcm9tIGRhcmtlc3QgdG8gbGlnaHRlc3QpXG4gICAgZGFyay0xOlxuICAgICAgICAoXG4gICAgICAgICAgICBjb2xvcjogIzFhMWEyMyxcbiAgICAgICAgICAgIG9uLWNvbG9yOiB3aGl0ZSxcbiAgICAgICAgKSxcbiAgICBkYXJrLTI6IChcbiAgICAgICAgY29sb3I6ICMyZTJlM2YsXG4gICAgICAgIG9uLWNvbG9yOiAjZmE2MzQxLFxuICAgICksXG4gICAgLy8gYWNjZW50IGRhcmsgY29sb3Igc2NoZW1lICh1c2VkIGZvciA6aG92ZXIgc2VsZWN0b3JzKVxuICAgIGRhcmstMzpcbiAgICAgICAgKFxuICAgICAgICAgICAgY29sb3I6ICMzZjNmNTYsXG4gICAgICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgICAgICksXG4gICAgZGFyay00OiAoXG4gICAgICAgIGNvbG9yOiAjNGM0YzY4LFxuICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgKSxcbiAgICBkYXJrLWRpc2FibGVkOiAoXG4gICAgICAgIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAyNSUpLFxuICAgICksXG4gICAgZGFyay1saW5rOiAoXG4gICAgICAgIGNvbG9yOiAjNzU4OGU4LFxuICAgICksXG4gICAgZGFyay1saW5rLWFjdGl2ZTogKFxuICAgICAgICBjb2xvcjogI2U4NDdlOCxcbiAgICApLFxuICAgIGxpbms6IChcbiAgICAgICAgY29sb3I6ICM0ZjdjYWMsXG4gICAgKSxcbiAgICAvLyBoeXBlcmxpbmtzXG4gICAgbWF0cml4LWhlYWRlcjpcbiAgICAgICAgKFxuICAgICAgICAgICAgY29sb3I6IGdyYXksXG4gICAgICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgICAgICksXG4gICAgLy8gY29sb3Igb2YgbWF0cml4IGhlYWRlcnNcbiAgICBjZWxsLWhpZ2hsaWdodC1jb2xvcjpcbiAgICAgICAgKFxuICAgICAgICAgICAgY29sb3I6IHJnYig5NiwgMTk3LCAyNTUpLFxuICAgICAgICApLFxuICAgIGNlbGwtaGlnaGxpZ2h0LWRhcmstY29sb3I6IChcbiAgICAgICAgY29sb3I6ICM0NjRkZmYsXG4gICAgKSxcbiAgICBob3Zlci1jZWxsLWZvbnQtY29sb3I6IChcbiAgICAgICAgY29sb3I6IHJnYigwLCAwLCAwKSxcbiAgICApLFxuICAgIHBhbmVsLWRhcms6IChcbiAgICAgICAgY29sb3I6ICNkZGQsXG4gICAgKSxcbiAgICBwYW5lbC1saWdodDogKFxuICAgICAgICBjb2xvcjogbGlnaHRlbigjZGRkLCA4JSksXG4gICAgKSxcbiAgICB0YWItdGV4dC1jb2xvcjogKFxuICAgICAgICBjb2xvcjogIzU1NSxcbiAgICApLFxuICAgIGJ1dHRvbi1kYXJrOiAoXG4gICAgICAgIGNvbG9yOiAjYjhiOGI4LFxuICAgICksXG4gICAgLy9ib290c3RyYXAgY29sb3JzXG4gICAgYm9vdHN0cmFwLXByaW1hcnk6XG4gICAgICAgIChcbiAgICAgICAgICAgIGNvbG9yOiAjNDI4YmNhLFxuICAgICAgICAgICAgb24tY29sb3I6IHdoaXRlLFxuICAgICAgICApLFxuICAgIGJvb3RzdHJhcC1zdWNjZXNzOiAoXG4gICAgICAgIGNvbG9yOiAjNWNiODVjLFxuICAgICAgICBvbi1jb2xvcjogd2hpdGUsXG4gICAgKSxcbiAgICBib290c3RyYXAtZGFuZ2VyOiAoXG4gICAgICAgIGNvbG9yOiAjZDk1MzRmLFxuICAgICAgICBvbi1jb2xvcjogYmxhY2ssXG4gICAgKSxcbiAgICBib290c3RyYXAtd2FybmluZzogKFxuICAgICAgICBjb2xvcjogI2YwYWQ0ZSxcbiAgICAgICAgb24tY29sb3I6IGJsYWNrLFxuICAgICksXG4gICAgYm9vdHN0cmFwLWluZm86IChcbiAgICAgICAgY29sb3I6ICM1YmMwZGUsXG4gICAgICAgIG9uLWNvbG9yOiB3aGl0ZSxcbiAgICApLFxuKTtcblxuLy8gYWNjZXNzb3IgaGVscGVyIGZvciAkY29sb3JzLiBHZXRzIHRoZSBjb2xvciBvZiB0aGUgbmFtZWQgcGFpclxuQGZ1bmN0aW9uIGNvbG9yKCRuYW1lKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJG5hbWUpLCAnY29sb3InKTtcbn1cblxuLy8gZ2l2ZW4gYSBjb2xvciBuYW1lLCBnZXQgYW4gYWx0ZXJuYXRlIHZlcnNpb24gb2YgdGhlIGNvbG9yLCBmb3IgcGF0dGVybmluZ1xuLy8gaWYgdGhlIGJhc2UgY29sb3IgaXMgZGFyaywgdGhlIGFsdGVybmF0ZSB3aWxsIGJlIHNsaWdodGx5IGxpZ2h0ZXIuXG4vLyBpZiB0aGUgYmFzZSBjb2xvciBpcyBsaWdodCwgdGhlIGFsdGVybmF0ZSB3aWxsIGJlIHNsaWdodGx5IGRhcmtlci5cbi8vIGNvbnRyYXN0LCBhbiBvcHRpb25hbCBhcmd1bWVudCwgbXVsdGlwbGllcyB0byBjcmVhdGUgYSBtb3JlIGRpc3RhbnQgb3Igc2ltaWxhciBjb2xvci4gPjEgaXMgbW9yZSBkaXN0YW50LCA8MSBpcyBtb3JlIHNpbWlsYXIuXG5AZnVuY3Rpb24gY29sb3ItYWx0ZXJuYXRlKCRuYW1lLCAkY29udHJhc3Q6IDEpIHtcbiAgICBAcmV0dXJuIG1peChpbnZlcnQoY29sb3IoJG5hbWUpKSwgY29sb3IoJG5hbWUpLCAkd2VpZ2h0OiAkY29udHJhc3QgKiA1JSk7XG59XG5cbi8vIGFjY2Vzc29yIGhlbHBlciBmb3IgJGNvbG9ycy4gR2V0cyB0aGUgb24tY29sb3Igb2YgdGhlIG5hbWVkIHBhaXJcbkBmdW5jdGlvbiBvbi1jb2xvcigkbmFtZSkge1xuICAgIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsICRuYW1lKSwgJ29uLWNvbG9yJyk7XG59XG5cbi8vIGdpdmVuIGEgY29sb3ItbmFtZSwgZ2V0IGFuIGVtcGhhc2l6ZWQgdmVyc2lvbiBvZiB0aGUgb24tY29sb3IuXG4vLyBUaGUgZW1waGFzaXplZCBvbi1jb2xvciBpcyBsZXNzIGxpa2UgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AZnVuY3Rpb24gb24tY29sb3ItZW1waGFzaXMoJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1peChpbnZlcnQoY29sb3IoJG5hbWUpKSwgb24tY29sb3IoJG5hbWUpKTtcbn1cbi8vIGdpdmVuIGEgY29sb3ItbmFtZSwgZ2V0IGFuIGRlZW1waGFzaXplZCB2ZXJzaW9uIG9mIHRoZSBvbi1jb2xvci5cbi8vIFRoZSBkZWVtcGhhc2l6ZWQgb24tY29sb3IgaXMgbW9yZSBsaWtlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQGZ1bmN0aW9uIG9uLWNvbG9yLWRlZW1waGFzaXMoJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1peChjb2xvcigkbmFtZSksIG9uLWNvbG9yKCRuYW1lKSwgMjUlKTtcbn1cblxuLy8gZ2l2ZW4gYSBjb2xvciBuYW1lLCBjb21wdXRlIGEgYm9yZGVyIGNvbG9yIGZvciB0aGUgY29sb3JcbkBmdW5jdGlvbiBib3JkZXItY29sb3IoJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1peChpbnZlcnQoY29sb3IoJG5hbWUpKSwgY29sb3IoJG5hbWUpLCAxMi41JSk7XG4gICAgLy8gQHJldHVybiByZ2JhKGludmVydChjb2xvcigkbmFtZSkpLCAwLjEyNSk7XG59XG5cbi8vIElNUE9SVEFOVCBVU0FHRSBOT1RFOlxuLy8gdG8gdXNlIGFkYXB0aXZlIGNvbG9ycywgeW91IE1VU1QgZGlzYWJsZSB2aWV3IGVuY2Fwc3VsYXRpb24gb24gdGhlIGNvbXBvbmVudFxuLy8geW91J3JlIGFwcGx5aW5nIHRoZSBzdHlsZXMgd2l0aGluLiBPdGhlcndpc2UgYW5jZXN0b3IgY2xhc3NlcyBjYW5ub3QgYmUgYXNzZXNzZWRcbi8vIGJ5IHRoZSBtaXhpbnMgdG8gZGV0ZXJtaW5lIHRoZSBhcHAgdGhlbWUgY29uZmlndXJhdGlvbi5cblxuLy8vIGFzc2lnbiB0aGUgcHJvcGVydHkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIGluIHRoZSBsaWdodCBhbmQgZGFyayB0aGVtZXNcbi8vLyBAcGFyYW0ge3Byb3BlcnR5fSAkcHJvcGVydHkgdGhlIHByb3BlcnR5IHlvdSB3YW50IHRvIHNldCB0aGUgdmFsdWUgb2Zcbi8vLyBAcGFyYW0ge3ZhbHVlfSAkbGlnaHQtdmFsdWUgdGhlIHZhbHVlIHRvIGFzc2lnbiB3aGVuIGluIHRoZSBsaWdodCB0aGVtZVxuLy8vIEBwYXJhbSB7dmFsdWV9ICRkYXJrLXZhbHVlIHRoZSB2YWx1ZSB0byBhc3NpZ24gd2hlbiBpbiB0aGUgZGFyayB0aGVtZVxuQG1peGluIGFkYXB0aXZlLWNvbG9yKCRwcm9wZXJ0eSwgJGxpZ2h0LXZhbHVlLCAkZGFyay12YWx1ZSkge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWxpZ2h0LW9ubHkoJHByb3BlcnR5LCAkbGlnaHQtdmFsdWUpO1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgkcHJvcGVydHksICRkYXJrLXZhbHVlKTtcbn1cblxuLy8vIGFzc2lnbiB0aGUgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUgb25seSB3aGVuIGluIHRoZSBsaWdodCB0aGVtZVxuLy8vIEBwYXJhbSB7cHJvcGVydHl9ICRwcm9wZXJ0eSB0aGUgcHJvcGVydHkgeW91IHdhbnQgdG8gc2V0IHRoZSB2YWx1ZSBvZlxuLy8vIEBwYXJhbSB7dmFsdWV9ICRsaWdodC12YWx1ZSB0aGUgdmFsdWUgdG8gYXNzaWduIHdoZW4gaW4gdGhlIGxpZ2h0IHRoZW1lXG5AbWl4aW4gYWRhcHRpdmUtY29sb3ItbGlnaHQtb25seSgkcHJvcGVydHksICRsaWdodC12YWx1ZSkge1xuICAgIC50aGVtZS11c2Utc3lzdGVtICYge1xuICAgICAgICAvLyB3aGVuIHRoZSBhbmNlc3RvciBjbGFzcyBzaG93cyB0aGF0IHRoZSBhcHAgaXMgY29uZmlndXJlZCB0byB1c2UgdGhlIHN5c3RlbSB0aGVtZSxcbiAgICAgICAgLy8gdXNlIGEgbWVkaWEgcXVlcnkgdG8gYXNzaWduIHRoZSBsaWdodCB2YWx1ZVxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkge1xuICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkbGlnaHQtdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRoZW1lLW92ZXJyaWRlLWxpZ2h0ICYge1xuICAgICAgICAvLyB3aGVuIHRoZSBhbmNlc3RvciBjbGFzcyBzaG93cyB0aGF0IHRoZSBhcHAgaXMgY29uZmlndXJlZCB0byB1c2UgdGhlIGxpZ2h0IHRoZW1lLFxuICAgICAgICAvLyBhc3NpZ24gdGhlIGxpZ2h0IHZhbHVlXG4gICAgICAgICN7JHByb3BlcnR5fTogJGxpZ2h0LXZhbHVlO1xuICAgIH1cbn1cblxuLy8vIGFzc2lnbiB0aGUgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUgb25seSB3aGVuIGluIHRoZSBkYXJrIHRoZW1lXG4vLy8gQHBhcmFtIHtwcm9wZXJ0eX0gJHByb3BlcnR5IHRoZSBwcm9wZXJ0eSB5b3Ugd2FudCB0byBzZXQgdGhlIHZhbHVlIG9mXG4vLy8gQHBhcmFtIHt2YWx1ZX0gJGxpZ2h0LXZhbHVlIHRoZSB2YWx1ZSB0byBhc3NpZ24gd2hlbiBpbiB0aGUgbGlnaHQgdGhlbWVcbi8vLyBAcGFyYW0ge3ZhbHVlfSAkZGFyay12YWx1ZSB0aGUgdmFsdWUgdG8gYXNzaWduIHdoZW4gaW4gdGhlIGRhcmsgdGhlbWVcbkBtaXhpbiBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJHByb3BlcnR5LCAkZGFyay12YWx1ZSkge1xuICAgIC50aGVtZS11c2Utc3lzdGVtICYge1xuICAgICAgICAvLyB3aGVuIHRoZSBhbmNlc3RvciBjbGFzcyBzaG93cyB0aGF0IHRoZSBhcHAgaXMgY29uZmlndXJlZCB0byB1c2UgdGhlIHN5c3RlbSB0aGVtZSxcbiAgICAgICAgLy8gdXNlIGEgbWVkaWEgcXVlcnkgdG8gYXNzaWduIHRoZSBkYXJrIHZhbHVlXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJGRhcmstdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRoZW1lLW92ZXJyaWRlLWRhcmsgJiB7XG4gICAgICAgIC8vIHdoZW4gdGhlIGFuY2VzdG9yIGNsYXNzIHNob3dzIHRoYXQgdGhlIGFwcCBpcyBjb25maWd1cmVkIHRvIHVzZSB0aGUgZGFyayB0aGVtZSxcbiAgICAgICAgLy8gYXNzaWduIHRoZSBkYXJrIHZhbHVlXG4gICAgICAgICN7JHByb3BlcnR5fTogJGRhcmstdmFsdWU7XG4gICAgfVxufVxuIiwiLyogWW91IGNhbiBhZGQgZ2xvYmFsIHN0eWxlcyB0byB0aGlzIGZpbGUsIGFuZCBhbHNvIGltcG9ydCBvdGhlciBzdHlsZSBmaWxlcyAqL1xuQGltcG9ydCAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJlYnVpbHQtdGhlbWVzL2luZGlnby1waW5rLmNzcyc7XG5AaW1wb3J0ICdAZm9udHNvdXJjZS9yb2JvdG8nO1xuQGltcG9ydCAnQGZvbnRzb3VyY2Uvcm9ib3RvLW1vbm8nO1xuQGltcG9ydCAnY29sb3JzLnNjc3MnO1xuXG5AbWVkaWEgcHJpbnQge1xuICAgIEBwYWdlIHtcbiAgICAgICAgc2l6ZTogQTM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LWRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOlxuICAgICAgICBsb2NhbCgnTWF0ZXJpYWwgSWNvbnMnKSxcbiAgICAgICAgbG9jYWwoJ01hdGVyaWFsSWNvbnMtUmVndWxhcicpLFxuICAgICAgICB1cmwoYXNzZXRzL2ljb25zL01hdGVyaWFsSWNvbnMtUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cblxuLm1hdGVyaWFsLWljb25zIHtcbiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDI0cHg7IC8qIFByZWZlcnJlZCBpY29uIHNpemUgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGRpcmVjdGlvbjogbHRyO1xuXG4gICAgLyogU3VwcG9ydCBmb3IgYWxsIFdlYktpdCBicm93c2Vycy4gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAvKiBTdXBwb3J0IGZvciBTYWZhcmkgYW5kIENocm9tZS4gKi9cbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXG4gICAgLyogU3VwcG9ydCBmb3IgRmlyZWZveC4gKi9cbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gICAgLyogU3VwcG9ydCBmb3IgSUUuICovXG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG59XG5cbi50ZXh0LWRlZW1waGFzaXMge1xuICAgIGNvbG9yOiBvbi1jb2xvci1kZWVtcGhhc2lzKGJvZHkpO1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG59XG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbn1cblxuLnN2Z2NvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdiYWNrZ3JvdW5kLWNvbG9yJywgd2hpdGUpO1xufVxuXG4ubWRjLWJ1dHRvbiwgLm1hdC1tZGMtYnV0dG9uLWJhc2Uge1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLm1hdC1kaWFsb2cge1xuICAgIC5tYXQtbWRjLWRpYWxvZy1hY3Rpb25zIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5tYXQtbWRjLWRpYWxvZy10aXRsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLm1hdC1tZGMtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspICFpbXBvcnRhbnQpO1xuICAgIH1cbn1cblxuLm1hdC1tZGMtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBjb2xvcihkYXJrLTIpKTtcbiAgICB9XG4gICAgLm1kYy1kaWFsb2dfX3RpdGxlLFxuICAgIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspICFpbXBvcnRhbnQpO1xuICAgIH1cbiAgICAubWF0LW1kYy1idXR0b24tYmFzZSB7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWNvbG9yJywgY29sb3IoZGFyay00KSk7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgfVxuXG4gICAgLmhlbHAtZGlhbG9nIGgxIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdib3JkZXItY29sb3InLCBvbi1jb2xvcihkYXJrLTEpKTtcbiAgICB9XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB0O1xuXG4gICAgICAgIHAsXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMWVtO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBjb2xvcihkYXJrLTEpKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWNvbG9yJywgY29sb3IocGFuZWwtZGFyaykgIWltcG9ydGFudCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykgIWltcG9ydGFudCk7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcHggMnB4O1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1saW5rKSAhaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBhOmFjdGl2ZSxcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1saW5rLWFjdGl2ZSkpO1xuICAgIH1cblxuICAgIC50b3AtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgfVxufVxuXG4ubm9zZWxlY3Qge1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgLyogaU9TIFNhZmFyaSAqL1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIFNhZmFyaSAqL1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTsgLyogS29ucXVlcm9yIEhUTUwgKi9cbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJbnRlcm5ldCBFeHBsb3Jlci9FZGdlICovXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLyogTm9uLXByZWZpeGVkIHZlcnNpb24sIGN1cnJlbnRseVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgYnkgQ2hyb21lIGFuZCBPcGVyYSAqL1xufVxuXG4vLyAgIF9fXyBfX18gIF8gIF8gX19fX18gX19fICBfX18gIF8gICAgX19fXG4vLyAgLyBfXy8gXyBcXHwgXFx8IHxfICAgX3wgXyBcXC8gXyBcXHwgfCAgLyBfX3xcbi8vIHwgKF98IChfKSB8IC5gIHwgfCB8IHwgICAvIChfKSB8IHxfX1xcX18gXFxcbi8vICBcXF9fX1xcX19fL3xffFxcX3wgfF98IHxffF9cXFxcX19fL3xfX19ffF9fXy9cblxuLy8gcGFuZWwgd2l0aCBjb250cm9sc1xuLmNvbnRyb2xzQ29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWRhcmspLCBjb2xvcihkYXJrLTIpKTtcblxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmxhYmVse1xuICAgICAgICAuY29udHJvbC1yb3ctaXRlbSArIC5jb250cm9sLXJvdy1pdGVte1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udHJvbC1zZWN0aW9ucyA+IGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAvLyAmOm5vdCg6bGFzdC1jaGlsZCl7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgZGFya2VuKGNvbG9yKHBhbmVsLWRhcmspLCA4JSk7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4IDAgNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLy8gbGFiZWwgZm9yIGEgc2VjdGlvbiBvZiBjb250cm9scywgZS5nIGxheWVyIGNvbnRyb2xzIG9yIHRlY2huaXF1ZSBjb250cm9sc1xuICAgICAgICAuc2VjdGlvbi1sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWRhcmspLCBjb2xvcihkYXJrLTIpKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdjb2xvcicsIGNvbG9yKHRhYi10ZXh0LWNvbG9yKSwgb24tY29sb3IoZGFyaykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiA4cHQ7XG4gICAgICAgICAgICB0b3A6IC0xMnB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udHJvbC1yb3ctaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDM0cHg7XG5cbiAgICAgICAgICAgICYgPiA6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdjb2xvcicsIGJsYWNrLCB3aGl0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiAuZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdjb2xvcicsICNhYWFhYWEsIHJnYigyNTUgMjU1IDI1NSAvIDI1JSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udHJvbC1yb3ctYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQtY29sb3InLCBkYXJrZW4oY29sb3IocGFuZWwtZGFyayksIDUlKSwgY29sb3IoZGFyay00KSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDVwdDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ8OiwpbCvCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNwYW57XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZHJvcGRvd24gY29udHJvbHMgY29udGFpbmVyXG4gICAgICAgICAgICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIHdoaXRlLCBjb2xvcihkYXJrLTIpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYm9yZGVyJywgMXB4IHNvbGlkIGJsYWNrLCAxcHggc29saWQgY29sb3IoZGFyay00KSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JveC1zaGFkb3cnLCAwcHggMTBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjUpLCAwcHggMTBweCA1cHggY29sb3IoZGFyay0yKSk7XG5cbiAgICAgICAgICAgICAgICAmLmxlZnQge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAwOyAvL2RyYXcgb24gdG9wIG9mIG90aGVyIGNvbnRyb2xzXG4gICAgICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgJi5pbnB1dGZpZWxkIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggMTBweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5tYXQtbWRjLWZvcm0tZmllbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubWF0LW1kYy1pbnB1dC1lbGVtZW50LFxuICAgICAgICAgICAgICAgIC5tYXQtbWRjLWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIG9uLWNvbG9yKGRhcmspKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5tZGMtbGluZS1yaXBwbGU6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWJvdHRvbS1jb2xvcicsIG9uLWNvbG9yKGRhcmspKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWRjLWxpbmUtcmlwcGxlOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JvcmRlci1ib3R0b20tY29sb3InLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seShcbiAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtc2VsZWN0LXZhbHVlLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1hdC1tZGMtc2VsZWN0LWFycm93IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmRpc2FibGVkLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignY29sb3InLCByZ2JhKDAsIDAsIDAsIDAuMzgpLCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDaGVja2JveCBTdHlsaW5nIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi5jaGVja2JveC1jdXN0b20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbi5jaGVja2JveC1jdXN0b20sXG4uY2hlY2tib3gtY3VzdG9tLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVja2JveC1jdXN0b20tbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignY29sb3InLCByZ2JhKDAsIDAsIDAsIDAuNDYpLCBjb2xvcihkYXJrLWRpc2FibGVkKSk7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbi5jaGVja2JveC1jdXN0b20gKyAuY2hlY2tib3gtY3VzdG9tLWxhYmVsOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDNweCBzb2xpZCBjb2xvcihwYW5lbC1kYXJrKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNoZWNrYm94LWN1c3RvbTpjaGVja2VkICsgLmNoZWNrYm94LWN1c3RvbS1sYWJlbDpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yKCdiYWNrZ3JvdW5kJywgY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSk7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JveC1zaGFkb3cnLCBpbnNldCAwcHggMHB4IDBweCAxcHggY29sb3IoY2VsbC1oaWdobGlnaHQtY29sb3IpLCBpbnNldCAwcHggMHB4IDBweCAxcHggY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvcikpO1xufVxuXG4uY2hlY2tib3gtY3VzdG9tOmNoZWNrZWQ6ZGlzYWJsZWQgKyAuY2hlY2tib3gtY3VzdG9tLWxhYmVsOmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3IoJ2JhY2tncm91bmQnLCBkZXNhdHVyYXRlKGNvbG9yKGNlbGwtaGlnaGxpZ2h0LWNvbG9yKSwgMTAwJSksIGRlc2F0dXJhdGUoY29sb3IoY2VsbC1oaWdobGlnaHQtZGFyay1jb2xvciksIDEwMCUpKTtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcihcbiAgICAgICAgJ2JveC1zaGFkb3cnLFxuICAgICAgICBpbnNldCAwcHggMHB4IDBweCAxcHggZGVzYXR1cmF0ZShjb2xvcihjZWxsLWhpZ2hsaWdodC1jb2xvciksIDEwMCUpLFxuICAgICAgICBpbnNldCAwcHggMHB4IDBweCAxcHggZGVzYXR1cmF0ZShjb2xvcihjZWxsLWhpZ2hsaWdodC1kYXJrLWNvbG9yKSwgMTAwJSlcbiAgICApO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gRGlhbG9nIFN0eWxpbmcgLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uZGlhbG9nLWN1c3RvbSAubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWxlZnQnLCBub25lKTtcbn1cblxuLm1hdC1kcmF3ZXItaW5uZXItY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvcignYmFja2dyb3VuZC1jb2xvcicsIGNvbG9yKHBhbmVsLWxpZ2h0KSwgY29sb3IoZGFyay0yKSk7XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdjb2xvcicsIGNvbG9yKGRhcmstbGluaykpO1xuICAgIH1cbiAgICBhOnZpc2l0ZWQsXG4gICAgYTphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgY29sb3IoZGFyay1saW5rLWFjdGl2ZSkpO1xuICAgIH1cbiAgICAubWF0LW1kYy1mb3JtLWZpZWxkLCAubWF0LW1kYy1mb3JtLWZpZWxkOmhvdmVyIHtcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLWNvbG9yJywgb24tY29sb3IoZGFyaykgIWltcG9ydGFudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LW1kYy1jYXJkIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdiYWNrZ3JvdW5kLWNvbG9yJywgY29sb3IoZGFyay0zKSk7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgfVxuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLFxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2JhY2tncm91bmQtY29sb3InLCBjb2xvcihkYXJrLTMpKTtcbiAgICB9XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBhZGFwdGl2ZS1jb2xvci1kYXJrLW9ubHkoJ2NvbG9yJywgb24tY29sb3IoZGFyaykpO1xuICAgIH1cblxuICAgIC5tYXQtZGl2aWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnYm9yZGVyLXRvcC1jb2xvcicsIGNvbG9yKGRhcmstNCkpO1xuICAgIH1cblxuICAgIC5tYXQtbWRjLWJ1dHRvbi1iYXNlIHtcbiAgICAgICAgQGluY2x1ZGUgYWRhcHRpdmUtY29sb3ItZGFyay1vbmx5KCdiYWNrZ3JvdW5kLWNvbG9yJywgY29sb3IoZGFyay00KSk7XG4gICAgICAgIEBpbmNsdWRlIGFkYXB0aXZlLWNvbG9yLWRhcmstb25seSgnY29sb3InLCBvbi1jb2xvcihkYXJrKSk7XG4gICAgfVxufVxuXG4ubWF0LW1kYy1kaWFsb2ctY29udGFpbmVyIC5tYXJrZG93biB7XG4gICAgcGFkZGluZzogMjVweDtcbn1cblxuLy8gcGF0Y2ggcG9wb3ZlciBzdHlsZVxuLnBvcG92ZXIge1xuICAgIC8vcG9zaXRpb25pbmcgYmVjYXVzZSB3ZSBkaWRuJ3QgaW1wb3J0IGJvb3RzdHJhcFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyBhZGQgYm9yZGVyIHJhZGl1c1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICAgIC8vZG9uJ3QgZm9yY2UgMjByZW0gd2lkdGgsIGNvbmZvcm0gdG8gY29udGVudCBvZiBwb3BvdmVyXG4gICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi8vIGZvcm0gZmllbGQgc3R5bGluZ1xuLm1hdC1tZGMtZm9ybS1maWVsZCB7XG4gICAgLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQsIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB9XG59XG4uaGlkZS1zdWJzY3JpcHQge1xuICAgIC5tYXQtbWRjLWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuLm1hdC1tZGMtZmxvYXRpbmctbGFiZWwsIC5tYXQtbWRjLWZvcm0tZmllbGQtaGludCB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4vLyBleHBhbnNpb24gcGFuZWwgc3R5bGluZ1xuLm1hdC1leHBhbnNpb24tcGFuZWwtYm9keSB7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbn0iLCIvKiByb2JvdG8tY3lyaWxsaWMtZXh0LTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tY3lyaWxsaWMtZXh0LTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLFUrMUM4MC0xQzg4LFUrMjBCNCxVKzJERTAtMkRGRixVK0E2NDAtQTY5RixVK0ZFMkUtRkUyRjtcbn1cblxuLyogcm9ib3RvLWN5cmlsbGljLTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1jeXJpbGxpYy00MDAtbm9ybWFsLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksIHVybCguL2ZpbGVzL3JvYm90by1jeXJpbGxpYy00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsVSswNDAwLTA0NUYsVSswNDkwLTA0OTEsVSswNEIwLTA0QjEsVSsyMTE2O1xufVxuXG4vKiByb2JvdG8tZ3JlZWstZXh0LTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1ncmVlay1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tZ3JlZWstZXh0LTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGO1xufVxuXG4vKiByb2JvdG8tZ3JlZWstNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4vZmlsZXMvcm9ib3RvLWdyZWVrLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLWdyZWVrLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LFUrMDM3QS0wMzdGLFUrMDM4NC0wMzhBLFUrMDM4QyxVKzAzOEUtMDNBMSxVKzAzQTMtMDNGRjtcbn1cblxuLyogcm9ib3RvLXZpZXRuYW1lc2UtNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4vZmlsZXMvcm9ib3RvLXZpZXRuYW1lc2UtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tdmlldG5hbWVzZS00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMyxVKzAxMTAtMDExMSxVKzAxMjgtMDEyOSxVKzAxNjgtMDE2OSxVKzAxQTAtMDFBMSxVKzAxQUYtMDFCMCxVKzAzMDAtMDMwMSxVKzAzMDMtMDMwNCxVKzAzMDgtMDMwOSxVKzAzMjMsVSswMzI5LFUrMUVBMC0xRUY5LFUrMjBBQjtcbn1cblxuLyogcm9ib3RvLWxhdGluLWV4dC00MDAtbm9ybWFsICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbGF0aW4tZXh0LTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLWxhdGluLWV4dC00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJBRixVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzFFMDAtMUU5RixVKzFFRjItMUVGRixVKzIwMjAsVSsyMEEwLTIwQUIsVSsyMEFELTIwQzAsVSsyMTEzLFUrMkM2MC0yQzdGLFUrQTcyMC1BN0ZGO1xufVxuXG4vKiByb2JvdG8tbGF0aW4tNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4vZmlsZXMvcm9ib3RvLWxhdGluLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLWxhdGluLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLFUrMDEzMSxVKzAxNTItMDE1MyxVKzAyQkItMDJCQyxVKzAyQzYsVSswMkRBLFUrMDJEQyxVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzIwMDAtMjA2RixVKzIwNzQsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDtcbn0iLCIvKiByb2JvdG8tbW9uby1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1jeXJpbGxpYy1leHQtNDAwLW5vcm1hbC53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsVSsxQzgwLTFDODgsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGO1xufVxuXG4vKiByb2JvdG8tbW9uby1jeXJpbGxpYy00MDAtbm9ybWFsICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1tb25vLWN5cmlsbGljLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvcm9ib3RvLW1vbm8tY3lyaWxsaWMtNDAwLW5vcm1hbC53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzAxLFUrMDQwMC0wNDVGLFUrMDQ5MC0wNDkxLFUrMDRCMC0wNEIxLFUrMjExNjtcbn1cblxuLyogcm9ib3RvLW1vbm8tZ3JlZWstNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1ncmVlay00MDAtbm9ybWFsLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksIHVybCguL2ZpbGVzL3JvYm90by1tb25vLWdyZWVrLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LFUrMDM3QS0wMzdGLFUrMDM4NC0wMzhBLFUrMDM4QyxVKzAzOEUtMDNBMSxVKzAzQTMtMDNGRjtcbn1cblxuLyogcm9ib3RvLW1vbm8tdmlldG5hbWVzZS00MDAtbm9ybWFsICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL3JvYm90by1tb25vLXZpZXRuYW1lc2UtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby12aWV0bmFtZXNlLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLFUrMDExMC0wMTExLFUrMDEyOC0wMTI5LFUrMDE2OC0wMTY5LFUrMDFBMC0wMUExLFUrMDFBRi0wMUIwLFUrMDMwMC0wMzAxLFUrMDMwMy0wMzA0LFUrMDMwOC0wMzA5LFUrMDMyMyxVKzAzMjksVSsxRUEwLTFFRjksVSsyMEFCO1xufVxuXG4vKiByb2JvdG8tbW9uby1sYXRpbi1leHQtNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1sYXRpbi1leHQtNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1sYXRpbi1leHQtNDAwLW5vcm1hbC53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQUYsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsxRTAwLTFFOUYsVSsxRUYyLTFFRkYsVSsyMDIwLFUrMjBBMC0yMEFCLFUrMjBBRC0yMEMwLFUrMjExMyxVKzJDNjAtMkM3RixVK0E3MjAtQTdGRjtcbn1cblxuLyogcm9ib3RvLW1vbm8tbGF0aW4tNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9yb2JvdG8tbW9uby1sYXRpbi00MDAtbm9ybWFsLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksIHVybCguL2ZpbGVzL3JvYm90by1tb25vLWxhdGluLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLFUrMDEzMSxVKzAxNTItMDE1MyxVKzAyQkItMDJCQyxVKzAyQzYsVSswMkRBLFUrMDJEQyxVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzIwMDAtMjA2RixVKzIwNzQsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDtcbn0iXSwic291cmNlUm9vdCI6IiJ9 */"], encapsulation: 2 }); } @@ -6061,7 +6061,7 @@ __webpack_require__.r(__webpack_exports__); class LayerInformationComponent { get layerFormatLink() { - return `mitre/layers/spec/v${_utils_globals__WEBPACK_IMPORTED_MODULE_0__.layerVersion}/layerformat.md`; + return `CVE2CAPEC/mitre/layers/spec/v${_utils_globals__WEBPACK_IMPORTED_MODULE_0__.layerVersion}/layerformat.md`; } static #_ = this.ɵfac = function LayerInformationComponent_Factory(t) { return new (t || LayerInformationComponent)(); @@ -10920,7 +10920,7 @@ class ConfigService { * Note: this is done at startup */ loadConfig() { - return this.http.get('mitre/assets/config.json').pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_1__.map)(config => this.validateConfig(config)), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.switchMap)(config => { + return this.http.get('CVE2CAPEC/mitre/assets/config.json').pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_1__.map)(config => this.validateConfig(config)), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_2__.switchMap)(config => { console.debug('loaded app configuration settings'); config['custom_context_menu_items'].forEach(item => { this.contextMenuItems.push(new _classes_context_menu_item__WEBPACK_IMPORTED_MODULE_0__.ContextMenuItem(item.label, item.url, item.subtechnique_url)); @@ -11510,7 +11510,7 @@ class IconsService { // intentionally left blank } registerIcons() { - this.loadIcons(Object.values(Icons), 'mitre/assets/icons'); + this.loadIcons(Object.values(Icons), 'CVE2CAPEC/mitre/assets/icons'); } loadIcons(iconKeys, iconUrl) { iconKeys.forEach(key => { diff --git a/docs/mitre/main.js.map b/docs/mitre/main.js.map new file mode 100644 index 0000000..e694d29 --- /dev/null +++ b/docs/mitre/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/changelog/changelog.component.ts","./src/app/changelog/changelog.component.html","./src/app/classes/context-menu-item.ts","./src/app/classes/domain.ts","./src/app/classes/filter.ts","./src/app/classes/gradient.ts","./src/app/classes/index.ts","./src/app/classes/layout-options.ts","./src/app/classes/link.ts","./src/app/classes/metadata.ts","./src/app/classes/stix/asset.ts","./src/app/classes/stix/campaign.ts","./src/app/classes/stix/data-component.ts","./src/app/classes/stix/group.ts","./src/app/classes/stix/index.ts","./src/app/classes/stix/matrix.ts","./src/app/classes/stix/mitigation.ts","./src/app/classes/stix/note.ts","./src/app/classes/stix/software.ts","./src/app/classes/stix/stix-object.ts","./src/app/classes/stix/tactic.ts","./src/app/classes/stix/technique.ts","./src/app/classes/tab.ts","./src/app/classes/technique-vm.ts","./src/app/classes/version-changelog.ts","./src/app/classes/version.ts","./src/app/classes/view-model.ts","./src/app/datatable/data-table.component.ts","./src/app/datatable/data-table.component.html","./src/app/help/help.component.ts","./src/app/help/help.component.html","./src/app/layer-information/layer-information.component.ts","./src/app/layer-information/layer-information.component.html","./src/app/layer-settings/layer-settings.component.ts","./src/app/layer-settings/layer-settings.component.html","./src/app/layer-upgrade/changelog-cell/changelog-cell.component.ts","./src/app/layer-upgrade/changelog-cell/changelog-cell.component.html","./src/app/layer-upgrade/layer-upgrade.component.ts","./src/app/layer-upgrade/layer-upgrade.component.html","./src/app/list-input/list-input.component.ts","./src/app/list-input/list-input.component.html","./src/app/matrix/cell.ts","./src/app/matrix/matrix-common.ts","./src/app/matrix/matrix-flat/matrix-flat.component.ts","./src/app/matrix/matrix-flat/matrix-flat.component.html","./src/app/matrix/matrix-mini/matrix-mini.component.ts","./src/app/matrix/matrix-mini/matrix-mini.component.html","./src/app/matrix/matrix-side/matrix-side.component.ts","./src/app/matrix/matrix-side/matrix-side.component.html","./src/app/matrix/tactic-cell/tactic-cell.component.ts","./src/app/matrix/tactic-cell/tactic-cell.component.html","./src/app/matrix/technique-cell/cell-popover.ts","./src/app/matrix/technique-cell/contextmenu/contextmenu.component.ts","./src/app/matrix/technique-cell/contextmenu/contextmenu.component.html","./src/app/matrix/technique-cell/technique-cell.component.ts","./src/app/matrix/technique-cell/technique-cell.component.html","./src/app/matrix/technique-cell/tooltip/tooltip.component.ts","./src/app/matrix/technique-cell/tooltip/tooltip.component.html","./src/app/search-and-multiselect/search-and-multiselect.component.ts","./src/app/search-and-multiselect/search-and-multiselect.component.html","./src/app/services/config.service.ts","./src/app/services/data.service.ts","./src/app/services/icons.service.ts","./src/app/services/viewmodels.service.ts","./src/app/sidebar/sidebar.component.ts","./src/app/sidebar/sidebar.component.html","./src/app/svg-export/renderable-objects/index.ts","./src/app/svg-export/renderable-objects/renderable-matrix.ts","./src/app/svg-export/renderable-objects/renderable-tactic.ts","./src/app/svg-export/renderable-objects/renderable-technique.ts","./src/app/svg-export/svg-export.component.ts","./src/app/svg-export/svg-export.component.html","./src/app/tabs/tabs.component.ts","./src/app/tabs/tabs.component.html","./src/app/utils/cookies.ts","./src/app/utils/globals.ts","./src/app/utils/taxii2lib.ts","./src/app/utils/utils.ts","./src/app/version-upgrade/version-upgrade.component.ts","./src/app/version-upgrade/version-upgrade.component.html","./src/environments/environment.ts","./src/main.ts","ignored|CVE2CAPEC/mitre/nav-app/node_modules/seedrandom|crypto"],"sourcesContent":["import { Component, ViewChild, HostListener, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { ConfigService } from './services/config.service';\nimport * as globals from './utils/globals';\nimport { IconsService } from './services/icons.service';\nimport { deleteCookie, getCookie, hasCookie, setCookie } from './utils/cookies';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n @ViewChild(TabsComponent) tabsComponent;\n\n navVersion: string = globals.navVersion;\n public user_theme: string;\n title = 'ATT&CK® Navigator';\n\n @HostListener('window:beforeunload', ['$event'])\n promptNavAway($event) {\n if (!this.configService.getFeature('leave_site_dialog')) return;\n //this text only shows in the data, not visible to user as far as I can tell\n //however, if it's not included the window doesn't open.\n $event.returnValue = 'Are you sure you want to navigate away? Your data may be lost!';\n }\n\n constructor(\n public configService: ConfigService,\n private iconsService: IconsService,\n public titleService: Title\n ) {\n Array.prototype.includes = function (value): boolean {\n for (let i = 0; i < this.length; i++) {\n if (this[i] === value) return true;\n }\n return false;\n };\n if (hasCookie('is_user_theme_dark') && getCookie('is_user_theme_dark') === 'true') {\n this.user_theme = 'theme-override-dark';\n } else if (getCookie('is_user_theme_dark') === 'false') {\n this.user_theme = 'theme-override-light';\n } else {\n this.user_theme = 'theme-use-system';\n }\n }\n\n ngOnInit() {\n this.iconsService.registerIcons();\n this.titleService.setTitle(this.title);\n }\n\n themeChangeHandler(theme: string) {\n if (theme === 'system') {\n if (hasCookie('is_user_theme_dark')) deleteCookie('is_user_theme_dark');\n this.user_theme = 'theme-use-system';\n } else {\n this.user_theme = theme === 'dark' ? 'theme-override-dark' : 'theme-override-light';\n setCookie('is_user_theme_dark', theme === 'dark' ? 'true' : 'false', 180);\n }\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n","import { BrowserModule, Title } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\n\n// material\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { DndModule } from 'ngx-drag-drop';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AppComponent } from './app.component';\nimport { DataTableComponent } from './datatable/data-table.component';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { HelpComponent } from './help/help.component';\nimport { SvgExportComponent } from './svg-export/svg-export.component';\nimport { TechniqueCellComponent } from './matrix/technique-cell/technique-cell.component';\nimport { MatrixSideComponent } from './matrix/matrix-side/matrix-side.component';\nimport { MatrixFlatComponent } from './matrix//matrix-flat/matrix-flat.component';\nimport { MatrixMiniComponent } from './matrix//matrix-mini/matrix-mini.component';\nimport { TooltipComponent } from './matrix/technique-cell/tooltip/tooltip.component';\nimport { SearchAndMultiselectComponent } from './search-and-multiselect/search-and-multiselect.component';\nimport { ContextmenuComponent } from './matrix/technique-cell/contextmenu/contextmenu.component';\nimport { TacticCellComponent } from './matrix/tactic-cell/tactic-cell.component';\nimport { VersionUpgradeComponent } from './version-upgrade/version-upgrade.component';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { LayerUpgradeComponent } from './layer-upgrade/layer-upgrade.component';\nimport { ChangelogCellComponent } from './layer-upgrade/changelog-cell/changelog-cell.component';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { LayerSettingsComponent } from './layer-settings/layer-settings.component';\n\nimport { MarkdownModule } from 'ngx-markdown';\nimport { LayerInformationComponent } from './layer-information/layer-information.component';\nimport { ChangelogComponent } from './changelog/changelog.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { ListInputComponent } from './list-input/list-input.component';\nimport { ConfigService } from './services/config.service';\n\n@NgModule({\n declarations: [\n AppComponent,\n DataTableComponent,\n TabsComponent,\n HelpComponent,\n SvgExportComponent,\n TechniqueCellComponent,\n MatrixSideComponent,\n MatrixFlatComponent,\n MatrixMiniComponent,\n TooltipComponent,\n SearchAndMultiselectComponent,\n ContextmenuComponent,\n TacticCellComponent,\n VersionUpgradeComponent,\n SidebarComponent,\n LayerUpgradeComponent,\n ChangelogCellComponent,\n LayerInformationComponent,\n ChangelogComponent,\n ListInputComponent,\n LayerSettingsComponent,\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n BrowserAnimationsModule,\n MatSelectModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatButtonModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatMenuModule,\n MatExpansionModule,\n MatDialogModule,\n MatSnackBarModule,\n ColorPickerModule,\n DndModule,\n MatSidenavModule,\n MatCardModule,\n MatDividerModule,\n MatStepperModule,\n MatPaginatorModule,\n MarkdownModule.forRoot(),\n MatTabsModule,\n ],\n exports: [MatSelectModule, MatInputModule, MatButtonModule, MatIconModule, MatTooltipModule, MatMenuModule, MatExpansionModule, MatTabsModule],\n providers: [\n Title,\n ConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: (configService: ConfigService) => {\n return () => configService.loadConfig();\n },\n deps: [ConfigService],\n multi: true,\n },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component, Inject, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { MarkdownComponent, MarkdownService } from 'ngx-markdown';\n\n@Component({\n selector: 'app-changelog',\n templateUrl: './changelog.component.html',\n})\nexport class ChangelogComponent {\n @ViewChild('markdownElement', { static: false }) public markdownElement: any;\n\n constructor(\n private dialog: MatDialog,\n private markdownService: MarkdownService,\n @Inject(MAT_DIALOG_DATA) public data\n ) {\n // intentionally left blank\n }\n}\n","
\n

Changelog

\n \n \n \n \n \n \n
","import { Tactic } from './stix/tactic';\nimport { Technique } from './stix/technique';\n\nexport class ContextMenuItem {\n public readonly label: string;\n private readonly url: string;\n private readonly subtechnique_url: string;\n\n constructor(label, url, subtechnique_url = null) {\n this.label = label;\n this.url = url;\n this.subtechnique_url = subtechnique_url;\n }\n\n public getReplacedURL(technique: Technique, tactic: Tactic): string {\n if (this.subtechnique_url && technique.isSubtechnique) {\n return this.subtechnique_url\n .replace(/{{parent_technique_attackID}}/g, technique.parent.attackID)\n .replace(/{{parent_technique_stixID}}/g, technique.parent.id)\n .replace(/{{parent_technique_name}}/g, technique.parent.name.replace(/ /g, '-').toLowerCase())\n\n .replace(/{{subtechnique_attackID}}/g, technique.attackID)\n .replace(/{{subtechnique_attackID_suffix}}/g, technique.attackID.split('.')[1])\n .replace(/{{subtechnique_stixID}}/g, technique.id)\n .replace(/{{subtechnique_name}}/g, technique.name.replace(/ /g, '-').toLowerCase())\n\n .replace(/{{tactic_attackID}}/g, tactic.attackID)\n .replace(/{{tactic_stixID}}/g, tactic.id)\n .replace(/{{tactic_name}}/g, tactic.shortname);\n } else {\n return this.url\n .replace(/{{technique_attackID}}/g, technique.attackID)\n .replace(/{{technique_stixID}}/g, technique.id)\n .replace(/{{technique_name}}/g, technique.name.replace(/ /g, '-').toLowerCase())\n\n .replace(/{{tactic_attackID}}/g, tactic.attackID)\n .replace(/{{tactic_stixID}}/g, tactic.id)\n .replace(/{{tactic_name}}/g, tactic.shortname);\n }\n }\n}\n","import { ServiceAuth } from '../services/data.service';\nimport { Campaign } from './stix/campaign';\nimport { DataComponent } from './stix/data-component';\nimport { Group } from './stix/group';\nimport { Matrix } from './stix/matrix';\nimport { Mitigation } from './stix/mitigation';\nimport { Note } from './stix/note';\nimport { Software } from './stix/software';\nimport { Tactic } from './stix/tactic';\nimport { Technique } from './stix/technique';\nimport { Version } from './version';\nimport { Asset } from './stix/asset';\n\nexport class Domain {\n public readonly id: string; // domain ID\n public readonly domain_identifier: string; //domain ID without the version suffix\n public readonly name: string; // domain display name\n public readonly version: Version; // ATT&CK version\n\n public urls: string[] = [];\n public taxii_url: string = '';\n public taxii_collection: string = '';\n public authentication: ServiceAuth;\n public dataLoaded: boolean = false;\n public dataLoadedCallbacks: any[] = [];\n\n // this should only be enabled if the user loads custom data via URL\n public isCustom: boolean = false;\n\n public matrices: Matrix[] = [];\n public get tactics(): Tactic[] {\n let tactics = [];\n for (let matrix of this.matrices) {\n tactics = tactics.concat(matrix.tactics);\n }\n return tactics;\n }\n public techniques: Technique[] = [];\n public platforms: string[] = []; // platforms defined on techniques and software of the domain\n public subtechniques: Technique[] = [];\n public software: Software[] = [];\n public campaigns: Campaign[] = [];\n public assets: Asset[] = [];\n public dataComponents: DataComponent[] = [];\n public dataSources = new Map(); // Map data source ID to name and urls to be used by data components\n public groups: Group[] = [];\n public mitigations: Mitigation[] = [];\n public notes: Note[] = [];\n public relationships: any = {\n // subtechnique subtechnique-of technique\n // ID of technique to [] of subtechnique IDs\n subtechniques_of: new Map(),\n // data component related to technique\n // ID of data component to [] of technique IDs\n component_rel: new Map(),\n // group uses technique\n // ID of group to [] of technique IDs\n group_uses: new Map(),\n // software uses technique\n // ID of software to [] of technique IDs\n software_uses: new Map(),\n // campaign uses technique\n // ID of campaign to [] of technique IDs\n campaign_uses: new Map(),\n // campaigns attributed to group\n // ID of group to [] of campaign IDs\n campaigns_attributed_to: new Map(),\n // mitigation mitigates technique\n // ID of mitigation to [] of technique IDs\n mitigates: new Map(),\n // object is revoked-by object\n // ID of object to ID of revoking object\n revoked_by: new Map(),\n // technique targets asset\n // ID of asset to [] of technique IDs\n targeted_assets: new Map(),\n };\n\n constructor(domain_identifier: string, name: string, version: Version, urls?: string[]) {\n this.id = `${domain_identifier}-${version.number}`;\n this.domain_identifier = domain_identifier;\n this.name = name;\n this.version = version;\n if (urls) this.urls = urls;\n }\n\n /**\n * Get the version number for this domain\n */\n public getVersion(): string {\n return this.version.number;\n }\n\n public executeCallbacks(): void {\n for (let callback of this.dataLoadedCallbacks) {\n callback();\n }\n }\n}\n","import { Domain } from './domain';\n\nexport class Filter {\n // the data for a specific filter\n private readonly domain: string;\n public platforms: {\n options: string[];\n selection: string[];\n };\n\n constructor() {\n this.platforms = {\n selection: [],\n options: [],\n };\n }\n\n /**\n * Initialize the platform options according to the data in the domain\n * @param {Domain} domain the domain to parse for platform options\n */\n public initPlatformOptions(domain: Domain): void {\n this.platforms.options = JSON.parse(JSON.stringify(domain.platforms));\n if (!this.platforms.selection.length) {\n // prevent overwriting current selection\n this.platforms.selection = JSON.parse(JSON.stringify(domain.platforms));\n }\n }\n\n /**\n * toggle the given value in the given filter\n * @param {*} filterName the name of the filter\n * @param {*} value the value to toggle\n */\n public toggleInFilter(filterName: string, value: string): void {\n if (!this[filterName].options.includes(value)) {\n console.error('not a valid option to toggle', value, this[filterName]);\n return;\n }\n if (this[filterName].selection.includes(value)) {\n let index = this[filterName].selection.indexOf(value);\n this[filterName].selection.splice(index, 1);\n } else {\n this[filterName].selection.push(value);\n }\n }\n\n /**\n * determine if the given value is active in the filter\n * @param {*} filterName the name of the filter\n * @param {*} value the value to determine\n * @returns {boolean} true if value is currently enabled in the filter\n */\n public inFilter(filterName, value): boolean {\n return this[filterName].selection.includes(value);\n }\n\n /**\n * Return the string representation of this filter\n * @return stringified filter\n */\n public serialize(): string {\n return JSON.stringify({ platforms: this.platforms.selection });\n }\n\n /**\n * Replace the properties of this object with those of the given serialized filter\n * @param rep filter object\n */\n public deserialize(rep: any): void {\n let isStringArray = function (arr): boolean {\n for (let item of arr) {\n if (typeof item !== 'string') {\n console.error('TypeError:', item, '(', typeof item, ')', 'is not a string');\n return false;\n }\n }\n return true;\n };\n\n if (rep.platforms) {\n if (isStringArray(rep.platforms)) {\n let backwards_compatibility_mappings = {\n //backwards compatibility with older layers\n android: 'Android',\n ios: 'iOS',\n\n windows: 'Windows',\n linux: 'Linux',\n mac: 'macOS',\n\n AWS: 'IaaS',\n GCP: 'IaaS',\n Azure: 'IaaS',\n };\n const selection = new Set();\n rep.platforms.forEach(function (platform) {\n if (platform in backwards_compatibility_mappings) selection.add(backwards_compatibility_mappings[platform]);\n else selection.add(platform);\n });\n this.platforms.selection = Array.from(selection);\n } else console.error('TypeError: filter platforms field is not a string[]');\n }\n }\n}\n","import tinycolor from 'tinycolor2';\nimport * as tinygradient from 'tinygradient';\n\nexport class Gradient {\n // gradient class used by ViewModels\n // official colors used in gradients:\n public colors: Gcolor[] = [new Gcolor('red'), new Gcolor('green')]; //current colors\n public options: string[] = ['#ffffff', '#ff6666', '#ffaf66', '#ffe766', '#8ec843', '#66b1ff', '#ff66f4']; //possible colors\n public minValue: number = 0;\n public maxValue: number = 100;\n public gradient: any;\n public gradientRGB: any;\n\n // presets in dropdown menu\n public presets = {\n redgreen: [new Gcolor('#ff6666'), new Gcolor('#ffe766'), new Gcolor('#8ec843')],\n greenred: [new Gcolor('#8ec843'), new Gcolor('#ffe766'), new Gcolor('#ff6666')],\n bluered: [new Gcolor('#66b1ff'), new Gcolor('#ff66f4'), new Gcolor('#ff6666')],\n redblue: [new Gcolor('#ff6666'), new Gcolor('#ff66f4'), new Gcolor('#66b1ff')],\n transparentblue: [new Gcolor('#ffffff00'), new Gcolor('#66b1ff')],\n transparentred: [new Gcolor('#ffffff00'), new Gcolor('#ff6666')],\n };\n\n constructor() {\n this.setGradientPreset('redgreen');\n }\n\n /**\n * Create a string version of this gradient\n * @return string version of gradient\n */\n public serialize(): string {\n let colorList: string[] = [];\n this.colors.forEach(function (gColor: Gcolor) {\n let hexstring = tinycolor(gColor.color).toHex8String(); // include the alpha channel\n colorList.push(hexstring);\n });\n\n let rep = {\n colors: colorList,\n minValue: this.minValue,\n maxValue: this.maxValue,\n };\n return JSON.stringify(rep, null, '\\t');\n }\n\n /**\n * Restore this gradient from the given serialized representation\n * @param rep serialized gradient\n */\n public deserialize(rep: string): void {\n let obj = JSON.parse(rep);\n let isColorStringArray = function (colors): boolean {\n for (let color of colors) {\n if (typeof color !== 'string' || !tinycolor(color).isValid()) {\n console.error('TypeError:', color, '(', typeof color, ')', 'is not a color-string');\n return false;\n }\n }\n return true;\n };\n\n if (isColorStringArray(obj.colors)) {\n this.colors = [];\n let self = this;\n obj.colors.forEach(function (hex: string) {\n self.colors.push(new Gcolor(hex));\n });\n } else console.error('TypeError: gradient colors field is not a color-string[]');\n this.minValue = obj.minValue;\n this.maxValue = obj.maxValue;\n this.updateGradient();\n }\n\n /**\n * Convert a preset to tinycolor array\n * @param preset preset name from preset array\n * @return [description]\n */\n public presetToTinyColor(preset) {\n let colorarray = [];\n this.presets[preset].forEach(function (gcolor: Gcolor) {\n colorarray.push(gcolor.color);\n });\n return tinygradient(colorarray).css('linear', 'to right');\n }\n\n /**\n * set this gradient to use the preset\n * @param preset preset to use\n */\n public setGradientPreset(preset: string): void {\n this.colors = this.presets[preset].map((color: Gcolor) => new Gcolor(color.color)); //deep copy gradient preset\n this.updateGradient();\n }\n\n /**\n * recompute gradient\n */\n public updateGradient(): void {\n let colorarray = [];\n this.colors.forEach(function (colorobj) {\n colorarray.push(colorobj.color);\n });\n this.gradient = tinygradient(colorarray);\n this.gradientRGB = this.gradient.rgb(100);\n }\n\n /**\n * Add a color to the end of the gradient\n */\n public addColor(): void {\n this.colors.push(new Gcolor(this.colors[this.colors.length - 1].color));\n }\n\n /**\n * Remove color at the given index\n * @param index index to remove color at\n */\n public removeColor(index): void {\n this.colors.splice(index, 1);\n }\n\n // get the gradient hex color for a given value in the scale. Value is string format number\n public getHexColor(valueString: string) {\n if (!this.gradient) this.updateGradient();\n\n let value: number;\n if (valueString.length == 0) return;\n else value = Number(valueString);\n\n if (value >= this.maxValue) {\n return this.gradientRGB[this.gradientRGB.length - 1].toHexString();\n }\n if (value <= this.minValue) {\n return this.gradientRGB[0].toHexString();\n }\n let index = ((value - this.minValue) / (this.maxValue - this.minValue)) * 100;\n return this.gradientRGB[Math.round(index)].toHexString();\n }\n}\n\n// a color in the gradient\nexport class Gcolor {\n color: string;\n\n constructor(color: string) {\n this.color = color;\n }\n}\n","export { VersionChangelog } from './version-changelog';\nexport { Version } from './version';\nexport { Domain } from './domain';\nexport { ContextMenuItem } from './context-menu-item';\nexport { Gradient, Gcolor } from './gradient';\nexport { Filter } from './filter';\nexport { LayoutOptions } from './layout-options';\nexport { Link } from './link';\nexport { Metadata } from './metadata';\nexport { TechniqueVM } from './technique-vm';\nexport { ViewModel } from './view-model';\nexport { Tab } from './tab';\n","export class LayoutOptions {\n // current layout selection\n public readonly layoutOptions: string[] = ['side', 'flat', 'mini'];\n private _layout = this.layoutOptions[0];\n public set layout(newLayout) {\n if (!this.layoutOptions.includes(newLayout)) {\n console.warn('invalid matrix layout', newLayout);\n return;\n }\n let oldLayout = this._layout;\n this._layout = newLayout;\n if (this._layout == 'mini') {\n // mini-table cannot show ID or name\n this.showID = false;\n this.showName = false;\n }\n if (oldLayout == 'mini' && newLayout != 'mini') {\n this.showName = true; // restore default show value for name\n }\n }\n public get layout(): string {\n return this._layout;\n }\n\n // aggregate function options\n public readonly aggregateFunctionOptions: string[] = ['average', 'min', 'max', 'sum'];\n private _aggregateFunction = this.aggregateFunctionOptions[0];\n public set aggregateFunction(newAggregateFunction) {\n if (!this.aggregateFunctionOptions.includes(newAggregateFunction)) {\n console.warn('invalid aggregate fx option', newAggregateFunction);\n return;\n }\n this._aggregateFunction = newAggregateFunction;\n }\n public get aggregateFunction(): string {\n return this._aggregateFunction;\n }\n\n // show technique/tactic IDs in the view?\n public _showID: boolean = false;\n public set showID(newval: boolean) {\n this._showID = newval;\n if (newval && this._layout == 'mini') this._layout = 'side';\n }\n public get showID(): boolean {\n return this._showID;\n }\n\n // show technique/tactic names in the view?\n public _showName: boolean = true;\n public set showName(newval: boolean) {\n this._showName = newval;\n if (newval && this._layout == 'mini') this._layout = 'side';\n }\n public get showName(): boolean {\n return this._showName;\n }\n\n // show aggregate scores?\n public _showAggregateScores: boolean = false;\n public set showAggregateScores(newval: boolean) {\n this._showAggregateScores = newval;\n }\n public get showAggregateScores(): boolean {\n return this._showAggregateScores;\n }\n\n public _countUnscored: boolean = false;\n public set countUnscored(newval: boolean) {\n this._countUnscored = newval;\n }\n public get countUnscored(): boolean {\n return this.aggregateFunction === 'average' ? this._countUnscored : false;\n }\n\n // how to display subtechniques\n public expandedSubtechniquesOptions: string[] = ['none', 'annotated', 'all'];\n private _expandedSubtechniques = this.expandedSubtechniquesOptions[0];\n public set expandedSubtechniques(newExpandedSubtechniques) {\n if (!this.expandedSubtechniquesOptions.includes(newExpandedSubtechniques)) {\n console.warn('invalid expand subtechnique option', newExpandedSubtechniques);\n return;\n }\n this._expandedSubtechniques = newExpandedSubtechniques;\n }\n public get expandedSubtechniques(): string {\n return this._expandedSubtechniques;\n }\n\n public serialize(): object {\n return {\n layout: this.layout,\n aggregateFunction: this.aggregateFunction,\n showID: this.showID,\n showName: this.showName,\n showAggregateScores: this.showAggregateScores,\n countUnscored: this.countUnscored,\n expandedSubtechniques: this.expandedSubtechniques,\n };\n }\n\n public deserialize(rep: any) {\n if ('showID' in rep) {\n if (typeof rep.showID === 'boolean') this.showID = rep.showID;\n else console.error(\"TypeError: layout field 'showID' is not a boolean:\", rep.showID, '(', typeof rep.showID, ')');\n }\n if ('showName' in rep) {\n if (typeof rep.showName === 'boolean') this.showName = rep.showName;\n else console.error(\"TypeError: layout field 'showName' is not a boolean:\", rep.showName, '(', typeof rep.showName, ')');\n }\n //make sure this one goes last so that it can override name and ID if layout == 'mini'\n if ('layout' in rep) {\n if (typeof rep.layout === 'string') this.layout = rep.layout;\n else console.error(\"TypeError: layout field 'layout' is not a string:\", rep.layout, '(', typeof rep.layout, ')');\n }\n if ('aggregateFunction' in rep) {\n if (typeof rep.aggregateFunction === 'string') this.aggregateFunction = rep.aggregateFunction;\n else\n console.error(\n \"TypeError: layout field 'aggregateFunction' is not a boolean:\",\n rep.aggregateFunction,\n '(',\n typeof rep.aggregateFunction,\n ')'\n );\n }\n if ('showAggregateScores' in rep) {\n if (typeof rep.showAggregateScores === 'boolean') this.showAggregateScores = rep.showAggregateScores;\n else\n console.error(\n \"TypeError: layout field 'showAggregateScores' is not a boolean:\",\n rep.showAggregateScores,\n '(',\n typeof rep.showAggregateScores,\n ')'\n );\n }\n if ('countUnscored' in rep) {\n if (typeof rep.countUnscored === 'boolean') this.countUnscored = rep.countUnscored;\n else console.error(\"TypeError: layout field 'countUnscored' is not a boolean:\", rep.countUnscored, '(', typeof rep.countUnscored, ')');\n }\n if ('expandedSubtechniques' in rep) {\n if (typeof rep.expandedSubtechniques === 'string') this.expandedSubtechniques = rep.expandedSubtechniques;\n else\n console.error(\n \"TypeError: layout field 'expandedSubtechniques' is not a string:\",\n rep.expandedSubtechniques,\n '(',\n typeof rep.expandedSubtechniques,\n ')'\n );\n }\n }\n}\n","export class Link {\n public label: string;\n public url: string;\n public divider: boolean;\n\n constructor() {\n // intentionally left blank\n }\n\n public serialize(): object {\n return this.label && this.url ? { label: this.label, url: this.url } : { divider: this.divider };\n }\n\n public deserialize(rep: any): void {\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n if ('url' in obj) {\n // label & url object\n if (typeof obj.url === 'string') this.url = obj.url;\n else console.error(\"TypeError: Link field 'url' is not a string\");\n\n if ('label' in obj) {\n if (typeof obj.label === 'string') this.label = obj.label;\n else console.error(\"TypeError: Link field 'label' is not a string\");\n } else console.error(\"Error: Link required field 'label' not present\");\n } else if ('divider' in obj) {\n // divider object\n if (typeof obj.divider === 'boolean') this.divider = obj.divider;\n else console.error(\"TypeError: Link field 'divider' is not a boolean\");\n } else console.error(\"Error: Link required field 'url' or 'divider' not present\");\n }\n\n public valid(): boolean {\n return (this.label && this.label.length > 0 && this.url && this.url.length > 0) || this.divider !== undefined;\n }\n}\n","export class Metadata {\n public name: string;\n public value: string;\n public divider: boolean;\n\n public serialize(): object {\n return this.name && this.value ? { name: this.name, value: this.value } : { divider: this.divider };\n }\n\n public deserialize(rep: any): void {\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n\n if ('name' in obj) {\n // name & value object\n if (typeof obj.name === 'string') this.name = obj.name;\n else console.error(\"TypeError: Metadata field 'name' is not a string\");\n\n if ('value' in obj) {\n if (typeof obj.value === 'string') this.value = obj.value;\n else console.error(\"TypeError: Metadata field 'value' is not a string\");\n } else console.error(\"Error: Metadata required field 'value' not present\");\n } else if ('divider' in obj) {\n // divider object\n if (typeof obj.divider === 'boolean') this.divider = obj.divider;\n else console.error(\"TypeError: Metadata field 'divider' is not a boolean\");\n } else console.error(\"Error: Metadata required field 'name' or 'divider' not present\");\n }\n\n public valid(): boolean {\n return (this.name && this.name.length > 0 && this.value && this.value.length > 0) || this.divider !== undefined;\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Asset extends StixObject {\n /**\n * Get techniques targeting this asset\n * @returns {string[]} technique IDs targeting this asset\n */\n public targeted(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.targeted_assets;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get all techniques related to the asset\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.targeted(domainVersionID);\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Campaign extends StixObject {\n /**\n * Get techniques used by the campaign\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by the campaign\n */\n public used(domainVersionID): string[] {\n let relationships = this.dataService.getDomain(domainVersionID).relationships.campaign_uses;\n if (relationships.has(this.id)) {\n return relationships.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get all techniques related to the campaign\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by the campaign\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.used(domainVersionID);\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Technique } from './technique';\n\nexport class DataComponent extends StixObject {\n public readonly url: string;\n public readonly dataSource: string;\n\n constructor(stixSDO: any, dataService: DataService) {\n super(stixSDO, dataService, false);\n this.dataSource = stixSDO.x_mitre_data_source_ref;\n }\n\n /**\n * Get techniques related to the data component\n * @param domainVersionID the ID of the domain and version\n * @returns {Technique[]} list of techniques used by the data component\n */\n public techniques(domainVersionID): Technique[] {\n const techniques = [];\n const domain = this.dataService.getDomain(domainVersionID);\n\n let relationships = domain.relationships.component_rel;\n if (relationships.has(this.id)) {\n relationships.get(this.id).forEach((targetID) => {\n const technique = domain.techniques.find((t) => t.id === targetID);\n if (technique) techniques.push(technique);\n });\n }\n return techniques;\n }\n /**\n * Get the data source related to this data component\n * @param domainVersionID the ID of the domain and version\n * @returns { name: string, url: string } the name and first url of the data source referenced by this data component\n */\n public source(domainVersionID) {\n const dataSources = this.dataService.getDomain(domainVersionID).dataSources;\n if (dataSources.has(this.dataSource)) {\n const source = dataSources.get(this.dataSource);\n let url = '';\n if (source.external_references && source.external_references[0] && source.external_references[0].url)\n url = source.external_references[0].url;\n return { name: source.name, url: url };\n } else return { name: '', url: '' };\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Group extends StixObject {\n /**\n * Get the techniques used by this group\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by this group\n */\n public used(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.group_uses;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get techniques used by campaigns attributed to this group\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by campaigns attributed to this group\n */\n public campaignsUsed(domainVersionID): string[] {\n // get campaigns attributed to groups\n let attributedCampaigns = this.dataService.getDomain(domainVersionID).relationships.campaigns_attributed_to;\n // get techniques used by campaigns\n let rels = this.dataService.getDomain(domainVersionID).relationships.campaign_uses;\n if (attributedCampaigns.has(this.id)) {\n // get set of techniques used by attributed campaigns\n let techniques = [];\n attributedCampaigns.get(this.id).forEach((campaign_id) => {\n if (rels.has(campaign_id)) techniques = techniques.concat(rels.get(campaign_id));\n });\n return techniques;\n } else return []; // no attributed campaigns\n }\n\n /**\n * Get all techniques related to the group\n */\n public relatedTechniques(domainVersionID): string[] {\n let usedSet = new Set(this.used(domainVersionID).concat(this.campaignsUsed(domainVersionID)));\n return Array.from(usedSet);\n }\n}\n","export { StixObject } from './stix-object';\nexport { Campaign } from './campaign';\nexport { DataComponent } from './data-component';\nexport { Group } from './group';\nexport { Matrix } from './matrix';\nexport { Mitigation } from './mitigation';\nexport { Note } from './note';\nexport { Software } from './software';\nexport { Tactic } from './tactic';\nexport { Technique } from './technique';\nexport { Asset } from './asset';\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Tactic } from './tactic';\nimport { Technique } from './technique';\n\nexport class Matrix extends StixObject {\n public readonly tactics: Tactic[]; //tactics found under this Matrix\n\n /**\n * Creates an instance of Matrix.\n * @param {*} stixSDO for the matrix\n * @param {Map} idToTacticSDO map of tactic ID to tactic SDO\n * @param {Technique[]} techniques all techniques defined in the domain\n */\n constructor(stixSDO: any, idToTacticSDO: Map, techniques: Technique[], dataService: DataService) {\n super(stixSDO, dataService);\n this.tactics = stixSDO.tactic_refs\n .map((tacticID) => idToTacticSDO.get(tacticID)) // Get tacticSDOs\n .filter((tacticSDO) => tacticSDO) // Filter out nulls (tacticSDO not found)\n .map((tacticSDO) => new Tactic(tacticSDO, techniques, this.dataService)); // Create Tactic objects\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Mitigation extends StixObject {\n /**\n * Get techniques mitigated by this mitigation\n * @returns {string[]} technique IDs mitigated by this mitigation\n */\n public mitigated(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.mitigates;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get all techniques related to the mitigation\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.mitigated(domainVersionID);\n }\n}\n","export class Note {\n public readonly abstract?: string; // brief summary of note content\n public readonly content: string; // content of the note\n public readonly object_refs: string[]; // list of STIX objects the note is applied to\n\n /**\n * Creates an instance of Note.\n * @param {any} stixSDO for the note\n */\n constructor(stixSDO: any) {\n if (stixSDO.abstract) this.abstract = stixSDO.abstract;\n this.content = stixSDO.content;\n this.object_refs = stixSDO.object_refs;\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\n\nexport class Software extends StixObject {\n public readonly platforms: string[] = []; //platforms for this software\n\n /**\n * Creates an instance of Software.\n * @param {any} stixSDO for the software\n * @param {DataService} DataService the software occurs within\n */\n constructor(stixSDO: any, dataService: DataService) {\n super(stixSDO, dataService);\n this.platforms = stixSDO.x_mitre_platforms ? stixSDO.x_mitre_platforms.map((platform) => platform.trim()) : undefined;\n }\n\n /**\n * Get techniques used by this software\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by this software\n */\n public used(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.software_uses;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n /**\n * Get all techniques related to the software\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.used(domainVersionID);\n }\n}\n","import { DataService } from '../../services/data.service';\n\nexport abstract class StixObject {\n public readonly id: string; // STIX ID\n public readonly attackID: string; // ATT&CK ID\n public readonly name: string; // name of object\n public readonly description: string; // description of object\n public readonly url: string; // URL of object on the ATT&CK website\n public readonly created: string; // date object was created\n public readonly modified: string; // date object was last modified\n public readonly revoked: boolean; // is the object revoked?\n public readonly deprecated: boolean; // is the object deprecated?\n public readonly version: string; // object version\n protected readonly dataService: DataService;\n\n constructor(stixSDO: any, dataService: DataService, supportsAttackID = true) {\n // Properties\n this.id = stixSDO.id;\n this.name = stixSDO.name;\n this.description = stixSDO.description;\n this.created = stixSDO.created;\n this.modified = stixSDO.modified;\n this.revoked = stixSDO.revoked ? stixSDO.revoked : false;\n this.deprecated = stixSDO.x_mitre_deprecated ? stixSDO.x_mitre_deprecated : false;\n this.version = stixSDO.x_mitre_version ? stixSDO.x_mitre_version : '';\n this.dataService = dataService;\n\n // ATT&CK ID\n if (supportsAttackID) {\n if (stixSDO.external_references && stixSDO.external_references[0] && stixSDO.external_references[0].external_id) {\n this.attackID = stixSDO.external_references[0].external_id;\n } else {\n alert('Error: external_references has invalid format in imported StixObject (ID: ' + stixSDO.id + ')');\n throw new Error(\n 'Error: external_references has invalid format in imported StixObject. Read more here: https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html#_72bcfr3t79jx'\n );\n }\n }\n\n // URL\n if ('external_references' in stixSDO && stixSDO.external_references.length > 0) {\n this.url = stixSDO.external_references[0].url;\n } else {\n this.url = '';\n }\n }\n\n /**\n * Compare this object's version number to another object's version number\n * @param that the object to compare to\n * @returns 0 if the objects have the same version,\n * > 0 if this object's version is greater,\n * < 0 if that object's version is greater\n */\n public compareVersion(that: StixObject): number {\n if (!this.version || !that.version) return 0; // one or both of the objects have no version\n\n let thisVersion = this.version.split('.');\n let thatVersion = that.version.split('.');\n\n for (let i = 0; i < Math.max(thisVersion.length, thatVersion.length); i++) {\n if (thisVersion.length == thatVersion.length && thisVersion.length < i) return 0;\n if (thisVersion.length < i) return -1;\n if (thatVersion.length < i) return 1;\n if (+thisVersion[i] == +thatVersion[i]) continue;\n return +thisVersion[i] - +thatVersion[i];\n }\n return 0;\n }\n\n /**\n * get the stix object that this object is revoked by\n * @param {string} domainVersionID the ID of the domain & version this object is found in\n * @returns {string} object ID this object is revoked by\n */\n public revoked_by(domainVersionID): string {\n let rels = this.dataService.getDomain(domainVersionID).relationships.revoked_by;\n if (rels.has(this.id)) return rels.get(this.id);\n else return undefined;\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Technique } from './technique';\n\nexport class Tactic extends StixObject {\n public readonly techniques: Technique[]; // techniques found under this tactic\n public readonly shortname: string; // shortname property, AKA phase-name for techniques' kill-chain phases\n\n /**\n * Creates an instance of Tactic.\n * @param {any} stixSDO for the tactic\n * @param {Technique[]} techniques all techniques in the domain\n */\n constructor(stixSDO: any, techniques: Technique[], dataService: DataService) {\n super(stixSDO, dataService);\n this.shortname = stixSDO.x_mitre_shortname;\n this.techniques = techniques.filter((technique: Technique) => {\n if (!technique.revoked && !technique.deprecated) return technique.tactics.includes(this.shortname);\n });\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Tactic } from './tactic';\n\nexport class Technique extends StixObject {\n public readonly platforms: string[]; // platforms for this technique.\n public readonly tactics: string[]; // tactics this technique is found under in phase-name format\n public readonly subtechniques: Technique[]; // subtechniques under this technique\n public readonly datasources: string; // data sources of the technique\n public parent: Technique = null; // parent technique. Only present if it's a sub-technique\n public get isSubtechnique() {\n return this.parent != null;\n }\n\n /**\n * Creates an instance of Technique.\n * @param {any} stixSDO for the technique\n * @param {Technique[]} subtechniques occuring under the technique\n */\n constructor(stixSDO: any, subtechniques: Technique[], dataService: DataService) {\n super(stixSDO, dataService);\n this.platforms = stixSDO.x_mitre_platforms ? stixSDO.x_mitre_platforms.map((platform) => platform.trim()) : undefined;\n this.datasources = stixSDO.x_mitre_data_sources ? stixSDO.x_mitre_data_sources.toString() : '';\n if (!this.revoked && !this.deprecated) {\n this.tactics = stixSDO.kill_chain_phases.map((phase) => phase.phase_name);\n }\n\n this.subtechniques = subtechniques.filter((sub) => !(sub.deprecated || sub.revoked));\n for (let subtechnique of this.subtechniques) {\n subtechnique.parent = this;\n }\n }\n\n /**\n * Get an ID identifying this technique under a specific tactic\n * @param {string|Tactic} tactic tactic name in phase-name/shortname format, or a Tactic object itself\n * @returns {string} ID for this technique under that tactic\n */\n public get_technique_tactic_id(tactic: string | Tactic): string {\n let tactic_shortname = tactic instanceof Tactic ? tactic.shortname : tactic;\n if (!this.tactics.includes(tactic_shortname)) {\n throw new Error(tactic_shortname + ' is not a tactic of ' + this.attackID);\n }\n return this.attackID + '^' + tactic_shortname;\n }\n\n /**\n * Get all possible IDs identifying this technique under tactics\n * Basically the same as calling get_technique_tactic_id with all valid tactic values\n */\n public get_all_technique_tactic_ids(): string[] {\n if (this.revoked || this.deprecated) return [];\n return this.tactics.map((shortname: string) => this.get_technique_tactic_id(shortname));\n }\n}\n","import { ViewModel } from './view-model';\n\nexport class Tab {\n public title: string;\n public viewModel: ViewModel;\n public domain: string = '';\n public isDataTable: boolean;\n public isCloseable: boolean = false;\n public showScoreVariables: boolean = false;\n\n constructor(title: string, isCloseable: boolean, showScoreVariables: boolean, domain: string, isDataTable: boolean) {\n this.title = title;\n this.isCloseable = isCloseable;\n this.showScoreVariables = showScoreVariables;\n this.domain = domain;\n this.isDataTable = isDataTable;\n }\n}\n","import { Link } from './link';\nimport { Metadata } from './metadata';\nimport tinycolor from 'tinycolor2';\n\nexport class TechniqueVM {\n // Defines the ViewModel for a specific Technique\n public techniqueID: string;\n public technique_tactic_union_id: string;\n public tactic: string;\n\n public score: string = '';\n public scoreColor: string; // hex color for score gradient\n public aggregateScore: any; // number rather than string as this is not based on an input from user\n public aggregateScoreColor: string; // hex color for aggregate score\n public color: string = ''; // manually assigned color-class name\n public enabled: boolean = true;\n public comment: string = '';\n\n public metadata: Metadata[] = [];\n public get metadataStr(): string {\n return JSON.stringify(this.metadata);\n }\n\n public links: Link[] = [];\n public get linkStr(): string {\n return JSON.stringify(this.links);\n }\n\n public showSubtechniques = false;\n public isVisible: boolean = true; // is technique currently displayed on matrix?\n\n constructor(technique_tactic_union_id: string) {\n this.technique_tactic_union_id = technique_tactic_union_id;\n let idSplit = technique_tactic_union_id.split('^');\n this.techniqueID = idSplit[0];\n this.tactic = idSplit[1];\n }\n\n /**\n * Has this TechniqueVM been modified from its initialized state?\n * @return true if it has been modified, false otherwise\n */\n public modified(): boolean {\n return this.annotated() || this.showSubtechniques;\n }\n\n /**\n * Check if this TechniqueVM has been annotated\n * @return true if it has annotations, false otherwise\n */\n public annotated(): boolean {\n return this.score != '' || this.color != '' || !this.enabled || this.comment != '' || this.links.length !== 0 || this.metadata.length !== 0;\n }\n\n /**\n * Reset this TechniqueVM's annotations to their default values\n */\n public resetAnnotations(): void {\n this.score = '';\n this.comment = '';\n this.color = '';\n this.enabled = true;\n this.aggregateScore = '';\n this.aggregateScoreColor = '';\n this.links = [];\n this.metadata = [];\n }\n\n /**\n * Set isVisible based on filters\n */\n public setIsVisible(visible: boolean): void {\n this.isVisible = visible;\n }\n\n /**\n * Convert to string representation\n * @return string representation\n */\n public serialize(): string {\n let rep: { [k: string]: any } = {};\n rep.techniqueID = this.techniqueID;\n rep.tactic = this.tactic;\n if (this.score !== '' && !isNaN(Number(this.score))) rep.score = Number(this.score);\n rep.color = this.color;\n rep.comment = this.comment;\n rep.enabled = this.enabled;\n rep.metadata = this.metadata.filter((m) => m.valid()).map((m) => m.serialize());\n rep.links = this.links.filter((l) => l.valid()).map((l) => l.serialize());\n rep.showSubtechniques = this.showSubtechniques;\n return JSON.stringify(rep, null, '\\t');\n }\n\n /**\n * Restore this technique from serialized technique\n * @param rep serialized technique string\n */\n public deserialize(rep: string, techniqueID: string, tactic: string): void {\n let obj = JSON.parse(rep);\n if (techniqueID !== undefined) this.techniqueID = techniqueID;\n else console.error('ERROR: TechniqueID field not present in technique');\n\n if (tactic !== undefined && tactic !== '') this.tactic = tactic;\n else {\n console.error('WARNING: tactic field not present in technique');\n alert(`WARNING: The tactic field on the technique ID ${techniqueID} is not defined. Annotations for this technique may not be restored.`);\n }\n if ('comment' in obj) {\n if (typeof obj.comment === 'string') this.comment = obj.comment;\n else console.error('TypeError: technique comment field is not a number:', obj.comment, '(', typeof obj.comment, ')');\n }\n if ('color' in obj && obj.color !== '') {\n if (typeof obj.color === 'string' && tinycolor(obj.color).isValid()) this.color = obj.color;\n else console.error('TypeError: technique color field is not a color-string:', obj.color, '(', typeof obj.color, ')');\n }\n if ('score' in obj) {\n if (typeof obj.score === 'number') this.score = String(obj.score);\n else console.error('TypeError: technique score field is not a number:', obj.score, '(', typeof obj.score, ')');\n }\n if ('enabled' in obj) {\n if (typeof obj.enabled === 'boolean') this.enabled = obj.enabled;\n else console.error('TypeError: technique enabled field is not a boolean:', obj.enabled, '(', typeof obj.enabled, ')');\n }\n if ('showSubtechniques' in obj) {\n if (typeof obj.showSubtechniques === 'boolean') this.showSubtechniques = obj.showSubtechniques;\n else\n console.error(\n 'TypeError: technique showSubtechnique field is not a boolean:',\n obj.showSubtechniques,\n '(',\n typeof obj.showSubtechniques,\n ')'\n );\n }\n if (this.tactic !== undefined && this.techniqueID !== undefined) {\n this.technique_tactic_union_id = this.techniqueID + '^' + this.tactic;\n } else {\n console.error('ERROR: Tactic and TechniqueID field needed.');\n }\n\n if ('metadata' in obj) {\n for (let metadataObj of obj.metadata) {\n let m = new Metadata();\n m.deserialize(metadataObj);\n if (m.valid()) this.metadata.push(m);\n }\n }\n if ('links' in obj) {\n for (let linkObj of obj.links) {\n let link = new Link();\n link.deserialize(linkObj);\n if (link.valid()) this.links.push(link);\n }\n }\n }\n}\n","export class VersionChangelog {\n public oldDomainVersionID: string;\n public newDomainVersionID: string;\n public additions: string[] = []; // new objects added to newest version\n public changes: string[] = []; // object changes between versions\n public minor_changes: string[] = []; // changes to objects without version increments\n public deprecations: string[] = []; // objects deprecated since older version\n public revocations: string[] = []; // objects revoked since older version\n public unchanged: string[] = []; // objects which have not changed between versions\n\n public reviewed = new Set();\n public copied = new Set();\n\n constructor(oldDomainVersionID: string, newDomainVersionID: string) {\n this.oldDomainVersionID = oldDomainVersionID;\n this.newDomainVersionID = newDomainVersionID;\n }\n\n /** Get the length of the version changelog */\n public length(): number {\n return (\n this.additions.length +\n this.changes.length +\n this.minor_changes.length +\n this.deprecations.length +\n this.revocations.length +\n this.unchanged.length\n );\n }\n}\n","export class Version {\n public readonly name: string;\n public readonly number: string;\n\n /**\n * Creates an instance of Version\n * @param name version name\n * @param number version number\n */\n constructor(name: string, number: string) {\n this.name = name;\n this.number = number;\n }\n}\n","import { DataService } from '../services/data.service';\nimport { Filter } from './filter';\nimport { Gradient } from './gradient';\nimport { LayoutOptions } from './layout-options';\nimport { Link } from './link';\nimport { Metadata } from './metadata';\nimport { Technique, Tactic, Matrix } from './stix';\nimport { TechniqueVM } from './technique-vm';\nimport { VersionChangelog } from './version-changelog';\nimport * as globals from '../utils/globals';\nimport tinycolor from 'tinycolor2';\n\nexport class ViewModel {\n public name: string; // layer name\n public domain: string = ''; // attack domain\n public version: string = ''; // attack version\n public domainVersionID: string; // layer domain & version\n public description: string = ''; // layer description\n public uid: string; // unique identifier for this ViewModel\n public bundleURL: string; // the STIX bundle URL that a custom layer was loaded from\n public loaded: boolean = false; // whether or not techniqueVMs are loaded\n\n public techniqueVMs: Map = new Map(); // configuration for each technique\n public selectedTechniques: Set = new Set(); // currently selected techniques (technique_tactic_id)\n public activeTvm: TechniqueVM; // first selected techniqueVM\n\n private linkMismatches: string[] = []; // subsequent selected technique_tactic_ids that do not have matching links\n public get linksMatch(): boolean {\n return !this.linkMismatches.length;\n }\n private metadataMismatches: string[] = []; // subsequent selected technique_tactic_ids that do not have matching metadata\n public get metadataMatch(): boolean {\n return !this.metadataMismatches.length;\n }\n\n public highlightedTactic: Tactic = null;\n public highlightedTechniques: Set = new Set();\n public highlightedTechnique: Technique = null; // the Technique that was actually moused over\n\n public filters: Filter;\n public layout: LayoutOptions = new LayoutOptions();\n public hideDisabled: boolean = false; // are disabled techniques hidden?\n public showTacticRowBackground: boolean = false;\n public tacticRowBackground: string = '#dddddd';\n public stickyToolbar = true;\n\n public gradient: Gradient = new Gradient(); // scoring gradient\n public legendItems: any[] = [];\n public backgroundPresets: string[] = [\n '#e60d0d',\n '#fc3b3b',\n '#fc6b6b',\n '#fca2a2',\n '#e6550d',\n '#fd8d3c',\n '#fdae6b',\n '#fdd0a2',\n '#e6d60d',\n '#fce93b',\n '#fcf26b',\n '#fcf3a2',\n '#31a354',\n '#74c476',\n '#a1d99b',\n '#c7e9c0',\n '#3182bd',\n '#6baed6',\n '#9ecae1',\n '#c6dbef',\n '#756bb1',\n '#9e9ac8',\n '#bcbddc',\n '#dadaeb',\n '#636363',\n '#969696',\n '#bdbdbd',\n '#d9d9d9',\n ];\n public legendColorPresets: string[] = [];\n public initializeScoresTo = ''; // value to initialize scores to\n\n public metadata: Metadata[] = [];\n public links: Link[] = [];\n public technique_show_subtechnique = false;\n\n /*\n * 0: ascending alphabetically\n * 1: descending alphabetically\n * 2: ascending numerically\n * 3: descending numerically\n */\n public sorting: number = 0;\n\n public selectTechniquesAcrossTactics: boolean = true;\n public selectSubtechniquesWithParent: boolean = false;\n public selectVisibleTechniques: boolean = false;\n\n public compareTo?: ViewModel;\n public versionChangelog?: VersionChangelog;\n\n private _sidebarOpened: boolean;\n public get sidebarOpened(): boolean {\n return this._sidebarOpened;\n }\n public set sidebarOpened(newVal: boolean) {\n this._sidebarOpened = newVal;\n }\n\n public readonly sidebarContentTypes = ['layerUpgrade', 'search', 'layerSettings'];\n private _sidebarContentType: string;\n public get sidebarContentType(): string {\n return this._sidebarContentType;\n }\n public set sidebarContentType(newVal: string) {\n if (this.sidebarContentTypes.includes(newVal)) this._sidebarContentType = newVal;\n else this._sidebarContentType = '';\n }\n\n constructor(\n name: string,\n uid: string,\n domainVersionID: string,\n public dataService: DataService\n ) {\n console.debug(\"initializing ViewModel '\" + name + \"'\");\n this.domainVersionID = domainVersionID;\n this.filters = new Filter();\n this.name = name;\n this.uid = uid;\n this.legendColorPresets = this.backgroundPresets;\n }\n\n public openSidebar(contentType: string) {\n this.sidebarContentType = contentType;\n this.sidebarOpened = true;\n }\n\n public loadVMData(): void {\n let domain = this.dataService.getDomain(this.domainVersionID);\n if (domain.isCustom) {\n this.bundleURL = domain.urls[0];\n }\n\n if (!this.domainVersionID || !domain.dataLoaded) {\n let self = this;\n this.dataService.onDataLoad(this.domainVersionID, function () {\n self.initTechniqueVMs();\n self.filters.initPlatformOptions(self.dataService.getDomain(self.domainVersionID));\n });\n } else {\n this.initTechniqueVMs();\n this.filters.initPlatformOptions(domain);\n }\n this.loaded = true;\n }\n\n private initTechniqueVMs(): void {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n // init techniques\n for (let id of technique.get_all_technique_tactic_ids()) {\n let techniqueVM = new TechniqueVM(id);\n techniqueVM.score = this.initializeScoresTo;\n this.setTechniqueVM(techniqueVM, false);\n }\n\n // init sub-techniques\n for (let subtechnique of technique.subtechniques) {\n for (let id of subtechnique.get_all_technique_tactic_ids()) {\n let techniqueVM = new TechniqueVM(id);\n techniqueVM.score = this.initializeScoresTo;\n this.setTechniqueVM(techniqueVM, false);\n }\n }\n }\n // display annotated subtechniques if \"annotated\" option is selected\n if (this.layout.expandedSubtechniques == 'annotated') {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.subtechniques.length > 0) {\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.getTechniqueVM_id(id);\n for (let subtechnique of technique.subtechniques) {\n tvm.showSubtechniques =\n tvm.showSubtechniques ||\n subtechnique.get_all_technique_tactic_ids().some((sid) => {\n let svm = this.getTechniqueVM_id(sid);\n return svm.annotated();\n });\n }\n }\n }\n }\n }\n // display all subtechniques if \"all\" option is selected\n else if (this.layout.expandedSubtechniques == 'all') {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.subtechniques.length > 0) {\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.getTechniqueVM_id(id);\n tvm.showSubtechniques = true;\n }\n }\n }\n } else {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.subtechniques.length > 0) {\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.getTechniqueVM_id(id);\n if (tvm.showSubtechniques) {\n this.technique_show_subtechnique = true;\n break;\n }\n }\n }\n }\n if (this.layout.expandedSubtechniques == 'none' && !this.technique_show_subtechnique) {\n this.techniqueVMs.forEach(function (tvm) {\n tvm.showSubtechniques = false;\n });\n }\n }\n // display none of the subtechniques if \"none\" option is selected\n }\n\n public getTechniqueVM(technique: Technique, tactic: Tactic): TechniqueVM {\n if (!this.hasTechniqueVM(technique, tactic)) {\n throw Error('technique VM not found: ' + technique.attackID + ', ' + tactic.attackID);\n }\n return this.techniqueVMs.get(technique.get_technique_tactic_id(tactic));\n }\n\n public getTechniqueVM_id(technique_tactic_id: string): TechniqueVM {\n if (!this.hasTechniqueVM_id(technique_tactic_id)) {\n throw Error('technique VM not found: ' + technique_tactic_id);\n }\n return this.techniqueVMs.get(technique_tactic_id);\n }\n\n /**\n * setter\n * @param {techniqueVM} techniqueVM: the techniqueVM to set\n * @param {boolean} overwrite (default true) if true, overwrite existing techniqueVMs under that ID.\n */\n public setTechniqueVM(techniqueVM: TechniqueVM, overwrite = true): void {\n if (this.techniqueVMs.has(techniqueVM.technique_tactic_union_id)) {\n if (overwrite) this.techniqueVMs.delete(techniqueVM.technique_tactic_union_id);\n else return;\n }\n this.techniqueVMs.set(techniqueVM.technique_tactic_union_id, techniqueVM);\n }\n\n public hasTechniqueVM(technique: Technique, tactic: Tactic): boolean {\n return this.techniqueVMs.has(technique.get_technique_tactic_id(tactic));\n }\n\n public hasTechniqueVM_id(technique_tactic_id: string): boolean {\n return this.techniqueVMs.has(technique_tactic_id);\n }\n\n /**\n * Highlight the given technique under the given tactic\n * @param {Technique} technique to highlight\n * @param {Tactic} tactic wherein the technique occurs\n */\n public highlightTechnique(technique: Technique, tactic?: Tactic | null): void {\n if (this.selectSubtechniquesWithParent && technique.isSubtechnique) this.highlightedTechniques.add(technique.parent.id);\n this.highlightedTechnique = technique;\n this.highlightedTechniques.add(technique.id);\n this.highlightedTactic = tactic;\n }\n\n /**\n * Clear the technique highlight\n */\n public clearHighlight(): void {\n this.highlightedTactic = null;\n this.highlightedTechnique = null;\n this.highlightedTechniques = new Set();\n }\n\n /**\n * Select the given technique. Depending on selectTechniquesAcrossTactics, either selects in all tactics or in given tactic\n * @param {Technique} technique to select\n * @param {Tactic} tactic wherein the technique occurs\n */\n public selectTechnique(technique: Technique, tactic: Tactic): void {\n if (this.selectTechniquesAcrossTactics) this.selectTechniqueAcrossTactics(technique);\n else this.selectTechniqueInTactic(technique, tactic);\n }\n\n /**\n * Unselect the given technique. Depending on selectTechniquesAcrossTactics, either unselects in all tactics or in given tactic\n * @param {Technique} technique to select\n * @param {Tactic} tactic wherein the technique occurs\n */\n public unselectTechnique(technique: Technique, tactic: Tactic): void {\n if (this.selectTechniquesAcrossTactics) this.unselectTechniqueAcrossTactics(technique);\n else this.unselectTechniqueInTactic(technique, tactic);\n }\n\n /**\n * Select the given technique in the given tactic\n * @param {Technique} technique to select\n * @param {Tactic} tactic wherein the technique occurs\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n */\n public selectTechniqueInTactic(technique: Technique, tactic: Tactic, walkChildren = true): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // check parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.selectTechniqueInTactic(technique.parent, tactic, true);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.selectTechniqueInTactic(subtechnique, tactic, false);\n }\n }\n }\n\n let technique_tactic_id = technique.get_technique_tactic_id(tactic);\n if (!this.isCurrentlyEditing()) {\n // first selection\n this.activeTvm = this.getTechniqueVM_id(technique_tactic_id);\n }\n if ((this.selectVisibleTechniques && this.getTechniqueVM_id(technique_tactic_id).isVisible) || !this.selectVisibleTechniques) {\n this.selectedTechniques.add(technique_tactic_id);\n this.checkValues(true, technique_tactic_id);\n }\n }\n\n /**\n * Select all techniques under the given tactic\n * @param {Tactic} tactic wherein the techniques occur\n */\n public selectAllTechniquesInTactic(tactic: Tactic): void {\n for (let technique of tactic.techniques) {\n this.selectTechnique(technique, tactic);\n }\n }\n\n /**\n * select the given technique across all tactics in which it occurs\n * @param {Technique} technique to select\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n * @param highlightTechniques, if true, highlight techniques rather than add to selected techniques group\n */\n public selectTechniqueAcrossTactics(technique: Technique, walkChildren = true, highlightTechniques = false): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // walk to parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.selectTechniqueAcrossTactics(technique.parent, true, highlightTechniques);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.selectTechniqueAcrossTactics(subtechnique, false, highlightTechniques);\n }\n }\n }\n if (highlightTechniques) {\n // highlight technique\n this.highlightTechnique(technique);\n } else {\n for (let id of technique.get_all_technique_tactic_ids()) {\n if (!this.isCurrentlyEditing()) this.activeTvm = this.getTechniqueVM_id(id); // first selection\n if ((this.selectVisibleTechniques && this.getTechniqueVM_id(id).isVisible) || !this.selectVisibleTechniques) {\n this.selectedTechniques.add(id);\n this.checkValues(true, id);\n }\n }\n }\n }\n\n /**\n * Unselect the given technique in the given tactic\n * @param {Technique} technique to unselect\n * @param {Tactic} tactic wherein the technique occurs\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n */\n public unselectTechniqueInTactic(technique: Technique, tactic: Tactic, walkChildren = true): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // walk to parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.unselectTechniqueInTactic(technique.parent, tactic, true);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.unselectTechniqueInTactic(subtechnique, tactic, false);\n }\n }\n }\n\n let technique_tactic_id = technique.get_technique_tactic_id(tactic);\n this.selectedTechniques.delete(technique_tactic_id);\n this.checkValues(false, technique_tactic_id);\n }\n\n /**\n * Unselect all techniques in the given tactic\n * @param {Tactic} tactic wherein the techniques occur\n */\n public unselectAllTechniquesInTactic(tactic: Tactic): void {\n for (let technique of tactic.techniques) {\n this.unselectTechnique(technique, tactic);\n }\n }\n\n /**\n * Unselect the given technique across all tactics in which it occurs\n * @param {Technique} technique to unselect\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n */\n public unselectTechniqueAcrossTactics(technique: Technique, walkChildren = true): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // walk to parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.unselectTechniqueAcrossTactics(technique.parent, true);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.unselectTechniqueAcrossTactics(subtechnique, false);\n }\n }\n }\n\n for (let id of technique.get_all_technique_tactic_ids()) {\n this.selectedTechniques.delete(id);\n this.checkValues(false, id);\n }\n }\n\n /* Unselect all techniques */\n public clearSelectedTechniques(): void {\n this.selectedTechniques.clear();\n this.activeTvm = undefined;\n this.linkMismatches = [];\n this.metadataMismatches = [];\n }\n\n /* Select all techniques */\n public selectAllTechniques(): void {\n this.clearSelectedTechniques();\n this.invertSelection();\n }\n\n /* Set all selected techniques to deselected, and select all techniques not currently selected */\n public invertSelection(): void {\n let previouslySelected = new Set(this.selectedTechniques);\n this.clearSelectedTechniques();\n\n let self = this;\n this.techniqueVMs.forEach(function (tvm, key) {\n if (!previouslySelected.has(tvm.technique_tactic_union_id)) {\n if ((self.selectVisibleTechniques && tvm.isVisible) || !self.selectVisibleTechniques) {\n if (!self.isCurrentlyEditing()) {\n // first selection\n self.activeTvm = self.getTechniqueVM_id(tvm.technique_tactic_union_id);\n }\n self.selectedTechniques.add(tvm.technique_tactic_union_id);\n self.checkValues(true, tvm.technique_tactic_union_id);\n }\n }\n });\n }\n\n /**\n * Select all techniques with annotations if nothing is currently selected, or\n * select a subset of the current selection that has annotations\n */\n public selectAnnotated(): void {\n let self = this;\n if (this.isCurrentlyEditing()) {\n // deselect techniques without annotations\n let selected = new Set(this.selectedTechniques);\n this.techniqueVMs.forEach(function (tvm, key) {\n if (selected.has(tvm.technique_tactic_union_id) && !tvm.annotated()) {\n self.selectedTechniques.delete(tvm.technique_tactic_union_id);\n self.checkValues(false, tvm.technique_tactic_union_id);\n }\n });\n } else {\n // select all techniques with annotations\n this.techniqueVMs.forEach(function (tvm, key) {\n if (tvm.annotated()) {\n if ((self.selectVisibleTechniques && tvm.isVisible) || !self.selectVisibleTechniques) {\n if (!self.isCurrentlyEditing()) self.activeTvm = self.getTechniqueVM_id(tvm.technique_tactic_union_id); // first selection\n self.selectedTechniques.add(tvm.technique_tactic_union_id);\n self.checkValues(true, tvm.technique_tactic_union_id);\n }\n }\n });\n }\n }\n\n /**\n * Select all techniques without annotations if nothing is currently selected, or\n * select a subset of the current selection that do not have annotations\n */\n public selectUnannotated(): void {\n let self = this;\n if (this.isCurrentlyEditing()) {\n // deselect techniques with annotations\n let selected = new Set(this.selectedTechniques);\n this.techniqueVMs.forEach(function (tvm, key) {\n if (selected.has(tvm.technique_tactic_union_id) && tvm.annotated()) {\n self.selectedTechniques.delete(tvm.technique_tactic_union_id);\n self.checkValues(false, tvm.technique_tactic_union_id);\n }\n });\n } else {\n // select all techniques without annotations\n this.selectAnnotated();\n this.invertSelection();\n }\n }\n\n /**\n * Copies all annotations from unchanged techniques and techniques\n * which have had minor changes\n */\n public initCopyAnnotations(): void {\n let self = this;\n\n function copy(attackID: string) {\n let fromTechnique = self.dataService.getTechnique(attackID, self.compareTo.domainVersionID);\n let domain = self.dataService.getDomain(self.domainVersionID);\n let tactics = fromTechnique.tactics.map((shortname) => domain.tactics.find((t) => t.shortname == shortname));\n tactics.forEach((tactic) => {\n let fromVM = self.compareTo.getTechniqueVM(fromTechnique, tactic);\n if (fromVM.annotated()) {\n let toTechnique = self.dataService.getTechnique(attackID, self.domainVersionID);\n self.copyAnnotations(fromTechnique, toTechnique, tactic);\n }\n });\n }\n\n if (this.versionChangelog) {\n this.versionChangelog.unchanged.forEach((attackID) => copy(attackID));\n this.versionChangelog.minor_changes.forEach((attackID) => copy(attackID));\n }\n }\n\n /**\n * Copy annotations from one technique to another under the given tactic.\n * The previous technique will be disabled\n * @param fromTechnique the technique to copy annotations from\n * @param toTechnique the technique to copy annotations to\n * @param tactic the tactic the techniques are found under\n */\n public copyAnnotations(fromTechnique: Technique, toTechnique: Technique, tactic: Tactic): void {\n let fromVM = this.compareTo.getTechniqueVM(fromTechnique, tactic);\n let toVM = this.getTechniqueVM(toTechnique, tactic);\n\n this.versionChangelog.reviewed.delete(fromTechnique.attackID);\n\n toVM.deserialize(fromVM.serialize(), fromTechnique.attackID, tactic.shortname);\n this.updateScoreColor(toVM);\n fromVM.enabled = false;\n\n this.versionChangelog.copied.add(fromVM.technique_tactic_union_id);\n if (fromTechnique.get_all_technique_tactic_ids().every((id) => this.versionChangelog.copied.has(id))) {\n this.versionChangelog.reviewed.add(fromTechnique.attackID);\n }\n }\n\n /**\n * Reset the techniqueVM that the annotations were previously copied to\n * and re-enable the technique the annotations were copied from\n * @param fromTechnique the technique that annotations were copied from\n * @param toTechnique the technique that annotations were copied to\n * @param tactic the tactic the techniques are found under\n */\n public revertCopy(fromTechnique: Technique, toTechnique: Technique, tactic: Tactic): void {\n let fromVM = this.compareTo.getTechniqueVM(fromTechnique, tactic);\n let toVM = this.getTechniqueVM(toTechnique, tactic);\n this.versionChangelog.reviewed.delete(fromTechnique.attackID);\n\n toVM.resetAnnotations();\n fromVM.enabled = true;\n\n this.versionChangelog.copied.delete(fromVM.technique_tactic_union_id);\n if (!fromTechnique.get_all_technique_tactic_ids().every((id) => this.versionChangelog.copied.has(id))) {\n this.versionChangelog.reviewed.delete(fromTechnique.attackID);\n }\n }\n\n /**\n * Return true if the given technique is selected, false otherwise\n * @param {Technique} technique the technique to check\n * * @param {Tactic} tactic wherein the technique occurs\n * @return {boolean} true if selected, false otherwise\n */\n public isTechniqueSelected(technique: Technique, tactic: Tactic, walkChildren = true): boolean {\n if (this.selectTechniquesAcrossTactics) {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // check parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n return this.isTechniqueSelected(technique.parent, tactic, true);\n } else {\n for (let subtechnique of technique.subtechniques) {\n if (this.isTechniqueSelected(subtechnique, tactic, false)) return true;\n }\n }\n }\n\n for (let id of technique.get_all_technique_tactic_ids()) {\n if (this.selectedTechniques.has(id)) return true;\n }\n return false;\n } else {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // check parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n return this.isTechniqueSelected(technique.parent, tactic, true);\n } else {\n for (let subtechnique of technique.subtechniques) {\n if (this.isTechniqueSelected(subtechnique, tactic, false)) return true;\n }\n }\n }\n return this.selectedTechniques.has(technique.get_technique_tactic_id(tactic));\n }\n }\n\n /**\n * Return the number of selected techniques\n * @return {number} the number of selected techniques\n */\n public getSelectedTechniqueCount(): number {\n if (this.selectTechniquesAcrossTactics) {\n if (this.selectSubtechniquesWithParent) {\n // match across tactics\n // match subtechniques and parents\n\n // matches this part\n // vvvvv\n // T1001.001^TA1000\n let ids = new Set();\n this.selectedTechniques.forEach((unionID) => ids.add(unionID.split('^')[0].split('.')[0]));\n return ids.size;\n } else {\n // match across tactics\n // differentiate subtechniques and parents\n\n // matches this part\n // vvvvv vvv\n // T1001.001^TA1000\n let ids = new Set();\n this.selectedTechniques.forEach((unionID) => ids.add(unionID.split('^')[0]));\n return ids.size;\n }\n } else {\n if (this.selectSubtechniquesWithParent) {\n // differentiate tactics\n // match subtechniques and parents\n\n // matches this part\n // vvvvv vvvvvv\n // T1001.001^TA1000\n let ids = new Set();\n this.selectedTechniques.forEach((unionID) => {\n let split = unionID.split('^');\n let tacticID = split[1];\n let techniqueID = split[0].split('.')[0];\n ids.add(techniqueID + '^' + tacticID);\n });\n return ids.size;\n } else {\n // differentiate tactics\n // differentiate subtechniques and parents\n\n // matches this part\n // vvvvv vvv vvvvvv\n // T1001.001^TA1000\n return this.selectedTechniques.size;\n }\n }\n }\n\n /**\n * Returns true if the given tactic is selected\n * @param {Tactic} tactic to check\n * @return {boolean} true if selected\n */\n public isTacticSelected(tactic: Tactic): boolean {\n let self = this;\n let isSelected = tactic.techniques.every(function (technique) {\n return self.isTechniqueSelected(technique, tactic);\n });\n return isSelected;\n }\n\n /**\n * Return true if currently editing any techniques, false otherwise\n * @return {boolean} true if currently editing any techniques, false otherwise\n */\n public isCurrentlyEditing(): boolean {\n return this.getSelectedTechniqueCount() > 0;\n }\n\n /**\n * Edit the selected techniques\n * @param {string} field the field to edit\n * @param {any} value the value to place in the field\n */\n public editSelectedTechniques(field: string, value: any): void {\n this.selectedTechniques.forEach((id) => {\n this.getTechniqueVM_id(id)[field] = value;\n });\n }\n\n /**\n * Edit the selected techniques list attribute\n * @param {string} field the field to edit\n * @param {(Link|Metadata)[]} values the list of values to place in the field\n */\n public editSelectedTechniqueValues(field: string, values: (Link | Metadata)[]): void {\n let fieldToType: any = { links: Link, metadata: Metadata };\n this.selectedTechniques.forEach((id) => {\n const value_clone = values.map((value) => {\n // deep copy\n let clone = new fieldToType[field]();\n clone.deserialize(value.serialize());\n return clone;\n });\n this.getTechniqueVM_id(id)[field] = value_clone;\n });\n }\n\n /**\n * Reset the selected techniques' annotations to their default values\n */\n public resetSelectedTechniques(): void {\n this.selectedTechniques.forEach((id) => {\n this.getTechniqueVM_id(id).resetAnnotations();\n });\n }\n\n /**\n * Get get a common value from the selected techniques\n * @param field the field to get the common value from\n * @return the value of the field if all selected techniques have the same value, otherwise \"\"\n */\n public getEditingCommonValue(field: string): any {\n if (!this.isCurrentlyEditing()) return '';\n let ids = Array.from(this.selectedTechniques);\n let commonValue = this.getTechniqueVM_id(ids[0])[field];\n for (let i = 1; i < ids.length; i++) {\n if (this.getTechniqueVM_id(ids[i])[field] != commonValue) return '';\n }\n return commonValue;\n }\n\n /**\n * If a technique has been selected, checks whether the link & metadata values of the selected technique match\n * the link & metadata values of the first selected technique. If a technique has been deselected, removes it from\n * the lists of mismatching techniques (if applicable) or re-evalutes the lists of mismatching\n * techniques in the case where the deselected technique was the first selected technique\n * @param selected true if the technique was selected, false if it was deselected\n * @param id the technique_tactic_union_id of the technique\n */\n public checkValues(selected: boolean, id: string): void {\n if (selected) {\n // selected technique(s)\n let tvm = this.getTechniqueVM_id(id);\n if (this.activeTvm.linkStr !== tvm.linkStr) this.linkMismatches.push(id);\n if (this.activeTvm.metadataStr !== tvm.metadataStr) this.metadataMismatches.push(id);\n } else {\n // deselected technique(s)\n if (this.linkMismatches.includes(id)) this.linkMismatches.splice(this.linkMismatches.indexOf(id), 1);\n if (this.metadataMismatches.includes(id)) this.metadataMismatches.splice(this.metadataMismatches.indexOf(id), 1);\n\n if (this.activeTvm && this.activeTvm.technique_tactic_union_id == id) {\n // edge case where deselection was the first selected technique\n let first_id = this.selectedTechniques.values().next().value;\n this.activeTvm = first_id ? this.getTechniqueVM_id(first_id) : undefined;\n\n // re-evaluate mismatched values\n this.linkMismatches = [];\n this.metadataMismatches = [];\n for (let technique_tactic_id of Array.from(this.selectedTechniques.values())) {\n let tvm = this.getTechniqueVM_id(technique_tactic_id);\n if (this.activeTvm.linkStr !== tvm.linkStr) this.linkMismatches.push(technique_tactic_id);\n if (this.activeTvm.metadataStr !== tvm.metadataStr) this.metadataMismatches.push(technique_tactic_id);\n }\n }\n }\n }\n\n /**\n * Filter tactics according to viewmodel state\n * @param {Tactic[]} tactics to filter\n * @param {Matrix} matrix that the tactics fall under\n * @returns {Tactic[]} filtered tactics\n */\n public filterTactics(tactics: Tactic[], matrix: Matrix): Tactic[] {\n if (!this.loaded) return; // still initializing technique VMs\n return tactics.filter((tactic: Tactic) => this.filterTechniques(tactic.techniques, tactic, matrix).length > 0);\n }\n\n /**\n * Filter techniques according to viewModel state\n * @param {Technique[]} techniques list of techniques to filter\n * @param {Tactic} tactic tactic the techniques fall under\n * @param {Matrix} matrix that the techniques fall under\n * @returns {Technique[]} filtered techniques\n */\n public filterTechniques(techniques: Technique[], tactic: Tactic, matrix: Matrix): Technique[] {\n return techniques.filter((technique: Technique) => {\n let techniqueVM = this.getTechniqueVM(technique, tactic);\n // filter by enabled\n if (this.hideDisabled && !this.isSubtechniqueEnabled(technique, techniqueVM, tactic)) {\n techniqueVM.setIsVisible(false);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(false);\n });\n return false;\n }\n if (matrix.name == 'PRE-ATT&CK') {\n techniqueVM.setIsVisible(true);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(true);\n });\n return true; // don't filter by platform if it's pre-attack\n }\n // filter by platform\n let platforms = new Set(technique.platforms);\n if (platforms.size == 0) { platforms.add('None'); }\n for (let platform of this.filters.platforms.selection) {\n if (platforms.has(platform)) {\n techniqueVM.setIsVisible(true);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(true);\n });\n return true; //platform match\n }\n }\n techniqueVM.setIsVisible(false);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(false);\n });\n return false; // no platform match\n });\n }\n\n public isSubtechniqueEnabled(technique, techniqueVM, tactic): boolean {\n if (techniqueVM.enabled) return true;\n else if (technique.subtechniques.length > 0) {\n return technique.subtechniques.some((subtechnique) => {\n let sub_platforms = new Set(subtechnique.platforms);\n let filter = new Set(this.filters.platforms.selection);\n let platforms = new Set(Array.from(filter.values()).filter((p) => sub_platforms.has(p)));\n return this.getTechniqueVM(subtechnique, tactic).enabled && platforms.size > 0;\n });\n } else return false;\n }\n\n /**\n * Sort techniques according to viewModel state\n * @param {Technique[]} techniques techniques to sort\n * @param {Tactic} tactic tactic the techniques fall under\n * @returns {Technique[]} sorted techniques\n */\n public sortTechniques(techniques: Technique[], tactic: Tactic): Technique[] {\n return techniques.sort((technique1: Technique, technique2: Technique) => {\n const techniqueVM1 = this.getTechniqueVM(technique1, tactic);\n const techniqueVM2 = this.getTechniqueVM(technique2, tactic);\n\n this.sortSubTechniques(technique1, tactic);\n this.sortSubTechniques(technique2, tactic);\n\n // prefer techniques scored 0 over unscored\n let score1 = techniqueVM1.score.length > 0 ? Number(techniqueVM1.score) : Number.NEGATIVE_INFINITY;\n let score2 = techniqueVM2.score.length > 0 ? Number(techniqueVM2.score) : Number.NEGATIVE_INFINITY;\n\n if (this.layout.showAggregateScores) {\n // if enabled, factor aggregate scores of parent techniques into sorting\n if (technique1.subtechniques.length > 0) score1 = this.calculateAggregateScore(technique1, tactic);\n if (technique2.subtechniques.length > 0) score2 = this.calculateAggregateScore(technique2, tactic);\n }\n return this.sortingAlgorithm(technique1, technique2, score1, score2);\n });\n }\n\n /**\n * Sort subtechniques according to viewModel state\n * @param {Technique} technique technique to sort\n * @param {Tactic} tactic tactic the technique falls under\n */\n public sortSubTechniques(technique: Technique, tactic: Tactic) {\n technique.subtechniques.sort((technique1: Technique, technique2: Technique) => {\n const techniqueVM1 = this.getTechniqueVM(technique1, tactic);\n const techniqueVM2 = this.getTechniqueVM(technique2, tactic);\n const score1 = techniqueVM1.score.length > 0 ? Number(techniqueVM1.score) : 0;\n const score2 = techniqueVM2.score.length > 0 ? Number(techniqueVM2.score) : 0;\n return this.sortingAlgorithm(technique1, technique2, score1, score2);\n });\n }\n\n /**\n * Execute the sorting algorithm for techniques according to the viewModel state\n * @param {Technique} technique1 the first technique in the comparison\n * @param {Technique} technique2 the second technique in the comparison\n * @param {number} score1 the first score in the comparison\n * @param {number} score2 the second score in the comparison\n * @returns technique or score comparison\n */\n private sortingAlgorithm(technique1: Technique, technique2: Technique, score1: number, score2: number) {\n switch (this.sorting) {\n case 1: // Z-A\n return technique2.name.localeCompare(technique1.name);\n case 2: // 1-2\n if (score1 === score2) {\n return technique1.name.localeCompare(technique2.name);\n } else {\n return score1 - score2;\n }\n case 3: // 2-1\n if (score1 === score2) {\n return technique1.name.localeCompare(technique2.name);\n } else {\n return score2 - score1;\n }\n case 0: // A-Z\n default:\n return technique1.name.localeCompare(technique2.name);\n }\n }\n\n public calculateAggregateScore(technique: Technique, tactic: Tactic): any {\n const tvm = this.getTechniqueVM(technique, tactic);\n let score = tvm.score.length > 0 ? Number(tvm.score) : 0;\n let validTechniquesCount = tvm.score.length > 0 ? 1 : 0;\n let scores = [score];\n\n technique.subtechniques.forEach((subtechnique) => {\n const svm = this.getTechniqueVM(subtechnique, tactic);\n const scoreNum = svm.score.length > 0 ? Number(svm.score) : 0;\n if (svm.score.length > 0) {\n validTechniquesCount += 1;\n scores.push(scoreNum);\n }\n });\n\n if (validTechniquesCount === 0) return tvm.score.length > 0 ? score : Number.NEGATIVE_INFINITY;\n\n let aggScore: any = 0;\n\n switch (this.layout.aggregateFunction) {\n case 'min':\n if (scores.length > 0) aggScore = Math.min(...scores);\n break;\n case 'max':\n if (scores.length > 0) aggScore = Math.max(...scores);\n break;\n case 'sum':\n aggScore = scores.reduce((a, b) => a + b);\n break;\n case 'average':\n default:\n // Divide by count of all subtechniques + 1 (for parent technique) if counting unscored is enabled\n // Otherwise, divide by count of all scored only\n score = scores.reduce((a, b) => a + b);\n aggScore = score / (this.layout.countUnscored ? technique.subtechniques.length + 1 : validTechniquesCount);\n break;\n }\n\n aggScore = aggScore.toFixed(2);\n tvm.aggregateScoreColor = this.gradient.getHexColor(aggScore.toString());\n tvm.aggregateScore = Number.isFinite(+aggScore) ? (+aggScore).toString() : '';\n return +aggScore;\n }\n\n /**\n * Apply sort and filter state to techniques\n * @param {Technique[]} techniques techniques to sort and filter\n * @param {Tactic} tactic that the techniques fall under\n * @param {Matrix} matrix that the techniques fall under\n * @returns {Technique[]} sorted and filtered techniques\n */\n public applyControls(techniques: Technique[], tactic: Tactic, matrix: Matrix): Technique[] {\n return this.sortTechniques(this.filterTechniques(techniques, tactic, matrix), tactic);\n }\n\n /**\n * List of visible technique and subtechnique attack IDs\n * @returns list of strings of each visible technique and subtechnique attack ID\n */\n public getVisibleTechniquesList(): string[] {\n let visibleTechniques: string[] = [];\n this.techniqueVMs.forEach((t) => {\n if (t.isVisible) {\n visibleTechniques.push(t.technique_tactic_union_id);\n }\n });\n return visibleTechniques;\n }\n\n /**\n * Number of modified hidden techniques\n * @returns number of hidden techniques that are annotated\n */\n public modifiedHiddenTechniques(): number {\n let modifiedHiddenTechniques = 0;\n this.techniqueVMs.forEach(function (value, key) {\n if (value.modified() && value.isVisible === false) {\n modifiedHiddenTechniques++;\n }\n });\n return modifiedHiddenTechniques;\n }\n\n /**\n * Stringify this ViewModel\n * @return string representation\n */\n public serialize(downloadAnnotationsOnVisibleTechniques: boolean): string {\n let modifiedTechniqueVMs = [];\n this.techniqueVMs.forEach(function (value, key) {\n if (value.modified() && !downloadAnnotationsOnVisibleTechniques) {\n modifiedTechniqueVMs.push(JSON.parse(value.serialize())); //only save techniqueVMs which have been modified\n } else if (value.modified() && value.isVisible === true && downloadAnnotationsOnVisibleTechniques) {\n modifiedTechniqueVMs.push(JSON.parse(value.serialize())); //only save techniqueVMs which have been modified and are visible\n }\n });\n let rep: { [k: string]: any } = {};\n rep.name = this.name;\n\n rep.versions = {\n attack: this.dataService.getDomain(this.domainVersionID).getVersion(),\n navigator: globals.navVersion,\n layer: globals.layerVersion,\n };\n\n let domain = this.dataService.getDomain(this.domainVersionID);\n rep.domain = domain.domain_identifier;\n if (domain.isCustom) {\n // custom data url\n rep.customDataURL = domain.urls[0];\n }\n rep.description = this.description;\n rep.filters = JSON.parse(this.filters.serialize());\n rep.sorting = this.sorting;\n rep.layout = this.layout.serialize();\n rep.hideDisabled = this.hideDisabled;\n rep.techniques = modifiedTechniqueVMs;\n rep.gradient = JSON.parse(this.gradient.serialize());\n rep.legendItems = JSON.parse(JSON.stringify(this.legendItems));\n rep.metadata = this.metadata.filter((m) => m.valid()).map((m) => m.serialize());\n rep.links = this.links.filter((l) => l.valid()).map((l) => l.serialize());\n\n rep.showTacticRowBackground = this.showTacticRowBackground;\n rep.tacticRowBackground = this.tacticRowBackground;\n rep.selectTechniquesAcrossTactics = this.selectTechniquesAcrossTactics;\n rep.selectSubtechniquesWithParent = this.selectSubtechniquesWithParent;\n rep.selectVisibleTechniques = this.selectVisibleTechniques;\n\n return JSON.stringify(rep, null, '\\t');\n }\n\n /**\n * Restore the domain and version from a string\n * @param rep string to restore from\n * @return string representation of the obj version\n */\n public deserializeDomainVersionID(rep: any): string {\n let versionNumber = '';\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n this.name = obj.name;\n // layer with no specified version defaults to current version\n this.version = this.dataService.latestVersion.number;\n if ('versions' in obj) {\n if ('attack' in obj.versions) {\n if (typeof obj.versions.attack === 'string') {\n if (obj.versions.attack.length > 0) this.version = obj.versions.attack.match(/\\d+/g)[0];\n } else console.error('TypeError: attack version field is not a string');\n }\n versionNumber = String(obj.versions['layer']);\n }\n if ('version' in obj) {\n // backwards compatibility with Layer Format 3\n versionNumber = String(obj.version);\n }\n // patch for old domain name convention\n if (obj.domain in this.dataService.domain_backwards_compatibility) {\n this.domain = this.dataService.domain_backwards_compatibility[obj.domain];\n } else {\n this.domain = obj.domain;\n }\n this.domainVersionID = this.dataService.getDomainVersionID(this.domain, this.version);\n return versionNumber;\n }\n\n /**\n * Restore this vm from a string\n * @param rep string to restore from\n */\n public deserialize(rep: any, restoreTechniques: boolean = true): void {\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n\n if ('description' in obj) {\n if (typeof obj.description === 'string') this.description = obj.description;\n else console.error('TypeError: description field is not a string');\n }\n if ('filters' in obj) {\n this.filters.deserialize(obj.filters);\n }\n if ('sorting' in obj) {\n if (typeof obj.sorting === 'number') this.sorting = obj.sorting;\n else console.error('TypeError: sorting field is not a number');\n }\n if ('hideDisabled' in obj) {\n if (typeof obj.hideDisabled === 'boolean') this.hideDisabled = obj.hideDisabled;\n else console.error('TypeError: hideDisabled field is not a boolean');\n }\n\n if ('gradient' in obj) {\n this.gradient = new Gradient();\n this.gradient.deserialize(JSON.stringify(obj.gradient));\n }\n\n if ('legendItems' in obj) {\n for (let item of obj.legendItems) {\n let legendItem = {\n color: '#defa217',\n label: 'default label',\n };\n if (!('label' in item)) {\n console.error(\"Error: LegendItem required field 'label' not present\");\n continue;\n }\n if (!('color' in item)) {\n console.error(\"Error: LegendItem required field 'label' not present\");\n continue;\n }\n\n if (typeof item.label === 'string') {\n legendItem.label = item.label;\n } else {\n console.error('TypeError: legendItem label field is not a string');\n continue;\n }\n\n if (typeof item.color === 'string' && tinycolor(item.color).isValid()) {\n legendItem.color = item.color;\n } else {\n console.error('TypeError: legendItem color field is not a color-string:', item.color, '(', typeof item.color, ')');\n continue;\n }\n this.legendItems.push(legendItem);\n }\n }\n\n if ('showTacticRowBackground' in obj) {\n if (typeof obj.showTacticRowBackground === 'boolean') this.showTacticRowBackground = obj.showTacticRowBackground;\n else console.error('TypeError: showTacticRowBackground field is not a boolean');\n }\n if ('tacticRowBackground' in obj) {\n if (typeof obj.tacticRowBackground === 'string' && tinycolor(obj.tacticRowBackground).isValid())\n this.tacticRowBackground = obj.tacticRowBackground;\n else\n console.error(\n 'TypeError: tacticRowBackground field is not a color-string:',\n obj.tacticRowBackground,\n '(',\n typeof obj.tacticRowBackground,\n ')'\n );\n }\n if ('selectTechniquesAcrossTactics' in obj) {\n if (typeof obj.selectTechniquesAcrossTactics === 'boolean') this.selectTechniquesAcrossTactics = obj.selectTechniquesAcrossTactics;\n else console.error('TypeError: selectTechniquesAcrossTactics field is not a boolean');\n }\n if ('selectSubtechniquesWithParent' in obj) {\n if (typeof obj.selectSubtechniquesWithParent === 'boolean') this.selectSubtechniquesWithParent = obj.selectSubtechniquesWithParent;\n else console.error('TypeError: selectSubtechniquesWithParent field is not a boolean');\n }\n if ('selectVisibleTechniques' in obj) {\n if (typeof obj.selectVisibleTechniques === 'boolean') this.selectVisibleTechniques = obj.selectVisibleTechniques;\n else console.error('TypeError: selectVisibleTechniques field is not a boolean');\n }\n if ('techniques' in obj && restoreTechniques) {\n if (obj.techniques.length > 0) {\n for (let objTechnique of obj.techniques) {\n if ('tactic' in objTechnique) {\n let tvm = new TechniqueVM('');\n tvm.deserialize(JSON.stringify(objTechnique), objTechnique.techniqueID, objTechnique.tactic);\n this.setTechniqueVM(tvm);\n } else {\n // occurs in multiple tactics, match to Technique by attackID\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.attackID == objTechnique.techniqueID) {\n // match technique\n // don't load deprecated/revoked, causes crash since tactics don't get loaded on revoked techniques\n if (technique.deprecated || technique.revoked) break;\n\n for (let tactic of technique.tactics) {\n let tvm = new TechniqueVM('');\n tvm.deserialize(JSON.stringify(objTechnique), objTechnique.techniqueID, tactic);\n this.setTechniqueVM(tvm);\n }\n break;\n }\n //check against subtechniques\n for (let subtechnique of technique.subtechniques) {\n if (subtechnique.attackID == objTechnique.techniqueID) {\n // don't load deprecated/revoked, causes crash since tactics don't get loaded on revoked techniques\n if (subtechnique.deprecated || subtechnique.revoked) break;\n\n for (let tactic of subtechnique.tactics) {\n let tvm = new TechniqueVM('');\n tvm.deserialize(JSON.stringify(objTechnique), objTechnique.techniqueID, tactic);\n this.setTechniqueVM(tvm);\n }\n break;\n }\n }\n }\n }\n }\n }\n }\n if ('metadata' in obj) {\n for (let metadataObj of obj.metadata) {\n let m = new Metadata();\n m.deserialize(metadataObj);\n if (m.valid()) this.metadata.push(m);\n }\n }\n if ('links' in obj) {\n for (let link of obj.links) {\n let l = new Link();\n l.deserialize(link);\n if (l.valid()) this.links.push(l);\n }\n }\n // add custom data URL\n if ('customDataURL' in obj) {\n this.bundleURL = obj.customDataURL;\n }\n if ('layout' in obj) {\n this.layout.deserialize(obj.layout);\n } else if ('viewMode' in obj) {\n /*\n * viewMode backwards compatibility:\n * 0: full table (side layout, show name)\n * 1: compact table (side layout, show ID)\n * 2: mini table (mini layout, show neither name nor ID)\n */\n if (typeof obj.viewMode === 'number') {\n switch (obj.viewMode) {\n case 1:\n this.layout.layout = 'side';\n this.layout.showName = false;\n this.layout.showID = true;\n break;\n case 2:\n this.layout.layout = 'mini';\n this.layout.showName = false;\n this.layout.showID = false;\n break;\n case 0:\n default:\n break; //default matrix layout already initialized\n }\n } else console.error('TypeError: viewMode field is not a number');\n }\n\n this.updateGradient();\n }\n\n /* Add a color to the end of the gradient */\n public addGradientColor(): void {\n this.gradient.addColor();\n this.updateGradient();\n }\n\n /**\n * Remove color at the given index\n * @param index index to remove color at\n */\n public removeGradientColor(index: number): void {\n this.gradient.removeColor(index);\n this.updateGradient();\n }\n\n /* Update this vm's gradient */\n public updateGradient(): void {\n this.gradient.updateGradient();\n let self = this;\n this.techniqueVMs.forEach(function (tvm, key) {\n tvm.scoreColor = self.gradient.getHexColor(tvm.score);\n });\n this.updateLegendColorPresets();\n }\n\n /**\n * Update the score color of a single technique VM to match the current\n * score and gradient\n * @param tvm technique VM to update\n */\n public updateScoreColor(tvm: TechniqueVM): void {\n tvm.scoreColor = this.gradient.getHexColor(tvm.score);\n }\n\n public addLegendItem(): void {\n let legendItem = {\n label: 'NewItem',\n color: '#00ffff',\n };\n this.legendItems.push(legendItem);\n }\n\n public deleteLegendItem(index: number): void {\n this.legendItems.splice(index, 1);\n }\n\n public clearLegend(): void {\n this.legendItems = [];\n }\n\n public updateLegendColorPresets(): void {\n this.legendColorPresets = [];\n this.backgroundPresets.forEach((preset) => this.legendColorPresets.push(preset));\n this.gradient.colors.forEach((color) => this.legendColorPresets.push(color.color));\n }\n}\n","import { Component, Input, ViewChild, AfterViewInit, ViewEncapsulation, OnDestroy, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { ConfigService } from '../services/config.service';\nimport { TabsComponent } from '../tabs/tabs.component';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { ViewModel } from '../classes';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Subscription } from 'rxjs';\nimport * as Excel from 'exceljs/dist/exceljs.min.js';\nimport tinycolor from 'tinycolor2';\nimport { isIE } from '../utils/utils';\n\n@Component({\n selector: 'DataTable',\n templateUrl: './data-table.component.html',\n styleUrls: ['./data-table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DataTableComponent implements AfterViewInit, OnDestroy {\n @ViewChild('scrollRef') private scrollRef: ElementRef;\n\n @Input() viewModel: ViewModel; // ViewModel being used by this data-table\n @Input() currentDropdown: string = ''; // current dropdown menu\n\n @Output() dropdownChange = new EventEmitter();\n @Output() onScroll = new EventEmitter();\n\n public customContextMenuItems = []; // items for custom context menu\n public showingLegend = false; // is the legend panel currently expanded\n\n public get layerDomainVersion(): string {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n return `${domain.name} v${domain.version.number}`;\n }\n\n // scroll handling\n public previousScrollTop: number = 0;\n public headerHeight: number = 0;\n public footerHeight: number = 32;\n public controlsHeight: number = 34;\n public includedControls: any;\n public isScrollUp: boolean = true;\n public handleScroll = (e) => {\n const diff = this.scrollRef.nativeElement.scrollTop - this.previousScrollTop;\n if ((!this.isScrollUp && diff < 0) || (this.isScrollUp && diff > 0)) {\n this.isScrollUp = diff < 0;\n this.calculateScrollHeight();\n this.previousScrollTop = this.scrollRef.nativeElement.scrollTop;\n } else if (!this.isScrollUp && this.scrollRef.nativeElement.scrollTop > 0 && diff === 0) {\n this.calculateScrollHeight();\n }\n };\n public calculateScrollHeight = () => {\n const tabOffset = this.isScrollUp ? 0 : this.headerHeight;\n this.onScroll.emit(-1 * tabOffset);\n const scrollWindowHeight = this.isScrollUp ? this.headerHeight + this.controlsHeight + this.footerHeight : this.controlsHeight;\n this.scrollRef.nativeElement.style.height = `calc(100vh - ${scrollWindowHeight}px)`;\n };\n\n /*\n * 0: expand subtechniques\n * 1: expand annotated subtechniques\n * 2: collapse subtechniques\n */\n public showSubtechniquesType: number = 0;\n\n public downloadAnnotationsOnVisibleTechniques: boolean = false;\n\n showControlsBar = true;\n previousControlSection = '';\n\n currentControlSection = \"selection\";\n\n showHelpDropDown = false;\n\n // edit field bindings\n public commentEditField: string = '';\n public scoreEditField: string = '';\n\n private selectionChangeSubscription: Subscription;\n \n public layerControlsList = [];\n public techniqueControlsList = [];\n public selectionControlsList = [];\n\n showControlLabels = {\n selection: false,\n layer: false,\n technique: false,\n };\n\n constructor(\n public dataService: DataService,\n private tabs: TabsComponent,\n private sanitizer: DomSanitizer,\n private viewModelsService: ViewModelsService,\n public configService: ConfigService\n ) {\n this.selectionChangeSubscription = this.viewModelsService.onSelectionChange.subscribe(() => {\n this.onTechniqueSelect();\n });\n this.includedControls = configService.featureList;\n for(let i=0;i ('.header-wrapper')?.offsetHeight;\n this.scrollRef.nativeElement.style.height = `calc(100vh - ${this.headerHeight + this.controlsHeight + this.footerHeight}px)`;\n this.scrollRef.nativeElement.addEventListener('scroll', this.handleScroll);\n }\n\n ngOnDestroy(): void {\n this.selectionChangeSubscription.unsubscribe();\n document.body.removeEventListener('scroll', this.handleScroll);\n }\n\n public updateStickyToolbar() {\n this.viewModel.stickyToolbar = !this.viewModel.stickyToolbar;\n if (this.viewModel.stickyToolbar) {\n this.headerHeight = document.querySelector('.header-wrapper')?.offsetHeight;\n this.scrollRef.nativeElement.style.height = `calc(100vh - ${this.headerHeight + this.controlsHeight + this.footerHeight}px)`;\n this.scrollRef.nativeElement.addEventListener('scroll', this.handleScroll);\n } else {\n this.scrollRef.nativeElement.style.height = null;\n this.scrollRef.nativeElement.addEventListener('scroll', this.handleScroll);\n }\n }\n\n handleSelectionControlsSettingsDropdown() {\n if (this.currentDropdown !== 'selection_control_settings') {\n this.currentDropdown = 'selection_control_settings';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n handleLayerControlsSettingsDropdown() {\n if (this.currentDropdown !== 'layer_control_settings') {\n this.currentDropdown = 'layer_control_settings';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n handleTechniqueControlsSettingsDropdown() {\n if (this.currentDropdown !== 'technique_control_settings') {\n this.currentDropdown = 'technique_control_settings';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n handleKeyDownTechnique(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleTechniqueControlsSettingsDropdown();\n }\n }\n \n handleKeyDownSelection(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleSelectionControlsSettingsDropdown();\n }\n }\n\n handleKeyDownLayer(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleLayerControlsSettingsDropdown();\n }\n }\n\n isControlIncluded(control, subfeature) {\n for(let i=0;i {\n const blob = new Blob([data], { type: 'application/octet-stream' });\n const filename = this.viewModel.name.toLowerCase().replace(/ /g, '_') + '.xlsx';\n this.saveBlob(blob, filename);\n });\n }\n\n /** Export all layers to Excel */\n public saveAllLayersLocallyExcel(): void {\n // create new excel workbook\n let workbook = new Excel.Workbook();\n for (let i = 0; i < this.viewModelsService.viewModels.length; i++) {\n let domain = this.dataService.getDomain(this.viewModelsService.viewModels[i].domainVersionID);\n // create a worksheet for each matrix in the domain\n for (let matrix of domain.matrices) {\n let worksheet = workbook.addWorksheet(\n matrix.name + ' v' + domain.getVersion() + ' (' + this.viewModelsService.viewModels[i].name + '-' + i + ')'\n );\n this.saveLayerExcel_helper(matrix, worksheet, this.viewModelsService.viewModels[i]);\n }\n }\n // save file\n workbook.xlsx.writeBuffer().then((data) => {\n const blob = new Blob([data], { type: 'application/octet-stream' });\n const filename = this.viewModel.name.toLowerCase().replace(/ /g, '_') + '.xlsx';\n this.saveBlob(blob, filename);\n });\n }\n\n /** Helper function for saving layer in Excel format */\n public saveLayerExcel_helper(matrix, worksheet, viewModel): void {\n // create a worksheet for each matrix in the domain\n // create tactic columns\n let columns = viewModel.filterTactics(matrix.tactics, matrix).map((tactic) => {\n return { header: this.getDisplayName(tactic), key: tactic.name };\n });\n worksheet.columns = columns;\n\n // create cells\n for (let tactic of viewModel.filterTactics(matrix.tactics, matrix)) {\n let tacticCol = worksheet.getColumn(tactic.name);\n let techniques = viewModel.applyControls(tactic.techniques, tactic, matrix);\n let techniqueCells = techniques.map((technique) => {\n return technique.name;\n });\n let subtechniqueList = [];\n\n // create subtechnique cells, if shown\n let subtechniqueCells = [];\n for (let technique of techniques) {\n let techniqueRow = techniqueCells.indexOf(technique.name);\n let tvm = viewModel.getTechniqueVM(technique, tactic);\n\n if (!tvm.showSubtechniques) continue; // do not show sub-techniques, skip\n\n // retrieve subtechniques\n let subtechniques = viewModel.applyControls(technique.subtechniques, tactic, matrix).map((sub) => {\n return sub.name;\n });\n subtechniqueList = subtechniqueList.concat(technique.subtechniques);\n\n // format technique cells for subtechniques\n let excelIndex = this.addSubtechniqueCells(subtechniqueCells, techniqueCells, subtechniques, technique);\n\n // merge technique cells\n if (excelIndex > 0) {\n worksheet.mergeCells(techniqueRow + 2, tacticCol.number, techniqueRow + excelIndex + 1, tacticCol.number);\n }\n }\n\n if (subtechniqueCells.length > 0) {\n // add subtechniques column\n let id = columns.findIndex((col) => col.key == tactic.name);\n columns.splice(id + 1, 0, { header: this.getDisplayName(tactic), key: tactic.name + 'Subtechniques' });\n worksheet.columns = columns;\n\n // merge subtechniques header\n let subtechniqueCol = worksheet.getColumn(tactic.name + 'Subtechniques');\n worksheet.mergeCells(tacticCol.letter + '1:' + subtechniqueCol.letter + '1');\n subtechniqueCol.values = [tactic.name.toString() + 'Subtechniques'].concat(subtechniqueCells);\n\n // style subtechnique cells\n this.styleTechniqueCells(subtechniqueCol, subtechniqueList, viewModel, tactic, true);\n }\n tacticCol.values = [this.getDisplayName(tactic)].concat(techniqueCells);\n\n // style technique cells\n this.styleTechniqueCells(tacticCol, techniques, viewModel, tactic);\n }\n\n // style tactic headers\n this.styleTacticHeaders(worksheet, viewModel);\n\n worksheet.getRow(1).alignment = { horizontal: 'center' };\n worksheet.getRow(1).border = { bottom: { style: 'thin' } };\n worksheet.getRow(1).font = { bold: true };\n if (viewModel.showTacticRowBackground) {\n worksheet.getRow(1).fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF' + viewModel.tacticRowBackground.substring(1) } };\n worksheet.getRow(1).font = {\n bold: true,\n color: { argb: 'FF' + tinycolor.mostReadable(viewModel.tacticRowBackground, ['white', 'black']).toHex() },\n };\n }\n }\n\n /**\n * Style technique cells for Excel worksheet\n */\n public styleTechniqueCells(column, techniqueList, viewModel, tactic, isSubtechnique = false): void {\n const seen = [];\n\n column.eachCell((cell) => {\n if (cell.row > 1 && cell.value && cell.value !== undefined) {\n let technique = techniqueList.find((t) => {\n if (isSubtechnique) {\n return t.name == cell.value.substring(cell.value.indexOf(':') + 1).trim() && !seen.includes(t.attackID);\n }\n return t.name == cell.value.substring(cell.value.indexOf(':') + 1).trim() || t.attackID === cell.value;\n });\n seen.push(technique.attackID);\n let tvm = viewModel.getTechniqueVM(technique, tactic);\n this.styleCells(cell, technique, tvm);\n }\n });\n }\n\n /**\n * Style tactic headers for Excel worksheet\n */\n public styleTacticHeaders(worksheet, viewModel): void {\n worksheet.columns.forEach((column) => {\n if (viewModel.layout.showID && !viewModel.layout.showName) {\n column.width = column.header.length < 15 ? 15 : column.header.length;\n } else if (!viewModel.layout.showID && !viewModel.layout.showName) {\n column.width = 10;\n } else {\n column.width = column.header.length < 30 ? 30 : column.header.length;\n }\n });\n }\n\n /**\n * Format technique cells for sub-technique cells\n */\n public addSubtechniqueCells(subtechniqueCells, techniqueCells, subtechniques, technique): number {\n let techniqueRow = techniqueCells.indexOf(technique.name);\n let excelIndex = 0;\n for (let subtechnique of subtechniques) {\n if (excelIndex !== 0) {\n techniqueCells.splice(techniqueRow + excelIndex, 0, technique.name);\n }\n subtechniqueCells[techniqueRow + excelIndex++] = subtechnique;\n }\n return excelIndex;\n }\n\n /**\n * Get the display name for technique/tactic as shown in layout\n */\n public getDisplayName(technique): string {\n if (this.viewModel.layout.showID && this.viewModel.layout.showName) {\n return technique.attackID + ': ' + technique.name;\n } else if (this.viewModel.layout.showID) {\n return technique.attackID;\n } else if (this.viewModel.layout.showName) {\n return technique.name;\n } else {\n return '';\n }\n }\n\n /**\n * Handle drop down change\n */\n public handleDescriptionDropdown(): void {\n if (this.currentDropdown !== 'description') {\n this.currentDropdown = 'description';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n toggleShowControlsBar() {\n this.showControlsBar = !this.showControlsBar;\n }\n\n setCurrentControlSection(controlType) {\n this.currentControlSection = controlType;\n if (this.previousControlSection === controlType && this.showControlsBar) {\n this.showControlsBar = false;\n } else {\n this.showControlsBar = true;\n }\n this.previousControlSection = controlType;\n }\n\n /**\n * Handle export drop down change\n */\n public handleExportDropdown(): void {\n if (this.currentDropdown !== 'export') {\n this.currentDropdown = 'export';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n /**\n * Triggered on left click of technique\n */\n public onTechniqueSelect(): void {\n if (!this.viewModel.isCurrentlyEditing()) {\n if (['comment', 'score', 'colorpicker', 'link', 'metadata'].includes(this.currentDropdown)) {\n //remove technique control dropdowns, because everything was deselected\n this.currentDropdown = '';\n }\n return;\n }\n if (this.currentDropdown == 'link' || this.currentDropdown == 'metadata') {\n this.currentDropdown = '';\n return;\n }\n //else populate editing controls\n this.populateEditFields();\n }\n\n /**\n * Show all sub-techniques in layout view\n */\n public expandSubtechniques(showAnnotatedOnly?: boolean): void {\n if (this.viewModel.layout.layout == 'mini') return; // control disabled in mini layout\n this.viewModel.layout.expandedSubtechniques = showAnnotatedOnly ? 'annotated' : 'all';\n\n for (let technique of this.dataService.getDomain(this.viewModel.domainVersionID).techniques) {\n if (!technique.subtechniques?.length) continue; // no sub-techniques\n\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.viewModel.getTechniqueVM_id(id);\n if (!showAnnotatedOnly) {\n // expand all sub-techniques\n tvm.showSubtechniques = true;\n continue;\n }\n if (showAnnotatedOnly) {\n // expand all sub-techniques\n tvm.showSubtechniques = false;\n }\n\n // expand only if sub-techniques have annotations\n for (let subtechnique of technique.subtechniques) {\n tvm.showSubtechniques =\n tvm.showSubtechniques ||\n subtechnique.get_all_technique_tactic_ids().some((sid) => {\n let svm = this.viewModel.getTechniqueVM_id(sid);\n return svm.annotated();\n });\n }\n }\n }\n }\n\n /**\n * Hide all sub-techniques in layout view\n */\n public collapseSubtechniques(): void {\n if (this.viewModel.layout.layout == 'mini') return; // control disabled in mini layout\n this.viewModel.techniqueVMs.forEach(function (tvm, key) {\n tvm.showSubtechniques = false;\n });\n this.viewModel.layout.expandedSubtechniques = 'none';\n }\n\n /**\n * Expand all, annotated or no subtechniques based on selection\n */\n public showSubtechniquesTypeAlgorithm() {\n switch (this.showSubtechniquesType) {\n case 1: // expand all subtechniques\n this.expandSubtechniques();\n console.log(this.showSubtechniquesType);\n break;\n case 2: // expand only annotated subtechniques\n this.expandSubtechniques(true);\n console.log(this.showSubtechniquesType);\n break;\n case 3: // collapse all subtechniques\n this.collapseSubtechniques();\n console.log(this.showSubtechniquesType);\n this.showSubtechniquesType = 0;\n break;\n case 0:\n break;\n default:\n // expand all subtechniques\n this.expandSubtechniques();\n }\n }\n\n /**\n * Populate edit fields. Gets common values if common values exist for all editing values.\n */\n public populateEditFields(): void {\n this.commentEditField = this.viewModel.getEditingCommonValue('comment');\n this.scoreEditField = this.viewModel.getEditingCommonValue('score');\n }\n\n /**\n * Set the state (enabled/disabled) of the selected features\n */\n public setSelectedState(): void {\n let currentState = this.viewModel.getEditingCommonValue('enabled');\n if (currentState === '') this.viewModel.editSelectedTechniques('enabled', false);\n else this.viewModel.editSelectedTechniques('enabled', !currentState);\n }\n\n /**\n * Sanitize the given css so that it can be displayed without error\n */\n public sanitize(css) {\n return this.sanitizer.bypassSecurityTrustStyle(css);\n }\n\n /**\n * Is score input valid number\n * @param event keypress event just in case we need it\n * @return true if valid number\n */\n public validateScoreInput(event): boolean {\n let result: boolean = isNaN(Number(this.scoreEditField));\n return result;\n }\n\n /**\n * Return whether the given dropdown element would overflow the side of the page if aligned to the right of its anchor\n * @param dropdown the DOM node of the panel\n * @return true if it would overflow\n */\n public checkalign(dropdown): boolean {\n let anchor = dropdown.parentNode;\n return anchor.getBoundingClientRect().left + dropdown.getBoundingClientRect().width > document.body.clientWidth;\n }\n\n /**\n * Open an export layer render tab for the current layer\n */\n public exportRender(): void {\n this.tabs.openSVGDialog(this.viewModel);\n }\n\n /**\n * Open search & multiselect sidebar\n */\n public openSearch(): void {\n if (this.viewModel.sidebarContentType !== 'layerUpgrade') {\n this.viewModel.sidebarOpened = this.viewModel.sidebarContentType !== 'search' ? true : !this.viewModel.sidebarOpened;\n this.viewModel.sidebarContentType = 'search';\n }\n }\n\n /**\n * Open layer settings in sidebar\n */\n public openLayerSettings(): void {\n this.viewModel.sidebarOpened = this.viewModel.sidebarContentType !== 'layerSettings' ? true : !this.viewModel.sidebarOpened;\n this.viewModel.sidebarContentType = 'layerSettings';\n }\n}\n","\n\n\n
\n
\n
\n = 2\"\n class=\"section-label\"\n [class.active]=\"currentControlSection === 'selection' && showControlsBar\"\n (click)=\"setCurrentControlSection('selection')\">\n Selection Controls\n
\n = 2\"\n class=\"section-label\"\n [class.active]=\"currentControlSection === 'layer' && showControlsBar\"\n (click)=\"setCurrentControlSection('layer')\">\n Layer Controls\n
\n = 1\"\n class=\"section-label\"\n [class.active]=\"currentControlSection === 'technique' && showControlsBar\"\n (click)=\"setCurrentControlSection('technique')\">\n Technique Controls\n
\n \n \n \n
    \n
  • \n
    \n \n {{getControlDisplayName('selection_controls','search') | titlecase}}\n search\n
    \n \n\n \n
    \n \n Deselect {{ this.viewModel.getSelectedTechniqueCount() }} Techniques\n clear\n {{ this.viewModel.getSelectedTechniqueCount() }}\n
    \n \n \n
    \n \n {{getControlDisplayName('selection_controls','selecting_techniques') | titlecase}}\n lock\n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n \n \n
    \n
    \n \n more_vert\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Included Controls:\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
  • \n
  • \n \n \n
    \n \n {{getControlDisplayName('layer_controls','layer_settings') | titlecase }}\n \n settings\n \n
    \n \n \n
    \n
    \n {{getControlDisplayName('layer_controls','download_layer') | titlecase}}\n file_download\n
    \n \n
    \n Export\n
    \n
    \n \n
    \n \n code\n
    \n
    \n\n \n 1\"\n class=\"control-row-item\">\n \n 1\" class=\"material-symbols-outlined\" alt=\"save layer\">\n code_blocks\n \n
    \n \n\n \n
    \n \n grid_on\n
    \n \n\n \n
    1\" class=\"control-row-item\">\n \n table_view\n
    \n \n\n \n
    \n \n camera_alt\n
    \n \n \n
    \n Options\n
    \n \n
    \n \n \n
    \n
    \n warning\n \n
    \n
    1\">\n warning\n \n
    \n \n \n\n \n
    \n \n {{getControlDisplayName('layer_controls','filters') | titlecase}}\n filter_list\n
    \n
    \n
    \n {{ filter }}\n
    \n
    \n \n \n
    \n
    \n
    Data does not include {{ filter }}
    \n
    \n
    \n \n\n \n
    \n \n \n \n A-Z Ascending\n \n \n \n A-Z Descending\n \n \n \n Numerically Ascending\n \n \n \n Numerically Descending\n \n \n \n
    \n \n\n \n
    \n \n {{getControlDisplayName('layer_controls','color_setup') | titlecase}}\n palette\n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Low value:\n \n
    \n
    \n
    \n \n remove\n \n
    \n
    \n \n
    \n
    \n
    High value:\n \n
    \n
    \n
    \n presets\n \n
    \n
    \n \n red to green\n
    \n \n green to red\n
    \n \n blue to red\n
    \n \n red to blue\n
    \n \n transparent to blue\n
    \n \n transparent to red\n \n \n \n \n \n \n \n\n \n
    \n \n Hide Disabled\n visibility_off\n Show Disabled\n visibility\n
    \n \n\n \n
    \n \n \n \n Expand All Sub-techniques\n unfold_more\n \n \n Expand Annotated Sub-techniques\n \n \n \n Collapse Sub-techniques\n unfold_less\n \n \n
    \n \n
    \n
    \n \n more_vert\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Included Controls:\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
  • \n \n \n \n \n
    \n \n {{getControlDisplayName('technique_controls','disable_techniques') | titlecase}}\n texture\n
    \n \n\n \n
    \n \n {{getControlDisplayName('technique_controls','manual_color') | titlecase}}\n format_color_fill\n
    \n \n \n
    no color
    \n \n \n \n\n \n
    \n \n {{getControlDisplayName('technique_controls','scoring') | titlecase}}\n insert_chart\n
    \n
    \n \n \n score\n \n not a number\n \n
    \n \n\n \n
    \n \n {{getControlDisplayName('technique_controls','comments') | titlecase}}\n insert_comment\n
    \n \n \n \n comments\n \n \n \n \n\n \n
    \n \n {{getControlDisplayName('technique_controls','links') | titlecase}}\n link\n
    \n \n \n \n \n \n\n \n
    \n \n {{getControlDisplayName('technique_controls','metadata') | titlecase}}\n list\n
    \n \n \n \n \n \n\n \n
    \n \n {{getControlDisplayName('technique_controls','clear_annotations') | titlecase}}\n layers_clear\n
    \n \n
    \n
    \n \n more_vert\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n Included Controls:\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
  • \n \n
    \n \n push_pin\n \n
    \n \n
  • \n
\n\n\n\n\n \n
\n
\n \n \n
\n \n
\n
\n
1\" class=\"matrix-name\">\n {{ matrix.name }}\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n
\n\n\n\n
\n keyboard_arrow_up\n
legend
\n
\n\n
\n
\n keyboard_arrow_down\n
legend
\n
\n
\n \n \n
\n \n \n \n \n \n
\n
\n
\n","import { Component, OnInit, Inject, ViewEncapsulation, ViewChild, Renderer2 } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { MarkdownComponent, MarkdownService } from 'ngx-markdown';\nimport { LayerInformationComponent } from '../layer-information/layer-information.component';\n\n@Component({\n selector: 'help',\n templateUrl: './help.component.html',\n styleUrls: ['./help.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class HelpComponent implements OnInit {\n private listenObj: any;\n @ViewChild('markdownElement', { static: false }) public markdownElement: any;\n public headingAnchors: MarkdownHeadingAnchor[] = [];\n\n constructor(\n private dialog: MatDialog,\n private markdownService: MarkdownService,\n private renderer: Renderer2,\n @Inject(MAT_DIALOG_DATA) public data\n ) {\n // intentionally left blank\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.scrollTo('toc');\n }, 175);\n\n let self = this;\n this.markdownService.renderer.heading = (text: string, level: number) => {\n let img = text.match(/()/g) ? text.match(/()/g)[0].replace(/(nav-app\\/src\\/)/g, '') : '';\n text = text.replace(/()/g, '');\n const escapedText = text\n .toLowerCase()\n .trim()\n .replace(/[^\\w]+/g, '-');\n self.headingAnchors.push({\n level: level,\n anchor: escapedText,\n label: text.replace('&', '&'),\n });\n return `${img}${text}`;\n };\n\n this.markdownService.renderer.html = (html: string) => {\n if (!html.match(/(nav-app\\/src\\/)/g)) return html;\n return html.replace(/(nav-app\\/src\\/)/g, '');\n };\n }\n\n ngOnDestroy(): void {\n if (this.listenObj) {\n this.listenObj();\n }\n }\n\n // from https://github.com/jfcere/ngx-markdown/issues/125#issuecomment-518025821\n public onMarkdownLoad(e) {\n // hijack clicks on links\n if (this.markdownElement) {\n this.listenObj = this.renderer.listen(this.markdownElement.element.nativeElement, 'click', (e: Event) => {\n if (e.target && (e.target as any).tagName === 'A') {\n const el = e.target as HTMLElement;\n const linkURL = el.getAttribute && el.getAttribute('href');\n if (linkURL) {\n e.preventDefault();\n if (linkURL.charAt(0) === '#') this.scrollTo(linkURL.replace('#', ''));\n else if (linkURL.includes('layers/')) this.openLayerDialog();\n else if (linkURL.match(/(nav-app\\/src\\/)/g)) window.open(linkURL.replace(/(nav-app\\/src\\/)/g, ''));\n else window.open(linkURL);\n }\n }\n });\n }\n }\n\n public scrollTo(anchor) {\n let element = document.querySelector('.' + anchor);\n if (element) element.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }\n\n /**\n * open the layer information dialog\n */\n public openLayerDialog(): void {\n this.dialog.open(LayerInformationComponent, {\n autoFocus: false,\n panelClass: this.data.theme,\n });\n }\n}\n\ninterface MarkdownHeadingAnchor {\n level: number;\n anchor: string;\n label: string;\n}\n","
\n

\n Documentation\n
\n \n
\n

\n \n
\n

Table of Contents

\n \n
\n \n
\n \n \n \n
","import { Component, ViewEncapsulation } from '@angular/core';\nimport * as globals from '../utils/globals';\n\n@Component({\n selector: 'app-layer-information',\n templateUrl: './layer-information.component.html',\n styleUrls: ['./layer-information.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LayerInformationComponent {\n public get layerFormatLink(): string {\n return `CVE2CAPEC/mitre/layers/spec/v${globals.layerVersion}/layerformat.md`;\n }\n}\n","
\n \n
\n \n
\n
\n \n \n \n
","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ViewModel } from '../classes';\nimport { DataService } from '../services/data.service';\n\n@Component({\n selector: 'app-layer-settings',\n templateUrl: './layer-settings.component.html',\n styleUrls: ['./layer-settings.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class LayerSettingsComponent {\n @Input() viewModel: ViewModel;\n\n constructor(\n public dataService: DataService,\n ) {\n // intentionally left blank\n }\n}\n","
\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t

Layer Information

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tName\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDescription\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDomain\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tVersion\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\t\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t

Metadata

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t

Links

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\t\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t

Matrix Layout

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t@for(option of viewModel.layout.layoutOptions; track option) {\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {{option}} layout\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t

Labels

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t

Aggregate Scores

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tcount unscored techniques as 0\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\tAggregate Function\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t@for(option of viewModel.layout.aggregateFunctionOptions; track option) {\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {{option}}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\t\n\t
\n\t\t\n\t
\n
","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ViewModelsService } from '../../services/viewmodels.service';\nimport { ConfigService } from '../../services/config.service';\nimport { DataService } from '../../services/data.service';\nimport { Cell } from '../../matrix/cell';\n\n@Component({\n selector: 'changelog-cell',\n templateUrl: './changelog-cell.component.html',\n styleUrls: ['./changelog-cell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ChangelogCellComponent extends Cell {\n @Input() isCurrentVersion?: boolean = true;\n @Input() isDraggable?: boolean = false;\n @Input() section: string;\n\n constructor(\n public configService: ConfigService,\n public dataService: DataService,\n public viewModelsService: ViewModelsService\n ) {\n super(dataService, configService);\n }\n\n /**\n * Highlight the moused over technique\n */\n public highlight(): void {\n if (this.isCurrentVersion) {\n this.viewModel.highlightTechnique(this.technique, this.tactic);\n }\n }\n\n /**\n * Clear the technique highlight\n */\n public unhighlight(): void {\n if (this.isCurrentVersion) this.viewModel.clearHighlight();\n }\n\n /**\n * Select or unselect this technique\n */\n public onClick(): void {\n if (this.isCurrentVersion) {\n // unselect technique\n if (this.viewModel.isTechniqueSelected(this.technique, this.tactic)) {\n this.viewModel.unselectTechnique(this.technique, this.tactic);\n }\n // select technique\n else {\n this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(this.technique, this.tactic);\n }\n this.viewModelsService.selectionChanged(); // emit selection change\n }\n }\n\n /**\n * Retrieve css classes for this technique\n */\n public getClass(): string {\n let theclass = super.getClass();\n if (!this.isCurrentVersion && !this.isDraggable) {\n theclass += ' nopointer';\n }\n if (this.section == 'additions' || this.section == 'deprecations') {\n theclass += ' setwidth';\n }\n return theclass;\n }\n}\n","
\n
\n
\n \n {{ tactic.name }}\n \n
\n
\n {{ technique.attackID }}\n
\n
\n {{ technique.name }}\n
\n
\n
\n","import { Component, Input, OnInit, QueryList, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { Tactic, Technique } from '../classes/stix';\nimport { VersionChangelog, ViewModel } from '../classes';\nimport { DndDropEvent } from 'ngx-drag-drop';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatStepper } from '@angular/material/stepper';\n\n@Component({\n selector: 'layer-upgrade',\n templateUrl: './layer-upgrade.component.html',\n styleUrls: ['./layer-upgrade.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LayerUpgradeComponent implements OnInit {\n @Input() viewModel: ViewModel; // view model of new version\n @ViewChildren(MatPaginator) paginators = new QueryList();\n @ViewChildren(MatExpansionPanel) panels: QueryList;\n public paginator_map: Map = new Map(); // section name mapped to index of paginator\n public filteredIDs: string[] = [];\n @ViewChild('stepper') stepper: MatStepper;\n\n public changelog: VersionChangelog;\n public compareTo: ViewModel; // view model of old version\n public sections: string[] = ['additions', 'changes', 'minor_changes', 'revocations', 'deprecations', 'unchanged'];\n public filter: any = {\n changes: false,\n minor_changes: false,\n revocations: false,\n deprecations: false,\n unchanged: false,\n };\n public loading: boolean = false;\n\n constructor(public dataService: DataService) {}\n\n ngOnInit(): void {\n this.changelog = this.viewModel.versionChangelog;\n this.compareTo = this.viewModel.compareTo;\n // map sections with techniques to paginator index\n let i = 0;\n for (let s of this.sections) {\n if (this.changelog[s].length) this.paginator_map.set(s, i++);\n }\n this.applyFilters(this.sections[0]);\n this.wait();\n }\n\n wait(): void {\n this.loading = true;\n setTimeout(() => (this.loading = false), 1000);\n }\n\n /**\n * Get a readable version for the name of the changelog section\n * @param section name of the changelog section\n * @returns {string} readable section header text\n */\n public getHeader(section: string): string {\n return section\n .split(/[_-]+/)\n .map((s) => s.charAt(0).toUpperCase() + s.substring(1))\n .join(' ');\n }\n\n /**\n * Retrieve the URL for a given technique in the previous ATT&CK version\n * @param attackID the ATT&CK ID of the technique\n * @returns {string} the URL\n */\n public getPreservedURL(attackID: string): string {\n let url = this.getTechnique(attackID, this.compareTo).url;\n let i = url.search('/techniques');\n return url.substring(0, i) + '/versions/v' + this.compareTo.version + url.substring(i);\n }\n\n /**\n * Disable the annotated techniques filter?\n * @param section the name of the changelog section\n * @returns true if there are no annotated techniques in the given section, false otherwise\n */\n public disableFilter(section: string): boolean {\n return !this.changelog[section].filter((id) => this.anyAnnotated(id)).length;\n }\n\n /**\n * Apply filters to the changelog section\n * @returns the list of filtered ATT&CK IDs in the changelog section\n */\n public applyFilters(section: string): void {\n let sectionIDs = this.changelog[section];\n if (this.filter[section]) sectionIDs = sectionIDs.filter((id) => this.anyAnnotated(id));\n\n let i = this.paginator_map.get(section);\n let paginator = this.paginators.toArray()[i];\n if (paginator && paginator.pageIndex * paginator.pageSize > sectionIDs.length) {\n paginator.pageIndex = 0;\n }\n let start = paginator ? paginator.pageIndex * paginator.pageSize : 0;\n let end = paginator ? start + paginator.pageSize : 10;\n this.filteredIDs = sectionIDs.slice(start, end);\n setTimeout(() => {\n this.expandAll(section);\n });\n }\n\n /**\n * Update the list of IDs to render on step change\n * @param section the name of the changelog section\n * @param offset -1 if moving to the previous step, 1 if moving to the next step\n */\n public onStepChange(section: string, offset: number): void {\n let i = this.sections.findIndex((s) => s === section);\n if (i + offset < this.sections.length) {\n let nextSection = this.sections[i + offset];\n this.applyFilters(nextSection);\n if (this.changelog[nextSection].length > 0) this.wait();\n }\n }\n\n /**\n * Get the technique object in the domain of the given view model\n * @param attackID the ATT&CK ID of the technique\n * @param vm the view model\n * @param section name of the changelog section\n * @returns {Technique} the technique object\n */\n public getTechnique(attackID: string, vm: ViewModel, section?: string): Technique {\n let domain = this.dataService.getDomain(vm.domainVersionID);\n let all_techniques = domain.techniques.concat(domain.subtechniques);\n let technique = all_techniques.find((t) => t.attackID == attackID);\n\n if (section == 'revocations' && this.viewModel.version == vm.version) {\n // get revoking object\n let revokedByID = technique.revoked_by(vm.domainVersionID);\n let revokingObject = all_techniques.find((t) => t.id == revokedByID);\n return revokingObject;\n } else return technique;\n }\n\n /**\n * Get the list of tactic objects the given technique is found under\n * @param attackID the ATT&CK ID of the object\n * @param vm the view model used to identify the domain\n * @param section name of the changelog section\n * @returns {Tactic[]} list of tactic objects the object is found under\n */\n public getTactics(attackID: string, vm: ViewModel, section?: string): Tactic[] {\n if (section == 'additions') vm = this.viewModel;\n let technique = this.getTechnique(attackID, vm, section);\n let domain = this.dataService.getDomain(vm.domainVersionID);\n return technique.tactics.map((shortname) => domain.tactics.find((t) => t.shortname == shortname));\n }\n\n /**\n * Determine if the lists of tactics between the technique in the new version and\n * old version are the same\n * @param attackID the ATT&CK ID of the object\n * @param section name of the changelog section\n * @returns {boolean} true if the list of tactics are not identical\n */\n public tacticsChanged(attackID: string, section: string): boolean {\n if (section == 'deprecations' || section == 'additions') return false;\n\n let oldTechnique = this.getTechnique(attackID, this.compareTo);\n let newTechnique = this.getTechnique(attackID, this.viewModel, section);\n\n if (!oldTechnique.tactics && !newTechnique.tactics) return false;\n if (oldTechnique.tactics.length !== newTechnique.tactics.length) return true;\n\n // order lists and compare\n let sortArray = function (a, b) {\n if (a < b) return -1;\n if (a > b) return 1;\n return 0;\n };\n let oldTactics = oldTechnique.tactics.sort(sortArray);\n let newTactics = newTechnique.tactics.sort(sortArray);\n if (oldTactics.every((value, i) => value === newTactics[i])) return false;\n return true;\n }\n\n /**\n * Determine if the technique is marked as reviewed\n * @param attackID the ATT&CK ID of the technique\n * @returns {boolean} true if the technique has been marked as reviewed\n */\n public isReviewed(attackID: string): boolean {\n return this.changelog.reviewed.has(attackID);\n }\n\n /**\n * Marks or unmarks a single given technique as reviewed\n * @param attackID the ATT&CK ID of the technique\n * @param panel the object's expansion panel\n */\n public reviewedChanged(attackID: string, panel: MatExpansionPanel): void {\n if (this.isReviewed(attackID)) {\n this.changelog.reviewed.delete(attackID);\n } else {\n this.changelog.reviewed.add(attackID);\n panel.expanded = false; // close on review\n }\n }\n\n /**\n * Expands all the techniques for easy review\n */\n public expandAll(section: string): void {\n let filtered_expand_visible_section = document.getElementById('filter_expand_visible_' + section) as HTMLInputElement;\n this.panels.forEach((panel) => {\n if (filtered_expand_visible_section.checked) {\n panel.open();\n } else {\n panel.close();\n }\n });\n }\n\n /**\n * Marks all techniques in the section as reviewed\n * @param section name of the changelog section\n */\n public reviewAll(section: string): void {\n let sectionIDs = this.changelog[section];\n let filtered_review_all_section = document.getElementById('filter_review_all_' + section) as HTMLInputElement;\n if (filtered_review_all_section.checked) {\n for (let sectionID of sectionIDs) {\n this.changelog.reviewed.add(sectionID);\n }\n } else {\n for (let sectionID of sectionIDs) {\n this.changelog.reviewed.delete(sectionID);\n }\n }\n }\n\n /**\n * Get the number of techniques marked as reviewed in the given section\n * @param section the name of the changelog section\n * @returns number of reviewed techniques\n */\n public countReviewed(section: string): number {\n return this.changelog[section].filter((attackID) => this.changelog.reviewed.has(attackID)).length;\n }\n\n // changelog section descriptions\n private descriptions: any = {\n additions:\n \"The following techniques have been added to the dataset since the layer was created. You can review the techniques below to identify which may require annotations. Annotations may be added using the 'technique controls' in the toolbar.\",\n changes:\n 'The following techniques have undergone major changes since the layer was created such as changes to scope or technique name. You can view the annotations you had previously added, map them to the current ATT&CK version, and adjust them as needed. You can also review the previous and current technique definitions by clicking the version numbers in each row.',\n minor_changes:\n 'The following techniques have had minor revisions since the layer was created such as typo corrections. The annotations have automatically been copied for these techniques, but you can review them if desired. You can also view the previous and current technique definitions by clicking the version numbers under the technique.',\n revocations:\n 'These are techniques which have been replaced by other techniques since the layer was created. You can view the replacing techniques and transfer annotations from the replaced techniques, adjusting them as nessecary. You can also review the replaced and replacing technique definitions by clicking the version numbers under the technique.',\n deprecations:\n 'These are techniques which have been removed from the dataset. You can view any annotations you had previously added to these techniques.',\n unchanged:\n \"These are techniques which have not changed since the uploaded layer's ATT&CK version. The annotations have automatically been copied for these techniques, but you can review them if desired.\",\n finish: \"The overview below indicates either the number of techniques you have reviewed in a section, if you have skipped a section, or if there are no techniques to review in that section. Annotations mapped to the current version have been saved to the new layer.\\n\\nVerify your changes and click 'Done' to complete the layer upgrade workflow. Once completed you cannot return to this workflow.\",\n };\n\n /**\n * Get the changelog section description\n * @param section the name of the changelog section\n * @returns the section description\n */\n public getDescription(section: string): string {\n return this.descriptions[section];\n }\n\n /**\n * Determine if any techniqueVM in the old version with the given\n * ATT&CK ID has annotations\n * @param attackID the ATT&CK ID of the technique\n * @returns {boolean} true if any TechniqueVM for this technique is annotated\n */\n public anyAnnotated(attackID: string): boolean {\n let oldTechnique = this.getTechnique(attackID, this.compareTo);\n if (oldTechnique) {\n let technique_tactic_ids = oldTechnique.get_all_technique_tactic_ids();\n\n for (let id of technique_tactic_ids) {\n if (this.compareTo.getTechniqueVM_id(id).annotated()) return true;\n }\n }\n return false;\n }\n\n /**\n * Is the TechniqueVM for this technique-tactic annotated?\n * @param technique the technique in the old version\n * @param tactic the tactic the technique is found under\n * @param vm the view model\n * @returns {boolean} true if the TechniqueVM is annotated, false otherwise\n */\n public isAnnotated(technique: Technique, tactic: Tactic, vm: ViewModel): boolean {\n return vm.getTechniqueVM(technique, tactic).annotated();\n }\n\n /**\n * Get the total number of techniques currently displayed in a given section\n * @param section the name of the changelog section\n * @returns the total number of annotated techniques in the section if the filter is enabled,\n * otherwise the total number of techniques in the seciton\n */\n public sectionLength(section: string): number {\n if (this.filter[section]) return this.changelog[section].filter((attackID) => this.anyAnnotated(attackID)).length;\n else return this.changelog[section].length;\n }\n\n /**\n * Determine if the annotations of the technique under the given tactic\n * in the old version have been copied to the new version\n * @param technique the technique in the old version\n * @param tactic the tactic the technique is found under\n * @returns {boolean} true if the annotations have been copied to the\n * object in the new version\n */\n public isCopied(technique: Technique, tactic: Tactic): boolean {\n if (this.changelog.copied.has(technique.get_technique_tactic_id(tactic))) return true;\n return false;\n }\n\n /**\n * Copy the annotations from the technique in the old version\n * to the technique in the new version\n * @param attackID the ATT&CK ID of the technique\n * @param tactic the tactic the technique is found under\n */\n public copyAnnotations(attackID: string, tactic: Tactic, section: string): void {\n let fromTechnique = this.getTechnique(attackID, this.compareTo);\n let toTechnique = this.getTechnique(attackID, this.viewModel, section);\n this.viewModel.copyAnnotations(fromTechnique, toTechnique, tactic);\n }\n\n /**\n * Re-enable the annotations on the technique in the old version and\n * reset the annotations on the technique in the new version\n * @param attackID the ATT&CK ID of the technique\n * @param tactic the tactic the technique is found under\n */\n public revertCopy(attackID: string, tactic: Tactic, section: string): void {\n let fromTechnique = this.getTechnique(attackID, this.compareTo);\n let toTechnique = this.getTechnique(attackID, this.viewModel, section);\n this.viewModel.revertCopy(fromTechnique, toTechnique, tactic);\n }\n\n /**\n * Copy the annotations from the TechniqueVM in the old version\n * to the TechniqueVM that the element was dropped over\n * @param event the ngx drop event\n * @param toTechnique the technique object to copy annotations to\n * @param toTactic the tactic object to copy annotations to\n * @param section the name of the changelog section\n */\n public onDrop(event: DndDropEvent, toTechnique: Technique, toTactic: Tactic, section: string): void {\n let attackID = event.data.split('^')[0];\n let validTechnique = this.getTechnique(attackID, this.viewModel, section);\n\n if (validTechnique.id === toTechnique.id) {\n // copying annotations to a valid target?\n // retrieve relevant technique VMs\n let fromTvm = this.compareTo.getTechniqueVM_id(event.data);\n let toTvm = this.viewModel.getTechniqueVM(toTechnique, toTactic);\n\n // copy annotations\n let rep = fromTvm.serialize();\n toTvm.resetAnnotations();\n toTvm.deserialize(rep, toTechnique.attackID, toTactic.shortname);\n this.viewModel.updateScoreColor(toTvm);\n } else {\n // invalid target\n }\n }\n\n /**\n * Remove all annotations from the VM\n * @param technique the technique object to remove annotations from\n * @param tactic the tactic the technique is found under\n */\n public clearAnnotations(technique: Technique, tactic: Tactic): void {\n this.viewModel.getTechniqueVM(technique, tactic).resetAnnotations();\n }\n\n /**\n * Close the layer upgrade sidebar\n */\n public closeSidebar(): void {\n this.viewModel.sidebarOpened = !this.viewModel.sidebarOpened;\n this.viewModel.sidebarContentType = '';\n }\n}\n","\n\n
\n \n \n \n
\n

Layer Upgrade

\n (ATT&CK v{{ compareTo.version }}\n east\n ATT&CK v{{ viewModel.version }})\n
\n

\n Review techniques which have been added, changed, replaced, or removed from the knowledge base since ATT&CK v{{ compareTo.version }}\n and update your Navigator layer to reflect these changes.\n

\n

\n View Versions of ATT&CK\n

\n
\n
\n\n \n\n \n \n Review {{ getHeader(section) }}\n\n
\n {{ desc }}\n
\n\n \n\n
0\">\n

Options

\n
\n \n \n show annotated techniques only\n \n
\n \n \n mark all as reviewed\n \n \n \n expand visible techniques\n \n\n
\n \n
\n\n \n
\n \n \n \n \n check_circle_outline\n radio_button_unchecked\n {{ attackID }}: {{ getTechnique(attackID, viewModel).name }}\n \n \n \n
\n \n
\n east\n
\n
\n
\n \n ATT&CK v{{ viewModel.version }}\n \n
\n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n\n
\n \n info_outline\n \n
\n\n
\n \n \n\n \n x\n \n
\n
\n
\n\n
\n \n \n \n \n \n \n
\n \n \n \n chevron_right\n \n \n chevron_left\n \n \n \n
\n
\n\n
\n \n \n
\n \n \n \n
\n \n \n
\n\n
\n
No objects to show
\n
\n \n
\n 0\">Reviewed {{ countReviewed(section) }}/{{ sectionLength(section) }} techniques\n \n \n
\n \n\n \n Finish\n\n
\n {{ getDescription('finish') }}\n
\n\n \n\n

Overview

\n
\n {{ getHeader(section) }}: \n 0\">\n Reviewed {{ countReviewed(section) }}/{{ sectionLength(section) }} {{ filter[section] ? 'annotated' : '' }} techniques\n \n No objects to review\n Skipped\n
\n\n \n\n
\n \n \n
\n
\n \n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Link, Metadata, ViewModel } from '../classes';\n\n@Component({\n selector: 'app-list-input',\n templateUrl: './list-input.component.html',\n styleUrls: ['./list-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ListInputComponent implements OnInit {\n @Input() config: ListInputConfig;\n public list: (Link | Metadata)[];\n private fieldToClass = {\n links: Link,\n metadata: Metadata,\n };\n public get includeLinks(): boolean {\n return this.config.type == 'links';\n }\n\n ngOnInit(): void {\n if (this.config.level == 'technique') {\n this.list = this.config.list.map((item) => {\n let clone = new this.fieldToClass[this.config.type]();\n clone.deserialize(item.serialize());\n return clone;\n });\n } else {\n this.list = this.config.list;\n }\n }\n\n /**\n * Adds a new item to the list\n */\n public add(): void {\n this.list.push(new this.fieldToClass[this.config.type]());\n }\n\n /**\n * Removes an item from the list at the given index\n * @param i the index of the item to remove\n */\n public remove(i: number): void {\n if (this.list[i - 1] && this.list[i - 1].divider && this.list[i + 1] && this.list[i + 1].divider) {\n this.list.splice(i - 1, 2);\n } else {\n this.list.splice(i, 1);\n }\n\n if (this.list[0]?.divider) this.removeDivider(0);\n if (this.list[this.list.length - 1] && this.list[this.list.length - 1].divider) this.removeDivider(this.list.length - 1);\n\n this.updateList();\n }\n\n /**\n * Validate items in the list and update the field on selected techniques\n */\n public updateList(): void {\n let value = this.list.filter((item) => item.valid());\n\n if (this.config.level == 'technique') {\n // do not update techniques if editing a layer-level list\n this.config.viewModel.editSelectedTechniqueValues(this.config.type, value);\n }\n }\n\n /**\n * Checks if a divider can be added at the previous index\n *\n * Note: a divider can only be added if both the items at the current and previous\n * indices are valid non-divider items.\n *\n * @param i the current index\n * @returns true, if a divider can be added, false otherwise\n */\n public canAddDivider(i: number): boolean {\n if (i < 1) return false; // cannot add divider before the first item\n if (this.list[i]?.valid() && !this.list[i]?.divider && this.list[i - 1]?.valid() && !this.list[i - 1]?.divider) {\n return true;\n }\n return false;\n }\n\n /**\n * Add a divider at the given index\n * @param i the index at which to add a divider\n */\n public addDivider(i: number): void {\n let item = new this.fieldToClass[this.config.type]();\n item.divider = true;\n this.list.splice(i, 0, item);\n this.updateList();\n }\n\n /**\n * Remove a divider at the given index\n * @param i the index of the divider to remove\n */\n public removeDivider(i: number): void {\n this.list.splice(i, 1);\n this.updateList();\n }\n}\n\nexport interface ListInputConfig {\n /** The viewmodel */\n viewModel: ViewModel;\n /** The list to edit */\n list: (Link | Metadata)[];\n /** The item type */\n type: 'links' | 'metadata';\n /**\n * Identifies whether the list exists on the technique or layer level\n * If on the technique level, the list must be cloned to prevent\n * empty values from being added; all selected techniques\n * will be updated with the new values\n * If on the layer level, the list is edited directly and does\n * not update selected techniques with the new values\n */\n level: 'layer' | 'technique';\n /** The label attribute of the list */\n nameField: string;\n /** The value attribute of the list */\n valueField: string;\n}\n","
\n
\n \n
\n \n
\n \n
\n \n
\n\n \n
\n \n {{config.nameField}}\n \n \n \n {{config.valueField}}\n \n \n \n {{ item[config.nameField] }}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n","import { Input, Directive } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { Technique, Tactic } from '../classes/stix';\nimport { ViewModel } from '../classes';\nimport { getCookie, hasCookie } from '../utils/cookies';\nimport { ConfigService } from '../services/config.service';\nimport tinycolor from 'tinycolor2';\n\n@Directive()\nexport abstract class Cell {\n @Input() viewModel: ViewModel;\n @Input() technique: Technique;\n @Input() tactic: Tactic;\n\n public showContextmenu: boolean = false;\n public isDarkTheme: boolean;\n\n constructor(\n public dataService: DataService,\n public configService: ConfigService\n ) {\n this.dataService = dataService;\n this.configService = configService;\n if (hasCookie('is_user_theme_dark')) this.isDarkTheme = getCookie('is_user_theme_dark') === 'true';\n else this.isDarkTheme = window.matchMedia('(prefers-color-scheme: dark)').matches;\n }\n\n public get isHighlighted(): boolean {\n let isHighlighted = this.showContextmenu;\n let idToMatch = this.technique.id;\n if (this.viewModel.selectSubtechniquesWithParent && this.technique.isSubtechnique) idToMatch = this.technique.parent.id;\n\n if (this.viewModel.highlightedTechniques.has(idToMatch)) {\n if (!this.viewModel.highlightedTactic) {\n // highlight is called from search component\n return true;\n } else {\n const isTacticMatching = this.viewModel.highlightedTactic.id === this.tactic.id;\n return this.viewModel.selectTechniquesAcrossTactics || isTacticMatching;\n }\n }\n\n return isHighlighted;\n }\n\n /**\n * Return css classes for a technique\n * @param {technique} technique the technique to get the class of\n * @param {boolean} mini is it the minitable?\n * @return {string} the classes the technique should currently have\n */\n public getClass(): string {\n let theclass = 'link noselect cell';\n if (this.tactic && this.viewModel.isTechniqueSelected(this.technique, this.tactic)) theclass += ' editing';\n if (this.isHighlighted) {\n //open context menu always keeps highlight even if the mouse has moved elsewhere\n theclass += ' highlight';\n }\n\n // classes added by layout config\n if (this.viewModel.layout.showID) {\n theclass += ' showID';\n //change sticky top position of technique count\n let elements = document.querySelectorAll('.tactic.count');\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.top = '46px';\n }\n }\n if (this.viewModel.layout.showName) theclass += ' showName';\n theclass += ' ' + this.viewModel.layout.layout;\n\n // classes according to annotations\n if (\n (this.tactic && this.viewModel.getTechniqueVM(this.technique, this.tactic).comment.length > 0) ||\n this.viewModel.getTechniqueVM(this.technique, this.tactic).metadata.length > 0 ||\n this.viewModel.getTechniqueVM(this.technique, this.tactic).links.length > 0 ||\n this.hasNotes()\n )\n theclass += ' underlined';\n if (this.getTechniqueBackground()) theclass += ' colored';\n if (this.tactic && !this.viewModel.getTechniqueVM(this.technique, this.tactic).enabled) theclass += ' disabled';\n\n return theclass;\n }\n\n /**\n * Emulate transparency without an alpha channel\n * @param color color with alpha channel\n * @returns color without an alpha channel which has been mixed with the proper background color as if it is transparent\n */\n public emulate_alpha(color: any) {\n /* note: constructing a tinycolor of a tinycolor makes them aliases. E.g:\n *\n * x = tinycolor(\"#ffffff\")\n * y = tinycolor(x)\n * y.getAlpha() -> 1\n * x.setAlpha(0)\n * y.getAlpha() -> 0\n *\n * Therefore y must be cloned after it is constructed to avoid transformations of x affecting it.\n * In this context, the color arg must be cloned because\n * in some contexts it is a tinycolor and we change its alpha below,\n * which could affect the copy in the calling function\n */\n if (!color || color.length < 1) return '';\n let cell_color = tinycolor(color).clone();\n let cell_color_alpha = cell_color.getAlpha();\n cell_color.setAlpha(1);\n let result = tinycolor.mix(this.isDarkTheme ? '#2e2e3f' : '#ffffff', cell_color, cell_color_alpha * 100);\n return result;\n }\n\n /**\n * Get most readable text color for the given technique\n * @param technique the technique to get the text color for\n * @param antihighlight boolean, true if the column is not selected.\n * @return black, white, or gray, depending on technique and column state\n */\n public getTechniqueTextColor() {\n if (!this.tactic) return this.isDarkTheme ? 'white' : 'black';\n let tvm = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (!tvm.enabled) return this.isDarkTheme ? 'rgb(255 255 255 / 25%)' : '#aaaaaa';\n // don't display if disabled or highlighted\n // if (this.viewModel.highlightedTechnique && this.viewModel.highlightedTechnique.technique_tactic_union_id == this.technique.technique_tactic_union_id) return \"black\"\n if (tvm.color && this.configService.getFeature('background_color'))\n return tinycolor.mostReadable(this.emulate_alpha(tvm.color), ['white', 'black']);\n if (\n this.viewModel.layout.showAggregateScores &&\n tvm.aggregateScoreColor &&\n this.technique.subtechniques.length > 0 &&\n this.configService.getFeature('aggregate_score_color')\n )\n return tinycolor.mostReadable(this.emulate_alpha(tvm.aggregateScoreColor), ['white', 'black']);\n if (tvm.score && !isNaN(Number(tvm.score)) && this.configService.getFeature('non_aggregate_score_color'))\n return tinycolor.mostReadable(this.emulate_alpha(tvm.scoreColor), ['white', 'black']);\n else return this.isDarkTheme ? 'white' : 'black';\n }\n\n /**\n * Get the underline color for the given technique. The comment/metadata\n * underscore color overrides the link underscore color.\n */\n public getTechniqueUnderlineColor() {\n if (this.tactic) {\n let tvm = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (tvm.comment.length > 0 || this.hasNotes()) {\n if (this.configService.getFeature('comment_underline')) return this.configService.commentColor;\n }\n if (tvm.metadata.length > 0) {\n if (this.configService.getFeature('metadata_underline')) return this.configService.metadataColor;\n }\n if (tvm.links.length > 0) {\n if (this.configService.getFeature('link_underline')) return this.configService.linkColor;\n }\n }\n return '';\n }\n\n /**\n * Check if technique has notes\n * @return true if technique has notes, false otherwise\n */\n public hasNotes() {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n let notes = domain.notes.filter((note) => {\n return note.object_refs.includes(this.technique.id);\n });\n return notes.length > 0;\n }\n\n /**\n * get the technique background style for ngstyle\n * @param technique technique\n * @return background object\n */\n public getTechniqueBackground(): any {\n if (!this.tactic) return null;\n let tvm = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n // don't display if disabled or highlighted\n if (!tvm.enabled || this.isHighlighted) return null;\n if (tvm.color && this.configService.getFeature('background_color')) return { background: this.emulate_alpha(tvm.color) };\n if (\n this.viewModel.layout.showAggregateScores &&\n this.technique.subtechniques.length > 0 &&\n !isNaN(Number(tvm.aggregateScore)) &&\n tvm.aggregateScore.length > 0 &&\n this.configService.getFeature('aggregate_score_color')\n ) {\n return { background: this.emulate_alpha(tvm.aggregateScoreColor) };\n }\n if (tvm.score && this.configService.getFeature('non_aggregate_score_color')) return { background: this.emulate_alpha(tvm.scoreColor) };\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { Matrix, Technique, Tactic } from '../classes/stix';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { ConfigService } from '../services/config.service';\nimport { ViewModel } from '../classes';\nimport tinycolor from 'tinycolor2';\n\n@Directive()\nexport abstract class MatrixCommon {\n @Input() matrix: Matrix;\n @Input() viewModel: ViewModel;\n\n constructor(\n public configService: ConfigService,\n public viewModelsService: ViewModelsService\n ) {\n this.configService = configService;\n }\n\n /**\n * filter tactics according to viewmodel state\n * @param {Tactic[]} tactics to filter\n * @returns {Tactic[]} filtered tactics\n */\n public filterTactics(tactics: Tactic[]): Tactic[] {\n return this.viewModel.filterTactics(tactics, this.matrix);\n }\n\n /**\n * filter techniques according to viewModel state\n * @param {Technique[]} techniques list of techniques to filter\n * @param {Tactic} tactic tactic the techniques fall under\n * @returns {Technique[]} filtered techniques\n */\n public filterTechniques(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.filterTechniques(techniques, tactic, this.matrix);\n }\n\n /**\n * sort techniques accoding to viewModel state\n * @param {Technique[]} techniques techniques to sort\n * @param {Tactic} tactic tactic the techniques fall under\n * @returns {Technique[]} sorted techniques\n */\n public sortTechniques(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.sortTechniques(techniques, tactic);\n }\n\n /**\n * apply sort and filter state to techniques\n * @param {Technique[]} techniques techniques to sort and filter\n * @param {Tactic} tactic that the techniques fall under\n * @returns {Technique[]} sorted and filtered techniques\n */\n public applyControls(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.applyControls(techniques, tactic, this.matrix);\n }\n\n public onTechniqueLeftClick(event: any, technique: Technique, tactic: Tactic) {\n if (!this.configService.getFeature('selecting_techniques')) {\n //if selecting is disabled, same behavior as right click. Shouldn't ever get to this point because it should be handled in technique-cell\n return;\n }\n if (event.shift || event.ctrl || event.meta) {\n // add to selection\n if (this.viewModel.isTechniqueSelected(technique, tactic)) this.viewModel.unselectTechnique(technique, tactic);\n else this.viewModel.selectTechnique(technique, tactic);\n } else {\n // replace selection\n if (this.viewModel.getSelectedTechniqueCount() > 1) {\n if (this.viewModel.isTechniqueSelected(technique, tactic)) this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(technique, tactic);\n } else if (this.viewModel.isTechniqueSelected(technique, tactic)) {\n //unselect currently selected\n this.viewModel.clearSelectedTechniques();\n } else {\n //replace\n this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(technique, tactic);\n }\n }\n this.viewModelsService.onSelectionChange.emit();\n }\n\n public onToggleSubtechniquesVisible(technique: Technique, tactic: Tactic) {\n if (technique.subtechniques.length == 0) return;\n let tvm = this.viewModel.getTechniqueVM(technique, tactic);\n tvm.showSubtechniques = !tvm.showSubtechniques;\n }\n\n public onTechniqueHighlight(event: any, technique: Technique, tactic: Tactic) {\n this.viewModel.highlightTechnique(technique, tactic);\n }\n public onTechniqueUnhighlight(event: any) {\n this.viewModel.clearHighlight();\n }\n\n public onTacticClick(tactic: Tactic) {\n if (this.viewModel.isTacticSelected(tactic)) this.viewModel.unselectAllTechniquesInTactic(tactic);\n else this.viewModel.selectAllTechniquesInTactic(tactic);\n }\n\n public getTacticBackground(): any {\n if (this.viewModel.showTacticRowBackground)\n return {\n background: this.viewModel.tacticRowBackground,\n color: tinycolor.mostReadable(this.viewModel.tacticRowBackground, ['white', 'black']),\n };\n else {\n return {};\n }\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatrixCommon } from '../matrix-common';\nimport { ConfigService } from '../../services/config.service';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'matrix-flat',\n templateUrl: './matrix-flat.component.html',\n styleUrls: ['./matrix-flat.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatrixFlatComponent extends MatrixCommon implements OnInit {\n constructor(configService: ConfigService, viewModelsService: ViewModelsService) {\n super(configService, viewModelsService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n {{ filterTechniques(tactic.techniques, tactic).length }}\n  techniques\n
\n \n \n \n \n \n \n \n 0\"\n class=\"sidebar technique\"\n [ngClass]=\"{ disabled: applyControls(technique.subtechniques, tactic).length == 0 }\"\n (click)=\"onToggleSubtechniquesVisible(technique, tactic)\">\n
=
\n \n
\n \n \n \n \n \n
\n \n
0\" class=\"sidebar subtechniques\">\n \n \n \n \n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatrixCommon } from '../matrix-common';\nimport { ConfigService } from '../../services/config.service';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'matrix-mini',\n templateUrl: './matrix-mini.component.html',\n styleUrls: ['./matrix-mini.component.scss'],\n})\nexport class MatrixMiniComponent extends MatrixCommon implements OnInit {\n constructor(configService: ConfigService, viewModelsService: ViewModelsService) {\n super(configService, viewModelsService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n
0; else elseblock\">\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatrixCommon } from '../matrix-common';\nimport { ConfigService } from '../../services/config.service';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'matrix-side',\n templateUrl: './matrix-side.component.html',\n styleUrls: ['./matrix-side.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatrixSideComponent extends MatrixCommon implements OnInit {\n constructor(configService: ConfigService, viewModelsService: ViewModelsService) {\n super(configService, viewModelsService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n {{ filterTechniques(tactic.techniques, tactic).length }}\n  techniques\n
\n \n \n \n 0\"\n [ngClass]=\"{\n disabled: applyControls(technique.subtechniques, tactic).length == 0,\n expanded:\n viewModel.getTechniqueVM(technique, tactic).showSubtechniques &&\n applyControls(technique.subtechniques, tactic).length > 0\n }\"\n class=\"sidebar sidebar--{{ tactic.id }}--{{ technique.id }}\"\n (click)=\"onToggleSubtechniquesVisible(technique, tactic)\">\n
\n \n \n \n
\n
=
\n
\n \n \n \n
\n \n
\n \n
\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\nimport { Tactic } from '../../classes/stix';\nimport { ViewModel } from '../../classes';\n\n@Component({\n selector: 'tactic-cell',\n templateUrl: './tactic-cell.component.html',\n styleUrls: ['./tactic-cell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TacticCellComponent implements OnInit {\n @Input() tactic: Tactic;\n @Input() viewModel: ViewModel;\n\n constructor() {\n // intentionally left blank\n }\n\n ngOnInit() {\n // intentionally left blank\n }\n}\n","\n {{ tactic.attackID }}\n
\n {{ tactic.name }}\n\n","import { ElementRef } from '@angular/core';\n\nexport abstract class CellPopover {\n private theElement: any;\n constructor(element: ElementRef) {\n this.theElement = element.nativeElement;\n }\n\n /**\n * Get the location of the tooltip according to the location on the screen.\n * Returns one of the following:\n * \"top left\":\n * ------------------\n * | XXXX |\n * | XXXX |\n * | X |\n * | |\n * ------------------\n * \"top right\":\n * ------------------\n * | XXXX |\n * | XXXX |\n * | X |\n * | |\n * ------------------\n * \"bottom left\":\n * ------------------\n * | |\n * | XXXX X |\n * | XXXX |\n * ------------------\n * \"bottom right\":\n * ------------------\n * | |\n * | X XXXX |\n * | XXXX |\n * ------------------\n * @returns {string} direction\n */\n public getPosition(): string {\n let boundingRect = this.theElement.getBoundingClientRect();\n let halfWidth = window.innerWidth / 2;\n let halfHeight = window.innerHeight / 2;\n let position = [];\n if (boundingRect.right > halfWidth) position.push('left');\n else position.push('right');\n if (boundingRect.bottom > halfHeight) position.push('top');\n else position.push('bottom');\n return position.join(' ');\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { ContextMenuItem, Link, TechniqueVM, ViewModel } from '../../../classes';\nimport { Technique, Tactic } from '../../../classes/stix';\nimport { ViewModelsService } from '../../../services/viewmodels.service';\nimport { ConfigService } from '../../../services/config.service';\nimport { CellPopover } from '../cell-popover';\n\n@Component({\n selector: 'app-contextmenu',\n templateUrl: './contextmenu.component.html',\n styleUrls: ['./contextmenu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ContextmenuComponent extends CellPopover implements OnInit {\n @Input() technique: Technique;\n @Input() tactic: Tactic;\n @Input() viewModel: ViewModel;\n public placement: string;\n @Output() close = new EventEmitter();\n\n public get techniqueVM(): TechniqueVM {\n return this.viewModel.getTechniqueVM(this.technique, this.tactic);\n }\n\n public get links(): Link[] {\n return this.techniqueVM.links;\n }\n\n constructor(\n private element: ElementRef,\n public configService: ConfigService,\n public viewModelsService: ViewModelsService\n ) {\n super(element);\n }\n\n ngOnInit() {\n this.placement = this.getPosition();\n }\n\n public closeContextmenu() {\n this.close.emit();\n }\n\n public select() {\n this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(this.technique, this.tactic);\n this.closeContextmenu();\n }\n\n public addSelection() {\n this.viewModel.selectTechnique(this.technique, this.tactic);\n this.closeContextmenu();\n }\n\n public removeSelection() {\n this.viewModel.unselectTechnique(this.technique, this.tactic);\n this.closeContextmenu();\n }\n\n public selectAll() {\n this.viewModel.selectAllTechniques();\n this.closeContextmenu();\n }\n\n public deselectAll() {\n this.viewModel.clearSelectedTechniques();\n this.closeContextmenu();\n }\n\n public invertSelection() {\n this.viewModel.invertSelection();\n this.closeContextmenu();\n }\n\n public selectAnnotated() {\n this.viewModel.selectAnnotated();\n this.closeContextmenu();\n }\n\n public selectUnannotated() {\n this.viewModel.selectUnannotated();\n this.closeContextmenu();\n }\n\n public selectAllInTactic() {\n this.viewModel.selectAllTechniquesInTactic(this.tactic);\n this.closeContextmenu();\n }\n\n public deselectAllInTactic() {\n this.viewModel.unselectAllTechniquesInTactic(this.tactic);\n this.closeContextmenu();\n }\n\n public viewTechnique() {\n window.open(this.technique.url, '_blank');\n this.closeContextmenu();\n }\n\n public viewTactic() {\n window.open(this.tactic.url, '_blank');\n this.closeContextmenu();\n }\n\n public pinCell() {\n this.viewModelsService.pinnedCell =\n this.viewModelsService.pinnedCell === this.techniqueVM.technique_tactic_union_id ? '' : this.techniqueVM.technique_tactic_union_id;\n this.closeContextmenu();\n }\n\n public openCustomContextMenuItem(customItem: ContextMenuItem) {\n window.open(customItem.getReplacedURL(this.technique, this.tactic), '_blank');\n this.closeContextmenu();\n }\n\n public openLink(link: Link) {\n window.open(link.url);\n this.closeContextmenu();\n }\n}\n","
\n \n
\n \n
\n
\n
{{ technique.name }} ({{ technique.attackID }})
\n
\n
\n
pin/unpin tooltip
\n
\n
\n
select
\n
add to selection
\n
remove from selection
\n
\n
\n
select all
\n
deselect all
\n
invert selection
\n
\n
\n
select annotated
\n
select unannotated
\n
\n
\n
select all techniques in tactic
\n
deselect all techniques in tactic
\n
\n
\n
view technique
\n
view tactic
\n
\n
0\">\n \n {{ contextMenuItem.label }}\n
\n
\n
\n \n
\n
\n\n","import { Component, OnInit, Input, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\nimport { DataService } from '../../services/data.service';\nimport { Technique, Tactic, Matrix } from '../../classes/stix';\nimport { ConfigService } from '../../services/config.service';\nimport { Cell } from '../cell';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'technique-cell',\n templateUrl: './technique-cell.component.html',\n styleUrls: ['./technique-cell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TechniqueCellComponent extends Cell implements OnInit {\n @Input() matrix: Matrix;\n @Output() highlight = new EventEmitter(); // emit with the highlighted technique, or null to unhighlight\n @Output() unhighlight = new EventEmitter();\n @Output() leftclick = new EventEmitter(); // emit with the selected technique and the modifier keys\n\n public get isCellPinned(): boolean {\n return this.viewModelsService.pinnedCell === this.viewModel.getTechniqueVM(this.technique, this.tactic).technique_tactic_union_id;\n }\n\n public get showTooltip(): boolean {\n if (this.isCellPinned) return true;\n if (this.showContextmenu) return false;\n if (this.viewModel.highlightedTechniques.size === 0) return false;\n\n return (\n this.viewModel.highlightedTechnique === this.technique &&\n this.viewModel.highlightedTactic &&\n this.viewModel.highlightedTactic.id === this.tactic.id\n );\n }\n\n constructor(\n public dataService: DataService,\n public configService: ConfigService,\n public viewModelsService: ViewModelsService\n ) {\n super(dataService, configService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n\n // count number of annotated sub-techniques on this technique\n public annotatedSubtechniques(): number {\n let annotatedSubs: Technique[] = [];\n for (let s of this.technique.subtechniques) {\n let subVM = this.viewModel.getTechniqueVM(s, this.tactic);\n if (subVM.annotated()) annotatedSubs.push(s);\n }\n return this.applyControls(annotatedSubs, this.tactic).length;\n }\n\n // sort and filter techniques\n public applyControls(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.applyControls(techniques, tactic, this.matrix);\n }\n\n // events to pass to parent component\n public onMouseEnter() {\n this.highlight.emit();\n }\n public onMouseLeave() {\n this.unhighlight.emit();\n }\n public onLeftClick(event) {\n if (!this.isCellPinned) this.viewModelsService.pinnedCell = '';\n if (this.configService.getFeature('selecting_techniques'))\n this.leftclick.emit({\n technique: this.technique,\n // modifier keys\n shift: event.shiftKey,\n ctrl: event.ctrlKey,\n meta: event.metaKey,\n // position of event on page\n x: event.pageX,\n y: event.pageY,\n });\n else this.onRightClick(event);\n }\n public onRightClick(event) {\n if (!this.isCellPinned) this.viewModelsService.pinnedCell = '';\n this.showContextmenu = true;\n }\n\n // return css classes for a technique\n public getClass(): string {\n let theclass = super.getClass();\n\n // classes by annotated sub-techniques\n if (!this.annotatedSubtechniques()) theclass += ' unannotated';\n\n if (this.isCellPinned) theclass += ' editing';\n\n return theclass;\n }\n}\n","
\n
\n \n {{ technique.attackID }}\n
\n {{ technique.name }}\n
\n 0\">\n \n  ({{ annotatedSubtechniques() }}/{{ applyControls(technique.subtechniques, tactic).length }})\n \n \n
\n \n \n
\n","import { Component, OnInit, Input, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { DataService } from '../../../services/data.service';\nimport { Technique, Tactic, Note } from '../../../classes/stix';\nimport { ViewModel, TechniqueVM } from '../../../classes';\nimport { ViewModelsService } from '../../../services/viewmodels.service';\nimport { CellPopover } from '../cell-popover';\n\n@Component({\n selector: 'app-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TooltipComponent extends CellPopover implements OnInit {\n @Input() technique: Technique;\n @Input() tactic: Tactic;\n @Input() viewModel: ViewModel;\n public placement: string;\n public notes: Note[];\n\n public get isCellPinned(): boolean {\n return this.viewModelsService.pinnedCell === this.techniqueVM.technique_tactic_union_id;\n }\n\n public get techniqueVM(): TechniqueVM {\n return this.viewModel.getTechniqueVM(this.technique, this.tactic);\n }\n\n constructor(\n public element: ElementRef,\n public dataService: DataService,\n public viewModelsService: ViewModelsService\n ) {\n super(element);\n }\n\n ngOnInit() {\n this.placement = this.getPlacement();\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n this.notes = domain.notes.filter((note) => {\n return note.object_refs.includes(this.technique.id);\n });\n }\n\n public getPlacement(): string {\n return this.getPosition();\n }\n\n public unpin(): void {\n this.viewModelsService.pinnedCell = '';\n }\n}\n","
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{ technique.name }} ({{ technique.attackID }})\n \n push_pin\n \n
Disabled
Score:{{ techniqueVM.score }}
Aggregate Score ({{ viewModel.layout.aggregateFunction }}):{{ techniqueVM.aggregateScore }}
Comment:{{ techniqueVM.comment }}
{{ note.abstract }}:{{ note.content }}

{{ metadata.name }}:{{ metadata.value }}
\n
\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\nimport { StixObject, Group, Mitigation, Software, Technique, Campaign, Asset } from '../classes/stix';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { DataService } from '../services/data.service';\nimport { ViewModel } from '../classes';\n\n@Component({\n selector: 'app-search-and-multiselect',\n templateUrl: './search-and-multiselect.component.html',\n styleUrls: ['./search-and-multiselect.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SearchAndMultiselectComponent implements OnInit {\n @Input() viewModel: ViewModel;\n\n public stixTypes: any[] = [];\n public techniqueResults: Technique[] = [];\n // Data Components is a map mainly because it is a collection of labels that map to\n // an array of techniques, where we want to filter/sort by label name\n public stixDataComponents = new Map();\n public stixDataComponentLabels: string[] = [];\n public userClickedExpand: boolean = false;\n\n public expandedPanels = {\n 0: true, // techniques panel\n 1: false, // groups panel\n 2: false, // software panel\n 3: false, // campaign panel\n 4: false, // mitigations panel\n 5: false, // data components panel\n 6: false, // assets panel\n };\n\n public fields = [\n {\n label: 'name',\n field: 'name',\n enabled: true,\n },\n {\n label: 'ATT&CK ID',\n field: 'attackID',\n enabled: true,\n },\n {\n label: 'description',\n field: 'description',\n enabled: true,\n },\n {\n label: 'data sources',\n field: 'datasources',\n enabled: true,\n },\n ];\n\n private debounceFunction;\n private previousQuery: string = '';\n private _query: string = '';\n\n // query setter\n public set query(newQuery: string) {\n this._query = newQuery;\n if (!this.debounceFunction) {\n this.debounceFunction = setTimeout(() => {\n this.getResults(this._query);\n this.debounceFunction = null;\n this.previousQuery = this._query;\n }, 300);\n }\n }\n\n // get query length\n public get queryLength(): number {\n return this._query.length;\n }\n\n // get techniques matching label\n public get stixDataComponentsResults(): Technique[] {\n let results = [];\n this.stixDataComponentLabels.forEach((label) => {\n results = results.concat(this.stixDataComponents.get(label).objects);\n });\n return results;\n }\n\n constructor(\n private dataService: DataService,\n private viewModelsService: ViewModelsService\n ) {\n // intentionally left blank\n }\n\n ngOnInit() {\n this.getResults();\n }\n\n /**\n * Takes an array of items and does the following:\n * 1) if the query is empty, then it sorts the array\n * 2) if the query is not empty, then it filters the already sorted array until nothing is left, or until\n * the query is cleared out and empty again\n * @param items StixObject[] or Technique[] objects to be filtered and sorted\n * @param query user-input query in search bar\n * @param sortTechniquesAndSubtechniques will be true if called from getTechniqueResults(),\n * to sort techniques and all its subtechniques,\n * otherwise just sort StixObject items by name\n */\n public filterAndSort(items: StixObject[], query: string = '', sortTechniquesAndSubtechniques = false): any[] {\n let self = this;\n let results = items.filter((t) => !t.deprecated && !t.revoked);\n\n if (query.trim() === '') {\n // sort the array\n if (sortTechniquesAndSubtechniques) {\n results.sort((tA: Technique, tB: Technique) => {\n let c1 = tA.isSubtechnique ? tA.parent.name : tA.name;\n let c2 = tB.isSubtechnique ? tB.parent.name : tB.name;\n return c1.localeCompare(c2);\n });\n } else {\n results.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()));\n }\n } else {\n // deconflict IDs for cross-tactic techniques\n let seenIDs = new Set();\n results = results.filter(function (technique: Technique) {\n if (seenIDs.has(technique.id)) return false;\n for (let field of self.fields) {\n if (field.enabled) {\n // query in this field\n if (technique[field.field]?.toLowerCase().includes(query.trim().toLowerCase())) {\n seenIDs.add(technique.id);\n return true;\n }\n }\n }\n return false;\n });\n }\n return results;\n }\n\n /**\n * Filters and sorts data component labels\n * @param labels list of data component labels\n * @param query user-input query in search bar\n */\n public filterAndSortLabels(labels: string[], query: string): string[] {\n let results: string[] = labels;\n if (query.trim() === '') {\n return results.sort();\n } else {\n return results.filter((r) => r.toLowerCase().includes(query.trim().toLowerCase()));\n }\n }\n\n /**\n * Checks if the query is:\n * 1) valid, and\n * 2) part of last query, otherwise call getTechniques() and getStixData() to search all objects again\n **/\n public getResults(query: string = '', fieldToggled = false) {\n if (query.trim() != '' && query.includes(this.previousQuery) && !fieldToggled) {\n this.techniqueResults = this.filterAndSort(this.techniqueResults, query, true);\n this.stixTypes.forEach((item) => (item['objects'] = this.filterAndSort(item['objects'], query)));\n } else {\n this.getTechniques();\n this.getStixData();\n }\n this.stixDataComponentLabels = this.filterAndSortLabels(this.stixDataComponentLabels, query);\n this.expandPanels();\n }\n\n /**\n * Update expanded panels based on query and results\n */\n public expandPanels() {\n if (!this.userClickedExpand) {\n this.expandedPanels[0] = this.techniqueResults.length > 0;\n let isPrevExpanded = this.expandedPanels[0];\n if (!isPrevExpanded) {\n this.stixTypes.forEach((s, i) => {\n this.expandedPanels[i + 1] = !isPrevExpanded && s.objects.length > 0;\n isPrevExpanded = s.isExpanded;\n });\n }\n this.expandedPanels[4] = !isPrevExpanded && this.stixDataComponentLabels.length > 0;\n } else {\n let isAllCollapsed = false;\n for (const isPanelExpanded in this.expandedPanels) {\n if (isPanelExpanded) {\n isAllCollapsed = true;\n break;\n }\n }\n this.userClickedExpand = isAllCollapsed;\n }\n }\n\n /**\n * Retrieve master list of techniques and sub-techniques\n */\n public getTechniques(): void {\n let allTechniques = this.dataService.getDomain(this.viewModel.domainVersionID).techniques;\n for (let technique of allTechniques) {\n allTechniques = allTechniques.concat(technique.subtechniques);\n }\n this.techniqueResults = this.filterAndSort(allTechniques, this._query, true);\n }\n\n /**\n * Retrieve master list of STIX objects\n */\n public getStixData(): void {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n\n this.stixTypes = [\n {\n label: 'threat groups',\n objects: this.filterAndSort(domain.groups, this._query),\n },\n {\n label: 'software',\n objects: this.filterAndSort(domain.software, this._query),\n },\n {\n label: 'mitigations',\n objects: this.filterAndSort(domain.mitigations, this._query),\n },\n {\n label: 'campaigns',\n objects: this.filterAndSort(domain.campaigns, this._query),\n },\n {\n label: 'assets',\n objects: this.filterAndSort(domain.assets, this._query),\n },\n ];\n\n domain.dataComponents.forEach((c) => {\n const source = c.source(this.viewModel.domainVersionID);\n const label = `${source.name}: ${c.name}`;\n const obj = {\n objects: c.techniques(this.viewModel.domainVersionID),\n url: source.url,\n };\n this.stixDataComponents.set(label, obj);\n });\n this.stixDataComponentLabels = this.filterAndSortLabels(Array.from(this.stixDataComponents.keys()), this._query);\n }\n\n public toggleFieldEnabled(field: string) {\n for (let thefield of this.fields) {\n if (thefield.field == field) {\n thefield.enabled = !thefield.enabled;\n // set query to empty string to trigger getResults() in the case that:\n // 1) a field was toggled, and\n // 2) the query did not change\n this.getResults('', true);\n break;\n }\n }\n }\n\n public mouseEnterAll(techniques: Technique[]) {\n techniques.forEach((t) => this.mouseEnter(t));\n }\n\n public mouseEnter(technique: Technique, isTechnique = true): void {\n if (!isTechnique) {\n for (let t of this.getRelated(technique)) {\n this.viewModel.selectTechniqueAcrossTactics(t, true, true);\n }\n } else {\n this.viewModel.highlightTechnique(technique);\n }\n }\n\n public mouseLeave(): void {\n this.viewModel.clearHighlight();\n }\n\n public select(stixObject: any, isTechnique = true): void {\n if (isTechnique) {\n this.viewModel.selectTechniqueAcrossTactics(stixObject);\n } else if (!isTechnique) {\n for (let technique of this.getRelated(stixObject)) {\n this.viewModel.selectTechniqueAcrossTactics(technique);\n }\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public deselect(stixObject: any, isTechnique = true): void {\n if (isTechnique) {\n this.viewModel.unselectTechniqueAcrossTactics(stixObject);\n } else if (!isTechnique) {\n for (let technique of this.getRelated(stixObject)) {\n this.viewModel.unselectTechniqueAcrossTactics(technique);\n }\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public selectAll(items: any[], isTechniqueArray = true): void {\n if (isTechniqueArray) {\n for (let result of items) this.select(result, isTechniqueArray);\n } else if (!isTechniqueArray) {\n for (let stixObject of items) this.select(stixObject, isTechniqueArray);\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public deselectAll(items: any[], isTechniqueArray = true): void {\n if (isTechniqueArray) {\n for (let result of items) this.deselect(result, isTechniqueArray);\n } else if (!isTechniqueArray) {\n for (let stixObject of items) this.deselect(stixObject, isTechniqueArray);\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public getRelated(stixObject: StixObject): Technique[] {\n // master list of all techniques and sub-techniques\n let techniques = this.dataService.getDomain(this.viewModel.domainVersionID).techniques;\n let allTechniques = techniques.concat(this.dataService.getDomain(this.viewModel.domainVersionID).subtechniques);\n let domainVersionID = this.viewModel.domainVersionID;\n\n if (stixObject instanceof Group) {\n return allTechniques.filter((technique: Technique) => (stixObject as Group).relatedTechniques(domainVersionID).includes(technique.id));\n } else if (stixObject instanceof Software) {\n return allTechniques.filter((technique: Technique) => (stixObject as Software).relatedTechniques(domainVersionID).includes(technique.id));\n } else if (stixObject instanceof Mitigation) {\n return allTechniques.filter((technique: Technique) =>\n (stixObject as Mitigation).relatedTechniques(domainVersionID).includes(technique.id)\n );\n } else if (stixObject instanceof Campaign) {\n return allTechniques.filter((technique: Technique) => (stixObject as Campaign).relatedTechniques(domainVersionID).includes(technique.id));\n } else if (stixObject instanceof Asset) {\n return allTechniques.filter((technique: Technique) => (stixObject as Asset).relatedTechniques(domainVersionID).includes(technique.id));\n }\n }\n}\n","
\n
\n \n
\n \n \n \n search\n \n\n Search Settings\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n \n\n
\n \n \n \n \n

Techniques ({{ techniqueResults.length }})

\n
\n \n
\n\n \n
\n
\n \n \n
\n
\n 0; else noTechniquesResults\">\n \n \n \n \n \n \n
\n {{ result.parent.name }} :\n {{ result.name }}\n view\n \n \n \n
\n \n
no results for techniques
\n
\n
\n
\n
\n
\n\n \n \n \n

{{ stixType.label | titlecase }} ({{ stixType.objects.length }})

\n
\n \n
\n\n \n
\n \n \n
\n
\n 0; else noResults\">\n \n \n \n \n \n \n
\n {{ stixObject.name }}\n view\n \n \n \n
\n \n
no results for {{ stixType.label }}
\n
\n
\n
\n \n\n \n \n \n

Data Sources ({{ stixDataComponentLabels.length }})

\n
\n \n
\n\n \n
\n \n \n
\n
\n 0; else noResults\">\n \n \n \n \n \n \n
\n {{ label }}\n view\n \n \n \n
\n \n
no results for data sources
\n
\n
\n
\n
\n
\n
\n\n \n\n
\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport { ContextMenuItem } from '../classes/context-menu-item';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n public collectionIndex: string;\n public versions: {\n enabled: boolean;\n entries: any;\n } = {\n enabled: false,\n entries: [],\n };\n public contextMenuItems: ContextMenuItem[] = [];\n public defaultLayers: any;\n public commentColor = 'yellow';\n public linkColor = 'blue';\n public metadataColor = 'purple';\n public banner: string;\n public featureList: any[] = [];\n public customizefeatureList: any[] = []\n\n private features = new Map();\n private featureGroups = new Map();\n\n public get subtechniquesEnabled(): boolean {\n return this.features.get('subtechniques');\n }\n\n constructor(private http: HttpClient) {\n // intentionally left blank\n }\n\n /**\n * Checks if the feature is enabled\n * @param featureName feature name\n * @returns true if the feature is enabled, false otherwise\n */\n public getFeature(featureName: string): boolean {\n return this.features.get(featureName);\n }\n\n /**\n * Checks if any/all features in the group are enabled\n * @param featureGroup feature group name\n * @param type\t'any' or 'all' for logical or/and\n * @returns true iff any/all are enabled, false otherwise\n */\n public getFeatureGroup(featureGroup: string, type?: string): boolean {\n if (!this.featureGroups.has(featureGroup)) return true;\n\n let subFeatures = this.featureGroups.get(featureGroup);\n let count = this.getFeatureGroupCount(featureGroup);\n return type == 'any' ? count > 0 : count === subFeatures.length;\n }\n\n /**\n * Get the number of enabled features in the group\n * @param featureGroup feature group name\n * @returns the number of enabled features in the group, or -1 if\n * the group does not exist\n */\n public getFeatureGroupCount(featureGroup: string): number {\n if (!this.featureGroups.has(featureGroup)) return -1;\n let subFeatures = this.featureGroups.get(featureGroup);\n let enabled = subFeatures.filter((f) => this.getFeature(f));\n return enabled.length;\n }\n\n /**\n * Recursively search an object for boolean properties, set these as features\n * Take a key:value pair of an object. If the value is a boolean, set the\n * feature[key] to value. Otherwise recursively walk value to find boolean\n * options.\n *\n * Additionally, if the given feature grouping (where value is an obj)\n * has been previously defined, boolean properties assigned to the grouping\n * name will apply to all subfeatures of the grouping.\n *\n * @param featureName string, the fieldname the value was found in\n * @param value boolean:object the value of the field. If a boolean,\n * sets feature[featureName] = value, otherwise walks recursively\n */\n public setFeature(featureName: string, value: any): string[] {\n let self = this;\n\n if (typeof value == 'boolean') {\n //base case\n if (this.featureGroups.has(featureName)) {\n //feature group, assign to all subfeatures\n this.featureGroups.get(featureName).forEach(function (subFeatureName: string) {\n self.setFeature(subFeatureName, value);\n });\n } else {\n //single feature\n this.features.set(featureName, value);\n }\n return [featureName];\n }\n\n if (typeof value == 'object') {\n //keep walking\n let subfeatures = [];\n Object.keys(value).forEach(function (fieldname: string) {\n subfeatures = Array.prototype.concat(subfeatures, self.setFeature(fieldname, value[fieldname]));\n });\n this.featureGroups.set(featureName, subfeatures);\n return subfeatures;\n }\n }\n\n /**\n * given a set of feature objects, set the enabledness of that object and all subobjects\n *\n * @param featureObject {name: string, enabled: boolean, subfeatures?: featureObject[] }\n * Of enabled is false and it has subfeatures, they will all be forced to be false too\n * @param override Set all subfeatures, and their subfeatures, values to\n * this value\n */\n public setFeature_object(featureObject: any, override = null): string[] {\n let self = this;\n\n // base case\n if (!featureObject.hasOwnProperty('subfeatures')) {\n let enabled = override !== null ? override : featureObject.enabled;\n this.features.set(featureObject.name, enabled);\n return [featureObject.name];\n } else {\n // has subfeatures\n if (!override) {\n override = !featureObject.enabled ? false : null;\n }\n let subfeatures = [];\n featureObject.subfeatures.forEach(function (subfeature) {\n subfeatures = Array.prototype.concat(subfeatures, self.setFeature_object(subfeature, override));\n });\n this.featureGroups.set(featureObject.name, subfeatures);\n return subfeatures;\n }\n }\n\n /**\n * Return if the given string corresponds to a defined feature\n * @param featureName the name of the feature\n * @return true if the feature exists, false otherwise\n */\n public isFeature(featureName: string): boolean {\n return this.features.has(featureName);\n }\n /**\n * return if the given string corresponds to a defined feature group\n * @param featureGroupName the name of the feature group\n * @return true if it is a feature group, false otherwise\n */\n public isFeatureGroup(featureGroupName: string): boolean {\n return this.featureGroups.has(featureGroupName);\n }\n\n /**\n * Get all url fragments\n * @param url optional, url to parse instead of window location href\n * @return all fragments as key-value pairs\n */\n public getAllFragments(url?: string): Map {\n if (!url) url = window.location.href;\n let fragments = new Map();\n let regex = /[#&](\\w+)=(\\w+)/g;\n\n let match;\n while ((match = regex.exec(url))) {\n fragments.set(match[1], match[2]);\n }\n\n return fragments;\n }\n\n /**\n * Validate that the configuration file specifies a collection index URL\n * or a list of versions/domains\n * @param config the configuration to validate\n * @returns the configuration, if valid, otherwise throws an error\n */\n public validateConfig(config: any): any {\n if (!config.collection_index_url && !config.versions?.entries?.length) {\n throw new Error(`'collection_index_url' or 'versions' must be defined`);\n }\n if (config.collection_index_url && typeof config.collection_index_url !== typeof 'string') {\n throw new Error(`'collection_index_url' must be a string`);\n }\n return config;\n }\n\n /**\n * Load the configuration file\n * Note: this is done at startup\n */\n public loadConfig() {\n return this.http\n .get('CVE2CAPEC/mitre/assets/config.json')\n .pipe(\n map((config: any) => this.validateConfig(config)),\n switchMap((config: any) => {\n console.debug('loaded app configuration settings');\n\n config['custom_context_menu_items'].forEach((item) => {\n this.contextMenuItems.push(new ContextMenuItem(item.label, item.url, item.subtechnique_url));\n });\n this.defaultLayers = config['default_layers'];\n this.commentColor = config['comment_color'];\n this.linkColor = config['link_color'];\n this.metadataColor = config['metadata_color'];\n this.banner = config['banner'];\n\n // parse feature preferences\n this.featureList = config['features'];\n this.customizefeatureList = config['customize_features']\n config['features'].forEach((feature) => {\n this.setFeature_object(feature);\n });\n config['customize_features'].forEach((feature) => {\n this.setFeature_object(feature);\n });\n\n // override preferences with preferences from URL fragments\n this.getAllFragments().forEach((value: string, key: string) => {\n if (this.isFeature(key) || this.isFeatureGroup(key)) {\n this.setFeature(key, value == 'true');\n }\n });\n\n // parse configured domains and versions\n this.versions = config['versions'];\n if (config['collection_index_url']) {\n return this.http.get(config['collection_index_url']).pipe(\n tap((_) => console.log('loaded collection index from', config['collection_index_url'])),\n catchError((err) => {\n throw new Error('collection index failed to load. ' + err.message);\n })\n );\n }\n return of(null);\n }),\n map((collectionIndex: any) => {\n if (collectionIndex) this.collectionIndex = collectionIndex;\n }),\n catchError((err) => {\n alert(`ERROR the configuration file failed to parse. See the javascript console for more details.`);\n throw err;\n })\n )\n .toPromise();\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Buffer } from 'buffer';\nimport { forkJoin, from, Observable } from 'rxjs';\nimport { Asset, Campaign, DataComponent, Group, Software, Matrix, Technique, Mitigation, Note } from '../classes/stix';\nimport { TaxiiConnect, Collection } from '../utils/taxii2lib';\nimport { Domain, Version, VersionChangelog } from '../classes';\nimport { ConfigService } from './config.service';\nimport * as globals from '../utils/globals';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataService {\n constructor(\n private http: HttpClient,\n private configService: ConfigService\n ) {\n console.debug('initializing data service');\n if (configService.versions?.enabled) {\n // parse versions structure from configuration file\n // support for workbench integration, taxii and custom data\n this.setUpDomains(configService.versions.entries);\n }\n if (configService.collectionIndex) {\n // parse versions from collection index\n this.parseCollectionIndex(configService.collectionIndex);\n }\n this.versions.sort((a, b) => (+a.number > +b.number ? -1 : 1));\n this.latestVersion = this.versions[0];\n }\n\n public domain_backwards_compatibility = {\n 'mitre-enterprise': 'enterprise-attack',\n 'mitre-mobile': 'mobile-attack',\n };\n public domains: Domain[] = [];\n public versions: Version[] = [];\n public latestVersion: Version; // set in constructor\n\n // Observable for data\n private domainData$: Observable;\n\n /**\n * Callback functions passed to this function will be called after data is loaded\n * @param {string} domainVersionID the ID of the domain and version to load\n * @param {*} callback callback function to call when data is done loading\n */\n public onDataLoad(domainVersionID, callback) {\n this.getDomain(domainVersionID).dataLoadedCallbacks.push(callback);\n }\n\n /**\n * Parse the given stix bundles into the relevant data holders\n * @param domain\n * @param stixBundles\n */\n public parseBundles(domain: Domain, stixBundles: any[]): void {\n let platforms = new Set();\n let seenIDs = new Set();\n let matrixSDOs = [];\n let idToTacticSDO = new Map();\n let matrixToTechniqueSDOs = new Map();\n for (let bundle of stixBundles) {\n let techniqueSDOs = [];\n let bundleMatrices = [];\n let idToTechniqueSDO = new Map();\n // iterate through stix domain objects in the bundle\n for (let sdo of bundle.objects) {\n // filter out duplicates, except for matrices\n // which are needed to properly build the datatables\n if (sdo.type != 'x-mitre-matrix') {\n if (seenIDs.has(sdo.id)) continue;\n seenIDs.add(sdo.id);\n }\n\n // parse according to type\n switch (sdo.type) {\n case 'x-mitre-data-component':\n domain.dataComponents.push(new DataComponent(sdo, this));\n break;\n case 'x-mitre-data-source':\n domain.dataSources.set(sdo.id, { name: sdo.name, external_references: sdo.external_references });\n break;\n case 'intrusion-set':\n domain.groups.push(new Group(sdo, this));\n break;\n case 'malware':\n case 'tool':\n domain.software.push(new Software(sdo, this));\n break;\n case 'campaign':\n domain.campaigns.push(new Campaign(sdo, this));\n break;\n case 'x-mitre-asset':\n domain.assets.push(new Asset(sdo, this));\n break;\n case 'course-of-action':\n domain.mitigations.push(new Mitigation(sdo, this));\n break;\n case 'relationship':\n this.parseRelationship(sdo, domain);\n break;\n case 'attack-pattern':\n idToTechniqueSDO.set(sdo.id, sdo);\n if (!sdo.x_mitre_is_subtechnique) {\n techniqueSDOs.push(sdo);\n }\n break;\n case 'x-mitre-tactic':\n idToTacticSDO.set(sdo.id, sdo);\n break;\n case 'x-mitre-matrix':\n matrixSDOs.push(sdo);\n bundleMatrices.push(sdo);\n break;\n case 'note':\n domain.notes.push(new Note(sdo));\n break;\n }\n }\n\n // create techniques\n this.createTechniques(techniqueSDOs, idToTechniqueSDO, domain);\n\n // create map of matrices to techniques\n for (let matrixSDO of bundleMatrices) {\n if (!matrixToTechniqueSDOs.get(matrixSDO.id)) {\n matrixToTechniqueSDOs.set(matrixSDO.id, techniqueSDOs);\n } else {\n matrixToTechniqueSDOs.get(matrixSDO.id).push(...techniqueSDOs);\n }\n }\n\n // parse platforms\n this.parsePlatforms(domain).forEach(platforms.add, platforms);\n }\n\n // create matrices\n this.createMatrices(matrixSDOs, idToTacticSDO, matrixToTechniqueSDOs, domain);\n\n domain.platforms = Array.from(platforms); // convert to array\n\n // data loading complete; update watchers\n domain.dataLoaded = true;\n domain.executeCallbacks();\n }\n\n /**\n * Creates techniques and sub-techniques from the given technique SDOs\n * @param techniqueSDOs list of parent-level technique SDOs to create\n * @param idToTechniqueSDO map of all technique IDs to SDOs (incl. sub-techniques)\n * @param domain the domain to add the techniques to\n */\n public createTechniques(techniqueSDOs: any, idToTechniqueSDO: Map, domain: Domain): void {\n for (let techniqueSDO of techniqueSDOs) {\n let subtechniques: Technique[] = [];\n if (this.configService.subtechniquesEnabled) {\n if (domain.relationships.subtechniques_of.has(techniqueSDO.id)) {\n domain.relationships.subtechniques_of.get(techniqueSDO.id).forEach((sub_id) => {\n if (idToTechniqueSDO.has(sub_id)) {\n let subtechnique = new Technique(idToTechniqueSDO.get(sub_id), [], this);\n subtechniques.push(subtechnique);\n domain.subtechniques.push(subtechnique);\n }\n // else the target was revoked or deprecated and we can skip honoring the relationship\n });\n }\n }\n domain.techniques.push(new Technique(techniqueSDO, subtechniques, this));\n }\n }\n\n /**\n * Creates the matrices, which also creates its tactics and filters the techniques\n * @param matricesList list of matrix SDOs to create\n * @param tacticsList list of tactic SDOs\n * @param domain the domain to add the matrix/tactics to\n */\n public createMatrices(matrixSDOs: any[], idToTacticSDO: Map, matrixToTechniqueSDOs, domain: Domain): void {\n let createdMatrixIDs = [];\n for (let matrixSDO of matrixSDOs) {\n // check if matrix was already created\n if (createdMatrixIDs.includes(matrixSDO.id)) continue;\n\n // check if matrix is deprecated\n if (matrixSDO.x_mitre_deprecated) continue;\n\n // retrieve relevant matrix techniques\n let techniqueSDOs = matrixToTechniqueSDOs.get(matrixSDO.id);\n let techniqueIDs = techniqueSDOs.map((t) => t.id);\n let techniques = domain.techniques.filter((t) => techniqueIDs.includes(t.id));\n domain.matrices.push(new Matrix(matrixSDO, idToTacticSDO, techniques, this));\n\n // add to list of created matrices\n createdMatrixIDs.push(matrixSDO.id);\n }\n }\n\n /**\n * Extracts the set of platforms from the list of techniques\n * in the given domain\n * @param domain the domain for which to parse the platforms\n * @returns the set of platforms found\n */\n public parsePlatforms(domain: Domain): Set {\n let platforms = new Set();\n let allTechniques = domain.techniques.concat(domain.subtechniques);\n\n // parse platforms\n allTechniques.forEach((technique) => {\n if (!technique.deprecated && !technique.revoked) {\n technique.platforms?.forEach(platforms.add, platforms);\n }\n });\n\n return platforms;\n }\n\n /**\n * Parses the given SRO into the domain relationship map\n * @param sro the SRO to parse\n * @param domain the domain to add the relationship to\n */\n public parseRelationship(sro: any, domain: Domain): void {\n // for existing keys, add the given value to the list of values\n // otherwise, add the key with the value as the first item in the list\n let addRelationshipToMap = function (map, key, value) {\n if (map.has(key)) map.get(key).push(value);\n else map.set(key, [value]);\n };\n\n switch (sro.relationship_type) {\n case 'subtechnique-of':\n if (!this.configService.subtechniquesEnabled) return;\n // record subtechnique:technique relationship\n addRelationshipToMap(domain.relationships['subtechniques_of'], sro.target_ref, sro.source_ref);\n break;\n case 'uses':\n if (sro.source_ref.startsWith('intrusion-set') && sro.target_ref.startsWith('attack-pattern')) {\n // record group:technique relationship\n addRelationshipToMap(domain.relationships['group_uses'], sro.source_ref, sro.target_ref);\n } else if (\n (sro.source_ref.startsWith('malware') || sro.source_ref.startsWith('tool')) &&\n sro.target_ref.startsWith('attack-pattern')\n ) {\n // record software:technique relationship\n addRelationshipToMap(domain.relationships['software_uses'], sro.source_ref, sro.target_ref);\n } else if (sro.source_ref.startsWith('campaign') && sro.target_ref.startsWith('attack-pattern')) {\n // record campaign:technique relationship\n addRelationshipToMap(domain.relationships['campaign_uses'], sro.source_ref, sro.target_ref);\n }\n break;\n case 'mitigates':\n // record mitigation:technique relationship\n addRelationshipToMap(domain.relationships['mitigates'], sro.source_ref, sro.target_ref);\n break;\n case 'revoked-by':\n // record stix object: stix object relationship\n domain.relationships['revoked_by'].set(sro.source_ref, sro.target_ref);\n break;\n case 'detects':\n // record data component: technique relationship\n addRelationshipToMap(domain.relationships['component_rel'], sro.source_ref, sro.target_ref);\n break;\n case 'attributed-to':\n // record campaign:group relationship\n addRelationshipToMap(domain.relationships['campaigns_attributed_to'], sro.target_ref, sro.source_ref);\n break;\n case 'targets':\n // record technique:asset relationship\n addRelationshipToMap(domain.relationships['targeted_assets'], sro.target_ref, sro.source_ref);\n break;\n }\n }\n\n /**\n * Set up the URLs for domains in the list defined in the config file\n * @param {versions} list of versions and domains\n */\n public setUpDomains(versions: any[]) {\n versions.forEach((version: any) => {\n let v = this.addVersion(version['name'], version['version'].match(/\\d+/g)[0]);\n version['domains'].forEach((domain: any) => {\n let identifier = domain['identifier'];\n let domainObject = new Domain(identifier, domain['name'], v);\n if (version['authentication']) domainObject.authentication = version['authentication'];\n if (domain['taxii_url'] && domain['taxii_collection']) {\n domainObject.taxii_url = domain['taxii_url'];\n domainObject.taxii_collection = domain['taxii_collection'];\n } else {\n domainObject.urls = domain['data'];\n }\n this.domains.push(domainObject);\n });\n });\n }\n\n /**\n * Parses the collection index for domains/versions\n * @param collectionIndex the collection index\n */\n public parseCollectionIndex(collectionIndex: any) {\n for (let collection of collectionIndex.collections) {\n let domainIdentifier = this.getDomainIdentifier(collection.name);\n\n // only most recent minor versions of a major release\n let minorVersionMap = collection.versions.reduce((acc, version) => {\n const [major, minor] = version.version.split('.').map(Number);\n if (!acc[major] || acc[major].minor < minor) {\n acc[major] = { version: version.version, url: version.url };\n }\n return acc;\n }, {});\n let versions: Array<{ version: string; url: string }> = Object.values(minorVersionMap);\n\n for (let version of versions) {\n let versionNumber = version.version.split('.')[0]; // major version only\n let versionName = `${collectionIndex.name} v${versionNumber}`;\n if (+versionNumber < +globals.minimumSupportedVersion) {\n console.debug(`version ${versionNumber} is not supported, skipping ${collection.name} v${versionNumber}`);\n continue;\n }\n // create version & domain\n let v = this.addVersion(versionName, versionNumber);\n this.domains.push(new Domain(domainIdentifier, collection.name, v, [version.url]));\n }\n }\n }\n\n /**\n * Retrieves the domain identifier from the domain name\n * Helper function for parseCollectionIndex()\n * @param domainName the name of the domain\n * @returns the domain identifier (e.g. 'enterprise-attack')\n */\n public getDomainIdentifier(domainName: string): string {\n return domainName.replace(/ /g, '-').replace(/&/g, 'a').toLowerCase();\n }\n\n /**\n * Adds a new version to the list of versions, checking if\n * one already exists.\n * @param versionName the name of the version\n * @param versionNumber the version number\n * @returns the existing or created Version object\n */\n public addVersion(versionName: string, versionNumber: string): Version {\n // check if version already exists\n let existingVersion = this.versions.find((v) => v.name === versionName && v.number === versionNumber);\n if (!existingVersion) {\n // create and add new version\n let version = new Version(versionName, versionNumber);\n this.versions.push(version);\n return version;\n }\n return existingVersion;\n }\n\n /**\n * Fetch the domain data from the endpoint\n */\n public getDomainData(domain: Domain, refresh: boolean = false): Observable {\n if (domain.taxii_collection && domain.taxii_url) {\n console.debug('fetching data from TAXII server');\n let conn = new TaxiiConnect(domain.taxii_url, '', '');\n let collectionInfo: any = {\n id: domain.taxii_collection,\n title: domain.name,\n description: '',\n can_read: true,\n can_write: false,\n };\n const collection = new Collection(collectionInfo, domain.taxii_url, conn);\n this.domainData$ = forkJoin(from(collection.getObjects('', undefined)));\n } else if (refresh || !this.domainData$) {\n console.debug('retrieving data', domain.urls);\n let bundleData = [];\n const httpOptions = {\n headers: undefined,\n };\n if (domain.authentication && domain.authentication.enabled) {\n // include authorization header, if configured (integrations)\n let token = `${domain.authentication.serviceName}:${domain.authentication.apiKey}`;\n httpOptions.headers = new HttpHeaders({ Authorization: 'Basic ' + Buffer.from(token).toString('base64') });\n }\n domain.urls.forEach((url) => {\n bundleData.push(this.http.get(url, httpOptions));\n });\n this.domainData$ = forkJoin(bundleData);\n }\n return this.domainData$;\n }\n\n /**\n * Load and parse domain data\n */\n public loadDomainData(domainVersionID: string, refresh: boolean = false): Promise {\n let dataPromise: Promise = new Promise((resolve, reject) => {\n let domain = this.getDomain(domainVersionID);\n if (domain) {\n if (domain.dataLoaded && !refresh) resolve(null);\n let subscription;\n subscription = this.getDomainData(domain, refresh).subscribe({\n next: (data: Object[]) => {\n this.parseBundles(domain, data);\n resolve(null);\n },\n complete: () => {\n if (subscription) subscription.unsubscribe();\n }, //prevent memory leaks\n });\n } else if (!domain) {\n // domain not defined in config\n reject(new Error(\"'\" + domainVersionID + \"' is not a valid domain & version.\"));\n }\n });\n return dataPromise;\n }\n\n /**\n * Get domain object by domain ID\n */\n public getDomain(domainVersionID: string): Domain {\n return this.domains.find((d) => d.id === domainVersionID);\n }\n\n /**\n * Get the ID from domain name & version\n */\n public getDomainVersionID(domain: string, versionNumber: string): string {\n if (!versionNumber) {\n // layer with no specified version defaults to current version\n versionNumber = this.versions[0].number;\n }\n return domain + '-' + versionNumber;\n }\n\n /**\n * Retrieve the technique object with the given attackID in the given domain/version\n */\n public getTechnique(attackID: string, domainVersionID: string) {\n let domain = this.getDomain(domainVersionID);\n let all_techniques = domain.techniques.concat(domain.subtechniques);\n return all_techniques.find((t) => t.attackID == attackID);\n }\n\n /**\n * Is the given version supported?\n */\n public isSupported(version: string) {\n let supported = this.versions.map((v) => v.number);\n let match = version.match(/\\d+/g)[0];\n return supported.includes(match);\n }\n\n /**\n * Compares techniques between two ATT&CK versions and returns a set of object changes\n * @param oldDomainVersionID imported layer domain & version to upgrade from\n * @param newDomainVersionID latest ATT&CK domain & version to upgrade to\n */\n public compareVersions(oldDomainVersionID: string, newDomainVersionID: string): VersionChangelog {\n let changelog = new VersionChangelog(oldDomainVersionID, newDomainVersionID);\n let oldDomain = this.getDomain(oldDomainVersionID);\n let newDomain = this.getDomain(newDomainVersionID);\n\n let previousTechniques = oldDomain.techniques.concat(oldDomain.subtechniques);\n let latestTechniques = newDomain.techniques.concat(newDomain.subtechniques);\n\n // object lookup to increase efficiency\n let objectLookup = new Map(\n latestTechniques.map((technique) => [technique.id, previousTechniques.find((p) => p.id == technique.id)])\n );\n\n for (let latestTechnique of latestTechniques) {\n if (!latestTechnique) continue;\n\n let prevTechnique = objectLookup.get(latestTechnique.id);\n if (!prevTechnique) {\n if (latestTechnique.deprecated || latestTechnique.revoked) {\n // object doesn't exist in previous version, but is deprecated or revoked\n // in the latest version\n // this case is unlikely to occur and indicates that something has\n // gone wrong in the data, such as the case in which a sub-technique\n // was deprecated, had its ties erroneously severed with its parent\n // and therefore, cannot be parsed correctly\n continue;\n }\n\n // object doesn't exist in previous version, added to latest version\n changelog.additions.push(latestTechnique.attackID);\n } else if (latestTechnique.modified == prevTechnique.modified) {\n if (prevTechnique.revoked || prevTechnique.deprecated) {\n // object is revoked or deprecated, ignore\n continue;\n } else {\n // no changes made to the object\n changelog.unchanged.push(latestTechnique.attackID);\n }\n } else {\n // changes were made to the object\n if (latestTechnique.revoked && !prevTechnique.revoked) {\n // object was revoked since the previous version\n changelog.revocations.push(latestTechnique.attackID);\n } else if (latestTechnique.revoked && prevTechnique.revoked) {\n // both objects are revoked, ignore\n continue;\n } else if (latestTechnique.deprecated && !prevTechnique.deprecated) {\n // object was deprecated since the previous version\n changelog.deprecations.push(latestTechnique.attackID);\n } else if (latestTechnique.deprecated && prevTechnique.deprecated) {\n // both objects are deprecated, ignore\n continue;\n } else if (latestTechnique.compareVersion(prevTechnique) != 0) {\n // version number changed\n changelog.changes.push(latestTechnique.attackID);\n } else {\n // minor change\n changelog.minor_changes.push(latestTechnique.attackID);\n }\n }\n }\n return changelog;\n }\n}\n\nexport interface ServiceAuth {\n enabled: boolean;\n serviceName: string;\n apiKey: string;\n}\n","import { Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconsService {\n constructor(\n public matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n // intentionally left blank\n }\n\n public registerIcons(): void {\n this.loadIcons(Object.values(Icons), 'CVE2CAPEC/mitre/assets/icons');\n }\n\n private loadIcons(iconKeys: string[], iconUrl: string): void {\n iconKeys.forEach((key) => {\n this.matIconRegistry.addSvgIcon(key, this.domSanitizer.bypassSecurityTrustResourceUrl(`${iconUrl}/${key}.svg`));\n });\n }\n}\n\nexport enum Icons {\n SORT_ALPHABETICAL_ASC = 'ic_sort_alphabetically_ascending',\n SORT_ALPHABETICAL_DESC = 'ic_sort_alphabetically_descending',\n SORT_NUMERICAL_ASC = 'ic_sort_numerically_ascending',\n SORT_NUMERICAL_DESC = 'ic_sort_numerically_descending',\n UNFOLD_MORE_ALT = 'ic_unfold_more_alt',\n NON_STICKY_TOOLBAR = 'ic_push_pin_gray',\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { Gradient, TechniqueVM, ViewModel } from '../classes';\nimport { DataService } from './data.service';\nimport { evaluate } from 'mathjs';\nimport { isBoolean, isNumber } from '../utils/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ViewModelsService {\n @Output() onSelectionChange = new EventEmitter();\n\n public viewModels: ViewModel[] = [];\n public pinnedCell: string = '';\n private nonce: number = 0;\n\n constructor(private dataService: DataService) {\n // intentionally left blank\n }\n\n /* Emit event when technique selection changes */\n public selectionChanged(): void {\n this.onSelectionChange.emit();\n }\n\n /**\n * Create and return a new viewModel\n * @param {string} name the viewmodel name\n * @param {string} domainVersionID the ID of the domain & version\n * @return {ViewModel} the created ViewModel\n */\n public newViewModel(name: string, domainVersionID: string): ViewModel {\n let vm = new ViewModel(name, 'vm' + this.getNonce(), domainVersionID, this.dataService);\n this.viewModels.push(vm);\n return vm;\n }\n\n /**\n * Get a nonce.\n * @return a number that will never be regenerated by sequential calls to getNonce.\n * Note: this applies on a session-by-session basis, nonces are not\n * unique between app instances.\n */\n public getNonce(): number {\n return this.nonce++;\n }\n\n /**\n * Destroy the viewmodel\n * @param vm viewmodel to destroy.\n */\n public destroyViewModel(vm: ViewModel): void {\n for (let i = 0; i < this.viewModels.length; i++) {\n if (this.viewModels[i] == vm) {\n this.viewModels.splice(i, 1);\n return;\n }\n }\n }\n\n /**\n * Layer combination operation\n * @param scoreVariables variables in math expression, mapping to viewmodel they correspond to\n * @param layerName the name of the new layer\n * @param opSettings the settings for view model inheritance\n * - `domain`: the domain & version\n * - `gradientVM`: the view model to inherit gradient from\n * - `coloringVM`: the view model to inherit manual colors from\n * - `commentVM`: the view model to inherit comments from\n * - `linkVM`: the view model to inherit links from\n * - `metadataVM`: the view model to inherit metadata from\n * - `enabledVM`: the view model to inherit enabled state from\n * - `filterVM`: the view model to inherit filters from\n * - `scoreExpression`: math equation of score expression\n * - `legendVM`: the view model to inherit legend items from\n * @return new viewmodel inheriting above properties\n */\n public layerOperation(scoreVariables: Map, layerName: string, opSettings: any): ViewModel {\n let newViewModel = new ViewModel('layer by operation', 'vm' + this.getNonce(), opSettings.domain, this.dataService);\n\n if (opSettings.scoreExpression) {\n opSettings.scoreExpression = opSettings.scoreExpression.toLowerCase(); // should be enforced by input, but just in case\n let minScore = Infinity;\n let maxScore = -Infinity;\n\n // get list of all technique IDs used in the VMs\n let techniqueIDs = new Set();\n scoreVariables.forEach((vm) => {\n vm.techniqueVMs.forEach(function (techniqueVM, techniqueID) {\n techniqueIDs.add(techniqueID);\n });\n });\n\n // attempt to evaluate without a scope to catch the case of a static assignment\n try {\n // evaluate with an empty scope\n let result = evaluate(opSettings.scoreExpression, {});\n\n // if it didn't except after this, it evaluated to a single result\n console.debug('score expression evaluated to single result to be applied to all techniques');\n if (isBoolean(result)) {\n // boolean to binary\n result = result ? '1' : '0';\n } else if (!isNumber(result)) {\n // unexpected user input\n throw Error('math result ( ' + result + ' ) is not a number');\n }\n\n // apply result to all techniques\n newViewModel.initializeScoresTo = String(result);\n minScore = result;\n maxScore = result;\n } catch (err) {\n //couldn't evaluate with empty scope, build scope for each technique\n // compute the score of each techniqueID\n techniqueIDs.forEach((techniqueID) => {\n let newTechniqueVM = new TechniqueVM(techniqueID);\n let scope = {};\n let misses = 0; // number of times a VM is missing the value\n scoreVariables.forEach(function (vm, key) {\n let scoreValue: number;\n if (!vm.hasTechniqueVM_id(techniqueID)) {\n // missing technique\n scoreValue = 0;\n misses++;\n } else {\n // technique exists\n let score = vm.getTechniqueVM_id(techniqueID).score;\n if (score == '' || isNaN(Number(score))) {\n scoreValue = 0;\n misses++;\n } else {\n scoreValue = Number(score);\n }\n }\n scope[key] = scoreValue;\n });\n\n // did at least one technique have a score for this technique?\n if (misses < scoreVariables.size) {\n let mathResult = evaluate(opSettings.scoreExpression, scope);\n if (isBoolean(mathResult)) {\n // boolean to binary\n mathResult = mathResult ? '1' : '0';\n } else if (!isNumber(mathResult)) {\n // unexpected user input\n throw Error('math result ( ' + mathResult + ' ) is not a number');\n }\n\n newTechniqueVM.score = String(mathResult);\n newViewModel.techniqueVMs.set(techniqueID, newTechniqueVM);\n minScore = Math.min(minScore, mathResult);\n maxScore = Math.max(maxScore, mathResult);\n }\n // don't record a result if none of VMs had a score for this technique\n });\n }\n\n // gradient doesn't apply if there is no range of values\n if (minScore != maxScore) {\n // set up gradient according to result range\n if (minScore != Infinity) newViewModel.gradient.minValue = minScore;\n if (maxScore != -Infinity) newViewModel.gradient.maxValue = maxScore;\n\n // if binary range, set to transparentblue gradient\n if (minScore == 0 && maxScore == 1) newViewModel.gradient.setGradientPreset('transparentblue');\n }\n }\n\n /**\n * Inherit a field from a vm\n * @param {ViewModel} inheritVM the viewModel to inherit from\n * @param {string} fieldName the field to inherit from the viewmodel\n */\n function inherit(inheritVM: ViewModel, fieldName: string) {\n inheritVM.techniqueVMs.forEach((techniqueVM) => {\n let tvm = newViewModel.hasTechniqueVM_id(techniqueVM.technique_tactic_union_id)\n ? newViewModel.getTechniqueVM_id(techniqueVM.technique_tactic_union_id)\n : new TechniqueVM(techniqueVM.technique_tactic_union_id);\n tvm[fieldName] = techniqueVM[fieldName];\n newViewModel.techniqueVMs.set(techniqueVM.technique_tactic_union_id, tvm);\n });\n }\n\n if (opSettings.commentVM) inherit(opSettings.commentVM, 'comment');\n if (opSettings.linkVM) inherit(opSettings.linkVM, 'links');\n if (opSettings.metadataVM) inherit(opSettings.metadataVM, 'metadata');\n if (opSettings.coloringVM) inherit(opSettings.coloringVM, 'color');\n if (opSettings.enabledVM) inherit(opSettings.enabledVM, 'enabled');\n\n if (opSettings.filterVM) {\n //copy filter settings\n newViewModel.filters.deserialize(JSON.parse(opSettings.filterVM.filters.serialize()));\n }\n\n if (opSettings.legendVM) {\n newViewModel.legendItems = JSON.parse(JSON.stringify(opSettings.legendVM.legendItems));\n }\n\n if (opSettings.gradientVM) {\n newViewModel.gradient = new Gradient();\n newViewModel.gradient.deserialize(opSettings.gradientVM.gradient.serialize());\n }\n\n newViewModel.name = layerName;\n this.viewModels.push(newViewModel);\n newViewModel.updateGradient();\n return newViewModel;\n }\n}\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { ViewModel } from '../classes';\n\n@Component({\n selector: 'sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss'],\n})\nexport class SidebarComponent implements OnChanges {\n @Input() viewModel: ViewModel;\n public reloadToggle: boolean = true;\n\n constructor(public dataService: DataService) {}\n\n ngOnChanges(): void {\n this.reloadToggle = false;\n setTimeout(() => (this.reloadToggle = true));\n }\n}\n","
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n","export { RenderableMatrix } from './renderable-matrix';\nexport { RenderableTactic } from './renderable-tactic';\nexport { RenderableTechnique } from './renderable-technique';\n","import { Matrix } from '../../classes/stix';\nimport { RenderableTactic } from './renderable-tactic';\nimport { ViewModel } from '../../classes';\n\nexport class RenderableMatrix {\n public matrix: Matrix;\n public tactics: RenderableTactic[] = [];\n\n public get height() {\n let heights = this.tactics.map(function (tactic: RenderableTactic) {\n return tactic.height;\n });\n return Math.max(...heights);\n }\n\n constructor(matrix: Matrix, viewModel: ViewModel, renderConfig: any) {\n this.matrix = matrix;\n let filteredTactics = viewModel.filterTactics(matrix.tactics, matrix);\n for (let tactic of filteredTactics) {\n this.tactics.push(new RenderableTactic(tactic, matrix, viewModel, renderConfig));\n }\n }\n}\n","import { Matrix, Tactic } from '../../classes/stix';\nimport { RenderableTechnique } from './renderable-technique';\nimport { ViewModel } from '../../classes';\n\nexport class RenderableTactic {\n public readonly tactic: Tactic;\n public readonly techniques: RenderableTechnique[] = [];\n public readonly subtechniques: RenderableTechnique[] = [];\n public height: number;\n\n constructor(tactic: Tactic, matrix: Matrix, viewModel: ViewModel, renderConfig: any) {\n this.tactic = tactic;\n let filteredTechniques = viewModel.sortTechniques(viewModel.filterTechniques(tactic.techniques, tactic, matrix), tactic);\n let yPosition = 1; // start at 1 to make space for tactic label\n for (let technique of filteredTechniques) {\n let techniqueVM = viewModel.getTechniqueVM(technique, tactic);\n let filteredSubtechniques = viewModel.filterTechniques(technique.subtechniques, tactic, matrix);\n\n let showSubtechniques =\n renderConfig.showSubtechniques == 'all' || (renderConfig.showSubtechniques == 'expanded' && techniqueVM.showSubtechniques);\n\n this.techniques.push(new RenderableTechnique(yPosition++, technique, tactic, matrix, viewModel, showSubtechniques));\n\n if (filteredSubtechniques.length > 0 && showSubtechniques) {\n for (let subtechnique of filteredSubtechniques) {\n this.subtechniques.push(new RenderableTechnique(yPosition++, subtechnique, tactic, matrix, viewModel, renderConfig));\n }\n }\n }\n this.height = yPosition;\n }\n}\n","import { Matrix, Tactic, Technique } from '../../classes/stix';\nimport { TechniqueVM, ViewModel } from '../../classes';\nimport tinycolor from 'tinycolor2';\n\nexport class RenderableTechnique {\n public readonly yPosition: number;\n public readonly technique: Technique;\n public readonly tactic: Tactic;\n public readonly matrix: Matrix;\n public readonly showSubtechniques;\n public readonly viewModel: ViewModel;\n\n constructor(yPosition, technique: Technique, tactic: Tactic, matrix: Matrix, viewModel: ViewModel, showSubtechniques = false) {\n this.yPosition = yPosition;\n this.technique = technique;\n this.tactic = tactic;\n this.matrix = matrix;\n this.viewModel = viewModel;\n this.showSubtechniques = showSubtechniques;\n }\n\n public get fill() {\n if (this.viewModel.hasTechniqueVM(this.technique, this.tactic)) {\n let techniqueVM: TechniqueVM = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (!techniqueVM.enabled) return 'white';\n if (techniqueVM.color) return techniqueVM.color;\n if (this.viewModel.layout.showAggregateScores && techniqueVM.aggregateScoreColor) return techniqueVM.aggregateScoreColor;\n if (techniqueVM.score) return techniqueVM.scoreColor;\n }\n return null; //default\n }\n\n public get textColor() {\n if (this.viewModel.hasTechniqueVM(this.technique, this.tactic)) {\n let techniqueVM: TechniqueVM = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (!techniqueVM.enabled) return '#aaaaaa';\n }\n if (this.fill) {\n return tinycolor.mostReadable(this.fill, ['white', 'black']); //default;\n }\n return null;\n }\n\n public get text() {\n let text = [];\n if (this.viewModel.layout.showID) text.push(this.technique.attackID);\n if (this.viewModel.layout.showName) text.push(this.technique.name);\n return text.join(': ');\n }\n}\n","import { Component, OnInit, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ViewModel } from '../classes';\nimport { ConfigService } from '../services/config.service';\nimport { DataService } from '../services/data.service';\nimport { RenderableMatrix, RenderableTactic, RenderableTechnique } from './renderable-objects';\nimport tinycolor from 'tinycolor2';\nimport { isIE } from '../utils/utils';\ndeclare var d3: any; //d3js\n\n@Component({\n selector: 'app-svg-export',\n templateUrl: './svg-export.component.html',\n styleUrls: ['./svg-export.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SvgExportComponent implements OnInit {\n // vm to render\n public viewModel: ViewModel;\n\n // SVG configuration\n public config: any = {};\n public svgConfigDefaults: any = {\n width: 11,\n height: 8.5,\n headerHeight: 1,\n unit: 'in',\n orientation: 'landscape',\n size: 'letter',\n fontSize: 4,\n autofitText: true,\n maxTextSize: Infinity,\n theme: 'light',\n showSubtechniques: 'expanded',\n font: 'sans-serif',\n tableBorderColor: '#6B7279',\n showHeader: true,\n legendDocked: true,\n legendX: 0,\n legendY: 0,\n legendWidth: 2,\n legendHeight: 1,\n showLegend: true,\n showGradient: true,\n showFilters: true,\n showAbout: true,\n showDomain: true,\n showAggregate: false,\n };\n\n // SVG settings\n public currentDropdown: string = null;\n public hasScores: boolean;\n private svgElementID: string = 'svgInsert_tmp';\n private buildSVGDebounce: boolean = false;\n\n // counter for unit change ui element\n public unitEnum: number = 0;\n\n // counter for theme change ui element\n public themeEnum: number = 0;\n\n // browser compatibility\n public get isIE(): boolean {\n return isIE();\n }\n\n // getters for visibility of SVG header sections\n public get hasName(): boolean {\n return this.viewModel.name.length > 0;\n }\n public get hasDomain(): boolean {\n return this.viewModel.domainVersionID.length > 0;\n }\n public get hasDescription(): boolean {\n return this.viewModel.description.length > 0;\n }\n public get hasLegendItems(): boolean {\n return this.viewModel.legendItems.length > 0;\n }\n\n // getters for user preferences\n public get showName(): boolean {\n return this.config.showAbout && this.hasName && this.config.showHeader;\n }\n public get showDomain(): boolean {\n return this.config.showDomain && this.hasDomain && this.config.showHeader;\n }\n public get showAggregate(): boolean {\n return this.viewModel.layout.showAggregateScores && this.config.showHeader;\n }\n public get showDescription(): boolean {\n return this.config.showAbout && this.hasDescription && this.config.showHeader;\n }\n public get showFilters(): boolean {\n return this.config.showFilters && this.config.showHeader;\n }\n public get showGradient(): boolean {\n return this.config.showGradient && this.hasScores && this.config.showHeader;\n }\n public get showLegend(): boolean {\n return this.config.showLegend && this.hasLegendItems;\n }\n public get showLegendContainer(): boolean {\n return this.showLegend || this.showGradient;\n }\n public get showLegendInHeader(): boolean {\n return this.config.legendDocked;\n }\n\n constructor(\n private dialogRef: MatDialogRef, // needed for mat-dialog-close\n private configService: ConfigService,\n private dataService: DataService,\n @Inject(MAT_DIALOG_DATA) public data\n ) {\n this.config = this.svgConfigDefaults;\n }\n\n ngOnInit(): void {\n this.viewModel = this.data.vm;\n this.svgElementID = 'svgInsert' + this.viewModel.uid;\n\n let self = this;\n //determine if the layer has any scores\n let visibleTechniques = self.viewModel.getVisibleTechniquesList();\n for (let unionID of visibleTechniques) {\n let techniqueVM = self.viewModel.getTechniqueVM_id(unionID);\n if (techniqueVM.score != '') {\n self.hasScores = true;\n break; // at least one score found\n }\n }\n\n // dynamic legend height according to content\n let legendSectionCount = 0;\n if (self.hasScores) legendSectionCount++;\n if (self.hasLegendItems) legendSectionCount++;\n self.config.legendHeight = 0.5 * legendSectionCount;\n\n //initial legend position for undocked legend\n this.config.legendX = this.config.width - this.config.legendWidth - 0.1;\n this.config.legendY = this.config.height - this.config.legendHeight - 0.1;\n if (this.config.showHeader) this.config.legendY -= this.config.headerHeight;\n\n //initial table border color\n if (this.config.theme === 'light') {\n this.config.tableBorderColor = '#6B7279';\n } else if (this.config.theme === 'dark') {\n this.config.tableBorderColor = '#4c4c68';\n }\n\n // build SVG at end of fn queue so page can render before build\n window.setTimeout(function () {\n self.buildSVG(self);\n }, 0);\n }\n\n /** build the SVG */\n public buildSVG(self?: any, bypassDebounce: boolean = false): void {\n if (!self) self = this; // called from somewhere other than ngOnInit\n\n // debounce\n if (self.buildSVGDebounce && !bypassDebounce) return;\n if (!bypassDebounce) {\n self.buildSVGDebounce = true;\n window.setTimeout(function () {\n self.buildSVG(self, true);\n }, 500);\n return;\n }\n self.buildSVGDebounce = false;\n\n // set svg size\n this.setSize(self, self.config.size, self.config.orientation);\n\n // calculate svg height and width\n let margin = { top: 5, right: 5, bottom: 5, left: 5 };\n let width = Math.max(self.toPx(self.config.width, self.config.unit) - (margin.right + margin.left), 10);\n let svgWidth = width + margin.left + margin.right;\n let height = Math.max(self.toPx(self.config.height, self.config.unit) - (margin.top + margin.bottom), 10);\n let svgHeight = height + margin.top + margin.bottom;\n let headerHeight = Math.max(self.toPx(self.config.headerHeight, self.config.unit), 1);\n\n // remove previous graphic\n let svgElement: HTMLElement = document.getElementById(self.svgElementID);\n svgElement.innerHTML = '';\n\n // create new SVG\n let svg = d3\n .select('#' + self.svgElementID)\n .append('svg')\n .attr('width', svgWidth)\n .attr('height', svgHeight)\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .attr('id', 'svg' + self.viewModel.uid) // SVG download tag\n .append('g')\n .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')\n .style('font-family', self.config.font);\n\n // -----------------------------------------------------------------------------\n // LEGEND\n // -----------------------------------------------------------------------------\n\n let legendSection = { title: 'legend', contents: [] };\n\n // scores and gradient\n if (self.hasScores && self.showGradient) {\n legendSection.contents.push({ label: 'gradient', data: self.buildGradient() });\n }\n\n // legend items\n if (self.showLegend) {\n legendSection.contents.push({ label: 'legend', data: self.buildLegend() });\n }\n\n // -----------------------------------------------------------------------------\n // HEADER\n // -----------------------------------------------------------------------------\n\n if (self.config.showHeader) {\n let headerSections: HeaderSection[] = [];\n\n // about section\n if (self.showName || self.showDescription) {\n let aboutSection = { title: 'about', contents: [] };\n if (self.showName) aboutSection.contents.push({ label: 'name', data: this.viewModel.name });\n if (self.showDescription) aboutSection.contents.push({ label: 'description', data: this.viewModel.description });\n headerSections.push(aboutSection);\n }\n\n // domain section\n let domainSection = { title: 'domain', contents: [] };\n if (self.showDomain) {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n domainSection.contents.push({ label: 'domain', data: `${domain.name} v${domain.version.number}` });\n }\n\n // platform section\n let platformSection = { title: 'platforms', contents: [] };\n if (self.showFilters) {\n let filterData = { label: 'platforms', data: this.viewModel.filters.platforms.selection.join(', ') };\n\n // domain + platforms\n if (self.showAggregate) {\n domainSection.title = 'domain & platforms';\n domainSection.contents.push(filterData);\n } else {\n platformSection.contents.push(filterData);\n }\n }\n\n // add relevant sections to header\n if (domainSection.contents.length > 0) headerSections.push(domainSection);\n if (platformSection.contents.length > 0) headerSections.push(platformSection);\n\n // aggregate scores\n if (self.showAggregate) {\n let aggregateSection = { title: 'aggregate', contents: [] };\n aggregateSection.contents.push({\n label: 'function',\n data: 'showing aggregate scores using the ' + this.viewModel.layout.aggregateFunction + ' aggregate function',\n });\n if (this.viewModel.layout.countUnscored) {\n aggregateSection.contents.push({ label: 'unscored', data: 'includes unscored techniques as having a score of 0' });\n }\n headerSections.push(aggregateSection);\n }\n\n // legend section\n if (self.showLegendContainer && self.showLegendInHeader) headerSections.push(legendSection);\n\n // build header\n let headerGroup = svg.append('g');\n let headerX = d3\n .scaleBand()\n .paddingInner(0.05)\n .domain(headerSections.map((section) => section.title))\n .range([0, width]);\n\n // build header sections\n for (let section of headerSections) {\n let sectionGroup = headerGroup.append('g');\n if (headerSections.length > 1) {\n sectionGroup.attr('transform', `translate(${headerX(section.title)}, 0)`);\n }\n let headerWidth = headerSections.length == 1 ? width : headerX.bandwidth();\n self.buildHeaderSection(this, sectionGroup, section, headerWidth, headerHeight);\n }\n\n if (headerSections.length == 0) headerHeight = 0; // no header sections\n } else {\n //no header\n headerHeight = 0;\n }\n\n // -----------------------------------------------------------------------------\n // MATRIX\n // -----------------------------------------------------------------------------\n\n // build data model\n let datatable = svg.append('g').attr('transform', 'translate(0,' + (headerHeight + 1) + ')');\n let domain = self.dataService.getDomain(self.viewModel.domainVersionID);\n let matrices: RenderableMatrix[] = domain.matrices.map((m) => new RenderableMatrix(m, self.viewModel, self.config));\n\n // get flattened list of tactics\n let tactics: RenderableTactic[] = [];\n for (let matrix of matrices) {\n tactics = tactics.concat(matrix.tactics);\n }\n\n // build tactic columns\n let xRange = d3\n .scaleBand()\n .domain(tactics.map((t) => t.tactic.id))\n .range([0, width]);\n\n let yRange = d3\n .scaleLinear()\n .domain([\n d3.max(tactics, function (tactic: RenderableTactic) {\n return tactic.height;\n }),\n 0,\n ])\n .range([height - headerHeight, 0]);\n\n // tactic row background\n let subtechniqueIndent = Math.min(2 * yRange(1), 15);\n if (self.viewModel.showTacticRowBackground) {\n datatable\n .append('rect')\n .attr('class', 'tactic-header-background')\n .attr('width', width)\n .attr('height', yRange(1))\n .attr('fill', self.viewModel.tacticRowBackground)\n .attr('stroke', self.config.tableBorderColor);\n }\n\n // tactic names\n let tacticGroups = datatable\n .append('g')\n .selectAll('g')\n .data(tactics)\n .enter()\n .append('g')\n .attr('class', function (tactic: RenderableTactic) {\n return 'tactic ' + tactic.tactic.shortname;\n })\n .attr('transform', function (tactic: RenderableTactic) {\n return `translate(${xRange(tactic.tactic.id)}, 0)`;\n });\n\n // add technique groups to tactic column\n let techniqueGroups = tacticGroups\n .append('g')\n .attr('class', 'techniques')\n .selectAll('g')\n .data(function (tactic: RenderableTactic) {\n return tactic.techniques;\n })\n .enter()\n .append('g')\n .attr('class', function (technique: RenderableTechnique) {\n return 'technique ' + technique.technique.attackID;\n })\n .attr('transform', function (technique: RenderableTechnique) {\n return `translate(0, ${yRange(technique.yPosition)})`;\n });\n\n // add sub-technique groups to tactic column\n let subtechniqueGroups = tacticGroups\n .append('g')\n .attr('class', 'subtechniques')\n .selectAll('g')\n .data(function (tactic: RenderableTactic) {\n return tactic.subtechniques;\n })\n .enter()\n .append('g')\n .attr('class', function (subtechnique: RenderableTechnique) {\n return 'subtechnique ' + subtechnique.technique.attackID;\n })\n .attr('transform', function (subtechnique: RenderableTechnique) {\n return `translate(${subtechniqueIndent}, ${yRange(subtechnique.yPosition)})`;\n });\n\n // add cell style to techniques\n techniqueGroups\n .append('rect')\n .attr('class', 'cell')\n .attr('height', yRange(1))\n .attr('width', xRange.bandwidth())\n .attr('fill', function (technique: RenderableTechnique) {\n if (technique.fill !== null) {\n return technique.fill;\n } else {\n if (self.config.theme === 'light') {\n return '#ffffff';\n } else {\n return '#2e2e3f';\n }\n }\n })\n .attr('stroke', self.config.tableBorderColor);\n\n // add cell style to sub-techniques\n subtechniqueGroups\n .append('rect')\n .attr('class', 'cell')\n .attr('height', yRange(1))\n .attr('width', xRange.bandwidth() - subtechniqueIndent)\n .attr('fill', function (subtechnique: RenderableTechnique) {\n if (subtechnique.fill !== null) {\n return subtechnique.fill;\n } else {\n if (self.config.theme === 'light') {\n return '#ffffff';\n } else {\n return '#2e2e3f';\n }\n }\n })\n .attr('stroke', self.config.tableBorderColor);\n\n // add styling for sub-technique sidebar\n let sidebarWidth: number = 3;\n subtechniqueGroups\n .append('rect')\n .attr('class', 'cell')\n .attr('height', yRange(1))\n .attr('width', sidebarWidth)\n .attr('transform', `translate(${-sidebarWidth}, 0)`)\n .attr('fill', self.config.tableBorderColor)\n .attr('stroke', self.config.tableBorderColor);\n techniqueGroups\n .append('polygon')\n .attr('class', 'sidebar')\n .attr('transform', `translate(0, ${yRange(1)})`)\n .attr('points', function (technique: RenderableTechnique) {\n return [\n '0,0',\n `${subtechniqueIndent - sidebarWidth},0`,\n `${subtechniqueIndent - sidebarWidth},${Math.min(\n subtechniqueIndent - sidebarWidth,\n yRange(self.viewModel.filterTechniques(technique.technique.subtechniques, technique.tactic, technique.matrix).length)\n )}`,\n ].join(' ');\n })\n .attr('fill', self.config.tableBorderColor)\n .attr('visibility', function (technique: RenderableTechnique) {\n return technique.technique.subtechniques.length > 0 && technique.showSubtechniques ? 'visible' : 'hidden';\n });\n\n // -----------------------------------------------------------------------------\n // CELL TEXT\n // -----------------------------------------------------------------------------\n\n // track smallest optimal font size\n let minFontSize = Infinity;\n\n // set technique font size\n techniqueGroups\n .append('text')\n .text(function (technique: RenderableTechnique) {\n return technique.text;\n })\n .attr('font-size', function (technique: RenderableTechnique) {\n const fontSize = self.optimalFontSize(this, technique.text, xRange.bandwidth(), yRange(1), false);\n if (fontSize < minFontSize) minFontSize = fontSize;\n return fontSize;\n })\n .attr('fill', function (technique: RenderableTechnique) {\n if (technique.textColor !== null) {\n return technique.textColor;\n } else {\n if (self.config.theme === 'light') {\n return '#000000';\n } else {\n return '#ffffff';\n }\n }\n })\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // set sub-technique font size\n subtechniqueGroups\n .append('text')\n .text(function (subtechnique: RenderableTechnique) {\n return subtechnique.text;\n })\n .attr('font-size', function (subtechnique: RenderableTechnique) {\n const fontSize = self.optimalFontSize(this, subtechnique.text, xRange.bandwidth() - subtechniqueIndent, yRange(1), false);\n if (fontSize < minFontSize) minFontSize = fontSize;\n return fontSize;\n })\n .attr('fill', function (subtechnique: RenderableTechnique) {\n if (subtechnique.textColor !== null) {\n return subtechnique.textColor;\n } else {\n if (self.config.theme === 'light') {\n return '#000000';\n } else {\n return '#ffffff';\n }\n }\n })\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // set technique and sub-technique groups to the same font size\n this.config.maxTextSize = minFontSize;\n if (this.config.autofitText) {\n this.config.fontSize = minFontSize.toFixed(2);\n }\n if (this.config.autofitText) {\n techniqueGroups.select('text').attr('font-size', minFontSize);\n subtechniqueGroups.select('text').attr('font-size', minFontSize);\n } else {\n techniqueGroups.select('text').attr('font-size', this.config.fontSize);\n subtechniqueGroups.select('text').attr('font-size', this.config.fontSize);\n }\n\n // track the smallest optimal font size for tactics\n let minTacticFontSize = Infinity;\n\n // set tactic font size\n let tacticLabels = tacticGroups.append('g').attr('class', 'tactic-label');\n tacticLabels\n .append('text')\n .text(function (tactic: RenderableTactic) {\n return tactic.tactic.name;\n })\n .attr('font-size', function (tactic: RenderableTactic) {\n const fontSize = self.optimalFontSize(this, tactic.tactic.name, xRange.bandwidth(), yRange(1), true);\n if (fontSize < minTacticFontSize) minTacticFontSize = fontSize;\n return fontSize;\n })\n .attr('fill', function (tactic: RenderableTactic) {\n if (self.viewModel.showTacticRowBackground) return tinycolor.mostReadable(self.viewModel.tacticRowBackground, ['white', 'black']);\n else return self.config.theme === 'light' ? 'black' : 'white';\n })\n .attr('font-weight', 'bold')\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // set tactic labels to same font size\n tacticLabels.select('text').attr('font-size', minTacticFontSize);\n\n // -----------------------------------------------------------------------------\n // UNDOCKED LEGEND\n // -----------------------------------------------------------------------------\n\n if (self.showLegendContainer && !self.showLegendInHeader) {\n // calculate legend height and width\n let legendX = Math.max(self.toPx(self.config.legendX, self.config.unit), 0);\n let legendY = Math.max(self.toPx(self.config.legendY, self.config.unit), 0);\n let legendWidth = Math.max(self.toPx(self.config.legendWidth, self.config.unit), 10);\n let legendHeight = Math.max(self.toPx(self.config.legendHeight, self.config.unit), 10);\n\n let legendGroup = datatable.append('g').attr('transform', `translate(${legendX}, ${legendY})`);\n self.buildHeaderSection(this, legendGroup, legendSection, legendWidth, legendHeight);\n }\n }\n\n /**\n * Build the box for the given header section\n * @param self this DOM node\n * @param group outer group element\n * @param section header section\n * @param width width of the cell\n * @param height height of the cell\n */\n private buildHeaderSection(self: any, group: any, section: HeaderSection, width: number, height: number): void {\n let padding = 5;\n height -= 2 * padding; // adjust height for padding\n\n // header section group\n let boxGroup = group.append('g').attr('transform', `translate(0,${padding})`);\n\n // create outer box\n boxGroup\n .append('rect')\n .attr('class', 'header-box')\n .attr('width', width)\n .attr('height', height)\n .attr('stroke', self.config.theme === 'light' ? 'black' : '#4c4c68')\n .attr('fill', self.config.theme === 'light' ? 'white' : '#1a1a23')\n .attr('rx', padding); // rounded corner\n\n // box title\n let boxTitle = boxGroup\n .append('text')\n .attr('class', 'header-box-label')\n .text(section.title)\n .attr('x', 2 * padding)\n .attr('font-size', 12)\n .attr('fill', self.config.theme === 'light' ? 'black' : 'white')\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // add cover mask so that the box lines crop around the text\n let bbox = boxTitle.node().getBBox();\n let coverPadding = 2;\n boxGroup\n .append('rect')\n .attr('class', 'label-cover')\n .attr('x', bbox.x - coverPadding)\n .attr('y', bbox.y - coverPadding)\n .attr('width', bbox.width + 2 * coverPadding)\n .attr('height', bbox.height + 2 * coverPadding)\n .attr('fill', self.config.theme === 'light' ? 'white' : '#1a1a23')\n .attr('rx', padding); // rounded corner\n boxTitle.raise(); // push title to front\n\n // add content to box\n let boxContentGroup = boxGroup\n .append('g')\n .attr('class', 'header-box-content')\n .attr('fill', self.config.theme === 'light' ? 'black' : 'white')\n .attr('transform', `translate(${padding}, 0)`);\n\n let yRange = d3\n .scaleBand()\n .padding(0.05)\n .align(0.5)\n .domain(\n section.contents.map(function (content) {\n return content.label;\n })\n )\n .range([0, height]);\n\n // add each subsection to box\n let contentWidth = width - 2 * padding;\n for (let i = 0; i < section.contents.length; i++) {\n let subsection = section.contents[i];\n let contentGroup = boxContentGroup.append('g').attr('transform', `translate(0, ${yRange(subsection.label)})`);\n\n if (typeof subsection.data == 'string') {\n // add text to contentGroup\n contentGroup\n .append('text')\n .text(subsection)\n .attr('font-size', function () {\n return self.optimalFontSize(this, subsection.data as string, contentWidth, yRange.bandwidth(), false, 12);\n })\n .each(function () {\n self.verticalAlignCenter(this);\n });\n } else {\n // call callback to add complex data to contentGroup\n subsection.data(self, contentGroup, contentWidth);\n }\n if (i != section.contents.length - 1) {\n // add dividing line\n contentGroup\n .append('line')\n .attr('x1', 0)\n .attr('x2', contentWidth)\n .attr('y1', yRange.bandwidth())\n .attr('y2', yRange.bandwidth())\n .attr('stroke', '#dddddd');\n }\n }\n }\n\n /** Callback function to build the legend section */\n private buildLegend(): Function {\n return function (self, group, width) {\n // legend colors\n let colorScale = d3\n .scaleOrdinal()\n .domain(\n self.viewModel.legendItems.map(function (item) {\n return item.label;\n })\n )\n .range(\n self.viewModel.legendItems.map(function (item) {\n return item.color;\n })\n );\n\n // legend svg group\n group\n .append('g')\n .attr('transform', 'translate(0, 5)')\n .call(\n d3\n .legendColor()\n .shapeWidth(width / self.viewModel.legendItems.length)\n .shapePadding(0)\n .shape('rect')\n .orient('horizontal')\n .scale(colorScale)\n .labelOffset(2)\n );\n };\n }\n\n /** Callback function to build the gradient section */\n private buildGradient(): Function {\n return function (self, group, width) {\n // build gradient\n let gradient = [];\n for (let i = 0; i < self.viewModel.gradient.colors.length; i++) {\n let percent = i / (self.viewModel.gradient.colors.length - 1);\n gradient.push(d3.interpolateNumber(self.viewModel.gradient.minValue, self.viewModel.gradient.maxValue)(percent));\n }\n\n // build color scale\n let colorScale = d3\n .scaleLinear()\n .domain(gradient)\n .range(self.viewModel.gradient.colors.map((color) => color.color));\n\n // gradient svg group\n let nCells = gradient.length * 2;\n group\n .append('g')\n .attr('transform', 'translate(0, 5)')\n .call(\n d3\n .legendColor()\n .shapeWidth(width / nCells)\n .shapePadding(0)\n .cells(nCells)\n .shape('rect')\n .orient('horizontal')\n .scale(colorScale)\n .labelOffset(2)\n .labelFormat(d3.format('0.02r'))\n );\n };\n }\n\n /**\n * Set width and height based on selected size and orientaiton\n * @param {any} self this DOM node\n * @param {string} size dimensions\n * @param {string} orientation portrait or landscape\n */\n private setSize(self: any, size: string, orientation: string) {\n const ratioMap = {\n letter: { portrait: [8.5, 11], landscape: [11, 8.5] },\n legal: { portrait: [8.5, 14], landscape: [14, 8.5] },\n small: { portrait: [11, 17], landscape: [17, 11] },\n medium: { portrait: [18, 24], landscape: [24, 18] },\n large: { portrait: [24, 36], landscape: [36, 24] },\n };\n\n if (size !== 'custom') {\n const [w, h] = ratioMap[size][orientation];\n self.config.width = w;\n self.config.height = h;\n }\n }\n\n /**\n * Set the vertical alignment of the given node to center\n * @param self this DOM node\n * @param fontSize the font size of the node\n */\n private verticalAlignCenter(self: any, fontSize: any = null) {\n if (self.children && self.children.length > 0) {\n for (let child of self.children) {\n this.verticalAlignCenter(child, self.getAttribute('font-size'));\n }\n } else {\n // transform by half the font size - 1/2px for proper centering\n fontSize = fontSize ? fontSize : self.getAttribute('font-size');\n if (fontSize.endsWith('px')) fontSize = Number(fontSize.split('px')[0]);\n let yPosition = self.hasAttribute('y') ? Number(self.getAttribute('y')) : 0;\n let newYPosition = yPosition + Math.floor(fontSize * 0.3);\n d3.select(self).attr('y', newYPosition);\n }\n }\n\n /**\n * Divide distance into divisions equidistant anchor points S.T they all have equal\n * padding from each other and the beginning and end of the distance\n * @param distance distance to divide\n * @param divisions number of divisions\n * @return number[] where each number corresponds to a division-center offset\n */\n private getSpacing(distance: number, divisions: number): number[] {\n let res = [];\n let spacing = (distance - 1) / (divisions * 2);\n for (let i = 1; i <= divisions * 2; i += 2) {\n res.push(1 + spacing * i);\n }\n return res;\n }\n\n /**\n * Insert line breaks\n * @param self this DOM node\n * @param words array of words to space\n * @param padding element padding\n * @param spacing distance to space text inside element\n * @param center center the text?\n * @param width width of the cell\n * @param height height of the cell\n */\n private insertLineBreaks(self: any, words: string[], padding: number, spacing: number, center: boolean, width: number, height: number) {\n let element = d3.select(self);\n\n // clear previous content\n element.text('');\n while (self.firstChild) self.removeChild(self.firstChild);\n\n let division = this.getSpacing(spacing, words.length);\n for (let i = 0; i < words.length; i++) {\n let tspan = element.append('tspan').text(words[i]);\n if (center) tspan.attr('text-anchor', 'middle');\n tspan.attr('x', center ? width / 2 : padding).attr('y', (height - spacing) / 2 + division[i]);\n }\n }\n\n /**\n * Find the font size for the given array of words to be broken onto\n * 1 line each\n * @param self this DOM node\n * @param text text to render\n * @param width width of the cell\n * @param height height of the cell\n * @param center center the text?\n * @param maxFontSize maximum font size, default 12\n * @returns the largest possible font size\n */\n private findSize(self: any, words: string[], width: number, height: number, center: boolean, maxFontSize: number = 12): number {\n let padding = 4;\n if (!this.config.autofitText) {\n padding = 1;\n }\n\n // break into multiple lines\n let distance = Math.min(height, (maxFontSize + 3) * words.length);\n this.insertLineBreaks(self, words, padding, distance, center, width, height);\n\n // find text size to fit height of cell\n let textHeight = Math.min(distance / words.length, height) * 0.8;\n\n // find text size to fit width of cell\n let longestWordLength = -Infinity;\n for (let word of words) {\n longestWordLength = Math.max(longestWordLength, word.length);\n }\n let textWidth = ((width - 2 * padding) / longestWordLength) * 1.45;\n\n return Math.min(maxFontSize, textHeight, textWidth);\n }\n\n /**\n * Calculate the optimal font size for the given text in the given\n * sizing parameters\n * @param self this DOM node\n * @param text text to render\n * @param width width of the cell\n * @param height height of the cell\n * @param center center the text?\n * @param maxFontSize maximum font size, default 12\n * @returns the size in pixels\n */\n private optimalFontSize(self: any, text: string, width: number, height: number, center: boolean, maxFontSize: number = 12): number {\n let words = text.split(' ');\n let optimalSize = -Infinity;\n let wordArrangement = [];\n\n // too many combinations causes page lagging\n let num_breaks = 1;\n if (words.length < 20) num_breaks = 3;\n else if (words.length < 50) num_breaks = 2;\n\n let breaks = Array.from(this.findBreaks(words.length, num_breaks));\n for (let b of breaks) {\n // find the best option for proposed placements generated\n // b is the binary representation of newline locations (e.g. 001011)\n // where 1 is a newline and 0 is a space\n let wordList = [];\n\n for (let i = 0; i < b.length; i++) {\n if (b[i] === '0') {\n // join with space\n if (wordList.length == 0) wordList.push(words[i]);\n else wordList[wordList.length - 1] = wordList[wordList.length - 1] + ' ' + words[i];\n } else {\n // join with newline\n wordList.push(words[i]);\n }\n }\n\n let size = this.findSize(self, wordList, width, height, center, maxFontSize);\n if (size > optimalSize) {\n optimalSize = size;\n wordArrangement = wordList;\n }\n if (size == maxFontSize) break; // max font size found, stop search\n }\n\n this.findSize(self, wordArrangement, width, height, center, maxFontSize);\n return optimalSize;\n }\n\n /**\n * Determine placement of line breaks\n * @param spaces number of spaces in the words\n * @param breaks number of breaks to insert\n * @returns the placement of line breaks represented as [01]+ where 1=break and 0=space\n */\n private findBreaks(spaces: number, breaks: number): Set {\n let placement = new Set();\n let initial_breaks = [];\n while (initial_breaks.length < spaces) initial_breaks.push(0);\n placement.add(initial_breaks.join(''));\n\n function recurse(currPlacement, depth, breaks) {\n for (let i = 0; i < currPlacement.length; i++) {\n let p = JSON.parse(JSON.stringify(currPlacement));\n p[i] = 1;\n placement.add(p.join(''));\n if (depth < breaks - 1) recurse(p, depth + 1, breaks);\n }\n }\n recurse(initial_breaks, 0, breaks);\n return placement;\n }\n\n /**\n * Convert any length in various units to pixels\n * @param quantity what length\n * @param unit which unit system (in, cm, px, em, pt)\n * @return that length in pixels\n */\n private toPx(quantity: number, unit: string): number {\n let factor: any;\n if (unit == 'in') factor = 96;\n else if (unit == 'cm') factor = 3.779375 * 10;\n else if (unit == 'px') factor = 1;\n else if (unit == 'em') factor = 16;\n else if (unit == 'pt') factor = 1.33;\n else {\n console.error('unknown unit', unit);\n factor = 0;\n }\n return quantity * factor;\n }\n\n /** Download the SVG */\n public downloadSVG(): void {\n // get SVG element\n let svgElement = document.getElementById('svg' + this.viewModel.uid);\n svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n // generate filename\n let filename = this.viewModel.name.split(' ').join('_');\n // remove all non alphanumeric characters\n filename = filename.replace(/\\W/g, '') + '.svg';\n\n // build SVG blob\n const preface = '\\r\\n';\n const svgData = new XMLSerializer().serializeToString(svgElement);\n const svgBlob = new Blob([preface, svgData], { type: 'image/svg+xml;charset=utf-8' });\n\n // download\n if (this.isIE) {\n const nav = window.navigator as any;\n nav.msSaveOrOpenBlob(svgBlob, filename);\n } else {\n const downloadLink = document.createElement('a');\n downloadLink.download = filename;\n downloadLink.href = URL.createObjectURL(svgBlob);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }\n }\n}\n\nclass HeaderSectionContent {\n label: string;\n // either string to display in box, or a callback to create complex content in the box\n // callback function option takes params node, width, height, and appends data to node\n data: string | Function;\n}\n\nclass HeaderSection {\n title: string;\n contents: HeaderSectionContent[];\n}\n","
\n
\n
    \n
  • \n Warning: this interface is not fully compatible with your browser. For best results please switch to Edge, Chrome, or Firefox.\n
  • \n
  • \n
    \n \n \n nightlight_round\n wb_sunny\n
    \n
\n \n
  • \n
    \n \n \n \n \n {{ config.unit }}\n \n \n
    \n
  • \n \n
  • \n
    \n \n photo_size_select_large\n
    \n
    \n
      \n
    • \n \n orientation\n \n Portrait\n Landscape\n \n \n
    • \n
    • \n \n size\n \n Custom\n US Letter: 8.5x11\n US Legal: 8.5x14\n Small: 11x17\n Medium: 18x24\n Large 24x36\n \n \n
    • \n
    • \n \n width\n \n {{ config.unit }}\n \n
    • \n
    • \n \n height\n \n {{ config.unit }}\n \n
    • \n
    • \n \n header height\n \n {{ config.unit }}\n \n
    • \n
    \n
    \n \n\n
    \n \n format_size\n
    \n
    \n
      \n
    • \n \n font\n \n serif\n sans-serif\n monospace\n \n \n
    • \n
    • \n \n font size\n \n \n
      config.maxTextSize\">\n warning\n \n
      \n
    • \n
    • \n \n \n
    • \n
    \n
    \n \n
    \n \n view_list\n
    \n
    \n
      \n
    • \n \n \n
    • \n
    • \n \n legend X position\n \n {{ config.unit }}\n \n
    • \n
    • \n \n legend Y position\n \n {{ config.unit }}\n \n
    • \n
    • \n \n legend width\n \n {{ config.unit }}\n \n
    • \n
    • \n \n legend height\n \n {{ config.unit }}\n \n
    • \n
    \n
    \n \n
    \n \n visibility\n
    \n
    \n
      \n
    • \n \n \n
    • \n
    • \n \n \n show about\n \n
    • \n
    • \n \n \n show domain\n \n
    • \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    • \n \n sub-techniques\n \n show all\n show expanded\n show none\n \n \n
    • \n
    • \n \n \n
    • \n
    \n
    \n \n
  • \n
  • \n
    \n \n file_download\n
    \n \n
  • \n \n\n\n
    loading...
    \n\n\n \n\n","import { Component, ViewChild, TemplateRef, AfterViewInit, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { Tab, Domain, Version, ViewModel } from '../classes';\nimport { ConfigService } from '../services/config.service';\nimport { VersionUpgradeComponent } from '../version-upgrade/version-upgrade.component';\nimport { HelpComponent } from '../help/help.component';\nimport { SvgExportComponent } from '../svg-export/svg-export.component';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangelogComponent } from '../changelog/changelog.component';\nimport { Subscription, forkJoin } from 'rxjs';\nimport * as globals from '../utils/globals';\nimport { LayerInformationComponent } from '../layer-information/layer-information.component';\nimport { isSafari } from '../utils/utils';\n\n@Component({\n selector: 'tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n providers: [ViewModelsService],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TabsComponent implements AfterViewInit {\n @Input() userTheme: string;\n @Output() onUserThemeChange = new EventEmitter();\n @ViewChild('safariWarning') safariWarning: TemplateRef;\n @ViewChild('versionWarning') versionWarning: TemplateRef;\n\n public activeTab: Tab = null;\n public dropdownEnabled: string = '';\n public layerTabs: Tab[] = [];\n public adjustedHeaderHeight: number = 0;\n public safariDialogRef;\n public versionDialogRef;\n public versionMinorSnackbarRef;\n public showHelpDropDown: boolean = false;\n public loadURL: string = '';\n public layerLinkURLs: string[] = [];\n public bannerContent: string;\n public subscription: Subscription;\n public copiedRecently: boolean = false; // true if copyLayerLink is called, reverts to false after 2 seconds\n public loadData: any = {\n url: undefined,\n version: undefined,\n identifier: undefined,\n };\n\n // user input for layer-layer operations\n public opSettings: any = {\n domain: '',\n gradientVM: null,\n coloringVM: null,\n commentVM: null,\n linkVM: null,\n metadataVM: null,\n enabledVM: null,\n filterVM: null,\n scoreExpression: '',\n legendVM: null,\n };\n\n public get latestDomains(): Domain[] {\n return this.filterDomains(this.dataService.versions[0]);\n }\n\n public get minimumSupportedVersion(): string {\n return globals.minimumSupportedVersion;\n }\n\n public get navVersion(): string {\n return globals.navVersion;\n }\n\n constructor(\n public dialog: MatDialog,\n public viewModelsService: ViewModelsService,\n public dataService: DataService,\n public http: HttpClient,\n public configService: ConfigService,\n public snackBar: MatSnackBar\n ) {\n console.debug('initializing tabs component');\n this.newBlankTab();\n this.loadTabs(configService.defaultLayers).then(() => {\n // failed to load from URL, create a new blank layer\n if (this.layerTabs.length == 0) this.newLayer(this.dataService.domains[0].id);\n\n // if there is no active tab set, activate the first\n if (!this.activeTab) this.selectTab(this.layerTabs[0]);\n });\n this.bannerContent = this.configService.banner;\n }\n\n ngAfterViewInit(): void {\n if (isSafari('<=13')) {\n // open safari version incompatibility warning\n this.safariDialogRef = this.dialog.open(this.safariWarning, {\n width: '350px',\n disableClose: true,\n panelClass: this.userTheme,\n });\n }\n }\n\n /**\n * Adjust the header height on scroll event\n */\n public adjustHeader(newHeight) {\n this.adjustedHeaderHeight = newHeight;\n }\n\n /**\n * Open initial tabs on application load\n * @param defaultLayers any default layers defined in the config file\n */\n public async loadTabs(defaultLayers) {\n let bundleURL = this.getNamedFragmentValue('bundleURL')[0];\n let bundleVersion = this.getNamedFragmentValue('version')[0];\n let bundleDomain = this.getNamedFragmentValue('domain')[0];\n let layerURLs = this.getNamedFragmentValue('layerURL');\n\n let self = this;\n if (bundleURL?.length && bundleVersion && bundleDomain?.length) {\n // load base data from URL\n self.newLayerFromURL({\n url: bundleURL,\n version: bundleVersion,\n identifier: bundleDomain,\n });\n } else if (layerURLs?.length) {\n // load layer from URL\n let first = true;\n for (let url of layerURLs) {\n await self.loadLayerFromURL(url, first, true);\n first = false;\n }\n } else if (defaultLayers['enabled']) {\n // load default layers from config file\n let first = true;\n for (let url of defaultLayers['urls']) {\n await self.loadLayerFromURL(url, first, true);\n first = false;\n }\n }\n }\n\n /**\n * Open a new tab\n * @param {string} title title of new tab\n * @param {ViewModel} viewModel the view model for the template\n * @param {Boolean} isCloseable is the tab closeable, default false\n * @param {Boolean} replace replace the current tab with the new tab, default false\n * @param {Boolean} forceNew force open a new tab even if a tab of that name already exists, default false\n * @param {Boolean} isDataTable is the tab a data table, if so tab text should be editable, default false\n */\n public openTab(title: string, viewModel: ViewModel, isCloseable = false, replace = true, forceNew = false, isDataTable = false): void {\n if (!forceNew) {\n // if tab is already open, change to that tab\n let tab: Tab = this.layerTabs.find((t) => t.title === title);\n this.selectTab(tab);\n return;\n }\n\n // create a new tab\n let domain = viewModel ? viewModel.domainVersionID : '';\n let tab = new Tab(title, isCloseable, false, domain, isDataTable);\n tab.viewModel = viewModel;\n\n // select new tab\n if (!replace || this.layerTabs.length === 0) {\n this.layerTabs.push(tab); // don't replace\n this.selectTab(this.layerTabs[this.layerTabs.length - 1]);\n } else {\n // find active tab index\n for (let i = 0; i < this.layerTabs.length; i++) {\n if (this.layerTabs[i] == this.activeTab) {\n if (this.layerTabs[i].title == 'new tab') {\n // close current and don't let it create a replacement tab\n this.closeActiveTab(true);\n }\n this.layerTabs.splice(i, 0, tab); // replace\n this.selectTab(this.layerTabs[i]);\n return;\n }\n }\n }\n // reset dropdown\n this.dropdownEnabled = '';\n }\n\n /**\n * Open a new \"blank\" tab with new layer options\n * @param {boolean} replace replace the current tab with this blank tab, default false\n */\n public newBlankTab(replace: boolean = false): void {\n this.openTab('new tab', null, true, replace, true, false);\n }\n\n /**\n * Select the specified tab, deselect other tabs\n * @param {Tab} tab the tab to select\n */\n public selectTab(tab: Tab): void {\n this.activeTab = tab;\n\n // close search sidebar\n this.viewModelsService.viewModels.forEach((viewModel) => {\n if (viewModel.sidebarContentType === 'search') {\n viewModel.sidebarOpened = false;\n viewModel.sidebarContentType = '';\n }\n });\n }\n\n /**\n * Close the specified tab\n * @param {Tab} tab the tab to close\n * @param {boolean} allowNoTab if true, doesn't select another tab, and won't open a new tab if there are none, default false\n */\n public closeTab(tab: Tab, allowNoTab: boolean = false) {\n let action = 0; // controls post close-tab behavior\n\n // destroy tab viewmodel\n this.viewModelsService.destroyViewModel(tab.viewModel);\n\n // check if the tab we're closing is the active tab\n let i = this.layerTabs.findIndex((t) => t === tab);\n if (tab == this.activeTab) {\n if (i == 0 && this.layerTabs.length > 1) action = 1; // closing first tab, first tab is active, and more tabs exist\n else if (i > 0) action = 2; // not closing first tab, implicitly more tabs exist\n else action = 3; // closing first tab and no other tabs exist\n }\n\n // remove the tab\n this.layerTabs.splice(i, 1);\n\n // handle post close-tab behavior\n if (allowNoTab) return;\n\n switch (action) {\n case 0: // should only occur if the active tab is not closed, don't select another tab\n break;\n case 1: // closing the first tab and more tabs exist\n this.selectTab(this.layerTabs[0]); // select first tab\n break;\n case 2: // closing any tab other than the first\n this.selectTab(this.layerTabs[0]); // select first tab\n break;\n case 3: // closing first tab and no other tab exist\n this.newBlankTab(); // create a new blank tab, automatically opens this tab\n break;\n default: // should never occur\n console.error('post closetab action not specified (this should never happen)');\n }\n }\n\n /**\n * Close the currently selected tab\n * @param {boolean} allowNoTab if true, doesn't select another tab, and won't open a new tab if there are none, default false\n */\n public closeActiveTab(allowNoTab: boolean = false): void {\n if (this.activeTab) this.closeTab(this.activeTab, allowNoTab);\n }\n\n /**\n * Handle tab click event\n * @param {Tab} tab the selected tab\n */\n public handleTabClick(tab: Tab): void {\n if (this.activeTab !== tab) {\n this.activeTab = tab;\n this.dropdownEnabled = '';\n } else this.dropdownEnabled = this.dropdownEnabled !== 'description' ? 'description' : '';\n }\n\n /**\n * Filter domains on version\n * @param {Version} version the version to filter by\n * @returns list of domains in the given version\n */\n public filterDomains(version: Version): Domain[] {\n return this.dataService.domains.filter((d) => d.version == version);\n }\n\n /**\n * Check if the given feature is defined in the config file\n * @param {string} featureName the name of the feature\n * @returns true, if the feature is defined, false otherwise\n */\n public hasFeature(featureName: string): boolean {\n return this.configService.getFeature(featureName);\n }\n\n /**\n * Handle theme change\n * @param {string} theme the selected theme\n */\n public handleUserThemeChange(theme: string) {\n this.onUserThemeChange.emit(theme);\n }\n\n /**\n * Open the selected dialog\n * @param {string} dialogName {\"changelog\"|\"help\"} the dialog to open\n */\n public openDialog(dialogName: string) {\n const settings = { maxWidth: '75ch', panelClass: this.userTheme, autoFocus: false, data: {theme: this.userTheme} };\n if (dialogName == 'changelog') {\n this.dialog.open(ChangelogComponent, settings);\n } else if (dialogName == 'help') {\n this.dialog.open(HelpComponent, settings);\n } else if (dialogName == 'layers') {\n this.dialog.open(LayerInformationComponent, settings);\n }\n }\n\n /**\n * Open the SVG exporter dialog\n * @param {ViewModel} viewModel the viewModel to render\n */\n public openSVGDialog(viewModel: ViewModel) {\n this.dialog.open(SvgExportComponent, {\n data: { vm: viewModel },\n panelClass: ['dialog-custom', this.userTheme],\n autoFocus: false,\n });\n }\n\n /**\n * Given a unique root, get a layer name that does not conflict any existing layers, e.g 'new layer' -> 'new layer 1'\n * @param {string} root the root string to get the non-conflicting version of\n * @return {string} non-conflicted version\n */\n public getUniqueLayerName(root: string): string {\n let id = 0;\n\n function isInteger(str: string): boolean {\n let n = Math.floor(Number(str));\n return String(n) === str;\n }\n\n for (let viewModel of this.viewModelsService.viewModels) {\n if (!viewModel.name.startsWith(root)) continue;\n if (viewModel.name === root) {\n // case where it's \"layer\" aka \"layer0\"\n id = Math.max(id, 1);\n continue;\n }\n\n // find the lowest number higher than existing number\n let substr = viewModel.name.substring(root.length, viewModel.name.length);\n if (isInteger(substr)) {\n id = Math.max(id, Number(substr) + 1);\n }\n }\n\n // if no layers of this name exist (id == 0) just return root\n if (id != 0) root = root + id;\n return root;\n }\n\n /**\n * Create a new layer from URL\n */\n public newLayerFromURL(loadData: any, obj: any = undefined): void {\n let domainID = loadData.identifier.toLowerCase();\n let domainVersionID = this.dataService.getDomainVersionID(domainID, loadData.version);\n\n // validate input data\n let valid = this.validateInput(loadData, domainVersionID);\n if (!valid) return;\n\n // load from URL\n let url = new URL(loadData.url).toString();\n let subscription;\n subscription = this.http.get(url).subscribe({\n next: (res) => {\n // check for custom domain\n let exists = this.dataService.domains.find((d) => d.isCustom && d.id === domainVersionID);\n if (!exists) {\n // create or retrieve version\n let v: Version = this.dataService.versions.find((v) => v.number == loadData.version);\n if (!v) {\n v = new Version(`ATT&CK v${loadData.version}`, String(loadData.version));\n this.dataService.versions.push(v);\n }\n\n // create new custom domain object\n let domainObject = new Domain(domainID, domainID, v, [url]);\n domainObject.isCustom = true;\n this.dataService.domains.push(domainObject);\n }\n\n this.newLayer(domainVersionID, obj);\n },\n error: (err) => {\n console.error(err);\n alert('ERROR retrieving data from ' + url + ', check the javascript console for more information.');\n },\n complete: () => {\n if (subscription) subscription.unsubscribe();\n }, // prevent memory leaks\n });\n }\n\n /**\n * Validate user input data before loading data from collection or STIX bundle URL\n * @param {any} loadData the user input\n * @param {string} domainVersionID the domain and version\n * @returns true if user input is valid, false otherwise\n */\n public validateInput(loadData: any, domainVersionID: string): boolean {\n try {\n // validate URL\n let url = new URL(loadData.url);\n\n // validate version\n if (isNaN(loadData.version)) {\n throw Error('version is not a number');\n }\n\n // validate domainVersionID is unique\n let exists = this.dataService.domains.find((d) => d.id == domainVersionID);\n // Note: if a user inputs the same domain, version, AND url, do not check for collisions, just reload the custom dataset\n if (exists && !(exists.isCustom && exists.urls[0] == url.toString())) {\n throw Error(`the domain and version specified conflict with an existing set of ATT&CK data (${exists.name} ${exists.version.name})`);\n }\n\n return true; // passed validation\n } catch (err) {\n console.error(err);\n if (err instanceof TypeError) {\n alert('ERROR: invalid url, check the javascript console for more information.');\n } else {\n alert('ERROR ' + err.message);\n }\n return false; // failed validation\n }\n }\n\n /**\n * Create a new layer in the given domain and version\n */\n public newLayer(domainVersionID: string, obj: any = undefined): void {\n // load domain data, if not yet loaded\n let domain = this.dataService.getDomain(domainVersionID);\n if (!domain.dataLoaded) {\n this.dataService.loadDomainData(domainVersionID, true);\n }\n\n // find non conflicting name\n let name;\n if (obj && 'name' in obj && obj['name']) {\n name = obj['name'];\n } else name = this.getUniqueLayerName('layer');\n\n // create and open the view model\n let viewModel = this.viewModelsService.newViewModel(name, domainVersionID);\n if (obj) {\n // restore view model from the given string\n viewModel.deserialize(obj);\n }\n viewModel.loadVMData();\n this.openTab(name, viewModel, true, true, true, true);\n }\n\n /**\n * Get the layer score expression variable for the tab at the given index\n * @param {number} index the index of the tab\n * @return {string} the score expression character\n */\n public indexToChar(index: number): string {\n let viewModelIndex = 0;\n for (let i = 0; i < index; i++) {\n // check if tab has a view model\n if (this.layerTabs[i].viewModel) viewModelIndex++;\n }\n return String.fromCharCode(97 + viewModelIndex);\n }\n\n /**\n * Inverse of indextoChar, maps the character to the tab it corresponds to\n * @param {string} char the score expression character\n * @return {number} the index of the tab\n */\n public charToIndex(char: string): number {\n let viewModelIndex = 0;\n for (let i = 0; i < this.layerTabs.length; i++) {\n if (this.layerTabs[i].viewModel) {\n let currChar = String.fromCharCode(97 + viewModelIndex);\n viewModelIndex++;\n if (currChar == char) return i;\n }\n }\n }\n\n /**\n * Create a new layer by operation based on user input\n */\n public layerByOperation(): void {\n // build score expression map, mapping inline variables to their actual VMs\n let scoreVariables = new Map();\n let regex = /\\b[a-z]\\b/g; // \\b matches word boundary\n let matches = this.opSettings.scoreExpression.match(regex);\n\n let self = this;\n if (matches) {\n matches.forEach(function (match) {\n let index = self.charToIndex(match);\n let vm = self.layerTabs[index].viewModel;\n scoreVariables.set(match, vm);\n });\n }\n\n let layerName = this.getUniqueLayerName('layer by operation');\n try {\n // all layers must be of the same domain/version\n let vms = Array.from(scoreVariables.values());\n if (vms && !vms.every((vm) => vm.domainVersionID === vms[0].domainVersionID)) {\n throw Error('cannot apply operations to layers of different domains');\n }\n\n // execute the layer operation\n let vm = this.viewModelsService.layerOperation(scoreVariables, layerName, this.opSettings);\n\n // load domain data and open new layer operation tab\n if (!this.dataService.getDomain(this.opSettings.domain).dataLoaded) {\n this.dataService.loadDomainData(this.opSettings.domain, true).then(() => {\n vm.loadVMData();\n vm.updateGradient();\n this.openTab(layerName, vm, true, true, true, true);\n });\n } else {\n vm.loadVMData();\n vm.updateGradient();\n this.openTab(layerName, vm, true, true, true, true);\n }\n } catch (err) {\n console.error(err);\n alert('Layer Layer operation error: ' + err.message);\n }\n }\n\n /**\n * Check if there's an error in the score expression (syntax, etc)\n * @return {string} error or null if no error\n */\n public getScoreExpressionError(): string {\n let self = this;\n try {\n // build fake scope\n let regex = /\\b[a-z]\\b/g; // \\b matches word boundary\n let scope = {};\n let matches = self.opSettings.scoreExpression.match(regex);\n\n if (matches) {\n let noMatch = '';\n matches.forEach(function (match) {\n scope[match] = 0;\n\n // check if letter is too large\n if (typeof self.charToIndex(match) == 'undefined') {\n noMatch = 'Variable ' + match + ' does not match any layers';\n } else if (\n self.opSettings.domain &&\n self.layerTabs[self.charToIndex(match)].viewModel.domainVersionID !== self.opSettings.domain\n ) {\n noMatch = 'Layer ' + match + ' does not match the chosen domain';\n }\n });\n if (noMatch.length > 0) return noMatch;\n }\n return null;\n } catch (err) {\n return err.message;\n }\n }\n\n /**\n * Open prompt to upload a layer\n */\n public openUploadPrompt(): void {\n let input = document.getElementById('uploader');\n input.click();\n }\n\n /**\n * Dialog to upgrade version if layer is not the latest version\n */\n public versionUpgradeDialog(viewModel: ViewModel): Promise {\n let dataPromise: Promise = new Promise((resolve, reject) => {\n let currVersion = this.dataService.latestVersion.number;\n if (viewModel.version !== currVersion) {\n // ask to upgrade\n let dialog = this.dialog.open(VersionUpgradeComponent, {\n data: {\n layerName: viewModel.name,\n vmVersion: viewModel.version,\n currVersion: currVersion,\n },\n disableClose: true,\n width: '25%',\n panelClass: this.userTheme,\n autoFocus: false,\n });\n this.subscription = dialog.afterClosed().subscribe({\n next: (result) => {\n if (!result.upgrade && !this.dataService.isSupported(viewModel.version)) {\n reject(\n new Error(`Uploaded layer version (${String(viewModel.version)}) is not supported by Navigator v${this.navVersion}`)\n );\n }\n if (result.upgrade) {\n let newDomainVersionID = this.dataService.getDomainVersionID(viewModel.domain, currVersion);\n resolve({ oldID: viewModel.domainVersionID, newID: newDomainVersionID });\n }\n resolve(null);\n },\n complete: () => {\n if (this.subscription) this.subscription.unsubscribe();\n }, //prevent memory leaks\n });\n } else resolve(null); // layer is already current version\n });\n return dataPromise;\n }\n\n /**\n * Checks if the layer can be upgraded and initializes the layer upgrade process\n * @param {ViewModel} oldViewModel viewmodel to upgrade\n * @param {any} serialized the viewmodel's raw serialized JSON string\n * @param {boolean} replace replace if true, replace the current active tab with the layer\n * @param {boolean} defaultLayers is this a layer being loaded by default (from the config or query string)?\n * if so, will act as if the user decided not to upgrade the layer\n */\n public upgradeLayer(oldViewModel: ViewModel, serialized: any, replace: boolean, defaultLayers: boolean = false): Promise {\n return new Promise((resolve, reject) => {\n if (!defaultLayers) {\n this.versionUpgradeDialog(oldViewModel)\n .then((versions) => {\n if (versions) {\n // user upgraded to latest version\n // create and open the latest version\n let newViewModel = this.viewModelsService.newViewModel(oldViewModel.name, versions.newID);\n newViewModel.version = this.dataService.latestVersion.number; // update version to new ID\n newViewModel.deserialize(serialized, false); // restore layer data, except for technique annotations\n newViewModel.loadVMData();\n newViewModel.compareTo = oldViewModel;\n this.openTab('new layer', newViewModel, true, replace, true, true);\n newViewModel.openSidebar('layerUpgrade');\n newViewModel.selectTechniquesAcrossTactics = false;\n\n // load layer version & latest ATT&CK version\n let loads: any = {};\n let dataSubscription: Subscription;\n if (!this.dataService.getDomain(versions.oldID).dataLoaded)\n loads.old = this.dataService.loadDomainData(versions.oldID, true);\n if (!this.dataService.getDomain(versions.newID).dataLoaded)\n loads.new = this.dataService.loadDomainData(versions.newID, true);\n dataSubscription = forkJoin(loads).subscribe({\n complete: () => {\n newViewModel.versionChangelog = this.dataService.compareVersions(versions.oldID, versions.newID);\n // load vm for uploaded layer\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n newViewModel.initCopyAnnotations();\n resolve(null);\n if (dataSubscription) dataSubscription.unsubscribe();\n },\n });\n } else {\n // user did not upgrade, keep the old version\n this.openTab('new layer', oldViewModel, true, replace, true, true);\n if (!this.dataService.getDomain(oldViewModel.domainVersionID).dataLoaded) {\n this.dataService.loadDomainData(oldViewModel.domainVersionID, true).then(() => {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n });\n } else {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n }\n }\n })\n .catch((err) => {\n console.error(err);\n alert('ERROR parsing file, check the javascript console for more information.');\n resolve(null);\n });\n } else {\n // default layer, do not upgrade\n this.openTab('new layer', oldViewModel, true, replace, true, true);\n if (!this.dataService.getDomain(oldViewModel.domainVersionID).dataLoaded) {\n this.dataService.loadDomainData(oldViewModel.domainVersionID, true).then(() => {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n });\n } else {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n }\n }\n });\n }\n\n /**\n * Load a layer from file\n */\n public loadLayerFromFile(): void {\n let input = document.getElementById('uploader');\n if (input.files.length < 1) {\n alert('You must select a file to upload!');\n return;\n }\n this.readJSONFile(input.files[0]);\n }\n\n /**\n * Reads the JSON file, adds the properties to a view model, and\n * loads the view model into a new layer\n */\n public async readJSONFile(file: File): Promise {\n return new Promise((resolve, reject) => {\n let reader = new FileReader();\n let self = this;\n\n reader.onload = async (e) => {\n let loadObjAsLayer = async function(layerObj) {\n let viewModel = self.viewModelsService.newViewModel('loading layer...', undefined);\n try {\n let layerVersionStr = viewModel.deserializeDomainVersionID(layerObj);\n await self.versionMismatchWarning(layerVersionStr);\n self.versionMismatchWarning(layerVersionStr);\n if (!self.dataService.getDomain(viewModel.domainVersionID)) {\n throw new Error(`Error: '${viewModel.domain}' (v${viewModel.version}) is an invalid domain.`);\n }\n\n let isCustom = 'customDataURL' in layerObj;\n if (!isCustom) {\n await self.upgradeLayer(viewModel, layerObj, true);\n console.debug(`loaded layer \"${viewModel.name}\"`);\n } else {\n // load as custom data\n viewModel.deserialize(layerObj);\n let url = layerObj['customDataURL'];\n self.newLayerFromURL(\n {url: url, version: viewModel.version, identifier: viewModel.domain},\n layerObj\n );\n }\n } catch (err) {\n console.error(err);\n alert(`ERROR parsing layer, check the javascript console for more information.`);\n self.viewModelsService.destroyViewModel(viewModel);\n resolve(null); // continue\n }\n }\n\n let result = String(reader.result);\n let layerFile = typeof result == 'string' ? JSON.parse(result) : result;\n if (layerFile?.length) {\n console.debug('loading file with multiple layers');\n for (let layer of layerFile) {\n await loadObjAsLayer(layer);\n }\n } else {\n await loadObjAsLayer(layerFile);\n }\n };\n reader.readAsText(file);\n });\n }\n\n /**\n * Check if uploaded layer version is out of date and display\n * a snackbar warning message (for minor mismatches) or a dialog warning\n * (for major mismatches)\n * @param {string} layerVersionStr the uploaded layer version\n */\n public async versionMismatchWarning(layerVersionStr: string): Promise {\n return new Promise((resolve, reject) => {\n let globalVersionSplit = globals.layerVersion.split('.');\n let layerVersion = layerVersionStr.split('.');\n // if minor version change, snackbar will be displayed\n if (layerVersion[0] === globalVersionSplit[0] && layerVersion[1] !== globalVersionSplit[1]) {\n let snackMessage = `Uploaded layer version (${layerVersionStr}) is out of date. Please update to v${globals.layerVersion} for optimal compatibility.`;\n this.versionMinorSnackbarRef = this.snackBar.open(snackMessage, 'CHANGELOG', {\n duration: 6500,\n });\n this.versionMinorSnackbarRef.onAction().subscribe(() => {\n this.openDialog('changelog');\n });\n resolve(true);\n }\n // if major version change, keep the dialog open until user dismisses it\n else if (layerVersion[0] !== globalVersionSplit[0]) {\n this.versionDialogRef = this.dialog.open(this.versionWarning, {\n width: '30em',\n disableClose: true,\n panelClass: this.userTheme,\n data: {\n objVersion: layerVersionStr,\n globalVersion: globals.layerVersion,\n },\n });\n this.versionDialogRef.afterClosed().subscribe((_) => {\n resolve(true);\n });\n } else {\n resolve(true);\n }\n });\n }\n\n /**\n * Load layer from URL\n * @param {string} loadURL the url to load\n * @param {boolean} replace replace the current active with the loaded layer?\n * @param {boolean} defaultLayers is this loading reflecting a set of default layers (from the config file or from the query string)?\n *\n */\n public async loadLayerFromURL(loadURL: string, replace: boolean, defaultLayers: boolean = false): Promise {\n return new Promise(async (resolve, reject) => {\n let subscription;\n let self = this;\n subscription = self.http.get(loadURL).subscribe({\n next: async (res) => {\n let loadLayerAsync = async function(layerObj) {\n let viewModel = self.viewModelsService.newViewModel('loading layer...', undefined);\n try {\n let layerVersionStr = viewModel.deserializeDomainVersionID(layerObj);\n await self.versionMismatchWarning(layerVersionStr);\n if (!self.dataService.getDomain(viewModel.domainVersionID)) {\n throw new Error(`Error: '${viewModel.domain}' (v${viewModel.version}) is an invalid domain.`);\n }\n await self.upgradeLayer(viewModel, layerObj, replace, defaultLayers);\n console.debug(`loaded layer \"${viewModel.name}\" from ${loadURL}`);\n } catch (err) {\n console.error(err);\n alert(`ERROR parsing layer from ${loadURL}, check the javascript console for more information.`);\n self.viewModelsService.destroyViewModel(viewModel);\n resolve(null); // continue\n }\n };\n\n let layerFile = typeof res == 'string' ? JSON.parse(res) : res;\n if (layerFile?.length) {\n console.debug('loading file with multiple layers');\n for (let layer of layerFile) {\n await loadLayerAsync(layer);\n }\n } else {\n await loadLayerAsync(layerFile);\n }\n resolve(null); //continue\n },\n error: (err) => {\n console.error(err);\n alert(`ERROR retrieving layer from ${loadURL}, check the javascript console for more information.`);\n resolve(null); // continue\n },\n complete: () => {\n if (subscription) subscription.unsubscribe();\n }, // prevent memory leaks\n });\n });\n }\n\n /**\n * Helper function to track which layerLinkURLs have been added or removed\n */\n public trackByFunction(index: number): any {\n return index;\n }\n\n /**\n * Add a new empty layer link to the layerLinkURLs array\n */\n public addLayerLink(): void {\n this.layerLinkURLs.push('');\n }\n\n /**\n * Remove the given layer link URL from layerLinkURLs\n * @param {number} index the index to remove\n */\n public removeLayerLink(index: number): void {\n this.layerLinkURLs.splice(index, 1);\n }\n\n /**\n * Convert layerLinkURL to a query string value for layerURL query string\n * @return URL such that when opened will create navigator instance with a query String\n * specifying layerLinkURL as the URL to fetch the default layer from\n */\n public getLayerLink(): string {\n let str = window.location.href.split('#')[0];\n let join = '#'; // hash first, then ampersand\n for (let layerLinkURL of this.layerLinkURLs) {\n str += join + 'layerURL=' + encodeURIComponent(layerLinkURL);\n join = '&';\n }\n for (let feature of this.configService.customizefeatureList) {\n if (feature.subfeatures) {\n for (let subfeature of feature.subfeatures) {\n if (!subfeature.enabled) {\n str += join + subfeature.name + '=false';\n join = '&';\n }\n }\n } else if (!feature.enabled) {\n str += join + feature.name + '=false';\n join = '&';\n }\n }\n return str;\n }\n\n /**\n * Select the layer link field text\n */\n public selectLayerLink(): void {\n let copyText = document.getElementById('layerLink');\n console.debug('copied', copyText.value);\n copyText.select();\n }\n\n /**\n * Copy the created layer link to clipboard\n */\n public copyLayerLink(): void {\n this.selectLayerLink();\n document.execCommand('Copy');\n this.copiedRecently = true;\n let self = this;\n window.setTimeout(function () {\n self.copiedRecently = false;\n }, 2000);\n }\n\n /**\n * Return true if the text is only letters a-z, false otherwise\n * @param text text to eval\n * @return true if a-z, false otherwise\n */\n public isAlphabetical(text: string): boolean {\n return /^[a-z]+$/.test(text);\n }\n\n /**\n * Get a key=value fragment value by key\n * @param {string} name name of param to get the value of\n * @param {string} url optional, if unspecified searches in current window location. Otherwise searches this string\n * @return {string} fragment param value\n */\n public getNamedFragmentValue(name: string, url?: string): any {\n if (!url) url = window.location.href;\n\n name = name.replace(/[[\\]]/g, '\\\\$&');\n let regex = new RegExp('[#&]' + name + '(?:=([^&#]*)|&|#|$)', 'g');\n\n // match as many results as exist under the name\n let results = [];\n let match = regex.exec(url);\n while (match != null) {\n results.push(decodeURIComponent(match[1].replace(/\\+/g, ' ')));\n match = regex.exec(url);\n }\n return results;\n }\n\n /** Get all view models in the same domain/version */\n public getFilteredVMs(): ViewModel[] {\n return this.viewModelsService.viewModels.filter((vm) => vm.domainVersionID == this.opSettings.domain);\n }\n}\n","
    \n \n
    \n
    \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n \n
    \n
    = 0\">\n \n \n
    \n
    \n\n \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n\n\n
    \n

    WARNING

    \n

    \n We’ve detected that you are using the Safari browser. As of Navigator version\n 4.3\n , Safari versions 13 and below are not supported due to an unfixable freeze that can occur when selecting a layer tab.\n

    \n

    \n We recommend you use Chrome or Firefox instead. You can continue to use the Navigator in Safari (versions 13 and below), but you may lose\n work if the application freezes.\n

    \n \n
    \n
    \n\n\n
    \n
    \n

    \n WARNING:\n Outdated Layer\n

    \n \n

    \n The uploaded layer version ({{ data.objVersion }}) does not match Navigator's layer version ({{ data.globalVersion }}). The layer\n configuration may not be fully restored.\n

    \n

    View the latest Layer File Format specification and the changelog for more information:

    \n

    \n Layer File Format v{{ data.globalVersion }}\n

    \n

    \n Changelog\n

    \n
    \n
    \n\n \n
    \n
    \n\n\n\n
    \n
    \n \n
    \n

    \n The ATT&CK Navigator is a web-based tool for annotating and exploring ATT&CK matrices. It can be used to visualize defensive\n coverage, red/blue team planning, the frequency of detected techniques, and more.\n

    \n
    \n \n \n
    \n \n \n \n \n Create New Layer\n Create a new empty layer\n \n\n \n
    \n \n
    \n\n \n \n \n More Options\n \n\n
    \n
    \n \n \n Select a version\n \n none\n \n {{ nVersion.name }}\n \n \n \n \n \n Select a domain\n \n none\n \n {{ nDomain.name }}\n \n \n \n \n \n *Note: ATT&CK Versions prior to v{{ minimumSupportedVersion }} are not supported by Navigator v{{ navVersion }}.\n \n
    \n
    \n OR\n
    \n
    \n \n \n Collection or STIX bundle URL\n \n \n \n \n Bundle version number\n \n ATT&CK version (e.g. 12)\n \n \n \n Bundle domain\n \n Domain identifier (e.g. defending-iaas)\n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n \n Create layer from bundle\n \n
    \n
    \n
    \n
    \n\n \n \n \n Open Existing Layer\n Load a layer from your computer or a URL\n \n\n
    \n
    \n \n \n
    \n
    \n OR\n
    \n
    \n \n Load from URL\n \n \n chevron_right\n \n \n
    \n
    \n
    \n\n \n \n \n Create Layer from Other Layers\n Select layers to inherit properties from\n \n\n
    \n \n
    \n
    \n \n domain\n \n \n {{ domain.name }} {{ domain.version.name }}\n \n \n \n
    \n
    \n
    \n Select the domain for the new layer. Only layers of the same domain and version can be merged.\n
    \n
    \n\n \n
    \n
    \n \n score expression\n \n {{ getScoreExpressionError() }}\n \n
    \n
    \n
    \n \n Use constants (numbers) and layer variables (yellow, above) to write an expression for the initial value of scores in\n the new layer. A full list of supported operations can be found\n here\n . Leave blank to initialize scores to 0. Here's a list of available layer variables:\n
      \n \n {{ indexToChar($i) }}\n ({{ tab.isDataTable ? tab.viewModel.name : tab.title }})\n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n gradient\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n \n Select which layer to import the scoring gradient from. Leave blank to initialize with the default scoring gradient.\n \n
    \n
    \n\n \n
    \n
    \n \n coloring\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import manually assigned colors from. Leave blank to initialize with no colors.\n
    \n
    \n\n \n
    \n
    \n \n comments\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import comments from. Leave blank to initialize with no comments.\n
    \n
    \n\n \n
    \n
    \n \n links\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import technique links from. Leave blank to initialize without links.\n
    \n
    \n\n \n
    \n
    \n \n metadata\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import technique metadata from. Leave blank to initialize without metadata.\n
    \n
    \n\n \n
    \n
    \n \n states\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import enabled/disabled states from. Leave blank to initialize all to enabled.\n
    \n
    \n\n \n
    \n
    \n \n filters\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import filters from. Leave blank to initialize with no filters.\n
    \n
    \n\n \n
    \n
    \n \n legend\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import the legend from. Leave blank to initialize with an empty legend.\n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n\n \n \n \n Create Customized Navigator\n Create a hyperlink to a customized ATT&CK Navigator\n \n\n
    \n
    \n \n

    Default Layers

    \n
    \n
    \n
      \n
    • \n \n default layer {{i+1}}\n \n \n \n
    • \n
    • \n \n
    • \n
    \n
    \n
    \n
    \n Enter the URLs of layers hosted on the web. The custom navigator will open these layers by default.\n
    \n
    \n
    \n\n
    \n \n

    Navigator Features

    \n \n
    \n
    \n \n {{ feature.name.split('_').join(' ') }}\n \n
    \n
    \n
    \n {{ feature.description }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n custom navigator url\n \n \n copied\n \n
    \n
    \n
    \n
    \n
    \n\n\n\n \n\n","// utilities for working with browser cookies\n\n/**\n * Set a cookie\n * @param {string} key key to set under\n * @param {string} value value to set under key\n * @param {number} expirationDays when cookie expires in days\n */\nconst setCookie = function (key: string, value: string, expirationDays: number) {\n let d = new Date();\n d.setTime(d.getTime() + expirationDays * 24 * 60 * 60 * 1000);\n let expires = 'expires=' + d.toUTCString();\n document.cookie = key + '=' + value + ';' + expires + ';path=/;SameSite=Strict';\n};\n\n/**\n * Get the value of the cookie under the given key\n * @param {string} key to retrieve from\n * @return {string} cookie value\n */\nconst getCookie = function (key: string): string {\n let name = key + '=';\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n\n for (let c of ca) {\n while (c.startsWith(' ')) {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n};\n/**\n * Does a cookie exist under the given key?\n * @param {string} key to check\n * @return {boolean} true if cookie is stored under key, false otherwise\n */\nconst hasCookie = function (key: string): boolean {\n return getCookie(key) !== '';\n};\n\n/**\n * Delete the given cookie\n * @param {string} key to delete\n */\nconst deleteCookie = function (key: string) {\n document.cookie = key + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;SameSite=Strict';\n};\n\nexport { setCookie, getCookie, hasCookie, deleteCookie };\n","'use strict';\nimport appPackageInfo from '../../../package.json';\n\nexport const navVersion: string = appPackageInfo.version;\nexport const layerVersion: string = '4.5';\nexport const minimumSupportedVersion: string = '4.0';\n","/**\n * @fileoverview\n * A TAXII 2.0 Javascript client library.\n * Converted to Typescript by Isabel Tuson 24 May 2018.\n * Added support for TAXII 2.1 by Charissa Miller 9 April 2024.\n *\n * @see https://github.com/workingDog/taxii2lib/\n * @see https://oasis-open.github.io/cti-documentation/\n *\n * @author R. Wathelet, September 2017\n * @modified by I. Tuson 24 May 2018\n * @modified by C. Miller 9 April 2024\n *\n * @version 0.3\n */\n\n/**\n * Provide asynchronous network communications to a TAXII 2.0 or 2.1 server.\n */\nexport class TaxiiConnect {\n baseURL: string;\n user: string;\n password: string;\n hash: string;\n timeout: number;\n version: string;\n getConfig: any;\n getStixConfig: any;\n mediaType: string;\n\n /**\n * provide network communication to a Taxii 2.0 or 2.1 server.\n * @param {String} url - the base url of the Taxii2 server, for example https://example.com/\n * @param {String} user - the user name required for authentication.\n * @param {String} password - the user password required for authentication.\n * @param {Integer} timeout - the connection timeout in millisec\n */\n constructor(url, user, password, timeout = 10000) {\n this.baseURL = TaxiiConnect.withoutLastSlash(url);\n this.user = user;\n this.password = password;\n this.hash = btoa(this.user + ':' + this.password);\n this.timeout = timeout;\n\n this.version = '2.1';\n this.mediaType = `application/taxii+json;version=${this.version}`;\n // backwards compatibility for STIX 2.0\n if (url.includes('cti-taxii.mitre.org')) {\n this.version = '2.0';\n this.mediaType = 'application/vnd.oasis.stix+json';\n }\n\n // default headers configurations\n this.getConfig = {\n method: 'get',\n headers: new Headers({\n Accept: this.mediaType,\n version: this.version,\n Authorization: 'Basic ' + this.hash,\n }),\n };\n\n this.getStixConfig = {\n method: 'get',\n headers: new Headers({\n Accept: this.mediaType,\n version: this.version,\n Authorization: 'Basic ' + this.hash,\n }),\n };\n }\n\n // original code from: https://github.com/jkomyno/fetch-timeout\n timeoutPromise(promise, timeout, error) {\n return new Promise((resolve, reject) => {\n setTimeout(() => reject(error), timeout);\n promise.then(resolve, reject);\n });\n }\n // original code from: https://github.com/jkomyno/fetch-timeout\n fetchTimeout(url, options, timeout, error) {\n error = error || 'Timeout error';\n options = options || {};\n timeout = timeout || 10000;\n return this.timeoutPromise(fetch(url, options), timeout, error);\n }\n\n /**\n * send an async request (GET or POST) to the taxii2 server.\n *\n * @param {String} path - the full path to connect to.\n * @param {Object} config - the request configuration, see getConfig and postConfig for examples\n * @param {Object} filter - the filter object describing the filtering requested, this is added to the path as a query string\n * @returns {Promise} the server response in json.\n */\n async asyncFetch(path, config, filter?) {\n //CHANGED\n let fullPath = !filter ? path : path + '?' + TaxiiConnect.asQueryString(filter);\n return await this.fetchTimeout(fullPath, config, this.timeout, 'connection timeout')\n .then((res: Response) => res.json())\n .catch((err) => {\n throw new Error('fetch error: ' + err);\n });\n }\n\n /**\n * send a GET async request to the taxii2 server.\n *\n * The server response is assigned to the cache attribute of the options object, and\n * the options flag attribute is set to true if a server request was performed.\n * Otherwise if the options.flag is initially true, the cached response (options.cache) is returned and\n * no server request is performed.\n * To force a server request used invalidate(), for example: server.invalidate()\n *\n * @param {String} path - the path to connect to.\n * @param {Object} options - an option object of the form: { \"cache\": {}, \"flag\": false }\n * @param {Object} filter - the filter object describing the filtering requested, this is added to the path as a query string\n * @param {Object} config - the request configuration\n * @returns {Promise} the server response object\n */\n async fetchThis(path, options, filter?, config?) {\n //CHANGED\n let conf = config === undefined ? this.getConfig : config;\n if (!options.flag) {\n options.cache = await this.asyncFetch(path, conf, filter);\n options.flag = true;\n }\n return options.cache;\n }\n\n /**\n * return the url without the last slash.\n * @param {String} url - the URL string to process.\n * @returns {String} the url without the last slash.\n */\n static withoutLastSlash(url) {\n return url.substr(-1) === '/' ? url.substr(0, url.length - 1) : url;\n }\n\n /**\n * return the url with a terminating slash.\n * @param {String} url - the URL string to process.\n * @returns {String} the url with a terminating slash.\n */\n static withLastSlash(url) {\n return url.substr(-1) === '/' ? url : url + '/';\n }\n\n /**\n * convert a filter object into a query string.\n * @param {Object} filter - the filter object to process.\n * @returns {String} the query string corresponding to the filter object.\n */\n static asQueryString(filter) {\n return Object.keys(filter)\n .map((k) => {\n let value = k === 'added_after' ? k : 'match[' + k + ']';\n return encodeURIComponent(value) + '=' + encodeURIComponent(filter[k]);\n })\n .join('&');\n }\n}\n\n/**\n * A Collection resource endpoint.\n */\nexport class Collection {\n collectionInfo: any;\n api_root_path: string;\n conn: TaxiiConnect;\n path: string;\n colOptions: any;\n objsOptions: any;\n objOptions: any;\n manOptions: any;\n\n /**\n * Collection resource endpoint.\n * @param {CollectionInfoObject} collectionInfo - the collection object of this endpoint.\n * @param {String} api_root_path - the full path to the desired api root endpoint.\n * @param {TaxiiConnection} conn - a TaxiiConnection class instance.\n */\n constructor(collectionInfo, api_root_path, conn) {\n this.collectionInfo = collectionInfo;\n\n this.api_root_path = TaxiiConnect.withLastSlash(api_root_path + 'api/v21');\n // backwards compatibility for STIX 2.0\n if (api_root_path.includes('cti-taxii.mitre.org')) {\n // cont. support for stix 2.0\n this.api_root_path = TaxiiConnect.withLastSlash(api_root_path + 'stix');\n }\n this.conn = conn;\n // construct the path\n this.path = this.api_root_path + 'collections/' + collectionInfo.id + '/';\n // cache represents the cached results and flag determines if it needs a re-fetch\n this.colOptions = { cache: {}, flag: false };\n this.objsOptions = { cache: {}, flag: false };\n this.objOptions = { cache: {}, flag: false };\n this.manOptions = { cache: {}, flag: false };\n }\n\n /**\n * check that the collection allows reading, if true then return the function passed in\n * else log an error\n * @param {Function} func - the function to return if the collection allows reading it\n * @returns {Function} the function if this collection allow reading else undefined\n */\n ifCanRead(func) {\n if (this.collectionInfo.can_read) {\n return func;\n } else {\n console.log('this collection does not allow reading: \\n' + JSON.stringify(this.collectionInfo));\n }\n }\n\n /**\n * check that the collection allows writing, if true then return the function passed in else log an error\n * @param {Function} func - the function to return if the collection allows writing it\n * @returns {Function} the function if this collection allow writing else undefined\n */\n ifCanWrite(func) {\n if (this.collectionInfo.can_write) {\n return func;\n } else {\n console.log('this collection does not allow writing: \\n' + JSON.stringify(this.collectionInfo));\n }\n }\n\n /**\n * retrieve a STIX-2 bundle from this Collection.\n *\n * @param {Object} filter - the filter object describing the filtering requested, this is added to the path as a query string.\n * For example: {\"added_after\": \"2016-02-01T00:00:01.000Z\"}\n * {\"type\": [\"incident\",\"ttp\",\"actor\"]}\n * @param {String} range - a pagination range string, for example \"0-10\"\n * @returns {Promise} the Bundle with the STIX-2 objects of this collection\n */\n async getObjects(filter, range) {\n let theConfig = this.conn.getStixConfig;\n if (range !== undefined) {\n theConfig = {\n method: 'get',\n headers: new Headers({\n Accept: this.conn.mediaType,\n version: this.conn.version,\n Authorization: 'Basic ' + this.conn.hash, //CHANGED\n Range: 'items=' + range,\n }),\n };\n }\n return this.ifCanRead(this.conn.fetchThis(this.path + 'objects/', this.objsOptions, filter, theConfig));\n }\n}\n","// utils.ts\nimport { detect } from \"detect-browser\";\n\nlet comparatorFn = {\n\t'<': function(a, b) { return a < b; },\n\t'<=': function(a, b) { return a <= b; },\n\t'>': function(a, b) { return a > b; },\n\t'>=': function(a, b) { return a >= b; }\n};\n\nexport function isBoolean(value: any): boolean {\n\treturn typeof value === 'boolean';\n}\n\nexport function isNumber(value: any): boolean {\n\treturn typeof value === 'number';\n}\n\nexport function isIE(): boolean {\n\tconst browser = detect();\n\treturn browser.name == 'ie';\n}\n\nexport function isSafari(compRange): boolean {\n\tfunction compare(version, comp) {\n\t\tlet str = (comp + '');\n\t\tlet n = +(/\\d+/.exec(str) || NaN);\n\t\tlet op = /^[<>]=?/.exec(str)[0];\n\t\treturn comparatorFn[op] ? comparatorFn[op](version, n) : (version == n || Number.isNaN(n));\n\t}\n\n\tconst browser = detect();\n\treturn browser.name == 'safari' && compare(browser.version.split('.')[0], compRange);\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { DataService } from '../services/data.service';\nimport * as globals from '../utils/globals';\n\n@Component({\n selector: 'app-version-upgrade',\n templateUrl: './version-upgrade.component.html',\n styleUrls: ['./version-upgrade.component.scss'],\n providers: [ViewModelsService],\n})\nexport class VersionUpgradeComponent implements OnInit {\n navVersion = globals.navVersion;\n currVersion: string;\n vmVersion: string;\n layerName: string;\n\n constructor(\n public dialogRef: MatDialogRef,\n public dataService: DataService,\n private viewModelsService: ViewModelsService,\n @Inject(MAT_DIALOG_DATA) public data\n ) {}\n\n ngOnInit() {\n this.currVersion = this.data.currVersion;\n this.vmVersion = this.data.vmVersion;\n this.layerName = this.data.layerName;\n }\n\n upgradeVersion(upgrade: boolean) {\n this.dialogRef.close({ upgrade: upgrade });\n }\n}\n","
    \n

    Upgrade layer version?

    \n \n

    \n The layer \"{{ layerName }}\" uses an outdated version of ATT&CK (v{{ vmVersion }}). Do you want to open the workflow to upgrade this\n layer to ATT&CK v{{ currVersion }}?\n \n This version is not supported by Navigator v{{ navVersion }} and must be upgraded for use.\n \n

    \n
    \n \n \n \n \n
    \n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false,\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.log(err));\n","/* (ignored) */"],"names":["TabsComponent","globals","deleteCookie","getCookie","hasCookie","setCookie","AppComponent","promptNavAway","$event","configService","getFeature","returnValue","constructor","iconsService","titleService","navVersion","title","Array","prototype","includes","value","i","length","user_theme","ngOnInit","registerIcons","setTitle","themeChangeHandler","theme","_","i0","ɵɵdirectiveInject","i1","ConfigService","i2","IconsService","i3","Title","_2","selectors","viewQuery","AppComponent_Query","rf","ctx","ɵɵlistener","AppComponent_beforeunload_HostBindingHandler","ɵɵresolveWindow","ɵɵelementStart","AppComponent_Template_tabs_onUserThemeChange_3_listener","ɵɵelementEnd","AppComponent_Template_button_click_4_listener","tabsComponent","openDialog","ɵɵtext","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","BrowserModule","BrowserAnimationsModule","APP_INITIALIZER","MatInputModule","MatSelectModule","MatButtonModule","MatIconModule","MatProgressSpinnerModule","FormsModule","ReactiveFormsModule","MatTooltipModule","MatCheckboxModule","MatDialogModule","MatSnackBarModule","MatMenuModule","MatExpansionModule","MatSidenavModule","ColorPickerModule","DndModule","HttpClientModule","DataTableComponent","HelpComponent","SvgExportComponent","TechniqueCellComponent","MatrixSideComponent","MatrixFlatComponent","MatrixMiniComponent","TooltipComponent","SearchAndMultiselectComponent","ContextmenuComponent","TacticCellComponent","VersionUpgradeComponent","SidebarComponent","LayerUpgradeComponent","ChangelogCellComponent","MatCardModule","MatDividerModule","MatStepperModule","MatPaginatorModule","LayerSettingsComponent","MarkdownModule","LayerInformationComponent","ChangelogComponent","MatTabsModule","ListInputComponent","AppModule","bootstrap","_3","provide","useFactory","loadConfig","deps","multi","imports","forRoot","declarations","exports","NgClass","NgForOf","NgIf","MatFormField","MatLabel","MatHint","MatSuffix","i4","MatSelect","i5","MatOption","i6","DefaultValueAccessor","NumberValueAccessor","NgControlStatus","RequiredValidator","NgModel","i7","MatInput","i8","MatButton","MatIconButton","i9","MatIcon","i10","MatCheckbox","i11","MatTooltip","i12","MatAccordion","MatExpansionPanel","MatExpansionPanelHeader","MatExpansionPanelTitle","MatExpansionPanelDescription","i13","MatDialogClose","MatDialogTitle","MatDialogContent","i14","MatTabNav","MatTabNavPanel","MatTabLink","MAT_DIALOG_DATA","dialog","markdownService","data","MatDialog","MarkdownService","ChangelogComponent_Query","ɵɵelement","ContextMenuItem","label","url","subtechnique_url","getReplacedURL","technique","tactic","isSubtechnique","replace","parent","attackID","id","name","toLowerCase","split","shortname","Domain","tactics","matrix","matrices","concat","domain_identifier","version","urls","taxii_url","taxii_collection","dataLoaded","dataLoadedCallbacks","isCustom","techniques","platforms","subtechniques","software","campaigns","assets","dataComponents","dataSources","Map","groups","mitigations","notes","relationships","subtechniques_of","component_rel","group_uses","software_uses","campaign_uses","campaigns_attributed_to","mitigates","revoked_by","targeted_assets","number","getVersion","executeCallbacks","callback","Filter","selection","options","initPlatformOptions","domain","JSON","parse","stringify","toggleInFilter","filterName","console","error","index","indexOf","splice","push","inFilter","serialize","deserialize","rep","isStringArray","arr","item","backwards_compatibility_mappings","android","ios","windows","linux","mac","AWS","GCP","Azure","Set","forEach","platform","add","from","tinycolor","tinygradient","Gradient","colors","Gcolor","minValue","maxValue","presets","redgreen","greenred","bluered","redblue","transparentblue","transparentred","setGradientPreset","colorList","gColor","hexstring","color","toHex8String","obj","isColorStringArray","isValid","self","hex","updateGradient","presetToTinyColor","preset","colorarray","gcolor","css","map","colorobj","gradient","gradientRGB","rgb","addColor","removeColor","getHexColor","valueString","Number","toHexString","Math","round","VersionChangelog","Version","LayoutOptions","Link","Metadata","TechniqueVM","ViewModel","Tab","layoutOptions","_layout","aggregateFunctionOptions","_aggregateFunction","_showID","_showName","_showAggregateScores","_countUnscored","expandedSubtechniquesOptions","_expandedSubtechniques","layout","newLayout","warn","oldLayout","showID","showName","aggregateFunction","newAggregateFunction","newval","showAggregateScores","countUnscored","expandedSubtechniques","newExpandedSubtechniques","divider","valid","undefined","StixObject","Asset","targeted","domainVersionID","rels","dataService","getDomain","has","get","relatedTechniques","Campaign","used","DataComponent","stixSDO","dataSource","x_mitre_data_source_ref","targetID","find","t","source","external_references","Group","campaignsUsed","attributedCampaigns","campaign_id","usedSet","Matrix","Mitigation","Note","Software","Tactic","Technique","idToTacticSDO","tactic_refs","tacticID","filter","tacticSDO","mitigated","abstract","content","object_refs","x_mitre_platforms","trim","supportsAttackID","description","created","modified","revoked","deprecated","x_mitre_deprecated","x_mitre_version","external_id","alert","Error","compareVersion","that","thisVersion","thatVersion","max","x_mitre_shortname","datasources","x_mitre_data_sources","toString","kill_chain_phases","phase","phase_name","sub","subtechnique","get_technique_tactic_id","tactic_shortname","get_all_technique_tactic_ids","isCloseable","showScoreVariables","isDataTable","metadataStr","metadata","linkStr","links","technique_tactic_union_id","score","enabled","comment","showSubtechniques","isVisible","idSplit","techniqueID","annotated","resetAnnotations","aggregateScore","aggregateScoreColor","setIsVisible","visible","isNaN","m","l","String","metadataObj","linkObj","link","oldDomainVersionID","newDomainVersionID","additions","changes","minor_changes","deprecations","revocations","unchanged","reviewed","copied","linksMatch","linkMismatches","metadataMatch","metadataMismatches","sidebarOpened","_sidebarOpened","newVal","sidebarContentType","_sidebarContentType","sidebarContentTypes","uid","loaded","techniqueVMs","selectedTechniques","highlightedTactic","highlightedTechniques","highlightedTechnique","hideDisabled","showTacticRowBackground","tacticRowBackground","stickyToolbar","legendItems","backgroundPresets","legendColorPresets","initializeScoresTo","technique_show_subtechnique","sorting","selectTechniquesAcrossTactics","selectSubtechniquesWithParent","selectVisibleTechniques","debug","filters","openSidebar","contentType","loadVMData","bundleURL","onDataLoad","initTechniqueVMs","techniqueVM","setTechniqueVM","tvm","getTechniqueVM_id","some","sid","svm","getTechniqueVM","hasTechniqueVM","technique_tactic_id","hasTechniqueVM_id","overwrite","delete","set","highlightTechnique","clearHighlight","selectTechnique","selectTechniqueAcrossTactics","selectTechniqueInTactic","unselectTechnique","unselectTechniqueAcrossTactics","unselectTechniqueInTactic","walkChildren","isCurrentlyEditing","activeTvm","checkValues","selectAllTechniquesInTactic","highlightTechniques","unselectAllTechniquesInTactic","clearSelectedTechniques","clear","selectAllTechniques","invertSelection","previouslySelected","key","selectAnnotated","selected","selectUnannotated","initCopyAnnotations","copy","fromTechnique","getTechnique","compareTo","fromVM","toTechnique","copyAnnotations","versionChangelog","toVM","updateScoreColor","every","revertCopy","isTechniqueSelected","getSelectedTechniqueCount","ids","unionID","size","isTacticSelected","isSelected","editSelectedTechniques","field","editSelectedTechniqueValues","values","fieldToType","value_clone","clone","resetSelectedTechniques","getEditingCommonValue","commonValue","first_id","next","filterTactics","filterTechniques","isSubtechniqueEnabled","subtechniqueVM","sub_platforms","p","sortTechniques","sort","technique1","technique2","techniqueVM1","techniqueVM2","sortSubTechniques","score1","NEGATIVE_INFINITY","score2","calculateAggregateScore","sortingAlgorithm","localeCompare","validTechniquesCount","scores","scoreNum","aggScore","min","reduce","a","b","toFixed","isFinite","applyControls","getVisibleTechniquesList","visibleTechniques","modifiedHiddenTechniques","downloadAnnotationsOnVisibleTechniques","modifiedTechniqueVMs","versions","attack","navigator","layer","layerVersion","customDataURL","deserializeDomainVersionID","versionNumber","latestVersion","match","domain_backwards_compatibility","getDomainVersionID","restoreTechniques","legendItem","objTechnique","viewMode","addGradientColor","removeGradientColor","scoreColor","updateLegendColorPresets","addLegendItem","deleteLegendItem","clearLegend","EventEmitter","Excel","isIE","DataTableComponent_div_4_Template_div_click_0_listener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","setCurrentControlSection","ɵɵclassProp","currentControlSection","showControlsBar","DataTableComponent_div_5_Template_div_click_0_listener","_r3","DataTableComponent_div_6_Template_div_click_0_listener","_r4","ɵɵtextInterpolate","ɵɵpipeBind1","getControlDisplayName","DataTableComponent_ul_7_li_1_div_1_Template_div_click_1_listener","_r6","openSearch","ɵɵtemplate","DataTableComponent_ul_7_li_1_div_1_span_2_Template","ɵɵpureFunction1","_c1","viewModel","showControlLabels","DataTableComponent_ul_7_li_1_div_2_Template_div_click_1_listener","_r7","currentDropdown","DataTableComponent_ul_7_li_1_div_2_span_2_Template","ɵɵpropertyInterpolate1","ɵɵtwoWayListener","DataTableComponent_ul_7_li_1_div_3_div_5_div_6_Template_input_ngModelChange_1_listener","_r10","ɵɵtwoWayBindingSet","ɵɵtwoWayProperty","DataTableComponent_ul_7_li_1_div_3_div_5_Template_input_ngModelChange_3_listener","_r9","DataTableComponent_ul_7_li_1_div_3_div_5_div_6_Template","DataTableComponent_ul_7_li_1_div_3_div_5_Template_input_ngModelChange_8_listener","checkalign","dropdown_r11","DataTableComponent_ul_7_li_1_div_3_Template_div_click_1_listener","_r8","DataTableComponent_ul_7_li_1_div_3_span_2_Template","DataTableComponent_ul_7_li_1_div_3_div_5_Template","DataTableComponent_ul_7_li_1_div_8_div_10_Template_input_ngModelChange_1_listener","control_r14","_r13","$implicit","getControl","DataTableComponent_ul_7_li_1_div_8_Template_input_ngModelChange_3_listener","_r12","DataTableComponent_ul_7_li_1_div_8_div_10_Template","dropdown_r15","selectionControlsList","DataTableComponent_ul_7_li_1_div_1_Template","DataTableComponent_ul_7_li_1_div_2_Template","DataTableComponent_ul_7_li_1_div_3_Template","DataTableComponent_ul_7_li_1_Template_div_click_5_listener","_r5","handleSelectionControlsSettingsDropdown","DataTableComponent_ul_7_li_1_Template_div_keydown_5_listener","handleKeyDownSelection","DataTableComponent_ul_7_li_1_div_8_Template","isControlIncluded","DataTableComponent_ul_7_li_2_div_1_Template_div_click_1_listener","_r17","openLayerSettings","DataTableComponent_ul_7_li_2_div_1_span_2_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_6_Template_div_click_1_listener","_r20","saveLayerLocally","DataTableComponent_ul_7_li_2_div_2_div_5_div_7_Template_div_click_1_listener","_r21","saveAllLayersLocally","DataTableComponent_ul_7_li_2_div_2_div_5_div_7_span_2_Template","viewModelsService","viewModels","DataTableComponent_ul_7_li_2_div_2_div_5_div_8_Template_div_click_1_listener","_r22","saveLayerLocallyExcel","DataTableComponent_ul_7_li_2_div_2_div_5_div_9_Template_div_click_1_listener","_r23","saveAllLayersLocallyExcel","DataTableComponent_ul_7_li_2_div_2_div_5_div_10_Template_div_click_1_listener","_r24","exportRender","DataTableComponent_ul_7_li_2_div_2_div_5_div_6_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_7_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_8_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_9_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_10_Template","DataTableComponent_ul_7_li_2_div_2_div_5_Template_input_ngModelChange_15_listener","_r19","DataTableComponent_ul_7_li_2_div_2_div_5_div_18_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_19_Template","dropdown_r25","DataTableComponent_ul_7_li_2_div_2_Template_div_click_1_listener","_r18","handleExportDropdown","DataTableComponent_ul_7_li_2_div_2_span_2_Template","DataTableComponent_ul_7_li_2_div_2_div_5_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_3_div_1_Template_input_click_1_listener","filterOption_r28","_r27","filter_r29","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_3_div_1_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_3_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_4_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_Template","dropdown_r30","ɵɵpureFunction0","_c2","DataTableComponent_ul_7_li_2_div_3_Template_div_click_1_listener","_r26","DataTableComponent_ul_7_li_2_div_3_span_2_Template","DataTableComponent_ul_7_li_2_div_3_div_5_Template","ɵɵelementContainerStart","DataTableComponent_ul_7_li_2_div_4_ng_container_3_span_1_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_4_span_1_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_5_span_1_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_6_span_1_Template","DataTableComponent_ul_7_li_2_div_4_Template_div_click_1_listener","_r31","DataTableComponent_ul_7_li_2_div_4_ng_container_3_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_4_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_5_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_6_Template","_c3","_c4","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_button_click_2_listener","$i_r35","_r34","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_colorPickerChange_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_cpPresetColorsChange_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_cpSliderChange_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_cpInputChange_5_listener","gradientStep_r36","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_ngModelChange_5_listener","ɵɵstyleProp","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_1_listener","_r37","presetsMenuVisible","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_3_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_7_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_9_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_11_listener","sanitize","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_6_listener","_r33","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_colorPickerChange_9_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_9_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_input_19_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_19_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template","DataTableComponent_ul_7_li_2_div_5_div_5_Template_button_click_26_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_input_32_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_32_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_div_click_34_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template","dropdown_r38","_c5","DataTableComponent_ul_7_li_2_div_5_Template_div_click_1_listener","_r32","DataTableComponent_ul_7_li_2_div_5_span_2_Template","DataTableComponent_ul_7_li_2_div_5_div_5_Template","DataTableComponent_ul_7_li_2_div_6_Template_div_click_1_listener","_r39","DataTableComponent_ul_7_li_2_div_6_span_2_Template","DataTableComponent_ul_7_li_2_div_6_span_3_Template","DataTableComponent_ul_7_li_2_div_6_span_4_Template","DataTableComponent_ul_7_li_2_div_6_span_5_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_3_span_1_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_4_span_1_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_5_span_1_Template","DataTableComponent_ul_7_li_2_div_7_Template_div_click_1_listener","_r40","showSubtechniquesType","showSubtechniquesTypeAlgorithm","DataTableComponent_ul_7_li_2_div_7_ng_container_3_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_4_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_5_Template","_c6","_c7","DataTableComponent_ul_7_li_2_div_12_div_10_Template_input_ngModelChange_1_listener","control_r43","_r42","DataTableComponent_ul_7_li_2_div_12_Template_input_ngModelChange_3_listener","_r41","DataTableComponent_ul_7_li_2_div_12_div_10_Template","dropdown_r44","layerControlsList","DataTableComponent_ul_7_li_2_div_1_Template","DataTableComponent_ul_7_li_2_div_2_Template","DataTableComponent_ul_7_li_2_div_3_Template","DataTableComponent_ul_7_li_2_div_4_Template","DataTableComponent_ul_7_li_2_div_5_Template","DataTableComponent_ul_7_li_2_div_6_Template","DataTableComponent_ul_7_li_2_div_7_Template","DataTableComponent_ul_7_li_2_Template_div_click_9_listener","_r16","handleLayerControlsSettingsDropdown","DataTableComponent_ul_7_li_2_Template_div_keydown_9_listener","handleKeyDownLayer","DataTableComponent_ul_7_li_2_div_12_Template","DataTableComponent_ul_7_li_3_div_1_Template_div_click_1_listener","_r46","setSelectedState","DataTableComponent_ul_7_li_3_div_1_span_2_Template","DataTableComponent_ul_7_li_3_div_2_div_5_div_4_Template_div_click_0_listener","color_r50","_r49","DataTableComponent_ul_7_li_3_div_2_div_5_Template_div_click_2_listener","_r48","DataTableComponent_ul_7_li_3_div_2_div_5_div_4_Template","dropdown_r51","DataTableComponent_ul_7_li_3_div_2_Template_div_click_1_listener","_r47","continue","DataTableComponent_ul_7_li_3_div_2_span_2_Template","DataTableComponent_ul_7_li_3_div_2_div_5_Template","DataTableComponent_ul_7_li_3_div_3_div_5_Template_input_ngModelChange_5_listener","_r53","scoreEditField","DataTableComponent_ul_7_li_3_div_3_div_5_Template_input_input_5_listener","target","DataTableComponent_ul_7_li_3_div_3_div_5_mat_hint_6_Template","dropdown_r54","validateScoreInput","DataTableComponent_ul_7_li_3_div_3_Template_div_click_1_listener","_r52","DataTableComponent_ul_7_li_3_div_3_span_2_Template","DataTableComponent_ul_7_li_3_div_3_div_5_Template","DataTableComponent_ul_7_li_3_div_4_div_5_Template_textarea_ngModelChange_5_listener","_r56","commentEditField","DataTableComponent_ul_7_li_3_div_4_div_5_Template_textarea_input_5_listener","dropdown_r57","DataTableComponent_ul_7_li_3_div_4_Template_div_click_1_listener","_r55","DataTableComponent_ul_7_li_3_div_4_span_2_Template","DataTableComponent_ul_7_li_3_div_4_div_5_Template","dropdown_r59","ɵɵpureFunction2","_c8","DataTableComponent_ul_7_li_3_div_5_Template_div_click_1_listener","_r58","DataTableComponent_ul_7_li_3_div_5_span_2_Template","DataTableComponent_ul_7_li_3_div_5_div_5_Template","dropdown_r61","_c9","DataTableComponent_ul_7_li_3_div_6_Template_div_click_1_listener","_r60","DataTableComponent_ul_7_li_3_div_6_span_2_Template","DataTableComponent_ul_7_li_3_div_6_div_5_Template","DataTableComponent_ul_7_li_3_div_7_Template_div_click_1_listener","_r62","populateEditFields","DataTableComponent_ul_7_li_3_div_7_span_2_Template","DataTableComponent_ul_7_li_3_div_12_div_10_Template_input_ngModelChange_1_listener","control_r65","_r64","DataTableComponent_ul_7_li_3_div_12_Template_input_ngModelChange_3_listener","_r63","DataTableComponent_ul_7_li_3_div_12_div_10_Template","dropdown_r66","techniqueControlsList","DataTableComponent_ul_7_li_3_div_1_Template","DataTableComponent_ul_7_li_3_div_2_Template","DataTableComponent_ul_7_li_3_div_3_Template","DataTableComponent_ul_7_li_3_div_4_Template","DataTableComponent_ul_7_li_3_div_5_Template","DataTableComponent_ul_7_li_3_div_6_Template","DataTableComponent_ul_7_li_3_div_7_Template","DataTableComponent_ul_7_li_3_Template_div_click_9_listener","_r45","handleTechniqueControlsSettingsDropdown","DataTableComponent_ul_7_li_3_Template_div_keydown_9_listener","handleKeyDownTechnique","DataTableComponent_ul_7_li_3_div_12_Template","DataTableComponent_ul_7_li_4_div_1_Template_div_click_1_listener","_r67","updateStickyToolbar","DataTableComponent_ul_7_li_4_div_1_span_2_Template","DataTableComponent_ul_7_li_4_div_1_span_3_Template","DataTableComponent_ul_7_li_4_div_1_Template","DataTableComponent_ul_7_li_1_Template","DataTableComponent_ul_7_li_2_Template","DataTableComponent_ul_7_li_3_Template","DataTableComponent_ul_7_li_4_Template","getFeatureGroup","matrix_r68","DataTableComponent_ng_template_14_div_1_div_1_Template","DataTableComponent_ng_template_14_div_1_div_2_Template","DataTableComponent_ng_template_14_div_1_div_3_Template","DataTableComponent_ng_template_14_div_1_div_4_Template","DataTableComponent_ng_template_14_div_1_Template","DataTableComponent_div_18_Template_div_click_0_listener","_r69","showingLegend","DataTableComponent_div_19_div_11_Template_input_colorPickerChange_1_listener","item_r72","_r71","DataTableComponent_div_19_div_11_Template_input_ngModelChange_1_listener","DataTableComponent_div_19_div_11_Template_input_ngModelChange_3_listener","DataTableComponent_div_19_div_11_Template_button_click_4_listener","i_r73","DataTableComponent_div_19_Template_div_click_1_listener","_r70","DataTableComponent_div_19_Template_button_click_7_listener","DataTableComponent_div_19_Template_button_click_9_listener","DataTableComponent_div_19_div_11_Template","layerDomainVersion","tabs","sanitizer","dropdownChange","onScroll","customContextMenuItems","previousScrollTop","headerHeight","footerHeight","controlsHeight","isScrollUp","handleScroll","e","diff","scrollRef","nativeElement","scrollTop","calculateScrollHeight","tabOffset","emit","scrollWindowHeight","style","height","previousControlSection","showHelpDropDown","selectionChangeSubscription","onSelectionChange","subscribe","onTechniqueSelect","includedControls","featureList","j","subfeatures","display_name","ngAfterViewInit","document","querySelector","offsetHeight","addEventListener","ngOnDestroy","unsubscribe","body","removeEventListener","event","preventDefault","control","subfeature","saveBlob","blob","filename","nav","window","msSaveOrOpenBlob","svgUrl","URL","createObjectURL","downloadLink","createElement","href","download","appendChild","click","removeChild","json","Blob","type","saveLayerJson_helper","myarr","styleCells","cell","getDisplayName","alignment","vertical","horizontal","fill","pattern","fgColor","argb","substring","font","mostReadable","toHex","note","border","top","bottom","left","right","workbook","Workbook","worksheet","addWorksheet","saveLayerExcel_helper","xlsx","writeBuffer","then","columns","header","tacticCol","getColumn","techniqueCells","subtechniqueList","subtechniqueCells","techniqueRow","excelIndex","addSubtechniqueCells","mergeCells","findIndex","col","subtechniqueCol","letter","styleTechniqueCells","styleTacticHeaders","getRow","bold","column","techniqueList","seen","eachCell","row","width","handleDescriptionDropdown","toggleShowControlsBar","controlType","expandSubtechniques","showAnnotatedOnly","collapseSubtechniques","log","currentState","bypassSecurityTrustStyle","result","dropdown","anchor","parentNode","getBoundingClientRect","clientWidth","openSVGDialog","DataService","DomSanitizer","ViewModelsService","DataTableComponent_Query","DataTableComponent_div_4_Template","DataTableComponent_div_5_Template","DataTableComponent_div_6_Template","DataTableComponent_ul_7_Template","DataTableComponent_div_13_Template","DataTableComponent_ng_template_14_Template","ɵɵtemplateRefExtractor","DataTableComponent_div_18_Template","DataTableComponent_div_19_Template","getFeatureGroupCount","loadMatrices_r74","HelpComponent_ul_11_li_1_Template_a_click_1_listener","heading_r3","_r2","ctx_r3","scrollTo","ɵɵclassMapInterpolate1","level","HelpComponent_ul_11_li_1_Template","headingAnchors","renderer","setTimeout","heading","text","img","escapedText","html","listenObj","onMarkdownLoad","markdownElement","listen","element","tagName","el","linkURL","getAttribute","charAt","openLayerDialog","open","scrollIntoView","behavior","block","inline","autoFocus","panelClass","Renderer2","HelpComponent_Query","HelpComponent_Template_button_click_5_listener","HelpComponent_ul_11_Template","HelpComponent_Template_markdown_load_12_listener","layerFormatLink","decls","vars","consts","template","LayerInformationComponent_Template","LayerSettingsComponent_For_56_Template_input_ngModelChange_1_listener","option_r3","LayerSettingsComponent_For_91_Template_input_ngModelChange_1_listener","option_r5","inputs","LayerSettingsComponent_Template","LayerSettingsComponent_Template_input_ngModelChange_12_listener","LayerSettingsComponent_Template_textarea_ngModelChange_17_listener","LayerSettingsComponent_Template_input_ngModelChange_22_listener","LayerSettingsComponent_Template_input_ngModelChange_27_listener","ɵɵrepeaterCreate","LayerSettingsComponent_For_56_Template","ɵɵrepeaterTrackByIdentity","LayerSettingsComponent_Template_input_ngModelChange_64_listener","LayerSettingsComponent_Template_input_ngModelChange_68_listener","LayerSettingsComponent_Template_input_ngModelChange_79_listener","LayerSettingsComponent_Template_input_ngModelChange_83_listener","LayerSettingsComponent_For_91_Template","LayerSettingsComponent_Template_button_click_94_listener","_c0","ɵɵrepeater","Cell","isCurrentVersion","isDraggable","highlight","unhighlight","onClick","selectionChanged","getClass","theclass","section","features","ɵɵInheritDefinitionFeature","ChangelogCellComponent_Template","ChangelogCellComponent_Template_div_click_1_listener","ChangelogCellComponent_Template_div_mouseenter_1_listener","ChangelogCellComponent_Template_div_mouseleave_1_listener","getTechniqueBackground","commentColor","getTechniqueTextColor","QueryList","MatPaginator","getHeader","section_r3","desc_r5","LayerUpgradeComponent_mat_step_19_div_4_div_3_Template_input_ngModelChange_1_listener","LayerUpgradeComponent_mat_step_19_div_4_div_3_Template_input_change_1_listener","applyFilters","disableFilter","ɵɵpropertyInterpolate","getPreservedURL","attackID_r9","ɵɵsanitizeUrl","oldTechnique_r11","tactic_r10","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_1_div_1_Template","getTactics","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_span_2_Template_span_click_0_listener","_r15","tactic_r13","newTechnique_r14","ngIf","clearAnnotations","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_Template_div_dndDrop_0_listener","onDrop","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_span_2_Template","isAnnotated","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_Template","tactic_r16","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_2_Template_button_click_1_listener","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_2_Template_button_click_4_listener","isCopied","anyAnnotated","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_2_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_3_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_2_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_3_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_Template_input_click_7_listener","panel_r18","ɵɵreference","reviewedChanged","tacticsChanged","isReviewed","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_mat_icon_4_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_mat_icon_5_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_Template","ɵɵtextInterpolate2","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_Template","filteredIDs","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_Template","loading","LayerUpgradeComponent_mat_step_19_div_4_div_3_Template","LayerUpgradeComponent_mat_step_19_div_4_Template_input_change_4_listener","reviewAll","LayerUpgradeComponent_mat_step_19_div_4_Template_input_change_7_listener","expandAll","LayerUpgradeComponent_mat_step_19_div_4_div_10_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_Template","LayerUpgradeComponent_mat_step_19_div_4_Template_mat_paginator_page_12_listener","stepper_r19","sections","selectedIndex","sectionLength","countReviewed","LayerUpgradeComponent_mat_step_19_button_9_Template_button_click_0_listener","onStepChange","LayerUpgradeComponent_mat_step_19_ng_template_1_Template","LayerUpgradeComponent_mat_step_19_div_2_Template","LayerUpgradeComponent_mat_step_19_div_4_Template","LayerUpgradeComponent_mat_step_19_div_5_Template","LayerUpgradeComponent_mat_step_19_span_8_Template","LayerUpgradeComponent_mat_step_19_button_9_Template","LayerUpgradeComponent_mat_step_19_Template_button_click_10_listener","getDescription","changelog","ɵɵtextInterpolate3","section_r21","LayerUpgradeComponent_div_28_span_3_Template","LayerUpgradeComponent_div_28_span_4_Template","LayerUpgradeComponent_div_28_span_5_Template","paginators","paginator_map","descriptions","finish","s","wait","toUpperCase","join","search","sectionIDs","paginator","toArray","pageIndex","pageSize","start","end","slice","offset","nextSection","vm","all_techniques","revokedByID","revokingObject","oldTechnique","newTechnique","sortArray","oldTactics","newTactics","panel","expanded","filtered_expand_visible_section","getElementById","panels","checked","close","filtered_review_all_section","sectionID","technique_tactic_ids","toTactic","validTechnique","fromTvm","toTvm","closeSidebar","LayerUpgradeComponent_Query","LayerUpgradeComponent_mat_step_19_Template","LayerUpgradeComponent_ng_template_21_Template","LayerUpgradeComponent_div_28_Template","LayerUpgradeComponent_Template_button_click_33_listener","ListInputComponent_div_1_div_1_Template_button_click_1_listener","i_r2","ctx_r2","removeDivider","ListInputComponent_div_1_div_2_Template_button_click_1_listener","addDivider","item_r6","config","valueField","nameField","ListInputComponent_div_1_div_3_Template_input_ngModelChange_4_listener","ListInputComponent_div_1_div_3_Template_input_input_4_listener","updateList","ListInputComponent_div_1_div_3_Template_input_ngModelChange_8_listener","ListInputComponent_div_1_div_3_Template_input_input_8_listener","ListInputComponent_div_1_div_3_a_9_Template","ListInputComponent_div_1_div_3_Template_button_click_11_listener","remove","includeLinks","ListInputComponent_div_1_div_1_Template","ListInputComponent_div_1_div_2_Template","ListInputComponent_div_1_div_3_Template","canAddDivider","fieldToClass","list","ListInputComponent_Template","ListInputComponent_div_1_Template","ListInputComponent_Template_button_click_3_listener","showContextmenu","isDarkTheme","matchMedia","matches","isHighlighted","idToMatch","isTacticMatching","elements","querySelectorAll","hasNotes","emulate_alpha","cell_color","cell_color_alpha","getAlpha","setAlpha","mix","getTechniqueUnderlineColor","metadataColor","linkColor","background","MatrixCommon","onTechniqueLeftClick","shift","ctrl","meta","onToggleSubtechniquesVisible","onTechniqueHighlight","onTechniqueUnhighlight","onTacticClick","getTacticBackground","MatrixFlatComponent_td_3_Template_a_click_1_listener","tactic_r2","MatrixFlatComponent_td_5_ng_container_2_Template","tactic_r4","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_leftclick_1_listener","technique_r6","tactic_r7","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_rightclick_1_listener","onTechniqueRightClick","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_highlight_1_listener","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_unhighlight_1_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_td_2_Template_td_click_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_leftclick_0_listener","subtechnique_r11","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_rightclick_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_highlight_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_unhighlight_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_td_2_Template","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_leftclick_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_rightclick_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_highlight_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_unhighlight_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_td_6_Template","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template","supertechnique_r12","MatrixFlatComponent_td_8_ng_container_1_Template","MatrixFlatComponent_Template","MatrixFlatComponent_td_3_Template","MatrixFlatComponent_td_5_Template","MatrixFlatComponent_td_8_Template","tactic_r1","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_leftclick_1_listener","subtechnique_r7","tactic_r5","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_rightclick_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_highlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_unhighlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_leftclick_2_listener","technique_r4","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_rightclick_2_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_highlight_2_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_unhighlight_2_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_leftclick_1_listener","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_rightclick_1_listener","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_highlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_unhighlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template","elseblock_r9","MatrixMiniComponent_td_6_ng_container_1_Template","MatrixMiniComponent_Template","MatrixMiniComponent_td_3_Template","MatrixMiniComponent_td_6_Template","MatrixSideComponent_td_3_Template_a_click_1_listener","MatrixSideComponent_td_5_ng_container_2_Template","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_leftclick_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_rightclick_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_highlight_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_unhighlight_1_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_leftclick_3_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_rightclick_3_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_highlight_3_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_unhighlight_3_listener","MatrixSideComponent_td_8_tr_2_td_5_Template_td_click_0_listener","ɵɵclassMapInterpolate2","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_leftclick_1_listener","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_rightclick_1_listener","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_highlight_1_listener","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_unhighlight_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template","MatrixSideComponent_td_8_tr_2_ng_template_3_Template","MatrixSideComponent_td_8_tr_2_td_5_Template","MatrixSideComponent_td_8_tr_2_div_8_Template","MatrixSideComponent_td_8_tr_2_Template","MatrixSideComponent_Template","MatrixSideComponent_td_3_Template","MatrixSideComponent_td_5_Template","MatrixSideComponent_td_8_Template","ctx_r0","TacticCellComponent_Template","TacticCellComponent_ng_container_1_Template","TacticCellComponent_div_2_Template","TacticCellComponent_ng_container_3_Template","CellPopover","theElement","getPosition","boundingRect","halfWidth","innerWidth","halfHeight","innerHeight","position","ContextmenuComponent_div_9_Template_div_click_1_listener","select","ContextmenuComponent_div_9_Template_div_click_3_listener","addSelection","ContextmenuComponent_div_9_Template_div_click_5_listener","removeSelection","ContextmenuComponent_div_10_Template_div_click_1_listener","selectAll","ContextmenuComponent_div_10_Template_div_click_3_listener","deselectAll","ContextmenuComponent_div_10_Template_div_click_5_listener","ContextmenuComponent_div_11_Template_div_click_1_listener","ContextmenuComponent_div_11_Template_div_click_3_listener","ContextmenuComponent_div_12_Template_div_click_1_listener","selectAllInTactic","ContextmenuComponent_div_12_Template_div_click_3_listener","deselectAllInTactic","ContextmenuComponent_div_18_div_1_Template_div_click_0_listener","contextMenuItem_r7","openCustomContextMenuItem","ContextmenuComponent_div_18_div_1_Template","contextMenuItems","ContextmenuComponent_div_19_div_1_div_1_Template_div_click_0_listener","link_r9","openLink","ContextmenuComponent_div_19_div_1_div_1_Template","ContextmenuComponent_div_19_div_1_ng_template_2_Template","divider_r10","ContextmenuComponent_div_19_div_1_Template","placement","closeContextmenu","viewTechnique","viewTactic","pinCell","pinnedCell","customItem","ElementRef","outputs","ContextmenuComponent_Template","ContextmenuComponent_Template_div_contextmenu_0_listener","ContextmenuComponent_Template_div_click_1_listener","ContextmenuComponent_Template_div_click_7_listener","ContextmenuComponent_div_9_Template","ContextmenuComponent_div_10_Template","ContextmenuComponent_div_11_Template","ContextmenuComponent_div_12_Template","ContextmenuComponent_Template_div_click_14_listener","ContextmenuComponent_Template_div_click_16_listener","ContextmenuComponent_div_18_Template","ContextmenuComponent_div_19_Template","annotatedSubtechniques","TechniqueCellComponent_ng_container_6_sub_1_Template","TechniqueCellComponent_app_contextmenu_8_Template_app_contextmenu_close_0_listener","onMouseLeave","isCellPinned","showTooltip","leftclick","annotatedSubs","subVM","onMouseEnter","onLeftClick","shiftKey","ctrlKey","metaKey","x","pageX","y","pageY","onRightClick","TechniqueCellComponent_Template","TechniqueCellComponent_Template_div_click_1_listener","TechniqueCellComponent_Template_div_contextmenu_1_listener","TechniqueCellComponent_Template_div_mouseenter_1_listener","TechniqueCellComponent_Template_div_mouseleave_1_listener","TechniqueCellComponent_ng_container_3_Template","TechniqueCellComponent_div_4_Template","TechniqueCellComponent_ng_container_5_Template","TechniqueCellComponent_ng_container_6_Template","TechniqueCellComponent_app_tooltip_7_Template","TechniqueCellComponent_app_contextmenu_8_Template","TooltipComponent_span_6_Template_span_click_0_listener","unpin","note_r3","TooltipComponent_tr_11_td_1_Template","metadata_r4","TooltipComponent_tr_12_td_1_Template","TooltipComponent_tr_12_td_2_Template","TooltipComponent_tr_12_td_3_Template","getPlacement","TooltipComponent_Template","TooltipComponent_span_6_Template","TooltipComponent_tr_7_Template","TooltipComponent_tr_8_Template","TooltipComponent_tr_9_Template","TooltipComponent_tr_10_Template","TooltipComponent_tr_11_Template","TooltipComponent_tr_12_Template","SearchAndMultiselectComponent_div_12_Template_input_click_1_listener","field_r2","toggleFieldEnabled","result_r6","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_td_mouseenter_1_listener","mouseEnter","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_td_mouseleave_1_listener","mouseLeave","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_span_2_Template","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_button_click_8_listener","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_button_click_11_listener","deselect","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template","techniqueResults","SearchAndMultiselectComponent_ng_template_22_Template_button_click_2_listener","SearchAndMultiselectComponent_ng_template_22_Template_button_click_4_listener","SearchAndMultiselectComponent_ng_template_22_table_7_Template","SearchAndMultiselectComponent_ng_template_22_ng_template_8_Template","noTechniquesResults_r7","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_td_mouseenter_1_listener","stixObject_r12","_r11","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_td_mouseleave_1_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_button_click_7_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_button_click_10_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template","stixType_r10","objects","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_Template_button_click_1_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_Template_button_click_3_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_Template","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_ng_template_7_Template","noResults_r13","SearchAndMultiselectComponent_mat_expansion_panel_23_Template_mat_expansion_panel_click_0_listener","userClickedExpand","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_Template","expandedPanels","i_r14","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_td_mouseenter_1_listener","label_r17","mouseEnterAll","stixDataComponents","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_td_mouseleave_1_listener","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_button_click_7_listener","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_button_click_10_listener","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template","stixDataComponentLabels","SearchAndMultiselectComponent_ng_template_30_Template_button_click_1_listener","stixDataComponentsResults","SearchAndMultiselectComponent_ng_template_30_Template_button_click_3_listener","SearchAndMultiselectComponent_ng_template_30_table_6_Template","SearchAndMultiselectComponent_ng_template_30_ng_template_7_Template","noResults_r18","query","newQuery","_query","debounceFunction","getResults","previousQuery","queryLength","results","stixTypes","fields","filterAndSort","items","sortTechniquesAndSubtechniques","tA","tB","c1","c2","seenIDs","filterAndSortLabels","labels","r","fieldToggled","getTechniques","getStixData","expandPanels","isPrevExpanded","isExpanded","isAllCollapsed","isPanelExpanded","allTechniques","c","keys","thefield","isTechnique","getRelated","stixObject","isTechniqueArray","SearchAndMultiselectComponent_Template","SearchAndMultiselectComponent_Template_input_ngModelChange_6_listener","SearchAndMultiselectComponent_div_12_Template","SearchAndMultiselectComponent_Template_mat_expansion_panel_click_16_listener","SearchAndMultiselectComponent_ng_template_22_Template","SearchAndMultiselectComponent_mat_expansion_panel_23_Template","SearchAndMultiselectComponent_Template_mat_expansion_panel_click_24_listener","SearchAndMultiselectComponent_ng_template_30_Template","SearchAndMultiselectComponent_Template_button_click_33_listener","catchError","switchMap","tap","of","subtechniquesEnabled","http","entries","customizefeatureList","featureGroups","featureName","featureGroup","subFeatures","count","f","setFeature","subFeatureName","Object","fieldname","setFeature_object","featureObject","override","hasOwnProperty","isFeature","isFeatureGroup","featureGroupName","getAllFragments","location","fragments","regex","exec","validateConfig","collection_index_url","pipe","defaultLayers","banner","feature","err","message","collectionIndex","toPromise","ɵɵinject","HttpClient","factory","ɵfac","providedIn","HttpHeaders","Buffer","forkJoin","TaxiiConnect","Collection","domains","setUpDomains","parseCollectionIndex","parseBundles","stixBundles","matrixSDOs","matrixToTechniqueSDOs","bundle","techniqueSDOs","bundleMatrices","idToTechniqueSDO","sdo","parseRelationship","x_mitre_is_subtechnique","createTechniques","matrixSDO","parsePlatforms","createMatrices","techniqueSDO","sub_id","createdMatrixIDs","techniqueIDs","sro","addRelationshipToMap","relationship_type","target_ref","source_ref","startsWith","v","addVersion","identifier","domainObject","authentication","collection","collections","domainIdentifier","getDomainIdentifier","minorVersionMap","acc","major","minor","versionName","minimumSupportedVersion","domainName","existingVersion","getDomainData","refresh","conn","collectionInfo","can_read","can_write","domainData$","getObjects","bundleData","httpOptions","headers","token","serviceName","apiKey","Authorization","loadDomainData","dataPromise","Promise","resolve","reject","subscription","complete","d","isSupported","supported","compareVersions","oldDomain","newDomain","previousTechniques","latestTechniques","objectLookup","latestTechnique","prevTechnique","matIconRegistry","domSanitizer","loadIcons","Icons","iconKeys","iconUrl","addSvgIcon","bypassSecurityTrustResourceUrl","MatIconRegistry","evaluate","isBoolean","isNumber","nonce","newViewModel","getNonce","destroyViewModel","layerOperation","scoreVariables","layerName","opSettings","scoreExpression","minScore","Infinity","maxScore","newTechniqueVM","scope","misses","scoreValue","mathResult","inherit","inheritVM","fieldName","commentVM","linkVM","metadataVM","coloringVM","enabledVM","filterVM","legendVM","gradientVM","SidebarComponent_div_1_div_2_div_1_Template","SidebarComponent_div_1_div_1_Template","SidebarComponent_div_1_div_2_Template","SidebarComponent_div_1_div_3_Template","reloadToggle","ngOnChanges","ɵɵNgOnChangesFeature","SidebarComponent_Template","SidebarComponent_div_1_Template","RenderableMatrix","RenderableTactic","RenderableTechnique","heights","renderConfig","filteredTactics","filteredTechniques","yPosition","filteredSubtechniques","textColor","SvgExportComponent_div_20_Template_mat_select_ngModelChange_6_listener","orientation","SvgExportComponent_div_20_Template_mat_select_selectionChange_6_listener","buildSVG","SvgExportComponent_div_20_Template_mat_select_ngModelChange_15_listener","SvgExportComponent_div_20_Template_mat_select_selectionChange_15_listener","SvgExportComponent_div_20_Template_input_ngModelChange_32_listener","SvgExportComponent_div_20_Template_input_input_32_listener","SvgExportComponent_div_20_Template_input_ngModelChange_39_listener","SvgExportComponent_div_20_Template_input_input_39_listener","SvgExportComponent_div_20_Template_input_ngModelChange_46_listener","SvgExportComponent_div_20_Template_input_input_46_listener","unit","showHeader","SvgExportComponent_div_25_Template_mat_select_ngModelChange_6_listener","SvgExportComponent_div_25_Template_mat_select_selectionChange_6_listener","SvgExportComponent_div_25_Template_input_ngModelChange_17_listener","fontSize","SvgExportComponent_div_25_Template_input_input_17_listener","SvgExportComponent_div_25_div_18_Template","SvgExportComponent_div_25_Template_input_ngModelChange_20_listener","autofitText","SvgExportComponent_div_25_Template_input_change_20_listener","maxTextSize","SvgExportComponent_div_30_Template_input_ngModelChange_3_listener","legendDocked","SvgExportComponent_div_30_Template_input_change_3_listener","SvgExportComponent_div_30_Template_input_ngModelChange_10_listener","legendX","SvgExportComponent_div_30_Template_input_input_10_listener","SvgExportComponent_div_30_Template_input_ngModelChange_17_listener","legendY","SvgExportComponent_div_30_Template_input_input_17_listener","SvgExportComponent_div_30_Template_input_ngModelChange_24_listener","legendWidth","SvgExportComponent_div_30_Template_input_input_24_listener","SvgExportComponent_div_30_Template_input_ngModelChange_31_listener","legendHeight","SvgExportComponent_div_30_Template_input_input_31_listener","SvgExportComponent_div_35_li_26_Template_mat_select_ngModelChange_4_listener","SvgExportComponent_div_35_li_26_Template_mat_select_selectionChange_4_listener","SvgExportComponent_div_35_Template_input_ngModelChange_3_listener","SvgExportComponent_div_35_Template_input_change_3_listener","SvgExportComponent_div_35_Template_input_ngModelChange_7_listener","showAbout","SvgExportComponent_div_35_Template_input_change_7_listener","SvgExportComponent_div_35_Template_input_ngModelChange_11_listener","showDomain","SvgExportComponent_div_35_Template_input_change_11_listener","SvgExportComponent_div_35_Template_input_ngModelChange_15_listener","showFilters","SvgExportComponent_div_35_Template_input_change_15_listener","SvgExportComponent_div_35_Template_input_ngModelChange_19_listener","showLegend","SvgExportComponent_div_35_Template_input_change_19_listener","SvgExportComponent_div_35_Template_input_ngModelChange_23_listener","showGradient","SvgExportComponent_div_35_Template_input_change_23_listener","SvgExportComponent_div_35_li_26_Template","SvgExportComponent_div_35_Template_input_colorPickerChange_28_listener","tableBorderColor","SvgExportComponent_div_35_Template_input_colorPickerSelect_28_listener","hasName","hasDescription","hasDomain","hasLegendItems","hasScores","showAggregate","showDescription","showLegendContainer","showLegendInHeader","dialogRef","svgConfigDefaults","svgElementID","buildSVGDebounce","unitEnum","themeEnum","legendSectionCount","bypassDebounce","setSize","margin","toPx","svgWidth","svgHeight","svgElement","innerHTML","svg","d3","append","attr","legendSection","contents","buildGradient","buildLegend","headerSections","aboutSection","domainSection","platformSection","filterData","aggregateSection","headerGroup","headerX","scaleBand","paddingInner","range","sectionGroup","headerWidth","bandwidth","buildHeaderSection","datatable","xRange","yRange","scaleLinear","subtechniqueIndent","tacticGroups","enter","techniqueGroups","subtechniqueGroups","sidebarWidth","minFontSize","optimalFontSize","each","verticalAlignCenter","minTacticFontSize","tacticLabels","legendGroup","group","padding","boxGroup","boxTitle","bbox","node","getBBox","coverPadding","raise","boxContentGroup","align","contentWidth","subsection","contentGroup","colorScale","scaleOrdinal","call","legendColor","shapeWidth","shapePadding","shape","orient","scale","labelOffset","percent","interpolateNumber","nCells","cells","labelFormat","format","ratioMap","portrait","landscape","legal","small","medium","large","w","h","children","child","endsWith","hasAttribute","newYPosition","floor","getSpacing","distance","divisions","res","spacing","insertLineBreaks","words","center","firstChild","division","tspan","findSize","maxFontSize","textHeight","longestWordLength","word","textWidth","optimalSize","wordArrangement","num_breaks","breaks","findBreaks","wordList","spaces","initial_breaks","recurse","currPlacement","depth","quantity","factor","downloadSVG","setAttribute","preface","svgData","XMLSerializer","serializeToString","svgBlob","MatDialogRef","SvgExportComponent_Template","SvgExportComponent_li_3_Template","SvgExportComponent_Template_div_click_6_listener","SvgExportComponent_span_7_Template","SvgExportComponent_span_8_Template","SvgExportComponent_Template_div_click_11_listener","SvgExportComponent_Template_div_click_17_listener","SvgExportComponent_div_20_Template","SvgExportComponent_Template_div_click_22_listener","SvgExportComponent_div_25_Template","SvgExportComponent_Template_div_click_27_listener","SvgExportComponent_div_30_Template","SvgExportComponent_Template_div_click_32_listener","SvgExportComponent_div_35_Template","SvgExportComponent_Template_div_click_38_listener","HeaderSectionContent","HeaderSection","isSafari","bannerContent","ɵɵsanitizeHtml","TabsComponent_div_7_Template_button_click_1_listener","TabsComponent_div_7_Template_button_click_3_listener","TabsComponent_a_10_button_2_Template_button_click_0_listener","tab_r5","closeTab","indexToChar","$i_r7","TabsComponent_a_10_Template_a_click_0_listener","handleTabClick","TabsComponent_a_10_button_2_Template","TabsComponent_a_10_span_3_Template","activeTab","isAlphabetical","TabsComponent_a_11_Template_a_click_0_listener","newBlankTab","TabsComponent_div_14_Template_button_click_1_listener","TabsComponent_ng_template_15_Template_button_click_10_listener","safariDialogRef","TabsComponent_ng_template_17_Template_a_click_12_listener","TabsComponent_ng_template_17_Template_a_click_15_listener","TabsComponent_ng_template_17_Template_button_click_17_listener","versionDialogRef","data_r12","objVersion","globalVersion","TabsComponent_ng_template_19_button_34_Template_button_click_0_listener","domain_r16","newLayer","nVersion_r17","nDomain_r18","domain_r19","$i_r22","tab_r21","TabsComponent_ng_template_19_ul_140_li_1_Template","vm_r23","vm_r24","vm_r25","vm_r26","vm_r27","vm_r28","vm_r29","vm_r30","TabsComponent_ng_template_19_li_261_Template_input_ngModelChange_4_listener","i_r32","layerLinkURLs","TabsComponent_ng_template_19_li_261_Template_button_click_5_listener","removeLayerLink","TabsComponent_ng_template_19_ng_container_272_div_1_Template_mat_checkbox_ngModelChange_2_listener","feature_r34","TabsComponent_ng_template_19_ng_container_272_div_1_Template","TabsComponent_ng_template_19_Template_button_click_10_listener","TabsComponent_ng_template_19_Template_button_click_12_listener","TabsComponent_ng_template_19_Template_button_click_14_listener","select_r14","TabsComponent_ng_template_19_Template_mat_select_selectionChange_17_listener","handleUserThemeChange","TabsComponent_ng_template_19_button_34_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_44_listener","nVersion","TabsComponent_ng_template_19_mat_option_47_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_51_listener","nDomain","TabsComponent_ng_template_19_mat_option_54_Template","TabsComponent_ng_template_19_Template_input_ngModelChange_64_listener","loadData","TabsComponent_ng_template_19_Template_input_ngModelChange_68_listener","TabsComponent_ng_template_19_Template_input_ngModelChange_74_listener","TabsComponent_ng_template_19_Template_button_click_79_listener","TabsComponent_ng_template_19_Template_button_click_83_listener","newLayerFromURL","TabsComponent_ng_template_19_Template_button_click_93_listener","openUploadPrompt","TabsComponent_ng_template_19_Template_input_change_95_listener","loadLayerFromFile","TabsComponent_ng_template_19_Template_input_ngModelChange_103_listener","loadURL","TabsComponent_ng_template_19_Template_button_click_104_listener","loadLayerFromURL","TabsComponent_ng_template_19_Template_mat_expansion_panel_opened_107_listener","TabsComponent_ng_template_19_Template_mat_expansion_panel_closed_107_listener","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_119_listener","TabsComponent_ng_template_19_mat_option_120_Template","TabsComponent_ng_template_19_Template_input_ngModelChange_130_listener","TabsComponent_ng_template_19_Template_input_keyup_130_listener","TabsComponent_ng_template_19_ul_140_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_146_listener","TabsComponent_ng_template_19_mat_option_149_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_159_listener","TabsComponent_ng_template_19_mat_option_162_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_172_listener","TabsComponent_ng_template_19_mat_option_175_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_185_listener","TabsComponent_ng_template_19_mat_option_188_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_198_listener","TabsComponent_ng_template_19_mat_option_201_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_211_listener","TabsComponent_ng_template_19_mat_option_214_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_224_listener","TabsComponent_ng_template_19_mat_option_227_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_237_listener","TabsComponent_ng_template_19_mat_option_240_Template","TabsComponent_ng_template_19_Template_button_click_246_listener","layerByOperation","TabsComponent_ng_template_19_li_261_Template","TabsComponent_ng_template_19_Template_button_click_263_listener","addLayerLink","TabsComponent_ng_template_19_ng_container_272_Template","TabsComponent_ng_template_19_Template_input_click_277_listener","selectLayerLink","TabsComponent_ng_template_19_Template_button_click_278_listener","copyLayerLink","TabsComponent_ng_template_19_mat_hint_281_Template","latestDomains","filterDomains","getScoreExpressionError","layerTabs","getFilteredVMs","trackByFunction","getLayerLink","copiedRecently","TabsComponent_ng_template_20_Template_DataTable_dropdownChange_0_listener","_r35","dropdownEnabled","TabsComponent_ng_template_20_Template_DataTable_onScroll_0_listener","adjustHeader","snackBar","onUserThemeChange","adjustedHeaderHeight","loadTabs","selectTab","safariWarning","disableClose","userTheme","newHeight","_this","_asyncToGenerator","getNamedFragmentValue","bundleVersion","bundleDomain","layerURLs","first","openTab","forceNew","tab","closeActiveTab","allowNoTab","action","hasFeature","dialogName","settings","maxWidth","getUniqueLayerName","root","isInteger","str","n","substr","domainID","validateInput","exists","TypeError","viewModelIndex","fromCharCode","charToIndex","char","currChar","vms","noMatch","input","versionUpgradeDialog","currVersion","vmVersion","afterClosed","upgrade","oldID","newID","upgradeLayer","oldViewModel","serialized","loads","dataSubscription","old","new","catch","files","readJSONFile","file","_this2","reader","FileReader","onload","_ref","loadObjAsLayer","_ref2","layerObj","layerVersionStr","versionMismatchWarning","_x2","apply","arguments","layerFile","_x","readAsText","_this3","globalVersionSplit","snackMessage","versionMinorSnackbarRef","duration","onAction","versionWarning","_this4","_ref3","_ref4","loadLayerAsync","_ref5","_x6","_x5","_x3","_x4","layerLinkURL","encodeURIComponent","copyText","execCommand","test","RegExp","decodeURIComponent","MatSnackBar","TabsComponent_Query","TabsComponent_Template","TabsComponent_div_1_Template","TabsComponent_Template_div_click_3_listener","TabsComponent_div_7_Template","TabsComponent_a_10_Template","TabsComponent_a_11_Template","TabsComponent_div_14_Template","TabsComponent_ng_template_15_Template","TabsComponent_ng_template_17_Template","TabsComponent_ng_template_19_Template","TabsComponent_ng_template_20_Template","tabPanel_r36","expirationDays","Date","setTime","getTime","expires","toUTCString","cookie","decodedCookie","ca","appPackageInfo","user","password","timeout","baseURL","withoutLastSlash","hash","btoa","mediaType","getConfig","method","Headers","Accept","getStixConfig","timeoutPromise","promise","fetchTimeout","fetch","asyncFetch","path","fullPath","asQueryString","fetchThis","conf","flag","cache","withLastSlash","k","api_root_path","colOptions","objsOptions","objOptions","manOptions","ifCanRead","func","ifCanWrite","theConfig","Range","detect","comparatorFn","<","<=",">",">=","browser","compRange","compare","comp","NaN","op","upgradeVersion","ɵɵProvidersFeature","VersionUpgradeComponent_Template","VersionUpgradeComponent_em_6_Template","VersionUpgradeComponent_Template_button_click_8_listener","VersionUpgradeComponent_Template_button_click_10_listener","environment","production","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[85]} \ No newline at end of file diff --git a/site/mitre/polyfills.js b/docs/mitre/polyfills.js similarity index 100% rename from site/mitre/polyfills.js rename to docs/mitre/polyfills.js diff --git a/site/mitre/polyfills.js.map b/docs/mitre/polyfills.js.map similarity index 100% rename from site/mitre/polyfills.js.map rename to docs/mitre/polyfills.js.map diff --git a/site/mitre/roboto-cyrillic-400-normal.woff b/docs/mitre/roboto-cyrillic-400-normal.woff similarity index 100% rename from site/mitre/roboto-cyrillic-400-normal.woff rename to docs/mitre/roboto-cyrillic-400-normal.woff diff --git a/site/mitre/roboto-cyrillic-400-normal.woff2 b/docs/mitre/roboto-cyrillic-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-cyrillic-400-normal.woff2 rename to docs/mitre/roboto-cyrillic-400-normal.woff2 diff --git a/site/mitre/roboto-cyrillic-ext-400-normal.woff b/docs/mitre/roboto-cyrillic-ext-400-normal.woff similarity index 100% rename from site/mitre/roboto-cyrillic-ext-400-normal.woff rename to docs/mitre/roboto-cyrillic-ext-400-normal.woff diff --git a/site/mitre/roboto-cyrillic-ext-400-normal.woff2 b/docs/mitre/roboto-cyrillic-ext-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-cyrillic-ext-400-normal.woff2 rename to docs/mitre/roboto-cyrillic-ext-400-normal.woff2 diff --git a/site/mitre/roboto-greek-400-normal.woff b/docs/mitre/roboto-greek-400-normal.woff similarity index 100% rename from site/mitre/roboto-greek-400-normal.woff rename to docs/mitre/roboto-greek-400-normal.woff diff --git a/site/mitre/roboto-greek-400-normal.woff2 b/docs/mitre/roboto-greek-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-greek-400-normal.woff2 rename to docs/mitre/roboto-greek-400-normal.woff2 diff --git a/site/mitre/roboto-greek-ext-400-normal.woff b/docs/mitre/roboto-greek-ext-400-normal.woff similarity index 100% rename from site/mitre/roboto-greek-ext-400-normal.woff rename to docs/mitre/roboto-greek-ext-400-normal.woff diff --git a/site/mitre/roboto-greek-ext-400-normal.woff2 b/docs/mitre/roboto-greek-ext-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-greek-ext-400-normal.woff2 rename to docs/mitre/roboto-greek-ext-400-normal.woff2 diff --git a/site/mitre/roboto-latin-400-normal.woff b/docs/mitre/roboto-latin-400-normal.woff similarity index 100% rename from site/mitre/roboto-latin-400-normal.woff rename to docs/mitre/roboto-latin-400-normal.woff diff --git a/site/mitre/roboto-latin-400-normal.woff2 b/docs/mitre/roboto-latin-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-latin-400-normal.woff2 rename to docs/mitre/roboto-latin-400-normal.woff2 diff --git a/site/mitre/roboto-latin-ext-400-normal.woff b/docs/mitre/roboto-latin-ext-400-normal.woff similarity index 100% rename from site/mitre/roboto-latin-ext-400-normal.woff rename to docs/mitre/roboto-latin-ext-400-normal.woff diff --git a/site/mitre/roboto-latin-ext-400-normal.woff2 b/docs/mitre/roboto-latin-ext-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-latin-ext-400-normal.woff2 rename to docs/mitre/roboto-latin-ext-400-normal.woff2 diff --git a/site/mitre/roboto-mono-cyrillic-400-normal.woff b/docs/mitre/roboto-mono-cyrillic-400-normal.woff similarity index 100% rename from site/mitre/roboto-mono-cyrillic-400-normal.woff rename to docs/mitre/roboto-mono-cyrillic-400-normal.woff diff --git a/site/mitre/roboto-mono-cyrillic-400-normal.woff2 b/docs/mitre/roboto-mono-cyrillic-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-mono-cyrillic-400-normal.woff2 rename to docs/mitre/roboto-mono-cyrillic-400-normal.woff2 diff --git a/site/mitre/roboto-mono-cyrillic-ext-400-normal.woff b/docs/mitre/roboto-mono-cyrillic-ext-400-normal.woff similarity index 100% rename from site/mitre/roboto-mono-cyrillic-ext-400-normal.woff rename to docs/mitre/roboto-mono-cyrillic-ext-400-normal.woff diff --git a/site/mitre/roboto-mono-cyrillic-ext-400-normal.woff2 b/docs/mitre/roboto-mono-cyrillic-ext-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-mono-cyrillic-ext-400-normal.woff2 rename to docs/mitre/roboto-mono-cyrillic-ext-400-normal.woff2 diff --git a/site/mitre/roboto-mono-greek-400-normal.woff b/docs/mitre/roboto-mono-greek-400-normal.woff similarity index 100% rename from site/mitre/roboto-mono-greek-400-normal.woff rename to docs/mitre/roboto-mono-greek-400-normal.woff diff --git a/site/mitre/roboto-mono-greek-400-normal.woff2 b/docs/mitre/roboto-mono-greek-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-mono-greek-400-normal.woff2 rename to docs/mitre/roboto-mono-greek-400-normal.woff2 diff --git a/site/mitre/roboto-mono-latin-400-normal.woff b/docs/mitre/roboto-mono-latin-400-normal.woff similarity index 100% rename from site/mitre/roboto-mono-latin-400-normal.woff rename to docs/mitre/roboto-mono-latin-400-normal.woff diff --git a/site/mitre/roboto-mono-latin-400-normal.woff2 b/docs/mitre/roboto-mono-latin-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-mono-latin-400-normal.woff2 rename to docs/mitre/roboto-mono-latin-400-normal.woff2 diff --git a/site/mitre/roboto-mono-latin-ext-400-normal.woff b/docs/mitre/roboto-mono-latin-ext-400-normal.woff similarity index 100% rename from site/mitre/roboto-mono-latin-ext-400-normal.woff rename to docs/mitre/roboto-mono-latin-ext-400-normal.woff diff --git a/site/mitre/roboto-mono-latin-ext-400-normal.woff2 b/docs/mitre/roboto-mono-latin-ext-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-mono-latin-ext-400-normal.woff2 rename to docs/mitre/roboto-mono-latin-ext-400-normal.woff2 diff --git a/site/mitre/roboto-mono-vietnamese-400-normal.woff b/docs/mitre/roboto-mono-vietnamese-400-normal.woff similarity index 100% rename from site/mitre/roboto-mono-vietnamese-400-normal.woff rename to docs/mitre/roboto-mono-vietnamese-400-normal.woff diff --git a/site/mitre/roboto-mono-vietnamese-400-normal.woff2 b/docs/mitre/roboto-mono-vietnamese-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-mono-vietnamese-400-normal.woff2 rename to docs/mitre/roboto-mono-vietnamese-400-normal.woff2 diff --git a/site/mitre/roboto-vietnamese-400-normal.woff b/docs/mitre/roboto-vietnamese-400-normal.woff similarity index 100% rename from site/mitre/roboto-vietnamese-400-normal.woff rename to docs/mitre/roboto-vietnamese-400-normal.woff diff --git a/site/mitre/roboto-vietnamese-400-normal.woff2 b/docs/mitre/roboto-vietnamese-400-normal.woff2 similarity index 100% rename from site/mitre/roboto-vietnamese-400-normal.woff2 rename to docs/mitre/roboto-vietnamese-400-normal.woff2 diff --git a/site/mitre/runtime.js b/docs/mitre/runtime.js similarity index 100% rename from site/mitre/runtime.js rename to docs/mitre/runtime.js diff --git a/site/mitre/runtime.js.map b/docs/mitre/runtime.js.map similarity index 100% rename from site/mitre/runtime.js.map rename to docs/mitre/runtime.js.map diff --git a/site/mitre/scripts.js b/docs/mitre/scripts.js similarity index 100% rename from site/mitre/scripts.js rename to docs/mitre/scripts.js diff --git a/site/mitre/scripts.js.map b/docs/mitre/scripts.js.map similarity index 100% rename from site/mitre/scripts.js.map rename to docs/mitre/scripts.js.map diff --git a/site/mitre/styles.css b/docs/mitre/styles.css similarity index 100% rename from site/mitre/styles.css rename to docs/mitre/styles.css diff --git a/site/mitre/styles.css.map b/docs/mitre/styles.css.map similarity index 91% rename from site/mitre/styles.css.map rename to docs/mitre/styles.css.map index 5bcaea1..06e8432 100644 --- a/site/mitre/styles.css.map +++ b/docs/mitre/styles.css.map @@ -1 +1 @@ -{"version":3,"file":"styles.css","mappings":"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","sources":["./node_modules/@angular/material/prebuilt-themes/indigo-pink.css","./src/styles.scss","./node_modules/@fontsource/roboto/index.css","./node_modules/@fontsource/roboto-mono/index.css","./src/colors.scss"],"sourcesContent":[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, 0.1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}html{--mat-ripple-color:rgba(0, 0, 0, 0.1)}html{--mat-option-selected-state-label-text-color:#3f51b5;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-accent{--mat-option-selected-state-label-text-color:#ff4081;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-warn{--mat-option-selected-state-label-text-color:#f44336;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}html{--mat-optgroup-label-text-color:rgba(0, 0, 0, 0.87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color:#3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color:#f44336;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-app-background-color:#fafafa;--mat-app-text-color:rgba(0, 0, 0, 0.87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}.mat-theme-loaded-marker{display:none}html{--mat-option-label-text-font:Roboto, sans-serif;--mat-option-label-text-line-height:24px;--mat-option-label-text-size:16px;--mat-option-label-text-tracking:0.03125em;--mat-option-label-text-weight:400}html{--mat-optgroup-label-text-font:Roboto, sans-serif;--mat-optgroup-label-text-line-height:24px;--mat-optgroup-label-text-size:16px;--mat-optgroup-label-text-tracking:0.03125em;--mat-optgroup-label-text-weight:400}html{--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}html{--mdc-elevated-card-container-color:white;--mdc-elevated-card-container-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-color:white;--mdc-outlined-card-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-elevation:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-card-subtitle-text-color:rgba(0, 0, 0, 0.54)}html{--mat-card-title-text-font:Roboto, sans-serif;--mat-card-title-text-line-height:32px;--mat-card-title-text-size:20px;--mat-card-title-text-tracking:0.0125em;--mat-card-title-text-weight:500;--mat-card-subtitle-text-font:Roboto, sans-serif;--mat-card-subtitle-text-line-height:22px;--mat-card-subtitle-text-size:14px;--mat-card-subtitle-text-tracking:0.0071428571em;--mat-card-subtitle-text-weight:500}html{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color:#3f51b5;--mdc-linear-progress-track-color:rgba(63, 81, 181, 0.25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color:#ff4081;--mdc-linear-progress-track-color:rgba(255, 64, 129, 0.25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color:#f44336;--mdc-linear-progress-track-color:rgba(244, 67, 54, 0.25)}html{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}html{--mdc-plain-tooltip-container-color:#616161;--mdc-plain-tooltip-supporting-text-color:#fff}html{--mdc-plain-tooltip-supporting-text-font:Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size:12px;--mdc-plain-tooltip-supporting-text-weight:400;--mdc-plain-tooltip-supporting-text-tracking:0.0333333333em}html{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}html{--mdc-filled-text-field-caret-color:#3f51b5;--mdc-filled-text-field-focus-active-indicator-color:#3f51b5;--mdc-filled-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-filled-text-field-container-color:whitesmoke;--mdc-filled-text-field-disabled-container-color:#fafafa;--mdc-filled-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-error-hover-label-text-color:#f44336;--mdc-filled-text-field-error-focus-label-text-color:#f44336;--mdc-filled-text-field-error-label-text-color:#f44336;--mdc-filled-text-field-error-caret-color:#f44336;--mdc-filled-text-field-active-indicator-color:rgba(0, 0, 0, 0.42);--mdc-filled-text-field-disabled-active-indicator-color:rgba(0, 0, 0, 0.06);--mdc-filled-text-field-hover-active-indicator-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-error-active-indicator-color:#f44336;--mdc-filled-text-field-error-focus-active-indicator-color:#f44336;--mdc-filled-text-field-error-hover-active-indicator-color:#f44336;--mdc-outlined-text-field-caret-color:#3f51b5;--mdc-outlined-text-field-focus-outline-color:#3f51b5;--mdc-outlined-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-outlined-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-error-caret-color:#f44336;--mdc-outlined-text-field-error-focus-label-text-color:#f44336;--mdc-outlined-text-field-error-label-text-color:#f44336;--mdc-outlined-text-field-error-hover-label-text-color:#f44336;--mdc-outlined-text-field-outline-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-disabled-outline-color:rgba(0, 0, 0, 0.06);--mdc-outlined-text-field-hover-outline-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-error-focus-outline-color:#f44336;--mdc-outlined-text-field-error-hover-outline-color:#f44336;--mdc-outlined-text-field-error-outline-color:#f44336;--mat-form-field-focus-select-arrow-color:rgba(63, 81, 181, 0.87);--mat-form-field-disabled-input-text-placeholder-color:rgba(0, 0, 0, 0.38);--mat-form-field-state-layer-color:rgba(0, 0, 0, 0.87);--mat-form-field-error-text-color:#f44336;--mat-form-field-select-option-text-color:inherit;--mat-form-field-select-disabled-option-text-color:GrayText;--mat-form-field-leading-icon-color:unset;--mat-form-field-disabled-leading-icon-color:unset;--mat-form-field-trailing-icon-color:unset;--mat-form-field-disabled-trailing-icon-color:unset;--mat-form-field-error-focus-trailing-icon-color:unset;--mat-form-field-error-hover-trailing-icon-color:unset;--mat-form-field-error-trailing-icon-color:unset;--mat-form-field-enabled-select-arrow-color:rgba(0, 0, 0, 0.54);--mat-form-field-disabled-select-arrow-color:rgba(0, 0, 0, 0.38);--mat-form-field-hover-state-layer-opacity:0.04;--mat-form-field-focus-state-layer-opacity:0.08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color:#ff4081;--mdc-filled-text-field-focus-active-indicator-color:#ff4081;--mdc-filled-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mdc-outlined-text-field-caret-color:#ff4081;--mdc-outlined-text-field-focus-outline-color:#ff4081;--mdc-outlined-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mat-form-field-focus-select-arrow-color:rgba(255, 64, 129, 0.87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color:#f44336;--mdc-filled-text-field-focus-active-indicator-color:#f44336;--mdc-filled-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mdc-outlined-text-field-caret-color:#f44336;--mdc-outlined-text-field-focus-outline-color:#f44336;--mdc-outlined-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mat-form-field-focus-select-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-form-field-container-height:56px;--mat-form-field-filled-label-display:block;--mat-form-field-container-vertical-padding:16px;--mat-form-field-filled-with-label-container-padding-top:24px;--mat-form-field-filled-with-label-container-padding-bottom:8px}html{--mdc-filled-text-field-label-text-font:Roboto, sans-serif;--mdc-filled-text-field-label-text-size:16px;--mdc-filled-text-field-label-text-tracking:0.03125em;--mdc-filled-text-field-label-text-weight:400;--mdc-outlined-text-field-label-text-font:Roboto, sans-serif;--mdc-outlined-text-field-label-text-size:16px;--mdc-outlined-text-field-label-text-tracking:0.03125em;--mdc-outlined-text-field-label-text-weight:400;--mat-form-field-container-text-font:Roboto, sans-serif;--mat-form-field-container-text-line-height:24px;--mat-form-field-container-text-size:16px;--mat-form-field-container-text-tracking:0.03125em;--mat-form-field-container-text-weight:400;--mat-form-field-outlined-label-text-populated-size:16px;--mat-form-field-subscript-text-font:Roboto, sans-serif;--mat-form-field-subscript-text-line-height:20px;--mat-form-field-subscript-text-size:12px;--mat-form-field-subscript-text-tracking:0.0333333333em;--mat-form-field-subscript-text-weight:400}html{--mat-select-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(63, 81, 181, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(255, 64, 129, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(244, 67, 54, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-select-arrow-transform:translateY(-8px)}html{--mat-select-trigger-text-font:Roboto, sans-serif;--mat-select-trigger-text-line-height:24px;--mat-select-trigger-text-size:16px;--mat-select-trigger-text-tracking:0.03125em;--mat-select-trigger-text-weight:400}html{--mat-autocomplete-container-shape:4px;--mat-autocomplete-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-autocomplete-background-color:white}html{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mat-dialog-container-max-width:80vw;--mat-dialog-container-small-max-width:80vw;--mat-dialog-container-min-width:0;--mat-dialog-actions-alignment:start;--mat-dialog-actions-padding:8px;--mat-dialog-content-padding:20px 24px;--mat-dialog-with-actions-content-padding:20px 24px;--mat-dialog-headline-padding:0 24px 9px}html{--mdc-dialog-container-color:white;--mdc-dialog-subhead-color:rgba(0, 0, 0, 0.87);--mdc-dialog-supporting-text-color:rgba(0, 0, 0, 0.6)}html{--mdc-dialog-subhead-font:Roboto, sans-serif;--mdc-dialog-subhead-line-height:32px;--mdc-dialog-subhead-size:20px;--mdc-dialog-subhead-weight:500;--mdc-dialog-subhead-tracking:0.0125em;--mdc-dialog-supporting-text-font:Roboto, sans-serif;--mdc-dialog-supporting-text-line-height:24px;--mdc-dialog-supporting-text-size:16px;--mdc-dialog-supporting-text-weight:400;--mdc-dialog-supporting-text-tracking:0.03125em}.mat-mdc-standard-chip{--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px;--mdc-chip-outline-width:0;--mdc-chip-outline-color:transparent;--mdc-chip-disabled-outline-color:transparent;--mdc-chip-focus-outline-color:transparent;--mdc-chip-hover-state-layer-opacity:0.04;--mdc-chip-with-avatar-disabled-avatar-opacity:1;--mdc-chip-flat-selected-outline-width:0;--mdc-chip-selected-hover-state-layer-opacity:0.04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:1;--mdc-chip-with-icon-disabled-icon-opacity:1;--mat-chip-disabled-container-opacity:0.4;--mat-chip-trailing-action-opacity:0.54;--mat-chip-trailing-action-focus-opacity:1;--mat-chip-trailing-action-state-layer-color:transparent;--mat-chip-selected-trailing-action-state-layer-color:transparent;--mat-chip-trailing-action-hover-state-layer-opacity:0;--mat-chip-trailing-action-focus-state-layer-opacity:0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color:#212121;--mdc-chip-elevated-container-color:#e0e0e0;--mdc-chip-elevated-selected-container-color:#e0e0e0;--mdc-chip-elevated-disabled-container-color:#e0e0e0;--mdc-chip-flat-disabled-selected-container-color:#e0e0e0;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:#212121;--mdc-chip-selected-label-text-color:#212121;--mdc-chip-with-icon-icon-color:#212121;--mdc-chip-with-icon-disabled-icon-color:#212121;--mdc-chip-with-icon-selected-icon-color:#212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:#212121;--mdc-chip-with-trailing-icon-trailing-icon-color:#212121;--mat-chip-selected-disabled-trailing-icon-color:#212121;--mat-chip-selected-trailing-icon-color:#212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#3f51b5;--mdc-chip-elevated-selected-container-color:#3f51b5;--mdc-chip-elevated-disabled-container-color:#3f51b5;--mdc-chip-flat-disabled-selected-container-color:#3f51b5;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#ff4081;--mdc-chip-elevated-selected-container-color:#ff4081;--mdc-chip-elevated-disabled-container-color:#ff4081;--mdc-chip-flat-disabled-selected-container-color:#ff4081;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#f44336;--mdc-chip-elevated-selected-container-color:#f44336;--mdc-chip-elevated-disabled-container-color:#f44336;--mdc-chip-flat-disabled-selected-container-color:#f44336;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height:32px}.mat-mdc-standard-chip{--mdc-chip-label-text-font:Roboto, sans-serif;--mdc-chip-label-text-line-height:20px;--mdc-chip-label-text-size:14px;--mdc-chip-label-text-tracking:0.0178571429em;--mdc-chip-label-text-weight:400}html{--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1;--mat-switch-disabled-selected-handle-opacity:0.38;--mat-switch-disabled-unselected-handle-opacity:0.38;--mat-switch-unselected-handle-size:20px;--mat-switch-selected-handle-size:20px;--mat-switch-pressed-handle-size:20px;--mat-switch-with-icon-handle-size:20px;--mat-switch-selected-handle-horizontal-margin:0;--mat-switch-selected-with-icon-handle-horizontal-margin:0;--mat-switch-selected-pressed-handle-horizontal-margin:0;--mat-switch-unselected-handle-horizontal-margin:0;--mat-switch-unselected-with-icon-handle-horizontal-margin:0;--mat-switch-unselected-pressed-handle-horizontal-margin:0;--mat-switch-visible-track-opacity:1;--mat-switch-hidden-track-opacity:1;--mat-switch-visible-track-transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);--mat-switch-hidden-track-transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);--mat-switch-track-outline-width:1px;--mat-switch-track-outline-color:transparent;--mat-switch-selected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-color:transparent}html{--mdc-switch-selected-focus-state-layer-color:#3949ab;--mdc-switch-selected-handle-color:#3949ab;--mdc-switch-selected-hover-state-layer-color:#3949ab;--mdc-switch-selected-pressed-state-layer-color:#3949ab;--mdc-switch-selected-focus-handle-color:#1a237e;--mdc-switch-selected-hover-handle-color:#1a237e;--mdc-switch-selected-pressed-handle-color:#1a237e;--mdc-switch-selected-focus-track-color:#7986cb;--mdc-switch-selected-hover-track-color:#7986cb;--mdc-switch-selected-pressed-track-color:#7986cb;--mdc-switch-selected-track-color:#7986cb;--mdc-switch-disabled-selected-handle-color:#424242;--mdc-switch-disabled-selected-icon-color:#fff;--mdc-switch-disabled-selected-track-color:#424242;--mdc-switch-disabled-unselected-handle-color:#424242;--mdc-switch-disabled-unselected-icon-color:#fff;--mdc-switch-disabled-unselected-track-color:#424242;--mdc-switch-handle-surface-color:var(--mdc-theme-surface, #fff);--mdc-switch-handle-elevation-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-switch-handle-shadow-color:black;--mdc-switch-disabled-handle-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-switch-selected-icon-color:#fff;--mdc-switch-unselected-focus-handle-color:#212121;--mdc-switch-unselected-focus-state-layer-color:#424242;--mdc-switch-unselected-focus-track-color:#e0e0e0;--mdc-switch-unselected-handle-color:#616161;--mdc-switch-unselected-hover-handle-color:#212121;--mdc-switch-unselected-hover-state-layer-color:#424242;--mdc-switch-unselected-hover-track-color:#e0e0e0;--mdc-switch-unselected-icon-color:#fff;--mdc-switch-unselected-pressed-handle-color:#212121;--mdc-switch-unselected-pressed-state-layer-color:#424242;--mdc-switch-unselected-pressed-track-color:#e0e0e0;--mdc-switch-unselected-track-color:#e0e0e0;--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, 0.38)}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color:#d81b60;--mdc-switch-selected-handle-color:#d81b60;--mdc-switch-selected-hover-state-layer-color:#d81b60;--mdc-switch-selected-pressed-state-layer-color:#d81b60;--mdc-switch-selected-focus-handle-color:#880e4f;--mdc-switch-selected-hover-handle-color:#880e4f;--mdc-switch-selected-pressed-handle-color:#880e4f;--mdc-switch-selected-focus-track-color:#f06292;--mdc-switch-selected-hover-track-color:#f06292;--mdc-switch-selected-pressed-track-color:#f06292;--mdc-switch-selected-track-color:#f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color:#e53935;--mdc-switch-selected-handle-color:#e53935;--mdc-switch-selected-hover-state-layer-color:#e53935;--mdc-switch-selected-pressed-state-layer-color:#e53935;--mdc-switch-selected-focus-handle-color:#b71c1c;--mdc-switch-selected-hover-handle-color:#b71c1c;--mdc-switch-selected-pressed-handle-color:#b71c1c;--mdc-switch-selected-focus-track-color:#e57373;--mdc-switch-selected-hover-track-color:#e57373;--mdc-switch-selected-pressed-track-color:#e57373;--mdc-switch-selected-track-color:#e57373}html{--mdc-switch-state-layer-size:40px}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px}.mat-mdc-radio-button{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#3f51b5;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#ff4081;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#f44336;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}html{--mdc-radio-state-layer-size:40px;--mat-radio-touch-target-display:block}.mat-mdc-radio-button{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mat-slider-value-indicator-width:auto;--mat-slider-value-indicator-height:32px;--mat-slider-value-indicator-caret-display:block;--mat-slider-value-indicator-border-radius:4px;--mat-slider-value-indicator-padding:0 12px;--mat-slider-value-indicator-text-transform:none;--mat-slider-value-indicator-container-transform:translateX(-50%);--mdc-slider-active-track-height:6px;--mdc-slider-active-track-shape:9999px;--mdc-slider-handle-height:20px;--mdc-slider-handle-shape:50%;--mdc-slider-handle-width:20px;--mdc-slider-inactive-track-height:4px;--mdc-slider-inactive-track-shape:9999px;--mdc-slider-with-overlap-handle-outline-width:1px;--mdc-slider-with-tick-marks-active-container-opacity:0.6;--mdc-slider-with-tick-marks-container-shape:50%;--mdc-slider-with-tick-marks-container-size:2px;--mdc-slider-with-tick-marks-inactive-container-opacity:0.6}html{--mdc-slider-handle-color:#3f51b5;--mdc-slider-focus-handle-color:#3f51b5;--mdc-slider-hover-handle-color:#3f51b5;--mdc-slider-active-track-color:#3f51b5;--mdc-slider-inactive-track-color:#3f51b5;--mdc-slider-with-tick-marks-inactive-container-color:#3f51b5;--mdc-slider-with-tick-marks-active-container-color:white;--mdc-slider-disabled-active-track-color:#000;--mdc-slider-disabled-handle-color:#000;--mdc-slider-disabled-inactive-track-color:#000;--mdc-slider-label-container-color:#000;--mdc-slider-label-label-text-color:#fff;--mdc-slider-with-overlap-handle-outline-color:#fff;--mdc-slider-with-tick-marks-disabled-container-color:#000;--mdc-slider-handle-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-slider-ripple-color:#3f51b5;--mat-slider-hover-state-layer-color:rgba(63, 81, 181, 0.05);--mat-slider-focus-state-layer-color:rgba(63, 81, 181, 0.2);--mat-slider-value-indicator-opacity:0.6}html .mat-accent{--mat-slider-ripple-color:#ff4081;--mat-slider-hover-state-layer-color:rgba(255, 64, 129, 0.05);--mat-slider-focus-state-layer-color:rgba(255, 64, 129, 0.2);--mdc-slider-handle-color:#ff4081;--mdc-slider-focus-handle-color:#ff4081;--mdc-slider-hover-handle-color:#ff4081;--mdc-slider-active-track-color:#ff4081;--mdc-slider-inactive-track-color:#ff4081;--mdc-slider-with-tick-marks-inactive-container-color:#ff4081;--mdc-slider-with-tick-marks-active-container-color:white}html .mat-warn{--mat-slider-ripple-color:#f44336;--mat-slider-hover-state-layer-color:rgba(244, 67, 54, 0.05);--mat-slider-focus-state-layer-color:rgba(244, 67, 54, 0.2);--mdc-slider-handle-color:#f44336;--mdc-slider-focus-handle-color:#f44336;--mdc-slider-hover-handle-color:#f44336;--mdc-slider-active-track-color:#f44336;--mdc-slider-inactive-track-color:#f44336;--mdc-slider-with-tick-marks-inactive-container-color:#f44336;--mdc-slider-with-tick-marks-active-container-color:white}html{--mdc-slider-label-label-text-font:Roboto, sans-serif;--mdc-slider-label-label-text-size:14px;--mdc-slider-label-label-text-line-height:22px;--mdc-slider-label-label-text-tracking:0.0071428571em;--mdc-slider-label-label-text-weight:500}html{--mat-menu-container-shape:4px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px}html{--mat-menu-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-menu-item-icon-color:rgba(0, 0, 0, 0.87);--mat-menu-item-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-item-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-container-color:white;--mat-menu-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-menu-item-label-text-font:Roboto, sans-serif;--mat-menu-item-label-text-size:16px;--mat-menu-item-label-text-tracking:0.03125em;--mat-menu-item-label-text-line-height:24px;--mat-menu-item-label-text-weight:400}html{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38;--mat-list-active-indicator-color:transparent;--mat-list-active-indicator-shape:4px}html{--mdc-list-list-item-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-supporting-text-color:rgba(0, 0, 0, 0.54);--mdc-list-list-item-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-supporting-text-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-selected-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-disabled-label-text-color:black;--mdc-list-list-item-disabled-leading-icon-color:black;--mdc-list-list-item-disabled-trailing-icon-color:black;--mdc-list-list-item-hover-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-hover-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-focus-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-state-layer-color:black;--mdc-list-list-item-hover-state-layer-opacity:0.04;--mdc-list-list-item-focus-state-layer-color:black;--mdc-list-list-item-focus-state-layer-opacity:0.12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text{color:#3f51b5}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected.mdc-list-item--with-leading-icon .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height:48px;--mdc-list-list-item-two-line-container-height:64px;--mdc-list-list-item-three-line-container-height:88px;--mat-list-list-item-leading-icon-start-space:16px;--mat-list-list-item-leading-icon-end-space:32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size:40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mdc-list-list-item-label-text-font:Roboto, sans-serif;--mdc-list-list-item-label-text-line-height:24px;--mdc-list-list-item-label-text-size:16px;--mdc-list-list-item-label-text-tracking:0.03125em;--mdc-list-list-item-label-text-weight:400;--mdc-list-list-item-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height:20px;--mdc-list-list-item-supporting-text-size:14px;--mdc-list-list-item-supporting-text-tracking:0.0178571429em;--mdc-list-list-item-supporting-text-weight:400;--mdc-list-list-item-trailing-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height:20px;--mdc-list-list-item-trailing-supporting-text-size:12px;--mdc-list-list-item-trailing-supporting-text-tracking:0.0333333333em;--mdc-list-list-item-trailing-supporting-text-weight:400}.mdc-list-group__subheader{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-color:rgba(0, 0, 0, 0.87);--mat-paginator-container-background-color:white;--mat-paginator-enabled-icon-color:rgba(0, 0, 0, 0.54);--mat-paginator-disabled-icon-color:rgba(0, 0, 0, 0.12)}html{--mat-paginator-container-size:56px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px}html{--mat-paginator-container-text-font:Roboto, sans-serif;--mat-paginator-container-text-line-height:20px;--mat-paginator-container-text-size:12px;--mat-paginator-container-text-tracking:0.0333333333em;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:12px}html{--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px;--mat-tab-header-divider-color:transparent;--mat-tab-header-divider-height:0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color:#3f51b5;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#3f51b5;--mat-tab-header-active-ripple-color:#3f51b5;--mat-tab-header-inactive-ripple-color:#3f51b5;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#3f51b5;--mat-tab-header-active-hover-label-text-color:#3f51b5;--mat-tab-header-active-focus-indicator-color:#3f51b5;--mat-tab-header-active-hover-indicator-color:#3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color:#ff4081;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#ff4081;--mat-tab-header-active-ripple-color:#ff4081;--mat-tab-header-inactive-ripple-color:#ff4081;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#ff4081;--mat-tab-header-active-hover-label-text-color:#ff4081;--mat-tab-header-active-focus-indicator-color:#ff4081;--mat-tab-header-active-hover-indicator-color:#ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color:#f44336;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#f44336;--mat-tab-header-active-ripple-color:#f44336;--mat-tab-header-inactive-ripple-color:#f44336;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#f44336;--mat-tab-header-active-hover-label-text-color:#f44336;--mat-tab-header-active-focus-indicator-color:#f44336;--mat-tab-header-active-hover-indicator-color:#f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color:#3f51b5;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color:#ff4081;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color:#f44336;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header{--mat-tab-header-label-text-font:Roboto, sans-serif;--mat-tab-header-label-text-size:14px;--mat-tab-header-label-text-tracking:0.0892857143em;--mat-tab-header-label-text-line-height:36px;--mat-tab-header-label-text-weight:500}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}html{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black;--mat-checkbox-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-checkbox{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}html{--mdc-checkbox-state-layer-size:40px;--mat-checkbox-touch-target-display:block}.mat-mdc-checkbox{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-text-button-container-shape:4px;--mdc-text-button-keep-touch-target:false;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mdc-protected-button-container-shape:4px;--mdc-protected-button-keep-touch-target:false;--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-outlined-button-container-shape:4px;--mat-text-button-horizontal-padding:8px;--mat-text-button-with-icon-horizontal-padding:8px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-protected-button-horizontal-padding:16px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:15px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px}html{--mdc-text-button-label-text-color:black;--mdc-text-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-text-button-state-layer-color:black;--mat-text-button-disabled-state-layer-color:black;--mat-text-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-text-button-hover-state-layer-opacity:0.04;--mat-text-button-focus-state-layer-opacity:0.12;--mat-text-button-pressed-state-layer-opacity:0.12;--mdc-filled-button-container-color:white;--mdc-filled-button-label-text-color:black;--mdc-filled-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-filled-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-filled-button-state-layer-color:black;--mat-filled-button-disabled-state-layer-color:black;--mat-filled-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-filled-button-hover-state-layer-opacity:0.04;--mat-filled-button-focus-state-layer-opacity:0.12;--mat-filled-button-pressed-state-layer-opacity:0.12;--mdc-protected-button-container-color:white;--mdc-protected-button-label-text-color:black;--mdc-protected-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-protected-button-container-elevation-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-container-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-focus-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-hover-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-pressed-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-protected-button-container-shadow-color:#000;--mat-protected-button-state-layer-color:black;--mat-protected-button-disabled-state-layer-color:black;--mat-protected-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-protected-button-hover-state-layer-opacity:0.04;--mat-protected-button-focus-state-layer-opacity:0.12;--mat-protected-button-pressed-state-layer-opacity:0.12;--mdc-outlined-button-disabled-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-button-label-text-color:black;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:black;--mat-outlined-button-disabled-state-layer-color:black;--mat-outlined-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-outlined-button-hover-state-layer-opacity:0.04;--mat-outlined-button-focus-state-layer-opacity:0.12;--mat-outlined-button-pressed-state-layer-opacity:0.12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color:#3f51b5;--mat-text-button-state-layer-color:#3f51b5;--mat-text-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color:#ff4081;--mat-text-button-state-layer-color:#ff4081;--mat-text-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color:#f44336;--mat-text-button-state-layer-color:#f44336;--mat-text-button-ripple-color:rgba(244, 67, 54, 0.1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color:#3f51b5;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color:#ff4081;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color:#f44336;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color:#3f51b5;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color:#ff4081;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color:#f44336;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color:#3f51b5;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#3f51b5;--mat-outlined-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color:#ff4081;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#ff4081;--mat-outlined-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color:#f44336;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#f44336;--mat-outlined-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mdc-text-button-container-height:36px;--mdc-filled-button-container-height:36px;--mdc-outlined-button-container-height:36px;--mdc-protected-button-container-height:36px;--mat-text-button-touch-target-display:block;--mat-filled-button-touch-target-display:block;--mat-protected-button-touch-target-display:block;--mat-outlined-button-touch-target-display:block}html{--mdc-text-button-label-text-font:Roboto, sans-serif;--mdc-text-button-label-text-size:14px;--mdc-text-button-label-text-tracking:0.0892857143em;--mdc-text-button-label-text-weight:500;--mdc-text-button-label-text-transform:none;--mdc-filled-button-label-text-font:Roboto, sans-serif;--mdc-filled-button-label-text-size:14px;--mdc-filled-button-label-text-tracking:0.0892857143em;--mdc-filled-button-label-text-weight:500;--mdc-filled-button-label-text-transform:none;--mdc-outlined-button-label-text-font:Roboto, sans-serif;--mdc-outlined-button-label-text-size:14px;--mdc-outlined-button-label-text-tracking:0.0892857143em;--mdc-outlined-button-label-text-weight:500;--mdc-outlined-button-label-text-transform:none;--mdc-protected-button-label-text-font:Roboto, sans-serif;--mdc-protected-button-label-text-size:14px;--mdc-protected-button-label-text-tracking:0.0892857143em;--mdc-protected-button-label-text-weight:500;--mdc-protected-button-label-text-transform:none}html{--mdc-icon-button-icon-size:24px}html{--mdc-icon-button-icon-color:inherit;--mdc-icon-button-disabled-icon-color:rgba(0, 0, 0, 0.38);--mat-icon-button-state-layer-color:black;--mat-icon-button-disabled-state-layer-color:black;--mat-icon-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-icon-button-hover-state-layer-opacity:0.04;--mat-icon-button-focus-state-layer-opacity:0.12;--mat-icon-button-pressed-state-layer-opacity:0.12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color:#3f51b5;--mat-icon-button-state-layer-color:#3f51b5;--mat-icon-button-ripple-color:rgba(63, 81, 181, 0.1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color:#ff4081;--mat-icon-button-state-layer-color:#ff4081;--mat-icon-button-ripple-color:rgba(255, 64, 129, 0.1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color:#f44336;--mat-icon-button-state-layer-color:#f44336;--mat-icon-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mat-icon-button-touch-target-display:block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px;--mdc-fab-small-container-shape:50%;--mdc-fab-small-icon-size:24px;--mdc-extended-fab-container-height:48px;--mdc-extended-fab-container-shape:24px}html{--mdc-fab-container-color:white;--mdc-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-container-shadow-color:#000;--mat-fab-foreground-color:black;--mat-fab-state-layer-color:black;--mat-fab-disabled-state-layer-color:black;--mat-fab-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-hover-state-layer-opacity:0.04;--mat-fab-focus-state-layer-opacity:0.12;--mat-fab-pressed-state-layer-opacity:0.12;--mat-fab-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-fab-small-container-color:white;--mdc-fab-small-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-small-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-small-container-shadow-color:#000;--mat-fab-small-foreground-color:black;--mat-fab-small-state-layer-color:black;--mat-fab-small-disabled-state-layer-color:black;--mat-fab-small-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-small-hover-state-layer-opacity:0.04;--mat-fab-small-focus-state-layer-opacity:0.12;--mat-fab-small-pressed-state-layer-opacity:0.12;--mat-fab-small-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-small-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-extended-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-extended-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-extended-fab-container-shadow-color:#000}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color:#3f51b5;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color:#ff4081;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color:#f44336;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color:#3f51b5;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color:#ff4081;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color:#f44336;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html{--mat-fab-touch-target-display:block;--mat-fab-small-touch-target-display:block}html{--mdc-extended-fab-label-text-font:Roboto, sans-serif;--mdc-extended-fab-label-text-size:14px;--mdc-extended-fab-label-text-tracking:0.0892857143em;--mdc-extended-fab-label-text-weight:500}html{--mdc-snackbar-container-shape:4px}html{--mdc-snackbar-container-color:#333333;--mdc-snackbar-supporting-text-color:rgba(255, 255, 255, 0.87);--mat-snack-bar-button-color:#ff4081}html{--mdc-snackbar-supporting-text-font:Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height:20px;--mdc-snackbar-supporting-text-size:14px;--mdc-snackbar-supporting-text-weight:400}html{--mat-table-row-item-outline-width:1px}html{--mat-table-background-color:white;--mat-table-header-headline-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-outline-color:rgba(0, 0, 0, 0.12)}html{--mat-table-header-container-height:56px;--mat-table-footer-container-height:52px;--mat-table-row-item-container-height:52px}html{--mat-table-header-headline-font:Roboto, sans-serif;--mat-table-header-headline-line-height:22px;--mat-table-header-headline-size:14px;--mat-table-header-headline-weight:500;--mat-table-header-headline-tracking:0.0071428571em;--mat-table-row-item-label-text-font:Roboto, sans-serif;--mat-table-row-item-label-text-line-height:20px;--mat-table-row-item-label-text-size:14px;--mat-table-row-item-label-text-weight:400;--mat-table-row-item-label-text-tracking:0.0178571429em;--mat-table-footer-supporting-text-font:Roboto, sans-serif;--mat-table-footer-supporting-text-line-height:20px;--mat-table-footer-supporting-text-size:14px;--mat-table-footer-supporting-text-weight:400;--mat-table-footer-supporting-text-tracking:0.0178571429em}html{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}html{--mdc-circular-progress-active-indicator-color:#3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color:#ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color:#f44336}html{--mat-badge-container-shape:50%;--mat-badge-container-size:unset;--mat-badge-small-size-container-size:unset;--mat-badge-large-size-container-size:unset;--mat-badge-legacy-container-size:22px;--mat-badge-legacy-small-size-container-size:16px;--mat-badge-legacy-large-size-container-size:28px;--mat-badge-container-offset:-11px 0;--mat-badge-small-size-container-offset:-8px 0;--mat-badge-large-size-container-offset:-14px 0;--mat-badge-container-overlap-offset:-11px;--mat-badge-small-size-container-overlap-offset:-8px;--mat-badge-large-size-container-overlap-offset:-14px;--mat-badge-container-padding:0;--mat-badge-small-size-container-padding:0;--mat-badge-large-size-container-padding:0}html{--mat-badge-background-color:#3f51b5;--mat-badge-text-color:white;--mat-badge-disabled-state-background-color:#b9b9b9;--mat-badge-disabled-state-text-color:rgba(0, 0, 0, 0.38)}.mat-badge-accent{--mat-badge-background-color:#ff4081;--mat-badge-text-color:white}.mat-badge-warn{--mat-badge-background-color:#f44336;--mat-badge-text-color:white}html{--mat-badge-text-font:Roboto, sans-serif;--mat-badge-text-size:12px;--mat-badge-text-weight:600;--mat-badge-small-size-text-size:9px;--mat-badge-large-size-text-size:24px}html{--mat-bottom-sheet-container-shape:4px}html{--mat-bottom-sheet-container-text-color:rgba(0, 0, 0, 0.87);--mat-bottom-sheet-container-background-color:white}html{--mat-bottom-sheet-container-text-font:Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height:20px;--mat-bottom-sheet-container-text-size:14px;--mat-bottom-sheet-container-text-tracking:0.0178571429em;--mat-bottom-sheet-container-text-weight:400}html{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12}html{--mat-legacy-button-toggle-text-color:rgba(0, 0, 0, 0.38);--mat-legacy-button-toggle-state-layer-color:rgba(0, 0, 0, 0.12);--mat-legacy-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.54);--mat-legacy-button-toggle-selected-state-background-color:#e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-legacy-button-toggle-disabled-state-background-color:#eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-background-color:white;--mat-standard-button-toggle-state-layer-color:black;--mat-standard-button-toggle-selected-state-background-color:#e0e0e0;--mat-standard-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-standard-button-toggle-disabled-state-background-color:white;--mat-standard-button-toggle-disabled-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-divider-color:#e0e0e0}html{--mat-standard-button-toggle-height:48px}html{--mat-legacy-button-toggle-label-text-font:Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height:24px;--mat-legacy-button-toggle-label-text-size:16px;--mat-legacy-button-toggle-label-text-tracking:0.03125em;--mat-legacy-button-toggle-label-text-weight:400;--mat-standard-button-toggle-label-text-font:Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height:24px;--mat-standard-button-toggle-label-text-size:16px;--mat-standard-button-toggle-label-text-tracking:0.03125em;--mat-standard-button-toggle-label-text-weight:400}html{--mat-datepicker-calendar-container-shape:4px;--mat-datepicker-calendar-container-touch-shape:4px;--mat-datepicker-calendar-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-container-touch-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(63, 81, 181, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-toggle-active-state-icon-color:#3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color:rgba(63, 81, 181, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e;--mat-datepicker-toggle-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-body-label-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-period-button-text-color:black;--mat-datepicker-calendar-period-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-navigation-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-header-divider-color:rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-header-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-date-today-outline-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-today-disabled-state-outline-color:rgba(0, 0, 0, 0.18);--mat-datepicker-calendar-date-text-color:rgba(0, 0, 0, 0.87);--mat-datepicker-calendar-date-outline-color:transparent;--mat-datepicker-calendar-date-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-preview-state-outline-color:rgba(0, 0, 0, 0.24);--mat-datepicker-range-input-separator-color:rgba(0, 0, 0, 0.87);--mat-datepicker-range-input-disabled-state-separator-color:rgba(0, 0, 0, 0.38);--mat-datepicker-range-input-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-container-background-color:white;--mat-datepicker-calendar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(255, 64, 129, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(255, 64, 129, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(244, 67, 54, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(244, 67, 54, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color:#ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color:#f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display:none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-datepicker-calendar-text-font:Roboto, sans-serif;--mat-datepicker-calendar-text-size:13px;--mat-datepicker-calendar-body-label-text-size:14px;--mat-datepicker-calendar-body-label-text-weight:500;--mat-datepicker-calendar-period-button-text-size:14px;--mat-datepicker-calendar-period-button-text-weight:500;--mat-datepicker-calendar-header-text-size:11px;--mat-datepicker-calendar-header-text-weight:400}html{--mat-divider-width:1px}html{--mat-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-expansion-container-shape:4px;--mat-expansion-legacy-header-indicator-display:inline-block;--mat-expansion-header-indicator-display:none}html{--mat-expansion-container-background-color:white;--mat-expansion-container-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-actions-divider-color:rgba(0, 0, 0, 0.12);--mat-expansion-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-expansion-header-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-header-description-color:rgba(0, 0, 0, 0.54);--mat-expansion-header-indicator-color:rgba(0, 0, 0, 0.54)}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px}html{--mat-expansion-header-text-font:Roboto, sans-serif;--mat-expansion-header-text-size:14px;--mat-expansion-header-text-weight:500;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:Roboto, sans-serif;--mat-expansion-container-text-line-height:20px;--mat-expansion-container-text-size:14px;--mat-expansion-container-text-tracking:0.0178571429em;--mat-expansion-container-text-weight:400}html{--mat-grid-list-tile-header-primary-text-size:14px;--mat-grid-list-tile-header-secondary-text-size:12px;--mat-grid-list-tile-footer-primary-text-size:14px;--mat-grid-list-tile-footer-secondary-text-size:12px}html{--mat-icon-color:inherit}.mat-icon.mat-primary{--mat-icon-color:#3f51b5}.mat-icon.mat-accent{--mat-icon-color:#ff4081}.mat-icon.mat-warn{--mat-icon-color:#f44336}html{--mat-sidenav-container-shape:0;--mat-sidenav-container-elevation-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-sidenav-container-width:auto}html{--mat-sidenav-container-divider-color:rgba(0, 0, 0, 0.12);--mat-sidenav-container-background-color:white;--mat-sidenav-container-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-content-background-color:#fafafa;--mat-sidenav-content-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-scrim-color:rgba(0, 0, 0, 0.6)}html{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#3f51b5;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#3f51b5;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#3f51b5;--mat-stepper-header-edit-state-icon-foreground-color:white;--mat-stepper-container-color:white;--mat-stepper-line-color:rgba(0, 0, 0, 0.12);--mat-stepper-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-optional-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-selected-state-label-text-color:rgba(0, 0, 0, 0.87);--mat-stepper-header-error-state-label-text-color:#f44336;--mat-stepper-header-icon-background-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-error-state-icon-foreground-color:#f44336;--mat-stepper-header-error-state-icon-background-color:transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#ff4081;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#ff4081;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#ff4081;--mat-stepper-header-edit-state-icon-foreground-color:white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#f44336;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#f44336;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#f44336;--mat-stepper-header-edit-state-icon-foreground-color:white}html{--mat-stepper-header-height:72px}html{--mat-stepper-container-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-size:14px;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-weight:400}html{--mat-sort-arrow-color:#757575}html{--mat-toolbar-container-background-color:whitesmoke;--mat-toolbar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color:#3f51b5;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color:#ff4081;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color:#f44336;--mat-toolbar-container-text-color:white}html{--mat-toolbar-standard-height:64px;--mat-toolbar-mobile-height:56px}html{--mat-toolbar-title-text-font:Roboto, sans-serif;--mat-toolbar-title-text-line-height:32px;--mat-toolbar-title-text-size:20px;--mat-toolbar-title-text-tracking:0.0125em;--mat-toolbar-title-text-weight:500}html{--mat-tree-container-background-color:white;--mat-tree-node-text-color:rgba(0, 0, 0, 0.87)}html{--mat-tree-node-min-height:48px}html{--mat-tree-node-text-font:Roboto, sans-serif;--mat-tree-node-text-size:14px;--mat-tree-node-text-weight:400}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto, sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto, sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto, sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 calc(14px*.83)/20px Roboto, sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 calc(14px*.67)/20px Roboto, sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto, sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto, sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto, sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto, sans-serif;letter-spacing:-0.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto, sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto, sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto, sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}","/* You can add global styles to this file, and also import other style files */\n@import '@angular/material/prebuilt-themes/indigo-pink.css';\n@import '@fontsource/roboto';\n@import '@fontsource/roboto-mono';\n@import 'colors.scss';\n\n@media print {\n @page {\n size: A3;\n margin: 0;\n }\n}\n\n@font-face {\n font-family: 'Material Icons';\n font-style: normal;\n font-display: block;\n font-weight: 400;\n src:\n local('Material Icons'),\n local('MaterialIcons-Regular'),\n url(assets/icons/MaterialIcons-Regular.ttf) format('truetype');\n}\n\n.material-icons {\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 24px; /* Preferred icon size */\n display: inline-block;\n line-height: 1;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: normal;\n white-space: nowrap;\n direction: ltr;\n\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n\n.text-deemphasis {\n color: on-color-deemphasis(body);\n font-size: 12px !important;\n letter-spacing: normal;\n}\n\nbody {\n margin: 0;\n overflow-y: scroll;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n}\n\n.svgcontainer {\n @include adaptive-color-dark-only('background-color', white);\n}\n\n.mdc-button, .mat-mdc-button-base {\n letter-spacing: normal !important;\n}\n\n.mat-dialog {\n .mat-mdc-dialog-actions {\n justify-content: center;\n }\n .mat-mdc-dialog-title {\n text-align: center;\n }\n .mat-mdc-dialog-content {\n color: black !important;\n @include adaptive-color-dark-only('color', on-color(dark) !important);\n }\n}\n\n.mat-mdc-dialog-container {\n .mdc-dialog__surface {\n @include adaptive-color-dark-only('background-color', color(dark-2));\n }\n .mdc-dialog__title,\n .mdc-dialog__content {\n @include adaptive-color-dark-only('color', on-color(dark) !important);\n }\n .mat-mdc-button-base {\n @include adaptive-color-dark-only('border-color', color(dark-4));\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n\n .help-dialog h1 {\n @include adaptive-color-dark-only('border-color', on-color(dark-1));\n }\n\n .content {\n overflow-y: scroll;\n max-height: 60vh;\n font-size: 11pt;\n\n p,\n ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n }\n\n code {\n @include adaptive-color-dark-only('background-color', color(dark-1));\n @include adaptive-color-dark-only('border-color', color(panel-dark) !important);\n @include adaptive-color-dark-only('color', on-color(dark) !important);\n color: black;\n padding: 1px 2px;\n word-break: break-word;\n }\n }\n\n a {\n @include adaptive-color-dark-only('color', color(dark-link) !important);\n }\n\n a:active,\n a:visited {\n @include adaptive-color-dark-only('color', color(dark-link-active));\n }\n\n .top-button {\n display: inline;\n float: right;\n margin-top: 14px;\n }\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome and Opera */\n}\n\n// ___ ___ _ _ _____ ___ ___ _ ___\n// / __/ _ \\| \\| |_ _| _ \\/ _ \\| | / __|\n// | (_| (_) | .` | | | | / (_) | |__\\__ \\\n// \\___\\___/|_|\\_| |_| |_|_\\\\___/|____|___/\n\n// panel with controls\n.controlsContainer {\n @include adaptive-color('background-color', color(panel-dark), color(dark-2));\n\n text-align: right;\n display: block;\n @media print {\n display: none;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n .label{\n .control-row-item + .control-row-item{\n margin-right: 6px;\n }\n }\n\n .control-sections > li {\n list-style: none;\n display: inline-block;\n // &:not(:last-child){\n border-left: 1px solid darken(color(panel-dark), 8%);\n padding: 0 5px 0 5px;\n position: relative;\n\n // label for a section of controls, e.g layer controls or technique controls\n .section-label {\n @include adaptive-color('background-color', color(panel-dark), color(dark-2));\n @include adaptive-color('color', color(tab-text-color), on-color(dark));\n font-size: 8pt;\n top: -12px;\n position: absolute;\n padding: 0 5px;\n border-radius: 2px 2px 0 0;\n text-align: center;\n cursor: default;\n user-select: none;\n white-space: nowrap;\n z-index: 1;\n }\n\n .control-row-item {\n display: inline-block;\n position: relative;\n height: 34px;\n\n & > :not(.disabled) {\n @include adaptive-color('color', black, white);\n }\n\n & > .disabled {\n @include adaptive-color('color', #aaaaaa, rgb(255 255 255 / 25%));\n }\n\n .control-row-button {\n border-radius: 3px;\n padding: 5px;\n height: 24px;\n cursor: pointer;\n\n &:hover {\n @include adaptive-color('background-color', darken(color(panel-dark), 5%), color(dark-4));\n }\n\n &.dropdown::after {\n font-size: 5pt;\n content: '▼';\n }\n span{\n vertical-align: middle;\n }\n .control-label {\n padding-right: 5px;\n }\n }\n\n // dropdown controls container\n .dropdown-container {\n @include adaptive-color('background-color', white, color(dark-2));\n @include adaptive-color('border', 1px solid black, 1px solid color(dark-4));\n @include adaptive-color('box-shadow', 0px 10px 5px rgba(0, 0, 0, 0.5), 0px 10px 5px color(dark-2));\n\n &.left {\n right: 0;\n }\n\n position: absolute;\n z-index: 100; //draw on top of other controls\n width: max-content;\n\n &.inputfield {\n width: 150px;\n padding: 0px 10px 10px;\n z-index: 1000;\n\n .mat-mdc-form-field {\n width: 100%;\n\n &:first-child {\n padding-top: 5px;\n }\n }\n }\n .mat-mdc-floating-label {\n @include adaptive-color-dark-only('color', rgba(255, 255, 255, 0.9));\n }\n\n .mat-mdc-input-element,\n .mat-mdc-input-element::placeholder {\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n .mat-mdc-input-element:disabled {\n @include adaptive-color-dark-only('color', color(dark-disabled));\n }\n .mdc-line-ripple::before {\n @include adaptive-color-dark-only('border-bottom-color', on-color(dark));\n }\n .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n @include adaptive-color-dark-only('border-bottom-color', transparent);\n @include adaptive-color-dark-only(\n 'background-image',\n linear-gradient(to right, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%)\n );\n }\n .mat-mdc-select-value-text {\n @include adaptive-color-dark-only('color', rgba(255, 255, 255, 0.9));\n }\n .mat-mdc-select-arrow {\n @include adaptive-color-dark-only('color', rgba(255, 255, 255, 0.9));\n }\n\n .disabled-text {\n @include adaptive-color('color', rgba(0, 0, 0, 0.38), color(dark-disabled));\n }\n }\n }\n }\n}\n\n//////////////////////\n// Checkbox Styling //\n//////////////////////\n\n.checkbox-custom {\n opacity: 0;\n position: absolute;\n\n &:disabled {\n cursor: default;\n }\n}\n\n.checkbox-custom,\n.checkbox-custom-label {\n display: inline-block;\n vertical-align: middle;\n margin: 5px;\n cursor: pointer;\n}\n\n.checkbox-custom-label {\n position: relative;\n\n &.disabled {\n @include adaptive-color('color', rgba(0, 0, 0, 0.46), color(dark-disabled));\n cursor: default;\n }\n}\n\n.checkbox-custom + .checkbox-custom-label:before {\n content: '';\n background: #fff;\n border: 3px solid color(panel-dark);\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 10px;\n padding: 2px;\n margin-right: 5px;\n text-align: center;\n}\n\n.checkbox-custom:checked + .checkbox-custom-label:before {\n @include adaptive-color('background', color(cell-highlight-color), color(cell-highlight-dark-color));\n @include adaptive-color('box-shadow', inset 0px 0px 0px 1px color(cell-highlight-color), inset 0px 0px 0px 1px color(cell-highlight-dark-color));\n}\n\n.checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n @include adaptive-color('background', desaturate(color(cell-highlight-color), 100%), desaturate(color(cell-highlight-dark-color), 100%));\n @include adaptive-color(\n 'box-shadow',\n inset 0px 0px 0px 1px desaturate(color(cell-highlight-color), 100%),\n inset 0px 0px 0px 1px desaturate(color(cell-highlight-dark-color), 100%)\n );\n}\n\n//////////////////////\n/// Dialog Styling ///\n//////////////////////\n.dialog-custom .mat-mdc-dialog-container {\n padding: 0 !important;\n}\n\n.mat-drawer-side.mat-drawer-end {\n @include adaptive-color-dark-only('border-left', none);\n}\n\n.mat-drawer-inner-container {\n @include adaptive-color('background-color', color(panel-light), color(dark-2));\n\n a {\n @include adaptive-color-dark-only('color', color(dark-link));\n }\n a:visited,\n a:active {\n @include adaptive-color-dark-only('color', color(dark-link-active));\n }\n .mat-mdc-form-field, .mat-mdc-form-field:hover {\n .mdc-notched-outline__leading,\n .mdc-notched-outline__notch,\n .mdc-notched-outline__trailing {\n @include adaptive-color-dark-only('border-color', on-color(dark) !important);\n }\n }\n\n .mat-mdc-card {\n @include adaptive-color-dark-only('background-color', color(dark-3));\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n\n .mat-expansion-panel .mat-expansion-panel-header,\n .mat-expansion-panel-body {\n @include adaptive-color-dark-only('background-color', color(dark-3));\n }\n\n .mat-expansion-panel-header-title {\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n\n .mat-divider {\n @include adaptive-color-dark-only('border-top-color', color(dark-4));\n }\n\n .mat-mdc-button-base {\n @include adaptive-color-dark-only('background-color', color(dark-4));\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n}\n\n.mat-mdc-dialog-container .markdown {\n padding: 25px;\n}\n\n// patch popover style\n.popover {\n //positioning because we didn't import bootstrap\n position: absolute;\n // add border radius\n border-radius: 4px !important;\n //don't force 20rem width, conform to content of popover\n width: unset !important;\n}\n\n// form field styling\n.mat-mdc-form-field {\n .mdc-text-field--filled, .mdc-text-field--filled:hover {\n background-color: transparent !important;\n }\n}\n.hide-subscript {\n .mat-mdc-form-field-subscript-wrapper {\n display: none !important;\n }\n}\n.mat-mdc-floating-label, .mat-mdc-form-field-hint {\n letter-spacing: normal !important;\n}\n\n// expansion panel styling\n.mat-expansion-panel-body {\n padding-bottom: 24px !important;\n}","/* roboto-cyrillic-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-cyrillic-ext-400-normal.woff2) format('woff2'), url(mitre/roboto-cyrillic-ext-400-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* roboto-cyrillic-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-cyrillic-400-normal.woff2) format('woff2'), url(mitre/roboto-cyrillic-400-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* roboto-greek-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-greek-ext-400-normal.woff2) format('woff2'), url(mitre/roboto-greek-ext-400-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* roboto-greek-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-greek-400-normal.woff2) format('woff2'), url(mitre/roboto-greek-400-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* roboto-vietnamese-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-vietnamese-400-normal.woff2) format('woff2'), url(mitre/roboto-vietnamese-400-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* roboto-latin-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-latin-ext-400-normal.woff2) format('woff2'), url(mitre/roboto-latin-ext-400-normal.woff) format('woff');\n unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* roboto-latin-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-latin-400-normal.woff2) format('woff2'), url(mitre/roboto-latin-400-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}","/* roboto-mono-cyrillic-ext-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-mono-cyrillic-ext-400-normal.woff2) format('woff2'), url(mitre/roboto-mono-cyrillic-ext-400-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* roboto-mono-cyrillic-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-mono-cyrillic-400-normal.woff2) format('woff2'), url(mitre/roboto-mono-cyrillic-400-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* roboto-mono-greek-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-mono-greek-400-normal.woff2) format('woff2'), url(mitre/roboto-mono-greek-400-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* roboto-mono-vietnamese-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-mono-vietnamese-400-normal.woff2) format('woff2'), url(mitre/roboto-mono-vietnamese-400-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* roboto-mono-latin-ext-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-mono-latin-ext-400-normal.woff2) format('woff2'), url(mitre/roboto-mono-latin-ext-400-normal.woff) format('woff');\n unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* roboto-mono-latin-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(mitre/roboto-mono-latin-400-normal.woff2) format('woff2'), url(mitre/roboto-mono-latin-400-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}","$column-hover-color: rgb(235, 235, 235);\n$disabled-color: darken($column-hover-color, 20%);\n\n// ATT&CK Brand colors\n$attack-colors: (\n attack-orange: #c63f1f,\n attack-blue: #062f4f,\n);\n\n/**\n * Colors used across the Navigator. Shared by the ATT&CK Website.\n * For each color-pair:\n * - \"color\" refers to the color itself\n * - \"on-color\" refers to the most readable text-color to appear on top of the color.\n * Note: some colors don't define on-colors. This is because, for these colors, they aren't intended to\n * appear with inner content. For example, \"link\" is only intended to be used for link text, which inherently\n * cannot have inner text.\n */\n$colors: (\n primary: (\n color: map-get($attack-colors, attack-orange),\n on-color: white,\n ),\n //used for header and some nav elements\n secondary:\n (\n color: map-get($attack-colors, attack-blue),\n on-color: white,\n ),\n //used for footer and some buttons\n body:\n (\n color: white,\n on-color: #39434c,\n ),\n //primary page body\n light:\n (\n color: white,\n on-color: #39434c,\n ),\n dark: (\n color: #08080b,\n on-color: white,\n ),\n // dark theme colors variations 0-3 (from darkest to lightest)\n dark-1:\n (\n color: #1a1a23,\n on-color: white,\n ),\n dark-2: (\n color: #2e2e3f,\n on-color: #fa6341,\n ),\n // accent dark color scheme (used for :hover selectors)\n dark-3:\n (\n color: #3f3f56,\n on-color: white,\n ),\n dark-4: (\n color: #4c4c68,\n on-color: white,\n ),\n dark-disabled: (\n color: rgb(255 255 255 / 25%),\n ),\n dark-link: (\n color: #7588e8,\n ),\n dark-link-active: (\n color: #e847e8,\n ),\n link: (\n color: #4f7cac,\n ),\n // hyperlinks\n matrix-header:\n (\n color: gray,\n on-color: white,\n ),\n // color of matrix headers\n cell-highlight-color:\n (\n color: rgb(96, 197, 255),\n ),\n cell-highlight-dark-color: (\n color: #464dff,\n ),\n hover-cell-font-color: (\n color: rgb(0, 0, 0),\n ),\n panel-dark: (\n color: #ddd,\n ),\n panel-light: (\n color: lighten(#ddd, 8%),\n ),\n tab-text-color: (\n color: #555,\n ),\n button-dark: (\n color: #b8b8b8,\n ),\n //bootstrap colors\n bootstrap-primary:\n (\n color: #428bca,\n on-color: white,\n ),\n bootstrap-success: (\n color: #5cb85c,\n on-color: white,\n ),\n bootstrap-danger: (\n color: #d9534f,\n on-color: black,\n ),\n bootstrap-warning: (\n color: #f0ad4e,\n on-color: black,\n ),\n bootstrap-info: (\n color: #5bc0de,\n on-color: white,\n ),\n);\n\n// accessor helper for $colors. Gets the color of the named pair\n@function color($name) {\n @return map-get(map-get($colors, $name), 'color');\n}\n\n// given a color name, get an alternate version of the color, for patterning\n// if the base color is dark, the alternate will be slightly lighter.\n// if the base color is light, the alternate will be slightly darker.\n// contrast, an optional argument, multiplies to create a more distant or similar color. >1 is more distant, <1 is more similar.\n@function color-alternate($name, $contrast: 1) {\n @return mix(invert(color($name)), color($name), $weight: $contrast * 5%);\n}\n\n// accessor helper for $colors. Gets the on-color of the named pair\n@function on-color($name) {\n @return map-get(map-get($colors, $name), 'on-color');\n}\n\n// given a color-name, get an emphasized version of the on-color.\n// The emphasized on-color is less like the background color.\n@function on-color-emphasis($name) {\n @return mix(invert(color($name)), on-color($name));\n}\n// given a color-name, get an deemphasized version of the on-color.\n// The deemphasized on-color is more like the background color.\n@function on-color-deemphasis($name) {\n @return mix(color($name), on-color($name), 25%);\n}\n\n// given a color name, compute a border color for the color\n@function border-color($name) {\n @return mix(invert(color($name)), color($name), 12.5%);\n // @return rgba(invert(color($name)), 0.125);\n}\n\n// IMPORTANT USAGE NOTE:\n// to use adaptive colors, you MUST disable view encapsulation on the component\n// you're applying the styles within. Otherwise ancestor classes cannot be assessed\n// by the mixins to determine the app theme configuration.\n\n/// assign the property with different values in the light and dark themes\n/// @param {property} $property the property you want to set the value of\n/// @param {value} $light-value the value to assign when in the light theme\n/// @param {value} $dark-value the value to assign when in the dark theme\n@mixin adaptive-color($property, $light-value, $dark-value) {\n @include adaptive-color-light-only($property, $light-value);\n @include adaptive-color-dark-only($property, $dark-value);\n}\n\n/// assign the property with the given value only when in the light theme\n/// @param {property} $property the property you want to set the value of\n/// @param {value} $light-value the value to assign when in the light theme\n@mixin adaptive-color-light-only($property, $light-value) {\n .theme-use-system & {\n // when the ancestor class shows that the app is configured to use the system theme,\n // use a media query to assign the light value\n @media (prefers-color-scheme: light) {\n #{$property}: $light-value;\n }\n }\n .theme-override-light & {\n // when the ancestor class shows that the app is configured to use the light theme,\n // assign the light value\n #{$property}: $light-value;\n }\n}\n\n/// assign the property with the given value only when in the dark theme\n/// @param {property} $property the property you want to set the value of\n/// @param {value} $light-value the value to assign when in the light theme\n/// @param {value} $dark-value the value to assign when in the dark theme\n@mixin adaptive-color-dark-only($property, $dark-value) {\n .theme-use-system & {\n // when the ancestor class shows that the app is configured to use the system theme,\n // use a media query to assign the dark value\n @media (prefers-color-scheme: dark) {\n #{$property}: $dark-value;\n }\n }\n .theme-override-dark & {\n // when the ancestor class shows that the app is configured to use the dark theme,\n // assign the dark value\n #{$property}: $dark-value;\n }\n}\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[0,2,3]} \ No newline at end of file +{"version":3,"file":"styles.css","mappings":"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","sources":["./node_modules/@angular/material/prebuilt-themes/indigo-pink.css","./src/styles.scss","./node_modules/@fontsource/roboto/index.css","./node_modules/@fontsource/roboto-mono/index.css","./src/colors.scss"],"sourcesContent":[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, 0.1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus::before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}html{--mat-ripple-color:rgba(0, 0, 0, 0.1)}html{--mat-option-selected-state-label-text-color:#3f51b5;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-accent{--mat-option-selected-state-label-text-color:#ff4081;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}.mat-warn{--mat-option-selected-state-label-text-color:#f44336;--mat-option-label-text-color:rgba(0, 0, 0, 0.87);--mat-option-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-option-selected-state-layer-color:rgba(0, 0, 0, 0.04)}html{--mat-optgroup-label-text-color:rgba(0, 0, 0, 0.87)}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color:#3f51b5;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#3f51b5;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color:#ff4081;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#ff4081;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color:#f44336;--mat-full-pseudo-checkbox-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color:#fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color:#b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color:#b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color:#f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color:#b0b0b0}html{--mat-app-background-color:#fafafa;--mat-app-text-color:rgba(0, 0, 0, 0.87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12)}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12)}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12)}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12)}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12)}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12)}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12)}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12)}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}.mat-theme-loaded-marker{display:none}html{--mat-option-label-text-font:Roboto, sans-serif;--mat-option-label-text-line-height:24px;--mat-option-label-text-size:16px;--mat-option-label-text-tracking:0.03125em;--mat-option-label-text-weight:400}html{--mat-optgroup-label-text-font:Roboto, sans-serif;--mat-optgroup-label-text-line-height:24px;--mat-optgroup-label-text-size:16px;--mat-optgroup-label-text-tracking:0.03125em;--mat-optgroup-label-text-weight:400}html{--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}html{--mdc-elevated-card-container-color:white;--mdc-elevated-card-container-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-color:white;--mdc-outlined-card-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-card-container-elevation:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mat-card-subtitle-text-color:rgba(0, 0, 0, 0.54)}html{--mat-card-title-text-font:Roboto, sans-serif;--mat-card-title-text-line-height:32px;--mat-card-title-text-size:20px;--mat-card-title-text-tracking:0.0125em;--mat-card-title-text-weight:500;--mat-card-subtitle-text-font:Roboto, sans-serif;--mat-card-subtitle-text-line-height:22px;--mat-card-subtitle-text-size:14px;--mat-card-subtitle-text-tracking:0.0071428571em;--mat-card-subtitle-text-weight:500}html{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color:#3f51b5;--mdc-linear-progress-track-color:rgba(63, 81, 181, 0.25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color:#ff4081;--mdc-linear-progress-track-color:rgba(255, 64, 129, 0.25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color:#f44336;--mdc-linear-progress-track-color:rgba(244, 67, 54, 0.25)}html{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}html{--mdc-plain-tooltip-container-color:#616161;--mdc-plain-tooltip-supporting-text-color:#fff}html{--mdc-plain-tooltip-supporting-text-font:Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size:12px;--mdc-plain-tooltip-supporting-text-weight:400;--mdc-plain-tooltip-supporting-text-tracking:0.0333333333em}html{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}html{--mdc-filled-text-field-caret-color:#3f51b5;--mdc-filled-text-field-focus-active-indicator-color:#3f51b5;--mdc-filled-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-filled-text-field-container-color:whitesmoke;--mdc-filled-text-field-disabled-container-color:#fafafa;--mdc-filled-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-filled-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-filled-text-field-error-hover-label-text-color:#f44336;--mdc-filled-text-field-error-focus-label-text-color:#f44336;--mdc-filled-text-field-error-label-text-color:#f44336;--mdc-filled-text-field-error-caret-color:#f44336;--mdc-filled-text-field-active-indicator-color:rgba(0, 0, 0, 0.42);--mdc-filled-text-field-disabled-active-indicator-color:rgba(0, 0, 0, 0.06);--mdc-filled-text-field-hover-active-indicator-color:rgba(0, 0, 0, 0.87);--mdc-filled-text-field-error-active-indicator-color:#f44336;--mdc-filled-text-field-error-focus-active-indicator-color:#f44336;--mdc-filled-text-field-error-hover-active-indicator-color:#f44336;--mdc-outlined-text-field-caret-color:#3f51b5;--mdc-outlined-text-field-focus-outline-color:#3f51b5;--mdc-outlined-text-field-focus-label-text-color:rgba(63, 81, 181, 0.87);--mdc-outlined-text-field-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-hover-label-text-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-disabled-input-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-input-text-placeholder-color:rgba(0, 0, 0, 0.6);--mdc-outlined-text-field-error-caret-color:#f44336;--mdc-outlined-text-field-error-focus-label-text-color:#f44336;--mdc-outlined-text-field-error-label-text-color:#f44336;--mdc-outlined-text-field-error-hover-label-text-color:#f44336;--mdc-outlined-text-field-outline-color:rgba(0, 0, 0, 0.38);--mdc-outlined-text-field-disabled-outline-color:rgba(0, 0, 0, 0.06);--mdc-outlined-text-field-hover-outline-color:rgba(0, 0, 0, 0.87);--mdc-outlined-text-field-error-focus-outline-color:#f44336;--mdc-outlined-text-field-error-hover-outline-color:#f44336;--mdc-outlined-text-field-error-outline-color:#f44336;--mat-form-field-focus-select-arrow-color:rgba(63, 81, 181, 0.87);--mat-form-field-disabled-input-text-placeholder-color:rgba(0, 0, 0, 0.38);--mat-form-field-state-layer-color:rgba(0, 0, 0, 0.87);--mat-form-field-error-text-color:#f44336;--mat-form-field-select-option-text-color:inherit;--mat-form-field-select-disabled-option-text-color:GrayText;--mat-form-field-leading-icon-color:unset;--mat-form-field-disabled-leading-icon-color:unset;--mat-form-field-trailing-icon-color:unset;--mat-form-field-disabled-trailing-icon-color:unset;--mat-form-field-error-focus-trailing-icon-color:unset;--mat-form-field-error-hover-trailing-icon-color:unset;--mat-form-field-error-trailing-icon-color:unset;--mat-form-field-enabled-select-arrow-color:rgba(0, 0, 0, 0.54);--mat-form-field-disabled-select-arrow-color:rgba(0, 0, 0, 0.38);--mat-form-field-hover-state-layer-opacity:0.04;--mat-form-field-focus-state-layer-opacity:0.08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color:#ff4081;--mdc-filled-text-field-focus-active-indicator-color:#ff4081;--mdc-filled-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mdc-outlined-text-field-caret-color:#ff4081;--mdc-outlined-text-field-focus-outline-color:#ff4081;--mdc-outlined-text-field-focus-label-text-color:rgba(255, 64, 129, 0.87);--mat-form-field-focus-select-arrow-color:rgba(255, 64, 129, 0.87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color:#f44336;--mdc-filled-text-field-focus-active-indicator-color:#f44336;--mdc-filled-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mdc-outlined-text-field-caret-color:#f44336;--mdc-outlined-text-field-focus-outline-color:#f44336;--mdc-outlined-text-field-focus-label-text-color:rgba(244, 67, 54, 0.87);--mat-form-field-focus-select-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-form-field-container-height:56px;--mat-form-field-filled-label-display:block;--mat-form-field-container-vertical-padding:16px;--mat-form-field-filled-with-label-container-padding-top:24px;--mat-form-field-filled-with-label-container-padding-bottom:8px}html{--mdc-filled-text-field-label-text-font:Roboto, sans-serif;--mdc-filled-text-field-label-text-size:16px;--mdc-filled-text-field-label-text-tracking:0.03125em;--mdc-filled-text-field-label-text-weight:400;--mdc-outlined-text-field-label-text-font:Roboto, sans-serif;--mdc-outlined-text-field-label-text-size:16px;--mdc-outlined-text-field-label-text-tracking:0.03125em;--mdc-outlined-text-field-label-text-weight:400;--mat-form-field-container-text-font:Roboto, sans-serif;--mat-form-field-container-text-line-height:24px;--mat-form-field-container-text-size:16px;--mat-form-field-container-text-tracking:0.03125em;--mat-form-field-container-text-weight:400;--mat-form-field-outlined-label-text-populated-size:16px;--mat-form-field-subscript-text-font:Roboto, sans-serif;--mat-form-field-subscript-text-line-height:20px;--mat-form-field-subscript-text-size:12px;--mat-form-field-subscript-text-tracking:0.0333333333em;--mat-form-field-subscript-text-weight:400}html{--mat-select-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(63, 81, 181, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(255, 64, 129, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color:white;--mat-select-enabled-trigger-text-color:rgba(0, 0, 0, 0.87);--mat-select-disabled-trigger-text-color:rgba(0, 0, 0, 0.38);--mat-select-placeholder-text-color:rgba(0, 0, 0, 0.6);--mat-select-enabled-arrow-color:rgba(0, 0, 0, 0.54);--mat-select-disabled-arrow-color:rgba(0, 0, 0, 0.38);--mat-select-focused-arrow-color:rgba(244, 67, 54, 0.87);--mat-select-invalid-arrow-color:rgba(244, 67, 54, 0.87)}html{--mat-select-arrow-transform:translateY(-8px)}html{--mat-select-trigger-text-font:Roboto, sans-serif;--mat-select-trigger-text-line-height:24px;--mat-select-trigger-text-size:16px;--mat-select-trigger-text-tracking:0.03125em;--mat-select-trigger-text-weight:400}html{--mat-autocomplete-container-shape:4px;--mat-autocomplete-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}html{--mat-autocomplete-background-color:white}html{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mat-dialog-container-max-width:80vw;--mat-dialog-container-small-max-width:80vw;--mat-dialog-container-min-width:0;--mat-dialog-actions-alignment:start;--mat-dialog-actions-padding:8px;--mat-dialog-content-padding:20px 24px;--mat-dialog-with-actions-content-padding:20px 24px;--mat-dialog-headline-padding:0 24px 9px}html{--mdc-dialog-container-color:white;--mdc-dialog-subhead-color:rgba(0, 0, 0, 0.87);--mdc-dialog-supporting-text-color:rgba(0, 0, 0, 0.6)}html{--mdc-dialog-subhead-font:Roboto, sans-serif;--mdc-dialog-subhead-line-height:32px;--mdc-dialog-subhead-size:20px;--mdc-dialog-subhead-weight:500;--mdc-dialog-subhead-tracking:0.0125em;--mdc-dialog-supporting-text-font:Roboto, sans-serif;--mdc-dialog-supporting-text-line-height:24px;--mdc-dialog-supporting-text-size:16px;--mdc-dialog-supporting-text-weight:400;--mdc-dialog-supporting-text-tracking:0.03125em}.mat-mdc-standard-chip{--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px;--mdc-chip-outline-width:0;--mdc-chip-outline-color:transparent;--mdc-chip-disabled-outline-color:transparent;--mdc-chip-focus-outline-color:transparent;--mdc-chip-hover-state-layer-opacity:0.04;--mdc-chip-with-avatar-disabled-avatar-opacity:1;--mdc-chip-flat-selected-outline-width:0;--mdc-chip-selected-hover-state-layer-opacity:0.04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:1;--mdc-chip-with-icon-disabled-icon-opacity:1;--mat-chip-disabled-container-opacity:0.4;--mat-chip-trailing-action-opacity:0.54;--mat-chip-trailing-action-focus-opacity:1;--mat-chip-trailing-action-state-layer-color:transparent;--mat-chip-selected-trailing-action-state-layer-color:transparent;--mat-chip-trailing-action-hover-state-layer-opacity:0;--mat-chip-trailing-action-focus-state-layer-opacity:0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color:#212121;--mdc-chip-elevated-container-color:#e0e0e0;--mdc-chip-elevated-selected-container-color:#e0e0e0;--mdc-chip-elevated-disabled-container-color:#e0e0e0;--mdc-chip-flat-disabled-selected-container-color:#e0e0e0;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:#212121;--mdc-chip-selected-label-text-color:#212121;--mdc-chip-with-icon-icon-color:#212121;--mdc-chip-with-icon-disabled-icon-color:#212121;--mdc-chip-with-icon-selected-icon-color:#212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:#212121;--mdc-chip-with-trailing-icon-trailing-icon-color:#212121;--mat-chip-selected-disabled-trailing-icon-color:#212121;--mat-chip-selected-trailing-icon-color:#212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#3f51b5;--mdc-chip-elevated-selected-container-color:#3f51b5;--mdc-chip-elevated-disabled-container-color:#3f51b5;--mdc-chip-flat-disabled-selected-container-color:#3f51b5;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#ff4081;--mdc-chip-elevated-selected-container-color:#ff4081;--mdc-chip-elevated-disabled-container-color:#ff4081;--mdc-chip-flat-disabled-selected-container-color:#ff4081;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color:white;--mdc-chip-elevated-container-color:#f44336;--mdc-chip-elevated-selected-container-color:#f44336;--mdc-chip-elevated-disabled-container-color:#f44336;--mdc-chip-flat-disabled-selected-container-color:#f44336;--mdc-chip-focus-state-layer-color:black;--mdc-chip-hover-state-layer-color:black;--mdc-chip-selected-hover-state-layer-color:black;--mdc-chip-focus-state-layer-opacity:0.12;--mdc-chip-selected-focus-state-layer-color:black;--mdc-chip-selected-focus-state-layer-opacity:0.12;--mdc-chip-label-text-color:white;--mdc-chip-selected-label-text-color:white;--mdc-chip-with-icon-icon-color:white;--mdc-chip-with-icon-disabled-icon-color:white;--mdc-chip-with-icon-selected-icon-color:white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color:white;--mdc-chip-with-trailing-icon-trailing-icon-color:white;--mat-chip-selected-disabled-trailing-icon-color:white;--mat-chip-selected-trailing-icon-color:white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height:32px}.mat-mdc-standard-chip{--mdc-chip-label-text-font:Roboto, sans-serif;--mdc-chip-label-text-line-height:20px;--mdc-chip-label-text-size:14px;--mdc-chip-label-text-tracking:0.0178571429em;--mdc-chip-label-text-weight:400}html{--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1;--mat-switch-disabled-selected-handle-opacity:0.38;--mat-switch-disabled-unselected-handle-opacity:0.38;--mat-switch-unselected-handle-size:20px;--mat-switch-selected-handle-size:20px;--mat-switch-pressed-handle-size:20px;--mat-switch-with-icon-handle-size:20px;--mat-switch-selected-handle-horizontal-margin:0;--mat-switch-selected-with-icon-handle-horizontal-margin:0;--mat-switch-selected-pressed-handle-horizontal-margin:0;--mat-switch-unselected-handle-horizontal-margin:0;--mat-switch-unselected-with-icon-handle-horizontal-margin:0;--mat-switch-unselected-pressed-handle-horizontal-margin:0;--mat-switch-visible-track-opacity:1;--mat-switch-hidden-track-opacity:1;--mat-switch-visible-track-transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);--mat-switch-hidden-track-transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);--mat-switch-track-outline-width:1px;--mat-switch-track-outline-color:transparent;--mat-switch-selected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-width:1px;--mat-switch-disabled-unselected-track-outline-color:transparent}html{--mdc-switch-selected-focus-state-layer-color:#3949ab;--mdc-switch-selected-handle-color:#3949ab;--mdc-switch-selected-hover-state-layer-color:#3949ab;--mdc-switch-selected-pressed-state-layer-color:#3949ab;--mdc-switch-selected-focus-handle-color:#1a237e;--mdc-switch-selected-hover-handle-color:#1a237e;--mdc-switch-selected-pressed-handle-color:#1a237e;--mdc-switch-selected-focus-track-color:#7986cb;--mdc-switch-selected-hover-track-color:#7986cb;--mdc-switch-selected-pressed-track-color:#7986cb;--mdc-switch-selected-track-color:#7986cb;--mdc-switch-disabled-selected-handle-color:#424242;--mdc-switch-disabled-selected-icon-color:#fff;--mdc-switch-disabled-selected-track-color:#424242;--mdc-switch-disabled-unselected-handle-color:#424242;--mdc-switch-disabled-unselected-icon-color:#fff;--mdc-switch-disabled-unselected-track-color:#424242;--mdc-switch-handle-surface-color:var(--mdc-theme-surface, #fff);--mdc-switch-handle-elevation-shadow:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mdc-switch-handle-shadow-color:black;--mdc-switch-disabled-handle-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-switch-selected-icon-color:#fff;--mdc-switch-unselected-focus-handle-color:#212121;--mdc-switch-unselected-focus-state-layer-color:#424242;--mdc-switch-unselected-focus-track-color:#e0e0e0;--mdc-switch-unselected-handle-color:#616161;--mdc-switch-unselected-hover-handle-color:#212121;--mdc-switch-unselected-hover-state-layer-color:#424242;--mdc-switch-unselected-hover-track-color:#e0e0e0;--mdc-switch-unselected-icon-color:#fff;--mdc-switch-unselected-pressed-handle-color:#212121;--mdc-switch-unselected-pressed-state-layer-color:#424242;--mdc-switch-unselected-pressed-track-color:#e0e0e0;--mdc-switch-unselected-track-color:#e0e0e0;--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, 0.38)}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color:#d81b60;--mdc-switch-selected-handle-color:#d81b60;--mdc-switch-selected-hover-state-layer-color:#d81b60;--mdc-switch-selected-pressed-state-layer-color:#d81b60;--mdc-switch-selected-focus-handle-color:#880e4f;--mdc-switch-selected-hover-handle-color:#880e4f;--mdc-switch-selected-pressed-handle-color:#880e4f;--mdc-switch-selected-focus-track-color:#f06292;--mdc-switch-selected-hover-track-color:#f06292;--mdc-switch-selected-pressed-track-color:#f06292;--mdc-switch-selected-track-color:#f06292}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color:#e53935;--mdc-switch-selected-handle-color:#e53935;--mdc-switch-selected-hover-state-layer-color:#e53935;--mdc-switch-selected-pressed-state-layer-color:#e53935;--mdc-switch-selected-focus-handle-color:#b71c1c;--mdc-switch-selected-hover-handle-color:#b71c1c;--mdc-switch-selected-pressed-handle-color:#b71c1c;--mdc-switch-selected-focus-track-color:#e57373;--mdc-switch-selected-hover-track-color:#e57373;--mdc-switch-selected-pressed-track-color:#e57373;--mdc-switch-selected-track-color:#e57373}html{--mdc-switch-state-layer-size:40px}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px}.mat-mdc-radio-button{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#3f51b5;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#ff4081;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336;--mat-radio-ripple-color:black;--mat-radio-checked-ripple-color:#f44336;--mat-radio-disabled-label-color:rgba(0, 0, 0, 0.38)}html{--mdc-radio-state-layer-size:40px;--mat-radio-touch-target-display:block}.mat-mdc-radio-button{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mat-slider-value-indicator-width:auto;--mat-slider-value-indicator-height:32px;--mat-slider-value-indicator-caret-display:block;--mat-slider-value-indicator-border-radius:4px;--mat-slider-value-indicator-padding:0 12px;--mat-slider-value-indicator-text-transform:none;--mat-slider-value-indicator-container-transform:translateX(-50%);--mdc-slider-active-track-height:6px;--mdc-slider-active-track-shape:9999px;--mdc-slider-handle-height:20px;--mdc-slider-handle-shape:50%;--mdc-slider-handle-width:20px;--mdc-slider-inactive-track-height:4px;--mdc-slider-inactive-track-shape:9999px;--mdc-slider-with-overlap-handle-outline-width:1px;--mdc-slider-with-tick-marks-active-container-opacity:0.6;--mdc-slider-with-tick-marks-container-shape:50%;--mdc-slider-with-tick-marks-container-size:2px;--mdc-slider-with-tick-marks-inactive-container-opacity:0.6}html{--mdc-slider-handle-color:#3f51b5;--mdc-slider-focus-handle-color:#3f51b5;--mdc-slider-hover-handle-color:#3f51b5;--mdc-slider-active-track-color:#3f51b5;--mdc-slider-inactive-track-color:#3f51b5;--mdc-slider-with-tick-marks-inactive-container-color:#3f51b5;--mdc-slider-with-tick-marks-active-container-color:white;--mdc-slider-disabled-active-track-color:#000;--mdc-slider-disabled-handle-color:#000;--mdc-slider-disabled-inactive-track-color:#000;--mdc-slider-label-container-color:#000;--mdc-slider-label-label-text-color:#fff;--mdc-slider-with-overlap-handle-outline-color:#fff;--mdc-slider-with-tick-marks-disabled-container-color:#000;--mdc-slider-handle-elevation:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);--mat-slider-ripple-color:#3f51b5;--mat-slider-hover-state-layer-color:rgba(63, 81, 181, 0.05);--mat-slider-focus-state-layer-color:rgba(63, 81, 181, 0.2);--mat-slider-value-indicator-opacity:0.6}html .mat-accent{--mat-slider-ripple-color:#ff4081;--mat-slider-hover-state-layer-color:rgba(255, 64, 129, 0.05);--mat-slider-focus-state-layer-color:rgba(255, 64, 129, 0.2);--mdc-slider-handle-color:#ff4081;--mdc-slider-focus-handle-color:#ff4081;--mdc-slider-hover-handle-color:#ff4081;--mdc-slider-active-track-color:#ff4081;--mdc-slider-inactive-track-color:#ff4081;--mdc-slider-with-tick-marks-inactive-container-color:#ff4081;--mdc-slider-with-tick-marks-active-container-color:white}html .mat-warn{--mat-slider-ripple-color:#f44336;--mat-slider-hover-state-layer-color:rgba(244, 67, 54, 0.05);--mat-slider-focus-state-layer-color:rgba(244, 67, 54, 0.2);--mdc-slider-handle-color:#f44336;--mdc-slider-focus-handle-color:#f44336;--mdc-slider-hover-handle-color:#f44336;--mdc-slider-active-track-color:#f44336;--mdc-slider-inactive-track-color:#f44336;--mdc-slider-with-tick-marks-inactive-container-color:#f44336;--mdc-slider-with-tick-marks-active-container-color:white}html{--mdc-slider-label-label-text-font:Roboto, sans-serif;--mdc-slider-label-label-text-size:14px;--mdc-slider-label-label-text-line-height:22px;--mdc-slider-label-label-text-tracking:0.0071428571em;--mdc-slider-label-label-text-weight:500}html{--mat-menu-container-shape:4px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px}html{--mat-menu-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-menu-item-icon-color:rgba(0, 0, 0, 0.87);--mat-menu-item-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-item-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-menu-container-color:white;--mat-menu-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-menu-item-label-text-font:Roboto, sans-serif;--mat-menu-item-label-text-size:16px;--mat-menu-item-label-text-tracking:0.03125em;--mat-menu-item-label-text-line-height:24px;--mat-menu-item-label-text-weight:400}html{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38;--mat-list-active-indicator-color:transparent;--mat-list-active-indicator-shape:4px}html{--mdc-list-list-item-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-supporting-text-color:rgba(0, 0, 0, 0.54);--mdc-list-list-item-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-supporting-text-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-selected-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-disabled-label-text-color:black;--mdc-list-list-item-disabled-leading-icon-color:black;--mdc-list-list-item-disabled-trailing-icon-color:black;--mdc-list-list-item-hover-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-leading-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-hover-trailing-icon-color:rgba(0, 0, 0, 0.38);--mdc-list-list-item-focus-label-text-color:rgba(0, 0, 0, 0.87);--mdc-list-list-item-hover-state-layer-color:black;--mdc-list-list-item-hover-state-layer-opacity:0.04;--mdc-list-list-item-focus-state-layer-color:black;--mdc-list-list-item-focus-state-layer-opacity:0.12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#3f51b5;--mdc-radio-selected-hover-icon-color:#3f51b5;--mdc-radio-selected-icon-color:#3f51b5;--mdc-radio-selected-pressed-icon-color:#3f51b5}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#ff4081;--mdc-radio-selected-hover-icon-color:#ff4081;--mdc-radio-selected-icon-color:#ff4081;--mdc-radio-selected-pressed-icon-color:#ff4081}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color:black;--mdc-radio-disabled-unselected-icon-color:black;--mdc-radio-unselected-hover-icon-color:#212121;--mdc-radio-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-radio-selected-focus-icon-color:#f44336;--mdc-radio-selected-hover-icon-color:#f44336;--mdc-radio-selected-icon-color:#f44336;--mdc-radio-selected-pressed-icon-color:#f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text{color:#3f51b5}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected.mdc-list-item--with-leading-icon .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#3f51b5}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height:48px;--mdc-list-list-item-two-line-container-height:64px;--mdc-list-list-item-three-line-container-height:88px;--mat-list-list-item-leading-icon-start-space:16px;--mat-list-list-item-leading-icon-end-space:32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size:40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mdc-list-list-item-label-text-font:Roboto, sans-serif;--mdc-list-list-item-label-text-line-height:24px;--mdc-list-list-item-label-text-size:16px;--mdc-list-list-item-label-text-tracking:0.03125em;--mdc-list-list-item-label-text-weight:400;--mdc-list-list-item-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height:20px;--mdc-list-list-item-supporting-text-size:14px;--mdc-list-list-item-supporting-text-tracking:0.0178571429em;--mdc-list-list-item-supporting-text-weight:400;--mdc-list-list-item-trailing-supporting-text-font:Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height:20px;--mdc-list-list-item-trailing-supporting-text-size:12px;--mdc-list-list-item-trailing-supporting-text-tracking:0.0333333333em;--mdc-list-list-item-trailing-supporting-text-weight:400}.mdc-list-group__subheader{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-color:rgba(0, 0, 0, 0.87);--mat-paginator-container-background-color:white;--mat-paginator-enabled-icon-color:rgba(0, 0, 0, 0.54);--mat-paginator-disabled-icon-color:rgba(0, 0, 0, 0.12)}html{--mat-paginator-container-size:56px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px}html{--mat-paginator-container-text-font:Roboto, sans-serif;--mat-paginator-container-text-line-height:20px;--mat-paginator-container-text-size:12px;--mat-paginator-container-text-tracking:0.0333333333em;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:12px}html{--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px;--mat-tab-header-divider-color:transparent;--mat-tab-header-divider-height:0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color:#3f51b5;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#3f51b5;--mat-tab-header-active-ripple-color:#3f51b5;--mat-tab-header-inactive-ripple-color:#3f51b5;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#3f51b5;--mat-tab-header-active-hover-label-text-color:#3f51b5;--mat-tab-header-active-focus-indicator-color:#3f51b5;--mat-tab-header-active-hover-indicator-color:#3f51b5}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color:#ff4081;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#ff4081;--mat-tab-header-active-ripple-color:#ff4081;--mat-tab-header-inactive-ripple-color:#ff4081;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#ff4081;--mat-tab-header-active-hover-label-text-color:#ff4081;--mat-tab-header-active-focus-indicator-color:#ff4081;--mat-tab-header-active-hover-indicator-color:#ff4081}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color:#f44336;--mat-tab-header-disabled-ripple-color:rgba(0, 0, 0, 0.38);--mat-tab-header-pagination-icon-color:black;--mat-tab-header-inactive-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-label-text-color:#f44336;--mat-tab-header-active-ripple-color:#f44336;--mat-tab-header-inactive-ripple-color:#f44336;--mat-tab-header-inactive-focus-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-inactive-hover-label-text-color:rgba(0, 0, 0, 0.6);--mat-tab-header-active-focus-label-text-color:#f44336;--mat-tab-header-active-hover-label-text-color:#f44336;--mat-tab-header-active-focus-indicator-color:#f44336;--mat-tab-header-active-hover-indicator-color:#f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color:#3f51b5;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color:#ff4081;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color:#f44336;--mat-tab-header-with-background-foreground-color:white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header{--mat-tab-header-label-text-font:Roboto, sans-serif;--mat-tab-header-label-text-size:14px;--mat-tab-header-label-text-tracking:0.0892857143em;--mat-tab-header-label-text-line-height:36px;--mat-tab-header-label-text-weight:500}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}html{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#ff4081;--mdc-checkbox-selected-hover-icon-color:#ff4081;--mdc-checkbox-selected-icon-color:#ff4081;--mdc-checkbox-selected-pressed-icon-color:#ff4081;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#ff4081;--mdc-checkbox-selected-hover-state-layer-color:#ff4081;--mdc-checkbox-selected-pressed-state-layer-color:#ff4081;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black;--mat-checkbox-disabled-label-color:rgba(0, 0, 0, 0.38)}.mat-mdc-checkbox{--mdc-form-field-label-text-color:rgba(0, 0, 0, 0.87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#3f51b5;--mdc-checkbox-selected-hover-icon-color:#3f51b5;--mdc-checkbox-selected-icon-color:#3f51b5;--mdc-checkbox-selected-pressed-icon-color:#3f51b5;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#3f51b5;--mdc-checkbox-selected-hover-state-layer-color:#3f51b5;--mdc-checkbox-selected-pressed-state-layer-color:#3f51b5;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-disabled-unselected-icon-color:rgba(0, 0, 0, 0.38);--mdc-checkbox-selected-checkmark-color:white;--mdc-checkbox-selected-focus-icon-color:#f44336;--mdc-checkbox-selected-hover-icon-color:#f44336;--mdc-checkbox-selected-icon-color:#f44336;--mdc-checkbox-selected-pressed-icon-color:#f44336;--mdc-checkbox-unselected-focus-icon-color:#212121;--mdc-checkbox-unselected-hover-icon-color:#212121;--mdc-checkbox-unselected-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-unselected-pressed-icon-color:rgba(0, 0, 0, 0.54);--mdc-checkbox-selected-focus-state-layer-color:#f44336;--mdc-checkbox-selected-hover-state-layer-color:#f44336;--mdc-checkbox-selected-pressed-state-layer-color:#f44336;--mdc-checkbox-unselected-focus-state-layer-color:black;--mdc-checkbox-unselected-hover-state-layer-color:black;--mdc-checkbox-unselected-pressed-state-layer-color:black}html{--mdc-checkbox-state-layer-size:40px;--mat-checkbox-touch-target-display:block}.mat-mdc-checkbox{--mdc-form-field-label-text-font:Roboto, sans-serif;--mdc-form-field-label-text-line-height:20px;--mdc-form-field-label-text-size:14px;--mdc-form-field-label-text-tracking:0.0178571429em;--mdc-form-field-label-text-weight:400}html{--mdc-text-button-container-shape:4px;--mdc-text-button-keep-touch-target:false;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mdc-protected-button-container-shape:4px;--mdc-protected-button-keep-touch-target:false;--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-outlined-button-container-shape:4px;--mat-text-button-horizontal-padding:8px;--mat-text-button-with-icon-horizontal-padding:8px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-protected-button-horizontal-padding:16px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:15px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px}html{--mdc-text-button-label-text-color:black;--mdc-text-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-text-button-state-layer-color:black;--mat-text-button-disabled-state-layer-color:black;--mat-text-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-text-button-hover-state-layer-opacity:0.04;--mat-text-button-focus-state-layer-opacity:0.12;--mat-text-button-pressed-state-layer-opacity:0.12;--mdc-filled-button-container-color:white;--mdc-filled-button-label-text-color:black;--mdc-filled-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-filled-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mat-filled-button-state-layer-color:black;--mat-filled-button-disabled-state-layer-color:black;--mat-filled-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-filled-button-hover-state-layer-opacity:0.04;--mat-filled-button-focus-state-layer-opacity:0.12;--mat-filled-button-pressed-state-layer-opacity:0.12;--mdc-protected-button-container-color:white;--mdc-protected-button-label-text-color:black;--mdc-protected-button-disabled-container-color:rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-protected-button-container-elevation-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-disabled-container-elevation-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-focus-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-hover-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mdc-protected-button-pressed-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-protected-button-container-shadow-color:#000;--mat-protected-button-state-layer-color:black;--mat-protected-button-disabled-state-layer-color:black;--mat-protected-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-protected-button-hover-state-layer-opacity:0.04;--mat-protected-button-focus-state-layer-opacity:0.12;--mat-protected-button-pressed-state-layer-opacity:0.12;--mdc-outlined-button-disabled-outline-color:rgba(0, 0, 0, 0.12);--mdc-outlined-button-disabled-label-text-color:rgba(0, 0, 0, 0.38);--mdc-outlined-button-label-text-color:black;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:black;--mat-outlined-button-disabled-state-layer-color:black;--mat-outlined-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-outlined-button-hover-state-layer-opacity:0.04;--mat-outlined-button-focus-state-layer-opacity:0.12;--mat-outlined-button-pressed-state-layer-opacity:0.12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color:#3f51b5;--mat-text-button-state-layer-color:#3f51b5;--mat-text-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color:#ff4081;--mat-text-button-state-layer-color:#ff4081;--mat-text-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color:#f44336;--mat-text-button-state-layer-color:#f44336;--mat-text-button-ripple-color:rgba(244, 67, 54, 0.1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color:#3f51b5;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color:#ff4081;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color:#f44336;--mdc-filled-button-label-text-color:white;--mat-filled-button-state-layer-color:white;--mat-filled-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color:#3f51b5;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color:#ff4081;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color:#f44336;--mdc-protected-button-label-text-color:white;--mat-protected-button-state-layer-color:white;--mat-protected-button-ripple-color:rgba(255, 255, 255, 0.1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color:#3f51b5;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#3f51b5;--mat-outlined-button-ripple-color:rgba(63, 81, 181, 0.1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color:#ff4081;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#ff4081;--mat-outlined-button-ripple-color:rgba(255, 64, 129, 0.1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color:#f44336;--mdc-outlined-button-outline-color:rgba(0, 0, 0, 0.12);--mat-outlined-button-state-layer-color:#f44336;--mat-outlined-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mdc-text-button-container-height:36px;--mdc-filled-button-container-height:36px;--mdc-outlined-button-container-height:36px;--mdc-protected-button-container-height:36px;--mat-text-button-touch-target-display:block;--mat-filled-button-touch-target-display:block;--mat-protected-button-touch-target-display:block;--mat-outlined-button-touch-target-display:block}html{--mdc-text-button-label-text-font:Roboto, sans-serif;--mdc-text-button-label-text-size:14px;--mdc-text-button-label-text-tracking:0.0892857143em;--mdc-text-button-label-text-weight:500;--mdc-text-button-label-text-transform:none;--mdc-filled-button-label-text-font:Roboto, sans-serif;--mdc-filled-button-label-text-size:14px;--mdc-filled-button-label-text-tracking:0.0892857143em;--mdc-filled-button-label-text-weight:500;--mdc-filled-button-label-text-transform:none;--mdc-outlined-button-label-text-font:Roboto, sans-serif;--mdc-outlined-button-label-text-size:14px;--mdc-outlined-button-label-text-tracking:0.0892857143em;--mdc-outlined-button-label-text-weight:500;--mdc-outlined-button-label-text-transform:none;--mdc-protected-button-label-text-font:Roboto, sans-serif;--mdc-protected-button-label-text-size:14px;--mdc-protected-button-label-text-tracking:0.0892857143em;--mdc-protected-button-label-text-weight:500;--mdc-protected-button-label-text-transform:none}html{--mdc-icon-button-icon-size:24px}html{--mdc-icon-button-icon-color:inherit;--mdc-icon-button-disabled-icon-color:rgba(0, 0, 0, 0.38);--mat-icon-button-state-layer-color:black;--mat-icon-button-disabled-state-layer-color:black;--mat-icon-button-ripple-color:rgba(0, 0, 0, 0.1);--mat-icon-button-hover-state-layer-opacity:0.04;--mat-icon-button-focus-state-layer-opacity:0.12;--mat-icon-button-pressed-state-layer-opacity:0.12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color:#3f51b5;--mat-icon-button-state-layer-color:#3f51b5;--mat-icon-button-ripple-color:rgba(63, 81, 181, 0.1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color:#ff4081;--mat-icon-button-state-layer-color:#ff4081;--mat-icon-button-ripple-color:rgba(255, 64, 129, 0.1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color:#f44336;--mat-icon-button-state-layer-color:#f44336;--mat-icon-button-ripple-color:rgba(244, 67, 54, 0.1)}html{--mat-icon-button-touch-target-display:block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:48px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:12px}html{--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px;--mdc-fab-small-container-shape:50%;--mdc-fab-small-icon-size:24px;--mdc-extended-fab-container-height:48px;--mdc-extended-fab-container-shape:24px}html{--mdc-fab-container-color:white;--mdc-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-container-shadow-color:#000;--mat-fab-foreground-color:black;--mat-fab-state-layer-color:black;--mat-fab-disabled-state-layer-color:black;--mat-fab-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-hover-state-layer-opacity:0.04;--mat-fab-focus-state-layer-opacity:0.12;--mat-fab-pressed-state-layer-opacity:0.12;--mat-fab-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-fab-small-container-color:white;--mdc-fab-small-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-fab-small-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-fab-small-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-fab-small-container-shadow-color:#000;--mat-fab-small-foreground-color:black;--mat-fab-small-state-layer-color:black;--mat-fab-small-disabled-state-layer-color:black;--mat-fab-small-ripple-color:rgba(0, 0, 0, 0.1);--mat-fab-small-hover-state-layer-opacity:0.04;--mat-fab-small-focus-state-layer-opacity:0.12;--mat-fab-small-pressed-state-layer-opacity:0.12;--mat-fab-small-disabled-state-container-color:rgba(0, 0, 0, 0.12);--mat-fab-small-disabled-state-foreground-color:rgba(0, 0, 0, 0.38);--mdc-extended-fab-container-elevation-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);--mdc-extended-fab-focus-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-hover-container-elevation-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);--mdc-extended-fab-pressed-container-elevation-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);--mdc-extended-fab-container-shadow-color:#000}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color:#3f51b5;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color:#ff4081;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color:#f44336;--mat-fab-foreground-color:white;--mat-fab-state-layer-color:white;--mat-fab-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color:#3f51b5;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color:#ff4081;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color:#f44336;--mat-fab-small-foreground-color:white;--mat-fab-small-state-layer-color:white;--mat-fab-small-ripple-color:rgba(255, 255, 255, 0.1)}html{--mat-fab-touch-target-display:block;--mat-fab-small-touch-target-display:block}html{--mdc-extended-fab-label-text-font:Roboto, sans-serif;--mdc-extended-fab-label-text-size:14px;--mdc-extended-fab-label-text-tracking:0.0892857143em;--mdc-extended-fab-label-text-weight:500}html{--mdc-snackbar-container-shape:4px}html{--mdc-snackbar-container-color:#333333;--mdc-snackbar-supporting-text-color:rgba(255, 255, 255, 0.87);--mat-snack-bar-button-color:#ff4081}html{--mdc-snackbar-supporting-text-font:Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height:20px;--mdc-snackbar-supporting-text-size:14px;--mdc-snackbar-supporting-text-weight:400}html{--mat-table-row-item-outline-width:1px}html{--mat-table-background-color:white;--mat-table-header-headline-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-label-text-color:rgba(0, 0, 0, 0.87);--mat-table-row-item-outline-color:rgba(0, 0, 0, 0.12)}html{--mat-table-header-container-height:56px;--mat-table-footer-container-height:52px;--mat-table-row-item-container-height:52px}html{--mat-table-header-headline-font:Roboto, sans-serif;--mat-table-header-headline-line-height:22px;--mat-table-header-headline-size:14px;--mat-table-header-headline-weight:500;--mat-table-header-headline-tracking:0.0071428571em;--mat-table-row-item-label-text-font:Roboto, sans-serif;--mat-table-row-item-label-text-line-height:20px;--mat-table-row-item-label-text-size:14px;--mat-table-row-item-label-text-weight:400;--mat-table-row-item-label-text-tracking:0.0178571429em;--mat-table-footer-supporting-text-font:Roboto, sans-serif;--mat-table-footer-supporting-text-line-height:20px;--mat-table-footer-supporting-text-size:14px;--mat-table-footer-supporting-text-weight:400;--mat-table-footer-supporting-text-tracking:0.0178571429em}html{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}html{--mdc-circular-progress-active-indicator-color:#3f51b5}html .mat-accent{--mdc-circular-progress-active-indicator-color:#ff4081}html .mat-warn{--mdc-circular-progress-active-indicator-color:#f44336}html{--mat-badge-container-shape:50%;--mat-badge-container-size:unset;--mat-badge-small-size-container-size:unset;--mat-badge-large-size-container-size:unset;--mat-badge-legacy-container-size:22px;--mat-badge-legacy-small-size-container-size:16px;--mat-badge-legacy-large-size-container-size:28px;--mat-badge-container-offset:-11px 0;--mat-badge-small-size-container-offset:-8px 0;--mat-badge-large-size-container-offset:-14px 0;--mat-badge-container-overlap-offset:-11px;--mat-badge-small-size-container-overlap-offset:-8px;--mat-badge-large-size-container-overlap-offset:-14px;--mat-badge-container-padding:0;--mat-badge-small-size-container-padding:0;--mat-badge-large-size-container-padding:0}html{--mat-badge-background-color:#3f51b5;--mat-badge-text-color:white;--mat-badge-disabled-state-background-color:#b9b9b9;--mat-badge-disabled-state-text-color:rgba(0, 0, 0, 0.38)}.mat-badge-accent{--mat-badge-background-color:#ff4081;--mat-badge-text-color:white}.mat-badge-warn{--mat-badge-background-color:#f44336;--mat-badge-text-color:white}html{--mat-badge-text-font:Roboto, sans-serif;--mat-badge-text-size:12px;--mat-badge-text-weight:600;--mat-badge-small-size-text-size:9px;--mat-badge-large-size-text-size:24px}html{--mat-bottom-sheet-container-shape:4px}html{--mat-bottom-sheet-container-text-color:rgba(0, 0, 0, 0.87);--mat-bottom-sheet-container-background-color:white}html{--mat-bottom-sheet-container-text-font:Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height:20px;--mat-bottom-sheet-container-text-size:14px;--mat-bottom-sheet-container-text-tracking:0.0178571429em;--mat-bottom-sheet-container-text-weight:400}html{--mat-legacy-button-toggle-height:36px;--mat-legacy-button-toggle-shape:2px;--mat-legacy-button-toggle-focus-state-layer-opacity:1;--mat-standard-button-toggle-shape:4px;--mat-standard-button-toggle-hover-state-layer-opacity:0.04;--mat-standard-button-toggle-focus-state-layer-opacity:0.12}html{--mat-legacy-button-toggle-text-color:rgba(0, 0, 0, 0.38);--mat-legacy-button-toggle-state-layer-color:rgba(0, 0, 0, 0.12);--mat-legacy-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.54);--mat-legacy-button-toggle-selected-state-background-color:#e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-legacy-button-toggle-disabled-state-background-color:#eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-background-color:white;--mat-standard-button-toggle-state-layer-color:black;--mat-standard-button-toggle-selected-state-background-color:#e0e0e0;--mat-standard-button-toggle-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-standard-button-toggle-disabled-state-background-color:white;--mat-standard-button-toggle-disabled-selected-state-text-color:rgba(0, 0, 0, 0.87);--mat-standard-button-toggle-disabled-selected-state-background-color:#bdbdbd;--mat-standard-button-toggle-divider-color:#e0e0e0}html{--mat-standard-button-toggle-height:48px}html{--mat-legacy-button-toggle-label-text-font:Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height:24px;--mat-legacy-button-toggle-label-text-size:16px;--mat-legacy-button-toggle-label-text-tracking:0.03125em;--mat-legacy-button-toggle-label-text-weight:400;--mat-standard-button-toggle-label-text-font:Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height:24px;--mat-standard-button-toggle-label-text-size:16px;--mat-standard-button-toggle-label-text-tracking:0.03125em;--mat-standard-button-toggle-label-text-weight:400}html{--mat-datepicker-calendar-container-shape:4px;--mat-datepicker-calendar-container-touch-shape:4px;--mat-datepicker-calendar-container-elevation-shadow:0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-container-touch-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12)}html{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#3f51b5;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(63, 81, 181, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(63, 81, 181, 0.3);--mat-datepicker-toggle-active-state-icon-color:#3f51b5;--mat-datepicker-calendar-date-in-range-state-background-color:rgba(63, 81, 181, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e;--mat-datepicker-toggle-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-body-label-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-period-button-text-color:black;--mat-datepicker-calendar-period-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-navigation-button-icon-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-header-divider-color:rgba(0, 0, 0, 0.12);--mat-datepicker-calendar-header-text-color:rgba(0, 0, 0, 0.54);--mat-datepicker-calendar-date-today-outline-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-today-disabled-state-outline-color:rgba(0, 0, 0, 0.18);--mat-datepicker-calendar-date-text-color:rgba(0, 0, 0, 0.87);--mat-datepicker-calendar-date-outline-color:transparent;--mat-datepicker-calendar-date-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-date-preview-state-outline-color:rgba(0, 0, 0, 0.24);--mat-datepicker-range-input-separator-color:rgba(0, 0, 0, 0.87);--mat-datepicker-range-input-disabled-state-separator-color:rgba(0, 0, 0, 0.38);--mat-datepicker-range-input-disabled-state-text-color:rgba(0, 0, 0, 0.38);--mat-datepicker-calendar-container-background-color:white;--mat-datepicker-calendar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#ff4081;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(255, 64, 129, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(255, 64, 129, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(255, 64, 129, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color:white;--mat-datepicker-calendar-date-selected-state-background-color:#f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color:rgba(244, 67, 54, 0.4);--mat-datepicker-calendar-date-today-selected-state-outline-color:white;--mat-datepicker-calendar-date-focus-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-hover-state-background-color:rgba(244, 67, 54, 0.3);--mat-datepicker-calendar-date-in-range-state-background-color:rgba(244, 67, 54, 0.2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color:rgba(249, 171, 0, 0.2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color:#a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color:#46a35e}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color:#ff4081}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color:#f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display:none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size:40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-datepicker-calendar-text-font:Roboto, sans-serif;--mat-datepicker-calendar-text-size:13px;--mat-datepicker-calendar-body-label-text-size:14px;--mat-datepicker-calendar-body-label-text-weight:500;--mat-datepicker-calendar-period-button-text-size:14px;--mat-datepicker-calendar-period-button-text-weight:500;--mat-datepicker-calendar-header-text-size:11px;--mat-datepicker-calendar-header-text-weight:400}html{--mat-divider-width:1px}html{--mat-divider-color:rgba(0, 0, 0, 0.12)}html{--mat-expansion-container-shape:4px;--mat-expansion-legacy-header-indicator-display:inline-block;--mat-expansion-header-indicator-display:none}html{--mat-expansion-container-background-color:white;--mat-expansion-container-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-actions-divider-color:rgba(0, 0, 0, 0.12);--mat-expansion-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-expansion-header-disabled-state-text-color:rgba(0, 0, 0, 0.26);--mat-expansion-header-text-color:rgba(0, 0, 0, 0.87);--mat-expansion-header-description-color:rgba(0, 0, 0, 0.54);--mat-expansion-header-indicator-color:rgba(0, 0, 0, 0.54)}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px}html{--mat-expansion-header-text-font:Roboto, sans-serif;--mat-expansion-header-text-size:14px;--mat-expansion-header-text-weight:500;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:Roboto, sans-serif;--mat-expansion-container-text-line-height:20px;--mat-expansion-container-text-size:14px;--mat-expansion-container-text-tracking:0.0178571429em;--mat-expansion-container-text-weight:400}html{--mat-grid-list-tile-header-primary-text-size:14px;--mat-grid-list-tile-header-secondary-text-size:12px;--mat-grid-list-tile-footer-primary-text-size:14px;--mat-grid-list-tile-footer-secondary-text-size:12px}html{--mat-icon-color:inherit}.mat-icon.mat-primary{--mat-icon-color:#3f51b5}.mat-icon.mat-accent{--mat-icon-color:#ff4081}.mat-icon.mat-warn{--mat-icon-color:#f44336}html{--mat-sidenav-container-shape:0;--mat-sidenav-container-elevation-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);--mat-sidenav-container-width:auto}html{--mat-sidenav-container-divider-color:rgba(0, 0, 0, 0.12);--mat-sidenav-container-background-color:white;--mat-sidenav-container-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-content-background-color:#fafafa;--mat-sidenav-content-text-color:rgba(0, 0, 0, 0.87);--mat-sidenav-scrim-color:rgba(0, 0, 0, 0.6)}html{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#3f51b5;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#3f51b5;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#3f51b5;--mat-stepper-header-edit-state-icon-foreground-color:white;--mat-stepper-container-color:white;--mat-stepper-line-color:rgba(0, 0, 0, 0.12);--mat-stepper-header-hover-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-focus-state-layer-color:rgba(0, 0, 0, 0.04);--mat-stepper-header-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-optional-label-text-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-selected-state-label-text-color:rgba(0, 0, 0, 0.87);--mat-stepper-header-error-state-label-text-color:#f44336;--mat-stepper-header-icon-background-color:rgba(0, 0, 0, 0.54);--mat-stepper-header-error-state-icon-foreground-color:#f44336;--mat-stepper-header-error-state-icon-background-color:transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#ff4081;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#ff4081;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#ff4081;--mat-stepper-header-edit-state-icon-foreground-color:white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color:white;--mat-stepper-header-selected-state-icon-background-color:#f44336;--mat-stepper-header-selected-state-icon-foreground-color:white;--mat-stepper-header-done-state-icon-background-color:#f44336;--mat-stepper-header-done-state-icon-foreground-color:white;--mat-stepper-header-edit-state-icon-background-color:#f44336;--mat-stepper-header-edit-state-icon-foreground-color:white}html{--mat-stepper-header-height:72px}html{--mat-stepper-container-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-font:Roboto, sans-serif;--mat-stepper-header-label-text-size:14px;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-size:16px;--mat-stepper-header-selected-state-label-text-weight:400}html{--mat-sort-arrow-color:#757575}html{--mat-toolbar-container-background-color:whitesmoke;--mat-toolbar-container-text-color:rgba(0, 0, 0, 0.87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color:#3f51b5;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color:#ff4081;--mat-toolbar-container-text-color:white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color:#f44336;--mat-toolbar-container-text-color:white}html{--mat-toolbar-standard-height:64px;--mat-toolbar-mobile-height:56px}html{--mat-toolbar-title-text-font:Roboto, sans-serif;--mat-toolbar-title-text-line-height:32px;--mat-toolbar-title-text-size:20px;--mat-toolbar-title-text-tracking:0.0125em;--mat-toolbar-title-text-weight:500}html{--mat-tree-container-background-color:white;--mat-tree-node-text-color:rgba(0, 0, 0, 0.87)}html{--mat-tree-node-min-height:48px}html{--mat-tree-node-text-font:Roboto, sans-serif;--mat-tree-node-text-size:14px;--mat-tree-node-text-weight:400}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto, sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto, sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto, sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto, sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 calc(14px*.83)/20px Roboto, sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 calc(14px*.67)/20px Roboto, sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto, sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto, sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto, sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto, sans-serif;letter-spacing:-0.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto, sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto, sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto, sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}","/* You can add global styles to this file, and also import other style files */\n@import '@angular/material/prebuilt-themes/indigo-pink.css';\n@import '@fontsource/roboto';\n@import '@fontsource/roboto-mono';\n@import 'colors.scss';\n\n@media print {\n @page {\n size: A3;\n margin: 0;\n }\n}\n\n@font-face {\n font-family: 'Material Icons';\n font-style: normal;\n font-display: block;\n font-weight: 400;\n src:\n local('Material Icons'),\n local('MaterialIcons-Regular'),\n url(assets/icons/MaterialIcons-Regular.ttf) format('truetype');\n}\n\n.material-icons {\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 24px; /* Preferred icon size */\n display: inline-block;\n line-height: 1;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: normal;\n white-space: nowrap;\n direction: ltr;\n\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n\n.text-deemphasis {\n color: on-color-deemphasis(body);\n font-size: 12px !important;\n letter-spacing: normal;\n}\n\nbody {\n margin: 0;\n overflow-y: scroll;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n}\n\n.svgcontainer {\n @include adaptive-color-dark-only('background-color', white);\n}\n\n.mdc-button, .mat-mdc-button-base {\n letter-spacing: normal !important;\n}\n\n.mat-dialog {\n .mat-mdc-dialog-actions {\n justify-content: center;\n }\n .mat-mdc-dialog-title {\n text-align: center;\n }\n .mat-mdc-dialog-content {\n color: black !important;\n @include adaptive-color-dark-only('color', on-color(dark) !important);\n }\n}\n\n.mat-mdc-dialog-container {\n .mdc-dialog__surface {\n @include adaptive-color-dark-only('background-color', color(dark-2));\n }\n .mdc-dialog__title,\n .mdc-dialog__content {\n @include adaptive-color-dark-only('color', on-color(dark) !important);\n }\n .mat-mdc-button-base {\n @include adaptive-color-dark-only('border-color', color(dark-4));\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n\n .help-dialog h1 {\n @include adaptive-color-dark-only('border-color', on-color(dark-1));\n }\n\n .content {\n overflow-y: scroll;\n max-height: 60vh;\n font-size: 11pt;\n\n p,\n ul {\n margin-block-start: 1em;\n margin-block-end: 1em;\n }\n\n code {\n @include adaptive-color-dark-only('background-color', color(dark-1));\n @include adaptive-color-dark-only('border-color', color(panel-dark) !important);\n @include adaptive-color-dark-only('color', on-color(dark) !important);\n color: black;\n padding: 1px 2px;\n word-break: break-word;\n }\n }\n\n a {\n @include adaptive-color-dark-only('color', color(dark-link) !important);\n }\n\n a:active,\n a:visited {\n @include adaptive-color-dark-only('color', color(dark-link-active));\n }\n\n .top-button {\n display: inline;\n float: right;\n margin-top: 14px;\n }\n}\n\n.noselect {\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n /* Non-prefixed version, currently\n supported by Chrome and Opera */\n}\n\n// ___ ___ _ _ _____ ___ ___ _ ___\n// / __/ _ \\| \\| |_ _| _ \\/ _ \\| | / __|\n// | (_| (_) | .` | | | | / (_) | |__\\__ \\\n// \\___\\___/|_|\\_| |_| |_|_\\\\___/|____|___/\n\n// panel with controls\n.controlsContainer {\n @include adaptive-color('background-color', color(panel-dark), color(dark-2));\n\n text-align: right;\n display: block;\n @media print {\n display: none;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n .label{\n .control-row-item + .control-row-item{\n margin-right: 6px;\n }\n }\n\n .control-sections > li {\n list-style: none;\n display: inline-block;\n // &:not(:last-child){\n border-left: 1px solid darken(color(panel-dark), 8%);\n padding: 0 5px 0 5px;\n position: relative;\n\n // label for a section of controls, e.g layer controls or technique controls\n .section-label {\n @include adaptive-color('background-color', color(panel-dark), color(dark-2));\n @include adaptive-color('color', color(tab-text-color), on-color(dark));\n font-size: 8pt;\n top: -12px;\n position: absolute;\n padding: 0 5px;\n border-radius: 2px 2px 0 0;\n text-align: center;\n cursor: default;\n user-select: none;\n white-space: nowrap;\n z-index: 1;\n }\n\n .control-row-item {\n display: inline-block;\n position: relative;\n height: 34px;\n\n & > :not(.disabled) {\n @include adaptive-color('color', black, white);\n }\n\n & > .disabled {\n @include adaptive-color('color', #aaaaaa, rgb(255 255 255 / 25%));\n }\n\n .control-row-button {\n border-radius: 3px;\n padding: 5px;\n height: 24px;\n cursor: pointer;\n\n &:hover {\n @include adaptive-color('background-color', darken(color(panel-dark), 5%), color(dark-4));\n }\n\n &.dropdown::after {\n font-size: 5pt;\n content: '▼';\n }\n span{\n vertical-align: middle;\n }\n .control-label {\n padding-right: 5px;\n }\n }\n\n // dropdown controls container\n .dropdown-container {\n @include adaptive-color('background-color', white, color(dark-2));\n @include adaptive-color('border', 1px solid black, 1px solid color(dark-4));\n @include adaptive-color('box-shadow', 0px 10px 5px rgba(0, 0, 0, 0.5), 0px 10px 5px color(dark-2));\n\n &.left {\n right: 0;\n }\n\n position: absolute;\n z-index: 100; //draw on top of other controls\n width: max-content;\n\n &.inputfield {\n width: 150px;\n padding: 0px 10px 10px;\n z-index: 1000;\n\n .mat-mdc-form-field {\n width: 100%;\n\n &:first-child {\n padding-top: 5px;\n }\n }\n }\n .mat-mdc-floating-label {\n @include adaptive-color-dark-only('color', rgba(255, 255, 255, 0.9));\n }\n\n .mat-mdc-input-element,\n .mat-mdc-input-element::placeholder {\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n .mat-mdc-input-element:disabled {\n @include adaptive-color-dark-only('color', color(dark-disabled));\n }\n .mdc-line-ripple::before {\n @include adaptive-color-dark-only('border-bottom-color', on-color(dark));\n }\n .mat-mdc-form-field.mat-form-field-disabled .mdc-line-ripple::before {\n @include adaptive-color-dark-only('border-bottom-color', transparent);\n @include adaptive-color-dark-only(\n 'background-image',\n linear-gradient(to right, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%)\n );\n }\n .mat-mdc-select-value-text {\n @include adaptive-color-dark-only('color', rgba(255, 255, 255, 0.9));\n }\n .mat-mdc-select-arrow {\n @include adaptive-color-dark-only('color', rgba(255, 255, 255, 0.9));\n }\n\n .disabled-text {\n @include adaptive-color('color', rgba(0, 0, 0, 0.38), color(dark-disabled));\n }\n }\n }\n }\n}\n\n//////////////////////\n// Checkbox Styling //\n//////////////////////\n\n.checkbox-custom {\n opacity: 0;\n position: absolute;\n\n &:disabled {\n cursor: default;\n }\n}\n\n.checkbox-custom,\n.checkbox-custom-label {\n display: inline-block;\n vertical-align: middle;\n margin: 5px;\n cursor: pointer;\n}\n\n.checkbox-custom-label {\n position: relative;\n\n &.disabled {\n @include adaptive-color('color', rgba(0, 0, 0, 0.46), color(dark-disabled));\n cursor: default;\n }\n}\n\n.checkbox-custom + .checkbox-custom-label:before {\n content: '';\n background: #fff;\n border: 3px solid color(panel-dark);\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 10px;\n padding: 2px;\n margin-right: 5px;\n text-align: center;\n}\n\n.checkbox-custom:checked + .checkbox-custom-label:before {\n @include adaptive-color('background', color(cell-highlight-color), color(cell-highlight-dark-color));\n @include adaptive-color('box-shadow', inset 0px 0px 0px 1px color(cell-highlight-color), inset 0px 0px 0px 1px color(cell-highlight-dark-color));\n}\n\n.checkbox-custom:checked:disabled + .checkbox-custom-label:before {\n @include adaptive-color('background', desaturate(color(cell-highlight-color), 100%), desaturate(color(cell-highlight-dark-color), 100%));\n @include adaptive-color(\n 'box-shadow',\n inset 0px 0px 0px 1px desaturate(color(cell-highlight-color), 100%),\n inset 0px 0px 0px 1px desaturate(color(cell-highlight-dark-color), 100%)\n );\n}\n\n//////////////////////\n/// Dialog Styling ///\n//////////////////////\n.dialog-custom .mat-mdc-dialog-container {\n padding: 0 !important;\n}\n\n.mat-drawer-side.mat-drawer-end {\n @include adaptive-color-dark-only('border-left', none);\n}\n\n.mat-drawer-inner-container {\n @include adaptive-color('background-color', color(panel-light), color(dark-2));\n\n a {\n @include adaptive-color-dark-only('color', color(dark-link));\n }\n a:visited,\n a:active {\n @include adaptive-color-dark-only('color', color(dark-link-active));\n }\n .mat-mdc-form-field, .mat-mdc-form-field:hover {\n .mdc-notched-outline__leading,\n .mdc-notched-outline__notch,\n .mdc-notched-outline__trailing {\n @include adaptive-color-dark-only('border-color', on-color(dark) !important);\n }\n }\n\n .mat-mdc-card {\n @include adaptive-color-dark-only('background-color', color(dark-3));\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n\n .mat-expansion-panel .mat-expansion-panel-header,\n .mat-expansion-panel-body {\n @include adaptive-color-dark-only('background-color', color(dark-3));\n }\n\n .mat-expansion-panel-header-title {\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n\n .mat-divider {\n @include adaptive-color-dark-only('border-top-color', color(dark-4));\n }\n\n .mat-mdc-button-base {\n @include adaptive-color-dark-only('background-color', color(dark-4));\n @include adaptive-color-dark-only('color', on-color(dark));\n }\n}\n\n.mat-mdc-dialog-container .markdown {\n padding: 25px;\n}\n\n// patch popover style\n.popover {\n //positioning because we didn't import bootstrap\n position: absolute;\n // add border radius\n border-radius: 4px !important;\n //don't force 20rem width, conform to content of popover\n width: unset !important;\n}\n\n// form field styling\n.mat-mdc-form-field {\n .mdc-text-field--filled, .mdc-text-field--filled:hover {\n background-color: transparent !important;\n }\n}\n.hide-subscript {\n .mat-mdc-form-field-subscript-wrapper {\n display: none !important;\n }\n}\n.mat-mdc-floating-label, .mat-mdc-form-field-hint {\n letter-spacing: normal !important;\n}\n\n// expansion panel styling\n.mat-expansion-panel-body {\n padding-bottom: 24px !important;\n}","/* roboto-cyrillic-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-cyrillic-ext-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-cyrillic-ext-400-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* roboto-cyrillic-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-cyrillic-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-cyrillic-400-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* roboto-greek-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-greek-ext-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-greek-ext-400-normal.woff) format('woff');\n unicode-range: U+1F00-1FFF;\n}\n\n/* roboto-greek-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-greek-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-greek-400-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* roboto-vietnamese-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-vietnamese-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-vietnamese-400-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* roboto-latin-ext-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-latin-ext-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-latin-ext-400-normal.woff) format('woff');\n unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* roboto-latin-400-normal */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-latin-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-latin-400-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}","/* roboto-mono-cyrillic-ext-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-mono-cyrillic-ext-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-mono-cyrillic-ext-400-normal.woff) format('woff');\n unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;\n}\n\n/* roboto-mono-cyrillic-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-mono-cyrillic-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-mono-cyrillic-400-normal.woff) format('woff');\n unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;\n}\n\n/* roboto-mono-greek-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-mono-greek-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-mono-greek-400-normal.woff) format('woff');\n unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;\n}\n\n/* roboto-mono-vietnamese-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-mono-vietnamese-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-mono-vietnamese-400-normal.woff) format('woff');\n unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;\n}\n\n/* roboto-mono-latin-ext-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-mono-latin-ext-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-mono-latin-ext-400-normal.woff) format('woff');\n unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;\n}\n\n/* roboto-mono-latin-400-normal */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src: url(CVE2CAPEC/mitre/roboto-mono-latin-400-normal.woff2) format('woff2'), url(CVE2CAPEC/mitre/roboto-mono-latin-400-normal.woff) format('woff');\n unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;\n}","$column-hover-color: rgb(235, 235, 235);\n$disabled-color: darken($column-hover-color, 20%);\n\n// ATT&CK Brand colors\n$attack-colors: (\n attack-orange: #c63f1f,\n attack-blue: #062f4f,\n);\n\n/**\n * Colors used across the Navigator. Shared by the ATT&CK Website.\n * For each color-pair:\n * - \"color\" refers to the color itself\n * - \"on-color\" refers to the most readable text-color to appear on top of the color.\n * Note: some colors don't define on-colors. This is because, for these colors, they aren't intended to\n * appear with inner content. For example, \"link\" is only intended to be used for link text, which inherently\n * cannot have inner text.\n */\n$colors: (\n primary: (\n color: map-get($attack-colors, attack-orange),\n on-color: white,\n ),\n //used for header and some nav elements\n secondary:\n (\n color: map-get($attack-colors, attack-blue),\n on-color: white,\n ),\n //used for footer and some buttons\n body:\n (\n color: white,\n on-color: #39434c,\n ),\n //primary page body\n light:\n (\n color: white,\n on-color: #39434c,\n ),\n dark: (\n color: #08080b,\n on-color: white,\n ),\n // dark theme colors variations 0-3 (from darkest to lightest)\n dark-1:\n (\n color: #1a1a23,\n on-color: white,\n ),\n dark-2: (\n color: #2e2e3f,\n on-color: #fa6341,\n ),\n // accent dark color scheme (used for :hover selectors)\n dark-3:\n (\n color: #3f3f56,\n on-color: white,\n ),\n dark-4: (\n color: #4c4c68,\n on-color: white,\n ),\n dark-disabled: (\n color: rgb(255 255 255 / 25%),\n ),\n dark-link: (\n color: #7588e8,\n ),\n dark-link-active: (\n color: #e847e8,\n ),\n link: (\n color: #4f7cac,\n ),\n // hyperlinks\n matrix-header:\n (\n color: gray,\n on-color: white,\n ),\n // color of matrix headers\n cell-highlight-color:\n (\n color: rgb(96, 197, 255),\n ),\n cell-highlight-dark-color: (\n color: #464dff,\n ),\n hover-cell-font-color: (\n color: rgb(0, 0, 0),\n ),\n panel-dark: (\n color: #ddd,\n ),\n panel-light: (\n color: lighten(#ddd, 8%),\n ),\n tab-text-color: (\n color: #555,\n ),\n button-dark: (\n color: #b8b8b8,\n ),\n //bootstrap colors\n bootstrap-primary:\n (\n color: #428bca,\n on-color: white,\n ),\n bootstrap-success: (\n color: #5cb85c,\n on-color: white,\n ),\n bootstrap-danger: (\n color: #d9534f,\n on-color: black,\n ),\n bootstrap-warning: (\n color: #f0ad4e,\n on-color: black,\n ),\n bootstrap-info: (\n color: #5bc0de,\n on-color: white,\n ),\n);\n\n// accessor helper for $colors. Gets the color of the named pair\n@function color($name) {\n @return map-get(map-get($colors, $name), 'color');\n}\n\n// given a color name, get an alternate version of the color, for patterning\n// if the base color is dark, the alternate will be slightly lighter.\n// if the base color is light, the alternate will be slightly darker.\n// contrast, an optional argument, multiplies to create a more distant or similar color. >1 is more distant, <1 is more similar.\n@function color-alternate($name, $contrast: 1) {\n @return mix(invert(color($name)), color($name), $weight: $contrast * 5%);\n}\n\n// accessor helper for $colors. Gets the on-color of the named pair\n@function on-color($name) {\n @return map-get(map-get($colors, $name), 'on-color');\n}\n\n// given a color-name, get an emphasized version of the on-color.\n// The emphasized on-color is less like the background color.\n@function on-color-emphasis($name) {\n @return mix(invert(color($name)), on-color($name));\n}\n// given a color-name, get an deemphasized version of the on-color.\n// The deemphasized on-color is more like the background color.\n@function on-color-deemphasis($name) {\n @return mix(color($name), on-color($name), 25%);\n}\n\n// given a color name, compute a border color for the color\n@function border-color($name) {\n @return mix(invert(color($name)), color($name), 12.5%);\n // @return rgba(invert(color($name)), 0.125);\n}\n\n// IMPORTANT USAGE NOTE:\n// to use adaptive colors, you MUST disable view encapsulation on the component\n// you're applying the styles within. Otherwise ancestor classes cannot be assessed\n// by the mixins to determine the app theme configuration.\n\n/// assign the property with different values in the light and dark themes\n/// @param {property} $property the property you want to set the value of\n/// @param {value} $light-value the value to assign when in the light theme\n/// @param {value} $dark-value the value to assign when in the dark theme\n@mixin adaptive-color($property, $light-value, $dark-value) {\n @include adaptive-color-light-only($property, $light-value);\n @include adaptive-color-dark-only($property, $dark-value);\n}\n\n/// assign the property with the given value only when in the light theme\n/// @param {property} $property the property you want to set the value of\n/// @param {value} $light-value the value to assign when in the light theme\n@mixin adaptive-color-light-only($property, $light-value) {\n .theme-use-system & {\n // when the ancestor class shows that the app is configured to use the system theme,\n // use a media query to assign the light value\n @media (prefers-color-scheme: light) {\n #{$property}: $light-value;\n }\n }\n .theme-override-light & {\n // when the ancestor class shows that the app is configured to use the light theme,\n // assign the light value\n #{$property}: $light-value;\n }\n}\n\n/// assign the property with the given value only when in the dark theme\n/// @param {property} $property the property you want to set the value of\n/// @param {value} $light-value the value to assign when in the light theme\n/// @param {value} $dark-value the value to assign when in the dark theme\n@mixin adaptive-color-dark-only($property, $dark-value) {\n .theme-use-system & {\n // when the ancestor class shows that the app is configured to use the system theme,\n // use a media query to assign the dark value\n @media (prefers-color-scheme: dark) {\n #{$property}: $dark-value;\n }\n }\n .theme-override-dark & {\n // when the ancestor class shows that the app is configured to use the dark theme,\n // assign the dark value\n #{$property}: $dark-value;\n }\n}\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[0,2,3]} \ No newline at end of file diff --git a/site/mitre/vendor.js b/docs/mitre/vendor.js similarity index 100% rename from site/mitre/vendor.js rename to docs/mitre/vendor.js diff --git a/site/mitre/vendor.js.map b/docs/mitre/vendor.js.map similarity index 100% rename from site/mitre/vendor.js.map rename to docs/mitre/vendor.js.map diff --git a/site/mitre/index.html b/site/mitre/index.html deleted file mode 100644 index 0b97a22..0000000 --- a/site/mitre/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/site/mitre/main.js.map b/site/mitre/main.js.map deleted file mode 100644 index 985216b..0000000 --- a/site/mitre/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/changelog/changelog.component.ts","./src/app/changelog/changelog.component.html","./src/app/classes/context-menu-item.ts","./src/app/classes/domain.ts","./src/app/classes/filter.ts","./src/app/classes/gradient.ts","./src/app/classes/index.ts","./src/app/classes/layout-options.ts","./src/app/classes/link.ts","./src/app/classes/metadata.ts","./src/app/classes/stix/asset.ts","./src/app/classes/stix/campaign.ts","./src/app/classes/stix/data-component.ts","./src/app/classes/stix/group.ts","./src/app/classes/stix/index.ts","./src/app/classes/stix/matrix.ts","./src/app/classes/stix/mitigation.ts","./src/app/classes/stix/note.ts","./src/app/classes/stix/software.ts","./src/app/classes/stix/stix-object.ts","./src/app/classes/stix/tactic.ts","./src/app/classes/stix/technique.ts","./src/app/classes/tab.ts","./src/app/classes/technique-vm.ts","./src/app/classes/version-changelog.ts","./src/app/classes/version.ts","./src/app/classes/view-model.ts","./src/app/datatable/data-table.component.ts","./src/app/datatable/data-table.component.html","./src/app/help/help.component.ts","./src/app/help/help.component.html","./src/app/layer-information/layer-information.component.ts","./src/app/layer-information/layer-information.component.html","./src/app/layer-settings/layer-settings.component.ts","./src/app/layer-settings/layer-settings.component.html","./src/app/layer-upgrade/changelog-cell/changelog-cell.component.ts","./src/app/layer-upgrade/changelog-cell/changelog-cell.component.html","./src/app/layer-upgrade/layer-upgrade.component.ts","./src/app/layer-upgrade/layer-upgrade.component.html","./src/app/list-input/list-input.component.ts","./src/app/list-input/list-input.component.html","./src/app/matrix/cell.ts","./src/app/matrix/matrix-common.ts","./src/app/matrix/matrix-flat/matrix-flat.component.ts","./src/app/matrix/matrix-flat/matrix-flat.component.html","./src/app/matrix/matrix-mini/matrix-mini.component.ts","./src/app/matrix/matrix-mini/matrix-mini.component.html","./src/app/matrix/matrix-side/matrix-side.component.ts","./src/app/matrix/matrix-side/matrix-side.component.html","./src/app/matrix/tactic-cell/tactic-cell.component.ts","./src/app/matrix/tactic-cell/tactic-cell.component.html","./src/app/matrix/technique-cell/cell-popover.ts","./src/app/matrix/technique-cell/contextmenu/contextmenu.component.ts","./src/app/matrix/technique-cell/contextmenu/contextmenu.component.html","./src/app/matrix/technique-cell/technique-cell.component.ts","./src/app/matrix/technique-cell/technique-cell.component.html","./src/app/matrix/technique-cell/tooltip/tooltip.component.ts","./src/app/matrix/technique-cell/tooltip/tooltip.component.html","./src/app/search-and-multiselect/search-and-multiselect.component.ts","./src/app/search-and-multiselect/search-and-multiselect.component.html","./src/app/services/config.service.ts","./src/app/services/data.service.ts","./src/app/services/icons.service.ts","./src/app/services/viewmodels.service.ts","./src/app/sidebar/sidebar.component.ts","./src/app/sidebar/sidebar.component.html","./src/app/svg-export/renderable-objects/index.ts","./src/app/svg-export/renderable-objects/renderable-matrix.ts","./src/app/svg-export/renderable-objects/renderable-tactic.ts","./src/app/svg-export/renderable-objects/renderable-technique.ts","./src/app/svg-export/svg-export.component.ts","./src/app/svg-export/svg-export.component.html","./src/app/tabs/tabs.component.ts","./src/app/tabs/tabs.component.html","./src/app/utils/cookies.ts","./src/app/utils/globals.ts","./src/app/utils/taxii2lib.ts","./src/app/utils/utils.ts","./src/app/version-upgrade/version-upgrade.component.ts","./src/app/version-upgrade/version-upgrade.component.html","./src/environments/environment.ts","./src/main.ts","ignored|mitre/nav-app/node_modules/seedrandom|crypto"],"sourcesContent":["import { Component, ViewChild, HostListener, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { ConfigService } from './services/config.service';\nimport * as globals from './utils/globals';\nimport { IconsService } from './services/icons.service';\nimport { deleteCookie, getCookie, hasCookie, setCookie } from './utils/cookies';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n @ViewChild(TabsComponent) tabsComponent;\n\n navVersion: string = globals.navVersion;\n public user_theme: string;\n title = 'ATT&CK® Navigator';\n\n @HostListener('window:beforeunload', ['$event'])\n promptNavAway($event) {\n if (!this.configService.getFeature('leave_site_dialog')) return;\n //this text only shows in the data, not visible to user as far as I can tell\n //however, if it's not included the window doesn't open.\n $event.returnValue = 'Are you sure you want to navigate away? Your data may be lost!';\n }\n\n constructor(\n public configService: ConfigService,\n private iconsService: IconsService,\n public titleService: Title\n ) {\n Array.prototype.includes = function (value): boolean {\n for (let i = 0; i < this.length; i++) {\n if (this[i] === value) return true;\n }\n return false;\n };\n if (hasCookie('is_user_theme_dark') && getCookie('is_user_theme_dark') === 'true') {\n this.user_theme = 'theme-override-dark';\n } else if (getCookie('is_user_theme_dark') === 'false') {\n this.user_theme = 'theme-override-light';\n } else {\n this.user_theme = 'theme-use-system';\n }\n }\n\n ngOnInit() {\n this.iconsService.registerIcons();\n this.titleService.setTitle(this.title);\n }\n\n themeChangeHandler(theme: string) {\n if (theme === 'system') {\n if (hasCookie('is_user_theme_dark')) deleteCookie('is_user_theme_dark');\n this.user_theme = 'theme-use-system';\n } else {\n this.user_theme = theme === 'dark' ? 'theme-override-dark' : 'theme-override-light';\n setCookie('is_user_theme_dark', theme === 'dark' ? 'true' : 'false', 180);\n }\n }\n}\n","
    \n
    \n
    \n \n \n
    \n
    \n
    \n","import { BrowserModule, Title } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\n\n// material\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { DndModule } from 'ngx-drag-drop';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AppComponent } from './app.component';\nimport { DataTableComponent } from './datatable/data-table.component';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { HelpComponent } from './help/help.component';\nimport { SvgExportComponent } from './svg-export/svg-export.component';\nimport { TechniqueCellComponent } from './matrix/technique-cell/technique-cell.component';\nimport { MatrixSideComponent } from './matrix/matrix-side/matrix-side.component';\nimport { MatrixFlatComponent } from './matrix//matrix-flat/matrix-flat.component';\nimport { MatrixMiniComponent } from './matrix//matrix-mini/matrix-mini.component';\nimport { TooltipComponent } from './matrix/technique-cell/tooltip/tooltip.component';\nimport { SearchAndMultiselectComponent } from './search-and-multiselect/search-and-multiselect.component';\nimport { ContextmenuComponent } from './matrix/technique-cell/contextmenu/contextmenu.component';\nimport { TacticCellComponent } from './matrix/tactic-cell/tactic-cell.component';\nimport { VersionUpgradeComponent } from './version-upgrade/version-upgrade.component';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { LayerUpgradeComponent } from './layer-upgrade/layer-upgrade.component';\nimport { ChangelogCellComponent } from './layer-upgrade/changelog-cell/changelog-cell.component';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { LayerSettingsComponent } from './layer-settings/layer-settings.component';\n\nimport { MarkdownModule } from 'ngx-markdown';\nimport { LayerInformationComponent } from './layer-information/layer-information.component';\nimport { ChangelogComponent } from './changelog/changelog.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { ListInputComponent } from './list-input/list-input.component';\nimport { ConfigService } from './services/config.service';\n\n@NgModule({\n declarations: [\n AppComponent,\n DataTableComponent,\n TabsComponent,\n HelpComponent,\n SvgExportComponent,\n TechniqueCellComponent,\n MatrixSideComponent,\n MatrixFlatComponent,\n MatrixMiniComponent,\n TooltipComponent,\n SearchAndMultiselectComponent,\n ContextmenuComponent,\n TacticCellComponent,\n VersionUpgradeComponent,\n SidebarComponent,\n LayerUpgradeComponent,\n ChangelogCellComponent,\n LayerInformationComponent,\n ChangelogComponent,\n ListInputComponent,\n LayerSettingsComponent,\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n BrowserAnimationsModule,\n MatSelectModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatButtonModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatMenuModule,\n MatExpansionModule,\n MatDialogModule,\n MatSnackBarModule,\n ColorPickerModule,\n DndModule,\n MatSidenavModule,\n MatCardModule,\n MatDividerModule,\n MatStepperModule,\n MatPaginatorModule,\n MarkdownModule.forRoot(),\n MatTabsModule,\n ],\n exports: [MatSelectModule, MatInputModule, MatButtonModule, MatIconModule, MatTooltipModule, MatMenuModule, MatExpansionModule, MatTabsModule],\n providers: [\n Title,\n ConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: (configService: ConfigService) => {\n return () => configService.loadConfig();\n },\n deps: [ConfigService],\n multi: true,\n },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component, Inject, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { MarkdownComponent, MarkdownService } from 'ngx-markdown';\n\n@Component({\n selector: 'app-changelog',\n templateUrl: './changelog.component.html',\n})\nexport class ChangelogComponent {\n @ViewChild('markdownElement', { static: false }) public markdownElement: any;\n\n constructor(\n private dialog: MatDialog,\n private markdownService: MarkdownService,\n @Inject(MAT_DIALOG_DATA) public data\n ) {\n // intentionally left blank\n }\n}\n","
    \n

    Changelog

    \n \n \n \n \n \n \n
    ","import { Tactic } from './stix/tactic';\nimport { Technique } from './stix/technique';\n\nexport class ContextMenuItem {\n public readonly label: string;\n private readonly url: string;\n private readonly subtechnique_url: string;\n\n constructor(label, url, subtechnique_url = null) {\n this.label = label;\n this.url = url;\n this.subtechnique_url = subtechnique_url;\n }\n\n public getReplacedURL(technique: Technique, tactic: Tactic): string {\n if (this.subtechnique_url && technique.isSubtechnique) {\n return this.subtechnique_url\n .replace(/{{parent_technique_attackID}}/g, technique.parent.attackID)\n .replace(/{{parent_technique_stixID}}/g, technique.parent.id)\n .replace(/{{parent_technique_name}}/g, technique.parent.name.replace(/ /g, '-').toLowerCase())\n\n .replace(/{{subtechnique_attackID}}/g, technique.attackID)\n .replace(/{{subtechnique_attackID_suffix}}/g, technique.attackID.split('.')[1])\n .replace(/{{subtechnique_stixID}}/g, technique.id)\n .replace(/{{subtechnique_name}}/g, technique.name.replace(/ /g, '-').toLowerCase())\n\n .replace(/{{tactic_attackID}}/g, tactic.attackID)\n .replace(/{{tactic_stixID}}/g, tactic.id)\n .replace(/{{tactic_name}}/g, tactic.shortname);\n } else {\n return this.url\n .replace(/{{technique_attackID}}/g, technique.attackID)\n .replace(/{{technique_stixID}}/g, technique.id)\n .replace(/{{technique_name}}/g, technique.name.replace(/ /g, '-').toLowerCase())\n\n .replace(/{{tactic_attackID}}/g, tactic.attackID)\n .replace(/{{tactic_stixID}}/g, tactic.id)\n .replace(/{{tactic_name}}/g, tactic.shortname);\n }\n }\n}\n","import { ServiceAuth } from '../services/data.service';\nimport { Campaign } from './stix/campaign';\nimport { DataComponent } from './stix/data-component';\nimport { Group } from './stix/group';\nimport { Matrix } from './stix/matrix';\nimport { Mitigation } from './stix/mitigation';\nimport { Note } from './stix/note';\nimport { Software } from './stix/software';\nimport { Tactic } from './stix/tactic';\nimport { Technique } from './stix/technique';\nimport { Version } from './version';\nimport { Asset } from './stix/asset';\n\nexport class Domain {\n public readonly id: string; // domain ID\n public readonly domain_identifier: string; //domain ID without the version suffix\n public readonly name: string; // domain display name\n public readonly version: Version; // ATT&CK version\n\n public urls: string[] = [];\n public taxii_url: string = '';\n public taxii_collection: string = '';\n public authentication: ServiceAuth;\n public dataLoaded: boolean = false;\n public dataLoadedCallbacks: any[] = [];\n\n // this should only be enabled if the user loads custom data via URL\n public isCustom: boolean = false;\n\n public matrices: Matrix[] = [];\n public get tactics(): Tactic[] {\n let tactics = [];\n for (let matrix of this.matrices) {\n tactics = tactics.concat(matrix.tactics);\n }\n return tactics;\n }\n public techniques: Technique[] = [];\n public platforms: string[] = []; // platforms defined on techniques and software of the domain\n public subtechniques: Technique[] = [];\n public software: Software[] = [];\n public campaigns: Campaign[] = [];\n public assets: Asset[] = [];\n public dataComponents: DataComponent[] = [];\n public dataSources = new Map(); // Map data source ID to name and urls to be used by data components\n public groups: Group[] = [];\n public mitigations: Mitigation[] = [];\n public notes: Note[] = [];\n public relationships: any = {\n // subtechnique subtechnique-of technique\n // ID of technique to [] of subtechnique IDs\n subtechniques_of: new Map(),\n // data component related to technique\n // ID of data component to [] of technique IDs\n component_rel: new Map(),\n // group uses technique\n // ID of group to [] of technique IDs\n group_uses: new Map(),\n // software uses technique\n // ID of software to [] of technique IDs\n software_uses: new Map(),\n // campaign uses technique\n // ID of campaign to [] of technique IDs\n campaign_uses: new Map(),\n // campaigns attributed to group\n // ID of group to [] of campaign IDs\n campaigns_attributed_to: new Map(),\n // mitigation mitigates technique\n // ID of mitigation to [] of technique IDs\n mitigates: new Map(),\n // object is revoked-by object\n // ID of object to ID of revoking object\n revoked_by: new Map(),\n // technique targets asset\n // ID of asset to [] of technique IDs\n targeted_assets: new Map(),\n };\n\n constructor(domain_identifier: string, name: string, version: Version, urls?: string[]) {\n this.id = `${domain_identifier}-${version.number}`;\n this.domain_identifier = domain_identifier;\n this.name = name;\n this.version = version;\n if (urls) this.urls = urls;\n }\n\n /**\n * Get the version number for this domain\n */\n public getVersion(): string {\n return this.version.number;\n }\n\n public executeCallbacks(): void {\n for (let callback of this.dataLoadedCallbacks) {\n callback();\n }\n }\n}\n","import { Domain } from './domain';\n\nexport class Filter {\n // the data for a specific filter\n private readonly domain: string;\n public platforms: {\n options: string[];\n selection: string[];\n };\n\n constructor() {\n this.platforms = {\n selection: [],\n options: [],\n };\n }\n\n /**\n * Initialize the platform options according to the data in the domain\n * @param {Domain} domain the domain to parse for platform options\n */\n public initPlatformOptions(domain: Domain): void {\n this.platforms.options = JSON.parse(JSON.stringify(domain.platforms));\n if (!this.platforms.selection.length) {\n // prevent overwriting current selection\n this.platforms.selection = JSON.parse(JSON.stringify(domain.platforms));\n }\n }\n\n /**\n * toggle the given value in the given filter\n * @param {*} filterName the name of the filter\n * @param {*} value the value to toggle\n */\n public toggleInFilter(filterName: string, value: string): void {\n if (!this[filterName].options.includes(value)) {\n console.error('not a valid option to toggle', value, this[filterName]);\n return;\n }\n if (this[filterName].selection.includes(value)) {\n let index = this[filterName].selection.indexOf(value);\n this[filterName].selection.splice(index, 1);\n } else {\n this[filterName].selection.push(value);\n }\n }\n\n /**\n * determine if the given value is active in the filter\n * @param {*} filterName the name of the filter\n * @param {*} value the value to determine\n * @returns {boolean} true if value is currently enabled in the filter\n */\n public inFilter(filterName, value): boolean {\n return this[filterName].selection.includes(value);\n }\n\n /**\n * Return the string representation of this filter\n * @return stringified filter\n */\n public serialize(): string {\n return JSON.stringify({ platforms: this.platforms.selection });\n }\n\n /**\n * Replace the properties of this object with those of the given serialized filter\n * @param rep filter object\n */\n public deserialize(rep: any): void {\n let isStringArray = function (arr): boolean {\n for (let item of arr) {\n if (typeof item !== 'string') {\n console.error('TypeError:', item, '(', typeof item, ')', 'is not a string');\n return false;\n }\n }\n return true;\n };\n\n if (rep.platforms) {\n if (isStringArray(rep.platforms)) {\n let backwards_compatibility_mappings = {\n //backwards compatibility with older layers\n android: 'Android',\n ios: 'iOS',\n\n windows: 'Windows',\n linux: 'Linux',\n mac: 'macOS',\n\n AWS: 'IaaS',\n GCP: 'IaaS',\n Azure: 'IaaS',\n };\n const selection = new Set();\n rep.platforms.forEach(function (platform) {\n if (platform in backwards_compatibility_mappings) selection.add(backwards_compatibility_mappings[platform]);\n else selection.add(platform);\n });\n this.platforms.selection = Array.from(selection);\n } else console.error('TypeError: filter platforms field is not a string[]');\n }\n }\n}\n","import tinycolor from 'tinycolor2';\nimport * as tinygradient from 'tinygradient';\n\nexport class Gradient {\n // gradient class used by ViewModels\n // official colors used in gradients:\n public colors: Gcolor[] = [new Gcolor('red'), new Gcolor('green')]; //current colors\n public options: string[] = ['#ffffff', '#ff6666', '#ffaf66', '#ffe766', '#8ec843', '#66b1ff', '#ff66f4']; //possible colors\n public minValue: number = 0;\n public maxValue: number = 100;\n public gradient: any;\n public gradientRGB: any;\n\n // presets in dropdown menu\n public presets = {\n redgreen: [new Gcolor('#ff6666'), new Gcolor('#ffe766'), new Gcolor('#8ec843')],\n greenred: [new Gcolor('#8ec843'), new Gcolor('#ffe766'), new Gcolor('#ff6666')],\n bluered: [new Gcolor('#66b1ff'), new Gcolor('#ff66f4'), new Gcolor('#ff6666')],\n redblue: [new Gcolor('#ff6666'), new Gcolor('#ff66f4'), new Gcolor('#66b1ff')],\n transparentblue: [new Gcolor('#ffffff00'), new Gcolor('#66b1ff')],\n transparentred: [new Gcolor('#ffffff00'), new Gcolor('#ff6666')],\n };\n\n constructor() {\n this.setGradientPreset('redgreen');\n }\n\n /**\n * Create a string version of this gradient\n * @return string version of gradient\n */\n public serialize(): string {\n let colorList: string[] = [];\n this.colors.forEach(function (gColor: Gcolor) {\n let hexstring = tinycolor(gColor.color).toHex8String(); // include the alpha channel\n colorList.push(hexstring);\n });\n\n let rep = {\n colors: colorList,\n minValue: this.minValue,\n maxValue: this.maxValue,\n };\n return JSON.stringify(rep, null, '\\t');\n }\n\n /**\n * Restore this gradient from the given serialized representation\n * @param rep serialized gradient\n */\n public deserialize(rep: string): void {\n let obj = JSON.parse(rep);\n let isColorStringArray = function (colors): boolean {\n for (let color of colors) {\n if (typeof color !== 'string' || !tinycolor(color).isValid()) {\n console.error('TypeError:', color, '(', typeof color, ')', 'is not a color-string');\n return false;\n }\n }\n return true;\n };\n\n if (isColorStringArray(obj.colors)) {\n this.colors = [];\n let self = this;\n obj.colors.forEach(function (hex: string) {\n self.colors.push(new Gcolor(hex));\n });\n } else console.error('TypeError: gradient colors field is not a color-string[]');\n this.minValue = obj.minValue;\n this.maxValue = obj.maxValue;\n this.updateGradient();\n }\n\n /**\n * Convert a preset to tinycolor array\n * @param preset preset name from preset array\n * @return [description]\n */\n public presetToTinyColor(preset) {\n let colorarray = [];\n this.presets[preset].forEach(function (gcolor: Gcolor) {\n colorarray.push(gcolor.color);\n });\n return tinygradient(colorarray).css('linear', 'to right');\n }\n\n /**\n * set this gradient to use the preset\n * @param preset preset to use\n */\n public setGradientPreset(preset: string): void {\n this.colors = this.presets[preset].map((color: Gcolor) => new Gcolor(color.color)); //deep copy gradient preset\n this.updateGradient();\n }\n\n /**\n * recompute gradient\n */\n public updateGradient(): void {\n let colorarray = [];\n this.colors.forEach(function (colorobj) {\n colorarray.push(colorobj.color);\n });\n this.gradient = tinygradient(colorarray);\n this.gradientRGB = this.gradient.rgb(100);\n }\n\n /**\n * Add a color to the end of the gradient\n */\n public addColor(): void {\n this.colors.push(new Gcolor(this.colors[this.colors.length - 1].color));\n }\n\n /**\n * Remove color at the given index\n * @param index index to remove color at\n */\n public removeColor(index): void {\n this.colors.splice(index, 1);\n }\n\n // get the gradient hex color for a given value in the scale. Value is string format number\n public getHexColor(valueString: string) {\n if (!this.gradient) this.updateGradient();\n\n let value: number;\n if (valueString.length == 0) return;\n else value = Number(valueString);\n\n if (value >= this.maxValue) {\n return this.gradientRGB[this.gradientRGB.length - 1].toHexString();\n }\n if (value <= this.minValue) {\n return this.gradientRGB[0].toHexString();\n }\n let index = ((value - this.minValue) / (this.maxValue - this.minValue)) * 100;\n return this.gradientRGB[Math.round(index)].toHexString();\n }\n}\n\n// a color in the gradient\nexport class Gcolor {\n color: string;\n\n constructor(color: string) {\n this.color = color;\n }\n}\n","export { VersionChangelog } from './version-changelog';\nexport { Version } from './version';\nexport { Domain } from './domain';\nexport { ContextMenuItem } from './context-menu-item';\nexport { Gradient, Gcolor } from './gradient';\nexport { Filter } from './filter';\nexport { LayoutOptions } from './layout-options';\nexport { Link } from './link';\nexport { Metadata } from './metadata';\nexport { TechniqueVM } from './technique-vm';\nexport { ViewModel } from './view-model';\nexport { Tab } from './tab';\n","export class LayoutOptions {\n // current layout selection\n public readonly layoutOptions: string[] = ['side', 'flat', 'mini'];\n private _layout = this.layoutOptions[0];\n public set layout(newLayout) {\n if (!this.layoutOptions.includes(newLayout)) {\n console.warn('invalid matrix layout', newLayout);\n return;\n }\n let oldLayout = this._layout;\n this._layout = newLayout;\n if (this._layout == 'mini') {\n // mini-table cannot show ID or name\n this.showID = false;\n this.showName = false;\n }\n if (oldLayout == 'mini' && newLayout != 'mini') {\n this.showName = true; // restore default show value for name\n }\n }\n public get layout(): string {\n return this._layout;\n }\n\n // aggregate function options\n public readonly aggregateFunctionOptions: string[] = ['average', 'min', 'max', 'sum'];\n private _aggregateFunction = this.aggregateFunctionOptions[0];\n public set aggregateFunction(newAggregateFunction) {\n if (!this.aggregateFunctionOptions.includes(newAggregateFunction)) {\n console.warn('invalid aggregate fx option', newAggregateFunction);\n return;\n }\n this._aggregateFunction = newAggregateFunction;\n }\n public get aggregateFunction(): string {\n return this._aggregateFunction;\n }\n\n // show technique/tactic IDs in the view?\n public _showID: boolean = false;\n public set showID(newval: boolean) {\n this._showID = newval;\n if (newval && this._layout == 'mini') this._layout = 'side';\n }\n public get showID(): boolean {\n return this._showID;\n }\n\n // show technique/tactic names in the view?\n public _showName: boolean = true;\n public set showName(newval: boolean) {\n this._showName = newval;\n if (newval && this._layout == 'mini') this._layout = 'side';\n }\n public get showName(): boolean {\n return this._showName;\n }\n\n // show aggregate scores?\n public _showAggregateScores: boolean = false;\n public set showAggregateScores(newval: boolean) {\n this._showAggregateScores = newval;\n }\n public get showAggregateScores(): boolean {\n return this._showAggregateScores;\n }\n\n public _countUnscored: boolean = false;\n public set countUnscored(newval: boolean) {\n this._countUnscored = newval;\n }\n public get countUnscored(): boolean {\n return this.aggregateFunction === 'average' ? this._countUnscored : false;\n }\n\n // how to display subtechniques\n public expandedSubtechniquesOptions: string[] = ['none', 'annotated', 'all'];\n private _expandedSubtechniques = this.expandedSubtechniquesOptions[0];\n public set expandedSubtechniques(newExpandedSubtechniques) {\n if (!this.expandedSubtechniquesOptions.includes(newExpandedSubtechniques)) {\n console.warn('invalid expand subtechnique option', newExpandedSubtechniques);\n return;\n }\n this._expandedSubtechniques = newExpandedSubtechniques;\n }\n public get expandedSubtechniques(): string {\n return this._expandedSubtechniques;\n }\n\n public serialize(): object {\n return {\n layout: this.layout,\n aggregateFunction: this.aggregateFunction,\n showID: this.showID,\n showName: this.showName,\n showAggregateScores: this.showAggregateScores,\n countUnscored: this.countUnscored,\n expandedSubtechniques: this.expandedSubtechniques,\n };\n }\n\n public deserialize(rep: any) {\n if ('showID' in rep) {\n if (typeof rep.showID === 'boolean') this.showID = rep.showID;\n else console.error(\"TypeError: layout field 'showID' is not a boolean:\", rep.showID, '(', typeof rep.showID, ')');\n }\n if ('showName' in rep) {\n if (typeof rep.showName === 'boolean') this.showName = rep.showName;\n else console.error(\"TypeError: layout field 'showName' is not a boolean:\", rep.showName, '(', typeof rep.showName, ')');\n }\n //make sure this one goes last so that it can override name and ID if layout == 'mini'\n if ('layout' in rep) {\n if (typeof rep.layout === 'string') this.layout = rep.layout;\n else console.error(\"TypeError: layout field 'layout' is not a string:\", rep.layout, '(', typeof rep.layout, ')');\n }\n if ('aggregateFunction' in rep) {\n if (typeof rep.aggregateFunction === 'string') this.aggregateFunction = rep.aggregateFunction;\n else\n console.error(\n \"TypeError: layout field 'aggregateFunction' is not a boolean:\",\n rep.aggregateFunction,\n '(',\n typeof rep.aggregateFunction,\n ')'\n );\n }\n if ('showAggregateScores' in rep) {\n if (typeof rep.showAggregateScores === 'boolean') this.showAggregateScores = rep.showAggregateScores;\n else\n console.error(\n \"TypeError: layout field 'showAggregateScores' is not a boolean:\",\n rep.showAggregateScores,\n '(',\n typeof rep.showAggregateScores,\n ')'\n );\n }\n if ('countUnscored' in rep) {\n if (typeof rep.countUnscored === 'boolean') this.countUnscored = rep.countUnscored;\n else console.error(\"TypeError: layout field 'countUnscored' is not a boolean:\", rep.countUnscored, '(', typeof rep.countUnscored, ')');\n }\n if ('expandedSubtechniques' in rep) {\n if (typeof rep.expandedSubtechniques === 'string') this.expandedSubtechniques = rep.expandedSubtechniques;\n else\n console.error(\n \"TypeError: layout field 'expandedSubtechniques' is not a string:\",\n rep.expandedSubtechniques,\n '(',\n typeof rep.expandedSubtechniques,\n ')'\n );\n }\n }\n}\n","export class Link {\n public label: string;\n public url: string;\n public divider: boolean;\n\n constructor() {\n // intentionally left blank\n }\n\n public serialize(): object {\n return this.label && this.url ? { label: this.label, url: this.url } : { divider: this.divider };\n }\n\n public deserialize(rep: any): void {\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n if ('url' in obj) {\n // label & url object\n if (typeof obj.url === 'string') this.url = obj.url;\n else console.error(\"TypeError: Link field 'url' is not a string\");\n\n if ('label' in obj) {\n if (typeof obj.label === 'string') this.label = obj.label;\n else console.error(\"TypeError: Link field 'label' is not a string\");\n } else console.error(\"Error: Link required field 'label' not present\");\n } else if ('divider' in obj) {\n // divider object\n if (typeof obj.divider === 'boolean') this.divider = obj.divider;\n else console.error(\"TypeError: Link field 'divider' is not a boolean\");\n } else console.error(\"Error: Link required field 'url' or 'divider' not present\");\n }\n\n public valid(): boolean {\n return (this.label && this.label.length > 0 && this.url && this.url.length > 0) || this.divider !== undefined;\n }\n}\n","export class Metadata {\n public name: string;\n public value: string;\n public divider: boolean;\n\n public serialize(): object {\n return this.name && this.value ? { name: this.name, value: this.value } : { divider: this.divider };\n }\n\n public deserialize(rep: any): void {\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n\n if ('name' in obj) {\n // name & value object\n if (typeof obj.name === 'string') this.name = obj.name;\n else console.error(\"TypeError: Metadata field 'name' is not a string\");\n\n if ('value' in obj) {\n if (typeof obj.value === 'string') this.value = obj.value;\n else console.error(\"TypeError: Metadata field 'value' is not a string\");\n } else console.error(\"Error: Metadata required field 'value' not present\");\n } else if ('divider' in obj) {\n // divider object\n if (typeof obj.divider === 'boolean') this.divider = obj.divider;\n else console.error(\"TypeError: Metadata field 'divider' is not a boolean\");\n } else console.error(\"Error: Metadata required field 'name' or 'divider' not present\");\n }\n\n public valid(): boolean {\n return (this.name && this.name.length > 0 && this.value && this.value.length > 0) || this.divider !== undefined;\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Asset extends StixObject {\n /**\n * Get techniques targeting this asset\n * @returns {string[]} technique IDs targeting this asset\n */\n public targeted(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.targeted_assets;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get all techniques related to the asset\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.targeted(domainVersionID);\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Campaign extends StixObject {\n /**\n * Get techniques used by the campaign\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by the campaign\n */\n public used(domainVersionID): string[] {\n let relationships = this.dataService.getDomain(domainVersionID).relationships.campaign_uses;\n if (relationships.has(this.id)) {\n return relationships.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get all techniques related to the campaign\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by the campaign\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.used(domainVersionID);\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Technique } from './technique';\n\nexport class DataComponent extends StixObject {\n public readonly url: string;\n public readonly dataSource: string;\n\n constructor(stixSDO: any, dataService: DataService) {\n super(stixSDO, dataService, false);\n this.dataSource = stixSDO.x_mitre_data_source_ref;\n }\n\n /**\n * Get techniques related to the data component\n * @param domainVersionID the ID of the domain and version\n * @returns {Technique[]} list of techniques used by the data component\n */\n public techniques(domainVersionID): Technique[] {\n const techniques = [];\n const domain = this.dataService.getDomain(domainVersionID);\n\n let relationships = domain.relationships.component_rel;\n if (relationships.has(this.id)) {\n relationships.get(this.id).forEach((targetID) => {\n const technique = domain.techniques.find((t) => t.id === targetID);\n if (technique) techniques.push(technique);\n });\n }\n return techniques;\n }\n /**\n * Get the data source related to this data component\n * @param domainVersionID the ID of the domain and version\n * @returns { name: string, url: string } the name and first url of the data source referenced by this data component\n */\n public source(domainVersionID) {\n const dataSources = this.dataService.getDomain(domainVersionID).dataSources;\n if (dataSources.has(this.dataSource)) {\n const source = dataSources.get(this.dataSource);\n let url = '';\n if (source.external_references && source.external_references[0] && source.external_references[0].url)\n url = source.external_references[0].url;\n return { name: source.name, url: url };\n } else return { name: '', url: '' };\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Group extends StixObject {\n /**\n * Get the techniques used by this group\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by this group\n */\n public used(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.group_uses;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get techniques used by campaigns attributed to this group\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by campaigns attributed to this group\n */\n public campaignsUsed(domainVersionID): string[] {\n // get campaigns attributed to groups\n let attributedCampaigns = this.dataService.getDomain(domainVersionID).relationships.campaigns_attributed_to;\n // get techniques used by campaigns\n let rels = this.dataService.getDomain(domainVersionID).relationships.campaign_uses;\n if (attributedCampaigns.has(this.id)) {\n // get set of techniques used by attributed campaigns\n let techniques = [];\n attributedCampaigns.get(this.id).forEach((campaign_id) => {\n if (rels.has(campaign_id)) techniques = techniques.concat(rels.get(campaign_id));\n });\n return techniques;\n } else return []; // no attributed campaigns\n }\n\n /**\n * Get all techniques related to the group\n */\n public relatedTechniques(domainVersionID): string[] {\n let usedSet = new Set(this.used(domainVersionID).concat(this.campaignsUsed(domainVersionID)));\n return Array.from(usedSet);\n }\n}\n","export { StixObject } from './stix-object';\nexport { Campaign } from './campaign';\nexport { DataComponent } from './data-component';\nexport { Group } from './group';\nexport { Matrix } from './matrix';\nexport { Mitigation } from './mitigation';\nexport { Note } from './note';\nexport { Software } from './software';\nexport { Tactic } from './tactic';\nexport { Technique } from './technique';\nexport { Asset } from './asset';\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Tactic } from './tactic';\nimport { Technique } from './technique';\n\nexport class Matrix extends StixObject {\n public readonly tactics: Tactic[]; //tactics found under this Matrix\n\n /**\n * Creates an instance of Matrix.\n * @param {*} stixSDO for the matrix\n * @param {Map} idToTacticSDO map of tactic ID to tactic SDO\n * @param {Technique[]} techniques all techniques defined in the domain\n */\n constructor(stixSDO: any, idToTacticSDO: Map, techniques: Technique[], dataService: DataService) {\n super(stixSDO, dataService);\n this.tactics = stixSDO.tactic_refs\n .map((tacticID) => idToTacticSDO.get(tacticID)) // Get tacticSDOs\n .filter((tacticSDO) => tacticSDO) // Filter out nulls (tacticSDO not found)\n .map((tacticSDO) => new Tactic(tacticSDO, techniques, this.dataService)); // Create Tactic objects\n }\n}\n","import { StixObject } from './stix-object';\n\nexport class Mitigation extends StixObject {\n /**\n * Get techniques mitigated by this mitigation\n * @returns {string[]} technique IDs mitigated by this mitigation\n */\n public mitigated(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.mitigates;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n\n /**\n * Get all techniques related to the mitigation\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.mitigated(domainVersionID);\n }\n}\n","export class Note {\n public readonly abstract?: string; // brief summary of note content\n public readonly content: string; // content of the note\n public readonly object_refs: string[]; // list of STIX objects the note is applied to\n\n /**\n * Creates an instance of Note.\n * @param {any} stixSDO for the note\n */\n constructor(stixSDO: any) {\n if (stixSDO.abstract) this.abstract = stixSDO.abstract;\n this.content = stixSDO.content;\n this.object_refs = stixSDO.object_refs;\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\n\nexport class Software extends StixObject {\n public readonly platforms: string[] = []; //platforms for this software\n\n /**\n * Creates an instance of Software.\n * @param {any} stixSDO for the software\n * @param {DataService} DataService the software occurs within\n */\n constructor(stixSDO: any, dataService: DataService) {\n super(stixSDO, dataService);\n this.platforms = stixSDO.x_mitre_platforms ? stixSDO.x_mitre_platforms.map((platform) => platform.trim()) : undefined;\n }\n\n /**\n * Get techniques used by this software\n * @param domainVersionID the ID of the domain and version\n * @returns {string[]} technique IDs used by this software\n */\n public used(domainVersionID): string[] {\n let rels = this.dataService.getDomain(domainVersionID).relationships.software_uses;\n if (rels.has(this.id)) {\n return rels.get(this.id);\n } else {\n return [];\n }\n }\n /**\n * Get all techniques related to the software\n */\n public relatedTechniques(domainVersionID): string[] {\n return this.used(domainVersionID);\n }\n}\n","import { DataService } from '../../services/data.service';\n\nexport abstract class StixObject {\n public readonly id: string; // STIX ID\n public readonly attackID: string; // ATT&CK ID\n public readonly name: string; // name of object\n public readonly description: string; // description of object\n public readonly url: string; // URL of object on the ATT&CK website\n public readonly created: string; // date object was created\n public readonly modified: string; // date object was last modified\n public readonly revoked: boolean; // is the object revoked?\n public readonly deprecated: boolean; // is the object deprecated?\n public readonly version: string; // object version\n protected readonly dataService: DataService;\n\n constructor(stixSDO: any, dataService: DataService, supportsAttackID = true) {\n // Properties\n this.id = stixSDO.id;\n this.name = stixSDO.name;\n this.description = stixSDO.description;\n this.created = stixSDO.created;\n this.modified = stixSDO.modified;\n this.revoked = stixSDO.revoked ? stixSDO.revoked : false;\n this.deprecated = stixSDO.x_mitre_deprecated ? stixSDO.x_mitre_deprecated : false;\n this.version = stixSDO.x_mitre_version ? stixSDO.x_mitre_version : '';\n this.dataService = dataService;\n\n // ATT&CK ID\n if (supportsAttackID) {\n if (stixSDO.external_references && stixSDO.external_references[0] && stixSDO.external_references[0].external_id) {\n this.attackID = stixSDO.external_references[0].external_id;\n } else {\n alert('Error: external_references has invalid format in imported StixObject (ID: ' + stixSDO.id + ')');\n throw new Error(\n 'Error: external_references has invalid format in imported StixObject. Read more here: https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html#_72bcfr3t79jx'\n );\n }\n }\n\n // URL\n if ('external_references' in stixSDO && stixSDO.external_references.length > 0) {\n this.url = stixSDO.external_references[0].url;\n } else {\n this.url = '';\n }\n }\n\n /**\n * Compare this object's version number to another object's version number\n * @param that the object to compare to\n * @returns 0 if the objects have the same version,\n * > 0 if this object's version is greater,\n * < 0 if that object's version is greater\n */\n public compareVersion(that: StixObject): number {\n if (!this.version || !that.version) return 0; // one or both of the objects have no version\n\n let thisVersion = this.version.split('.');\n let thatVersion = that.version.split('.');\n\n for (let i = 0; i < Math.max(thisVersion.length, thatVersion.length); i++) {\n if (thisVersion.length == thatVersion.length && thisVersion.length < i) return 0;\n if (thisVersion.length < i) return -1;\n if (thatVersion.length < i) return 1;\n if (+thisVersion[i] == +thatVersion[i]) continue;\n return +thisVersion[i] - +thatVersion[i];\n }\n return 0;\n }\n\n /**\n * get the stix object that this object is revoked by\n * @param {string} domainVersionID the ID of the domain & version this object is found in\n * @returns {string} object ID this object is revoked by\n */\n public revoked_by(domainVersionID): string {\n let rels = this.dataService.getDomain(domainVersionID).relationships.revoked_by;\n if (rels.has(this.id)) return rels.get(this.id);\n else return undefined;\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Technique } from './technique';\n\nexport class Tactic extends StixObject {\n public readonly techniques: Technique[]; // techniques found under this tactic\n public readonly shortname: string; // shortname property, AKA phase-name for techniques' kill-chain phases\n\n /**\n * Creates an instance of Tactic.\n * @param {any} stixSDO for the tactic\n * @param {Technique[]} techniques all techniques in the domain\n */\n constructor(stixSDO: any, techniques: Technique[], dataService: DataService) {\n super(stixSDO, dataService);\n this.shortname = stixSDO.x_mitre_shortname;\n this.techniques = techniques.filter((technique: Technique) => {\n if (!technique.revoked && !technique.deprecated) return technique.tactics.includes(this.shortname);\n });\n }\n}\n","import { DataService } from '../../services/data.service';\nimport { StixObject } from './stix-object';\nimport { Tactic } from './tactic';\n\nexport class Technique extends StixObject {\n public readonly platforms: string[]; // platforms for this technique.\n public readonly tactics: string[]; // tactics this technique is found under in phase-name format\n public readonly subtechniques: Technique[]; // subtechniques under this technique\n public readonly datasources: string; // data sources of the technique\n public parent: Technique = null; // parent technique. Only present if it's a sub-technique\n public get isSubtechnique() {\n return this.parent != null;\n }\n\n /**\n * Creates an instance of Technique.\n * @param {any} stixSDO for the technique\n * @param {Technique[]} subtechniques occuring under the technique\n */\n constructor(stixSDO: any, subtechniques: Technique[], dataService: DataService) {\n super(stixSDO, dataService);\n this.platforms = stixSDO.x_mitre_platforms ? stixSDO.x_mitre_platforms.map((platform) => platform.trim()) : undefined;\n this.datasources = stixSDO.x_mitre_data_sources ? stixSDO.x_mitre_data_sources.toString() : '';\n if (!this.revoked && !this.deprecated) {\n this.tactics = stixSDO.kill_chain_phases.map((phase) => phase.phase_name);\n }\n\n this.subtechniques = subtechniques.filter((sub) => !(sub.deprecated || sub.revoked));\n for (let subtechnique of this.subtechniques) {\n subtechnique.parent = this;\n }\n }\n\n /**\n * Get an ID identifying this technique under a specific tactic\n * @param {string|Tactic} tactic tactic name in phase-name/shortname format, or a Tactic object itself\n * @returns {string} ID for this technique under that tactic\n */\n public get_technique_tactic_id(tactic: string | Tactic): string {\n let tactic_shortname = tactic instanceof Tactic ? tactic.shortname : tactic;\n if (!this.tactics.includes(tactic_shortname)) {\n throw new Error(tactic_shortname + ' is not a tactic of ' + this.attackID);\n }\n return this.attackID + '^' + tactic_shortname;\n }\n\n /**\n * Get all possible IDs identifying this technique under tactics\n * Basically the same as calling get_technique_tactic_id with all valid tactic values\n */\n public get_all_technique_tactic_ids(): string[] {\n if (this.revoked || this.deprecated) return [];\n return this.tactics.map((shortname: string) => this.get_technique_tactic_id(shortname));\n }\n}\n","import { ViewModel } from './view-model';\n\nexport class Tab {\n public title: string;\n public viewModel: ViewModel;\n public domain: string = '';\n public isDataTable: boolean;\n public isCloseable: boolean = false;\n public showScoreVariables: boolean = false;\n\n constructor(title: string, isCloseable: boolean, showScoreVariables: boolean, domain: string, isDataTable: boolean) {\n this.title = title;\n this.isCloseable = isCloseable;\n this.showScoreVariables = showScoreVariables;\n this.domain = domain;\n this.isDataTable = isDataTable;\n }\n}\n","import { Link } from './link';\nimport { Metadata } from './metadata';\nimport tinycolor from 'tinycolor2';\n\nexport class TechniqueVM {\n // Defines the ViewModel for a specific Technique\n public techniqueID: string;\n public technique_tactic_union_id: string;\n public tactic: string;\n\n public score: string = '';\n public scoreColor: string; // hex color for score gradient\n public aggregateScore: any; // number rather than string as this is not based on an input from user\n public aggregateScoreColor: string; // hex color for aggregate score\n public color: string = ''; // manually assigned color-class name\n public enabled: boolean = true;\n public comment: string = '';\n\n public metadata: Metadata[] = [];\n public get metadataStr(): string {\n return JSON.stringify(this.metadata);\n }\n\n public links: Link[] = [];\n public get linkStr(): string {\n return JSON.stringify(this.links);\n }\n\n public showSubtechniques = false;\n public isVisible: boolean = true; // is technique currently displayed on matrix?\n\n constructor(technique_tactic_union_id: string) {\n this.technique_tactic_union_id = technique_tactic_union_id;\n let idSplit = technique_tactic_union_id.split('^');\n this.techniqueID = idSplit[0];\n this.tactic = idSplit[1];\n }\n\n /**\n * Has this TechniqueVM been modified from its initialized state?\n * @return true if it has been modified, false otherwise\n */\n public modified(): boolean {\n return this.annotated() || this.showSubtechniques;\n }\n\n /**\n * Check if this TechniqueVM has been annotated\n * @return true if it has annotations, false otherwise\n */\n public annotated(): boolean {\n return this.score != '' || this.color != '' || !this.enabled || this.comment != '' || this.links.length !== 0 || this.metadata.length !== 0;\n }\n\n /**\n * Reset this TechniqueVM's annotations to their default values\n */\n public resetAnnotations(): void {\n this.score = '';\n this.comment = '';\n this.color = '';\n this.enabled = true;\n this.aggregateScore = '';\n this.aggregateScoreColor = '';\n this.links = [];\n this.metadata = [];\n }\n\n /**\n * Set isVisible based on filters\n */\n public setIsVisible(visible: boolean): void {\n this.isVisible = visible;\n }\n\n /**\n * Convert to string representation\n * @return string representation\n */\n public serialize(): string {\n let rep: { [k: string]: any } = {};\n rep.techniqueID = this.techniqueID;\n rep.tactic = this.tactic;\n if (this.score !== '' && !isNaN(Number(this.score))) rep.score = Number(this.score);\n rep.color = this.color;\n rep.comment = this.comment;\n rep.enabled = this.enabled;\n rep.metadata = this.metadata.filter((m) => m.valid()).map((m) => m.serialize());\n rep.links = this.links.filter((l) => l.valid()).map((l) => l.serialize());\n rep.showSubtechniques = this.showSubtechniques;\n return JSON.stringify(rep, null, '\\t');\n }\n\n /**\n * Restore this technique from serialized technique\n * @param rep serialized technique string\n */\n public deserialize(rep: string, techniqueID: string, tactic: string): void {\n let obj = JSON.parse(rep);\n if (techniqueID !== undefined) this.techniqueID = techniqueID;\n else console.error('ERROR: TechniqueID field not present in technique');\n\n if (tactic !== undefined && tactic !== '') this.tactic = tactic;\n else {\n console.error('WARNING: tactic field not present in technique');\n alert(`WARNING: The tactic field on the technique ID ${techniqueID} is not defined. Annotations for this technique may not be restored.`);\n }\n if ('comment' in obj) {\n if (typeof obj.comment === 'string') this.comment = obj.comment;\n else console.error('TypeError: technique comment field is not a number:', obj.comment, '(', typeof obj.comment, ')');\n }\n if ('color' in obj && obj.color !== '') {\n if (typeof obj.color === 'string' && tinycolor(obj.color).isValid()) this.color = obj.color;\n else console.error('TypeError: technique color field is not a color-string:', obj.color, '(', typeof obj.color, ')');\n }\n if ('score' in obj) {\n if (typeof obj.score === 'number') this.score = String(obj.score);\n else console.error('TypeError: technique score field is not a number:', obj.score, '(', typeof obj.score, ')');\n }\n if ('enabled' in obj) {\n if (typeof obj.enabled === 'boolean') this.enabled = obj.enabled;\n else console.error('TypeError: technique enabled field is not a boolean:', obj.enabled, '(', typeof obj.enabled, ')');\n }\n if ('showSubtechniques' in obj) {\n if (typeof obj.showSubtechniques === 'boolean') this.showSubtechniques = obj.showSubtechniques;\n else\n console.error(\n 'TypeError: technique showSubtechnique field is not a boolean:',\n obj.showSubtechniques,\n '(',\n typeof obj.showSubtechniques,\n ')'\n );\n }\n if (this.tactic !== undefined && this.techniqueID !== undefined) {\n this.technique_tactic_union_id = this.techniqueID + '^' + this.tactic;\n } else {\n console.error('ERROR: Tactic and TechniqueID field needed.');\n }\n\n if ('metadata' in obj) {\n for (let metadataObj of obj.metadata) {\n let m = new Metadata();\n m.deserialize(metadataObj);\n if (m.valid()) this.metadata.push(m);\n }\n }\n if ('links' in obj) {\n for (let linkObj of obj.links) {\n let link = new Link();\n link.deserialize(linkObj);\n if (link.valid()) this.links.push(link);\n }\n }\n }\n}\n","export class VersionChangelog {\n public oldDomainVersionID: string;\n public newDomainVersionID: string;\n public additions: string[] = []; // new objects added to newest version\n public changes: string[] = []; // object changes between versions\n public minor_changes: string[] = []; // changes to objects without version increments\n public deprecations: string[] = []; // objects deprecated since older version\n public revocations: string[] = []; // objects revoked since older version\n public unchanged: string[] = []; // objects which have not changed between versions\n\n public reviewed = new Set();\n public copied = new Set();\n\n constructor(oldDomainVersionID: string, newDomainVersionID: string) {\n this.oldDomainVersionID = oldDomainVersionID;\n this.newDomainVersionID = newDomainVersionID;\n }\n\n /** Get the length of the version changelog */\n public length(): number {\n return (\n this.additions.length +\n this.changes.length +\n this.minor_changes.length +\n this.deprecations.length +\n this.revocations.length +\n this.unchanged.length\n );\n }\n}\n","export class Version {\n public readonly name: string;\n public readonly number: string;\n\n /**\n * Creates an instance of Version\n * @param name version name\n * @param number version number\n */\n constructor(name: string, number: string) {\n this.name = name;\n this.number = number;\n }\n}\n","import { DataService } from '../services/data.service';\nimport { Filter } from './filter';\nimport { Gradient } from './gradient';\nimport { LayoutOptions } from './layout-options';\nimport { Link } from './link';\nimport { Metadata } from './metadata';\nimport { Technique, Tactic, Matrix } from './stix';\nimport { TechniqueVM } from './technique-vm';\nimport { VersionChangelog } from './version-changelog';\nimport * as globals from '../utils/globals';\nimport tinycolor from 'tinycolor2';\n\nexport class ViewModel {\n public name: string; // layer name\n public domain: string = ''; // attack domain\n public version: string = ''; // attack version\n public domainVersionID: string; // layer domain & version\n public description: string = ''; // layer description\n public uid: string; // unique identifier for this ViewModel\n public bundleURL: string; // the STIX bundle URL that a custom layer was loaded from\n public loaded: boolean = false; // whether or not techniqueVMs are loaded\n\n public techniqueVMs: Map = new Map(); // configuration for each technique\n public selectedTechniques: Set = new Set(); // currently selected techniques (technique_tactic_id)\n public activeTvm: TechniqueVM; // first selected techniqueVM\n\n private linkMismatches: string[] = []; // subsequent selected technique_tactic_ids that do not have matching links\n public get linksMatch(): boolean {\n return !this.linkMismatches.length;\n }\n private metadataMismatches: string[] = []; // subsequent selected technique_tactic_ids that do not have matching metadata\n public get metadataMatch(): boolean {\n return !this.metadataMismatches.length;\n }\n\n public highlightedTactic: Tactic = null;\n public highlightedTechniques: Set = new Set();\n public highlightedTechnique: Technique = null; // the Technique that was actually moused over\n\n public filters: Filter;\n public layout: LayoutOptions = new LayoutOptions();\n public hideDisabled: boolean = false; // are disabled techniques hidden?\n public showTacticRowBackground: boolean = false;\n public tacticRowBackground: string = '#dddddd';\n public stickyToolbar = true;\n\n public gradient: Gradient = new Gradient(); // scoring gradient\n public legendItems: any[] = [];\n public backgroundPresets: string[] = [\n '#e60d0d',\n '#fc3b3b',\n '#fc6b6b',\n '#fca2a2',\n '#e6550d',\n '#fd8d3c',\n '#fdae6b',\n '#fdd0a2',\n '#e6d60d',\n '#fce93b',\n '#fcf26b',\n '#fcf3a2',\n '#31a354',\n '#74c476',\n '#a1d99b',\n '#c7e9c0',\n '#3182bd',\n '#6baed6',\n '#9ecae1',\n '#c6dbef',\n '#756bb1',\n '#9e9ac8',\n '#bcbddc',\n '#dadaeb',\n '#636363',\n '#969696',\n '#bdbdbd',\n '#d9d9d9',\n ];\n public legendColorPresets: string[] = [];\n public initializeScoresTo = ''; // value to initialize scores to\n\n public metadata: Metadata[] = [];\n public links: Link[] = [];\n public technique_show_subtechnique = false;\n\n /*\n * 0: ascending alphabetically\n * 1: descending alphabetically\n * 2: ascending numerically\n * 3: descending numerically\n */\n public sorting: number = 0;\n\n public selectTechniquesAcrossTactics: boolean = true;\n public selectSubtechniquesWithParent: boolean = false;\n public selectVisibleTechniques: boolean = false;\n\n public compareTo?: ViewModel;\n public versionChangelog?: VersionChangelog;\n\n private _sidebarOpened: boolean;\n public get sidebarOpened(): boolean {\n return this._sidebarOpened;\n }\n public set sidebarOpened(newVal: boolean) {\n this._sidebarOpened = newVal;\n }\n\n public readonly sidebarContentTypes = ['layerUpgrade', 'search', 'layerSettings'];\n private _sidebarContentType: string;\n public get sidebarContentType(): string {\n return this._sidebarContentType;\n }\n public set sidebarContentType(newVal: string) {\n if (this.sidebarContentTypes.includes(newVal)) this._sidebarContentType = newVal;\n else this._sidebarContentType = '';\n }\n\n constructor(\n name: string,\n uid: string,\n domainVersionID: string,\n public dataService: DataService\n ) {\n console.debug(\"initializing ViewModel '\" + name + \"'\");\n this.domainVersionID = domainVersionID;\n this.filters = new Filter();\n this.name = name;\n this.uid = uid;\n this.legendColorPresets = this.backgroundPresets;\n }\n\n public openSidebar(contentType: string) {\n this.sidebarContentType = contentType;\n this.sidebarOpened = true;\n }\n\n public loadVMData(): void {\n let domain = this.dataService.getDomain(this.domainVersionID);\n if (domain.isCustom) {\n this.bundleURL = domain.urls[0];\n }\n\n if (!this.domainVersionID || !domain.dataLoaded) {\n let self = this;\n this.dataService.onDataLoad(this.domainVersionID, function () {\n self.initTechniqueVMs();\n self.filters.initPlatformOptions(self.dataService.getDomain(self.domainVersionID));\n });\n } else {\n this.initTechniqueVMs();\n this.filters.initPlatformOptions(domain);\n }\n this.loaded = true;\n }\n\n private initTechniqueVMs(): void {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n // init techniques\n for (let id of technique.get_all_technique_tactic_ids()) {\n let techniqueVM = new TechniqueVM(id);\n techniqueVM.score = this.initializeScoresTo;\n this.setTechniqueVM(techniqueVM, false);\n }\n\n // init sub-techniques\n for (let subtechnique of technique.subtechniques) {\n for (let id of subtechnique.get_all_technique_tactic_ids()) {\n let techniqueVM = new TechniqueVM(id);\n techniqueVM.score = this.initializeScoresTo;\n this.setTechniqueVM(techniqueVM, false);\n }\n }\n }\n // display annotated subtechniques if \"annotated\" option is selected\n if (this.layout.expandedSubtechniques == 'annotated') {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.subtechniques.length > 0) {\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.getTechniqueVM_id(id);\n for (let subtechnique of technique.subtechniques) {\n tvm.showSubtechniques =\n tvm.showSubtechniques ||\n subtechnique.get_all_technique_tactic_ids().some((sid) => {\n let svm = this.getTechniqueVM_id(sid);\n return svm.annotated();\n });\n }\n }\n }\n }\n }\n // display all subtechniques if \"all\" option is selected\n else if (this.layout.expandedSubtechniques == 'all') {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.subtechniques.length > 0) {\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.getTechniqueVM_id(id);\n tvm.showSubtechniques = true;\n }\n }\n }\n } else {\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.subtechniques.length > 0) {\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.getTechniqueVM_id(id);\n if (tvm.showSubtechniques) {\n this.technique_show_subtechnique = true;\n break;\n }\n }\n }\n }\n if (this.layout.expandedSubtechniques == 'none' && !this.technique_show_subtechnique) {\n this.techniqueVMs.forEach(function (tvm) {\n tvm.showSubtechniques = false;\n });\n }\n }\n // display none of the subtechniques if \"none\" option is selected\n }\n\n public getTechniqueVM(technique: Technique, tactic: Tactic): TechniqueVM {\n if (!this.hasTechniqueVM(technique, tactic)) {\n throw Error('technique VM not found: ' + technique.attackID + ', ' + tactic.attackID);\n }\n return this.techniqueVMs.get(technique.get_technique_tactic_id(tactic));\n }\n\n public getTechniqueVM_id(technique_tactic_id: string): TechniqueVM {\n if (!this.hasTechniqueVM_id(technique_tactic_id)) {\n throw Error('technique VM not found: ' + technique_tactic_id);\n }\n return this.techniqueVMs.get(technique_tactic_id);\n }\n\n /**\n * setter\n * @param {techniqueVM} techniqueVM: the techniqueVM to set\n * @param {boolean} overwrite (default true) if true, overwrite existing techniqueVMs under that ID.\n */\n public setTechniqueVM(techniqueVM: TechniqueVM, overwrite = true): void {\n if (this.techniqueVMs.has(techniqueVM.technique_tactic_union_id)) {\n if (overwrite) this.techniqueVMs.delete(techniqueVM.technique_tactic_union_id);\n else return;\n }\n this.techniqueVMs.set(techniqueVM.technique_tactic_union_id, techniqueVM);\n }\n\n public hasTechniqueVM(technique: Technique, tactic: Tactic): boolean {\n return this.techniqueVMs.has(technique.get_technique_tactic_id(tactic));\n }\n\n public hasTechniqueVM_id(technique_tactic_id: string): boolean {\n return this.techniqueVMs.has(technique_tactic_id);\n }\n\n /**\n * Highlight the given technique under the given tactic\n * @param {Technique} technique to highlight\n * @param {Tactic} tactic wherein the technique occurs\n */\n public highlightTechnique(technique: Technique, tactic?: Tactic | null): void {\n if (this.selectSubtechniquesWithParent && technique.isSubtechnique) this.highlightedTechniques.add(technique.parent.id);\n this.highlightedTechnique = technique;\n this.highlightedTechniques.add(technique.id);\n this.highlightedTactic = tactic;\n }\n\n /**\n * Clear the technique highlight\n */\n public clearHighlight(): void {\n this.highlightedTactic = null;\n this.highlightedTechnique = null;\n this.highlightedTechniques = new Set();\n }\n\n /**\n * Select the given technique. Depending on selectTechniquesAcrossTactics, either selects in all tactics or in given tactic\n * @param {Technique} technique to select\n * @param {Tactic} tactic wherein the technique occurs\n */\n public selectTechnique(technique: Technique, tactic: Tactic): void {\n if (this.selectTechniquesAcrossTactics) this.selectTechniqueAcrossTactics(technique);\n else this.selectTechniqueInTactic(technique, tactic);\n }\n\n /**\n * Unselect the given technique. Depending on selectTechniquesAcrossTactics, either unselects in all tactics or in given tactic\n * @param {Technique} technique to select\n * @param {Tactic} tactic wherein the technique occurs\n */\n public unselectTechnique(technique: Technique, tactic: Tactic): void {\n if (this.selectTechniquesAcrossTactics) this.unselectTechniqueAcrossTactics(technique);\n else this.unselectTechniqueInTactic(technique, tactic);\n }\n\n /**\n * Select the given technique in the given tactic\n * @param {Technique} technique to select\n * @param {Tactic} tactic wherein the technique occurs\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n */\n public selectTechniqueInTactic(technique: Technique, tactic: Tactic, walkChildren = true): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // check parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.selectTechniqueInTactic(technique.parent, tactic, true);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.selectTechniqueInTactic(subtechnique, tactic, false);\n }\n }\n }\n\n let technique_tactic_id = technique.get_technique_tactic_id(tactic);\n if (!this.isCurrentlyEditing()) {\n // first selection\n this.activeTvm = this.getTechniqueVM_id(technique_tactic_id);\n }\n if ((this.selectVisibleTechniques && this.getTechniqueVM_id(technique_tactic_id).isVisible) || !this.selectVisibleTechniques) {\n this.selectedTechniques.add(technique_tactic_id);\n this.checkValues(true, technique_tactic_id);\n }\n }\n\n /**\n * Select all techniques under the given tactic\n * @param {Tactic} tactic wherein the techniques occur\n */\n public selectAllTechniquesInTactic(tactic: Tactic): void {\n for (let technique of tactic.techniques) {\n this.selectTechnique(technique, tactic);\n }\n }\n\n /**\n * select the given technique across all tactics in which it occurs\n * @param {Technique} technique to select\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n * @param highlightTechniques, if true, highlight techniques rather than add to selected techniques group\n */\n public selectTechniqueAcrossTactics(technique: Technique, walkChildren = true, highlightTechniques = false): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // walk to parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.selectTechniqueAcrossTactics(technique.parent, true, highlightTechniques);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.selectTechniqueAcrossTactics(subtechnique, false, highlightTechniques);\n }\n }\n }\n if (highlightTechniques) {\n // highlight technique\n this.highlightTechnique(technique);\n } else {\n for (let id of technique.get_all_technique_tactic_ids()) {\n if (!this.isCurrentlyEditing()) this.activeTvm = this.getTechniqueVM_id(id); // first selection\n if ((this.selectVisibleTechniques && this.getTechniqueVM_id(id).isVisible) || !this.selectVisibleTechniques) {\n this.selectedTechniques.add(id);\n this.checkValues(true, id);\n }\n }\n }\n }\n\n /**\n * Unselect the given technique in the given tactic\n * @param {Technique} technique to unselect\n * @param {Tactic} tactic wherein the technique occurs\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n */\n public unselectTechniqueInTactic(technique: Technique, tactic: Tactic, walkChildren = true): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // walk to parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.unselectTechniqueInTactic(technique.parent, tactic, true);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.unselectTechniqueInTactic(subtechnique, tactic, false);\n }\n }\n }\n\n let technique_tactic_id = technique.get_technique_tactic_id(tactic);\n this.selectedTechniques.delete(technique_tactic_id);\n this.checkValues(false, technique_tactic_id);\n }\n\n /**\n * Unselect all techniques in the given tactic\n * @param {Tactic} tactic wherein the techniques occur\n */\n public unselectAllTechniquesInTactic(tactic: Tactic): void {\n for (let technique of tactic.techniques) {\n this.unselectTechnique(technique, tactic);\n }\n }\n\n /**\n * Unselect the given technique across all tactics in which it occurs\n * @param {Technique} technique to unselect\n * @param {boolean} walkChildren (recursion helper) if true and selectSubtechniquesWithParent is true, walk selection up to parent technique\n */\n public unselectTechniqueAcrossTactics(technique: Technique, walkChildren = true): void {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // walk to parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n this.unselectTechniqueAcrossTactics(technique.parent, true);\n return;\n } else {\n // select sub-techniques\n for (let subtechnique of technique.subtechniques) {\n this.unselectTechniqueAcrossTactics(subtechnique, false);\n }\n }\n }\n\n for (let id of technique.get_all_technique_tactic_ids()) {\n this.selectedTechniques.delete(id);\n this.checkValues(false, id);\n }\n }\n\n /* Unselect all techniques */\n public clearSelectedTechniques(): void {\n this.selectedTechniques.clear();\n this.activeTvm = undefined;\n this.linkMismatches = [];\n this.metadataMismatches = [];\n }\n\n /* Select all techniques */\n public selectAllTechniques(): void {\n this.clearSelectedTechniques();\n this.invertSelection();\n }\n\n /* Set all selected techniques to deselected, and select all techniques not currently selected */\n public invertSelection(): void {\n let previouslySelected = new Set(this.selectedTechniques);\n this.clearSelectedTechniques();\n\n let self = this;\n this.techniqueVMs.forEach(function (tvm, key) {\n if (!previouslySelected.has(tvm.technique_tactic_union_id)) {\n if ((self.selectVisibleTechniques && tvm.isVisible) || !self.selectVisibleTechniques) {\n if (!self.isCurrentlyEditing()) {\n // first selection\n self.activeTvm = self.getTechniqueVM_id(tvm.technique_tactic_union_id);\n }\n self.selectedTechniques.add(tvm.technique_tactic_union_id);\n self.checkValues(true, tvm.technique_tactic_union_id);\n }\n }\n });\n }\n\n /**\n * Select all techniques with annotations if nothing is currently selected, or\n * select a subset of the current selection that has annotations\n */\n public selectAnnotated(): void {\n let self = this;\n if (this.isCurrentlyEditing()) {\n // deselect techniques without annotations\n let selected = new Set(this.selectedTechniques);\n this.techniqueVMs.forEach(function (tvm, key) {\n if (selected.has(tvm.technique_tactic_union_id) && !tvm.annotated()) {\n self.selectedTechniques.delete(tvm.technique_tactic_union_id);\n self.checkValues(false, tvm.technique_tactic_union_id);\n }\n });\n } else {\n // select all techniques with annotations\n this.techniqueVMs.forEach(function (tvm, key) {\n if (tvm.annotated()) {\n if ((self.selectVisibleTechniques && tvm.isVisible) || !self.selectVisibleTechniques) {\n if (!self.isCurrentlyEditing()) self.activeTvm = self.getTechniqueVM_id(tvm.technique_tactic_union_id); // first selection\n self.selectedTechniques.add(tvm.technique_tactic_union_id);\n self.checkValues(true, tvm.technique_tactic_union_id);\n }\n }\n });\n }\n }\n\n /**\n * Select all techniques without annotations if nothing is currently selected, or\n * select a subset of the current selection that do not have annotations\n */\n public selectUnannotated(): void {\n let self = this;\n if (this.isCurrentlyEditing()) {\n // deselect techniques with annotations\n let selected = new Set(this.selectedTechniques);\n this.techniqueVMs.forEach(function (tvm, key) {\n if (selected.has(tvm.technique_tactic_union_id) && tvm.annotated()) {\n self.selectedTechniques.delete(tvm.technique_tactic_union_id);\n self.checkValues(false, tvm.technique_tactic_union_id);\n }\n });\n } else {\n // select all techniques without annotations\n this.selectAnnotated();\n this.invertSelection();\n }\n }\n\n /**\n * Copies all annotations from unchanged techniques and techniques\n * which have had minor changes\n */\n public initCopyAnnotations(): void {\n let self = this;\n\n function copy(attackID: string) {\n let fromTechnique = self.dataService.getTechnique(attackID, self.compareTo.domainVersionID);\n let domain = self.dataService.getDomain(self.domainVersionID);\n let tactics = fromTechnique.tactics.map((shortname) => domain.tactics.find((t) => t.shortname == shortname));\n tactics.forEach((tactic) => {\n let fromVM = self.compareTo.getTechniqueVM(fromTechnique, tactic);\n if (fromVM.annotated()) {\n let toTechnique = self.dataService.getTechnique(attackID, self.domainVersionID);\n self.copyAnnotations(fromTechnique, toTechnique, tactic);\n }\n });\n }\n\n if (this.versionChangelog) {\n this.versionChangelog.unchanged.forEach((attackID) => copy(attackID));\n this.versionChangelog.minor_changes.forEach((attackID) => copy(attackID));\n }\n }\n\n /**\n * Copy annotations from one technique to another under the given tactic.\n * The previous technique will be disabled\n * @param fromTechnique the technique to copy annotations from\n * @param toTechnique the technique to copy annotations to\n * @param tactic the tactic the techniques are found under\n */\n public copyAnnotations(fromTechnique: Technique, toTechnique: Technique, tactic: Tactic): void {\n let fromVM = this.compareTo.getTechniqueVM(fromTechnique, tactic);\n let toVM = this.getTechniqueVM(toTechnique, tactic);\n\n this.versionChangelog.reviewed.delete(fromTechnique.attackID);\n\n toVM.deserialize(fromVM.serialize(), fromTechnique.attackID, tactic.shortname);\n this.updateScoreColor(toVM);\n fromVM.enabled = false;\n\n this.versionChangelog.copied.add(fromVM.technique_tactic_union_id);\n if (fromTechnique.get_all_technique_tactic_ids().every((id) => this.versionChangelog.copied.has(id))) {\n this.versionChangelog.reviewed.add(fromTechnique.attackID);\n }\n }\n\n /**\n * Reset the techniqueVM that the annotations were previously copied to\n * and re-enable the technique the annotations were copied from\n * @param fromTechnique the technique that annotations were copied from\n * @param toTechnique the technique that annotations were copied to\n * @param tactic the tactic the techniques are found under\n */\n public revertCopy(fromTechnique: Technique, toTechnique: Technique, tactic: Tactic): void {\n let fromVM = this.compareTo.getTechniqueVM(fromTechnique, tactic);\n let toVM = this.getTechniqueVM(toTechnique, tactic);\n this.versionChangelog.reviewed.delete(fromTechnique.attackID);\n\n toVM.resetAnnotations();\n fromVM.enabled = true;\n\n this.versionChangelog.copied.delete(fromVM.technique_tactic_union_id);\n if (!fromTechnique.get_all_technique_tactic_ids().every((id) => this.versionChangelog.copied.has(id))) {\n this.versionChangelog.reviewed.delete(fromTechnique.attackID);\n }\n }\n\n /**\n * Return true if the given technique is selected, false otherwise\n * @param {Technique} technique the technique to check\n * * @param {Tactic} tactic wherein the technique occurs\n * @return {boolean} true if selected, false otherwise\n */\n public isTechniqueSelected(technique: Technique, tactic: Tactic, walkChildren = true): boolean {\n if (this.selectTechniquesAcrossTactics) {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // check parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n return this.isTechniqueSelected(technique.parent, tactic, true);\n } else {\n for (let subtechnique of technique.subtechniques) {\n if (this.isTechniqueSelected(subtechnique, tactic, false)) return true;\n }\n }\n }\n\n for (let id of technique.get_all_technique_tactic_ids()) {\n if (this.selectedTechniques.has(id)) return true;\n }\n return false;\n } else {\n if (this.selectSubtechniquesWithParent && walkChildren) {\n // check parent / children / siblings\n if (technique.isSubtechnique) {\n // select from parent\n return this.isTechniqueSelected(technique.parent, tactic, true);\n } else {\n for (let subtechnique of technique.subtechniques) {\n if (this.isTechniqueSelected(subtechnique, tactic, false)) return true;\n }\n }\n }\n return this.selectedTechniques.has(technique.get_technique_tactic_id(tactic));\n }\n }\n\n /**\n * Return the number of selected techniques\n * @return {number} the number of selected techniques\n */\n public getSelectedTechniqueCount(): number {\n if (this.selectTechniquesAcrossTactics) {\n if (this.selectSubtechniquesWithParent) {\n // match across tactics\n // match subtechniques and parents\n\n // matches this part\n // vvvvv\n // T1001.001^TA1000\n let ids = new Set();\n this.selectedTechniques.forEach((unionID) => ids.add(unionID.split('^')[0].split('.')[0]));\n return ids.size;\n } else {\n // match across tactics\n // differentiate subtechniques and parents\n\n // matches this part\n // vvvvv vvv\n // T1001.001^TA1000\n let ids = new Set();\n this.selectedTechniques.forEach((unionID) => ids.add(unionID.split('^')[0]));\n return ids.size;\n }\n } else {\n if (this.selectSubtechniquesWithParent) {\n // differentiate tactics\n // match subtechniques and parents\n\n // matches this part\n // vvvvv vvvvvv\n // T1001.001^TA1000\n let ids = new Set();\n this.selectedTechniques.forEach((unionID) => {\n let split = unionID.split('^');\n let tacticID = split[1];\n let techniqueID = split[0].split('.')[0];\n ids.add(techniqueID + '^' + tacticID);\n });\n return ids.size;\n } else {\n // differentiate tactics\n // differentiate subtechniques and parents\n\n // matches this part\n // vvvvv vvv vvvvvv\n // T1001.001^TA1000\n return this.selectedTechniques.size;\n }\n }\n }\n\n /**\n * Returns true if the given tactic is selected\n * @param {Tactic} tactic to check\n * @return {boolean} true if selected\n */\n public isTacticSelected(tactic: Tactic): boolean {\n let self = this;\n let isSelected = tactic.techniques.every(function (technique) {\n return self.isTechniqueSelected(technique, tactic);\n });\n return isSelected;\n }\n\n /**\n * Return true if currently editing any techniques, false otherwise\n * @return {boolean} true if currently editing any techniques, false otherwise\n */\n public isCurrentlyEditing(): boolean {\n return this.getSelectedTechniqueCount() > 0;\n }\n\n /**\n * Edit the selected techniques\n * @param {string} field the field to edit\n * @param {any} value the value to place in the field\n */\n public editSelectedTechniques(field: string, value: any): void {\n this.selectedTechniques.forEach((id) => {\n this.getTechniqueVM_id(id)[field] = value;\n });\n }\n\n /**\n * Edit the selected techniques list attribute\n * @param {string} field the field to edit\n * @param {(Link|Metadata)[]} values the list of values to place in the field\n */\n public editSelectedTechniqueValues(field: string, values: (Link | Metadata)[]): void {\n let fieldToType: any = { links: Link, metadata: Metadata };\n this.selectedTechniques.forEach((id) => {\n const value_clone = values.map((value) => {\n // deep copy\n let clone = new fieldToType[field]();\n clone.deserialize(value.serialize());\n return clone;\n });\n this.getTechniqueVM_id(id)[field] = value_clone;\n });\n }\n\n /**\n * Reset the selected techniques' annotations to their default values\n */\n public resetSelectedTechniques(): void {\n this.selectedTechniques.forEach((id) => {\n this.getTechniqueVM_id(id).resetAnnotations();\n });\n }\n\n /**\n * Get get a common value from the selected techniques\n * @param field the field to get the common value from\n * @return the value of the field if all selected techniques have the same value, otherwise \"\"\n */\n public getEditingCommonValue(field: string): any {\n if (!this.isCurrentlyEditing()) return '';\n let ids = Array.from(this.selectedTechniques);\n let commonValue = this.getTechniqueVM_id(ids[0])[field];\n for (let i = 1; i < ids.length; i++) {\n if (this.getTechniqueVM_id(ids[i])[field] != commonValue) return '';\n }\n return commonValue;\n }\n\n /**\n * If a technique has been selected, checks whether the link & metadata values of the selected technique match\n * the link & metadata values of the first selected technique. If a technique has been deselected, removes it from\n * the lists of mismatching techniques (if applicable) or re-evalutes the lists of mismatching\n * techniques in the case where the deselected technique was the first selected technique\n * @param selected true if the technique was selected, false if it was deselected\n * @param id the technique_tactic_union_id of the technique\n */\n public checkValues(selected: boolean, id: string): void {\n if (selected) {\n // selected technique(s)\n let tvm = this.getTechniqueVM_id(id);\n if (this.activeTvm.linkStr !== tvm.linkStr) this.linkMismatches.push(id);\n if (this.activeTvm.metadataStr !== tvm.metadataStr) this.metadataMismatches.push(id);\n } else {\n // deselected technique(s)\n if (this.linkMismatches.includes(id)) this.linkMismatches.splice(this.linkMismatches.indexOf(id), 1);\n if (this.metadataMismatches.includes(id)) this.metadataMismatches.splice(this.metadataMismatches.indexOf(id), 1);\n\n if (this.activeTvm && this.activeTvm.technique_tactic_union_id == id) {\n // edge case where deselection was the first selected technique\n let first_id = this.selectedTechniques.values().next().value;\n this.activeTvm = first_id ? this.getTechniqueVM_id(first_id) : undefined;\n\n // re-evaluate mismatched values\n this.linkMismatches = [];\n this.metadataMismatches = [];\n for (let technique_tactic_id of Array.from(this.selectedTechniques.values())) {\n let tvm = this.getTechniqueVM_id(technique_tactic_id);\n if (this.activeTvm.linkStr !== tvm.linkStr) this.linkMismatches.push(technique_tactic_id);\n if (this.activeTvm.metadataStr !== tvm.metadataStr) this.metadataMismatches.push(technique_tactic_id);\n }\n }\n }\n }\n\n /**\n * Filter tactics according to viewmodel state\n * @param {Tactic[]} tactics to filter\n * @param {Matrix} matrix that the tactics fall under\n * @returns {Tactic[]} filtered tactics\n */\n public filterTactics(tactics: Tactic[], matrix: Matrix): Tactic[] {\n if (!this.loaded) return; // still initializing technique VMs\n return tactics.filter((tactic: Tactic) => this.filterTechniques(tactic.techniques, tactic, matrix).length > 0);\n }\n\n /**\n * Filter techniques according to viewModel state\n * @param {Technique[]} techniques list of techniques to filter\n * @param {Tactic} tactic tactic the techniques fall under\n * @param {Matrix} matrix that the techniques fall under\n * @returns {Technique[]} filtered techniques\n */\n public filterTechniques(techniques: Technique[], tactic: Tactic, matrix: Matrix): Technique[] {\n return techniques.filter((technique: Technique) => {\n let techniqueVM = this.getTechniqueVM(technique, tactic);\n // filter by enabled\n if (this.hideDisabled && !this.isSubtechniqueEnabled(technique, techniqueVM, tactic)) {\n techniqueVM.setIsVisible(false);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(false);\n });\n return false;\n }\n if (matrix.name == 'PRE-ATT&CK') {\n techniqueVM.setIsVisible(true);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(true);\n });\n return true; // don't filter by platform if it's pre-attack\n }\n // filter by platform\n let platforms = new Set(technique.platforms);\n if (platforms.size == 0) { platforms.add('None'); }\n for (let platform of this.filters.platforms.selection) {\n if (platforms.has(platform)) {\n techniqueVM.setIsVisible(true);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(true);\n });\n return true; //platform match\n }\n }\n techniqueVM.setIsVisible(false);\n technique.subtechniques.forEach((subtechnique) => {\n let subtechniqueVM = this.getTechniqueVM(subtechnique, tactic);\n subtechniqueVM.setIsVisible(false);\n });\n return false; // no platform match\n });\n }\n\n public isSubtechniqueEnabled(technique, techniqueVM, tactic): boolean {\n if (techniqueVM.enabled) return true;\n else if (technique.subtechniques.length > 0) {\n return technique.subtechniques.some((subtechnique) => {\n let sub_platforms = new Set(subtechnique.platforms);\n let filter = new Set(this.filters.platforms.selection);\n let platforms = new Set(Array.from(filter.values()).filter((p) => sub_platforms.has(p)));\n return this.getTechniqueVM(subtechnique, tactic).enabled && platforms.size > 0;\n });\n } else return false;\n }\n\n /**\n * Sort techniques according to viewModel state\n * @param {Technique[]} techniques techniques to sort\n * @param {Tactic} tactic tactic the techniques fall under\n * @returns {Technique[]} sorted techniques\n */\n public sortTechniques(techniques: Technique[], tactic: Tactic): Technique[] {\n return techniques.sort((technique1: Technique, technique2: Technique) => {\n const techniqueVM1 = this.getTechniqueVM(technique1, tactic);\n const techniqueVM2 = this.getTechniqueVM(technique2, tactic);\n\n this.sortSubTechniques(technique1, tactic);\n this.sortSubTechniques(technique2, tactic);\n\n // prefer techniques scored 0 over unscored\n let score1 = techniqueVM1.score.length > 0 ? Number(techniqueVM1.score) : Number.NEGATIVE_INFINITY;\n let score2 = techniqueVM2.score.length > 0 ? Number(techniqueVM2.score) : Number.NEGATIVE_INFINITY;\n\n if (this.layout.showAggregateScores) {\n // if enabled, factor aggregate scores of parent techniques into sorting\n if (technique1.subtechniques.length > 0) score1 = this.calculateAggregateScore(technique1, tactic);\n if (technique2.subtechniques.length > 0) score2 = this.calculateAggregateScore(technique2, tactic);\n }\n return this.sortingAlgorithm(technique1, technique2, score1, score2);\n });\n }\n\n /**\n * Sort subtechniques according to viewModel state\n * @param {Technique} technique technique to sort\n * @param {Tactic} tactic tactic the technique falls under\n */\n public sortSubTechniques(technique: Technique, tactic: Tactic) {\n technique.subtechniques.sort((technique1: Technique, technique2: Technique) => {\n const techniqueVM1 = this.getTechniqueVM(technique1, tactic);\n const techniqueVM2 = this.getTechniqueVM(technique2, tactic);\n const score1 = techniqueVM1.score.length > 0 ? Number(techniqueVM1.score) : 0;\n const score2 = techniqueVM2.score.length > 0 ? Number(techniqueVM2.score) : 0;\n return this.sortingAlgorithm(technique1, technique2, score1, score2);\n });\n }\n\n /**\n * Execute the sorting algorithm for techniques according to the viewModel state\n * @param {Technique} technique1 the first technique in the comparison\n * @param {Technique} technique2 the second technique in the comparison\n * @param {number} score1 the first score in the comparison\n * @param {number} score2 the second score in the comparison\n * @returns technique or score comparison\n */\n private sortingAlgorithm(technique1: Technique, technique2: Technique, score1: number, score2: number) {\n switch (this.sorting) {\n case 1: // Z-A\n return technique2.name.localeCompare(technique1.name);\n case 2: // 1-2\n if (score1 === score2) {\n return technique1.name.localeCompare(technique2.name);\n } else {\n return score1 - score2;\n }\n case 3: // 2-1\n if (score1 === score2) {\n return technique1.name.localeCompare(technique2.name);\n } else {\n return score2 - score1;\n }\n case 0: // A-Z\n default:\n return technique1.name.localeCompare(technique2.name);\n }\n }\n\n public calculateAggregateScore(technique: Technique, tactic: Tactic): any {\n const tvm = this.getTechniqueVM(technique, tactic);\n let score = tvm.score.length > 0 ? Number(tvm.score) : 0;\n let validTechniquesCount = tvm.score.length > 0 ? 1 : 0;\n let scores = [score];\n\n technique.subtechniques.forEach((subtechnique) => {\n const svm = this.getTechniqueVM(subtechnique, tactic);\n const scoreNum = svm.score.length > 0 ? Number(svm.score) : 0;\n if (svm.score.length > 0) {\n validTechniquesCount += 1;\n scores.push(scoreNum);\n }\n });\n\n if (validTechniquesCount === 0) return tvm.score.length > 0 ? score : Number.NEGATIVE_INFINITY;\n\n let aggScore: any = 0;\n\n switch (this.layout.aggregateFunction) {\n case 'min':\n if (scores.length > 0) aggScore = Math.min(...scores);\n break;\n case 'max':\n if (scores.length > 0) aggScore = Math.max(...scores);\n break;\n case 'sum':\n aggScore = scores.reduce((a, b) => a + b);\n break;\n case 'average':\n default:\n // Divide by count of all subtechniques + 1 (for parent technique) if counting unscored is enabled\n // Otherwise, divide by count of all scored only\n score = scores.reduce((a, b) => a + b);\n aggScore = score / (this.layout.countUnscored ? technique.subtechniques.length + 1 : validTechniquesCount);\n break;\n }\n\n aggScore = aggScore.toFixed(2);\n tvm.aggregateScoreColor = this.gradient.getHexColor(aggScore.toString());\n tvm.aggregateScore = Number.isFinite(+aggScore) ? (+aggScore).toString() : '';\n return +aggScore;\n }\n\n /**\n * Apply sort and filter state to techniques\n * @param {Technique[]} techniques techniques to sort and filter\n * @param {Tactic} tactic that the techniques fall under\n * @param {Matrix} matrix that the techniques fall under\n * @returns {Technique[]} sorted and filtered techniques\n */\n public applyControls(techniques: Technique[], tactic: Tactic, matrix: Matrix): Technique[] {\n return this.sortTechniques(this.filterTechniques(techniques, tactic, matrix), tactic);\n }\n\n /**\n * List of visible technique and subtechnique attack IDs\n * @returns list of strings of each visible technique and subtechnique attack ID\n */\n public getVisibleTechniquesList(): string[] {\n let visibleTechniques: string[] = [];\n this.techniqueVMs.forEach((t) => {\n if (t.isVisible) {\n visibleTechniques.push(t.technique_tactic_union_id);\n }\n });\n return visibleTechniques;\n }\n\n /**\n * Number of modified hidden techniques\n * @returns number of hidden techniques that are annotated\n */\n public modifiedHiddenTechniques(): number {\n let modifiedHiddenTechniques = 0;\n this.techniqueVMs.forEach(function (value, key) {\n if (value.modified() && value.isVisible === false) {\n modifiedHiddenTechniques++;\n }\n });\n return modifiedHiddenTechniques;\n }\n\n /**\n * Stringify this ViewModel\n * @return string representation\n */\n public serialize(downloadAnnotationsOnVisibleTechniques: boolean): string {\n let modifiedTechniqueVMs = [];\n this.techniqueVMs.forEach(function (value, key) {\n if (value.modified() && !downloadAnnotationsOnVisibleTechniques) {\n modifiedTechniqueVMs.push(JSON.parse(value.serialize())); //only save techniqueVMs which have been modified\n } else if (value.modified() && value.isVisible === true && downloadAnnotationsOnVisibleTechniques) {\n modifiedTechniqueVMs.push(JSON.parse(value.serialize())); //only save techniqueVMs which have been modified and are visible\n }\n });\n let rep: { [k: string]: any } = {};\n rep.name = this.name;\n\n rep.versions = {\n attack: this.dataService.getDomain(this.domainVersionID).getVersion(),\n navigator: globals.navVersion,\n layer: globals.layerVersion,\n };\n\n let domain = this.dataService.getDomain(this.domainVersionID);\n rep.domain = domain.domain_identifier;\n if (domain.isCustom) {\n // custom data url\n rep.customDataURL = domain.urls[0];\n }\n rep.description = this.description;\n rep.filters = JSON.parse(this.filters.serialize());\n rep.sorting = this.sorting;\n rep.layout = this.layout.serialize();\n rep.hideDisabled = this.hideDisabled;\n rep.techniques = modifiedTechniqueVMs;\n rep.gradient = JSON.parse(this.gradient.serialize());\n rep.legendItems = JSON.parse(JSON.stringify(this.legendItems));\n rep.metadata = this.metadata.filter((m) => m.valid()).map((m) => m.serialize());\n rep.links = this.links.filter((l) => l.valid()).map((l) => l.serialize());\n\n rep.showTacticRowBackground = this.showTacticRowBackground;\n rep.tacticRowBackground = this.tacticRowBackground;\n rep.selectTechniquesAcrossTactics = this.selectTechniquesAcrossTactics;\n rep.selectSubtechniquesWithParent = this.selectSubtechniquesWithParent;\n rep.selectVisibleTechniques = this.selectVisibleTechniques;\n\n return JSON.stringify(rep, null, '\\t');\n }\n\n /**\n * Restore the domain and version from a string\n * @param rep string to restore from\n * @return string representation of the obj version\n */\n public deserializeDomainVersionID(rep: any): string {\n let versionNumber = '';\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n this.name = obj.name;\n // layer with no specified version defaults to current version\n this.version = this.dataService.latestVersion.number;\n if ('versions' in obj) {\n if ('attack' in obj.versions) {\n if (typeof obj.versions.attack === 'string') {\n if (obj.versions.attack.length > 0) this.version = obj.versions.attack.match(/\\d+/g)[0];\n } else console.error('TypeError: attack version field is not a string');\n }\n versionNumber = String(obj.versions['layer']);\n }\n if ('version' in obj) {\n // backwards compatibility with Layer Format 3\n versionNumber = String(obj.version);\n }\n // patch for old domain name convention\n if (obj.domain in this.dataService.domain_backwards_compatibility) {\n this.domain = this.dataService.domain_backwards_compatibility[obj.domain];\n } else {\n this.domain = obj.domain;\n }\n this.domainVersionID = this.dataService.getDomainVersionID(this.domain, this.version);\n return versionNumber;\n }\n\n /**\n * Restore this vm from a string\n * @param rep string to restore from\n */\n public deserialize(rep: any, restoreTechniques: boolean = true): void {\n let obj = typeof rep == 'string' ? JSON.parse(rep) : rep;\n\n if ('description' in obj) {\n if (typeof obj.description === 'string') this.description = obj.description;\n else console.error('TypeError: description field is not a string');\n }\n if ('filters' in obj) {\n this.filters.deserialize(obj.filters);\n }\n if ('sorting' in obj) {\n if (typeof obj.sorting === 'number') this.sorting = obj.sorting;\n else console.error('TypeError: sorting field is not a number');\n }\n if ('hideDisabled' in obj) {\n if (typeof obj.hideDisabled === 'boolean') this.hideDisabled = obj.hideDisabled;\n else console.error('TypeError: hideDisabled field is not a boolean');\n }\n\n if ('gradient' in obj) {\n this.gradient = new Gradient();\n this.gradient.deserialize(JSON.stringify(obj.gradient));\n }\n\n if ('legendItems' in obj) {\n for (let item of obj.legendItems) {\n let legendItem = {\n color: '#defa217',\n label: 'default label',\n };\n if (!('label' in item)) {\n console.error(\"Error: LegendItem required field 'label' not present\");\n continue;\n }\n if (!('color' in item)) {\n console.error(\"Error: LegendItem required field 'label' not present\");\n continue;\n }\n\n if (typeof item.label === 'string') {\n legendItem.label = item.label;\n } else {\n console.error('TypeError: legendItem label field is not a string');\n continue;\n }\n\n if (typeof item.color === 'string' && tinycolor(item.color).isValid()) {\n legendItem.color = item.color;\n } else {\n console.error('TypeError: legendItem color field is not a color-string:', item.color, '(', typeof item.color, ')');\n continue;\n }\n this.legendItems.push(legendItem);\n }\n }\n\n if ('showTacticRowBackground' in obj) {\n if (typeof obj.showTacticRowBackground === 'boolean') this.showTacticRowBackground = obj.showTacticRowBackground;\n else console.error('TypeError: showTacticRowBackground field is not a boolean');\n }\n if ('tacticRowBackground' in obj) {\n if (typeof obj.tacticRowBackground === 'string' && tinycolor(obj.tacticRowBackground).isValid())\n this.tacticRowBackground = obj.tacticRowBackground;\n else\n console.error(\n 'TypeError: tacticRowBackground field is not a color-string:',\n obj.tacticRowBackground,\n '(',\n typeof obj.tacticRowBackground,\n ')'\n );\n }\n if ('selectTechniquesAcrossTactics' in obj) {\n if (typeof obj.selectTechniquesAcrossTactics === 'boolean') this.selectTechniquesAcrossTactics = obj.selectTechniquesAcrossTactics;\n else console.error('TypeError: selectTechniquesAcrossTactics field is not a boolean');\n }\n if ('selectSubtechniquesWithParent' in obj) {\n if (typeof obj.selectSubtechniquesWithParent === 'boolean') this.selectSubtechniquesWithParent = obj.selectSubtechniquesWithParent;\n else console.error('TypeError: selectSubtechniquesWithParent field is not a boolean');\n }\n if ('selectVisibleTechniques' in obj) {\n if (typeof obj.selectVisibleTechniques === 'boolean') this.selectVisibleTechniques = obj.selectVisibleTechniques;\n else console.error('TypeError: selectVisibleTechniques field is not a boolean');\n }\n if ('techniques' in obj && restoreTechniques) {\n if (obj.techniques.length > 0) {\n for (let objTechnique of obj.techniques) {\n if ('tactic' in objTechnique) {\n let tvm = new TechniqueVM('');\n tvm.deserialize(JSON.stringify(objTechnique), objTechnique.techniqueID, objTechnique.tactic);\n this.setTechniqueVM(tvm);\n } else {\n // occurs in multiple tactics, match to Technique by attackID\n for (let technique of this.dataService.getDomain(this.domainVersionID).techniques) {\n if (technique.attackID == objTechnique.techniqueID) {\n // match technique\n // don't load deprecated/revoked, causes crash since tactics don't get loaded on revoked techniques\n if (technique.deprecated || technique.revoked) break;\n\n for (let tactic of technique.tactics) {\n let tvm = new TechniqueVM('');\n tvm.deserialize(JSON.stringify(objTechnique), objTechnique.techniqueID, tactic);\n this.setTechniqueVM(tvm);\n }\n break;\n }\n //check against subtechniques\n for (let subtechnique of technique.subtechniques) {\n if (subtechnique.attackID == objTechnique.techniqueID) {\n // don't load deprecated/revoked, causes crash since tactics don't get loaded on revoked techniques\n if (subtechnique.deprecated || subtechnique.revoked) break;\n\n for (let tactic of subtechnique.tactics) {\n let tvm = new TechniqueVM('');\n tvm.deserialize(JSON.stringify(objTechnique), objTechnique.techniqueID, tactic);\n this.setTechniqueVM(tvm);\n }\n break;\n }\n }\n }\n }\n }\n }\n }\n if ('metadata' in obj) {\n for (let metadataObj of obj.metadata) {\n let m = new Metadata();\n m.deserialize(metadataObj);\n if (m.valid()) this.metadata.push(m);\n }\n }\n if ('links' in obj) {\n for (let link of obj.links) {\n let l = new Link();\n l.deserialize(link);\n if (l.valid()) this.links.push(l);\n }\n }\n // add custom data URL\n if ('customDataURL' in obj) {\n this.bundleURL = obj.customDataURL;\n }\n if ('layout' in obj) {\n this.layout.deserialize(obj.layout);\n } else if ('viewMode' in obj) {\n /*\n * viewMode backwards compatibility:\n * 0: full table (side layout, show name)\n * 1: compact table (side layout, show ID)\n * 2: mini table (mini layout, show neither name nor ID)\n */\n if (typeof obj.viewMode === 'number') {\n switch (obj.viewMode) {\n case 1:\n this.layout.layout = 'side';\n this.layout.showName = false;\n this.layout.showID = true;\n break;\n case 2:\n this.layout.layout = 'mini';\n this.layout.showName = false;\n this.layout.showID = false;\n break;\n case 0:\n default:\n break; //default matrix layout already initialized\n }\n } else console.error('TypeError: viewMode field is not a number');\n }\n\n this.updateGradient();\n }\n\n /* Add a color to the end of the gradient */\n public addGradientColor(): void {\n this.gradient.addColor();\n this.updateGradient();\n }\n\n /**\n * Remove color at the given index\n * @param index index to remove color at\n */\n public removeGradientColor(index: number): void {\n this.gradient.removeColor(index);\n this.updateGradient();\n }\n\n /* Update this vm's gradient */\n public updateGradient(): void {\n this.gradient.updateGradient();\n let self = this;\n this.techniqueVMs.forEach(function (tvm, key) {\n tvm.scoreColor = self.gradient.getHexColor(tvm.score);\n });\n this.updateLegendColorPresets();\n }\n\n /**\n * Update the score color of a single technique VM to match the current\n * score and gradient\n * @param tvm technique VM to update\n */\n public updateScoreColor(tvm: TechniqueVM): void {\n tvm.scoreColor = this.gradient.getHexColor(tvm.score);\n }\n\n public addLegendItem(): void {\n let legendItem = {\n label: 'NewItem',\n color: '#00ffff',\n };\n this.legendItems.push(legendItem);\n }\n\n public deleteLegendItem(index: number): void {\n this.legendItems.splice(index, 1);\n }\n\n public clearLegend(): void {\n this.legendItems = [];\n }\n\n public updateLegendColorPresets(): void {\n this.legendColorPresets = [];\n this.backgroundPresets.forEach((preset) => this.legendColorPresets.push(preset));\n this.gradient.colors.forEach((color) => this.legendColorPresets.push(color.color));\n }\n}\n","import { Component, Input, ViewChild, AfterViewInit, ViewEncapsulation, OnDestroy, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { ConfigService } from '../services/config.service';\nimport { TabsComponent } from '../tabs/tabs.component';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { ViewModel } from '../classes';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Subscription } from 'rxjs';\nimport * as Excel from 'exceljs/dist/exceljs.min.js';\nimport tinycolor from 'tinycolor2';\nimport { isIE } from '../utils/utils';\n\n@Component({\n selector: 'DataTable',\n templateUrl: './data-table.component.html',\n styleUrls: ['./data-table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DataTableComponent implements AfterViewInit, OnDestroy {\n @ViewChild('scrollRef') private scrollRef: ElementRef;\n\n @Input() viewModel: ViewModel; // ViewModel being used by this data-table\n @Input() currentDropdown: string = ''; // current dropdown menu\n\n @Output() dropdownChange = new EventEmitter();\n @Output() onScroll = new EventEmitter();\n\n public customContextMenuItems = []; // items for custom context menu\n public showingLegend = false; // is the legend panel currently expanded\n\n public get layerDomainVersion(): string {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n return `${domain.name} v${domain.version.number}`;\n }\n\n // scroll handling\n public previousScrollTop: number = 0;\n public headerHeight: number = 0;\n public footerHeight: number = 32;\n public controlsHeight: number = 34;\n public includedControls: any;\n public isScrollUp: boolean = true;\n public handleScroll = (e) => {\n const diff = this.scrollRef.nativeElement.scrollTop - this.previousScrollTop;\n if ((!this.isScrollUp && diff < 0) || (this.isScrollUp && diff > 0)) {\n this.isScrollUp = diff < 0;\n this.calculateScrollHeight();\n this.previousScrollTop = this.scrollRef.nativeElement.scrollTop;\n } else if (!this.isScrollUp && this.scrollRef.nativeElement.scrollTop > 0 && diff === 0) {\n this.calculateScrollHeight();\n }\n };\n public calculateScrollHeight = () => {\n const tabOffset = this.isScrollUp ? 0 : this.headerHeight;\n this.onScroll.emit(-1 * tabOffset);\n const scrollWindowHeight = this.isScrollUp ? this.headerHeight + this.controlsHeight + this.footerHeight : this.controlsHeight;\n this.scrollRef.nativeElement.style.height = `calc(100vh - ${scrollWindowHeight}px)`;\n };\n\n /*\n * 0: expand subtechniques\n * 1: expand annotated subtechniques\n * 2: collapse subtechniques\n */\n public showSubtechniquesType: number = 0;\n\n public downloadAnnotationsOnVisibleTechniques: boolean = false;\n\n showControlsBar = true;\n previousControlSection = '';\n\n currentControlSection = \"selection\";\n\n showHelpDropDown = false;\n\n // edit field bindings\n public commentEditField: string = '';\n public scoreEditField: string = '';\n\n private selectionChangeSubscription: Subscription;\n \n public layerControlsList = [];\n public techniqueControlsList = [];\n public selectionControlsList = [];\n\n showControlLabels = {\n selection: false,\n layer: false,\n technique: false,\n };\n\n constructor(\n public dataService: DataService,\n private tabs: TabsComponent,\n private sanitizer: DomSanitizer,\n private viewModelsService: ViewModelsService,\n public configService: ConfigService\n ) {\n this.selectionChangeSubscription = this.viewModelsService.onSelectionChange.subscribe(() => {\n this.onTechniqueSelect();\n });\n this.includedControls = configService.featureList;\n for(let i=0;i ('.header-wrapper')?.offsetHeight;\n this.scrollRef.nativeElement.style.height = `calc(100vh - ${this.headerHeight + this.controlsHeight + this.footerHeight}px)`;\n this.scrollRef.nativeElement.addEventListener('scroll', this.handleScroll);\n }\n\n ngOnDestroy(): void {\n this.selectionChangeSubscription.unsubscribe();\n document.body.removeEventListener('scroll', this.handleScroll);\n }\n\n public updateStickyToolbar() {\n this.viewModel.stickyToolbar = !this.viewModel.stickyToolbar;\n if (this.viewModel.stickyToolbar) {\n this.headerHeight = document.querySelector('.header-wrapper')?.offsetHeight;\n this.scrollRef.nativeElement.style.height = `calc(100vh - ${this.headerHeight + this.controlsHeight + this.footerHeight}px)`;\n this.scrollRef.nativeElement.addEventListener('scroll', this.handleScroll);\n } else {\n this.scrollRef.nativeElement.style.height = null;\n this.scrollRef.nativeElement.addEventListener('scroll', this.handleScroll);\n }\n }\n\n handleSelectionControlsSettingsDropdown() {\n if (this.currentDropdown !== 'selection_control_settings') {\n this.currentDropdown = 'selection_control_settings';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n handleLayerControlsSettingsDropdown() {\n if (this.currentDropdown !== 'layer_control_settings') {\n this.currentDropdown = 'layer_control_settings';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n handleTechniqueControlsSettingsDropdown() {\n if (this.currentDropdown !== 'technique_control_settings') {\n this.currentDropdown = 'technique_control_settings';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n handleKeyDownTechnique(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleTechniqueControlsSettingsDropdown();\n }\n }\n \n handleKeyDownSelection(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleSelectionControlsSettingsDropdown();\n }\n }\n\n handleKeyDownLayer(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleLayerControlsSettingsDropdown();\n }\n }\n\n isControlIncluded(control, subfeature) {\n for(let i=0;i {\n const blob = new Blob([data], { type: 'application/octet-stream' });\n const filename = this.viewModel.name.toLowerCase().replace(/ /g, '_') + '.xlsx';\n this.saveBlob(blob, filename);\n });\n }\n\n /** Export all layers to Excel */\n public saveAllLayersLocallyExcel(): void {\n // create new excel workbook\n let workbook = new Excel.Workbook();\n for (let i = 0; i < this.viewModelsService.viewModels.length; i++) {\n let domain = this.dataService.getDomain(this.viewModelsService.viewModels[i].domainVersionID);\n // create a worksheet for each matrix in the domain\n for (let matrix of domain.matrices) {\n let worksheet = workbook.addWorksheet(\n matrix.name + ' v' + domain.getVersion() + ' (' + this.viewModelsService.viewModels[i].name + '-' + i + ')'\n );\n this.saveLayerExcel_helper(matrix, worksheet, this.viewModelsService.viewModels[i]);\n }\n }\n // save file\n workbook.xlsx.writeBuffer().then((data) => {\n const blob = new Blob([data], { type: 'application/octet-stream' });\n const filename = this.viewModel.name.toLowerCase().replace(/ /g, '_') + '.xlsx';\n this.saveBlob(blob, filename);\n });\n }\n\n /** Helper function for saving layer in Excel format */\n public saveLayerExcel_helper(matrix, worksheet, viewModel): void {\n // create a worksheet for each matrix in the domain\n // create tactic columns\n let columns = viewModel.filterTactics(matrix.tactics, matrix).map((tactic) => {\n return { header: this.getDisplayName(tactic), key: tactic.name };\n });\n worksheet.columns = columns;\n\n // create cells\n for (let tactic of viewModel.filterTactics(matrix.tactics, matrix)) {\n let tacticCol = worksheet.getColumn(tactic.name);\n let techniques = viewModel.applyControls(tactic.techniques, tactic, matrix);\n let techniqueCells = techniques.map((technique) => {\n return technique.name;\n });\n let subtechniqueList = [];\n\n // create subtechnique cells, if shown\n let subtechniqueCells = [];\n for (let technique of techniques) {\n let techniqueRow = techniqueCells.indexOf(technique.name);\n let tvm = viewModel.getTechniqueVM(technique, tactic);\n\n if (!tvm.showSubtechniques) continue; // do not show sub-techniques, skip\n\n // retrieve subtechniques\n let subtechniques = viewModel.applyControls(technique.subtechniques, tactic, matrix).map((sub) => {\n return sub.name;\n });\n subtechniqueList = subtechniqueList.concat(technique.subtechniques);\n\n // format technique cells for subtechniques\n let excelIndex = this.addSubtechniqueCells(subtechniqueCells, techniqueCells, subtechniques, technique);\n\n // merge technique cells\n if (excelIndex > 0) {\n worksheet.mergeCells(techniqueRow + 2, tacticCol.number, techniqueRow + excelIndex + 1, tacticCol.number);\n }\n }\n\n if (subtechniqueCells.length > 0) {\n // add subtechniques column\n let id = columns.findIndex((col) => col.key == tactic.name);\n columns.splice(id + 1, 0, { header: this.getDisplayName(tactic), key: tactic.name + 'Subtechniques' });\n worksheet.columns = columns;\n\n // merge subtechniques header\n let subtechniqueCol = worksheet.getColumn(tactic.name + 'Subtechniques');\n worksheet.mergeCells(tacticCol.letter + '1:' + subtechniqueCol.letter + '1');\n subtechniqueCol.values = [tactic.name.toString() + 'Subtechniques'].concat(subtechniqueCells);\n\n // style subtechnique cells\n this.styleTechniqueCells(subtechniqueCol, subtechniqueList, viewModel, tactic, true);\n }\n tacticCol.values = [this.getDisplayName(tactic)].concat(techniqueCells);\n\n // style technique cells\n this.styleTechniqueCells(tacticCol, techniques, viewModel, tactic);\n }\n\n // style tactic headers\n this.styleTacticHeaders(worksheet, viewModel);\n\n worksheet.getRow(1).alignment = { horizontal: 'center' };\n worksheet.getRow(1).border = { bottom: { style: 'thin' } };\n worksheet.getRow(1).font = { bold: true };\n if (viewModel.showTacticRowBackground) {\n worksheet.getRow(1).fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF' + viewModel.tacticRowBackground.substring(1) } };\n worksheet.getRow(1).font = {\n bold: true,\n color: { argb: 'FF' + tinycolor.mostReadable(viewModel.tacticRowBackground, ['white', 'black']).toHex() },\n };\n }\n }\n\n /**\n * Style technique cells for Excel worksheet\n */\n public styleTechniqueCells(column, techniqueList, viewModel, tactic, isSubtechnique = false): void {\n const seen = [];\n\n column.eachCell((cell) => {\n if (cell.row > 1 && cell.value && cell.value !== undefined) {\n let technique = techniqueList.find((t) => {\n if (isSubtechnique) {\n return t.name == cell.value.substring(cell.value.indexOf(':') + 1).trim() && !seen.includes(t.attackID);\n }\n return t.name == cell.value.substring(cell.value.indexOf(':') + 1).trim() || t.attackID === cell.value;\n });\n seen.push(technique.attackID);\n let tvm = viewModel.getTechniqueVM(technique, tactic);\n this.styleCells(cell, technique, tvm);\n }\n });\n }\n\n /**\n * Style tactic headers for Excel worksheet\n */\n public styleTacticHeaders(worksheet, viewModel): void {\n worksheet.columns.forEach((column) => {\n if (viewModel.layout.showID && !viewModel.layout.showName) {\n column.width = column.header.length < 15 ? 15 : column.header.length;\n } else if (!viewModel.layout.showID && !viewModel.layout.showName) {\n column.width = 10;\n } else {\n column.width = column.header.length < 30 ? 30 : column.header.length;\n }\n });\n }\n\n /**\n * Format technique cells for sub-technique cells\n */\n public addSubtechniqueCells(subtechniqueCells, techniqueCells, subtechniques, technique): number {\n let techniqueRow = techniqueCells.indexOf(technique.name);\n let excelIndex = 0;\n for (let subtechnique of subtechniques) {\n if (excelIndex !== 0) {\n techniqueCells.splice(techniqueRow + excelIndex, 0, technique.name);\n }\n subtechniqueCells[techniqueRow + excelIndex++] = subtechnique;\n }\n return excelIndex;\n }\n\n /**\n * Get the display name for technique/tactic as shown in layout\n */\n public getDisplayName(technique): string {\n if (this.viewModel.layout.showID && this.viewModel.layout.showName) {\n return technique.attackID + ': ' + technique.name;\n } else if (this.viewModel.layout.showID) {\n return technique.attackID;\n } else if (this.viewModel.layout.showName) {\n return technique.name;\n } else {\n return '';\n }\n }\n\n /**\n * Handle drop down change\n */\n public handleDescriptionDropdown(): void {\n if (this.currentDropdown !== 'description') {\n this.currentDropdown = 'description';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n toggleShowControlsBar() {\n this.showControlsBar = !this.showControlsBar;\n }\n\n setCurrentControlSection(controlType) {\n this.currentControlSection = controlType;\n if (this.previousControlSection === controlType && this.showControlsBar) {\n this.showControlsBar = false;\n } else {\n this.showControlsBar = true;\n }\n this.previousControlSection = controlType;\n }\n\n /**\n * Handle export drop down change\n */\n public handleExportDropdown(): void {\n if (this.currentDropdown !== 'export') {\n this.currentDropdown = 'export';\n } else {\n this.currentDropdown = '';\n }\n this.dropdownChange.emit(this.currentDropdown);\n }\n\n /**\n * Triggered on left click of technique\n */\n public onTechniqueSelect(): void {\n if (!this.viewModel.isCurrentlyEditing()) {\n if (['comment', 'score', 'colorpicker', 'link', 'metadata'].includes(this.currentDropdown)) {\n //remove technique control dropdowns, because everything was deselected\n this.currentDropdown = '';\n }\n return;\n }\n if (this.currentDropdown == 'link' || this.currentDropdown == 'metadata') {\n this.currentDropdown = '';\n return;\n }\n //else populate editing controls\n this.populateEditFields();\n }\n\n /**\n * Show all sub-techniques in layout view\n */\n public expandSubtechniques(showAnnotatedOnly?: boolean): void {\n if (this.viewModel.layout.layout == 'mini') return; // control disabled in mini layout\n this.viewModel.layout.expandedSubtechniques = showAnnotatedOnly ? 'annotated' : 'all';\n\n for (let technique of this.dataService.getDomain(this.viewModel.domainVersionID).techniques) {\n if (!technique.subtechniques?.length) continue; // no sub-techniques\n\n for (let id of technique.get_all_technique_tactic_ids()) {\n let tvm = this.viewModel.getTechniqueVM_id(id);\n if (!showAnnotatedOnly) {\n // expand all sub-techniques\n tvm.showSubtechniques = true;\n continue;\n }\n if (showAnnotatedOnly) {\n // expand all sub-techniques\n tvm.showSubtechniques = false;\n }\n\n // expand only if sub-techniques have annotations\n for (let subtechnique of technique.subtechniques) {\n tvm.showSubtechniques =\n tvm.showSubtechniques ||\n subtechnique.get_all_technique_tactic_ids().some((sid) => {\n let svm = this.viewModel.getTechniqueVM_id(sid);\n return svm.annotated();\n });\n }\n }\n }\n }\n\n /**\n * Hide all sub-techniques in layout view\n */\n public collapseSubtechniques(): void {\n if (this.viewModel.layout.layout == 'mini') return; // control disabled in mini layout\n this.viewModel.techniqueVMs.forEach(function (tvm, key) {\n tvm.showSubtechniques = false;\n });\n this.viewModel.layout.expandedSubtechniques = 'none';\n }\n\n /**\n * Expand all, annotated or no subtechniques based on selection\n */\n public showSubtechniquesTypeAlgorithm() {\n switch (this.showSubtechniquesType) {\n case 1: // expand all subtechniques\n this.expandSubtechniques();\n console.log(this.showSubtechniquesType);\n break;\n case 2: // expand only annotated subtechniques\n this.expandSubtechniques(true);\n console.log(this.showSubtechniquesType);\n break;\n case 3: // collapse all subtechniques\n this.collapseSubtechniques();\n console.log(this.showSubtechniquesType);\n this.showSubtechniquesType = 0;\n break;\n case 0:\n break;\n default:\n // expand all subtechniques\n this.expandSubtechniques();\n }\n }\n\n /**\n * Populate edit fields. Gets common values if common values exist for all editing values.\n */\n public populateEditFields(): void {\n this.commentEditField = this.viewModel.getEditingCommonValue('comment');\n this.scoreEditField = this.viewModel.getEditingCommonValue('score');\n }\n\n /**\n * Set the state (enabled/disabled) of the selected features\n */\n public setSelectedState(): void {\n let currentState = this.viewModel.getEditingCommonValue('enabled');\n if (currentState === '') this.viewModel.editSelectedTechniques('enabled', false);\n else this.viewModel.editSelectedTechniques('enabled', !currentState);\n }\n\n /**\n * Sanitize the given css so that it can be displayed without error\n */\n public sanitize(css) {\n return this.sanitizer.bypassSecurityTrustStyle(css);\n }\n\n /**\n * Is score input valid number\n * @param event keypress event just in case we need it\n * @return true if valid number\n */\n public validateScoreInput(event): boolean {\n let result: boolean = isNaN(Number(this.scoreEditField));\n return result;\n }\n\n /**\n * Return whether the given dropdown element would overflow the side of the page if aligned to the right of its anchor\n * @param dropdown the DOM node of the panel\n * @return true if it would overflow\n */\n public checkalign(dropdown): boolean {\n let anchor = dropdown.parentNode;\n return anchor.getBoundingClientRect().left + dropdown.getBoundingClientRect().width > document.body.clientWidth;\n }\n\n /**\n * Open an export layer render tab for the current layer\n */\n public exportRender(): void {\n this.tabs.openSVGDialog(this.viewModel);\n }\n\n /**\n * Open search & multiselect sidebar\n */\n public openSearch(): void {\n if (this.viewModel.sidebarContentType !== 'layerUpgrade') {\n this.viewModel.sidebarOpened = this.viewModel.sidebarContentType !== 'search' ? true : !this.viewModel.sidebarOpened;\n this.viewModel.sidebarContentType = 'search';\n }\n }\n\n /**\n * Open layer settings in sidebar\n */\n public openLayerSettings(): void {\n this.viewModel.sidebarOpened = this.viewModel.sidebarContentType !== 'layerSettings' ? true : !this.viewModel.sidebarOpened;\n this.viewModel.sidebarContentType = 'layerSettings';\n }\n}\n","\n\n\n
    \n
    \n
    \n = 2\"\n class=\"section-label\"\n [class.active]=\"currentControlSection === 'selection' && showControlsBar\"\n (click)=\"setCurrentControlSection('selection')\">\n Selection Controls\n
    \n = 2\"\n class=\"section-label\"\n [class.active]=\"currentControlSection === 'layer' && showControlsBar\"\n (click)=\"setCurrentControlSection('layer')\">\n Layer Controls\n
    \n = 1\"\n class=\"section-label\"\n [class.active]=\"currentControlSection === 'technique' && showControlsBar\"\n (click)=\"setCurrentControlSection('technique')\">\n Technique Controls\n
    \n \n \n \n
      \n
    • \n
      \n \n {{getControlDisplayName('selection_controls','search') | titlecase}}\n search\n
      \n \n\n \n
      \n \n Deselect {{ this.viewModel.getSelectedTechniqueCount() }} Techniques\n clear\n {{ this.viewModel.getSelectedTechniqueCount() }}\n
      \n \n \n
      \n \n {{getControlDisplayName('selection_controls','selecting_techniques') | titlecase}}\n lock\n
      \n \n \n
      \n \n \n
      \n \n
      \n \n \n
      \n \n
      \n \n \n
      \n \n \n
      \n
      \n \n more_vert\n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n Included Controls:\n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
    • \n
    • \n \n \n
      \n \n {{getControlDisplayName('layer_controls','layer_settings') | titlecase }}\n \n settings\n \n
      \n \n \n
      \n
      \n {{getControlDisplayName('layer_controls','download_layer') | titlecase}}\n file_download\n
      \n \n
      \n Export\n
      \n
      \n \n
      \n \n code\n
      \n
      \n\n \n 1\"\n class=\"control-row-item\">\n \n 1\" class=\"material-symbols-outlined\" alt=\"save layer\">\n code_blocks\n \n
      \n \n\n \n
      \n \n grid_on\n
      \n \n\n \n
      1\" class=\"control-row-item\">\n \n table_view\n
      \n \n\n \n
      \n \n camera_alt\n
      \n \n \n
      \n Options\n
      \n \n
      \n \n \n
      \n
      \n warning\n \n
      \n
      1\">\n warning\n \n
      \n \n \n\n \n
      \n \n {{getControlDisplayName('layer_controls','filters') | titlecase}}\n filter_list\n
      \n
      \n
      \n {{ filter }}\n
      \n
      \n \n \n
      \n
      \n
      Data does not include {{ filter }}
      \n
      \n
      \n \n\n \n
      \n \n \n \n A-Z Ascending\n \n \n \n A-Z Descending\n \n \n \n Numerically Ascending\n \n \n \n Numerically Descending\n \n \n \n
      \n \n\n \n
      \n \n {{getControlDisplayName('layer_controls','color_setup') | titlecase}}\n palette\n
      \n
      \n
      \n \n
      \n \n \n \n
      \n
      \n
      \n \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      Low value:\n \n
      \n
      \n
      \n \n remove\n \n
      \n
      \n \n
      \n
      \n
      High value:\n \n
      \n
      \n
      \n presets\n \n
      \n
      \n \n red to green\n
      \n \n green to red\n
      \n \n blue to red\n
      \n \n red to blue\n
      \n \n transparent to blue\n
      \n \n transparent to red\n \n \n \n \n \n \n \n\n \n
      \n \n Hide Disabled\n visibility_off\n Show Disabled\n visibility\n
      \n \n\n \n
      \n \n \n \n Expand All Sub-techniques\n unfold_more\n \n \n Expand Annotated Sub-techniques\n \n \n \n Collapse Sub-techniques\n unfold_less\n \n \n
      \n \n
      \n
      \n \n more_vert\n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n Included Controls:\n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
    • \n \n \n \n \n
      \n \n {{getControlDisplayName('technique_controls','disable_techniques') | titlecase}}\n texture\n
      \n \n\n \n
      \n \n {{getControlDisplayName('technique_controls','manual_color') | titlecase}}\n format_color_fill\n
      \n \n \n
      no color
      \n \n \n \n\n \n
      \n \n {{getControlDisplayName('technique_controls','scoring') | titlecase}}\n insert_chart\n
      \n
      \n \n \n score\n \n not a number\n \n
      \n \n\n \n
      \n \n {{getControlDisplayName('technique_controls','comments') | titlecase}}\n insert_comment\n
      \n \n \n \n comments\n \n \n \n \n\n \n
      \n \n {{getControlDisplayName('technique_controls','links') | titlecase}}\n link\n
      \n \n \n \n \n \n\n \n
      \n \n {{getControlDisplayName('technique_controls','metadata') | titlecase}}\n list\n
      \n \n \n \n \n \n\n \n
      \n \n {{getControlDisplayName('technique_controls','clear_annotations') | titlecase}}\n layers_clear\n
      \n \n
      \n
      \n \n more_vert\n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n Included Controls:\n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n
    • \n \n
      \n \n push_pin\n \n
      \n \n
    • \n
    \n\n\n\n\n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    1\" class=\"matrix-name\">\n {{ matrix.name }}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n\n\n\n
    \n keyboard_arrow_up\n
    legend
    \n
    \n\n
    \n
    \n keyboard_arrow_down\n
    legend
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n","import { Component, OnInit, Inject, ViewEncapsulation, ViewChild, Renderer2 } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { MarkdownComponent, MarkdownService } from 'ngx-markdown';\nimport { LayerInformationComponent } from '../layer-information/layer-information.component';\n\n@Component({\n selector: 'help',\n templateUrl: './help.component.html',\n styleUrls: ['./help.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class HelpComponent implements OnInit {\n private listenObj: any;\n @ViewChild('markdownElement', { static: false }) public markdownElement: any;\n public headingAnchors: MarkdownHeadingAnchor[] = [];\n\n constructor(\n private dialog: MatDialog,\n private markdownService: MarkdownService,\n private renderer: Renderer2,\n @Inject(MAT_DIALOG_DATA) public data\n ) {\n // intentionally left blank\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.scrollTo('toc');\n }, 175);\n\n let self = this;\n this.markdownService.renderer.heading = (text: string, level: number) => {\n let img = text.match(/()/g) ? text.match(/()/g)[0].replace(/(nav-app\\/src\\/)/g, '') : '';\n text = text.replace(/()/g, '');\n const escapedText = text\n .toLowerCase()\n .trim()\n .replace(/[^\\w]+/g, '-');\n self.headingAnchors.push({\n level: level,\n anchor: escapedText,\n label: text.replace('&', '&'),\n });\n return `${img}${text}`;\n };\n\n this.markdownService.renderer.html = (html: string) => {\n if (!html.match(/(nav-app\\/src\\/)/g)) return html;\n return html.replace(/(nav-app\\/src\\/)/g, '');\n };\n }\n\n ngOnDestroy(): void {\n if (this.listenObj) {\n this.listenObj();\n }\n }\n\n // from https://github.com/jfcere/ngx-markdown/issues/125#issuecomment-518025821\n public onMarkdownLoad(e) {\n // hijack clicks on links\n if (this.markdownElement) {\n this.listenObj = this.renderer.listen(this.markdownElement.element.nativeElement, 'click', (e: Event) => {\n if (e.target && (e.target as any).tagName === 'A') {\n const el = e.target as HTMLElement;\n const linkURL = el.getAttribute && el.getAttribute('href');\n if (linkURL) {\n e.preventDefault();\n if (linkURL.charAt(0) === '#') this.scrollTo(linkURL.replace('#', ''));\n else if (linkURL.includes('layers/')) this.openLayerDialog();\n else if (linkURL.match(/(nav-app\\/src\\/)/g)) window.open(linkURL.replace(/(nav-app\\/src\\/)/g, ''));\n else window.open(linkURL);\n }\n }\n });\n }\n }\n\n public scrollTo(anchor) {\n let element = document.querySelector('.' + anchor);\n if (element) element.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }\n\n /**\n * open the layer information dialog\n */\n public openLayerDialog(): void {\n this.dialog.open(LayerInformationComponent, {\n autoFocus: false,\n panelClass: this.data.theme,\n });\n }\n}\n\ninterface MarkdownHeadingAnchor {\n level: number;\n anchor: string;\n label: string;\n}\n","
    \n

    \n Documentation\n
    \n \n
    \n

    \n \n
    \n

    Table of Contents

    \n \n
    \n \n
    \n \n \n \n
    ","import { Component, ViewEncapsulation } from '@angular/core';\nimport * as globals from '../utils/globals';\n\n@Component({\n selector: 'app-layer-information',\n templateUrl: './layer-information.component.html',\n styleUrls: ['./layer-information.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LayerInformationComponent {\n public get layerFormatLink(): string {\n return `mitre/layers/spec/v${globals.layerVersion}/layerformat.md`;\n }\n}\n","
    \n \n
    \n \n
    \n
    \n \n \n \n
    ","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ViewModel } from '../classes';\nimport { DataService } from '../services/data.service';\n\n@Component({\n selector: 'app-layer-settings',\n templateUrl: './layer-settings.component.html',\n styleUrls: ['./layer-settings.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class LayerSettingsComponent {\n @Input() viewModel: ViewModel;\n\n constructor(\n public dataService: DataService,\n ) {\n // intentionally left blank\n }\n}\n","
    \n\t
    \n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t

    Layer Information

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tName\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDescription\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDomain\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tVersion\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t\n\t
    \n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t

    Metadata

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t
    \n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t

    Links

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t\n\t
    \n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t

    Matrix Layout

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t@for(option of viewModel.layout.layoutOptions; track option) {\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {{option}} layout\n\t\t\t\t\t\t
    \n\t\t\t\t\t}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t

    Labels

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t
    \n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t

    Aggregate Scores

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tcount unscored techniques as 0\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\tAggregate Function\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t@for(option of viewModel.layout.aggregateFunctionOptions; track option) {\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {{option}}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t\n\t
    \n\t\t\n\t
    \n
    ","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ViewModelsService } from '../../services/viewmodels.service';\nimport { ConfigService } from '../../services/config.service';\nimport { DataService } from '../../services/data.service';\nimport { Cell } from '../../matrix/cell';\n\n@Component({\n selector: 'changelog-cell',\n templateUrl: './changelog-cell.component.html',\n styleUrls: ['./changelog-cell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ChangelogCellComponent extends Cell {\n @Input() isCurrentVersion?: boolean = true;\n @Input() isDraggable?: boolean = false;\n @Input() section: string;\n\n constructor(\n public configService: ConfigService,\n public dataService: DataService,\n public viewModelsService: ViewModelsService\n ) {\n super(dataService, configService);\n }\n\n /**\n * Highlight the moused over technique\n */\n public highlight(): void {\n if (this.isCurrentVersion) {\n this.viewModel.highlightTechnique(this.technique, this.tactic);\n }\n }\n\n /**\n * Clear the technique highlight\n */\n public unhighlight(): void {\n if (this.isCurrentVersion) this.viewModel.clearHighlight();\n }\n\n /**\n * Select or unselect this technique\n */\n public onClick(): void {\n if (this.isCurrentVersion) {\n // unselect technique\n if (this.viewModel.isTechniqueSelected(this.technique, this.tactic)) {\n this.viewModel.unselectTechnique(this.technique, this.tactic);\n }\n // select technique\n else {\n this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(this.technique, this.tactic);\n }\n this.viewModelsService.selectionChanged(); // emit selection change\n }\n }\n\n /**\n * Retrieve css classes for this technique\n */\n public getClass(): string {\n let theclass = super.getClass();\n if (!this.isCurrentVersion && !this.isDraggable) {\n theclass += ' nopointer';\n }\n if (this.section == 'additions' || this.section == 'deprecations') {\n theclass += ' setwidth';\n }\n return theclass;\n }\n}\n","
    \n
    \n
    \n \n {{ tactic.name }}\n \n
    \n
    \n {{ technique.attackID }}\n
    \n
    \n {{ technique.name }}\n
    \n
    \n
    \n","import { Component, Input, OnInit, QueryList, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { Tactic, Technique } from '../classes/stix';\nimport { VersionChangelog, ViewModel } from '../classes';\nimport { DndDropEvent } from 'ngx-drag-drop';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatStepper } from '@angular/material/stepper';\n\n@Component({\n selector: 'layer-upgrade',\n templateUrl: './layer-upgrade.component.html',\n styleUrls: ['./layer-upgrade.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LayerUpgradeComponent implements OnInit {\n @Input() viewModel: ViewModel; // view model of new version\n @ViewChildren(MatPaginator) paginators = new QueryList();\n @ViewChildren(MatExpansionPanel) panels: QueryList;\n public paginator_map: Map = new Map(); // section name mapped to index of paginator\n public filteredIDs: string[] = [];\n @ViewChild('stepper') stepper: MatStepper;\n\n public changelog: VersionChangelog;\n public compareTo: ViewModel; // view model of old version\n public sections: string[] = ['additions', 'changes', 'minor_changes', 'revocations', 'deprecations', 'unchanged'];\n public filter: any = {\n changes: false,\n minor_changes: false,\n revocations: false,\n deprecations: false,\n unchanged: false,\n };\n public loading: boolean = false;\n\n constructor(public dataService: DataService) {}\n\n ngOnInit(): void {\n this.changelog = this.viewModel.versionChangelog;\n this.compareTo = this.viewModel.compareTo;\n // map sections with techniques to paginator index\n let i = 0;\n for (let s of this.sections) {\n if (this.changelog[s].length) this.paginator_map.set(s, i++);\n }\n this.applyFilters(this.sections[0]);\n this.wait();\n }\n\n wait(): void {\n this.loading = true;\n setTimeout(() => (this.loading = false), 1000);\n }\n\n /**\n * Get a readable version for the name of the changelog section\n * @param section name of the changelog section\n * @returns {string} readable section header text\n */\n public getHeader(section: string): string {\n return section\n .split(/[_-]+/)\n .map((s) => s.charAt(0).toUpperCase() + s.substring(1))\n .join(' ');\n }\n\n /**\n * Retrieve the URL for a given technique in the previous ATT&CK version\n * @param attackID the ATT&CK ID of the technique\n * @returns {string} the URL\n */\n public getPreservedURL(attackID: string): string {\n let url = this.getTechnique(attackID, this.compareTo).url;\n let i = url.search('/techniques');\n return url.substring(0, i) + '/versions/v' + this.compareTo.version + url.substring(i);\n }\n\n /**\n * Disable the annotated techniques filter?\n * @param section the name of the changelog section\n * @returns true if there are no annotated techniques in the given section, false otherwise\n */\n public disableFilter(section: string): boolean {\n return !this.changelog[section].filter((id) => this.anyAnnotated(id)).length;\n }\n\n /**\n * Apply filters to the changelog section\n * @returns the list of filtered ATT&CK IDs in the changelog section\n */\n public applyFilters(section: string): void {\n let sectionIDs = this.changelog[section];\n if (this.filter[section]) sectionIDs = sectionIDs.filter((id) => this.anyAnnotated(id));\n\n let i = this.paginator_map.get(section);\n let paginator = this.paginators.toArray()[i];\n if (paginator && paginator.pageIndex * paginator.pageSize > sectionIDs.length) {\n paginator.pageIndex = 0;\n }\n let start = paginator ? paginator.pageIndex * paginator.pageSize : 0;\n let end = paginator ? start + paginator.pageSize : 10;\n this.filteredIDs = sectionIDs.slice(start, end);\n setTimeout(() => {\n this.expandAll(section);\n });\n }\n\n /**\n * Update the list of IDs to render on step change\n * @param section the name of the changelog section\n * @param offset -1 if moving to the previous step, 1 if moving to the next step\n */\n public onStepChange(section: string, offset: number): void {\n let i = this.sections.findIndex((s) => s === section);\n if (i + offset < this.sections.length) {\n let nextSection = this.sections[i + offset];\n this.applyFilters(nextSection);\n if (this.changelog[nextSection].length > 0) this.wait();\n }\n }\n\n /**\n * Get the technique object in the domain of the given view model\n * @param attackID the ATT&CK ID of the technique\n * @param vm the view model\n * @param section name of the changelog section\n * @returns {Technique} the technique object\n */\n public getTechnique(attackID: string, vm: ViewModel, section?: string): Technique {\n let domain = this.dataService.getDomain(vm.domainVersionID);\n let all_techniques = domain.techniques.concat(domain.subtechniques);\n let technique = all_techniques.find((t) => t.attackID == attackID);\n\n if (section == 'revocations' && this.viewModel.version == vm.version) {\n // get revoking object\n let revokedByID = technique.revoked_by(vm.domainVersionID);\n let revokingObject = all_techniques.find((t) => t.id == revokedByID);\n return revokingObject;\n } else return technique;\n }\n\n /**\n * Get the list of tactic objects the given technique is found under\n * @param attackID the ATT&CK ID of the object\n * @param vm the view model used to identify the domain\n * @param section name of the changelog section\n * @returns {Tactic[]} list of tactic objects the object is found under\n */\n public getTactics(attackID: string, vm: ViewModel, section?: string): Tactic[] {\n if (section == 'additions') vm = this.viewModel;\n let technique = this.getTechnique(attackID, vm, section);\n let domain = this.dataService.getDomain(vm.domainVersionID);\n return technique.tactics.map((shortname) => domain.tactics.find((t) => t.shortname == shortname));\n }\n\n /**\n * Determine if the lists of tactics between the technique in the new version and\n * old version are the same\n * @param attackID the ATT&CK ID of the object\n * @param section name of the changelog section\n * @returns {boolean} true if the list of tactics are not identical\n */\n public tacticsChanged(attackID: string, section: string): boolean {\n if (section == 'deprecations' || section == 'additions') return false;\n\n let oldTechnique = this.getTechnique(attackID, this.compareTo);\n let newTechnique = this.getTechnique(attackID, this.viewModel, section);\n\n if (!oldTechnique.tactics && !newTechnique.tactics) return false;\n if (oldTechnique.tactics.length !== newTechnique.tactics.length) return true;\n\n // order lists and compare\n let sortArray = function (a, b) {\n if (a < b) return -1;\n if (a > b) return 1;\n return 0;\n };\n let oldTactics = oldTechnique.tactics.sort(sortArray);\n let newTactics = newTechnique.tactics.sort(sortArray);\n if (oldTactics.every((value, i) => value === newTactics[i])) return false;\n return true;\n }\n\n /**\n * Determine if the technique is marked as reviewed\n * @param attackID the ATT&CK ID of the technique\n * @returns {boolean} true if the technique has been marked as reviewed\n */\n public isReviewed(attackID: string): boolean {\n return this.changelog.reviewed.has(attackID);\n }\n\n /**\n * Marks or unmarks a single given technique as reviewed\n * @param attackID the ATT&CK ID of the technique\n * @param panel the object's expansion panel\n */\n public reviewedChanged(attackID: string, panel: MatExpansionPanel): void {\n if (this.isReviewed(attackID)) {\n this.changelog.reviewed.delete(attackID);\n } else {\n this.changelog.reviewed.add(attackID);\n panel.expanded = false; // close on review\n }\n }\n\n /**\n * Expands all the techniques for easy review\n */\n public expandAll(section: string): void {\n let filtered_expand_visible_section = document.getElementById('filter_expand_visible_' + section) as HTMLInputElement;\n this.panels.forEach((panel) => {\n if (filtered_expand_visible_section.checked) {\n panel.open();\n } else {\n panel.close();\n }\n });\n }\n\n /**\n * Marks all techniques in the section as reviewed\n * @param section name of the changelog section\n */\n public reviewAll(section: string): void {\n let sectionIDs = this.changelog[section];\n let filtered_review_all_section = document.getElementById('filter_review_all_' + section) as HTMLInputElement;\n if (filtered_review_all_section.checked) {\n for (let sectionID of sectionIDs) {\n this.changelog.reviewed.add(sectionID);\n }\n } else {\n for (let sectionID of sectionIDs) {\n this.changelog.reviewed.delete(sectionID);\n }\n }\n }\n\n /**\n * Get the number of techniques marked as reviewed in the given section\n * @param section the name of the changelog section\n * @returns number of reviewed techniques\n */\n public countReviewed(section: string): number {\n return this.changelog[section].filter((attackID) => this.changelog.reviewed.has(attackID)).length;\n }\n\n // changelog section descriptions\n private descriptions: any = {\n additions:\n \"The following techniques have been added to the dataset since the layer was created. You can review the techniques below to identify which may require annotations. Annotations may be added using the 'technique controls' in the toolbar.\",\n changes:\n 'The following techniques have undergone major changes since the layer was created such as changes to scope or technique name. You can view the annotations you had previously added, map them to the current ATT&CK version, and adjust them as needed. You can also review the previous and current technique definitions by clicking the version numbers in each row.',\n minor_changes:\n 'The following techniques have had minor revisions since the layer was created such as typo corrections. The annotations have automatically been copied for these techniques, but you can review them if desired. You can also view the previous and current technique definitions by clicking the version numbers under the technique.',\n revocations:\n 'These are techniques which have been replaced by other techniques since the layer was created. You can view the replacing techniques and transfer annotations from the replaced techniques, adjusting them as nessecary. You can also review the replaced and replacing technique definitions by clicking the version numbers under the technique.',\n deprecations:\n 'These are techniques which have been removed from the dataset. You can view any annotations you had previously added to these techniques.',\n unchanged:\n \"These are techniques which have not changed since the uploaded layer's ATT&CK version. The annotations have automatically been copied for these techniques, but you can review them if desired.\",\n finish: \"The overview below indicates either the number of techniques you have reviewed in a section, if you have skipped a section, or if there are no techniques to review in that section. Annotations mapped to the current version have been saved to the new layer.\\n\\nVerify your changes and click 'Done' to complete the layer upgrade workflow. Once completed you cannot return to this workflow.\",\n };\n\n /**\n * Get the changelog section description\n * @param section the name of the changelog section\n * @returns the section description\n */\n public getDescription(section: string): string {\n return this.descriptions[section];\n }\n\n /**\n * Determine if any techniqueVM in the old version with the given\n * ATT&CK ID has annotations\n * @param attackID the ATT&CK ID of the technique\n * @returns {boolean} true if any TechniqueVM for this technique is annotated\n */\n public anyAnnotated(attackID: string): boolean {\n let oldTechnique = this.getTechnique(attackID, this.compareTo);\n if (oldTechnique) {\n let technique_tactic_ids = oldTechnique.get_all_technique_tactic_ids();\n\n for (let id of technique_tactic_ids) {\n if (this.compareTo.getTechniqueVM_id(id).annotated()) return true;\n }\n }\n return false;\n }\n\n /**\n * Is the TechniqueVM for this technique-tactic annotated?\n * @param technique the technique in the old version\n * @param tactic the tactic the technique is found under\n * @param vm the view model\n * @returns {boolean} true if the TechniqueVM is annotated, false otherwise\n */\n public isAnnotated(technique: Technique, tactic: Tactic, vm: ViewModel): boolean {\n return vm.getTechniqueVM(technique, tactic).annotated();\n }\n\n /**\n * Get the total number of techniques currently displayed in a given section\n * @param section the name of the changelog section\n * @returns the total number of annotated techniques in the section if the filter is enabled,\n * otherwise the total number of techniques in the seciton\n */\n public sectionLength(section: string): number {\n if (this.filter[section]) return this.changelog[section].filter((attackID) => this.anyAnnotated(attackID)).length;\n else return this.changelog[section].length;\n }\n\n /**\n * Determine if the annotations of the technique under the given tactic\n * in the old version have been copied to the new version\n * @param technique the technique in the old version\n * @param tactic the tactic the technique is found under\n * @returns {boolean} true if the annotations have been copied to the\n * object in the new version\n */\n public isCopied(technique: Technique, tactic: Tactic): boolean {\n if (this.changelog.copied.has(technique.get_technique_tactic_id(tactic))) return true;\n return false;\n }\n\n /**\n * Copy the annotations from the technique in the old version\n * to the technique in the new version\n * @param attackID the ATT&CK ID of the technique\n * @param tactic the tactic the technique is found under\n */\n public copyAnnotations(attackID: string, tactic: Tactic, section: string): void {\n let fromTechnique = this.getTechnique(attackID, this.compareTo);\n let toTechnique = this.getTechnique(attackID, this.viewModel, section);\n this.viewModel.copyAnnotations(fromTechnique, toTechnique, tactic);\n }\n\n /**\n * Re-enable the annotations on the technique in the old version and\n * reset the annotations on the technique in the new version\n * @param attackID the ATT&CK ID of the technique\n * @param tactic the tactic the technique is found under\n */\n public revertCopy(attackID: string, tactic: Tactic, section: string): void {\n let fromTechnique = this.getTechnique(attackID, this.compareTo);\n let toTechnique = this.getTechnique(attackID, this.viewModel, section);\n this.viewModel.revertCopy(fromTechnique, toTechnique, tactic);\n }\n\n /**\n * Copy the annotations from the TechniqueVM in the old version\n * to the TechniqueVM that the element was dropped over\n * @param event the ngx drop event\n * @param toTechnique the technique object to copy annotations to\n * @param toTactic the tactic object to copy annotations to\n * @param section the name of the changelog section\n */\n public onDrop(event: DndDropEvent, toTechnique: Technique, toTactic: Tactic, section: string): void {\n let attackID = event.data.split('^')[0];\n let validTechnique = this.getTechnique(attackID, this.viewModel, section);\n\n if (validTechnique.id === toTechnique.id) {\n // copying annotations to a valid target?\n // retrieve relevant technique VMs\n let fromTvm = this.compareTo.getTechniqueVM_id(event.data);\n let toTvm = this.viewModel.getTechniqueVM(toTechnique, toTactic);\n\n // copy annotations\n let rep = fromTvm.serialize();\n toTvm.resetAnnotations();\n toTvm.deserialize(rep, toTechnique.attackID, toTactic.shortname);\n this.viewModel.updateScoreColor(toTvm);\n } else {\n // invalid target\n }\n }\n\n /**\n * Remove all annotations from the VM\n * @param technique the technique object to remove annotations from\n * @param tactic the tactic the technique is found under\n */\n public clearAnnotations(technique: Technique, tactic: Tactic): void {\n this.viewModel.getTechniqueVM(technique, tactic).resetAnnotations();\n }\n\n /**\n * Close the layer upgrade sidebar\n */\n public closeSidebar(): void {\n this.viewModel.sidebarOpened = !this.viewModel.sidebarOpened;\n this.viewModel.sidebarContentType = '';\n }\n}\n","\n\n
    \n \n \n \n
    \n

    Layer Upgrade

    \n (ATT&CK v{{ compareTo.version }}\n east\n ATT&CK v{{ viewModel.version }})\n
    \n

    \n Review techniques which have been added, changed, replaced, or removed from the knowledge base since ATT&CK v{{ compareTo.version }}\n and update your Navigator layer to reflect these changes.\n

    \n

    \n View Versions of ATT&CK\n

    \n
    \n
    \n\n \n\n \n \n Review {{ getHeader(section) }}\n\n
    \n {{ desc }}\n
    \n\n \n\n
    0\">\n

    Options

    \n
    \n \n \n show annotated techniques only\n \n
    \n \n \n mark all as reviewed\n \n \n \n expand visible techniques\n \n\n
    \n \n
    \n\n \n
    \n \n \n \n \n check_circle_outline\n radio_button_unchecked\n {{ attackID }}: {{ getTechnique(attackID, viewModel).name }}\n \n \n \n
    \n \n
    \n east\n
    \n
    \n
    \n \n ATT&CK v{{ viewModel.version }}\n \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n info_outline\n \n
    \n\n
    \n \n \n\n \n x\n \n
    \n
    \n
    \n\n
    \n \n \n \n \n \n \n
    \n \n \n \n chevron_right\n \n \n chevron_left\n \n \n \n
    \n
    \n\n
    \n \n \n
    \n \n \n \n
    \n \n \n
    \n\n
    \n
    No objects to show
    \n
    \n \n
    \n 0\">Reviewed {{ countReviewed(section) }}/{{ sectionLength(section) }} techniques\n \n \n
    \n \n\n \n Finish\n\n
    \n {{ getDescription('finish') }}\n
    \n\n \n\n

    Overview

    \n
    \n {{ getHeader(section) }}: \n 0\">\n Reviewed {{ countReviewed(section) }}/{{ sectionLength(section) }} {{ filter[section] ? 'annotated' : '' }} techniques\n \n No objects to review\n Skipped\n
    \n\n \n\n
    \n \n \n
    \n
    \n \n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Link, Metadata, ViewModel } from '../classes';\n\n@Component({\n selector: 'app-list-input',\n templateUrl: './list-input.component.html',\n styleUrls: ['./list-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ListInputComponent implements OnInit {\n @Input() config: ListInputConfig;\n public list: (Link | Metadata)[];\n private fieldToClass = {\n links: Link,\n metadata: Metadata,\n };\n public get includeLinks(): boolean {\n return this.config.type == 'links';\n }\n\n ngOnInit(): void {\n if (this.config.level == 'technique') {\n this.list = this.config.list.map((item) => {\n let clone = new this.fieldToClass[this.config.type]();\n clone.deserialize(item.serialize());\n return clone;\n });\n } else {\n this.list = this.config.list;\n }\n }\n\n /**\n * Adds a new item to the list\n */\n public add(): void {\n this.list.push(new this.fieldToClass[this.config.type]());\n }\n\n /**\n * Removes an item from the list at the given index\n * @param i the index of the item to remove\n */\n public remove(i: number): void {\n if (this.list[i - 1] && this.list[i - 1].divider && this.list[i + 1] && this.list[i + 1].divider) {\n this.list.splice(i - 1, 2);\n } else {\n this.list.splice(i, 1);\n }\n\n if (this.list[0]?.divider) this.removeDivider(0);\n if (this.list[this.list.length - 1] && this.list[this.list.length - 1].divider) this.removeDivider(this.list.length - 1);\n\n this.updateList();\n }\n\n /**\n * Validate items in the list and update the field on selected techniques\n */\n public updateList(): void {\n let value = this.list.filter((item) => item.valid());\n\n if (this.config.level == 'technique') {\n // do not update techniques if editing a layer-level list\n this.config.viewModel.editSelectedTechniqueValues(this.config.type, value);\n }\n }\n\n /**\n * Checks if a divider can be added at the previous index\n *\n * Note: a divider can only be added if both the items at the current and previous\n * indices are valid non-divider items.\n *\n * @param i the current index\n * @returns true, if a divider can be added, false otherwise\n */\n public canAddDivider(i: number): boolean {\n if (i < 1) return false; // cannot add divider before the first item\n if (this.list[i]?.valid() && !this.list[i]?.divider && this.list[i - 1]?.valid() && !this.list[i - 1]?.divider) {\n return true;\n }\n return false;\n }\n\n /**\n * Add a divider at the given index\n * @param i the index at which to add a divider\n */\n public addDivider(i: number): void {\n let item = new this.fieldToClass[this.config.type]();\n item.divider = true;\n this.list.splice(i, 0, item);\n this.updateList();\n }\n\n /**\n * Remove a divider at the given index\n * @param i the index of the divider to remove\n */\n public removeDivider(i: number): void {\n this.list.splice(i, 1);\n this.updateList();\n }\n}\n\nexport interface ListInputConfig {\n /** The viewmodel */\n viewModel: ViewModel;\n /** The list to edit */\n list: (Link | Metadata)[];\n /** The item type */\n type: 'links' | 'metadata';\n /**\n * Identifies whether the list exists on the technique or layer level\n * If on the technique level, the list must be cloned to prevent\n * empty values from being added; all selected techniques\n * will be updated with the new values\n * If on the layer level, the list is edited directly and does\n * not update selected techniques with the new values\n */\n level: 'layer' | 'technique';\n /** The label attribute of the list */\n nameField: string;\n /** The value attribute of the list */\n valueField: string;\n}\n","
    \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n\n \n
    \n \n {{config.nameField}}\n \n \n \n {{config.valueField}}\n \n \n \n {{ item[config.nameField] }}\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n","import { Input, Directive } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { Technique, Tactic } from '../classes/stix';\nimport { ViewModel } from '../classes';\nimport { getCookie, hasCookie } from '../utils/cookies';\nimport { ConfigService } from '../services/config.service';\nimport tinycolor from 'tinycolor2';\n\n@Directive()\nexport abstract class Cell {\n @Input() viewModel: ViewModel;\n @Input() technique: Technique;\n @Input() tactic: Tactic;\n\n public showContextmenu: boolean = false;\n public isDarkTheme: boolean;\n\n constructor(\n public dataService: DataService,\n public configService: ConfigService\n ) {\n this.dataService = dataService;\n this.configService = configService;\n if (hasCookie('is_user_theme_dark')) this.isDarkTheme = getCookie('is_user_theme_dark') === 'true';\n else this.isDarkTheme = window.matchMedia('(prefers-color-scheme: dark)').matches;\n }\n\n public get isHighlighted(): boolean {\n let isHighlighted = this.showContextmenu;\n let idToMatch = this.technique.id;\n if (this.viewModel.selectSubtechniquesWithParent && this.technique.isSubtechnique) idToMatch = this.technique.parent.id;\n\n if (this.viewModel.highlightedTechniques.has(idToMatch)) {\n if (!this.viewModel.highlightedTactic) {\n // highlight is called from search component\n return true;\n } else {\n const isTacticMatching = this.viewModel.highlightedTactic.id === this.tactic.id;\n return this.viewModel.selectTechniquesAcrossTactics || isTacticMatching;\n }\n }\n\n return isHighlighted;\n }\n\n /**\n * Return css classes for a technique\n * @param {technique} technique the technique to get the class of\n * @param {boolean} mini is it the minitable?\n * @return {string} the classes the technique should currently have\n */\n public getClass(): string {\n let theclass = 'link noselect cell';\n if (this.tactic && this.viewModel.isTechniqueSelected(this.technique, this.tactic)) theclass += ' editing';\n if (this.isHighlighted) {\n //open context menu always keeps highlight even if the mouse has moved elsewhere\n theclass += ' highlight';\n }\n\n // classes added by layout config\n if (this.viewModel.layout.showID) {\n theclass += ' showID';\n //change sticky top position of technique count\n let elements = document.querySelectorAll('.tactic.count');\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.top = '46px';\n }\n }\n if (this.viewModel.layout.showName) theclass += ' showName';\n theclass += ' ' + this.viewModel.layout.layout;\n\n // classes according to annotations\n if (\n (this.tactic && this.viewModel.getTechniqueVM(this.technique, this.tactic).comment.length > 0) ||\n this.viewModel.getTechniqueVM(this.technique, this.tactic).metadata.length > 0 ||\n this.viewModel.getTechniqueVM(this.technique, this.tactic).links.length > 0 ||\n this.hasNotes()\n )\n theclass += ' underlined';\n if (this.getTechniqueBackground()) theclass += ' colored';\n if (this.tactic && !this.viewModel.getTechniqueVM(this.technique, this.tactic).enabled) theclass += ' disabled';\n\n return theclass;\n }\n\n /**\n * Emulate transparency without an alpha channel\n * @param color color with alpha channel\n * @returns color without an alpha channel which has been mixed with the proper background color as if it is transparent\n */\n public emulate_alpha(color: any) {\n /* note: constructing a tinycolor of a tinycolor makes them aliases. E.g:\n *\n * x = tinycolor(\"#ffffff\")\n * y = tinycolor(x)\n * y.getAlpha() -> 1\n * x.setAlpha(0)\n * y.getAlpha() -> 0\n *\n * Therefore y must be cloned after it is constructed to avoid transformations of x affecting it.\n * In this context, the color arg must be cloned because\n * in some contexts it is a tinycolor and we change its alpha below,\n * which could affect the copy in the calling function\n */\n if (!color || color.length < 1) return '';\n let cell_color = tinycolor(color).clone();\n let cell_color_alpha = cell_color.getAlpha();\n cell_color.setAlpha(1);\n let result = tinycolor.mix(this.isDarkTheme ? '#2e2e3f' : '#ffffff', cell_color, cell_color_alpha * 100);\n return result;\n }\n\n /**\n * Get most readable text color for the given technique\n * @param technique the technique to get the text color for\n * @param antihighlight boolean, true if the column is not selected.\n * @return black, white, or gray, depending on technique and column state\n */\n public getTechniqueTextColor() {\n if (!this.tactic) return this.isDarkTheme ? 'white' : 'black';\n let tvm = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (!tvm.enabled) return this.isDarkTheme ? 'rgb(255 255 255 / 25%)' : '#aaaaaa';\n // don't display if disabled or highlighted\n // if (this.viewModel.highlightedTechnique && this.viewModel.highlightedTechnique.technique_tactic_union_id == this.technique.technique_tactic_union_id) return \"black\"\n if (tvm.color && this.configService.getFeature('background_color'))\n return tinycolor.mostReadable(this.emulate_alpha(tvm.color), ['white', 'black']);\n if (\n this.viewModel.layout.showAggregateScores &&\n tvm.aggregateScoreColor &&\n this.technique.subtechniques.length > 0 &&\n this.configService.getFeature('aggregate_score_color')\n )\n return tinycolor.mostReadable(this.emulate_alpha(tvm.aggregateScoreColor), ['white', 'black']);\n if (tvm.score && !isNaN(Number(tvm.score)) && this.configService.getFeature('non_aggregate_score_color'))\n return tinycolor.mostReadable(this.emulate_alpha(tvm.scoreColor), ['white', 'black']);\n else return this.isDarkTheme ? 'white' : 'black';\n }\n\n /**\n * Get the underline color for the given technique. The comment/metadata\n * underscore color overrides the link underscore color.\n */\n public getTechniqueUnderlineColor() {\n if (this.tactic) {\n let tvm = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (tvm.comment.length > 0 || this.hasNotes()) {\n if (this.configService.getFeature('comment_underline')) return this.configService.commentColor;\n }\n if (tvm.metadata.length > 0) {\n if (this.configService.getFeature('metadata_underline')) return this.configService.metadataColor;\n }\n if (tvm.links.length > 0) {\n if (this.configService.getFeature('link_underline')) return this.configService.linkColor;\n }\n }\n return '';\n }\n\n /**\n * Check if technique has notes\n * @return true if technique has notes, false otherwise\n */\n public hasNotes() {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n let notes = domain.notes.filter((note) => {\n return note.object_refs.includes(this.technique.id);\n });\n return notes.length > 0;\n }\n\n /**\n * get the technique background style for ngstyle\n * @param technique technique\n * @return background object\n */\n public getTechniqueBackground(): any {\n if (!this.tactic) return null;\n let tvm = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n // don't display if disabled or highlighted\n if (!tvm.enabled || this.isHighlighted) return null;\n if (tvm.color && this.configService.getFeature('background_color')) return { background: this.emulate_alpha(tvm.color) };\n if (\n this.viewModel.layout.showAggregateScores &&\n this.technique.subtechniques.length > 0 &&\n !isNaN(Number(tvm.aggregateScore)) &&\n tvm.aggregateScore.length > 0 &&\n this.configService.getFeature('aggregate_score_color')\n ) {\n return { background: this.emulate_alpha(tvm.aggregateScoreColor) };\n }\n if (tvm.score && this.configService.getFeature('non_aggregate_score_color')) return { background: this.emulate_alpha(tvm.scoreColor) };\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { Matrix, Technique, Tactic } from '../classes/stix';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { ConfigService } from '../services/config.service';\nimport { ViewModel } from '../classes';\nimport tinycolor from 'tinycolor2';\n\n@Directive()\nexport abstract class MatrixCommon {\n @Input() matrix: Matrix;\n @Input() viewModel: ViewModel;\n\n constructor(\n public configService: ConfigService,\n public viewModelsService: ViewModelsService\n ) {\n this.configService = configService;\n }\n\n /**\n * filter tactics according to viewmodel state\n * @param {Tactic[]} tactics to filter\n * @returns {Tactic[]} filtered tactics\n */\n public filterTactics(tactics: Tactic[]): Tactic[] {\n return this.viewModel.filterTactics(tactics, this.matrix);\n }\n\n /**\n * filter techniques according to viewModel state\n * @param {Technique[]} techniques list of techniques to filter\n * @param {Tactic} tactic tactic the techniques fall under\n * @returns {Technique[]} filtered techniques\n */\n public filterTechniques(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.filterTechniques(techniques, tactic, this.matrix);\n }\n\n /**\n * sort techniques accoding to viewModel state\n * @param {Technique[]} techniques techniques to sort\n * @param {Tactic} tactic tactic the techniques fall under\n * @returns {Technique[]} sorted techniques\n */\n public sortTechniques(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.sortTechniques(techniques, tactic);\n }\n\n /**\n * apply sort and filter state to techniques\n * @param {Technique[]} techniques techniques to sort and filter\n * @param {Tactic} tactic that the techniques fall under\n * @returns {Technique[]} sorted and filtered techniques\n */\n public applyControls(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.applyControls(techniques, tactic, this.matrix);\n }\n\n public onTechniqueLeftClick(event: any, technique: Technique, tactic: Tactic) {\n if (!this.configService.getFeature('selecting_techniques')) {\n //if selecting is disabled, same behavior as right click. Shouldn't ever get to this point because it should be handled in technique-cell\n return;\n }\n if (event.shift || event.ctrl || event.meta) {\n // add to selection\n if (this.viewModel.isTechniqueSelected(technique, tactic)) this.viewModel.unselectTechnique(technique, tactic);\n else this.viewModel.selectTechnique(technique, tactic);\n } else {\n // replace selection\n if (this.viewModel.getSelectedTechniqueCount() > 1) {\n if (this.viewModel.isTechniqueSelected(technique, tactic)) this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(technique, tactic);\n } else if (this.viewModel.isTechniqueSelected(technique, tactic)) {\n //unselect currently selected\n this.viewModel.clearSelectedTechniques();\n } else {\n //replace\n this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(technique, tactic);\n }\n }\n this.viewModelsService.onSelectionChange.emit();\n }\n\n public onToggleSubtechniquesVisible(technique: Technique, tactic: Tactic) {\n if (technique.subtechniques.length == 0) return;\n let tvm = this.viewModel.getTechniqueVM(technique, tactic);\n tvm.showSubtechniques = !tvm.showSubtechniques;\n }\n\n public onTechniqueHighlight(event: any, technique: Technique, tactic: Tactic) {\n this.viewModel.highlightTechnique(technique, tactic);\n }\n public onTechniqueUnhighlight(event: any) {\n this.viewModel.clearHighlight();\n }\n\n public onTacticClick(tactic: Tactic) {\n if (this.viewModel.isTacticSelected(tactic)) this.viewModel.unselectAllTechniquesInTactic(tactic);\n else this.viewModel.selectAllTechniquesInTactic(tactic);\n }\n\n public getTacticBackground(): any {\n if (this.viewModel.showTacticRowBackground)\n return {\n background: this.viewModel.tacticRowBackground,\n color: tinycolor.mostReadable(this.viewModel.tacticRowBackground, ['white', 'black']),\n };\n else {\n return {};\n }\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatrixCommon } from '../matrix-common';\nimport { ConfigService } from '../../services/config.service';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'matrix-flat',\n templateUrl: './matrix-flat.component.html',\n styleUrls: ['./matrix-flat.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatrixFlatComponent extends MatrixCommon implements OnInit {\n constructor(configService: ConfigService, viewModelsService: ViewModelsService) {\n super(configService, viewModelsService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n
    \n {{ filterTechniques(tactic.techniques, tactic).length }}\n  techniques\n
    \n \n \n \n \n \n \n \n 0\"\n class=\"sidebar technique\"\n [ngClass]=\"{ disabled: applyControls(technique.subtechniques, tactic).length == 0 }\"\n (click)=\"onToggleSubtechniquesVisible(technique, tactic)\">\n
    =
    \n \n
    \n \n \n \n \n \n
    \n \n
    0\" class=\"sidebar subtechniques\">\n \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { MatrixCommon } from '../matrix-common';\nimport { ConfigService } from '../../services/config.service';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'matrix-mini',\n templateUrl: './matrix-mini.component.html',\n styleUrls: ['./matrix-mini.component.scss'],\n})\nexport class MatrixMiniComponent extends MatrixCommon implements OnInit {\n constructor(configService: ConfigService, viewModelsService: ViewModelsService) {\n super(configService, viewModelsService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n \n
    0; else elseblock\">\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatrixCommon } from '../matrix-common';\nimport { ConfigService } from '../../services/config.service';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'matrix-side',\n templateUrl: './matrix-side.component.html',\n styleUrls: ['./matrix-side.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatrixSideComponent extends MatrixCommon implements OnInit {\n constructor(configService: ConfigService, viewModelsService: ViewModelsService) {\n super(configService, viewModelsService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n
    \n {{ filterTechniques(tactic.techniques, tactic).length }}\n  techniques\n
    \n \n \n \n 0\"\n [ngClass]=\"{\n disabled: applyControls(technique.subtechniques, tactic).length == 0,\n expanded:\n viewModel.getTechniqueVM(technique, tactic).showSubtechniques &&\n applyControls(technique.subtechniques, tactic).length > 0\n }\"\n class=\"sidebar sidebar--{{ tactic.id }}--{{ technique.id }}\"\n (click)=\"onToggleSubtechniquesVisible(technique, tactic)\">\n
    \n \n \n \n
    \n
    =
    \n
    \n \n \n \n
    \n \n
    \n \n
    \n \n \n \n \n \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\nimport { Tactic } from '../../classes/stix';\nimport { ViewModel } from '../../classes';\n\n@Component({\n selector: 'tactic-cell',\n templateUrl: './tactic-cell.component.html',\n styleUrls: ['./tactic-cell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TacticCellComponent implements OnInit {\n @Input() tactic: Tactic;\n @Input() viewModel: ViewModel;\n\n constructor() {\n // intentionally left blank\n }\n\n ngOnInit() {\n // intentionally left blank\n }\n}\n","\n {{ tactic.attackID }}\n
    \n {{ tactic.name }}\n\n","import { ElementRef } from '@angular/core';\n\nexport abstract class CellPopover {\n private theElement: any;\n constructor(element: ElementRef) {\n this.theElement = element.nativeElement;\n }\n\n /**\n * Get the location of the tooltip according to the location on the screen.\n * Returns one of the following:\n * \"top left\":\n * ------------------\n * | XXXX |\n * | XXXX |\n * | X |\n * | |\n * ------------------\n * \"top right\":\n * ------------------\n * | XXXX |\n * | XXXX |\n * | X |\n * | |\n * ------------------\n * \"bottom left\":\n * ------------------\n * | |\n * | XXXX X |\n * | XXXX |\n * ------------------\n * \"bottom right\":\n * ------------------\n * | |\n * | X XXXX |\n * | XXXX |\n * ------------------\n * @returns {string} direction\n */\n public getPosition(): string {\n let boundingRect = this.theElement.getBoundingClientRect();\n let halfWidth = window.innerWidth / 2;\n let halfHeight = window.innerHeight / 2;\n let position = [];\n if (boundingRect.right > halfWidth) position.push('left');\n else position.push('right');\n if (boundingRect.bottom > halfHeight) position.push('top');\n else position.push('bottom');\n return position.join(' ');\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { ContextMenuItem, Link, TechniqueVM, ViewModel } from '../../../classes';\nimport { Technique, Tactic } from '../../../classes/stix';\nimport { ViewModelsService } from '../../../services/viewmodels.service';\nimport { ConfigService } from '../../../services/config.service';\nimport { CellPopover } from '../cell-popover';\n\n@Component({\n selector: 'app-contextmenu',\n templateUrl: './contextmenu.component.html',\n styleUrls: ['./contextmenu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ContextmenuComponent extends CellPopover implements OnInit {\n @Input() technique: Technique;\n @Input() tactic: Tactic;\n @Input() viewModel: ViewModel;\n public placement: string;\n @Output() close = new EventEmitter();\n\n public get techniqueVM(): TechniqueVM {\n return this.viewModel.getTechniqueVM(this.technique, this.tactic);\n }\n\n public get links(): Link[] {\n return this.techniqueVM.links;\n }\n\n constructor(\n private element: ElementRef,\n public configService: ConfigService,\n public viewModelsService: ViewModelsService\n ) {\n super(element);\n }\n\n ngOnInit() {\n this.placement = this.getPosition();\n }\n\n public closeContextmenu() {\n this.close.emit();\n }\n\n public select() {\n this.viewModel.clearSelectedTechniques();\n this.viewModel.selectTechnique(this.technique, this.tactic);\n this.closeContextmenu();\n }\n\n public addSelection() {\n this.viewModel.selectTechnique(this.technique, this.tactic);\n this.closeContextmenu();\n }\n\n public removeSelection() {\n this.viewModel.unselectTechnique(this.technique, this.tactic);\n this.closeContextmenu();\n }\n\n public selectAll() {\n this.viewModel.selectAllTechniques();\n this.closeContextmenu();\n }\n\n public deselectAll() {\n this.viewModel.clearSelectedTechniques();\n this.closeContextmenu();\n }\n\n public invertSelection() {\n this.viewModel.invertSelection();\n this.closeContextmenu();\n }\n\n public selectAnnotated() {\n this.viewModel.selectAnnotated();\n this.closeContextmenu();\n }\n\n public selectUnannotated() {\n this.viewModel.selectUnannotated();\n this.closeContextmenu();\n }\n\n public selectAllInTactic() {\n this.viewModel.selectAllTechniquesInTactic(this.tactic);\n this.closeContextmenu();\n }\n\n public deselectAllInTactic() {\n this.viewModel.unselectAllTechniquesInTactic(this.tactic);\n this.closeContextmenu();\n }\n\n public viewTechnique() {\n window.open(this.technique.url, '_blank');\n this.closeContextmenu();\n }\n\n public viewTactic() {\n window.open(this.tactic.url, '_blank');\n this.closeContextmenu();\n }\n\n public pinCell() {\n this.viewModelsService.pinnedCell =\n this.viewModelsService.pinnedCell === this.techniqueVM.technique_tactic_union_id ? '' : this.techniqueVM.technique_tactic_union_id;\n this.closeContextmenu();\n }\n\n public openCustomContextMenuItem(customItem: ContextMenuItem) {\n window.open(customItem.getReplacedURL(this.technique, this.tactic), '_blank');\n this.closeContextmenu();\n }\n\n public openLink(link: Link) {\n window.open(link.url);\n this.closeContextmenu();\n }\n}\n","
    \n \n
    \n \n
    \n
    \n
    {{ technique.name }} ({{ technique.attackID }})
    \n
    \n
    \n
    pin/unpin tooltip
    \n
    \n
    \n
    select
    \n
    add to selection
    \n
    remove from selection
    \n
    \n
    \n
    select all
    \n
    deselect all
    \n
    invert selection
    \n
    \n
    \n
    select annotated
    \n
    select unannotated
    \n
    \n
    \n
    select all techniques in tactic
    \n
    deselect all techniques in tactic
    \n
    \n
    \n
    view technique
    \n
    view tactic
    \n
    \n
    0\">\n \n {{ contextMenuItem.label }}\n
    \n
    \n
    \n \n
    \n
    \n\n","import { Component, OnInit, Input, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\nimport { DataService } from '../../services/data.service';\nimport { Technique, Tactic, Matrix } from '../../classes/stix';\nimport { ConfigService } from '../../services/config.service';\nimport { Cell } from '../cell';\nimport { ViewModelsService } from '../../services/viewmodels.service';\n\n@Component({\n selector: 'technique-cell',\n templateUrl: './technique-cell.component.html',\n styleUrls: ['./technique-cell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TechniqueCellComponent extends Cell implements OnInit {\n @Input() matrix: Matrix;\n @Output() highlight = new EventEmitter(); // emit with the highlighted technique, or null to unhighlight\n @Output() unhighlight = new EventEmitter();\n @Output() leftclick = new EventEmitter(); // emit with the selected technique and the modifier keys\n\n public get isCellPinned(): boolean {\n return this.viewModelsService.pinnedCell === this.viewModel.getTechniqueVM(this.technique, this.tactic).technique_tactic_union_id;\n }\n\n public get showTooltip(): boolean {\n if (this.isCellPinned) return true;\n if (this.showContextmenu) return false;\n if (this.viewModel.highlightedTechniques.size === 0) return false;\n\n return (\n this.viewModel.highlightedTechnique === this.technique &&\n this.viewModel.highlightedTactic &&\n this.viewModel.highlightedTactic.id === this.tactic.id\n );\n }\n\n constructor(\n public dataService: DataService,\n public configService: ConfigService,\n public viewModelsService: ViewModelsService\n ) {\n super(dataService, configService);\n }\n\n ngOnInit(): void {\n // intentionally left blank\n }\n\n // count number of annotated sub-techniques on this technique\n public annotatedSubtechniques(): number {\n let annotatedSubs: Technique[] = [];\n for (let s of this.technique.subtechniques) {\n let subVM = this.viewModel.getTechniqueVM(s, this.tactic);\n if (subVM.annotated()) annotatedSubs.push(s);\n }\n return this.applyControls(annotatedSubs, this.tactic).length;\n }\n\n // sort and filter techniques\n public applyControls(techniques: Technique[], tactic: Tactic): Technique[] {\n return this.viewModel.applyControls(techniques, tactic, this.matrix);\n }\n\n // events to pass to parent component\n public onMouseEnter() {\n this.highlight.emit();\n }\n public onMouseLeave() {\n this.unhighlight.emit();\n }\n public onLeftClick(event) {\n if (!this.isCellPinned) this.viewModelsService.pinnedCell = '';\n if (this.configService.getFeature('selecting_techniques'))\n this.leftclick.emit({\n technique: this.technique,\n // modifier keys\n shift: event.shiftKey,\n ctrl: event.ctrlKey,\n meta: event.metaKey,\n // position of event on page\n x: event.pageX,\n y: event.pageY,\n });\n else this.onRightClick(event);\n }\n public onRightClick(event) {\n if (!this.isCellPinned) this.viewModelsService.pinnedCell = '';\n this.showContextmenu = true;\n }\n\n // return css classes for a technique\n public getClass(): string {\n let theclass = super.getClass();\n\n // classes by annotated sub-techniques\n if (!this.annotatedSubtechniques()) theclass += ' unannotated';\n\n if (this.isCellPinned) theclass += ' editing';\n\n return theclass;\n }\n}\n","
    \n
    \n \n {{ technique.attackID }}\n
    \n {{ technique.name }}\n
    \n 0\">\n \n  ({{ annotatedSubtechniques() }}/{{ applyControls(technique.subtechniques, tactic).length }})\n \n \n
    \n \n \n
    \n","import { Component, OnInit, Input, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { DataService } from '../../../services/data.service';\nimport { Technique, Tactic, Note } from '../../../classes/stix';\nimport { ViewModel, TechniqueVM } from '../../../classes';\nimport { ViewModelsService } from '../../../services/viewmodels.service';\nimport { CellPopover } from '../cell-popover';\n\n@Component({\n selector: 'app-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TooltipComponent extends CellPopover implements OnInit {\n @Input() technique: Technique;\n @Input() tactic: Tactic;\n @Input() viewModel: ViewModel;\n public placement: string;\n public notes: Note[];\n\n public get isCellPinned(): boolean {\n return this.viewModelsService.pinnedCell === this.techniqueVM.technique_tactic_union_id;\n }\n\n public get techniqueVM(): TechniqueVM {\n return this.viewModel.getTechniqueVM(this.technique, this.tactic);\n }\n\n constructor(\n public element: ElementRef,\n public dataService: DataService,\n public viewModelsService: ViewModelsService\n ) {\n super(element);\n }\n\n ngOnInit() {\n this.placement = this.getPlacement();\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n this.notes = domain.notes.filter((note) => {\n return note.object_refs.includes(this.technique.id);\n });\n }\n\n public getPlacement(): string {\n return this.getPosition();\n }\n\n public unpin(): void {\n this.viewModelsService.pinnedCell = '';\n }\n}\n","
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {{ technique.name }} ({{ technique.attackID }})\n \n push_pin\n \n
    Disabled
    Score:{{ techniqueVM.score }}
    Aggregate Score ({{ viewModel.layout.aggregateFunction }}):{{ techniqueVM.aggregateScore }}
    Comment:{{ techniqueVM.comment }}
    {{ note.abstract }}:{{ note.content }}

    {{ metadata.name }}:{{ metadata.value }}
    \n
    \n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\nimport { StixObject, Group, Mitigation, Software, Technique, Campaign, Asset } from '../classes/stix';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { DataService } from '../services/data.service';\nimport { ViewModel } from '../classes';\n\n@Component({\n selector: 'app-search-and-multiselect',\n templateUrl: './search-and-multiselect.component.html',\n styleUrls: ['./search-and-multiselect.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SearchAndMultiselectComponent implements OnInit {\n @Input() viewModel: ViewModel;\n\n public stixTypes: any[] = [];\n public techniqueResults: Technique[] = [];\n // Data Components is a map mainly because it is a collection of labels that map to\n // an array of techniques, where we want to filter/sort by label name\n public stixDataComponents = new Map();\n public stixDataComponentLabels: string[] = [];\n public userClickedExpand: boolean = false;\n\n public expandedPanels = {\n 0: true, // techniques panel\n 1: false, // groups panel\n 2: false, // software panel\n 3: false, // campaign panel\n 4: false, // mitigations panel\n 5: false, // data components panel\n 6: false, // assets panel\n };\n\n public fields = [\n {\n label: 'name',\n field: 'name',\n enabled: true,\n },\n {\n label: 'ATT&CK ID',\n field: 'attackID',\n enabled: true,\n },\n {\n label: 'description',\n field: 'description',\n enabled: true,\n },\n {\n label: 'data sources',\n field: 'datasources',\n enabled: true,\n },\n ];\n\n private debounceFunction;\n private previousQuery: string = '';\n private _query: string = '';\n\n // query setter\n public set query(newQuery: string) {\n this._query = newQuery;\n if (!this.debounceFunction) {\n this.debounceFunction = setTimeout(() => {\n this.getResults(this._query);\n this.debounceFunction = null;\n this.previousQuery = this._query;\n }, 300);\n }\n }\n\n // get query length\n public get queryLength(): number {\n return this._query.length;\n }\n\n // get techniques matching label\n public get stixDataComponentsResults(): Technique[] {\n let results = [];\n this.stixDataComponentLabels.forEach((label) => {\n results = results.concat(this.stixDataComponents.get(label).objects);\n });\n return results;\n }\n\n constructor(\n private dataService: DataService,\n private viewModelsService: ViewModelsService\n ) {\n // intentionally left blank\n }\n\n ngOnInit() {\n this.getResults();\n }\n\n /**\n * Takes an array of items and does the following:\n * 1) if the query is empty, then it sorts the array\n * 2) if the query is not empty, then it filters the already sorted array until nothing is left, or until\n * the query is cleared out and empty again\n * @param items StixObject[] or Technique[] objects to be filtered and sorted\n * @param query user-input query in search bar\n * @param sortTechniquesAndSubtechniques will be true if called from getTechniqueResults(),\n * to sort techniques and all its subtechniques,\n * otherwise just sort StixObject items by name\n */\n public filterAndSort(items: StixObject[], query: string = '', sortTechniquesAndSubtechniques = false): any[] {\n let self = this;\n let results = items.filter((t) => !t.deprecated && !t.revoked);\n\n if (query.trim() === '') {\n // sort the array\n if (sortTechniquesAndSubtechniques) {\n results.sort((tA: Technique, tB: Technique) => {\n let c1 = tA.isSubtechnique ? tA.parent.name : tA.name;\n let c2 = tB.isSubtechnique ? tB.parent.name : tB.name;\n return c1.localeCompare(c2);\n });\n } else {\n results.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()));\n }\n } else {\n // deconflict IDs for cross-tactic techniques\n let seenIDs = new Set();\n results = results.filter(function (technique: Technique) {\n if (seenIDs.has(technique.id)) return false;\n for (let field of self.fields) {\n if (field.enabled) {\n // query in this field\n if (technique[field.field]?.toLowerCase().includes(query.trim().toLowerCase())) {\n seenIDs.add(technique.id);\n return true;\n }\n }\n }\n return false;\n });\n }\n return results;\n }\n\n /**\n * Filters and sorts data component labels\n * @param labels list of data component labels\n * @param query user-input query in search bar\n */\n public filterAndSortLabels(labels: string[], query: string): string[] {\n let results: string[] = labels;\n if (query.trim() === '') {\n return results.sort();\n } else {\n return results.filter((r) => r.toLowerCase().includes(query.trim().toLowerCase()));\n }\n }\n\n /**\n * Checks if the query is:\n * 1) valid, and\n * 2) part of last query, otherwise call getTechniques() and getStixData() to search all objects again\n **/\n public getResults(query: string = '', fieldToggled = false) {\n if (query.trim() != '' && query.includes(this.previousQuery) && !fieldToggled) {\n this.techniqueResults = this.filterAndSort(this.techniqueResults, query, true);\n this.stixTypes.forEach((item) => (item['objects'] = this.filterAndSort(item['objects'], query)));\n } else {\n this.getTechniques();\n this.getStixData();\n }\n this.stixDataComponentLabels = this.filterAndSortLabels(this.stixDataComponentLabels, query);\n this.expandPanels();\n }\n\n /**\n * Update expanded panels based on query and results\n */\n public expandPanels() {\n if (!this.userClickedExpand) {\n this.expandedPanels[0] = this.techniqueResults.length > 0;\n let isPrevExpanded = this.expandedPanels[0];\n if (!isPrevExpanded) {\n this.stixTypes.forEach((s, i) => {\n this.expandedPanels[i + 1] = !isPrevExpanded && s.objects.length > 0;\n isPrevExpanded = s.isExpanded;\n });\n }\n this.expandedPanels[4] = !isPrevExpanded && this.stixDataComponentLabels.length > 0;\n } else {\n let isAllCollapsed = false;\n for (const isPanelExpanded in this.expandedPanels) {\n if (isPanelExpanded) {\n isAllCollapsed = true;\n break;\n }\n }\n this.userClickedExpand = isAllCollapsed;\n }\n }\n\n /**\n * Retrieve master list of techniques and sub-techniques\n */\n public getTechniques(): void {\n let allTechniques = this.dataService.getDomain(this.viewModel.domainVersionID).techniques;\n for (let technique of allTechniques) {\n allTechniques = allTechniques.concat(technique.subtechniques);\n }\n this.techniqueResults = this.filterAndSort(allTechniques, this._query, true);\n }\n\n /**\n * Retrieve master list of STIX objects\n */\n public getStixData(): void {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n\n this.stixTypes = [\n {\n label: 'threat groups',\n objects: this.filterAndSort(domain.groups, this._query),\n },\n {\n label: 'software',\n objects: this.filterAndSort(domain.software, this._query),\n },\n {\n label: 'mitigations',\n objects: this.filterAndSort(domain.mitigations, this._query),\n },\n {\n label: 'campaigns',\n objects: this.filterAndSort(domain.campaigns, this._query),\n },\n {\n label: 'assets',\n objects: this.filterAndSort(domain.assets, this._query),\n },\n ];\n\n domain.dataComponents.forEach((c) => {\n const source = c.source(this.viewModel.domainVersionID);\n const label = `${source.name}: ${c.name}`;\n const obj = {\n objects: c.techniques(this.viewModel.domainVersionID),\n url: source.url,\n };\n this.stixDataComponents.set(label, obj);\n });\n this.stixDataComponentLabels = this.filterAndSortLabels(Array.from(this.stixDataComponents.keys()), this._query);\n }\n\n public toggleFieldEnabled(field: string) {\n for (let thefield of this.fields) {\n if (thefield.field == field) {\n thefield.enabled = !thefield.enabled;\n // set query to empty string to trigger getResults() in the case that:\n // 1) a field was toggled, and\n // 2) the query did not change\n this.getResults('', true);\n break;\n }\n }\n }\n\n public mouseEnterAll(techniques: Technique[]) {\n techniques.forEach((t) => this.mouseEnter(t));\n }\n\n public mouseEnter(technique: Technique, isTechnique = true): void {\n if (!isTechnique) {\n for (let t of this.getRelated(technique)) {\n this.viewModel.selectTechniqueAcrossTactics(t, true, true);\n }\n } else {\n this.viewModel.highlightTechnique(technique);\n }\n }\n\n public mouseLeave(): void {\n this.viewModel.clearHighlight();\n }\n\n public select(stixObject: any, isTechnique = true): void {\n if (isTechnique) {\n this.viewModel.selectTechniqueAcrossTactics(stixObject);\n } else if (!isTechnique) {\n for (let technique of this.getRelated(stixObject)) {\n this.viewModel.selectTechniqueAcrossTactics(technique);\n }\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public deselect(stixObject: any, isTechnique = true): void {\n if (isTechnique) {\n this.viewModel.unselectTechniqueAcrossTactics(stixObject);\n } else if (!isTechnique) {\n for (let technique of this.getRelated(stixObject)) {\n this.viewModel.unselectTechniqueAcrossTactics(technique);\n }\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public selectAll(items: any[], isTechniqueArray = true): void {\n if (isTechniqueArray) {\n for (let result of items) this.select(result, isTechniqueArray);\n } else if (!isTechniqueArray) {\n for (let stixObject of items) this.select(stixObject, isTechniqueArray);\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public deselectAll(items: any[], isTechniqueArray = true): void {\n if (isTechniqueArray) {\n for (let result of items) this.deselect(result, isTechniqueArray);\n } else if (!isTechniqueArray) {\n for (let stixObject of items) this.deselect(stixObject, isTechniqueArray);\n }\n this.viewModelsService.onSelectionChange.emit(); // emit selection change\n }\n\n public getRelated(stixObject: StixObject): Technique[] {\n // master list of all techniques and sub-techniques\n let techniques = this.dataService.getDomain(this.viewModel.domainVersionID).techniques;\n let allTechniques = techniques.concat(this.dataService.getDomain(this.viewModel.domainVersionID).subtechniques);\n let domainVersionID = this.viewModel.domainVersionID;\n\n if (stixObject instanceof Group) {\n return allTechniques.filter((technique: Technique) => (stixObject as Group).relatedTechniques(domainVersionID).includes(technique.id));\n } else if (stixObject instanceof Software) {\n return allTechniques.filter((technique: Technique) => (stixObject as Software).relatedTechniques(domainVersionID).includes(technique.id));\n } else if (stixObject instanceof Mitigation) {\n return allTechniques.filter((technique: Technique) =>\n (stixObject as Mitigation).relatedTechniques(domainVersionID).includes(technique.id)\n );\n } else if (stixObject instanceof Campaign) {\n return allTechniques.filter((technique: Technique) => (stixObject as Campaign).relatedTechniques(domainVersionID).includes(technique.id));\n } else if (stixObject instanceof Asset) {\n return allTechniques.filter((technique: Technique) => (stixObject as Asset).relatedTechniques(domainVersionID).includes(technique.id));\n }\n }\n}\n","
    \n
    \n \n
    \n \n \n \n search\n \n\n Search Settings\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n \n \n \n \n

    Techniques ({{ techniqueResults.length }})

    \n
    \n \n
    \n\n \n
    \n
    \n \n \n
    \n
    \n 0; else noTechniquesResults\">\n \n \n \n \n \n \n
    \n {{ result.parent.name }} :\n {{ result.name }}\n view\n \n \n \n
    \n \n
    no results for techniques
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n

    {{ stixType.label | titlecase }} ({{ stixType.objects.length }})

    \n
    \n \n
    \n\n \n
    \n \n \n
    \n
    \n 0; else noResults\">\n \n \n \n \n \n \n
    \n {{ stixObject.name }}\n view\n \n \n \n
    \n \n
    no results for {{ stixType.label }}
    \n
    \n
    \n
    \n \n\n \n \n \n

    Data Sources ({{ stixDataComponentLabels.length }})

    \n
    \n \n
    \n\n \n
    \n \n \n
    \n
    \n 0; else noResults\">\n \n \n \n \n \n \n
    \n {{ label }}\n view\n \n \n \n
    \n \n
    no results for data sources
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { ContextMenuItem } from '../classes/context-menu-item';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n public collectionIndex: string;\n public versions: {\n enabled: boolean;\n entries: any;\n } = {\n enabled: false,\n entries: [],\n };\n public contextMenuItems: ContextMenuItem[] = [];\n public defaultLayers: any;\n public commentColor = 'yellow';\n public linkColor = 'blue';\n public metadataColor = 'purple';\n public banner: string;\n public featureList: any[] = [];\n public customizefeatureList: any[] = []\n\n private features = new Map();\n private featureGroups = new Map();\n\n public get subtechniquesEnabled(): boolean {\n return this.features.get('subtechniques');\n }\n\n constructor(private http: HttpClient) {\n // intentionally left blank\n }\n\n /**\n * Checks if the feature is enabled\n * @param featureName feature name\n * @returns true if the feature is enabled, false otherwise\n */\n public getFeature(featureName: string): boolean {\n return this.features.get(featureName);\n }\n\n /**\n * Checks if any/all features in the group are enabled\n * @param featureGroup feature group name\n * @param type\t'any' or 'all' for logical or/and\n * @returns true iff any/all are enabled, false otherwise\n */\n public getFeatureGroup(featureGroup: string, type?: string): boolean {\n if (!this.featureGroups.has(featureGroup)) return true;\n\n let subFeatures = this.featureGroups.get(featureGroup);\n let count = this.getFeatureGroupCount(featureGroup);\n return type == 'any' ? count > 0 : count === subFeatures.length;\n }\n\n /**\n * Get the number of enabled features in the group\n * @param featureGroup feature group name\n * @returns the number of enabled features in the group, or -1 if\n * the group does not exist\n */\n public getFeatureGroupCount(featureGroup: string): number {\n if (!this.featureGroups.has(featureGroup)) return -1;\n let subFeatures = this.featureGroups.get(featureGroup);\n let enabled = subFeatures.filter((f) => this.getFeature(f));\n return enabled.length;\n }\n\n /**\n * Recursively search an object for boolean properties, set these as features\n * Take a key:value pair of an object. If the value is a boolean, set the\n * feature[key] to value. Otherwise recursively walk value to find boolean\n * options.\n *\n * Additionally, if the given feature grouping (where value is an obj)\n * has been previously defined, boolean properties assigned to the grouping\n * name will apply to all subfeatures of the grouping.\n *\n * @param featureName string, the fieldname the value was found in\n * @param value boolean:object the value of the field. If a boolean,\n * sets feature[featureName] = value, otherwise walks recursively\n */\n public setFeature(featureName: string, value: any): string[] {\n let self = this;\n\n if (typeof value == 'boolean') {\n //base case\n if (this.featureGroups.has(featureName)) {\n //feature group, assign to all subfeatures\n this.featureGroups.get(featureName).forEach(function (subFeatureName: string) {\n self.setFeature(subFeatureName, value);\n });\n } else {\n //single feature\n this.features.set(featureName, value);\n }\n return [featureName];\n }\n\n if (typeof value == 'object') {\n //keep walking\n let subfeatures = [];\n Object.keys(value).forEach(function (fieldname: string) {\n subfeatures = Array.prototype.concat(subfeatures, self.setFeature(fieldname, value[fieldname]));\n });\n this.featureGroups.set(featureName, subfeatures);\n return subfeatures;\n }\n }\n\n /**\n * given a set of feature objects, set the enabledness of that object and all subobjects\n *\n * @param featureObject {name: string, enabled: boolean, subfeatures?: featureObject[] }\n * Of enabled is false and it has subfeatures, they will all be forced to be false too\n * @param override Set all subfeatures, and their subfeatures, values to\n * this value\n */\n public setFeature_object(featureObject: any, override = null): string[] {\n let self = this;\n\n // base case\n if (!featureObject.hasOwnProperty('subfeatures')) {\n let enabled = override !== null ? override : featureObject.enabled;\n this.features.set(featureObject.name, enabled);\n return [featureObject.name];\n } else {\n // has subfeatures\n if (!override) {\n override = !featureObject.enabled ? false : null;\n }\n let subfeatures = [];\n featureObject.subfeatures.forEach(function (subfeature) {\n subfeatures = Array.prototype.concat(subfeatures, self.setFeature_object(subfeature, override));\n });\n this.featureGroups.set(featureObject.name, subfeatures);\n return subfeatures;\n }\n }\n\n /**\n * Return if the given string corresponds to a defined feature\n * @param featureName the name of the feature\n * @return true if the feature exists, false otherwise\n */\n public isFeature(featureName: string): boolean {\n return this.features.has(featureName);\n }\n /**\n * return if the given string corresponds to a defined feature group\n * @param featureGroupName the name of the feature group\n * @return true if it is a feature group, false otherwise\n */\n public isFeatureGroup(featureGroupName: string): boolean {\n return this.featureGroups.has(featureGroupName);\n }\n\n /**\n * Get all url fragments\n * @param url optional, url to parse instead of window location href\n * @return all fragments as key-value pairs\n */\n public getAllFragments(url?: string): Map {\n if (!url) url = window.location.href;\n let fragments = new Map();\n let regex = /[#&](\\w+)=(\\w+)/g;\n\n let match;\n while ((match = regex.exec(url))) {\n fragments.set(match[1], match[2]);\n }\n\n return fragments;\n }\n\n /**\n * Validate that the configuration file specifies a collection index URL\n * or a list of versions/domains\n * @param config the configuration to validate\n * @returns the configuration, if valid, otherwise throws an error\n */\n public validateConfig(config: any): any {\n if (!config.collection_index_url && !config.versions?.entries?.length) {\n throw new Error(`'collection_index_url' or 'versions' must be defined`);\n }\n if (config.collection_index_url && typeof config.collection_index_url !== typeof 'string') {\n throw new Error(`'collection_index_url' must be a string`);\n }\n return config;\n }\n\n /**\n * Load the configuration file\n * Note: this is done at startup\n */\n public loadConfig() {\n return this.http\n .get('mitre/assets/config.json')\n .pipe(\n map((config: any) => this.validateConfig(config)),\n switchMap((config: any) => {\n console.debug('loaded app configuration settings');\n\n config['custom_context_menu_items'].forEach((item) => {\n this.contextMenuItems.push(new ContextMenuItem(item.label, item.url, item.subtechnique_url));\n });\n this.defaultLayers = config['default_layers'];\n this.commentColor = config['comment_color'];\n this.linkColor = config['link_color'];\n this.metadataColor = config['metadata_color'];\n this.banner = config['banner'];\n\n // parse feature preferences\n this.featureList = config['features'];\n this.customizefeatureList = config['customize_features']\n config['features'].forEach((feature) => {\n this.setFeature_object(feature);\n });\n config['customize_features'].forEach((feature) => {\n this.setFeature_object(feature);\n });\n\n // override preferences with preferences from URL fragments\n this.getAllFragments().forEach((value: string, key: string) => {\n if (this.isFeature(key) || this.isFeatureGroup(key)) {\n this.setFeature(key, value == 'true');\n }\n });\n\n // parse configured domains and versions\n this.versions = config['versions'];\n if (config['collection_index_url']) {\n return this.http.get(config['collection_index_url']).pipe(\n tap((_) => console.log('loaded collection index from', config['collection_index_url'])),\n catchError((err) => {\n throw new Error('collection index failed to load. ' + err.message);\n })\n );\n }\n return of(null);\n }),\n map((collectionIndex: any) => {\n if (collectionIndex) this.collectionIndex = collectionIndex;\n }),\n catchError((err) => {\n alert(`ERROR the configuration file failed to parse. See the javascript console for more details.`);\n throw err;\n })\n )\n .toPromise();\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Buffer } from 'buffer';\nimport { forkJoin, from, Observable } from 'rxjs';\nimport { Asset, Campaign, DataComponent, Group, Software, Matrix, Technique, Mitigation, Note } from '../classes/stix';\nimport { TaxiiConnect, Collection } from '../utils/taxii2lib';\nimport { Domain, Version, VersionChangelog } from '../classes';\nimport { ConfigService } from './config.service';\nimport * as globals from '../utils/globals';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataService {\n constructor(\n private http: HttpClient,\n private configService: ConfigService\n ) {\n console.debug('initializing data service');\n if (configService.versions?.enabled) {\n // parse versions structure from configuration file\n // support for workbench integration, taxii and custom data\n this.setUpDomains(configService.versions.entries);\n }\n if (configService.collectionIndex) {\n // parse versions from collection index\n this.parseCollectionIndex(configService.collectionIndex);\n }\n this.versions.sort((a, b) => (+a.number > +b.number ? -1 : 1));\n this.latestVersion = this.versions[0];\n }\n\n public domain_backwards_compatibility = {\n 'mitre-enterprise': 'enterprise-attack',\n 'mitre-mobile': 'mobile-attack',\n };\n public domains: Domain[] = [];\n public versions: Version[] = [];\n public latestVersion: Version; // set in constructor\n\n // Observable for data\n private domainData$: Observable;\n\n /**\n * Callback functions passed to this function will be called after data is loaded\n * @param {string} domainVersionID the ID of the domain and version to load\n * @param {*} callback callback function to call when data is done loading\n */\n public onDataLoad(domainVersionID, callback) {\n this.getDomain(domainVersionID).dataLoadedCallbacks.push(callback);\n }\n\n /**\n * Parse the given stix bundles into the relevant data holders\n * @param domain\n * @param stixBundles\n */\n public parseBundles(domain: Domain, stixBundles: any[]): void {\n let platforms = new Set();\n let seenIDs = new Set();\n let matrixSDOs = [];\n let idToTacticSDO = new Map();\n let matrixToTechniqueSDOs = new Map();\n for (let bundle of stixBundles) {\n let techniqueSDOs = [];\n let bundleMatrices = [];\n let idToTechniqueSDO = new Map();\n // iterate through stix domain objects in the bundle\n for (let sdo of bundle.objects) {\n // filter out duplicates, except for matrices\n // which are needed to properly build the datatables\n if (sdo.type != 'x-mitre-matrix') {\n if (seenIDs.has(sdo.id)) continue;\n seenIDs.add(sdo.id);\n }\n\n // parse according to type\n switch (sdo.type) {\n case 'x-mitre-data-component':\n domain.dataComponents.push(new DataComponent(sdo, this));\n break;\n case 'x-mitre-data-source':\n domain.dataSources.set(sdo.id, { name: sdo.name, external_references: sdo.external_references });\n break;\n case 'intrusion-set':\n domain.groups.push(new Group(sdo, this));\n break;\n case 'malware':\n case 'tool':\n domain.software.push(new Software(sdo, this));\n break;\n case 'campaign':\n domain.campaigns.push(new Campaign(sdo, this));\n break;\n case 'x-mitre-asset':\n domain.assets.push(new Asset(sdo, this));\n break;\n case 'course-of-action':\n domain.mitigations.push(new Mitigation(sdo, this));\n break;\n case 'relationship':\n this.parseRelationship(sdo, domain);\n break;\n case 'attack-pattern':\n idToTechniqueSDO.set(sdo.id, sdo);\n if (!sdo.x_mitre_is_subtechnique) {\n techniqueSDOs.push(sdo);\n }\n break;\n case 'x-mitre-tactic':\n idToTacticSDO.set(sdo.id, sdo);\n break;\n case 'x-mitre-matrix':\n matrixSDOs.push(sdo);\n bundleMatrices.push(sdo);\n break;\n case 'note':\n domain.notes.push(new Note(sdo));\n break;\n }\n }\n\n // create techniques\n this.createTechniques(techniqueSDOs, idToTechniqueSDO, domain);\n\n // create map of matrices to techniques\n for (let matrixSDO of bundleMatrices) {\n if (!matrixToTechniqueSDOs.get(matrixSDO.id)) {\n matrixToTechniqueSDOs.set(matrixSDO.id, techniqueSDOs);\n } else {\n matrixToTechniqueSDOs.get(matrixSDO.id).push(...techniqueSDOs);\n }\n }\n\n // parse platforms\n this.parsePlatforms(domain).forEach(platforms.add, platforms);\n }\n\n // create matrices\n this.createMatrices(matrixSDOs, idToTacticSDO, matrixToTechniqueSDOs, domain);\n\n domain.platforms = Array.from(platforms); // convert to array\n\n // data loading complete; update watchers\n domain.dataLoaded = true;\n domain.executeCallbacks();\n }\n\n /**\n * Creates techniques and sub-techniques from the given technique SDOs\n * @param techniqueSDOs list of parent-level technique SDOs to create\n * @param idToTechniqueSDO map of all technique IDs to SDOs (incl. sub-techniques)\n * @param domain the domain to add the techniques to\n */\n public createTechniques(techniqueSDOs: any, idToTechniqueSDO: Map, domain: Domain): void {\n for (let techniqueSDO of techniqueSDOs) {\n let subtechniques: Technique[] = [];\n if (this.configService.subtechniquesEnabled) {\n if (domain.relationships.subtechniques_of.has(techniqueSDO.id)) {\n domain.relationships.subtechniques_of.get(techniqueSDO.id).forEach((sub_id) => {\n if (idToTechniqueSDO.has(sub_id)) {\n let subtechnique = new Technique(idToTechniqueSDO.get(sub_id), [], this);\n subtechniques.push(subtechnique);\n domain.subtechniques.push(subtechnique);\n }\n // else the target was revoked or deprecated and we can skip honoring the relationship\n });\n }\n }\n domain.techniques.push(new Technique(techniqueSDO, subtechniques, this));\n }\n }\n\n /**\n * Creates the matrices, which also creates its tactics and filters the techniques\n * @param matricesList list of matrix SDOs to create\n * @param tacticsList list of tactic SDOs\n * @param domain the domain to add the matrix/tactics to\n */\n public createMatrices(matrixSDOs: any[], idToTacticSDO: Map, matrixToTechniqueSDOs, domain: Domain): void {\n let createdMatrixIDs = [];\n for (let matrixSDO of matrixSDOs) {\n // check if matrix was already created\n if (createdMatrixIDs.includes(matrixSDO.id)) continue;\n\n // check if matrix is deprecated\n if (matrixSDO.x_mitre_deprecated) continue;\n\n // retrieve relevant matrix techniques\n let techniqueSDOs = matrixToTechniqueSDOs.get(matrixSDO.id);\n let techniqueIDs = techniqueSDOs.map((t) => t.id);\n let techniques = domain.techniques.filter((t) => techniqueIDs.includes(t.id));\n domain.matrices.push(new Matrix(matrixSDO, idToTacticSDO, techniques, this));\n\n // add to list of created matrices\n createdMatrixIDs.push(matrixSDO.id);\n }\n }\n\n /**\n * Extracts the set of platforms from the list of techniques\n * in the given domain\n * @param domain the domain for which to parse the platforms\n * @returns the set of platforms found\n */\n public parsePlatforms(domain: Domain): Set {\n let platforms = new Set();\n let allTechniques = domain.techniques.concat(domain.subtechniques);\n\n // parse platforms\n allTechniques.forEach((technique) => {\n if (!technique.deprecated && !technique.revoked) {\n technique.platforms?.forEach(platforms.add, platforms);\n }\n });\n\n return platforms;\n }\n\n /**\n * Parses the given SRO into the domain relationship map\n * @param sro the SRO to parse\n * @param domain the domain to add the relationship to\n */\n public parseRelationship(sro: any, domain: Domain): void {\n // for existing keys, add the given value to the list of values\n // otherwise, add the key with the value as the first item in the list\n let addRelationshipToMap = function (map, key, value) {\n if (map.has(key)) map.get(key).push(value);\n else map.set(key, [value]);\n };\n\n switch (sro.relationship_type) {\n case 'subtechnique-of':\n if (!this.configService.subtechniquesEnabled) return;\n // record subtechnique:technique relationship\n addRelationshipToMap(domain.relationships['subtechniques_of'], sro.target_ref, sro.source_ref);\n break;\n case 'uses':\n if (sro.source_ref.startsWith('intrusion-set') && sro.target_ref.startsWith('attack-pattern')) {\n // record group:technique relationship\n addRelationshipToMap(domain.relationships['group_uses'], sro.source_ref, sro.target_ref);\n } else if (\n (sro.source_ref.startsWith('malware') || sro.source_ref.startsWith('tool')) &&\n sro.target_ref.startsWith('attack-pattern')\n ) {\n // record software:technique relationship\n addRelationshipToMap(domain.relationships['software_uses'], sro.source_ref, sro.target_ref);\n } else if (sro.source_ref.startsWith('campaign') && sro.target_ref.startsWith('attack-pattern')) {\n // record campaign:technique relationship\n addRelationshipToMap(domain.relationships['campaign_uses'], sro.source_ref, sro.target_ref);\n }\n break;\n case 'mitigates':\n // record mitigation:technique relationship\n addRelationshipToMap(domain.relationships['mitigates'], sro.source_ref, sro.target_ref);\n break;\n case 'revoked-by':\n // record stix object: stix object relationship\n domain.relationships['revoked_by'].set(sro.source_ref, sro.target_ref);\n break;\n case 'detects':\n // record data component: technique relationship\n addRelationshipToMap(domain.relationships['component_rel'], sro.source_ref, sro.target_ref);\n break;\n case 'attributed-to':\n // record campaign:group relationship\n addRelationshipToMap(domain.relationships['campaigns_attributed_to'], sro.target_ref, sro.source_ref);\n break;\n case 'targets':\n // record technique:asset relationship\n addRelationshipToMap(domain.relationships['targeted_assets'], sro.target_ref, sro.source_ref);\n break;\n }\n }\n\n /**\n * Set up the URLs for domains in the list defined in the config file\n * @param {versions} list of versions and domains\n */\n public setUpDomains(versions: any[]) {\n versions.forEach((version: any) => {\n let v = this.addVersion(version['name'], version['version'].match(/\\d+/g)[0]);\n version['domains'].forEach((domain: any) => {\n let identifier = domain['identifier'];\n let domainObject = new Domain(identifier, domain['name'], v);\n if (version['authentication']) domainObject.authentication = version['authentication'];\n if (domain['taxii_url'] && domain['taxii_collection']) {\n domainObject.taxii_url = domain['taxii_url'];\n domainObject.taxii_collection = domain['taxii_collection'];\n } else {\n domainObject.urls = domain['data'];\n }\n this.domains.push(domainObject);\n });\n });\n }\n\n /**\n * Parses the collection index for domains/versions\n * @param collectionIndex the collection index\n */\n public parseCollectionIndex(collectionIndex: any) {\n for (let collection of collectionIndex.collections) {\n let domainIdentifier = this.getDomainIdentifier(collection.name);\n\n // only most recent minor versions of a major release\n let minorVersionMap = collection.versions.reduce((acc, version) => {\n const [major, minor] = version.version.split('.').map(Number);\n if (!acc[major] || acc[major].minor < minor) {\n acc[major] = { version: version.version, url: version.url };\n }\n return acc;\n }, {});\n let versions: Array<{ version: string; url: string }> = Object.values(minorVersionMap);\n\n for (let version of versions) {\n let versionNumber = version.version.split('.')[0]; // major version only\n let versionName = `${collectionIndex.name} v${versionNumber}`;\n if (+versionNumber < +globals.minimumSupportedVersion) {\n console.debug(`version ${versionNumber} is not supported, skipping ${collection.name} v${versionNumber}`);\n continue;\n }\n // create version & domain\n let v = this.addVersion(versionName, versionNumber);\n this.domains.push(new Domain(domainIdentifier, collection.name, v, [version.url]));\n }\n }\n }\n\n /**\n * Retrieves the domain identifier from the domain name\n * Helper function for parseCollectionIndex()\n * @param domainName the name of the domain\n * @returns the domain identifier (e.g. 'enterprise-attack')\n */\n public getDomainIdentifier(domainName: string): string {\n return domainName.replace(/ /g, '-').replace(/&/g, 'a').toLowerCase();\n }\n\n /**\n * Adds a new version to the list of versions, checking if\n * one already exists.\n * @param versionName the name of the version\n * @param versionNumber the version number\n * @returns the existing or created Version object\n */\n public addVersion(versionName: string, versionNumber: string): Version {\n // check if version already exists\n let existingVersion = this.versions.find((v) => v.name === versionName && v.number === versionNumber);\n if (!existingVersion) {\n // create and add new version\n let version = new Version(versionName, versionNumber);\n this.versions.push(version);\n return version;\n }\n return existingVersion;\n }\n\n /**\n * Fetch the domain data from the endpoint\n */\n public getDomainData(domain: Domain, refresh: boolean = false): Observable {\n if (domain.taxii_collection && domain.taxii_url) {\n console.debug('fetching data from TAXII server');\n let conn = new TaxiiConnect(domain.taxii_url, '', '');\n let collectionInfo: any = {\n id: domain.taxii_collection,\n title: domain.name,\n description: '',\n can_read: true,\n can_write: false,\n };\n const collection = new Collection(collectionInfo, domain.taxii_url, conn);\n this.domainData$ = forkJoin(from(collection.getObjects('', undefined)));\n } else if (refresh || !this.domainData$) {\n console.debug('retrieving data', domain.urls);\n let bundleData = [];\n const httpOptions = {\n headers: undefined,\n };\n if (domain.authentication && domain.authentication.enabled) {\n // include authorization header, if configured (integrations)\n let token = `${domain.authentication.serviceName}:${domain.authentication.apiKey}`;\n httpOptions.headers = new HttpHeaders({ Authorization: 'Basic ' + Buffer.from(token).toString('base64') });\n }\n domain.urls.forEach((url) => {\n bundleData.push(this.http.get(url, httpOptions));\n });\n this.domainData$ = forkJoin(bundleData);\n }\n return this.domainData$;\n }\n\n /**\n * Load and parse domain data\n */\n public loadDomainData(domainVersionID: string, refresh: boolean = false): Promise {\n let dataPromise: Promise = new Promise((resolve, reject) => {\n let domain = this.getDomain(domainVersionID);\n if (domain) {\n if (domain.dataLoaded && !refresh) resolve(null);\n let subscription;\n subscription = this.getDomainData(domain, refresh).subscribe({\n next: (data: Object[]) => {\n this.parseBundles(domain, data);\n resolve(null);\n },\n complete: () => {\n if (subscription) subscription.unsubscribe();\n }, //prevent memory leaks\n });\n } else if (!domain) {\n // domain not defined in config\n reject(new Error(\"'\" + domainVersionID + \"' is not a valid domain & version.\"));\n }\n });\n return dataPromise;\n }\n\n /**\n * Get domain object by domain ID\n */\n public getDomain(domainVersionID: string): Domain {\n return this.domains.find((d) => d.id === domainVersionID);\n }\n\n /**\n * Get the ID from domain name & version\n */\n public getDomainVersionID(domain: string, versionNumber: string): string {\n if (!versionNumber) {\n // layer with no specified version defaults to current version\n versionNumber = this.versions[0].number;\n }\n return domain + '-' + versionNumber;\n }\n\n /**\n * Retrieve the technique object with the given attackID in the given domain/version\n */\n public getTechnique(attackID: string, domainVersionID: string) {\n let domain = this.getDomain(domainVersionID);\n let all_techniques = domain.techniques.concat(domain.subtechniques);\n return all_techniques.find((t) => t.attackID == attackID);\n }\n\n /**\n * Is the given version supported?\n */\n public isSupported(version: string) {\n let supported = this.versions.map((v) => v.number);\n let match = version.match(/\\d+/g)[0];\n return supported.includes(match);\n }\n\n /**\n * Compares techniques between two ATT&CK versions and returns a set of object changes\n * @param oldDomainVersionID imported layer domain & version to upgrade from\n * @param newDomainVersionID latest ATT&CK domain & version to upgrade to\n */\n public compareVersions(oldDomainVersionID: string, newDomainVersionID: string): VersionChangelog {\n let changelog = new VersionChangelog(oldDomainVersionID, newDomainVersionID);\n let oldDomain = this.getDomain(oldDomainVersionID);\n let newDomain = this.getDomain(newDomainVersionID);\n\n let previousTechniques = oldDomain.techniques.concat(oldDomain.subtechniques);\n let latestTechniques = newDomain.techniques.concat(newDomain.subtechniques);\n\n // object lookup to increase efficiency\n let objectLookup = new Map(\n latestTechniques.map((technique) => [technique.id, previousTechniques.find((p) => p.id == technique.id)])\n );\n\n for (let latestTechnique of latestTechniques) {\n if (!latestTechnique) continue;\n\n let prevTechnique = objectLookup.get(latestTechnique.id);\n if (!prevTechnique) {\n if (latestTechnique.deprecated || latestTechnique.revoked) {\n // object doesn't exist in previous version, but is deprecated or revoked\n // in the latest version\n // this case is unlikely to occur and indicates that something has\n // gone wrong in the data, such as the case in which a sub-technique\n // was deprecated, had its ties erroneously severed with its parent\n // and therefore, cannot be parsed correctly\n continue;\n }\n\n // object doesn't exist in previous version, added to latest version\n changelog.additions.push(latestTechnique.attackID);\n } else if (latestTechnique.modified == prevTechnique.modified) {\n if (prevTechnique.revoked || prevTechnique.deprecated) {\n // object is revoked or deprecated, ignore\n continue;\n } else {\n // no changes made to the object\n changelog.unchanged.push(latestTechnique.attackID);\n }\n } else {\n // changes were made to the object\n if (latestTechnique.revoked && !prevTechnique.revoked) {\n // object was revoked since the previous version\n changelog.revocations.push(latestTechnique.attackID);\n } else if (latestTechnique.revoked && prevTechnique.revoked) {\n // both objects are revoked, ignore\n continue;\n } else if (latestTechnique.deprecated && !prevTechnique.deprecated) {\n // object was deprecated since the previous version\n changelog.deprecations.push(latestTechnique.attackID);\n } else if (latestTechnique.deprecated && prevTechnique.deprecated) {\n // both objects are deprecated, ignore\n continue;\n } else if (latestTechnique.compareVersion(prevTechnique) != 0) {\n // version number changed\n changelog.changes.push(latestTechnique.attackID);\n } else {\n // minor change\n changelog.minor_changes.push(latestTechnique.attackID);\n }\n }\n }\n return changelog;\n }\n}\n\nexport interface ServiceAuth {\n enabled: boolean;\n serviceName: string;\n apiKey: string;\n}\n","import { Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconsService {\n constructor(\n public matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n // intentionally left blank\n }\n\n public registerIcons(): void {\n this.loadIcons(Object.values(Icons), 'mitre/assets/icons');\n }\n\n private loadIcons(iconKeys: string[], iconUrl: string): void {\n iconKeys.forEach((key) => {\n this.matIconRegistry.addSvgIcon(key, this.domSanitizer.bypassSecurityTrustResourceUrl(`${iconUrl}/${key}.svg`));\n });\n }\n}\n\nexport enum Icons {\n SORT_ALPHABETICAL_ASC = 'ic_sort_alphabetically_ascending',\n SORT_ALPHABETICAL_DESC = 'ic_sort_alphabetically_descending',\n SORT_NUMERICAL_ASC = 'ic_sort_numerically_ascending',\n SORT_NUMERICAL_DESC = 'ic_sort_numerically_descending',\n UNFOLD_MORE_ALT = 'ic_unfold_more_alt',\n NON_STICKY_TOOLBAR = 'ic_push_pin_gray',\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { Gradient, TechniqueVM, ViewModel } from '../classes';\nimport { DataService } from './data.service';\nimport { evaluate } from 'mathjs';\nimport { isBoolean, isNumber } from '../utils/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ViewModelsService {\n @Output() onSelectionChange = new EventEmitter();\n\n public viewModels: ViewModel[] = [];\n public pinnedCell: string = '';\n private nonce: number = 0;\n\n constructor(private dataService: DataService) {\n // intentionally left blank\n }\n\n /* Emit event when technique selection changes */\n public selectionChanged(): void {\n this.onSelectionChange.emit();\n }\n\n /**\n * Create and return a new viewModel\n * @param {string} name the viewmodel name\n * @param {string} domainVersionID the ID of the domain & version\n * @return {ViewModel} the created ViewModel\n */\n public newViewModel(name: string, domainVersionID: string): ViewModel {\n let vm = new ViewModel(name, 'vm' + this.getNonce(), domainVersionID, this.dataService);\n this.viewModels.push(vm);\n return vm;\n }\n\n /**\n * Get a nonce.\n * @return a number that will never be regenerated by sequential calls to getNonce.\n * Note: this applies on a session-by-session basis, nonces are not\n * unique between app instances.\n */\n public getNonce(): number {\n return this.nonce++;\n }\n\n /**\n * Destroy the viewmodel\n * @param vm viewmodel to destroy.\n */\n public destroyViewModel(vm: ViewModel): void {\n for (let i = 0; i < this.viewModels.length; i++) {\n if (this.viewModels[i] == vm) {\n this.viewModels.splice(i, 1);\n return;\n }\n }\n }\n\n /**\n * Layer combination operation\n * @param scoreVariables variables in math expression, mapping to viewmodel they correspond to\n * @param layerName the name of the new layer\n * @param opSettings the settings for view model inheritance\n * - `domain`: the domain & version\n * - `gradientVM`: the view model to inherit gradient from\n * - `coloringVM`: the view model to inherit manual colors from\n * - `commentVM`: the view model to inherit comments from\n * - `linkVM`: the view model to inherit links from\n * - `metadataVM`: the view model to inherit metadata from\n * - `enabledVM`: the view model to inherit enabled state from\n * - `filterVM`: the view model to inherit filters from\n * - `scoreExpression`: math equation of score expression\n * - `legendVM`: the view model to inherit legend items from\n * @return new viewmodel inheriting above properties\n */\n public layerOperation(scoreVariables: Map, layerName: string, opSettings: any): ViewModel {\n let newViewModel = new ViewModel('layer by operation', 'vm' + this.getNonce(), opSettings.domain, this.dataService);\n\n if (opSettings.scoreExpression) {\n opSettings.scoreExpression = opSettings.scoreExpression.toLowerCase(); // should be enforced by input, but just in case\n let minScore = Infinity;\n let maxScore = -Infinity;\n\n // get list of all technique IDs used in the VMs\n let techniqueIDs = new Set();\n scoreVariables.forEach((vm) => {\n vm.techniqueVMs.forEach(function (techniqueVM, techniqueID) {\n techniqueIDs.add(techniqueID);\n });\n });\n\n // attempt to evaluate without a scope to catch the case of a static assignment\n try {\n // evaluate with an empty scope\n let result = evaluate(opSettings.scoreExpression, {});\n\n // if it didn't except after this, it evaluated to a single result\n console.debug('score expression evaluated to single result to be applied to all techniques');\n if (isBoolean(result)) {\n // boolean to binary\n result = result ? '1' : '0';\n } else if (!isNumber(result)) {\n // unexpected user input\n throw Error('math result ( ' + result + ' ) is not a number');\n }\n\n // apply result to all techniques\n newViewModel.initializeScoresTo = String(result);\n minScore = result;\n maxScore = result;\n } catch (err) {\n //couldn't evaluate with empty scope, build scope for each technique\n // compute the score of each techniqueID\n techniqueIDs.forEach((techniqueID) => {\n let newTechniqueVM = new TechniqueVM(techniqueID);\n let scope = {};\n let misses = 0; // number of times a VM is missing the value\n scoreVariables.forEach(function (vm, key) {\n let scoreValue: number;\n if (!vm.hasTechniqueVM_id(techniqueID)) {\n // missing technique\n scoreValue = 0;\n misses++;\n } else {\n // technique exists\n let score = vm.getTechniqueVM_id(techniqueID).score;\n if (score == '' || isNaN(Number(score))) {\n scoreValue = 0;\n misses++;\n } else {\n scoreValue = Number(score);\n }\n }\n scope[key] = scoreValue;\n });\n\n // did at least one technique have a score for this technique?\n if (misses < scoreVariables.size) {\n let mathResult = evaluate(opSettings.scoreExpression, scope);\n if (isBoolean(mathResult)) {\n // boolean to binary\n mathResult = mathResult ? '1' : '0';\n } else if (!isNumber(mathResult)) {\n // unexpected user input\n throw Error('math result ( ' + mathResult + ' ) is not a number');\n }\n\n newTechniqueVM.score = String(mathResult);\n newViewModel.techniqueVMs.set(techniqueID, newTechniqueVM);\n minScore = Math.min(minScore, mathResult);\n maxScore = Math.max(maxScore, mathResult);\n }\n // don't record a result if none of VMs had a score for this technique\n });\n }\n\n // gradient doesn't apply if there is no range of values\n if (minScore != maxScore) {\n // set up gradient according to result range\n if (minScore != Infinity) newViewModel.gradient.minValue = minScore;\n if (maxScore != -Infinity) newViewModel.gradient.maxValue = maxScore;\n\n // if binary range, set to transparentblue gradient\n if (minScore == 0 && maxScore == 1) newViewModel.gradient.setGradientPreset('transparentblue');\n }\n }\n\n /**\n * Inherit a field from a vm\n * @param {ViewModel} inheritVM the viewModel to inherit from\n * @param {string} fieldName the field to inherit from the viewmodel\n */\n function inherit(inheritVM: ViewModel, fieldName: string) {\n inheritVM.techniqueVMs.forEach((techniqueVM) => {\n let tvm = newViewModel.hasTechniqueVM_id(techniqueVM.technique_tactic_union_id)\n ? newViewModel.getTechniqueVM_id(techniqueVM.technique_tactic_union_id)\n : new TechniqueVM(techniqueVM.technique_tactic_union_id);\n tvm[fieldName] = techniqueVM[fieldName];\n newViewModel.techniqueVMs.set(techniqueVM.technique_tactic_union_id, tvm);\n });\n }\n\n if (opSettings.commentVM) inherit(opSettings.commentVM, 'comment');\n if (opSettings.linkVM) inherit(opSettings.linkVM, 'links');\n if (opSettings.metadataVM) inherit(opSettings.metadataVM, 'metadata');\n if (opSettings.coloringVM) inherit(opSettings.coloringVM, 'color');\n if (opSettings.enabledVM) inherit(opSettings.enabledVM, 'enabled');\n\n if (opSettings.filterVM) {\n //copy filter settings\n newViewModel.filters.deserialize(JSON.parse(opSettings.filterVM.filters.serialize()));\n }\n\n if (opSettings.legendVM) {\n newViewModel.legendItems = JSON.parse(JSON.stringify(opSettings.legendVM.legendItems));\n }\n\n if (opSettings.gradientVM) {\n newViewModel.gradient = new Gradient();\n newViewModel.gradient.deserialize(opSettings.gradientVM.gradient.serialize());\n }\n\n newViewModel.name = layerName;\n this.viewModels.push(newViewModel);\n newViewModel.updateGradient();\n return newViewModel;\n }\n}\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { ViewModel } from '../classes';\n\n@Component({\n selector: 'sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss'],\n})\nexport class SidebarComponent implements OnChanges {\n @Input() viewModel: ViewModel;\n public reloadToggle: boolean = true;\n\n constructor(public dataService: DataService) {}\n\n ngOnChanges(): void {\n this.reloadToggle = false;\n setTimeout(() => (this.reloadToggle = true));\n }\n}\n","
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","export { RenderableMatrix } from './renderable-matrix';\nexport { RenderableTactic } from './renderable-tactic';\nexport { RenderableTechnique } from './renderable-technique';\n","import { Matrix } from '../../classes/stix';\nimport { RenderableTactic } from './renderable-tactic';\nimport { ViewModel } from '../../classes';\n\nexport class RenderableMatrix {\n public matrix: Matrix;\n public tactics: RenderableTactic[] = [];\n\n public get height() {\n let heights = this.tactics.map(function (tactic: RenderableTactic) {\n return tactic.height;\n });\n return Math.max(...heights);\n }\n\n constructor(matrix: Matrix, viewModel: ViewModel, renderConfig: any) {\n this.matrix = matrix;\n let filteredTactics = viewModel.filterTactics(matrix.tactics, matrix);\n for (let tactic of filteredTactics) {\n this.tactics.push(new RenderableTactic(tactic, matrix, viewModel, renderConfig));\n }\n }\n}\n","import { Matrix, Tactic } from '../../classes/stix';\nimport { RenderableTechnique } from './renderable-technique';\nimport { ViewModel } from '../../classes';\n\nexport class RenderableTactic {\n public readonly tactic: Tactic;\n public readonly techniques: RenderableTechnique[] = [];\n public readonly subtechniques: RenderableTechnique[] = [];\n public height: number;\n\n constructor(tactic: Tactic, matrix: Matrix, viewModel: ViewModel, renderConfig: any) {\n this.tactic = tactic;\n let filteredTechniques = viewModel.sortTechniques(viewModel.filterTechniques(tactic.techniques, tactic, matrix), tactic);\n let yPosition = 1; // start at 1 to make space for tactic label\n for (let technique of filteredTechniques) {\n let techniqueVM = viewModel.getTechniqueVM(technique, tactic);\n let filteredSubtechniques = viewModel.filterTechniques(technique.subtechniques, tactic, matrix);\n\n let showSubtechniques =\n renderConfig.showSubtechniques == 'all' || (renderConfig.showSubtechniques == 'expanded' && techniqueVM.showSubtechniques);\n\n this.techniques.push(new RenderableTechnique(yPosition++, technique, tactic, matrix, viewModel, showSubtechniques));\n\n if (filteredSubtechniques.length > 0 && showSubtechniques) {\n for (let subtechnique of filteredSubtechniques) {\n this.subtechniques.push(new RenderableTechnique(yPosition++, subtechnique, tactic, matrix, viewModel, renderConfig));\n }\n }\n }\n this.height = yPosition;\n }\n}\n","import { Matrix, Tactic, Technique } from '../../classes/stix';\nimport { TechniqueVM, ViewModel } from '../../classes';\nimport tinycolor from 'tinycolor2';\n\nexport class RenderableTechnique {\n public readonly yPosition: number;\n public readonly technique: Technique;\n public readonly tactic: Tactic;\n public readonly matrix: Matrix;\n public readonly showSubtechniques;\n public readonly viewModel: ViewModel;\n\n constructor(yPosition, technique: Technique, tactic: Tactic, matrix: Matrix, viewModel: ViewModel, showSubtechniques = false) {\n this.yPosition = yPosition;\n this.technique = technique;\n this.tactic = tactic;\n this.matrix = matrix;\n this.viewModel = viewModel;\n this.showSubtechniques = showSubtechniques;\n }\n\n public get fill() {\n if (this.viewModel.hasTechniqueVM(this.technique, this.tactic)) {\n let techniqueVM: TechniqueVM = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (!techniqueVM.enabled) return 'white';\n if (techniqueVM.color) return techniqueVM.color;\n if (this.viewModel.layout.showAggregateScores && techniqueVM.aggregateScoreColor) return techniqueVM.aggregateScoreColor;\n if (techniqueVM.score) return techniqueVM.scoreColor;\n }\n return null; //default\n }\n\n public get textColor() {\n if (this.viewModel.hasTechniqueVM(this.technique, this.tactic)) {\n let techniqueVM: TechniqueVM = this.viewModel.getTechniqueVM(this.technique, this.tactic);\n if (!techniqueVM.enabled) return '#aaaaaa';\n }\n if (this.fill) {\n return tinycolor.mostReadable(this.fill, ['white', 'black']); //default;\n }\n return null;\n }\n\n public get text() {\n let text = [];\n if (this.viewModel.layout.showID) text.push(this.technique.attackID);\n if (this.viewModel.layout.showName) text.push(this.technique.name);\n return text.join(': ');\n }\n}\n","import { Component, OnInit, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ViewModel } from '../classes';\nimport { ConfigService } from '../services/config.service';\nimport { DataService } from '../services/data.service';\nimport { RenderableMatrix, RenderableTactic, RenderableTechnique } from './renderable-objects';\nimport tinycolor from 'tinycolor2';\nimport { isIE } from '../utils/utils';\ndeclare var d3: any; //d3js\n\n@Component({\n selector: 'app-svg-export',\n templateUrl: './svg-export.component.html',\n styleUrls: ['./svg-export.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SvgExportComponent implements OnInit {\n // vm to render\n public viewModel: ViewModel;\n\n // SVG configuration\n public config: any = {};\n public svgConfigDefaults: any = {\n width: 11,\n height: 8.5,\n headerHeight: 1,\n unit: 'in',\n orientation: 'landscape',\n size: 'letter',\n fontSize: 4,\n autofitText: true,\n maxTextSize: Infinity,\n theme: 'light',\n showSubtechniques: 'expanded',\n font: 'sans-serif',\n tableBorderColor: '#6B7279',\n showHeader: true,\n legendDocked: true,\n legendX: 0,\n legendY: 0,\n legendWidth: 2,\n legendHeight: 1,\n showLegend: true,\n showGradient: true,\n showFilters: true,\n showAbout: true,\n showDomain: true,\n showAggregate: false,\n };\n\n // SVG settings\n public currentDropdown: string = null;\n public hasScores: boolean;\n private svgElementID: string = 'svgInsert_tmp';\n private buildSVGDebounce: boolean = false;\n\n // counter for unit change ui element\n public unitEnum: number = 0;\n\n // counter for theme change ui element\n public themeEnum: number = 0;\n\n // browser compatibility\n public get isIE(): boolean {\n return isIE();\n }\n\n // getters for visibility of SVG header sections\n public get hasName(): boolean {\n return this.viewModel.name.length > 0;\n }\n public get hasDomain(): boolean {\n return this.viewModel.domainVersionID.length > 0;\n }\n public get hasDescription(): boolean {\n return this.viewModel.description.length > 0;\n }\n public get hasLegendItems(): boolean {\n return this.viewModel.legendItems.length > 0;\n }\n\n // getters for user preferences\n public get showName(): boolean {\n return this.config.showAbout && this.hasName && this.config.showHeader;\n }\n public get showDomain(): boolean {\n return this.config.showDomain && this.hasDomain && this.config.showHeader;\n }\n public get showAggregate(): boolean {\n return this.viewModel.layout.showAggregateScores && this.config.showHeader;\n }\n public get showDescription(): boolean {\n return this.config.showAbout && this.hasDescription && this.config.showHeader;\n }\n public get showFilters(): boolean {\n return this.config.showFilters && this.config.showHeader;\n }\n public get showGradient(): boolean {\n return this.config.showGradient && this.hasScores && this.config.showHeader;\n }\n public get showLegend(): boolean {\n return this.config.showLegend && this.hasLegendItems;\n }\n public get showLegendContainer(): boolean {\n return this.showLegend || this.showGradient;\n }\n public get showLegendInHeader(): boolean {\n return this.config.legendDocked;\n }\n\n constructor(\n private dialogRef: MatDialogRef, // needed for mat-dialog-close\n private configService: ConfigService,\n private dataService: DataService,\n @Inject(MAT_DIALOG_DATA) public data\n ) {\n this.config = this.svgConfigDefaults;\n }\n\n ngOnInit(): void {\n this.viewModel = this.data.vm;\n this.svgElementID = 'svgInsert' + this.viewModel.uid;\n\n let self = this;\n //determine if the layer has any scores\n let visibleTechniques = self.viewModel.getVisibleTechniquesList();\n for (let unionID of visibleTechniques) {\n let techniqueVM = self.viewModel.getTechniqueVM_id(unionID);\n if (techniqueVM.score != '') {\n self.hasScores = true;\n break; // at least one score found\n }\n }\n\n // dynamic legend height according to content\n let legendSectionCount = 0;\n if (self.hasScores) legendSectionCount++;\n if (self.hasLegendItems) legendSectionCount++;\n self.config.legendHeight = 0.5 * legendSectionCount;\n\n //initial legend position for undocked legend\n this.config.legendX = this.config.width - this.config.legendWidth - 0.1;\n this.config.legendY = this.config.height - this.config.legendHeight - 0.1;\n if (this.config.showHeader) this.config.legendY -= this.config.headerHeight;\n\n //initial table border color\n if (this.config.theme === 'light') {\n this.config.tableBorderColor = '#6B7279';\n } else if (this.config.theme === 'dark') {\n this.config.tableBorderColor = '#4c4c68';\n }\n\n // build SVG at end of fn queue so page can render before build\n window.setTimeout(function () {\n self.buildSVG(self);\n }, 0);\n }\n\n /** build the SVG */\n public buildSVG(self?: any, bypassDebounce: boolean = false): void {\n if (!self) self = this; // called from somewhere other than ngOnInit\n\n // debounce\n if (self.buildSVGDebounce && !bypassDebounce) return;\n if (!bypassDebounce) {\n self.buildSVGDebounce = true;\n window.setTimeout(function () {\n self.buildSVG(self, true);\n }, 500);\n return;\n }\n self.buildSVGDebounce = false;\n\n // set svg size\n this.setSize(self, self.config.size, self.config.orientation);\n\n // calculate svg height and width\n let margin = { top: 5, right: 5, bottom: 5, left: 5 };\n let width = Math.max(self.toPx(self.config.width, self.config.unit) - (margin.right + margin.left), 10);\n let svgWidth = width + margin.left + margin.right;\n let height = Math.max(self.toPx(self.config.height, self.config.unit) - (margin.top + margin.bottom), 10);\n let svgHeight = height + margin.top + margin.bottom;\n let headerHeight = Math.max(self.toPx(self.config.headerHeight, self.config.unit), 1);\n\n // remove previous graphic\n let svgElement: HTMLElement = document.getElementById(self.svgElementID);\n svgElement.innerHTML = '';\n\n // create new SVG\n let svg = d3\n .select('#' + self.svgElementID)\n .append('svg')\n .attr('width', svgWidth)\n .attr('height', svgHeight)\n .attr('xmlns', 'http://www.w3.org/2000/svg')\n .attr('id', 'svg' + self.viewModel.uid) // SVG download tag\n .append('g')\n .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')\n .style('font-family', self.config.font);\n\n // -----------------------------------------------------------------------------\n // LEGEND\n // -----------------------------------------------------------------------------\n\n let legendSection = { title: 'legend', contents: [] };\n\n // scores and gradient\n if (self.hasScores && self.showGradient) {\n legendSection.contents.push({ label: 'gradient', data: self.buildGradient() });\n }\n\n // legend items\n if (self.showLegend) {\n legendSection.contents.push({ label: 'legend', data: self.buildLegend() });\n }\n\n // -----------------------------------------------------------------------------\n // HEADER\n // -----------------------------------------------------------------------------\n\n if (self.config.showHeader) {\n let headerSections: HeaderSection[] = [];\n\n // about section\n if (self.showName || self.showDescription) {\n let aboutSection = { title: 'about', contents: [] };\n if (self.showName) aboutSection.contents.push({ label: 'name', data: this.viewModel.name });\n if (self.showDescription) aboutSection.contents.push({ label: 'description', data: this.viewModel.description });\n headerSections.push(aboutSection);\n }\n\n // domain section\n let domainSection = { title: 'domain', contents: [] };\n if (self.showDomain) {\n let domain = this.dataService.getDomain(this.viewModel.domainVersionID);\n domainSection.contents.push({ label: 'domain', data: `${domain.name} v${domain.version.number}` });\n }\n\n // platform section\n let platformSection = { title: 'platforms', contents: [] };\n if (self.showFilters) {\n let filterData = { label: 'platforms', data: this.viewModel.filters.platforms.selection.join(', ') };\n\n // domain + platforms\n if (self.showAggregate) {\n domainSection.title = 'domain & platforms';\n domainSection.contents.push(filterData);\n } else {\n platformSection.contents.push(filterData);\n }\n }\n\n // add relevant sections to header\n if (domainSection.contents.length > 0) headerSections.push(domainSection);\n if (platformSection.contents.length > 0) headerSections.push(platformSection);\n\n // aggregate scores\n if (self.showAggregate) {\n let aggregateSection = { title: 'aggregate', contents: [] };\n aggregateSection.contents.push({\n label: 'function',\n data: 'showing aggregate scores using the ' + this.viewModel.layout.aggregateFunction + ' aggregate function',\n });\n if (this.viewModel.layout.countUnscored) {\n aggregateSection.contents.push({ label: 'unscored', data: 'includes unscored techniques as having a score of 0' });\n }\n headerSections.push(aggregateSection);\n }\n\n // legend section\n if (self.showLegendContainer && self.showLegendInHeader) headerSections.push(legendSection);\n\n // build header\n let headerGroup = svg.append('g');\n let headerX = d3\n .scaleBand()\n .paddingInner(0.05)\n .domain(headerSections.map((section) => section.title))\n .range([0, width]);\n\n // build header sections\n for (let section of headerSections) {\n let sectionGroup = headerGroup.append('g');\n if (headerSections.length > 1) {\n sectionGroup.attr('transform', `translate(${headerX(section.title)}, 0)`);\n }\n let headerWidth = headerSections.length == 1 ? width : headerX.bandwidth();\n self.buildHeaderSection(this, sectionGroup, section, headerWidth, headerHeight);\n }\n\n if (headerSections.length == 0) headerHeight = 0; // no header sections\n } else {\n //no header\n headerHeight = 0;\n }\n\n // -----------------------------------------------------------------------------\n // MATRIX\n // -----------------------------------------------------------------------------\n\n // build data model\n let datatable = svg.append('g').attr('transform', 'translate(0,' + (headerHeight + 1) + ')');\n let domain = self.dataService.getDomain(self.viewModel.domainVersionID);\n let matrices: RenderableMatrix[] = domain.matrices.map((m) => new RenderableMatrix(m, self.viewModel, self.config));\n\n // get flattened list of tactics\n let tactics: RenderableTactic[] = [];\n for (let matrix of matrices) {\n tactics = tactics.concat(matrix.tactics);\n }\n\n // build tactic columns\n let xRange = d3\n .scaleBand()\n .domain(tactics.map((t) => t.tactic.id))\n .range([0, width]);\n\n let yRange = d3\n .scaleLinear()\n .domain([\n d3.max(tactics, function (tactic: RenderableTactic) {\n return tactic.height;\n }),\n 0,\n ])\n .range([height - headerHeight, 0]);\n\n // tactic row background\n let subtechniqueIndent = Math.min(2 * yRange(1), 15);\n if (self.viewModel.showTacticRowBackground) {\n datatable\n .append('rect')\n .attr('class', 'tactic-header-background')\n .attr('width', width)\n .attr('height', yRange(1))\n .attr('fill', self.viewModel.tacticRowBackground)\n .attr('stroke', self.config.tableBorderColor);\n }\n\n // tactic names\n let tacticGroups = datatable\n .append('g')\n .selectAll('g')\n .data(tactics)\n .enter()\n .append('g')\n .attr('class', function (tactic: RenderableTactic) {\n return 'tactic ' + tactic.tactic.shortname;\n })\n .attr('transform', function (tactic: RenderableTactic) {\n return `translate(${xRange(tactic.tactic.id)}, 0)`;\n });\n\n // add technique groups to tactic column\n let techniqueGroups = tacticGroups\n .append('g')\n .attr('class', 'techniques')\n .selectAll('g')\n .data(function (tactic: RenderableTactic) {\n return tactic.techniques;\n })\n .enter()\n .append('g')\n .attr('class', function (technique: RenderableTechnique) {\n return 'technique ' + technique.technique.attackID;\n })\n .attr('transform', function (technique: RenderableTechnique) {\n return `translate(0, ${yRange(technique.yPosition)})`;\n });\n\n // add sub-technique groups to tactic column\n let subtechniqueGroups = tacticGroups\n .append('g')\n .attr('class', 'subtechniques')\n .selectAll('g')\n .data(function (tactic: RenderableTactic) {\n return tactic.subtechniques;\n })\n .enter()\n .append('g')\n .attr('class', function (subtechnique: RenderableTechnique) {\n return 'subtechnique ' + subtechnique.technique.attackID;\n })\n .attr('transform', function (subtechnique: RenderableTechnique) {\n return `translate(${subtechniqueIndent}, ${yRange(subtechnique.yPosition)})`;\n });\n\n // add cell style to techniques\n techniqueGroups\n .append('rect')\n .attr('class', 'cell')\n .attr('height', yRange(1))\n .attr('width', xRange.bandwidth())\n .attr('fill', function (technique: RenderableTechnique) {\n if (technique.fill !== null) {\n return technique.fill;\n } else {\n if (self.config.theme === 'light') {\n return '#ffffff';\n } else {\n return '#2e2e3f';\n }\n }\n })\n .attr('stroke', self.config.tableBorderColor);\n\n // add cell style to sub-techniques\n subtechniqueGroups\n .append('rect')\n .attr('class', 'cell')\n .attr('height', yRange(1))\n .attr('width', xRange.bandwidth() - subtechniqueIndent)\n .attr('fill', function (subtechnique: RenderableTechnique) {\n if (subtechnique.fill !== null) {\n return subtechnique.fill;\n } else {\n if (self.config.theme === 'light') {\n return '#ffffff';\n } else {\n return '#2e2e3f';\n }\n }\n })\n .attr('stroke', self.config.tableBorderColor);\n\n // add styling for sub-technique sidebar\n let sidebarWidth: number = 3;\n subtechniqueGroups\n .append('rect')\n .attr('class', 'cell')\n .attr('height', yRange(1))\n .attr('width', sidebarWidth)\n .attr('transform', `translate(${-sidebarWidth}, 0)`)\n .attr('fill', self.config.tableBorderColor)\n .attr('stroke', self.config.tableBorderColor);\n techniqueGroups\n .append('polygon')\n .attr('class', 'sidebar')\n .attr('transform', `translate(0, ${yRange(1)})`)\n .attr('points', function (technique: RenderableTechnique) {\n return [\n '0,0',\n `${subtechniqueIndent - sidebarWidth},0`,\n `${subtechniqueIndent - sidebarWidth},${Math.min(\n subtechniqueIndent - sidebarWidth,\n yRange(self.viewModel.filterTechniques(technique.technique.subtechniques, technique.tactic, technique.matrix).length)\n )}`,\n ].join(' ');\n })\n .attr('fill', self.config.tableBorderColor)\n .attr('visibility', function (technique: RenderableTechnique) {\n return technique.technique.subtechniques.length > 0 && technique.showSubtechniques ? 'visible' : 'hidden';\n });\n\n // -----------------------------------------------------------------------------\n // CELL TEXT\n // -----------------------------------------------------------------------------\n\n // track smallest optimal font size\n let minFontSize = Infinity;\n\n // set technique font size\n techniqueGroups\n .append('text')\n .text(function (technique: RenderableTechnique) {\n return technique.text;\n })\n .attr('font-size', function (technique: RenderableTechnique) {\n const fontSize = self.optimalFontSize(this, technique.text, xRange.bandwidth(), yRange(1), false);\n if (fontSize < minFontSize) minFontSize = fontSize;\n return fontSize;\n })\n .attr('fill', function (technique: RenderableTechnique) {\n if (technique.textColor !== null) {\n return technique.textColor;\n } else {\n if (self.config.theme === 'light') {\n return '#000000';\n } else {\n return '#ffffff';\n }\n }\n })\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // set sub-technique font size\n subtechniqueGroups\n .append('text')\n .text(function (subtechnique: RenderableTechnique) {\n return subtechnique.text;\n })\n .attr('font-size', function (subtechnique: RenderableTechnique) {\n const fontSize = self.optimalFontSize(this, subtechnique.text, xRange.bandwidth() - subtechniqueIndent, yRange(1), false);\n if (fontSize < minFontSize) minFontSize = fontSize;\n return fontSize;\n })\n .attr('fill', function (subtechnique: RenderableTechnique) {\n if (subtechnique.textColor !== null) {\n return subtechnique.textColor;\n } else {\n if (self.config.theme === 'light') {\n return '#000000';\n } else {\n return '#ffffff';\n }\n }\n })\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // set technique and sub-technique groups to the same font size\n this.config.maxTextSize = minFontSize;\n if (this.config.autofitText) {\n this.config.fontSize = minFontSize.toFixed(2);\n }\n if (this.config.autofitText) {\n techniqueGroups.select('text').attr('font-size', minFontSize);\n subtechniqueGroups.select('text').attr('font-size', minFontSize);\n } else {\n techniqueGroups.select('text').attr('font-size', this.config.fontSize);\n subtechniqueGroups.select('text').attr('font-size', this.config.fontSize);\n }\n\n // track the smallest optimal font size for tactics\n let minTacticFontSize = Infinity;\n\n // set tactic font size\n let tacticLabels = tacticGroups.append('g').attr('class', 'tactic-label');\n tacticLabels\n .append('text')\n .text(function (tactic: RenderableTactic) {\n return tactic.tactic.name;\n })\n .attr('font-size', function (tactic: RenderableTactic) {\n const fontSize = self.optimalFontSize(this, tactic.tactic.name, xRange.bandwidth(), yRange(1), true);\n if (fontSize < minTacticFontSize) minTacticFontSize = fontSize;\n return fontSize;\n })\n .attr('fill', function (tactic: RenderableTactic) {\n if (self.viewModel.showTacticRowBackground) return tinycolor.mostReadable(self.viewModel.tacticRowBackground, ['white', 'black']);\n else return self.config.theme === 'light' ? 'black' : 'white';\n })\n .attr('font-weight', 'bold')\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // set tactic labels to same font size\n tacticLabels.select('text').attr('font-size', minTacticFontSize);\n\n // -----------------------------------------------------------------------------\n // UNDOCKED LEGEND\n // -----------------------------------------------------------------------------\n\n if (self.showLegendContainer && !self.showLegendInHeader) {\n // calculate legend height and width\n let legendX = Math.max(self.toPx(self.config.legendX, self.config.unit), 0);\n let legendY = Math.max(self.toPx(self.config.legendY, self.config.unit), 0);\n let legendWidth = Math.max(self.toPx(self.config.legendWidth, self.config.unit), 10);\n let legendHeight = Math.max(self.toPx(self.config.legendHeight, self.config.unit), 10);\n\n let legendGroup = datatable.append('g').attr('transform', `translate(${legendX}, ${legendY})`);\n self.buildHeaderSection(this, legendGroup, legendSection, legendWidth, legendHeight);\n }\n }\n\n /**\n * Build the box for the given header section\n * @param self this DOM node\n * @param group outer group element\n * @param section header section\n * @param width width of the cell\n * @param height height of the cell\n */\n private buildHeaderSection(self: any, group: any, section: HeaderSection, width: number, height: number): void {\n let padding = 5;\n height -= 2 * padding; // adjust height for padding\n\n // header section group\n let boxGroup = group.append('g').attr('transform', `translate(0,${padding})`);\n\n // create outer box\n boxGroup\n .append('rect')\n .attr('class', 'header-box')\n .attr('width', width)\n .attr('height', height)\n .attr('stroke', self.config.theme === 'light' ? 'black' : '#4c4c68')\n .attr('fill', self.config.theme === 'light' ? 'white' : '#1a1a23')\n .attr('rx', padding); // rounded corner\n\n // box title\n let boxTitle = boxGroup\n .append('text')\n .attr('class', 'header-box-label')\n .text(section.title)\n .attr('x', 2 * padding)\n .attr('font-size', 12)\n .attr('fill', self.config.theme === 'light' ? 'black' : 'white')\n .each(function () {\n self.verticalAlignCenter(this);\n });\n\n // add cover mask so that the box lines crop around the text\n let bbox = boxTitle.node().getBBox();\n let coverPadding = 2;\n boxGroup\n .append('rect')\n .attr('class', 'label-cover')\n .attr('x', bbox.x - coverPadding)\n .attr('y', bbox.y - coverPadding)\n .attr('width', bbox.width + 2 * coverPadding)\n .attr('height', bbox.height + 2 * coverPadding)\n .attr('fill', self.config.theme === 'light' ? 'white' : '#1a1a23')\n .attr('rx', padding); // rounded corner\n boxTitle.raise(); // push title to front\n\n // add content to box\n let boxContentGroup = boxGroup\n .append('g')\n .attr('class', 'header-box-content')\n .attr('fill', self.config.theme === 'light' ? 'black' : 'white')\n .attr('transform', `translate(${padding}, 0)`);\n\n let yRange = d3\n .scaleBand()\n .padding(0.05)\n .align(0.5)\n .domain(\n section.contents.map(function (content) {\n return content.label;\n })\n )\n .range([0, height]);\n\n // add each subsection to box\n let contentWidth = width - 2 * padding;\n for (let i = 0; i < section.contents.length; i++) {\n let subsection = section.contents[i];\n let contentGroup = boxContentGroup.append('g').attr('transform', `translate(0, ${yRange(subsection.label)})`);\n\n if (typeof subsection.data == 'string') {\n // add text to contentGroup\n contentGroup\n .append('text')\n .text(subsection)\n .attr('font-size', function () {\n return self.optimalFontSize(this, subsection.data as string, contentWidth, yRange.bandwidth(), false, 12);\n })\n .each(function () {\n self.verticalAlignCenter(this);\n });\n } else {\n // call callback to add complex data to contentGroup\n subsection.data(self, contentGroup, contentWidth);\n }\n if (i != section.contents.length - 1) {\n // add dividing line\n contentGroup\n .append('line')\n .attr('x1', 0)\n .attr('x2', contentWidth)\n .attr('y1', yRange.bandwidth())\n .attr('y2', yRange.bandwidth())\n .attr('stroke', '#dddddd');\n }\n }\n }\n\n /** Callback function to build the legend section */\n private buildLegend(): Function {\n return function (self, group, width) {\n // legend colors\n let colorScale = d3\n .scaleOrdinal()\n .domain(\n self.viewModel.legendItems.map(function (item) {\n return item.label;\n })\n )\n .range(\n self.viewModel.legendItems.map(function (item) {\n return item.color;\n })\n );\n\n // legend svg group\n group\n .append('g')\n .attr('transform', 'translate(0, 5)')\n .call(\n d3\n .legendColor()\n .shapeWidth(width / self.viewModel.legendItems.length)\n .shapePadding(0)\n .shape('rect')\n .orient('horizontal')\n .scale(colorScale)\n .labelOffset(2)\n );\n };\n }\n\n /** Callback function to build the gradient section */\n private buildGradient(): Function {\n return function (self, group, width) {\n // build gradient\n let gradient = [];\n for (let i = 0; i < self.viewModel.gradient.colors.length; i++) {\n let percent = i / (self.viewModel.gradient.colors.length - 1);\n gradient.push(d3.interpolateNumber(self.viewModel.gradient.minValue, self.viewModel.gradient.maxValue)(percent));\n }\n\n // build color scale\n let colorScale = d3\n .scaleLinear()\n .domain(gradient)\n .range(self.viewModel.gradient.colors.map((color) => color.color));\n\n // gradient svg group\n let nCells = gradient.length * 2;\n group\n .append('g')\n .attr('transform', 'translate(0, 5)')\n .call(\n d3\n .legendColor()\n .shapeWidth(width / nCells)\n .shapePadding(0)\n .cells(nCells)\n .shape('rect')\n .orient('horizontal')\n .scale(colorScale)\n .labelOffset(2)\n .labelFormat(d3.format('0.02r'))\n );\n };\n }\n\n /**\n * Set width and height based on selected size and orientaiton\n * @param {any} self this DOM node\n * @param {string} size dimensions\n * @param {string} orientation portrait or landscape\n */\n private setSize(self: any, size: string, orientation: string) {\n const ratioMap = {\n letter: { portrait: [8.5, 11], landscape: [11, 8.5] },\n legal: { portrait: [8.5, 14], landscape: [14, 8.5] },\n small: { portrait: [11, 17], landscape: [17, 11] },\n medium: { portrait: [18, 24], landscape: [24, 18] },\n large: { portrait: [24, 36], landscape: [36, 24] },\n };\n\n if (size !== 'custom') {\n const [w, h] = ratioMap[size][orientation];\n self.config.width = w;\n self.config.height = h;\n }\n }\n\n /**\n * Set the vertical alignment of the given node to center\n * @param self this DOM node\n * @param fontSize the font size of the node\n */\n private verticalAlignCenter(self: any, fontSize: any = null) {\n if (self.children && self.children.length > 0) {\n for (let child of self.children) {\n this.verticalAlignCenter(child, self.getAttribute('font-size'));\n }\n } else {\n // transform by half the font size - 1/2px for proper centering\n fontSize = fontSize ? fontSize : self.getAttribute('font-size');\n if (fontSize.endsWith('px')) fontSize = Number(fontSize.split('px')[0]);\n let yPosition = self.hasAttribute('y') ? Number(self.getAttribute('y')) : 0;\n let newYPosition = yPosition + Math.floor(fontSize * 0.3);\n d3.select(self).attr('y', newYPosition);\n }\n }\n\n /**\n * Divide distance into divisions equidistant anchor points S.T they all have equal\n * padding from each other and the beginning and end of the distance\n * @param distance distance to divide\n * @param divisions number of divisions\n * @return number[] where each number corresponds to a division-center offset\n */\n private getSpacing(distance: number, divisions: number): number[] {\n let res = [];\n let spacing = (distance - 1) / (divisions * 2);\n for (let i = 1; i <= divisions * 2; i += 2) {\n res.push(1 + spacing * i);\n }\n return res;\n }\n\n /**\n * Insert line breaks\n * @param self this DOM node\n * @param words array of words to space\n * @param padding element padding\n * @param spacing distance to space text inside element\n * @param center center the text?\n * @param width width of the cell\n * @param height height of the cell\n */\n private insertLineBreaks(self: any, words: string[], padding: number, spacing: number, center: boolean, width: number, height: number) {\n let element = d3.select(self);\n\n // clear previous content\n element.text('');\n while (self.firstChild) self.removeChild(self.firstChild);\n\n let division = this.getSpacing(spacing, words.length);\n for (let i = 0; i < words.length; i++) {\n let tspan = element.append('tspan').text(words[i]);\n if (center) tspan.attr('text-anchor', 'middle');\n tspan.attr('x', center ? width / 2 : padding).attr('y', (height - spacing) / 2 + division[i]);\n }\n }\n\n /**\n * Find the font size for the given array of words to be broken onto\n * 1 line each\n * @param self this DOM node\n * @param text text to render\n * @param width width of the cell\n * @param height height of the cell\n * @param center center the text?\n * @param maxFontSize maximum font size, default 12\n * @returns the largest possible font size\n */\n private findSize(self: any, words: string[], width: number, height: number, center: boolean, maxFontSize: number = 12): number {\n let padding = 4;\n if (!this.config.autofitText) {\n padding = 1;\n }\n\n // break into multiple lines\n let distance = Math.min(height, (maxFontSize + 3) * words.length);\n this.insertLineBreaks(self, words, padding, distance, center, width, height);\n\n // find text size to fit height of cell\n let textHeight = Math.min(distance / words.length, height) * 0.8;\n\n // find text size to fit width of cell\n let longestWordLength = -Infinity;\n for (let word of words) {\n longestWordLength = Math.max(longestWordLength, word.length);\n }\n let textWidth = ((width - 2 * padding) / longestWordLength) * 1.45;\n\n return Math.min(maxFontSize, textHeight, textWidth);\n }\n\n /**\n * Calculate the optimal font size for the given text in the given\n * sizing parameters\n * @param self this DOM node\n * @param text text to render\n * @param width width of the cell\n * @param height height of the cell\n * @param center center the text?\n * @param maxFontSize maximum font size, default 12\n * @returns the size in pixels\n */\n private optimalFontSize(self: any, text: string, width: number, height: number, center: boolean, maxFontSize: number = 12): number {\n let words = text.split(' ');\n let optimalSize = -Infinity;\n let wordArrangement = [];\n\n // too many combinations causes page lagging\n let num_breaks = 1;\n if (words.length < 20) num_breaks = 3;\n else if (words.length < 50) num_breaks = 2;\n\n let breaks = Array.from(this.findBreaks(words.length, num_breaks));\n for (let b of breaks) {\n // find the best option for proposed placements generated\n // b is the binary representation of newline locations (e.g. 001011)\n // where 1 is a newline and 0 is a space\n let wordList = [];\n\n for (let i = 0; i < b.length; i++) {\n if (b[i] === '0') {\n // join with space\n if (wordList.length == 0) wordList.push(words[i]);\n else wordList[wordList.length - 1] = wordList[wordList.length - 1] + ' ' + words[i];\n } else {\n // join with newline\n wordList.push(words[i]);\n }\n }\n\n let size = this.findSize(self, wordList, width, height, center, maxFontSize);\n if (size > optimalSize) {\n optimalSize = size;\n wordArrangement = wordList;\n }\n if (size == maxFontSize) break; // max font size found, stop search\n }\n\n this.findSize(self, wordArrangement, width, height, center, maxFontSize);\n return optimalSize;\n }\n\n /**\n * Determine placement of line breaks\n * @param spaces number of spaces in the words\n * @param breaks number of breaks to insert\n * @returns the placement of line breaks represented as [01]+ where 1=break and 0=space\n */\n private findBreaks(spaces: number, breaks: number): Set {\n let placement = new Set();\n let initial_breaks = [];\n while (initial_breaks.length < spaces) initial_breaks.push(0);\n placement.add(initial_breaks.join(''));\n\n function recurse(currPlacement, depth, breaks) {\n for (let i = 0; i < currPlacement.length; i++) {\n let p = JSON.parse(JSON.stringify(currPlacement));\n p[i] = 1;\n placement.add(p.join(''));\n if (depth < breaks - 1) recurse(p, depth + 1, breaks);\n }\n }\n recurse(initial_breaks, 0, breaks);\n return placement;\n }\n\n /**\n * Convert any length in various units to pixels\n * @param quantity what length\n * @param unit which unit system (in, cm, px, em, pt)\n * @return that length in pixels\n */\n private toPx(quantity: number, unit: string): number {\n let factor: any;\n if (unit == 'in') factor = 96;\n else if (unit == 'cm') factor = 3.779375 * 10;\n else if (unit == 'px') factor = 1;\n else if (unit == 'em') factor = 16;\n else if (unit == 'pt') factor = 1.33;\n else {\n console.error('unknown unit', unit);\n factor = 0;\n }\n return quantity * factor;\n }\n\n /** Download the SVG */\n public downloadSVG(): void {\n // get SVG element\n let svgElement = document.getElementById('svg' + this.viewModel.uid);\n svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n // generate filename\n let filename = this.viewModel.name.split(' ').join('_');\n // remove all non alphanumeric characters\n filename = filename.replace(/\\W/g, '') + '.svg';\n\n // build SVG blob\n const preface = '\\r\\n';\n const svgData = new XMLSerializer().serializeToString(svgElement);\n const svgBlob = new Blob([preface, svgData], { type: 'image/svg+xml;charset=utf-8' });\n\n // download\n if (this.isIE) {\n const nav = window.navigator as any;\n nav.msSaveOrOpenBlob(svgBlob, filename);\n } else {\n const downloadLink = document.createElement('a');\n downloadLink.download = filename;\n downloadLink.href = URL.createObjectURL(svgBlob);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }\n }\n}\n\nclass HeaderSectionContent {\n label: string;\n // either string to display in box, or a callback to create complex content in the box\n // callback function option takes params node, width, height, and appends data to node\n data: string | Function;\n}\n\nclass HeaderSection {\n title: string;\n contents: HeaderSectionContent[];\n}\n","
    \n
    \n
      \n
    • \n Warning: this interface is not fully compatible with your browser. For best results please switch to Edge, Chrome, or Firefox.\n
    • \n
    • \n
      \n \n \n nightlight_round\n wb_sunny\n
      \n
    \n \n
  • \n
    \n \n \n \n \n {{ config.unit }}\n \n \n
    \n
  • \n \n
  • \n
    \n \n photo_size_select_large\n
    \n
    \n
      \n
    • \n \n orientation\n \n Portrait\n Landscape\n \n \n
    • \n
    • \n \n size\n \n Custom\n US Letter: 8.5x11\n US Legal: 8.5x14\n Small: 11x17\n Medium: 18x24\n Large 24x36\n \n \n
    • \n
    • \n \n width\n \n {{ config.unit }}\n \n
    • \n
    • \n \n height\n \n {{ config.unit }}\n \n
    • \n
    • \n \n header height\n \n {{ config.unit }}\n \n
    • \n
    \n
    \n \n\n
    \n \n format_size\n
    \n
    \n
      \n
    • \n \n font\n \n serif\n sans-serif\n monospace\n \n \n
    • \n
    • \n \n font size\n \n \n
      config.maxTextSize\">\n warning\n \n
      \n
    • \n
    • \n \n \n
    • \n
    \n
    \n \n
    \n \n view_list\n
    \n
    \n
      \n
    • \n \n \n
    • \n
    • \n \n legend X position\n \n {{ config.unit }}\n \n
    • \n
    • \n \n legend Y position\n \n {{ config.unit }}\n \n
    • \n
    • \n \n legend width\n \n {{ config.unit }}\n \n
    • \n
    • \n \n legend height\n \n {{ config.unit }}\n \n
    • \n
    \n
    \n \n
    \n \n visibility\n
    \n
    \n
      \n
    • \n \n \n
    • \n
    • \n \n \n show about\n \n
    • \n
    • \n \n \n show domain\n \n
    • \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    • \n \n sub-techniques\n \n show all\n show expanded\n show none\n \n \n
    • \n
    • \n \n \n
    • \n
    \n
    \n \n
  • \n
  • \n
    \n \n file_download\n
    \n \n
  • \n \n\n\n
    loading...
    \n\n\n \n\n","import { Component, ViewChild, TemplateRef, AfterViewInit, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\nimport { DataService } from '../services/data.service';\nimport { Tab, Domain, Version, ViewModel } from '../classes';\nimport { ConfigService } from '../services/config.service';\nimport { VersionUpgradeComponent } from '../version-upgrade/version-upgrade.component';\nimport { HelpComponent } from '../help/help.component';\nimport { SvgExportComponent } from '../svg-export/svg-export.component';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangelogComponent } from '../changelog/changelog.component';\nimport { Subscription, forkJoin } from 'rxjs';\nimport * as globals from '../utils/globals';\nimport { LayerInformationComponent } from '../layer-information/layer-information.component';\nimport { isSafari } from '../utils/utils';\n\n@Component({\n selector: 'tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n providers: [ViewModelsService],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TabsComponent implements AfterViewInit {\n @Input() userTheme: string;\n @Output() onUserThemeChange = new EventEmitter();\n @ViewChild('safariWarning') safariWarning: TemplateRef;\n @ViewChild('versionWarning') versionWarning: TemplateRef;\n\n public activeTab: Tab = null;\n public dropdownEnabled: string = '';\n public layerTabs: Tab[] = [];\n public adjustedHeaderHeight: number = 0;\n public safariDialogRef;\n public versionDialogRef;\n public versionMinorSnackbarRef;\n public showHelpDropDown: boolean = false;\n public loadURL: string = '';\n public layerLinkURLs: string[] = [];\n public bannerContent: string;\n public subscription: Subscription;\n public copiedRecently: boolean = false; // true if copyLayerLink is called, reverts to false after 2 seconds\n public loadData: any = {\n url: undefined,\n version: undefined,\n identifier: undefined,\n };\n\n // user input for layer-layer operations\n public opSettings: any = {\n domain: '',\n gradientVM: null,\n coloringVM: null,\n commentVM: null,\n linkVM: null,\n metadataVM: null,\n enabledVM: null,\n filterVM: null,\n scoreExpression: '',\n legendVM: null,\n };\n\n public get latestDomains(): Domain[] {\n return this.filterDomains(this.dataService.versions[0]);\n }\n\n public get minimumSupportedVersion(): string {\n return globals.minimumSupportedVersion;\n }\n\n public get navVersion(): string {\n return globals.navVersion;\n }\n\n constructor(\n public dialog: MatDialog,\n public viewModelsService: ViewModelsService,\n public dataService: DataService,\n public http: HttpClient,\n public configService: ConfigService,\n public snackBar: MatSnackBar\n ) {\n console.debug('initializing tabs component');\n this.newBlankTab();\n this.loadTabs(configService.defaultLayers).then(() => {\n // failed to load from URL, create a new blank layer\n if (this.layerTabs.length == 0) this.newLayer(this.dataService.domains[0].id);\n\n // if there is no active tab set, activate the first\n if (!this.activeTab) this.selectTab(this.layerTabs[0]);\n });\n this.bannerContent = this.configService.banner;\n }\n\n ngAfterViewInit(): void {\n if (isSafari('<=13')) {\n // open safari version incompatibility warning\n this.safariDialogRef = this.dialog.open(this.safariWarning, {\n width: '350px',\n disableClose: true,\n panelClass: this.userTheme,\n });\n }\n }\n\n /**\n * Adjust the header height on scroll event\n */\n public adjustHeader(newHeight) {\n this.adjustedHeaderHeight = newHeight;\n }\n\n /**\n * Open initial tabs on application load\n * @param defaultLayers any default layers defined in the config file\n */\n public async loadTabs(defaultLayers) {\n let bundleURL = this.getNamedFragmentValue('bundleURL')[0];\n let bundleVersion = this.getNamedFragmentValue('version')[0];\n let bundleDomain = this.getNamedFragmentValue('domain')[0];\n let layerURLs = this.getNamedFragmentValue('layerURL');\n\n let self = this;\n if (bundleURL?.length && bundleVersion && bundleDomain?.length) {\n // load base data from URL\n self.newLayerFromURL({\n url: bundleURL,\n version: bundleVersion,\n identifier: bundleDomain,\n });\n } else if (layerURLs?.length) {\n // load layer from URL\n let first = true;\n for (let url of layerURLs) {\n await self.loadLayerFromURL(url, first, true);\n first = false;\n }\n } else if (defaultLayers['enabled']) {\n // load default layers from config file\n let first = true;\n for (let url of defaultLayers['urls']) {\n await self.loadLayerFromURL(url, first, true);\n first = false;\n }\n }\n }\n\n /**\n * Open a new tab\n * @param {string} title title of new tab\n * @param {ViewModel} viewModel the view model for the template\n * @param {Boolean} isCloseable is the tab closeable, default false\n * @param {Boolean} replace replace the current tab with the new tab, default false\n * @param {Boolean} forceNew force open a new tab even if a tab of that name already exists, default false\n * @param {Boolean} isDataTable is the tab a data table, if so tab text should be editable, default false\n */\n public openTab(title: string, viewModel: ViewModel, isCloseable = false, replace = true, forceNew = false, isDataTable = false): void {\n if (!forceNew) {\n // if tab is already open, change to that tab\n let tab: Tab = this.layerTabs.find((t) => t.title === title);\n this.selectTab(tab);\n return;\n }\n\n // create a new tab\n let domain = viewModel ? viewModel.domainVersionID : '';\n let tab = new Tab(title, isCloseable, false, domain, isDataTable);\n tab.viewModel = viewModel;\n\n // select new tab\n if (!replace || this.layerTabs.length === 0) {\n this.layerTabs.push(tab); // don't replace\n this.selectTab(this.layerTabs[this.layerTabs.length - 1]);\n } else {\n // find active tab index\n for (let i = 0; i < this.layerTabs.length; i++) {\n if (this.layerTabs[i] == this.activeTab) {\n if (this.layerTabs[i].title == 'new tab') {\n // close current and don't let it create a replacement tab\n this.closeActiveTab(true);\n }\n this.layerTabs.splice(i, 0, tab); // replace\n this.selectTab(this.layerTabs[i]);\n return;\n }\n }\n }\n // reset dropdown\n this.dropdownEnabled = '';\n }\n\n /**\n * Open a new \"blank\" tab with new layer options\n * @param {boolean} replace replace the current tab with this blank tab, default false\n */\n public newBlankTab(replace: boolean = false): void {\n this.openTab('new tab', null, true, replace, true, false);\n }\n\n /**\n * Select the specified tab, deselect other tabs\n * @param {Tab} tab the tab to select\n */\n public selectTab(tab: Tab): void {\n this.activeTab = tab;\n\n // close search sidebar\n this.viewModelsService.viewModels.forEach((viewModel) => {\n if (viewModel.sidebarContentType === 'search') {\n viewModel.sidebarOpened = false;\n viewModel.sidebarContentType = '';\n }\n });\n }\n\n /**\n * Close the specified tab\n * @param {Tab} tab the tab to close\n * @param {boolean} allowNoTab if true, doesn't select another tab, and won't open a new tab if there are none, default false\n */\n public closeTab(tab: Tab, allowNoTab: boolean = false) {\n let action = 0; // controls post close-tab behavior\n\n // destroy tab viewmodel\n this.viewModelsService.destroyViewModel(tab.viewModel);\n\n // check if the tab we're closing is the active tab\n let i = this.layerTabs.findIndex((t) => t === tab);\n if (tab == this.activeTab) {\n if (i == 0 && this.layerTabs.length > 1) action = 1; // closing first tab, first tab is active, and more tabs exist\n else if (i > 0) action = 2; // not closing first tab, implicitly more tabs exist\n else action = 3; // closing first tab and no other tabs exist\n }\n\n // remove the tab\n this.layerTabs.splice(i, 1);\n\n // handle post close-tab behavior\n if (allowNoTab) return;\n\n switch (action) {\n case 0: // should only occur if the active tab is not closed, don't select another tab\n break;\n case 1: // closing the first tab and more tabs exist\n this.selectTab(this.layerTabs[0]); // select first tab\n break;\n case 2: // closing any tab other than the first\n this.selectTab(this.layerTabs[0]); // select first tab\n break;\n case 3: // closing first tab and no other tab exist\n this.newBlankTab(); // create a new blank tab, automatically opens this tab\n break;\n default: // should never occur\n console.error('post closetab action not specified (this should never happen)');\n }\n }\n\n /**\n * Close the currently selected tab\n * @param {boolean} allowNoTab if true, doesn't select another tab, and won't open a new tab if there are none, default false\n */\n public closeActiveTab(allowNoTab: boolean = false): void {\n if (this.activeTab) this.closeTab(this.activeTab, allowNoTab);\n }\n\n /**\n * Handle tab click event\n * @param {Tab} tab the selected tab\n */\n public handleTabClick(tab: Tab): void {\n if (this.activeTab !== tab) {\n this.activeTab = tab;\n this.dropdownEnabled = '';\n } else this.dropdownEnabled = this.dropdownEnabled !== 'description' ? 'description' : '';\n }\n\n /**\n * Filter domains on version\n * @param {Version} version the version to filter by\n * @returns list of domains in the given version\n */\n public filterDomains(version: Version): Domain[] {\n return this.dataService.domains.filter((d) => d.version == version);\n }\n\n /**\n * Check if the given feature is defined in the config file\n * @param {string} featureName the name of the feature\n * @returns true, if the feature is defined, false otherwise\n */\n public hasFeature(featureName: string): boolean {\n return this.configService.getFeature(featureName);\n }\n\n /**\n * Handle theme change\n * @param {string} theme the selected theme\n */\n public handleUserThemeChange(theme: string) {\n this.onUserThemeChange.emit(theme);\n }\n\n /**\n * Open the selected dialog\n * @param {string} dialogName {\"changelog\"|\"help\"} the dialog to open\n */\n public openDialog(dialogName: string) {\n const settings = { maxWidth: '75ch', panelClass: this.userTheme, autoFocus: false, data: {theme: this.userTheme} };\n if (dialogName == 'changelog') {\n this.dialog.open(ChangelogComponent, settings);\n } else if (dialogName == 'help') {\n this.dialog.open(HelpComponent, settings);\n } else if (dialogName == 'layers') {\n this.dialog.open(LayerInformationComponent, settings);\n }\n }\n\n /**\n * Open the SVG exporter dialog\n * @param {ViewModel} viewModel the viewModel to render\n */\n public openSVGDialog(viewModel: ViewModel) {\n this.dialog.open(SvgExportComponent, {\n data: { vm: viewModel },\n panelClass: ['dialog-custom', this.userTheme],\n autoFocus: false,\n });\n }\n\n /**\n * Given a unique root, get a layer name that does not conflict any existing layers, e.g 'new layer' -> 'new layer 1'\n * @param {string} root the root string to get the non-conflicting version of\n * @return {string} non-conflicted version\n */\n public getUniqueLayerName(root: string): string {\n let id = 0;\n\n function isInteger(str: string): boolean {\n let n = Math.floor(Number(str));\n return String(n) === str;\n }\n\n for (let viewModel of this.viewModelsService.viewModels) {\n if (!viewModel.name.startsWith(root)) continue;\n if (viewModel.name === root) {\n // case where it's \"layer\" aka \"layer0\"\n id = Math.max(id, 1);\n continue;\n }\n\n // find the lowest number higher than existing number\n let substr = viewModel.name.substring(root.length, viewModel.name.length);\n if (isInteger(substr)) {\n id = Math.max(id, Number(substr) + 1);\n }\n }\n\n // if no layers of this name exist (id == 0) just return root\n if (id != 0) root = root + id;\n return root;\n }\n\n /**\n * Create a new layer from URL\n */\n public newLayerFromURL(loadData: any, obj: any = undefined): void {\n let domainID = loadData.identifier.toLowerCase();\n let domainVersionID = this.dataService.getDomainVersionID(domainID, loadData.version);\n\n // validate input data\n let valid = this.validateInput(loadData, domainVersionID);\n if (!valid) return;\n\n // load from URL\n let url = new URL(loadData.url).toString();\n let subscription;\n subscription = this.http.get(url).subscribe({\n next: (res) => {\n // check for custom domain\n let exists = this.dataService.domains.find((d) => d.isCustom && d.id === domainVersionID);\n if (!exists) {\n // create or retrieve version\n let v: Version = this.dataService.versions.find((v) => v.number == loadData.version);\n if (!v) {\n v = new Version(`ATT&CK v${loadData.version}`, String(loadData.version));\n this.dataService.versions.push(v);\n }\n\n // create new custom domain object\n let domainObject = new Domain(domainID, domainID, v, [url]);\n domainObject.isCustom = true;\n this.dataService.domains.push(domainObject);\n }\n\n this.newLayer(domainVersionID, obj);\n },\n error: (err) => {\n console.error(err);\n alert('ERROR retrieving data from ' + url + ', check the javascript console for more information.');\n },\n complete: () => {\n if (subscription) subscription.unsubscribe();\n }, // prevent memory leaks\n });\n }\n\n /**\n * Validate user input data before loading data from collection or STIX bundle URL\n * @param {any} loadData the user input\n * @param {string} domainVersionID the domain and version\n * @returns true if user input is valid, false otherwise\n */\n public validateInput(loadData: any, domainVersionID: string): boolean {\n try {\n // validate URL\n let url = new URL(loadData.url);\n\n // validate version\n if (isNaN(loadData.version)) {\n throw Error('version is not a number');\n }\n\n // validate domainVersionID is unique\n let exists = this.dataService.domains.find((d) => d.id == domainVersionID);\n // Note: if a user inputs the same domain, version, AND url, do not check for collisions, just reload the custom dataset\n if (exists && !(exists.isCustom && exists.urls[0] == url.toString())) {\n throw Error(`the domain and version specified conflict with an existing set of ATT&CK data (${exists.name} ${exists.version.name})`);\n }\n\n return true; // passed validation\n } catch (err) {\n console.error(err);\n if (err instanceof TypeError) {\n alert('ERROR: invalid url, check the javascript console for more information.');\n } else {\n alert('ERROR ' + err.message);\n }\n return false; // failed validation\n }\n }\n\n /**\n * Create a new layer in the given domain and version\n */\n public newLayer(domainVersionID: string, obj: any = undefined): void {\n // load domain data, if not yet loaded\n let domain = this.dataService.getDomain(domainVersionID);\n if (!domain.dataLoaded) {\n this.dataService.loadDomainData(domainVersionID, true);\n }\n\n // find non conflicting name\n let name;\n if (obj && 'name' in obj && obj['name']) {\n name = obj['name'];\n } else name = this.getUniqueLayerName('layer');\n\n // create and open the view model\n let viewModel = this.viewModelsService.newViewModel(name, domainVersionID);\n if (obj) {\n // restore view model from the given string\n viewModel.deserialize(obj);\n }\n viewModel.loadVMData();\n this.openTab(name, viewModel, true, true, true, true);\n }\n\n /**\n * Get the layer score expression variable for the tab at the given index\n * @param {number} index the index of the tab\n * @return {string} the score expression character\n */\n public indexToChar(index: number): string {\n let viewModelIndex = 0;\n for (let i = 0; i < index; i++) {\n // check if tab has a view model\n if (this.layerTabs[i].viewModel) viewModelIndex++;\n }\n return String.fromCharCode(97 + viewModelIndex);\n }\n\n /**\n * Inverse of indextoChar, maps the character to the tab it corresponds to\n * @param {string} char the score expression character\n * @return {number} the index of the tab\n */\n public charToIndex(char: string): number {\n let viewModelIndex = 0;\n for (let i = 0; i < this.layerTabs.length; i++) {\n if (this.layerTabs[i].viewModel) {\n let currChar = String.fromCharCode(97 + viewModelIndex);\n viewModelIndex++;\n if (currChar == char) return i;\n }\n }\n }\n\n /**\n * Create a new layer by operation based on user input\n */\n public layerByOperation(): void {\n // build score expression map, mapping inline variables to their actual VMs\n let scoreVariables = new Map();\n let regex = /\\b[a-z]\\b/g; // \\b matches word boundary\n let matches = this.opSettings.scoreExpression.match(regex);\n\n let self = this;\n if (matches) {\n matches.forEach(function (match) {\n let index = self.charToIndex(match);\n let vm = self.layerTabs[index].viewModel;\n scoreVariables.set(match, vm);\n });\n }\n\n let layerName = this.getUniqueLayerName('layer by operation');\n try {\n // all layers must be of the same domain/version\n let vms = Array.from(scoreVariables.values());\n if (vms && !vms.every((vm) => vm.domainVersionID === vms[0].domainVersionID)) {\n throw Error('cannot apply operations to layers of different domains');\n }\n\n // execute the layer operation\n let vm = this.viewModelsService.layerOperation(scoreVariables, layerName, this.opSettings);\n\n // load domain data and open new layer operation tab\n if (!this.dataService.getDomain(this.opSettings.domain).dataLoaded) {\n this.dataService.loadDomainData(this.opSettings.domain, true).then(() => {\n vm.loadVMData();\n vm.updateGradient();\n this.openTab(layerName, vm, true, true, true, true);\n });\n } else {\n vm.loadVMData();\n vm.updateGradient();\n this.openTab(layerName, vm, true, true, true, true);\n }\n } catch (err) {\n console.error(err);\n alert('Layer Layer operation error: ' + err.message);\n }\n }\n\n /**\n * Check if there's an error in the score expression (syntax, etc)\n * @return {string} error or null if no error\n */\n public getScoreExpressionError(): string {\n let self = this;\n try {\n // build fake scope\n let regex = /\\b[a-z]\\b/g; // \\b matches word boundary\n let scope = {};\n let matches = self.opSettings.scoreExpression.match(regex);\n\n if (matches) {\n let noMatch = '';\n matches.forEach(function (match) {\n scope[match] = 0;\n\n // check if letter is too large\n if (typeof self.charToIndex(match) == 'undefined') {\n noMatch = 'Variable ' + match + ' does not match any layers';\n } else if (\n self.opSettings.domain &&\n self.layerTabs[self.charToIndex(match)].viewModel.domainVersionID !== self.opSettings.domain\n ) {\n noMatch = 'Layer ' + match + ' does not match the chosen domain';\n }\n });\n if (noMatch.length > 0) return noMatch;\n }\n return null;\n } catch (err) {\n return err.message;\n }\n }\n\n /**\n * Open prompt to upload a layer\n */\n public openUploadPrompt(): void {\n let input = document.getElementById('uploader');\n input.click();\n }\n\n /**\n * Dialog to upgrade version if layer is not the latest version\n */\n public versionUpgradeDialog(viewModel: ViewModel): Promise {\n let dataPromise: Promise = new Promise((resolve, reject) => {\n let currVersion = this.dataService.latestVersion.number;\n if (viewModel.version !== currVersion) {\n // ask to upgrade\n let dialog = this.dialog.open(VersionUpgradeComponent, {\n data: {\n layerName: viewModel.name,\n vmVersion: viewModel.version,\n currVersion: currVersion,\n },\n disableClose: true,\n width: '25%',\n panelClass: this.userTheme,\n autoFocus: false,\n });\n this.subscription = dialog.afterClosed().subscribe({\n next: (result) => {\n if (!result.upgrade && !this.dataService.isSupported(viewModel.version)) {\n reject(\n new Error(`Uploaded layer version (${String(viewModel.version)}) is not supported by Navigator v${this.navVersion}`)\n );\n }\n if (result.upgrade) {\n let newDomainVersionID = this.dataService.getDomainVersionID(viewModel.domain, currVersion);\n resolve({ oldID: viewModel.domainVersionID, newID: newDomainVersionID });\n }\n resolve(null);\n },\n complete: () => {\n if (this.subscription) this.subscription.unsubscribe();\n }, //prevent memory leaks\n });\n } else resolve(null); // layer is already current version\n });\n return dataPromise;\n }\n\n /**\n * Checks if the layer can be upgraded and initializes the layer upgrade process\n * @param {ViewModel} oldViewModel viewmodel to upgrade\n * @param {any} serialized the viewmodel's raw serialized JSON string\n * @param {boolean} replace replace if true, replace the current active tab with the layer\n * @param {boolean} defaultLayers is this a layer being loaded by default (from the config or query string)?\n * if so, will act as if the user decided not to upgrade the layer\n */\n public upgradeLayer(oldViewModel: ViewModel, serialized: any, replace: boolean, defaultLayers: boolean = false): Promise {\n return new Promise((resolve, reject) => {\n if (!defaultLayers) {\n this.versionUpgradeDialog(oldViewModel)\n .then((versions) => {\n if (versions) {\n // user upgraded to latest version\n // create and open the latest version\n let newViewModel = this.viewModelsService.newViewModel(oldViewModel.name, versions.newID);\n newViewModel.version = this.dataService.latestVersion.number; // update version to new ID\n newViewModel.deserialize(serialized, false); // restore layer data, except for technique annotations\n newViewModel.loadVMData();\n newViewModel.compareTo = oldViewModel;\n this.openTab('new layer', newViewModel, true, replace, true, true);\n newViewModel.openSidebar('layerUpgrade');\n newViewModel.selectTechniquesAcrossTactics = false;\n\n // load layer version & latest ATT&CK version\n let loads: any = {};\n let dataSubscription: Subscription;\n if (!this.dataService.getDomain(versions.oldID).dataLoaded)\n loads.old = this.dataService.loadDomainData(versions.oldID, true);\n if (!this.dataService.getDomain(versions.newID).dataLoaded)\n loads.new = this.dataService.loadDomainData(versions.newID, true);\n dataSubscription = forkJoin(loads).subscribe({\n complete: () => {\n newViewModel.versionChangelog = this.dataService.compareVersions(versions.oldID, versions.newID);\n // load vm for uploaded layer\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n newViewModel.initCopyAnnotations();\n resolve(null);\n if (dataSubscription) dataSubscription.unsubscribe();\n },\n });\n } else {\n // user did not upgrade, keep the old version\n this.openTab('new layer', oldViewModel, true, replace, true, true);\n if (!this.dataService.getDomain(oldViewModel.domainVersionID).dataLoaded) {\n this.dataService.loadDomainData(oldViewModel.domainVersionID, true).then(() => {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n });\n } else {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n }\n }\n })\n .catch((err) => {\n console.error(err);\n alert('ERROR parsing file, check the javascript console for more information.');\n resolve(null);\n });\n } else {\n // default layer, do not upgrade\n this.openTab('new layer', oldViewModel, true, replace, true, true);\n if (!this.dataService.getDomain(oldViewModel.domainVersionID).dataLoaded) {\n this.dataService.loadDomainData(oldViewModel.domainVersionID, true).then(() => {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n });\n } else {\n oldViewModel.deserialize(serialized);\n oldViewModel.loadVMData();\n resolve(null);\n }\n }\n });\n }\n\n /**\n * Load a layer from file\n */\n public loadLayerFromFile(): void {\n let input = document.getElementById('uploader');\n if (input.files.length < 1) {\n alert('You must select a file to upload!');\n return;\n }\n this.readJSONFile(input.files[0]);\n }\n\n /**\n * Reads the JSON file, adds the properties to a view model, and\n * loads the view model into a new layer\n */\n public async readJSONFile(file: File): Promise {\n return new Promise((resolve, reject) => {\n let reader = new FileReader();\n let self = this;\n\n reader.onload = async (e) => {\n let loadObjAsLayer = async function(layerObj) {\n let viewModel = self.viewModelsService.newViewModel('loading layer...', undefined);\n try {\n let layerVersionStr = viewModel.deserializeDomainVersionID(layerObj);\n await self.versionMismatchWarning(layerVersionStr);\n self.versionMismatchWarning(layerVersionStr);\n if (!self.dataService.getDomain(viewModel.domainVersionID)) {\n throw new Error(`Error: '${viewModel.domain}' (v${viewModel.version}) is an invalid domain.`);\n }\n\n let isCustom = 'customDataURL' in layerObj;\n if (!isCustom) {\n await self.upgradeLayer(viewModel, layerObj, true);\n console.debug(`loaded layer \"${viewModel.name}\"`);\n } else {\n // load as custom data\n viewModel.deserialize(layerObj);\n let url = layerObj['customDataURL'];\n self.newLayerFromURL(\n {url: url, version: viewModel.version, identifier: viewModel.domain},\n layerObj\n );\n }\n } catch (err) {\n console.error(err);\n alert(`ERROR parsing layer, check the javascript console for more information.`);\n self.viewModelsService.destroyViewModel(viewModel);\n resolve(null); // continue\n }\n }\n\n let result = String(reader.result);\n let layerFile = typeof result == 'string' ? JSON.parse(result) : result;\n if (layerFile?.length) {\n console.debug('loading file with multiple layers');\n for (let layer of layerFile) {\n await loadObjAsLayer(layer);\n }\n } else {\n await loadObjAsLayer(layerFile);\n }\n };\n reader.readAsText(file);\n });\n }\n\n /**\n * Check if uploaded layer version is out of date and display\n * a snackbar warning message (for minor mismatches) or a dialog warning\n * (for major mismatches)\n * @param {string} layerVersionStr the uploaded layer version\n */\n public async versionMismatchWarning(layerVersionStr: string): Promise {\n return new Promise((resolve, reject) => {\n let globalVersionSplit = globals.layerVersion.split('.');\n let layerVersion = layerVersionStr.split('.');\n // if minor version change, snackbar will be displayed\n if (layerVersion[0] === globalVersionSplit[0] && layerVersion[1] !== globalVersionSplit[1]) {\n let snackMessage = `Uploaded layer version (${layerVersionStr}) is out of date. Please update to v${globals.layerVersion} for optimal compatibility.`;\n this.versionMinorSnackbarRef = this.snackBar.open(snackMessage, 'CHANGELOG', {\n duration: 6500,\n });\n this.versionMinorSnackbarRef.onAction().subscribe(() => {\n this.openDialog('changelog');\n });\n resolve(true);\n }\n // if major version change, keep the dialog open until user dismisses it\n else if (layerVersion[0] !== globalVersionSplit[0]) {\n this.versionDialogRef = this.dialog.open(this.versionWarning, {\n width: '30em',\n disableClose: true,\n panelClass: this.userTheme,\n data: {\n objVersion: layerVersionStr,\n globalVersion: globals.layerVersion,\n },\n });\n this.versionDialogRef.afterClosed().subscribe((_) => {\n resolve(true);\n });\n } else {\n resolve(true);\n }\n });\n }\n\n /**\n * Load layer from URL\n * @param {string} loadURL the url to load\n * @param {boolean} replace replace the current active with the loaded layer?\n * @param {boolean} defaultLayers is this loading reflecting a set of default layers (from the config file or from the query string)?\n *\n */\n public async loadLayerFromURL(loadURL: string, replace: boolean, defaultLayers: boolean = false): Promise {\n return new Promise(async (resolve, reject) => {\n let subscription;\n let self = this;\n subscription = self.http.get(loadURL).subscribe({\n next: async (res) => {\n let loadLayerAsync = async function(layerObj) {\n let viewModel = self.viewModelsService.newViewModel('loading layer...', undefined);\n try {\n let layerVersionStr = viewModel.deserializeDomainVersionID(layerObj);\n await self.versionMismatchWarning(layerVersionStr);\n if (!self.dataService.getDomain(viewModel.domainVersionID)) {\n throw new Error(`Error: '${viewModel.domain}' (v${viewModel.version}) is an invalid domain.`);\n }\n await self.upgradeLayer(viewModel, layerObj, replace, defaultLayers);\n console.debug(`loaded layer \"${viewModel.name}\" from ${loadURL}`);\n } catch (err) {\n console.error(err);\n alert(`ERROR parsing layer from ${loadURL}, check the javascript console for more information.`);\n self.viewModelsService.destroyViewModel(viewModel);\n resolve(null); // continue\n }\n };\n\n let layerFile = typeof res == 'string' ? JSON.parse(res) : res;\n if (layerFile?.length) {\n console.debug('loading file with multiple layers');\n for (let layer of layerFile) {\n await loadLayerAsync(layer);\n }\n } else {\n await loadLayerAsync(layerFile);\n }\n resolve(null); //continue\n },\n error: (err) => {\n console.error(err);\n alert(`ERROR retrieving layer from ${loadURL}, check the javascript console for more information.`);\n resolve(null); // continue\n },\n complete: () => {\n if (subscription) subscription.unsubscribe();\n }, // prevent memory leaks\n });\n });\n }\n\n /**\n * Helper function to track which layerLinkURLs have been added or removed\n */\n public trackByFunction(index: number): any {\n return index;\n }\n\n /**\n * Add a new empty layer link to the layerLinkURLs array\n */\n public addLayerLink(): void {\n this.layerLinkURLs.push('');\n }\n\n /**\n * Remove the given layer link URL from layerLinkURLs\n * @param {number} index the index to remove\n */\n public removeLayerLink(index: number): void {\n this.layerLinkURLs.splice(index, 1);\n }\n\n /**\n * Convert layerLinkURL to a query string value for layerURL query string\n * @return URL such that when opened will create navigator instance with a query String\n * specifying layerLinkURL as the URL to fetch the default layer from\n */\n public getLayerLink(): string {\n let str = window.location.href.split('#')[0];\n let join = '#'; // hash first, then ampersand\n for (let layerLinkURL of this.layerLinkURLs) {\n str += join + 'layerURL=' + encodeURIComponent(layerLinkURL);\n join = '&';\n }\n for (let feature of this.configService.customizefeatureList) {\n if (feature.subfeatures) {\n for (let subfeature of feature.subfeatures) {\n if (!subfeature.enabled) {\n str += join + subfeature.name + '=false';\n join = '&';\n }\n }\n } else if (!feature.enabled) {\n str += join + feature.name + '=false';\n join = '&';\n }\n }\n return str;\n }\n\n /**\n * Select the layer link field text\n */\n public selectLayerLink(): void {\n let copyText = document.getElementById('layerLink');\n console.debug('copied', copyText.value);\n copyText.select();\n }\n\n /**\n * Copy the created layer link to clipboard\n */\n public copyLayerLink(): void {\n this.selectLayerLink();\n document.execCommand('Copy');\n this.copiedRecently = true;\n let self = this;\n window.setTimeout(function () {\n self.copiedRecently = false;\n }, 2000);\n }\n\n /**\n * Return true if the text is only letters a-z, false otherwise\n * @param text text to eval\n * @return true if a-z, false otherwise\n */\n public isAlphabetical(text: string): boolean {\n return /^[a-z]+$/.test(text);\n }\n\n /**\n * Get a key=value fragment value by key\n * @param {string} name name of param to get the value of\n * @param {string} url optional, if unspecified searches in current window location. Otherwise searches this string\n * @return {string} fragment param value\n */\n public getNamedFragmentValue(name: string, url?: string): any {\n if (!url) url = window.location.href;\n\n name = name.replace(/[[\\]]/g, '\\\\$&');\n let regex = new RegExp('[#&]' + name + '(?:=([^&#]*)|&|#|$)', 'g');\n\n // match as many results as exist under the name\n let results = [];\n let match = regex.exec(url);\n while (match != null) {\n results.push(decodeURIComponent(match[1].replace(/\\+/g, ' ')));\n match = regex.exec(url);\n }\n return results;\n }\n\n /** Get all view models in the same domain/version */\n public getFilteredVMs(): ViewModel[] {\n return this.viewModelsService.viewModels.filter((vm) => vm.domainVersionID == this.opSettings.domain);\n }\n}\n","
    \n \n
    \n
    \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n \n
    \n
    = 0\">\n \n \n
    \n
    \n\n \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n\n\n
    \n

    WARNING

    \n

    \n We’ve detected that you are using the Safari browser. As of Navigator version\n 4.3\n , Safari versions 13 and below are not supported due to an unfixable freeze that can occur when selecting a layer tab.\n

    \n

    \n We recommend you use Chrome or Firefox instead. You can continue to use the Navigator in Safari (versions 13 and below), but you may lose\n work if the application freezes.\n

    \n \n
    \n
    \n\n\n
    \n
    \n

    \n WARNING:\n Outdated Layer\n

    \n \n

    \n The uploaded layer version ({{ data.objVersion }}) does not match Navigator's layer version ({{ data.globalVersion }}). The layer\n configuration may not be fully restored.\n

    \n

    View the latest Layer File Format specification and the changelog for more information:

    \n

    \n Layer File Format v{{ data.globalVersion }}\n

    \n

    \n Changelog\n

    \n
    \n
    \n\n \n
    \n
    \n\n\n\n
    \n
    \n \n
    \n

    \n The ATT&CK Navigator is a web-based tool for annotating and exploring ATT&CK matrices. It can be used to visualize defensive\n coverage, red/blue team planning, the frequency of detected techniques, and more.\n

    \n
    \n \n \n
    \n \n \n \n \n Create New Layer\n Create a new empty layer\n \n\n \n
    \n \n
    \n\n \n \n \n More Options\n \n\n
    \n
    \n \n \n Select a version\n \n none\n \n {{ nVersion.name }}\n \n \n \n \n \n Select a domain\n \n none\n \n {{ nDomain.name }}\n \n \n \n \n \n *Note: ATT&CK Versions prior to v{{ minimumSupportedVersion }} are not supported by Navigator v{{ navVersion }}.\n \n
    \n
    \n OR\n
    \n
    \n \n \n Collection or STIX bundle URL\n \n \n \n \n Bundle version number\n \n ATT&CK version (e.g. 12)\n \n \n \n Bundle domain\n \n Domain identifier (e.g. defending-iaas)\n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n \n Create layer from bundle\n \n
    \n
    \n
    \n
    \n\n \n \n \n Open Existing Layer\n Load a layer from your computer or a URL\n \n\n
    \n
    \n \n \n
    \n
    \n OR\n
    \n
    \n \n Load from URL\n \n \n chevron_right\n \n \n
    \n
    \n
    \n\n \n \n \n Create Layer from Other Layers\n Select layers to inherit properties from\n \n\n
    \n \n
    \n
    \n \n domain\n \n \n {{ domain.name }} {{ domain.version.name }}\n \n \n \n
    \n
    \n
    \n Select the domain for the new layer. Only layers of the same domain and version can be merged.\n
    \n
    \n\n \n
    \n
    \n \n score expression\n \n {{ getScoreExpressionError() }}\n \n
    \n
    \n
    \n \n Use constants (numbers) and layer variables (yellow, above) to write an expression for the initial value of scores in\n the new layer. A full list of supported operations can be found\n here\n . Leave blank to initialize scores to 0. Here's a list of available layer variables:\n
      \n \n {{ indexToChar($i) }}\n ({{ tab.isDataTable ? tab.viewModel.name : tab.title }})\n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n gradient\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n \n Select which layer to import the scoring gradient from. Leave blank to initialize with the default scoring gradient.\n \n
    \n
    \n\n \n
    \n
    \n \n coloring\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import manually assigned colors from. Leave blank to initialize with no colors.\n
    \n
    \n\n \n
    \n
    \n \n comments\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import comments from. Leave blank to initialize with no comments.\n
    \n
    \n\n \n
    \n
    \n \n links\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import technique links from. Leave blank to initialize without links.\n
    \n
    \n\n \n
    \n
    \n \n metadata\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import technique metadata from. Leave blank to initialize without metadata.\n
    \n
    \n\n \n
    \n
    \n \n states\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import enabled/disabled states from. Leave blank to initialize all to enabled.\n
    \n
    \n\n \n
    \n
    \n \n filters\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import filters from. Leave blank to initialize with no filters.\n
    \n
    \n\n \n
    \n
    \n \n legend\n \n none\n {{ vm.name }}\n \n \n
    \n
    \n
    \n Select which layer to import the legend from. Leave blank to initialize with an empty legend.\n
    \n
    \n\n \n
    \n \n
    \n
    \n
    \n\n \n \n \n Create Customized Navigator\n Create a hyperlink to a customized ATT&CK Navigator\n \n\n
    \n
    \n \n

    Default Layers

    \n
    \n
    \n
      \n
    • \n \n default layer {{i+1}}\n \n \n \n
    • \n
    • \n \n
    • \n
    \n
    \n
    \n
    \n Enter the URLs of layers hosted on the web. The custom navigator will open these layers by default.\n
    \n
    \n
    \n\n
    \n \n

    Navigator Features

    \n \n
    \n
    \n \n {{ feature.name.split('_').join(' ') }}\n \n
    \n
    \n
    \n {{ feature.description }}\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n custom navigator url\n \n \n copied\n \n
    \n
    \n
    \n
    \n
    \n\n\n\n \n\n","// utilities for working with browser cookies\n\n/**\n * Set a cookie\n * @param {string} key key to set under\n * @param {string} value value to set under key\n * @param {number} expirationDays when cookie expires in days\n */\nconst setCookie = function (key: string, value: string, expirationDays: number) {\n let d = new Date();\n d.setTime(d.getTime() + expirationDays * 24 * 60 * 60 * 1000);\n let expires = 'expires=' + d.toUTCString();\n document.cookie = key + '=' + value + ';' + expires + ';path=/;SameSite=Strict';\n};\n\n/**\n * Get the value of the cookie under the given key\n * @param {string} key to retrieve from\n * @return {string} cookie value\n */\nconst getCookie = function (key: string): string {\n let name = key + '=';\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n\n for (let c of ca) {\n while (c.startsWith(' ')) {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n};\n/**\n * Does a cookie exist under the given key?\n * @param {string} key to check\n * @return {boolean} true if cookie is stored under key, false otherwise\n */\nconst hasCookie = function (key: string): boolean {\n return getCookie(key) !== '';\n};\n\n/**\n * Delete the given cookie\n * @param {string} key to delete\n */\nconst deleteCookie = function (key: string) {\n document.cookie = key + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;SameSite=Strict';\n};\n\nexport { setCookie, getCookie, hasCookie, deleteCookie };\n","'use strict';\nimport appPackageInfo from '../../../package.json';\n\nexport const navVersion: string = appPackageInfo.version;\nexport const layerVersion: string = '4.5';\nexport const minimumSupportedVersion: string = '4.0';\n","/**\n * @fileoverview\n * A TAXII 2.0 Javascript client library.\n * Converted to Typescript by Isabel Tuson 24 May 2018.\n * Added support for TAXII 2.1 by Charissa Miller 9 April 2024.\n *\n * @see https://github.com/workingDog/taxii2lib/\n * @see https://oasis-open.github.io/cti-documentation/\n *\n * @author R. Wathelet, September 2017\n * @modified by I. Tuson 24 May 2018\n * @modified by C. Miller 9 April 2024\n *\n * @version 0.3\n */\n\n/**\n * Provide asynchronous network communications to a TAXII 2.0 or 2.1 server.\n */\nexport class TaxiiConnect {\n baseURL: string;\n user: string;\n password: string;\n hash: string;\n timeout: number;\n version: string;\n getConfig: any;\n getStixConfig: any;\n mediaType: string;\n\n /**\n * provide network communication to a Taxii 2.0 or 2.1 server.\n * @param {String} url - the base url of the Taxii2 server, for example https://example.com/\n * @param {String} user - the user name required for authentication.\n * @param {String} password - the user password required for authentication.\n * @param {Integer} timeout - the connection timeout in millisec\n */\n constructor(url, user, password, timeout = 10000) {\n this.baseURL = TaxiiConnect.withoutLastSlash(url);\n this.user = user;\n this.password = password;\n this.hash = btoa(this.user + ':' + this.password);\n this.timeout = timeout;\n\n this.version = '2.1';\n this.mediaType = `application/taxii+json;version=${this.version}`;\n // backwards compatibility for STIX 2.0\n if (url.includes('cti-taxii.mitre.org')) {\n this.version = '2.0';\n this.mediaType = 'application/vnd.oasis.stix+json';\n }\n\n // default headers configurations\n this.getConfig = {\n method: 'get',\n headers: new Headers({\n Accept: this.mediaType,\n version: this.version,\n Authorization: 'Basic ' + this.hash,\n }),\n };\n\n this.getStixConfig = {\n method: 'get',\n headers: new Headers({\n Accept: this.mediaType,\n version: this.version,\n Authorization: 'Basic ' + this.hash,\n }),\n };\n }\n\n // original code from: https://github.com/jkomyno/fetch-timeout\n timeoutPromise(promise, timeout, error) {\n return new Promise((resolve, reject) => {\n setTimeout(() => reject(error), timeout);\n promise.then(resolve, reject);\n });\n }\n // original code from: https://github.com/jkomyno/fetch-timeout\n fetchTimeout(url, options, timeout, error) {\n error = error || 'Timeout error';\n options = options || {};\n timeout = timeout || 10000;\n return this.timeoutPromise(fetch(url, options), timeout, error);\n }\n\n /**\n * send an async request (GET or POST) to the taxii2 server.\n *\n * @param {String} path - the full path to connect to.\n * @param {Object} config - the request configuration, see getConfig and postConfig for examples\n * @param {Object} filter - the filter object describing the filtering requested, this is added to the path as a query string\n * @returns {Promise} the server response in json.\n */\n async asyncFetch(path, config, filter?) {\n //CHANGED\n let fullPath = !filter ? path : path + '?' + TaxiiConnect.asQueryString(filter);\n return await this.fetchTimeout(fullPath, config, this.timeout, 'connection timeout')\n .then((res: Response) => res.json())\n .catch((err) => {\n throw new Error('fetch error: ' + err);\n });\n }\n\n /**\n * send a GET async request to the taxii2 server.\n *\n * The server response is assigned to the cache attribute of the options object, and\n * the options flag attribute is set to true if a server request was performed.\n * Otherwise if the options.flag is initially true, the cached response (options.cache) is returned and\n * no server request is performed.\n * To force a server request used invalidate(), for example: server.invalidate()\n *\n * @param {String} path - the path to connect to.\n * @param {Object} options - an option object of the form: { \"cache\": {}, \"flag\": false }\n * @param {Object} filter - the filter object describing the filtering requested, this is added to the path as a query string\n * @param {Object} config - the request configuration\n * @returns {Promise} the server response object\n */\n async fetchThis(path, options, filter?, config?) {\n //CHANGED\n let conf = config === undefined ? this.getConfig : config;\n if (!options.flag) {\n options.cache = await this.asyncFetch(path, conf, filter);\n options.flag = true;\n }\n return options.cache;\n }\n\n /**\n * return the url without the last slash.\n * @param {String} url - the URL string to process.\n * @returns {String} the url without the last slash.\n */\n static withoutLastSlash(url) {\n return url.substr(-1) === '/' ? url.substr(0, url.length - 1) : url;\n }\n\n /**\n * return the url with a terminating slash.\n * @param {String} url - the URL string to process.\n * @returns {String} the url with a terminating slash.\n */\n static withLastSlash(url) {\n return url.substr(-1) === '/' ? url : url + '/';\n }\n\n /**\n * convert a filter object into a query string.\n * @param {Object} filter - the filter object to process.\n * @returns {String} the query string corresponding to the filter object.\n */\n static asQueryString(filter) {\n return Object.keys(filter)\n .map((k) => {\n let value = k === 'added_after' ? k : 'match[' + k + ']';\n return encodeURIComponent(value) + '=' + encodeURIComponent(filter[k]);\n })\n .join('&');\n }\n}\n\n/**\n * A Collection resource endpoint.\n */\nexport class Collection {\n collectionInfo: any;\n api_root_path: string;\n conn: TaxiiConnect;\n path: string;\n colOptions: any;\n objsOptions: any;\n objOptions: any;\n manOptions: any;\n\n /**\n * Collection resource endpoint.\n * @param {CollectionInfoObject} collectionInfo - the collection object of this endpoint.\n * @param {String} api_root_path - the full path to the desired api root endpoint.\n * @param {TaxiiConnection} conn - a TaxiiConnection class instance.\n */\n constructor(collectionInfo, api_root_path, conn) {\n this.collectionInfo = collectionInfo;\n\n this.api_root_path = TaxiiConnect.withLastSlash(api_root_path + 'api/v21');\n // backwards compatibility for STIX 2.0\n if (api_root_path.includes('cti-taxii.mitre.org')) {\n // cont. support for stix 2.0\n this.api_root_path = TaxiiConnect.withLastSlash(api_root_path + 'stix');\n }\n this.conn = conn;\n // construct the path\n this.path = this.api_root_path + 'collections/' + collectionInfo.id + '/';\n // cache represents the cached results and flag determines if it needs a re-fetch\n this.colOptions = { cache: {}, flag: false };\n this.objsOptions = { cache: {}, flag: false };\n this.objOptions = { cache: {}, flag: false };\n this.manOptions = { cache: {}, flag: false };\n }\n\n /**\n * check that the collection allows reading, if true then return the function passed in\n * else log an error\n * @param {Function} func - the function to return if the collection allows reading it\n * @returns {Function} the function if this collection allow reading else undefined\n */\n ifCanRead(func) {\n if (this.collectionInfo.can_read) {\n return func;\n } else {\n console.log('this collection does not allow reading: \\n' + JSON.stringify(this.collectionInfo));\n }\n }\n\n /**\n * check that the collection allows writing, if true then return the function passed in else log an error\n * @param {Function} func - the function to return if the collection allows writing it\n * @returns {Function} the function if this collection allow writing else undefined\n */\n ifCanWrite(func) {\n if (this.collectionInfo.can_write) {\n return func;\n } else {\n console.log('this collection does not allow writing: \\n' + JSON.stringify(this.collectionInfo));\n }\n }\n\n /**\n * retrieve a STIX-2 bundle from this Collection.\n *\n * @param {Object} filter - the filter object describing the filtering requested, this is added to the path as a query string.\n * For example: {\"added_after\": \"2016-02-01T00:00:01.000Z\"}\n * {\"type\": [\"incident\",\"ttp\",\"actor\"]}\n * @param {String} range - a pagination range string, for example \"0-10\"\n * @returns {Promise} the Bundle with the STIX-2 objects of this collection\n */\n async getObjects(filter, range) {\n let theConfig = this.conn.getStixConfig;\n if (range !== undefined) {\n theConfig = {\n method: 'get',\n headers: new Headers({\n Accept: this.conn.mediaType,\n version: this.conn.version,\n Authorization: 'Basic ' + this.conn.hash, //CHANGED\n Range: 'items=' + range,\n }),\n };\n }\n return this.ifCanRead(this.conn.fetchThis(this.path + 'objects/', this.objsOptions, filter, theConfig));\n }\n}\n","// utils.ts\nimport { detect } from \"detect-browser\";\n\nlet comparatorFn = {\n\t'<': function(a, b) { return a < b; },\n\t'<=': function(a, b) { return a <= b; },\n\t'>': function(a, b) { return a > b; },\n\t'>=': function(a, b) { return a >= b; }\n};\n\nexport function isBoolean(value: any): boolean {\n\treturn typeof value === 'boolean';\n}\n\nexport function isNumber(value: any): boolean {\n\treturn typeof value === 'number';\n}\n\nexport function isIE(): boolean {\n\tconst browser = detect();\n\treturn browser.name == 'ie';\n}\n\nexport function isSafari(compRange): boolean {\n\tfunction compare(version, comp) {\n\t\tlet str = (comp + '');\n\t\tlet n = +(/\\d+/.exec(str) || NaN);\n\t\tlet op = /^[<>]=?/.exec(str)[0];\n\t\treturn comparatorFn[op] ? comparatorFn[op](version, n) : (version == n || Number.isNaN(n));\n\t}\n\n\tconst browser = detect();\n\treturn browser.name == 'safari' && compare(browser.version.split('.')[0], compRange);\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ViewModelsService } from '../services/viewmodels.service';\nimport { DataService } from '../services/data.service';\nimport * as globals from '../utils/globals';\n\n@Component({\n selector: 'app-version-upgrade',\n templateUrl: './version-upgrade.component.html',\n styleUrls: ['./version-upgrade.component.scss'],\n providers: [ViewModelsService],\n})\nexport class VersionUpgradeComponent implements OnInit {\n navVersion = globals.navVersion;\n currVersion: string;\n vmVersion: string;\n layerName: string;\n\n constructor(\n public dialogRef: MatDialogRef,\n public dataService: DataService,\n private viewModelsService: ViewModelsService,\n @Inject(MAT_DIALOG_DATA) public data\n ) {}\n\n ngOnInit() {\n this.currVersion = this.data.currVersion;\n this.vmVersion = this.data.vmVersion;\n this.layerName = this.data.layerName;\n }\n\n upgradeVersion(upgrade: boolean) {\n this.dialogRef.close({ upgrade: upgrade });\n }\n}\n","
    \n

    Upgrade layer version?

    \n \n

    \n The layer \"{{ layerName }}\" uses an outdated version of ATT&CK (v{{ vmVersion }}). Do you want to open the workflow to upgrade this\n layer to ATT&CK v{{ currVersion }}?\n \n This version is not supported by Navigator v{{ navVersion }} and must be upgraded for use.\n \n

    \n
    \n \n \n \n \n
    \n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false,\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.log(err));\n","/* (ignored) */"],"names":["TabsComponent","globals","deleteCookie","getCookie","hasCookie","setCookie","AppComponent","promptNavAway","$event","configService","getFeature","returnValue","constructor","iconsService","titleService","navVersion","title","Array","prototype","includes","value","i","length","user_theme","ngOnInit","registerIcons","setTitle","themeChangeHandler","theme","_","i0","ɵɵdirectiveInject","i1","ConfigService","i2","IconsService","i3","Title","_2","selectors","viewQuery","AppComponent_Query","rf","ctx","ɵɵlistener","AppComponent_beforeunload_HostBindingHandler","ɵɵresolveWindow","ɵɵelementStart","AppComponent_Template_tabs_onUserThemeChange_3_listener","ɵɵelementEnd","AppComponent_Template_button_click_4_listener","tabsComponent","openDialog","ɵɵtext","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","BrowserModule","BrowserAnimationsModule","APP_INITIALIZER","MatInputModule","MatSelectModule","MatButtonModule","MatIconModule","MatProgressSpinnerModule","FormsModule","ReactiveFormsModule","MatTooltipModule","MatCheckboxModule","MatDialogModule","MatSnackBarModule","MatMenuModule","MatExpansionModule","MatSidenavModule","ColorPickerModule","DndModule","HttpClientModule","DataTableComponent","HelpComponent","SvgExportComponent","TechniqueCellComponent","MatrixSideComponent","MatrixFlatComponent","MatrixMiniComponent","TooltipComponent","SearchAndMultiselectComponent","ContextmenuComponent","TacticCellComponent","VersionUpgradeComponent","SidebarComponent","LayerUpgradeComponent","ChangelogCellComponent","MatCardModule","MatDividerModule","MatStepperModule","MatPaginatorModule","LayerSettingsComponent","MarkdownModule","LayerInformationComponent","ChangelogComponent","MatTabsModule","ListInputComponent","AppModule","bootstrap","_3","provide","useFactory","loadConfig","deps","multi","imports","forRoot","declarations","exports","NgClass","NgForOf","NgIf","MatFormField","MatLabel","MatHint","MatSuffix","i4","MatSelect","i5","MatOption","i6","DefaultValueAccessor","NumberValueAccessor","NgControlStatus","RequiredValidator","NgModel","i7","MatInput","i8","MatButton","MatIconButton","i9","MatIcon","i10","MatCheckbox","i11","MatTooltip","i12","MatAccordion","MatExpansionPanel","MatExpansionPanelHeader","MatExpansionPanelTitle","MatExpansionPanelDescription","i13","MatDialogClose","MatDialogTitle","MatDialogContent","i14","MatTabNav","MatTabNavPanel","MatTabLink","MAT_DIALOG_DATA","dialog","markdownService","data","MatDialog","MarkdownService","ChangelogComponent_Query","ɵɵelement","ContextMenuItem","label","url","subtechnique_url","getReplacedURL","technique","tactic","isSubtechnique","replace","parent","attackID","id","name","toLowerCase","split","shortname","Domain","tactics","matrix","matrices","concat","domain_identifier","version","urls","taxii_url","taxii_collection","dataLoaded","dataLoadedCallbacks","isCustom","techniques","platforms","subtechniques","software","campaigns","assets","dataComponents","dataSources","Map","groups","mitigations","notes","relationships","subtechniques_of","component_rel","group_uses","software_uses","campaign_uses","campaigns_attributed_to","mitigates","revoked_by","targeted_assets","number","getVersion","executeCallbacks","callback","Filter","selection","options","initPlatformOptions","domain","JSON","parse","stringify","toggleInFilter","filterName","console","error","index","indexOf","splice","push","inFilter","serialize","deserialize","rep","isStringArray","arr","item","backwards_compatibility_mappings","android","ios","windows","linux","mac","AWS","GCP","Azure","Set","forEach","platform","add","from","tinycolor","tinygradient","Gradient","colors","Gcolor","minValue","maxValue","presets","redgreen","greenred","bluered","redblue","transparentblue","transparentred","setGradientPreset","colorList","gColor","hexstring","color","toHex8String","obj","isColorStringArray","isValid","self","hex","updateGradient","presetToTinyColor","preset","colorarray","gcolor","css","map","colorobj","gradient","gradientRGB","rgb","addColor","removeColor","getHexColor","valueString","Number","toHexString","Math","round","VersionChangelog","Version","LayoutOptions","Link","Metadata","TechniqueVM","ViewModel","Tab","layoutOptions","_layout","aggregateFunctionOptions","_aggregateFunction","_showID","_showName","_showAggregateScores","_countUnscored","expandedSubtechniquesOptions","_expandedSubtechniques","layout","newLayout","warn","oldLayout","showID","showName","aggregateFunction","newAggregateFunction","newval","showAggregateScores","countUnscored","expandedSubtechniques","newExpandedSubtechniques","divider","valid","undefined","StixObject","Asset","targeted","domainVersionID","rels","dataService","getDomain","has","get","relatedTechniques","Campaign","used","DataComponent","stixSDO","dataSource","x_mitre_data_source_ref","targetID","find","t","source","external_references","Group","campaignsUsed","attributedCampaigns","campaign_id","usedSet","Matrix","Mitigation","Note","Software","Tactic","Technique","idToTacticSDO","tactic_refs","tacticID","filter","tacticSDO","mitigated","abstract","content","object_refs","x_mitre_platforms","trim","supportsAttackID","description","created","modified","revoked","deprecated","x_mitre_deprecated","x_mitre_version","external_id","alert","Error","compareVersion","that","thisVersion","thatVersion","max","x_mitre_shortname","datasources","x_mitre_data_sources","toString","kill_chain_phases","phase","phase_name","sub","subtechnique","get_technique_tactic_id","tactic_shortname","get_all_technique_tactic_ids","isCloseable","showScoreVariables","isDataTable","metadataStr","metadata","linkStr","links","technique_tactic_union_id","score","enabled","comment","showSubtechniques","isVisible","idSplit","techniqueID","annotated","resetAnnotations","aggregateScore","aggregateScoreColor","setIsVisible","visible","isNaN","m","l","String","metadataObj","linkObj","link","oldDomainVersionID","newDomainVersionID","additions","changes","minor_changes","deprecations","revocations","unchanged","reviewed","copied","linksMatch","linkMismatches","metadataMatch","metadataMismatches","sidebarOpened","_sidebarOpened","newVal","sidebarContentType","_sidebarContentType","sidebarContentTypes","uid","loaded","techniqueVMs","selectedTechniques","highlightedTactic","highlightedTechniques","highlightedTechnique","hideDisabled","showTacticRowBackground","tacticRowBackground","stickyToolbar","legendItems","backgroundPresets","legendColorPresets","initializeScoresTo","technique_show_subtechnique","sorting","selectTechniquesAcrossTactics","selectSubtechniquesWithParent","selectVisibleTechniques","debug","filters","openSidebar","contentType","loadVMData","bundleURL","onDataLoad","initTechniqueVMs","techniqueVM","setTechniqueVM","tvm","getTechniqueVM_id","some","sid","svm","getTechniqueVM","hasTechniqueVM","technique_tactic_id","hasTechniqueVM_id","overwrite","delete","set","highlightTechnique","clearHighlight","selectTechnique","selectTechniqueAcrossTactics","selectTechniqueInTactic","unselectTechnique","unselectTechniqueAcrossTactics","unselectTechniqueInTactic","walkChildren","isCurrentlyEditing","activeTvm","checkValues","selectAllTechniquesInTactic","highlightTechniques","unselectAllTechniquesInTactic","clearSelectedTechniques","clear","selectAllTechniques","invertSelection","previouslySelected","key","selectAnnotated","selected","selectUnannotated","initCopyAnnotations","copy","fromTechnique","getTechnique","compareTo","fromVM","toTechnique","copyAnnotations","versionChangelog","toVM","updateScoreColor","every","revertCopy","isTechniqueSelected","getSelectedTechniqueCount","ids","unionID","size","isTacticSelected","isSelected","editSelectedTechniques","field","editSelectedTechniqueValues","values","fieldToType","value_clone","clone","resetSelectedTechniques","getEditingCommonValue","commonValue","first_id","next","filterTactics","filterTechniques","isSubtechniqueEnabled","subtechniqueVM","sub_platforms","p","sortTechniques","sort","technique1","technique2","techniqueVM1","techniqueVM2","sortSubTechniques","score1","NEGATIVE_INFINITY","score2","calculateAggregateScore","sortingAlgorithm","localeCompare","validTechniquesCount","scores","scoreNum","aggScore","min","reduce","a","b","toFixed","isFinite","applyControls","getVisibleTechniquesList","visibleTechniques","modifiedHiddenTechniques","downloadAnnotationsOnVisibleTechniques","modifiedTechniqueVMs","versions","attack","navigator","layer","layerVersion","customDataURL","deserializeDomainVersionID","versionNumber","latestVersion","match","domain_backwards_compatibility","getDomainVersionID","restoreTechniques","legendItem","objTechnique","viewMode","addGradientColor","removeGradientColor","scoreColor","updateLegendColorPresets","addLegendItem","deleteLegendItem","clearLegend","EventEmitter","Excel","isIE","DataTableComponent_div_4_Template_div_click_0_listener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","setCurrentControlSection","ɵɵclassProp","currentControlSection","showControlsBar","DataTableComponent_div_5_Template_div_click_0_listener","_r3","DataTableComponent_div_6_Template_div_click_0_listener","_r4","ɵɵtextInterpolate","ɵɵpipeBind1","getControlDisplayName","DataTableComponent_ul_7_li_1_div_1_Template_div_click_1_listener","_r6","openSearch","ɵɵtemplate","DataTableComponent_ul_7_li_1_div_1_span_2_Template","ɵɵpureFunction1","_c1","viewModel","showControlLabels","DataTableComponent_ul_7_li_1_div_2_Template_div_click_1_listener","_r7","currentDropdown","DataTableComponent_ul_7_li_1_div_2_span_2_Template","ɵɵpropertyInterpolate1","ɵɵtwoWayListener","DataTableComponent_ul_7_li_1_div_3_div_5_div_6_Template_input_ngModelChange_1_listener","_r10","ɵɵtwoWayBindingSet","ɵɵtwoWayProperty","DataTableComponent_ul_7_li_1_div_3_div_5_Template_input_ngModelChange_3_listener","_r9","DataTableComponent_ul_7_li_1_div_3_div_5_div_6_Template","DataTableComponent_ul_7_li_1_div_3_div_5_Template_input_ngModelChange_8_listener","checkalign","dropdown_r11","DataTableComponent_ul_7_li_1_div_3_Template_div_click_1_listener","_r8","DataTableComponent_ul_7_li_1_div_3_span_2_Template","DataTableComponent_ul_7_li_1_div_3_div_5_Template","DataTableComponent_ul_7_li_1_div_8_div_10_Template_input_ngModelChange_1_listener","control_r14","_r13","$implicit","getControl","DataTableComponent_ul_7_li_1_div_8_Template_input_ngModelChange_3_listener","_r12","DataTableComponent_ul_7_li_1_div_8_div_10_Template","dropdown_r15","selectionControlsList","DataTableComponent_ul_7_li_1_div_1_Template","DataTableComponent_ul_7_li_1_div_2_Template","DataTableComponent_ul_7_li_1_div_3_Template","DataTableComponent_ul_7_li_1_Template_div_click_5_listener","_r5","handleSelectionControlsSettingsDropdown","DataTableComponent_ul_7_li_1_Template_div_keydown_5_listener","handleKeyDownSelection","DataTableComponent_ul_7_li_1_div_8_Template","isControlIncluded","DataTableComponent_ul_7_li_2_div_1_Template_div_click_1_listener","_r17","openLayerSettings","DataTableComponent_ul_7_li_2_div_1_span_2_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_6_Template_div_click_1_listener","_r20","saveLayerLocally","DataTableComponent_ul_7_li_2_div_2_div_5_div_7_Template_div_click_1_listener","_r21","saveAllLayersLocally","DataTableComponent_ul_7_li_2_div_2_div_5_div_7_span_2_Template","viewModelsService","viewModels","DataTableComponent_ul_7_li_2_div_2_div_5_div_8_Template_div_click_1_listener","_r22","saveLayerLocallyExcel","DataTableComponent_ul_7_li_2_div_2_div_5_div_9_Template_div_click_1_listener","_r23","saveAllLayersLocallyExcel","DataTableComponent_ul_7_li_2_div_2_div_5_div_10_Template_div_click_1_listener","_r24","exportRender","DataTableComponent_ul_7_li_2_div_2_div_5_div_6_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_7_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_8_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_9_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_10_Template","DataTableComponent_ul_7_li_2_div_2_div_5_Template_input_ngModelChange_15_listener","_r19","DataTableComponent_ul_7_li_2_div_2_div_5_div_18_Template","DataTableComponent_ul_7_li_2_div_2_div_5_div_19_Template","dropdown_r25","DataTableComponent_ul_7_li_2_div_2_Template_div_click_1_listener","_r18","handleExportDropdown","DataTableComponent_ul_7_li_2_div_2_span_2_Template","DataTableComponent_ul_7_li_2_div_2_div_5_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_3_div_1_Template_input_click_1_listener","filterOption_r28","_r27","filter_r29","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_3_div_1_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_3_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_div_4_Template","DataTableComponent_ul_7_li_2_div_3_div_5_div_2_Template","dropdown_r30","ɵɵpureFunction0","_c2","DataTableComponent_ul_7_li_2_div_3_Template_div_click_1_listener","_r26","DataTableComponent_ul_7_li_2_div_3_span_2_Template","DataTableComponent_ul_7_li_2_div_3_div_5_Template","ɵɵelementContainerStart","DataTableComponent_ul_7_li_2_div_4_ng_container_3_span_1_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_4_span_1_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_5_span_1_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_6_span_1_Template","DataTableComponent_ul_7_li_2_div_4_Template_div_click_1_listener","_r31","DataTableComponent_ul_7_li_2_div_4_ng_container_3_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_4_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_5_Template","DataTableComponent_ul_7_li_2_div_4_ng_container_6_Template","_c3","_c4","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_button_click_2_listener","$i_r35","_r34","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_colorPickerChange_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_cpPresetColorsChange_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_cpSliderChange_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_cpInputChange_5_listener","gradientStep_r36","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template_input_ngModelChange_5_listener","ɵɵstyleProp","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_1_listener","_r37","presetsMenuVisible","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_3_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_5_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_7_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_9_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template_div_click_11_listener","sanitize","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_6_listener","_r33","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_colorPickerChange_9_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_9_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_input_19_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_19_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_22_Template","DataTableComponent_ul_7_li_2_div_5_div_5_Template_button_click_26_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_input_32_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_input_ngModelChange_32_listener","DataTableComponent_ul_7_li_2_div_5_div_5_Template_div_click_34_listener","DataTableComponent_ul_7_li_2_div_5_div_5_div_38_Template","dropdown_r38","_c5","DataTableComponent_ul_7_li_2_div_5_Template_div_click_1_listener","_r32","DataTableComponent_ul_7_li_2_div_5_span_2_Template","DataTableComponent_ul_7_li_2_div_5_div_5_Template","DataTableComponent_ul_7_li_2_div_6_Template_div_click_1_listener","_r39","DataTableComponent_ul_7_li_2_div_6_span_2_Template","DataTableComponent_ul_7_li_2_div_6_span_3_Template","DataTableComponent_ul_7_li_2_div_6_span_4_Template","DataTableComponent_ul_7_li_2_div_6_span_5_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_3_span_1_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_4_span_1_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_5_span_1_Template","DataTableComponent_ul_7_li_2_div_7_Template_div_click_1_listener","_r40","showSubtechniquesType","showSubtechniquesTypeAlgorithm","DataTableComponent_ul_7_li_2_div_7_ng_container_3_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_4_Template","DataTableComponent_ul_7_li_2_div_7_ng_container_5_Template","_c6","_c7","DataTableComponent_ul_7_li_2_div_12_div_10_Template_input_ngModelChange_1_listener","control_r43","_r42","DataTableComponent_ul_7_li_2_div_12_Template_input_ngModelChange_3_listener","_r41","DataTableComponent_ul_7_li_2_div_12_div_10_Template","dropdown_r44","layerControlsList","DataTableComponent_ul_7_li_2_div_1_Template","DataTableComponent_ul_7_li_2_div_2_Template","DataTableComponent_ul_7_li_2_div_3_Template","DataTableComponent_ul_7_li_2_div_4_Template","DataTableComponent_ul_7_li_2_div_5_Template","DataTableComponent_ul_7_li_2_div_6_Template","DataTableComponent_ul_7_li_2_div_7_Template","DataTableComponent_ul_7_li_2_Template_div_click_9_listener","_r16","handleLayerControlsSettingsDropdown","DataTableComponent_ul_7_li_2_Template_div_keydown_9_listener","handleKeyDownLayer","DataTableComponent_ul_7_li_2_div_12_Template","DataTableComponent_ul_7_li_3_div_1_Template_div_click_1_listener","_r46","setSelectedState","DataTableComponent_ul_7_li_3_div_1_span_2_Template","DataTableComponent_ul_7_li_3_div_2_div_5_div_4_Template_div_click_0_listener","color_r50","_r49","DataTableComponent_ul_7_li_3_div_2_div_5_Template_div_click_2_listener","_r48","DataTableComponent_ul_7_li_3_div_2_div_5_div_4_Template","dropdown_r51","DataTableComponent_ul_7_li_3_div_2_Template_div_click_1_listener","_r47","continue","DataTableComponent_ul_7_li_3_div_2_span_2_Template","DataTableComponent_ul_7_li_3_div_2_div_5_Template","DataTableComponent_ul_7_li_3_div_3_div_5_Template_input_ngModelChange_5_listener","_r53","scoreEditField","DataTableComponent_ul_7_li_3_div_3_div_5_Template_input_input_5_listener","target","DataTableComponent_ul_7_li_3_div_3_div_5_mat_hint_6_Template","dropdown_r54","validateScoreInput","DataTableComponent_ul_7_li_3_div_3_Template_div_click_1_listener","_r52","DataTableComponent_ul_7_li_3_div_3_span_2_Template","DataTableComponent_ul_7_li_3_div_3_div_5_Template","DataTableComponent_ul_7_li_3_div_4_div_5_Template_textarea_ngModelChange_5_listener","_r56","commentEditField","DataTableComponent_ul_7_li_3_div_4_div_5_Template_textarea_input_5_listener","dropdown_r57","DataTableComponent_ul_7_li_3_div_4_Template_div_click_1_listener","_r55","DataTableComponent_ul_7_li_3_div_4_span_2_Template","DataTableComponent_ul_7_li_3_div_4_div_5_Template","dropdown_r59","ɵɵpureFunction2","_c8","DataTableComponent_ul_7_li_3_div_5_Template_div_click_1_listener","_r58","DataTableComponent_ul_7_li_3_div_5_span_2_Template","DataTableComponent_ul_7_li_3_div_5_div_5_Template","dropdown_r61","_c9","DataTableComponent_ul_7_li_3_div_6_Template_div_click_1_listener","_r60","DataTableComponent_ul_7_li_3_div_6_span_2_Template","DataTableComponent_ul_7_li_3_div_6_div_5_Template","DataTableComponent_ul_7_li_3_div_7_Template_div_click_1_listener","_r62","populateEditFields","DataTableComponent_ul_7_li_3_div_7_span_2_Template","DataTableComponent_ul_7_li_3_div_12_div_10_Template_input_ngModelChange_1_listener","control_r65","_r64","DataTableComponent_ul_7_li_3_div_12_Template_input_ngModelChange_3_listener","_r63","DataTableComponent_ul_7_li_3_div_12_div_10_Template","dropdown_r66","techniqueControlsList","DataTableComponent_ul_7_li_3_div_1_Template","DataTableComponent_ul_7_li_3_div_2_Template","DataTableComponent_ul_7_li_3_div_3_Template","DataTableComponent_ul_7_li_3_div_4_Template","DataTableComponent_ul_7_li_3_div_5_Template","DataTableComponent_ul_7_li_3_div_6_Template","DataTableComponent_ul_7_li_3_div_7_Template","DataTableComponent_ul_7_li_3_Template_div_click_9_listener","_r45","handleTechniqueControlsSettingsDropdown","DataTableComponent_ul_7_li_3_Template_div_keydown_9_listener","handleKeyDownTechnique","DataTableComponent_ul_7_li_3_div_12_Template","DataTableComponent_ul_7_li_4_div_1_Template_div_click_1_listener","_r67","updateStickyToolbar","DataTableComponent_ul_7_li_4_div_1_span_2_Template","DataTableComponent_ul_7_li_4_div_1_span_3_Template","DataTableComponent_ul_7_li_4_div_1_Template","DataTableComponent_ul_7_li_1_Template","DataTableComponent_ul_7_li_2_Template","DataTableComponent_ul_7_li_3_Template","DataTableComponent_ul_7_li_4_Template","getFeatureGroup","matrix_r68","DataTableComponent_ng_template_14_div_1_div_1_Template","DataTableComponent_ng_template_14_div_1_div_2_Template","DataTableComponent_ng_template_14_div_1_div_3_Template","DataTableComponent_ng_template_14_div_1_div_4_Template","DataTableComponent_ng_template_14_div_1_Template","DataTableComponent_div_18_Template_div_click_0_listener","_r69","showingLegend","DataTableComponent_div_19_div_11_Template_input_colorPickerChange_1_listener","item_r72","_r71","DataTableComponent_div_19_div_11_Template_input_ngModelChange_1_listener","DataTableComponent_div_19_div_11_Template_input_ngModelChange_3_listener","DataTableComponent_div_19_div_11_Template_button_click_4_listener","i_r73","DataTableComponent_div_19_Template_div_click_1_listener","_r70","DataTableComponent_div_19_Template_button_click_7_listener","DataTableComponent_div_19_Template_button_click_9_listener","DataTableComponent_div_19_div_11_Template","layerDomainVersion","tabs","sanitizer","dropdownChange","onScroll","customContextMenuItems","previousScrollTop","headerHeight","footerHeight","controlsHeight","isScrollUp","handleScroll","e","diff","scrollRef","nativeElement","scrollTop","calculateScrollHeight","tabOffset","emit","scrollWindowHeight","style","height","previousControlSection","showHelpDropDown","selectionChangeSubscription","onSelectionChange","subscribe","onTechniqueSelect","includedControls","featureList","j","subfeatures","display_name","ngAfterViewInit","document","querySelector","offsetHeight","addEventListener","ngOnDestroy","unsubscribe","body","removeEventListener","event","preventDefault","control","subfeature","saveBlob","blob","filename","nav","window","msSaveOrOpenBlob","svgUrl","URL","createObjectURL","downloadLink","createElement","href","download","appendChild","click","removeChild","json","Blob","type","saveLayerJson_helper","myarr","styleCells","cell","getDisplayName","alignment","vertical","horizontal","fill","pattern","fgColor","argb","substring","font","mostReadable","toHex","note","border","top","bottom","left","right","workbook","Workbook","worksheet","addWorksheet","saveLayerExcel_helper","xlsx","writeBuffer","then","columns","header","tacticCol","getColumn","techniqueCells","subtechniqueList","subtechniqueCells","techniqueRow","excelIndex","addSubtechniqueCells","mergeCells","findIndex","col","subtechniqueCol","letter","styleTechniqueCells","styleTacticHeaders","getRow","bold","column","techniqueList","seen","eachCell","row","width","handleDescriptionDropdown","toggleShowControlsBar","controlType","expandSubtechniques","showAnnotatedOnly","collapseSubtechniques","log","currentState","bypassSecurityTrustStyle","result","dropdown","anchor","parentNode","getBoundingClientRect","clientWidth","openSVGDialog","DataService","DomSanitizer","ViewModelsService","DataTableComponent_Query","DataTableComponent_div_4_Template","DataTableComponent_div_5_Template","DataTableComponent_div_6_Template","DataTableComponent_ul_7_Template","DataTableComponent_div_13_Template","DataTableComponent_ng_template_14_Template","ɵɵtemplateRefExtractor","DataTableComponent_div_18_Template","DataTableComponent_div_19_Template","getFeatureGroupCount","loadMatrices_r74","HelpComponent_ul_11_li_1_Template_a_click_1_listener","heading_r3","_r2","ctx_r3","scrollTo","ɵɵclassMapInterpolate1","level","HelpComponent_ul_11_li_1_Template","headingAnchors","renderer","setTimeout","heading","text","img","escapedText","html","listenObj","onMarkdownLoad","markdownElement","listen","element","tagName","el","linkURL","getAttribute","charAt","openLayerDialog","open","scrollIntoView","behavior","block","inline","autoFocus","panelClass","Renderer2","HelpComponent_Query","HelpComponent_Template_button_click_5_listener","HelpComponent_ul_11_Template","HelpComponent_Template_markdown_load_12_listener","layerFormatLink","decls","vars","consts","template","LayerInformationComponent_Template","LayerSettingsComponent_For_56_Template_input_ngModelChange_1_listener","option_r3","LayerSettingsComponent_For_91_Template_input_ngModelChange_1_listener","option_r5","inputs","LayerSettingsComponent_Template","LayerSettingsComponent_Template_input_ngModelChange_12_listener","LayerSettingsComponent_Template_textarea_ngModelChange_17_listener","LayerSettingsComponent_Template_input_ngModelChange_22_listener","LayerSettingsComponent_Template_input_ngModelChange_27_listener","ɵɵrepeaterCreate","LayerSettingsComponent_For_56_Template","ɵɵrepeaterTrackByIdentity","LayerSettingsComponent_Template_input_ngModelChange_64_listener","LayerSettingsComponent_Template_input_ngModelChange_68_listener","LayerSettingsComponent_Template_input_ngModelChange_79_listener","LayerSettingsComponent_Template_input_ngModelChange_83_listener","LayerSettingsComponent_For_91_Template","LayerSettingsComponent_Template_button_click_94_listener","_c0","ɵɵrepeater","Cell","isCurrentVersion","isDraggable","highlight","unhighlight","onClick","selectionChanged","getClass","theclass","section","features","ɵɵInheritDefinitionFeature","ChangelogCellComponent_Template","ChangelogCellComponent_Template_div_click_1_listener","ChangelogCellComponent_Template_div_mouseenter_1_listener","ChangelogCellComponent_Template_div_mouseleave_1_listener","getTechniqueBackground","commentColor","getTechniqueTextColor","QueryList","MatPaginator","getHeader","section_r3","desc_r5","LayerUpgradeComponent_mat_step_19_div_4_div_3_Template_input_ngModelChange_1_listener","LayerUpgradeComponent_mat_step_19_div_4_div_3_Template_input_change_1_listener","applyFilters","disableFilter","ɵɵpropertyInterpolate","getPreservedURL","attackID_r9","ɵɵsanitizeUrl","oldTechnique_r11","tactic_r10","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_1_div_1_Template","getTactics","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_span_2_Template_span_click_0_listener","_r15","tactic_r13","newTechnique_r14","ngIf","clearAnnotations","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_Template_div_dndDrop_0_listener","onDrop","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_span_2_Template","isAnnotated","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_div_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_div_5_Template","tactic_r16","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_2_Template_button_click_1_listener","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_2_Template_button_click_4_listener","isCopied","anyAnnotated","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_2_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_td_3_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_tr_2_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_1_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_2_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_3_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_4_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_div_5_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_Template_input_click_7_listener","panel_r18","ɵɵreference","reviewedChanged","tacticsChanged","isReviewed","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_mat_icon_4_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_mat_icon_5_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_ng_template_8_Template","ɵɵtextInterpolate2","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_mat_expansion_panel_2_Template","filteredIDs","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_div_1_Template","loading","LayerUpgradeComponent_mat_step_19_div_4_div_3_Template","LayerUpgradeComponent_mat_step_19_div_4_Template_input_change_4_listener","reviewAll","LayerUpgradeComponent_mat_step_19_div_4_Template_input_change_7_listener","expandAll","LayerUpgradeComponent_mat_step_19_div_4_div_10_Template","LayerUpgradeComponent_mat_step_19_div_4_ng_container_11_Template","LayerUpgradeComponent_mat_step_19_div_4_Template_mat_paginator_page_12_listener","stepper_r19","sections","selectedIndex","sectionLength","countReviewed","LayerUpgradeComponent_mat_step_19_button_9_Template_button_click_0_listener","onStepChange","LayerUpgradeComponent_mat_step_19_ng_template_1_Template","LayerUpgradeComponent_mat_step_19_div_2_Template","LayerUpgradeComponent_mat_step_19_div_4_Template","LayerUpgradeComponent_mat_step_19_div_5_Template","LayerUpgradeComponent_mat_step_19_span_8_Template","LayerUpgradeComponent_mat_step_19_button_9_Template","LayerUpgradeComponent_mat_step_19_Template_button_click_10_listener","getDescription","changelog","ɵɵtextInterpolate3","section_r21","LayerUpgradeComponent_div_28_span_3_Template","LayerUpgradeComponent_div_28_span_4_Template","LayerUpgradeComponent_div_28_span_5_Template","paginators","paginator_map","descriptions","finish","s","wait","toUpperCase","join","search","sectionIDs","paginator","toArray","pageIndex","pageSize","start","end","slice","offset","nextSection","vm","all_techniques","revokedByID","revokingObject","oldTechnique","newTechnique","sortArray","oldTactics","newTactics","panel","expanded","filtered_expand_visible_section","getElementById","panels","checked","close","filtered_review_all_section","sectionID","technique_tactic_ids","toTactic","validTechnique","fromTvm","toTvm","closeSidebar","LayerUpgradeComponent_Query","LayerUpgradeComponent_mat_step_19_Template","LayerUpgradeComponent_ng_template_21_Template","LayerUpgradeComponent_div_28_Template","LayerUpgradeComponent_Template_button_click_33_listener","ListInputComponent_div_1_div_1_Template_button_click_1_listener","i_r2","ctx_r2","removeDivider","ListInputComponent_div_1_div_2_Template_button_click_1_listener","addDivider","item_r6","config","valueField","nameField","ListInputComponent_div_1_div_3_Template_input_ngModelChange_4_listener","ListInputComponent_div_1_div_3_Template_input_input_4_listener","updateList","ListInputComponent_div_1_div_3_Template_input_ngModelChange_8_listener","ListInputComponent_div_1_div_3_Template_input_input_8_listener","ListInputComponent_div_1_div_3_a_9_Template","ListInputComponent_div_1_div_3_Template_button_click_11_listener","remove","includeLinks","ListInputComponent_div_1_div_1_Template","ListInputComponent_div_1_div_2_Template","ListInputComponent_div_1_div_3_Template","canAddDivider","fieldToClass","list","ListInputComponent_Template","ListInputComponent_div_1_Template","ListInputComponent_Template_button_click_3_listener","showContextmenu","isDarkTheme","matchMedia","matches","isHighlighted","idToMatch","isTacticMatching","elements","querySelectorAll","hasNotes","emulate_alpha","cell_color","cell_color_alpha","getAlpha","setAlpha","mix","getTechniqueUnderlineColor","metadataColor","linkColor","background","MatrixCommon","onTechniqueLeftClick","shift","ctrl","meta","onToggleSubtechniquesVisible","onTechniqueHighlight","onTechniqueUnhighlight","onTacticClick","getTacticBackground","MatrixFlatComponent_td_3_Template_a_click_1_listener","tactic_r2","MatrixFlatComponent_td_5_ng_container_2_Template","tactic_r4","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_leftclick_1_listener","technique_r6","tactic_r7","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_rightclick_1_listener","onTechniqueRightClick","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_highlight_1_listener","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template_technique_cell_unhighlight_1_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_td_2_Template_td_click_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_leftclick_0_listener","subtechnique_r11","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_rightclick_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_highlight_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template_technique_cell_unhighlight_0_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_td_2_Template","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_leftclick_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_rightclick_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_highlight_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template_technique_cell_unhighlight_4_listener","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_td_6_Template","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_technique_cell_9_Template","MatrixFlatComponent_td_8_ng_container_1_ng_container_1_Template","MatrixFlatComponent_td_8_ng_container_1_ng_template_2_Template","supertechnique_r12","MatrixFlatComponent_td_8_ng_container_1_Template","MatrixFlatComponent_Template","MatrixFlatComponent_td_3_Template","MatrixFlatComponent_td_5_Template","MatrixFlatComponent_td_8_Template","tactic_r1","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_leftclick_1_listener","subtechnique_r7","tactic_r5","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_rightclick_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_highlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template_technique_cell_unhighlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_leftclick_2_listener","technique_r4","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_rightclick_2_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_highlight_2_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template_technique_cell_unhighlight_2_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_div_4_Template","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_leftclick_1_listener","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_rightclick_1_listener","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_highlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template_technique_cell_unhighlight_1_listener","MatrixMiniComponent_td_6_ng_container_1_div_1_Template","MatrixMiniComponent_td_6_ng_container_1_ng_template_2_Template","elseblock_r9","MatrixMiniComponent_td_6_ng_container_1_Template","MatrixMiniComponent_Template","MatrixMiniComponent_td_3_Template","MatrixMiniComponent_td_6_Template","MatrixSideComponent_td_3_Template_a_click_1_listener","MatrixSideComponent_td_5_ng_container_2_Template","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_leftclick_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_rightclick_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_highlight_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template_technique_cell_unhighlight_1_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_leftclick_3_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_rightclick_3_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_highlight_3_listener","MatrixSideComponent_td_8_tr_2_ng_template_3_Template_technique_cell_unhighlight_3_listener","MatrixSideComponent_td_8_tr_2_td_5_Template_td_click_0_listener","ɵɵclassMapInterpolate2","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_leftclick_1_listener","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_rightclick_1_listener","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_highlight_1_listener","MatrixSideComponent_td_8_tr_2_div_8_Template_technique_cell_unhighlight_1_listener","MatrixSideComponent_td_8_tr_2_ng_container_2_Template","MatrixSideComponent_td_8_tr_2_ng_template_3_Template","MatrixSideComponent_td_8_tr_2_td_5_Template","MatrixSideComponent_td_8_tr_2_div_8_Template","MatrixSideComponent_td_8_tr_2_Template","MatrixSideComponent_Template","MatrixSideComponent_td_3_Template","MatrixSideComponent_td_5_Template","MatrixSideComponent_td_8_Template","ctx_r0","TacticCellComponent_Template","TacticCellComponent_ng_container_1_Template","TacticCellComponent_div_2_Template","TacticCellComponent_ng_container_3_Template","CellPopover","theElement","getPosition","boundingRect","halfWidth","innerWidth","halfHeight","innerHeight","position","ContextmenuComponent_div_9_Template_div_click_1_listener","select","ContextmenuComponent_div_9_Template_div_click_3_listener","addSelection","ContextmenuComponent_div_9_Template_div_click_5_listener","removeSelection","ContextmenuComponent_div_10_Template_div_click_1_listener","selectAll","ContextmenuComponent_div_10_Template_div_click_3_listener","deselectAll","ContextmenuComponent_div_10_Template_div_click_5_listener","ContextmenuComponent_div_11_Template_div_click_1_listener","ContextmenuComponent_div_11_Template_div_click_3_listener","ContextmenuComponent_div_12_Template_div_click_1_listener","selectAllInTactic","ContextmenuComponent_div_12_Template_div_click_3_listener","deselectAllInTactic","ContextmenuComponent_div_18_div_1_Template_div_click_0_listener","contextMenuItem_r7","openCustomContextMenuItem","ContextmenuComponent_div_18_div_1_Template","contextMenuItems","ContextmenuComponent_div_19_div_1_div_1_Template_div_click_0_listener","link_r9","openLink","ContextmenuComponent_div_19_div_1_div_1_Template","ContextmenuComponent_div_19_div_1_ng_template_2_Template","divider_r10","ContextmenuComponent_div_19_div_1_Template","placement","closeContextmenu","viewTechnique","viewTactic","pinCell","pinnedCell","customItem","ElementRef","outputs","ContextmenuComponent_Template","ContextmenuComponent_Template_div_contextmenu_0_listener","ContextmenuComponent_Template_div_click_1_listener","ContextmenuComponent_Template_div_click_7_listener","ContextmenuComponent_div_9_Template","ContextmenuComponent_div_10_Template","ContextmenuComponent_div_11_Template","ContextmenuComponent_div_12_Template","ContextmenuComponent_Template_div_click_14_listener","ContextmenuComponent_Template_div_click_16_listener","ContextmenuComponent_div_18_Template","ContextmenuComponent_div_19_Template","annotatedSubtechniques","TechniqueCellComponent_ng_container_6_sub_1_Template","TechniqueCellComponent_app_contextmenu_8_Template_app_contextmenu_close_0_listener","onMouseLeave","isCellPinned","showTooltip","leftclick","annotatedSubs","subVM","onMouseEnter","onLeftClick","shiftKey","ctrlKey","metaKey","x","pageX","y","pageY","onRightClick","TechniqueCellComponent_Template","TechniqueCellComponent_Template_div_click_1_listener","TechniqueCellComponent_Template_div_contextmenu_1_listener","TechniqueCellComponent_Template_div_mouseenter_1_listener","TechniqueCellComponent_Template_div_mouseleave_1_listener","TechniqueCellComponent_ng_container_3_Template","TechniqueCellComponent_div_4_Template","TechniqueCellComponent_ng_container_5_Template","TechniqueCellComponent_ng_container_6_Template","TechniqueCellComponent_app_tooltip_7_Template","TechniqueCellComponent_app_contextmenu_8_Template","TooltipComponent_span_6_Template_span_click_0_listener","unpin","note_r3","TooltipComponent_tr_11_td_1_Template","metadata_r4","TooltipComponent_tr_12_td_1_Template","TooltipComponent_tr_12_td_2_Template","TooltipComponent_tr_12_td_3_Template","getPlacement","TooltipComponent_Template","TooltipComponent_span_6_Template","TooltipComponent_tr_7_Template","TooltipComponent_tr_8_Template","TooltipComponent_tr_9_Template","TooltipComponent_tr_10_Template","TooltipComponent_tr_11_Template","TooltipComponent_tr_12_Template","SearchAndMultiselectComponent_div_12_Template_input_click_1_listener","field_r2","toggleFieldEnabled","result_r6","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_td_mouseenter_1_listener","mouseEnter","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_td_mouseleave_1_listener","mouseLeave","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_span_2_Template","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_button_click_8_listener","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template_button_click_11_listener","deselect","SearchAndMultiselectComponent_ng_template_22_table_7_tr_1_Template","techniqueResults","SearchAndMultiselectComponent_ng_template_22_Template_button_click_2_listener","SearchAndMultiselectComponent_ng_template_22_Template_button_click_4_listener","SearchAndMultiselectComponent_ng_template_22_table_7_Template","SearchAndMultiselectComponent_ng_template_22_ng_template_8_Template","noTechniquesResults_r7","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_td_mouseenter_1_listener","stixObject_r12","_r11","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_td_mouseleave_1_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_button_click_7_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template_button_click_10_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_tr_1_Template","stixType_r10","objects","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_Template_button_click_1_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_Template_button_click_3_listener","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_table_6_Template","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_ng_template_7_Template","noResults_r13","SearchAndMultiselectComponent_mat_expansion_panel_23_Template_mat_expansion_panel_click_0_listener","userClickedExpand","SearchAndMultiselectComponent_mat_expansion_panel_23_ng_template_7_Template","expandedPanels","i_r14","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_td_mouseenter_1_listener","label_r17","mouseEnterAll","stixDataComponents","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_td_mouseleave_1_listener","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_button_click_7_listener","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template_button_click_10_listener","SearchAndMultiselectComponent_ng_template_30_table_6_tr_1_Template","stixDataComponentLabels","SearchAndMultiselectComponent_ng_template_30_Template_button_click_1_listener","stixDataComponentsResults","SearchAndMultiselectComponent_ng_template_30_Template_button_click_3_listener","SearchAndMultiselectComponent_ng_template_30_table_6_Template","SearchAndMultiselectComponent_ng_template_30_ng_template_7_Template","noResults_r18","query","newQuery","_query","debounceFunction","getResults","previousQuery","queryLength","results","stixTypes","fields","filterAndSort","items","sortTechniquesAndSubtechniques","tA","tB","c1","c2","seenIDs","filterAndSortLabels","labels","r","fieldToggled","getTechniques","getStixData","expandPanels","isPrevExpanded","isExpanded","isAllCollapsed","isPanelExpanded","allTechniques","c","keys","thefield","isTechnique","getRelated","stixObject","isTechniqueArray","SearchAndMultiselectComponent_Template","SearchAndMultiselectComponent_Template_input_ngModelChange_6_listener","SearchAndMultiselectComponent_div_12_Template","SearchAndMultiselectComponent_Template_mat_expansion_panel_click_16_listener","SearchAndMultiselectComponent_ng_template_22_Template","SearchAndMultiselectComponent_mat_expansion_panel_23_Template","SearchAndMultiselectComponent_Template_mat_expansion_panel_click_24_listener","SearchAndMultiselectComponent_ng_template_30_Template","SearchAndMultiselectComponent_Template_button_click_33_listener","catchError","switchMap","tap","of","subtechniquesEnabled","http","entries","customizefeatureList","featureGroups","featureName","featureGroup","subFeatures","count","f","setFeature","subFeatureName","Object","fieldname","setFeature_object","featureObject","override","hasOwnProperty","isFeature","isFeatureGroup","featureGroupName","getAllFragments","location","fragments","regex","exec","validateConfig","collection_index_url","pipe","defaultLayers","banner","feature","err","message","collectionIndex","toPromise","ɵɵinject","HttpClient","factory","ɵfac","providedIn","HttpHeaders","Buffer","forkJoin","TaxiiConnect","Collection","domains","setUpDomains","parseCollectionIndex","parseBundles","stixBundles","matrixSDOs","matrixToTechniqueSDOs","bundle","techniqueSDOs","bundleMatrices","idToTechniqueSDO","sdo","parseRelationship","x_mitre_is_subtechnique","createTechniques","matrixSDO","parsePlatforms","createMatrices","techniqueSDO","sub_id","createdMatrixIDs","techniqueIDs","sro","addRelationshipToMap","relationship_type","target_ref","source_ref","startsWith","v","addVersion","identifier","domainObject","authentication","collection","collections","domainIdentifier","getDomainIdentifier","minorVersionMap","acc","major","minor","versionName","minimumSupportedVersion","domainName","existingVersion","getDomainData","refresh","conn","collectionInfo","can_read","can_write","domainData$","getObjects","bundleData","httpOptions","headers","token","serviceName","apiKey","Authorization","loadDomainData","dataPromise","Promise","resolve","reject","subscription","complete","d","isSupported","supported","compareVersions","oldDomain","newDomain","previousTechniques","latestTechniques","objectLookup","latestTechnique","prevTechnique","matIconRegistry","domSanitizer","loadIcons","Icons","iconKeys","iconUrl","addSvgIcon","bypassSecurityTrustResourceUrl","MatIconRegistry","evaluate","isBoolean","isNumber","nonce","newViewModel","getNonce","destroyViewModel","layerOperation","scoreVariables","layerName","opSettings","scoreExpression","minScore","Infinity","maxScore","newTechniqueVM","scope","misses","scoreValue","mathResult","inherit","inheritVM","fieldName","commentVM","linkVM","metadataVM","coloringVM","enabledVM","filterVM","legendVM","gradientVM","SidebarComponent_div_1_div_2_div_1_Template","SidebarComponent_div_1_div_1_Template","SidebarComponent_div_1_div_2_Template","SidebarComponent_div_1_div_3_Template","reloadToggle","ngOnChanges","ɵɵNgOnChangesFeature","SidebarComponent_Template","SidebarComponent_div_1_Template","RenderableMatrix","RenderableTactic","RenderableTechnique","heights","renderConfig","filteredTactics","filteredTechniques","yPosition","filteredSubtechniques","textColor","SvgExportComponent_div_20_Template_mat_select_ngModelChange_6_listener","orientation","SvgExportComponent_div_20_Template_mat_select_selectionChange_6_listener","buildSVG","SvgExportComponent_div_20_Template_mat_select_ngModelChange_15_listener","SvgExportComponent_div_20_Template_mat_select_selectionChange_15_listener","SvgExportComponent_div_20_Template_input_ngModelChange_32_listener","SvgExportComponent_div_20_Template_input_input_32_listener","SvgExportComponent_div_20_Template_input_ngModelChange_39_listener","SvgExportComponent_div_20_Template_input_input_39_listener","SvgExportComponent_div_20_Template_input_ngModelChange_46_listener","SvgExportComponent_div_20_Template_input_input_46_listener","unit","showHeader","SvgExportComponent_div_25_Template_mat_select_ngModelChange_6_listener","SvgExportComponent_div_25_Template_mat_select_selectionChange_6_listener","SvgExportComponent_div_25_Template_input_ngModelChange_17_listener","fontSize","SvgExportComponent_div_25_Template_input_input_17_listener","SvgExportComponent_div_25_div_18_Template","SvgExportComponent_div_25_Template_input_ngModelChange_20_listener","autofitText","SvgExportComponent_div_25_Template_input_change_20_listener","maxTextSize","SvgExportComponent_div_30_Template_input_ngModelChange_3_listener","legendDocked","SvgExportComponent_div_30_Template_input_change_3_listener","SvgExportComponent_div_30_Template_input_ngModelChange_10_listener","legendX","SvgExportComponent_div_30_Template_input_input_10_listener","SvgExportComponent_div_30_Template_input_ngModelChange_17_listener","legendY","SvgExportComponent_div_30_Template_input_input_17_listener","SvgExportComponent_div_30_Template_input_ngModelChange_24_listener","legendWidth","SvgExportComponent_div_30_Template_input_input_24_listener","SvgExportComponent_div_30_Template_input_ngModelChange_31_listener","legendHeight","SvgExportComponent_div_30_Template_input_input_31_listener","SvgExportComponent_div_35_li_26_Template_mat_select_ngModelChange_4_listener","SvgExportComponent_div_35_li_26_Template_mat_select_selectionChange_4_listener","SvgExportComponent_div_35_Template_input_ngModelChange_3_listener","SvgExportComponent_div_35_Template_input_change_3_listener","SvgExportComponent_div_35_Template_input_ngModelChange_7_listener","showAbout","SvgExportComponent_div_35_Template_input_change_7_listener","SvgExportComponent_div_35_Template_input_ngModelChange_11_listener","showDomain","SvgExportComponent_div_35_Template_input_change_11_listener","SvgExportComponent_div_35_Template_input_ngModelChange_15_listener","showFilters","SvgExportComponent_div_35_Template_input_change_15_listener","SvgExportComponent_div_35_Template_input_ngModelChange_19_listener","showLegend","SvgExportComponent_div_35_Template_input_change_19_listener","SvgExportComponent_div_35_Template_input_ngModelChange_23_listener","showGradient","SvgExportComponent_div_35_Template_input_change_23_listener","SvgExportComponent_div_35_li_26_Template","SvgExportComponent_div_35_Template_input_colorPickerChange_28_listener","tableBorderColor","SvgExportComponent_div_35_Template_input_colorPickerSelect_28_listener","hasName","hasDescription","hasDomain","hasLegendItems","hasScores","showAggregate","showDescription","showLegendContainer","showLegendInHeader","dialogRef","svgConfigDefaults","svgElementID","buildSVGDebounce","unitEnum","themeEnum","legendSectionCount","bypassDebounce","setSize","margin","toPx","svgWidth","svgHeight","svgElement","innerHTML","svg","d3","append","attr","legendSection","contents","buildGradient","buildLegend","headerSections","aboutSection","domainSection","platformSection","filterData","aggregateSection","headerGroup","headerX","scaleBand","paddingInner","range","sectionGroup","headerWidth","bandwidth","buildHeaderSection","datatable","xRange","yRange","scaleLinear","subtechniqueIndent","tacticGroups","enter","techniqueGroups","subtechniqueGroups","sidebarWidth","minFontSize","optimalFontSize","each","verticalAlignCenter","minTacticFontSize","tacticLabels","legendGroup","group","padding","boxGroup","boxTitle","bbox","node","getBBox","coverPadding","raise","boxContentGroup","align","contentWidth","subsection","contentGroup","colorScale","scaleOrdinal","call","legendColor","shapeWidth","shapePadding","shape","orient","scale","labelOffset","percent","interpolateNumber","nCells","cells","labelFormat","format","ratioMap","portrait","landscape","legal","small","medium","large","w","h","children","child","endsWith","hasAttribute","newYPosition","floor","getSpacing","distance","divisions","res","spacing","insertLineBreaks","words","center","firstChild","division","tspan","findSize","maxFontSize","textHeight","longestWordLength","word","textWidth","optimalSize","wordArrangement","num_breaks","breaks","findBreaks","wordList","spaces","initial_breaks","recurse","currPlacement","depth","quantity","factor","downloadSVG","setAttribute","preface","svgData","XMLSerializer","serializeToString","svgBlob","MatDialogRef","SvgExportComponent_Template","SvgExportComponent_li_3_Template","SvgExportComponent_Template_div_click_6_listener","SvgExportComponent_span_7_Template","SvgExportComponent_span_8_Template","SvgExportComponent_Template_div_click_11_listener","SvgExportComponent_Template_div_click_17_listener","SvgExportComponent_div_20_Template","SvgExportComponent_Template_div_click_22_listener","SvgExportComponent_div_25_Template","SvgExportComponent_Template_div_click_27_listener","SvgExportComponent_div_30_Template","SvgExportComponent_Template_div_click_32_listener","SvgExportComponent_div_35_Template","SvgExportComponent_Template_div_click_38_listener","HeaderSectionContent","HeaderSection","isSafari","bannerContent","ɵɵsanitizeHtml","TabsComponent_div_7_Template_button_click_1_listener","TabsComponent_div_7_Template_button_click_3_listener","TabsComponent_a_10_button_2_Template_button_click_0_listener","tab_r5","closeTab","indexToChar","$i_r7","TabsComponent_a_10_Template_a_click_0_listener","handleTabClick","TabsComponent_a_10_button_2_Template","TabsComponent_a_10_span_3_Template","activeTab","isAlphabetical","TabsComponent_a_11_Template_a_click_0_listener","newBlankTab","TabsComponent_div_14_Template_button_click_1_listener","TabsComponent_ng_template_15_Template_button_click_10_listener","safariDialogRef","TabsComponent_ng_template_17_Template_a_click_12_listener","TabsComponent_ng_template_17_Template_a_click_15_listener","TabsComponent_ng_template_17_Template_button_click_17_listener","versionDialogRef","data_r12","objVersion","globalVersion","TabsComponent_ng_template_19_button_34_Template_button_click_0_listener","domain_r16","newLayer","nVersion_r17","nDomain_r18","domain_r19","$i_r22","tab_r21","TabsComponent_ng_template_19_ul_140_li_1_Template","vm_r23","vm_r24","vm_r25","vm_r26","vm_r27","vm_r28","vm_r29","vm_r30","TabsComponent_ng_template_19_li_261_Template_input_ngModelChange_4_listener","i_r32","layerLinkURLs","TabsComponent_ng_template_19_li_261_Template_button_click_5_listener","removeLayerLink","TabsComponent_ng_template_19_ng_container_272_div_1_Template_mat_checkbox_ngModelChange_2_listener","feature_r34","TabsComponent_ng_template_19_ng_container_272_div_1_Template","TabsComponent_ng_template_19_Template_button_click_10_listener","TabsComponent_ng_template_19_Template_button_click_12_listener","TabsComponent_ng_template_19_Template_button_click_14_listener","select_r14","TabsComponent_ng_template_19_Template_mat_select_selectionChange_17_listener","handleUserThemeChange","TabsComponent_ng_template_19_button_34_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_44_listener","nVersion","TabsComponent_ng_template_19_mat_option_47_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_51_listener","nDomain","TabsComponent_ng_template_19_mat_option_54_Template","TabsComponent_ng_template_19_Template_input_ngModelChange_64_listener","loadData","TabsComponent_ng_template_19_Template_input_ngModelChange_68_listener","TabsComponent_ng_template_19_Template_input_ngModelChange_74_listener","TabsComponent_ng_template_19_Template_button_click_79_listener","TabsComponent_ng_template_19_Template_button_click_83_listener","newLayerFromURL","TabsComponent_ng_template_19_Template_button_click_93_listener","openUploadPrompt","TabsComponent_ng_template_19_Template_input_change_95_listener","loadLayerFromFile","TabsComponent_ng_template_19_Template_input_ngModelChange_103_listener","loadURL","TabsComponent_ng_template_19_Template_button_click_104_listener","loadLayerFromURL","TabsComponent_ng_template_19_Template_mat_expansion_panel_opened_107_listener","TabsComponent_ng_template_19_Template_mat_expansion_panel_closed_107_listener","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_119_listener","TabsComponent_ng_template_19_mat_option_120_Template","TabsComponent_ng_template_19_Template_input_ngModelChange_130_listener","TabsComponent_ng_template_19_Template_input_keyup_130_listener","TabsComponent_ng_template_19_ul_140_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_146_listener","TabsComponent_ng_template_19_mat_option_149_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_159_listener","TabsComponent_ng_template_19_mat_option_162_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_172_listener","TabsComponent_ng_template_19_mat_option_175_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_185_listener","TabsComponent_ng_template_19_mat_option_188_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_198_listener","TabsComponent_ng_template_19_mat_option_201_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_211_listener","TabsComponent_ng_template_19_mat_option_214_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_224_listener","TabsComponent_ng_template_19_mat_option_227_Template","TabsComponent_ng_template_19_Template_mat_select_ngModelChange_237_listener","TabsComponent_ng_template_19_mat_option_240_Template","TabsComponent_ng_template_19_Template_button_click_246_listener","layerByOperation","TabsComponent_ng_template_19_li_261_Template","TabsComponent_ng_template_19_Template_button_click_263_listener","addLayerLink","TabsComponent_ng_template_19_ng_container_272_Template","TabsComponent_ng_template_19_Template_input_click_277_listener","selectLayerLink","TabsComponent_ng_template_19_Template_button_click_278_listener","copyLayerLink","TabsComponent_ng_template_19_mat_hint_281_Template","latestDomains","filterDomains","getScoreExpressionError","layerTabs","getFilteredVMs","trackByFunction","getLayerLink","copiedRecently","TabsComponent_ng_template_20_Template_DataTable_dropdownChange_0_listener","_r35","dropdownEnabled","TabsComponent_ng_template_20_Template_DataTable_onScroll_0_listener","adjustHeader","snackBar","onUserThemeChange","adjustedHeaderHeight","loadTabs","selectTab","safariWarning","disableClose","userTheme","newHeight","_this","_asyncToGenerator","getNamedFragmentValue","bundleVersion","bundleDomain","layerURLs","first","openTab","forceNew","tab","closeActiveTab","allowNoTab","action","hasFeature","dialogName","settings","maxWidth","getUniqueLayerName","root","isInteger","str","n","substr","domainID","validateInput","exists","TypeError","viewModelIndex","fromCharCode","charToIndex","char","currChar","vms","noMatch","input","versionUpgradeDialog","currVersion","vmVersion","afterClosed","upgrade","oldID","newID","upgradeLayer","oldViewModel","serialized","loads","dataSubscription","old","new","catch","files","readJSONFile","file","_this2","reader","FileReader","onload","_ref","loadObjAsLayer","_ref2","layerObj","layerVersionStr","versionMismatchWarning","_x2","apply","arguments","layerFile","_x","readAsText","_this3","globalVersionSplit","snackMessage","versionMinorSnackbarRef","duration","onAction","versionWarning","_this4","_ref3","_ref4","loadLayerAsync","_ref5","_x6","_x5","_x3","_x4","layerLinkURL","encodeURIComponent","copyText","execCommand","test","RegExp","decodeURIComponent","MatSnackBar","TabsComponent_Query","TabsComponent_Template","TabsComponent_div_1_Template","TabsComponent_Template_div_click_3_listener","TabsComponent_div_7_Template","TabsComponent_a_10_Template","TabsComponent_a_11_Template","TabsComponent_div_14_Template","TabsComponent_ng_template_15_Template","TabsComponent_ng_template_17_Template","TabsComponent_ng_template_19_Template","TabsComponent_ng_template_20_Template","tabPanel_r36","expirationDays","Date","setTime","getTime","expires","toUTCString","cookie","decodedCookie","ca","appPackageInfo","user","password","timeout","baseURL","withoutLastSlash","hash","btoa","mediaType","getConfig","method","Headers","Accept","getStixConfig","timeoutPromise","promise","fetchTimeout","fetch","asyncFetch","path","fullPath","asQueryString","fetchThis","conf","flag","cache","withLastSlash","k","api_root_path","colOptions","objsOptions","objOptions","manOptions","ifCanRead","func","ifCanWrite","theConfig","Range","detect","comparatorFn","<","<=",">",">=","browser","compRange","compare","comp","NaN","op","upgradeVersion","ɵɵProvidersFeature","VersionUpgradeComponent_Template","VersionUpgradeComponent_em_6_Template","VersionUpgradeComponent_Template_button_click_8_listener","VersionUpgradeComponent_Template_button_click_10_listener","environment","production","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[85]} \ No newline at end of file