From 7a5b1df7b6d2bb441dbe7d83828632528db315f3 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Sun, 26 Apr 2026 02:40:24 +0200 Subject: [PATCH] OBS state snapshot: scene additions, dock geometry, landing tweaks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Captures the current OBS scene/window state after wiring Music Daemon, Project Loading, and Game scenes through the UI. Untitled.json now includes the new scenes and their browser sources. Landing index.html: reverted to the simpler pre-doomguard version (static signal bars, plain footer rig, no telemetry rotation, no watermark animation), keeping the SIGNAL grid centering and the small #rig opacity transition. OBS rewrites these files on shutdown — expect future commits to show similar dock-geometry diff noise. --- basic/scenes/Untitled.json | 583 +++++++++++++++++++++++++++++++++++-- landing/index.html | 77 +---- user.ini | 2 +- 3 files changed, 564 insertions(+), 98 deletions(-) diff --git a/basic/scenes/Untitled.json b/basic/scenes/Untitled.json index f438cbf..c204e51 100644 --- a/basic/scenes/Untitled.json +++ b/basic/scenes/Untitled.json @@ -12,7 +12,7 @@ "mixers": 255, "sync": 0, "flags": 0, - "volume": 0.29015332460403442, + "volume": 0.0, "balance": 0.5, "enabled": true, "muted": false, @@ -43,7 +43,7 @@ "mixers": 255, "sync": 0, "flags": 0, - "volume": 0.39100584387779236, + "volume": 0.0, "balance": 0.5, "enabled": true, "muted": false, @@ -469,7 +469,7 @@ "mixers": 255, "sync": 0, "flags": 0, - "volume": 0.55000001192092896, + "volume": 0.0, "balance": 0.5, "enabled": true, "muted": false, @@ -492,6 +492,148 @@ "monitoring_type": 0, "private_settings": {} }, + { + "prev_ver": 536936450, + "name": "Loading Project", + "uuid": "6642f830-fbae-4020-8292-a9cb7991e6fc", + "id": "browser_source", + "versioned_id": "browser_source", + "settings": { + "is_local_file": true, + "local_file": "/home/jin/.config/obs-studio/loading/index.html", + "url": "file:///home/jin/.config/obs-studio/loading/index.html", + "width": 2560, + "height": 1336, + "restart_when_active": true, + "reroute_audio": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 0.1156293973326683, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "ObsBrowser.Refresh": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 2, + "private_settings": {} + }, + { + "prev_ver": 536936450, + "name": "Audio", + "uuid": "fc5dfd34-bc55-4c92-8b5e-ef305afd1d8e", + "id": "pulse_input_capture", + "versioned_id": "pulse_input_capture", + "settings": { + "device_id": "alsa_input.usb-Creative_Technology_Ltd_Creative_Live__Cam_Sync_V3_SN0001-02.analog-stereo" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 0.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 536936450, + "name": "Audio Player", + "uuid": "b7b89406-53f4-45ba-aa1a-c20d17b1c905", + "id": "browser_source", + "versioned_id": "browser_source", + "settings": { + "is_local_file": true, + "local_file": "/home/jin/.config/obs-studio/music/index.html", + "width": 400, + "height": 100, + "reroute_audio": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 0.063062243163585663, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "ObsBrowser.Refresh": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 2, + "private_settings": {} + }, + { + "prev_ver": 536936450, + "name": "HUD", + "uuid": "f409a999-358f-488d-98db-c5c6a01d01b9", + "id": "browser_source", + "versioned_id": "browser_source", + "settings": { + "is_local_file": true, + "local_file": "/home/jin/.config/obs-studio/game/index.html", + "width": 2560, + "height": 1336, + "fps_custom": true, + "restart_when_active": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "ObsBrowser.Refresh": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, { "prev_ver": 536936450, "name": "Desktop", @@ -879,7 +1021,7 @@ "versioned_id": "scene", "settings": { "custom_size": false, - "id_counter": 21, + "id_counter": 23, "items": [ { "name": "Screen Capture (PipeWire) 2", @@ -1162,10 +1304,120 @@ "collapsed": true } }, + { + "name": "Audio Player", + "source_uuid": "b7b89406-53f4-45ba-aa1a-c20d17b1c905", + "visible": true, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 2560.0, + "y": 1336.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 22, + "group_item_backup": false, + "pos": { + "x": -315.0, + "y": 87.0 + }, + "pos_rel": { + "x": -2.3877246379852295, + "y": -0.86976051330566406 + }, + "scale": { + "x": 0.5975000262260437, + "y": 0.60000002384185791 + }, + "scale_rel": { + "x": 0.5975000262260437, + "y": 0.60000002384185791 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 300 + }, + "hide_transition": { + "duration": 300 + }, + "private_settings": {} + }, + { + "name": "HUD", + "source_uuid": "f409a999-358f-488d-98db-c5c6a01d01b9", + "visible": true, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 2560.0, + "y": 1336.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 23, + "group_item_backup": false, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "pos_rel": { + "x": -1.9161676168441772, + "y": -1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "scale_rel": { + "x": 1.0, + "y": 1.0 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 300 + }, + "hide_transition": { + "duration": 300 + }, + "private_settings": {} + }, { "name": "Camera", "source_uuid": "a8b362a1-91a6-491b-8751-26e2dad55ccd", - "visible": false, + "visible": true, "locked": false, "rot": 0.0, "scale_ref": { @@ -1183,20 +1435,20 @@ "id": 16, "group_item_backup": false, "pos": { - "x": 2206.0, - "y": 1083.0 + "x": 2016.0, + "y": 106.0 }, "pos_rel": { - "x": 1.3862274885177612, - "y": 0.62125754356384277 + "x": 1.1017963886260986, + "y": -0.84131735563278198 }, "scale": { - "x": 0.17343750596046448, - "y": 0.1736111044883728 + "x": 0.24062499403953552, + "y": 0.24074074625968933 }, "scale_rel": { - "x": 0.14020396769046783, - "y": 0.14034430682659149 + "x": 0.19451721012592316, + "y": 0.19461077451705933 }, "bounds": { "x": 0.0, @@ -1242,7 +1494,11 @@ "libobs.show_scene_item.12": [], "libobs.hide_scene_item.12": [], "libobs.show_scene_item.16": [], - "libobs.hide_scene_item.16": [] + "libobs.hide_scene_item.16": [], + "libobs.show_scene_item.22": [], + "libobs.hide_scene_item.22": [], + "libobs.show_scene_item.23": [], + "libobs.hide_scene_item.23": [] }, "deinterlace_mode": 0, "deinterlace_field_order": 0, @@ -1259,7 +1515,7 @@ "id": "scene", "versioned_id": "scene", "settings": { - "id_counter": 3, + "id_counter": 4, "custom_size": false, "items": [ { @@ -1283,11 +1539,11 @@ "id": 1, "group_item_backup": false, "pos": { - "x": 0.0, + "x": 4.0, "y": 0.0 }, "pos_rel": { - "x": -1.9161676168441772, + "x": -1.910179615020752, "y": -1.0 }, "scale": { @@ -1313,6 +1569,12 @@ "duration": 300 }, "hide_transition": { + "id": "wipe_transition", + "versioned_id": "wipe_transition", + "name": "Landing — Stand By (Browser) Hide Transition", + "transition": { + "luma_image": "cloud.png" + }, "duration": 300 }, "private_settings": {} @@ -1371,6 +1633,61 @@ "duration": 300 }, "private_settings": {} + }, + { + "name": "Doomguard Logo", + "source_uuid": "ee77caf1-a490-45fa-80d9-4072f7e63d9a", + "visible": false, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 2560.0, + "y": 1336.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 4, + "group_item_backup": false, + "pos": { + "x": 1213.0, + "y": 119.0 + }, + "pos_rel": { + "x": -0.1002994030714035, + "y": -0.82185626029968262 + }, + "scale": { + "x": 0.42642644047737122, + "y": 0.42642644047737122 + }, + "scale_rel": { + "x": 0.42642644047737122, + "y": 0.42642644047737122 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 300 + }, + "hide_transition": { + "duration": 300 + }, + "private_settings": {} } ] }, @@ -1390,7 +1707,9 @@ "libobs.show_scene_item.1": [], "libobs.hide_scene_item.1": [], "libobs.show_scene_item.2": [], - "libobs.hide_scene_item.2": [] + "libobs.hide_scene_item.2": [], + "libobs.show_scene_item.4": [], + "libobs.hide_scene_item.4": [] }, "deinterlace_mode": 0, "deinterlace_field_order": 0, @@ -1399,6 +1718,209 @@ "private_settings": { "transition": "" } + }, + { + "prev_ver": 536936450, + "name": "Project Loading", + "uuid": "6b8e29a8-a66b-44f2-856e-bd41fb18720d", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 3, + "custom_size": false, + "items": [ + { + "name": "Loading Project", + "source_uuid": "6642f830-fbae-4020-8292-a9cb7991e6fc", + "visible": true, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 2560.0, + "y": 1336.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "pos_rel": { + "x": -1.9161676168441772, + "y": -1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "scale_rel": { + "x": 1.0, + "y": 1.0 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 300 + }, + "hide_transition": { + "duration": 300 + }, + "private_settings": {} + }, + { + "name": "Audio", + "source_uuid": "fc5dfd34-bc55-4c92-8b5e-ef305afd1d8e", + "visible": true, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 2560.0, + "y": 1336.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 2, + "group_item_backup": false, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "pos_rel": { + "x": -1.9161676168441772, + "y": -1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "scale_rel": { + "x": 1.0, + "y": 1.0 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 300 + }, + "hide_transition": { + "duration": 300 + }, + "private_settings": {} + }, + { + "name": "Audio Player", + "source_uuid": "b7b89406-53f4-45ba-aa1a-c20d17b1c905", + "visible": true, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 2560.0, + "y": 1336.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 3, + "group_item_backup": false, + "pos": { + "x": 51.0, + "y": 99.0 + }, + "pos_rel": { + "x": -1.839820384979248, + "y": -0.85179638862609863 + }, + "scale": { + "x": 0.05000000074505806, + "y": -0.05000000074505806 + }, + "scale_rel": { + "x": 0.05000000074505806, + "y": -0.05000000074505806 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 300 + }, + "hide_transition": { + "duration": 300 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [], + "libobs.show_scene_item.2": [], + "libobs.hide_scene_item.2": [], + "libobs.show_scene_item.3": [], + "libobs.hide_scene_item.3": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "canvas_uuid": "6c69626f-6273-4c00-9d88-c5136d61696e", + "private_settings": {} } ], "groups": [ @@ -1494,8 +2016,8 @@ "y": 1209.5849609375 }, "pos_rel": { - "x": -1.8106008768081665, - "y": 0.81075584888458252 + "x": -1.8106009960174561, + "y": 0.81075596809387207 }, "scale": { "x": 1.2370370626449585, @@ -1615,6 +2137,9 @@ { "name": "Landing" }, + { + "name": "Project Loading" + }, { "name": "Game" }, @@ -1622,12 +2147,20 @@ "name": "Desktop" } ], - "current_scene": "Desktop", - "current_program_scene": "Desktop", + "current_scene": "Landing", + "current_program_scene": "Landing", "canvases": [], - "current_transition": "Fade", + "current_transition": "Luma Wipe", "transition_duration": 1000, - "transitions": [], + "transitions": [ + { + "name": "Luma Wipe", + "id": "wipe_transition", + "settings": { + "luma_image": "checkerboard-small.png" + } + } + ], "quick_transitions": [ { "name": "Cut", @@ -1647,7 +2180,7 @@ "saved_projectors": [], "preview_locked": false, "scaling_enabled": false, - "scaling_level": -6, + "scaling_level": -13, "scaling_off_x": 0.0, "scaling_off_y": 0.0, "modules": { diff --git a/landing/index.html b/landing/index.html index 7ca3182..5e15ebb 100644 --- a/landing/index.html +++ b/landing/index.html @@ -75,12 +75,10 @@ body { } .mark { width: 360px; height: 360px; + /* Static glow only — animated drop-shadow is CPU-expensive in CEF. + The static breathing feel comes from the rec-blink LED + cd-pulse + elsewhere; the mark just has a steady halo. */ filter: drop-shadow(0 0 22px rgba(58, 209, 255, 0.35)); - animation: mark-breathe 6s ease-in-out infinite; -} -@keyframes mark-breathe { - 0%, 100% { filter: drop-shadow(0 0 18px rgba(58, 209, 255, 0.30)); } - 50% { filter: drop-shadow(0 0 30px rgba(58, 209, 255, 0.50)); } } .bars { display: flex; @@ -134,67 +132,6 @@ body { .foot .warn { color: var(--warn); } #rig { transition: opacity 0.4s ease; } -/* ───────── Doomguard watermark ───────── - Sits at z-index: -1 — below all flow content (HUD, standby, etc.) - and below the static canvas, so the white noise paints on top of it. - Mostly buried under noise (~4% opacity, blurred); periodic "tune-in" - spikes raise opacity + sharpen blur briefly, like a CRT catching signal. */ -.watermark { - position: absolute; - top: 50%; - left: 50%; - width: 38vw; - height: auto; - transform: translate(-50%, -50%); - pointer-events: none; - user-select: none; - z-index: -1; - opacity: 0; - filter: blur(2px) brightness(0.9); - animation: logo-tune-in 27s linear infinite; -} - -/* Logo is invisible by default. Three irregular "almost-catches-signal" - events per loop, each preceded by stutter (rapid opacity flips) and - tiny vertical jitter — like a CRT trying to sync. Max opacity ~13%, - always blurred — never crisp, always reads as buried in the noise. */ -@keyframes logo-tune-in { - /* — Long quiet — */ - 0%, 22% { opacity: 0; filter: blur(2px) brightness(0.9); transform: translate(-50%, -50%); } - - /* Event 1: stutter in, brief soft hold (~9% peak), stutter out */ - 22.3% { opacity: 0.06; filter: blur(1.4px) brightness(1.0); transform: translate(-50%, -50.3%); } - 22.6% { opacity: 0; filter: blur(2px) brightness(0.9); transform: translate(-50%, -49.8%); } - 23% { opacity: 0.09; filter: blur(0.8px) brightness(1.1); transform: translate(-50%, -50%); } - 24.6% { opacity: 0.09; filter: blur(0.8px) brightness(1.1); transform: translate(-50%, -50%); } - 25% { opacity: 0; filter: blur(2px) brightness(0.9); } - 25.3% { opacity: 0.04; } - 25.6% { opacity: 0; } - - /* — Long quiet — */ - 44% { opacity: 0; transform: translate(-50%, -50%); } - - /* Event 2: split-second flutter, signal almost catches but loses it (~5% peak) */ - 44.2% { opacity: 0.05; filter: blur(1.4px) brightness(1.0); transform: translate(-50.3%, -50%); } - 44.5% { opacity: 0; transform: translate(-50%, -50%); } - - /* — Quiet — */ - 68% { opacity: 0; transform: translate(-50%, -50%); filter: blur(2px) brightness(0.9); } - - /* Event 3: stuttered emergence to longer hold (~13% peak), stuttered exit */ - 68.3% { opacity: 0.05; filter: blur(2px) brightness(0.95); transform: translate(-49.7%, -50%); } - 68.6% { opacity: 0; } - 69% { opacity: 0.08; filter: blur(1px) brightness(1.05); transform: translate(-50%, -50.2%); } - 70.5% { opacity: 0.13; filter: blur(0.4px) brightness(1.15); transform: translate(-50%, -50%); } - 72% { opacity: 0.10; filter: blur(0.6px) brightness(1.1); } - 73% { opacity: 0; filter: blur(2px) brightness(0.9); } - 73.3% { opacity: 0.05; } - 73.6% { opacity: 0; } - - /* — Quiet to end — */ - 100% { opacity: 0; transform: translate(-50%, -50%); } -} - /* ───────── Overlays ───────── */ #static { position: absolute; inset: 0; @@ -248,11 +185,6 @@ body { - -
TRANSMISSION @@ -343,7 +275,8 @@ body { ctx.putImageData(img, 0, 0); }; drawNoise(); - setInterval(drawNoise, 1000 / 12); + // 8 fps — visually almost identical to 12 fps but ~33% less paint work. + setInterval(drawNoise, 1000 / 8); // ───────── Telemetry: rotating real-data subtitle ───────── // All lines derive from telemetry.js (window.__TEL), generated by telemetry.sh. diff --git a/user.ini b/user.ini index 7d59d51..3d413e2 100644 --- a/user.ini +++ b/user.ini @@ -26,7 +26,7 @@ cy=580 [BasicWindow] geometry=AdnQywADAAAAAAAAAAAAAAAACf8AAAVDAAACgQAAABkAAAn+AAAEHAAAAAECAAAACgAAAAAAAAAAAAAACf8AAAVD -DockState=AAAA/wAAAAD9AAAAAQAAAAMAAAoAAAABLPwBAAAABvsAAAAUAHMAYwBlAG4AZQBzAEQAbwBjAGsBAAAAAAAAAe8AAACYAP////sAAAAWAHMAbwB1AHIAYwBlAHMARABvAGMAawEAAAHzAAAB6QAAAJgA////+wAAABIAbQBpAHgAZQByAEQAbwBjAGsBAAAD4AAAAn4AAAECAP////sAAAAeAHQAcgBhAG4AcwBpAHQAaQBvAG4AcwBEAG8AYwBrAQAABmIAAAHRAAAArQD////7AAAAGABjAG8AbgB0AHIAbwBsAHMARABvAGMAawEAAAg3AAAByQAAAKIA////+wAAABIAcwB0AGEAdABzAEQAbwBjAGsCAAAExAAAAXAAAAK8AAAAyAAACgAAAAPYAAAABAAAAAQAAAAIAAAACPwAAAAA +DockState=AAAA/wAAAAD9AAAAAQAAAAMAAAoAAAABLPwBAAAABvsAAAAUAHMAYwBlAG4AZQBzAEQAbwBjAGsBAAAAAAAAAfMAAACYAP////sAAAAWAHMAbwB1AHIAYwBlAHMARABvAGMAawEAAAH3AAAB6AAAAJgA////+wAAABIAbQBpAHgAZQByAEQAbwBjAGsBAAAD4wAAAn0AAAECAP////sAAAAeAHQAcgBhAG4AcwBpAHQAaQBvAG4AcwBEAG8AYwBrAQAABmQAAAHQAAAArQD////7AAAAGABjAG8AbgB0AHIAbwBsAHMARABvAGMAawEAAAg4AAAByAAAAKIA////+wAAABIAcwB0AGEAdABzAEQAbwBjAGsCAAAExAAAAXAAAAK8AAAAyAAACgAAAAPYAAAABAAAAAQAAAAIAAAACPwAAAAA PreviewEnabled=true AlwaysOnTop=false SceneDuplicationMode=true