diff --git "a/bundle.js" "b/bundle.js"
--- "a/bundle.js"
+++ "b/bundle.js"
@@ -138,6 +138,9 @@ var app = (function () {
         const selected_option = select.querySelector(':checked');
         return selected_option && selected_option.__value;
     }
+    function toggle_class(element, name, toggle) {
+        element.classList[toggle ? 'add' : 'remove'](name);
+    }
     function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {
         const e = document.createEvent('CustomEvent');
         e.initCustomEvent(type, bubbles, cancelable, detail);
@@ -670,17 +673,17 @@ var app = (function () {
 
     /* src\VideoGradioComponentBrainstorming.svelte generated by Svelte v3.59.2 */
 
-    const { console: console_1$6 } = globals;
-    const file$d = "src\\VideoGradioComponentBrainstorming.svelte";
+    const { console: console_1$7 } = globals;
+    const file$h = "src\\VideoGradioComponentBrainstorming.svelte";
 
-    function get_each_context$6(ctx, list, i) {
+    function get_each_context$a(ctx, list, i) {
     	const child_ctx = ctx.slice();
     	child_ctx[15] = list[i];
     	return child_ctx;
     }
 
     // (85:4) {#each kitchenOptions as option}
-    function create_each_block$6(ctx) {
+    function create_each_block$a(ctx) {
     	let option;
     	let t_value = /*option*/ ctx[15] + "";
     	let t;
@@ -691,7 +694,7 @@ var app = (function () {
     			t = text(t_value);
     			option.__value = /*option*/ ctx[15];
     			option.value = option.__value;
-    			add_location(option, file$d, 85, 6, 2561);
+    			add_location(option, file$h, 85, 6, 2561);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, option, anchor);
@@ -705,7 +708,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block$6.name,
+    		id: create_each_block$a.name,
     		type: "each",
     		source: "(85:4) {#each kitchenOptions as option}",
     		ctx
@@ -714,7 +717,7 @@ var app = (function () {
     	return block;
     }
 
-    function create_fragment$d(ctx) {
+    function create_fragment$h(ctx) {
     	let h1;
     	let t1;
     	let div1;
@@ -741,7 +744,7 @@ var app = (function () {
     	let each_blocks = [];
 
     	for (let i = 0; i < each_value.length; i += 1) {
-    		each_blocks[i] = create_each_block$6(get_each_context$6(ctx, each_value, i));
+    		each_blocks[i] = create_each_block$a(get_each_context$a(ctx, each_value, i));
     	}
 
     	const block = {
@@ -771,34 +774,34 @@ var app = (function () {
     				each_blocks[i].c();
     			}
 
-    			add_location(h1, file$d, 66, 0, 1800);
+    			add_location(h1, file$h, 66, 0, 1800);
     			attr_dev(track, "kind", "captions");
     			if (!src_url_equal(track.src, track_src_value = "path/to/your/captions/file.vtt")) attr_dev(track, "src", track_src_value);
     			attr_dev(track, "srclang", "en");
     			attr_dev(track, "label", "English");
-    			add_location(track, file$d, 72, 4, 2006);
+    			add_location(track, file$h, 72, 4, 2006);
     			attr_dev(video, "id", "videoCanvas");
     			video.autoplay = true;
     			attr_dev(video, "class", "svelte-ufd3fo");
-    			add_location(video, file$d, 70, 2, 1965);
+    			add_location(video, file$h, 70, 2, 1965);
     			attr_dev(div0, "id", "overlayText");
     			attr_dev(div0, "class", "svelte-ufd3fo");
-    			add_location(div0, file$d, 74, 2, 2111);
+    			add_location(div0, file$h, 74, 2, 2111);
     			attr_dev(div1, "id", "videoContainer");
     			attr_dev(div1, "class", "svelte-ufd3fo");
-    			add_location(div1, file$d, 68, 0, 1911);
+    			add_location(div1, file$h, 68, 0, 1911);
     			attr_dev(canvas_1, "id", "myCanvas");
     			set_style(canvas_1, "border", "2px solid black");
     			attr_dev(canvas_1, "width", "500");
     			attr_dev(canvas_1, "height", "500");
-    			add_location(canvas_1, file$d, 77, 0, 2186);
+    			add_location(canvas_1, file$h, 77, 0, 2186);
     			attr_dev(input, "type", "text");
-    			add_location(input, file$d, 78, 0, 2294);
-    			add_location(button, file$d, 82, 2, 2429);
+    			add_location(input, file$h, 78, 0, 2294);
+    			add_location(button, file$h, 82, 2, 2429);
     			if (/*selectedOption*/ ctx[0] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[9].call(select));
-    			add_location(select, file$d, 83, 2, 2479);
+    			add_location(select, file$h, 83, 2, 2479);
     			attr_dev(div2, "id", "frameForButtons");
-    			add_location(div2, file$d, 81, 0, 2399);
+    			add_location(div2, file$h, 81, 0, 2399);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -857,12 +860,12 @@ var app = (function () {
     				let i;
 
     				for (i = 0; i < each_value.length; i += 1) {
-    					const child_ctx = get_each_context$6(ctx, each_value, i);
+    					const child_ctx = get_each_context$a(ctx, each_value, i);
 
     					if (each_blocks[i]) {
     						each_blocks[i].p(child_ctx, dirty);
     					} else {
-    						each_blocks[i] = create_each_block$6(child_ctx);
+    						each_blocks[i] = create_each_block$a(child_ctx);
     						each_blocks[i].c();
     						each_blocks[i].m(select, null);
     					}
@@ -900,7 +903,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$d.name,
+    		id: create_fragment$h.name,
     		type: "component",
     		source: "",
     		ctx
@@ -913,7 +916,7 @@ var app = (function () {
     	
     } // Logic for 'Test OCR' button
 
-    function instance$d($$self, $$props, $$invalidate) {
+    function instance$h($$self, $$props, $$invalidate) {
     	let { $$slots: slots = {}, $$scope } = $$props;
     	validate_slots('VideoGradioComponentBrainstorming', slots, []);
     	let selectedOption = 'Stove - lu'; // default value
@@ -975,7 +978,7 @@ var app = (function () {
     	const writable_props = [];
 
     	Object.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$6.warn(`<VideoGradioComponentBrainstorming> was created with unknown prop '${key}'`);
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$7.warn(`<VideoGradioComponentBrainstorming> was created with unknown prop '${key}'`);
     	});
 
     	function canvas_1_binding($$value) {
@@ -1046,13 +1049,13 @@ var app = (function () {
     class VideoGradioComponentBrainstorming extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$d, create_fragment$d, safe_not_equal, {});
+    		init(this, options, instance$h, create_fragment$h, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "VideoGradioComponentBrainstorming",
     			options,
-    			id: create_fragment$d.name
+    			id: create_fragment$h.name
     		});
     	}
     }
@@ -1106,9 +1109,9 @@ var app = (function () {
     }
 
     /* src\MovingDotPortfromReact.svelte generated by Svelte v3.59.2 */
-    const file$c = "src\\MovingDotPortfromReact.svelte";
+    const file$g = "src\\MovingDotPortfromReact.svelte";
 
-    function create_fragment$c(ctx) {
+    function create_fragment$g(ctx) {
     	let button;
 
     	const block = {
@@ -1118,7 +1121,7 @@ var app = (function () {
     			set_style(button, "left", /*position*/ ctx[0].x + "px");
     			set_style(button, "top", /*position*/ ctx[0].y + "px");
     			attr_dev(button, "tabindex", "0");
-    			add_location(button, file$c, 48, 0, 1573);
+    			add_location(button, file$g, 48, 0, 1573);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -1146,7 +1149,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$c.name,
+    		id: create_fragment$g.name,
     		type: "component",
     		source: "",
     		ctx
@@ -1157,7 +1160,7 @@ var app = (function () {
 
     const step = 10;
 
-    function instance$c($$self, $$props, $$invalidate) {
+    function instance$g($$self, $$props, $$invalidate) {
     	let { $$slots: slots = {}, $$scope } = $$props;
     	validate_slots('MovingDotPortfromReact', slots, []);
     	let { position = { x: 0, y: 0 } } = $$props;
@@ -1262,13 +1265,13 @@ var app = (function () {
     class MovingDotPortfromReact extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$c, create_fragment$c, safe_not_equal, { position: 0, boundaries: 2, focusDot: 3 });
+    		init(this, options, instance$g, create_fragment$g, safe_not_equal, { position: 0, boundaries: 2, focusDot: 3 });
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "MovingDotPortfromReact",
     			options,
-    			id: create_fragment$c.name
+    			id: create_fragment$g.name
     		});
     	}
 
@@ -1299,9 +1302,9 @@ var app = (function () {
 
     /* src\MovingDotTargetPortfromReact.svelte generated by Svelte v3.59.2 */
 
-    const file$b = "src\\MovingDotTargetPortfromReact.svelte";
+    const file$f = "src\\MovingDotTargetPortfromReact.svelte";
 
-    function create_fragment$b(ctx) {
+    function create_fragment$f(ctx) {
     	let div;
 
     	const block = {
@@ -1310,7 +1313,7 @@ var app = (function () {
     			attr_dev(div, "class", "target svelte-4yc66h");
     			set_style(div, "left", /*position*/ ctx[0].x + "px");
     			set_style(div, "top", /*position*/ ctx[0].y + "px");
-    			add_location(div, file$b, 4, 0, 49);
+    			add_location(div, file$f, 4, 0, 49);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -1336,7 +1339,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$b.name,
+    		id: create_fragment$f.name,
     		type: "component",
     		source: "",
     		ctx
@@ -1345,7 +1348,7 @@ var app = (function () {
     	return block;
     }
 
-    function instance$b($$self, $$props, $$invalidate) {
+    function instance$f($$self, $$props, $$invalidate) {
     	let { $$slots: slots = {}, $$scope } = $$props;
     	validate_slots('MovingDotTargetPortfromReact', slots, []);
     	let { position } = $$props;
@@ -1382,13 +1385,13 @@ var app = (function () {
     class MovingDotTargetPortfromReact extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$b, create_fragment$b, safe_not_equal, { position: 0 });
+    		init(this, options, instance$f, create_fragment$f, safe_not_equal, { position: 0 });
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "MovingDotTargetPortfromReact",
     			options,
-    			id: create_fragment$b.name
+    			id: create_fragment$f.name
     		});
     	}
 
@@ -1425,7 +1428,7 @@ var app = (function () {
         });
     }
 
-    const inventory = writable([
+    const inventory$1 = writable([
         // Sample inventory items
         { type: "weapon", name: "Sword", description: "A sharp blade." },
         { type: "armor", name: "Shield", description: "Protects against attacks." },
@@ -1433,7 +1436,7 @@ var app = (function () {
         // Add more items as needed
     ]);
 
-    const skills = writable([
+    const skills$1 = writable([
         // Sample skills
         { branch: "Combat", name: "Basic Attack", learned: false },
         { branch: "Magic", name: "Fireball", learned: false },
@@ -1477,7 +1480,7 @@ var app = (function () {
     ]);
 
     function addInventoryItem(item) {
-        inventory.update(items => {
+        inventory$1.update(items => {
             return [...items, item];
         });
     }
@@ -1487,7 +1490,7 @@ var app = (function () {
     const themeActions = { //Editing this schema affects the change theme function in MovingDotSpace and MovingDotModal handleitemclick and the default theme in gamethemeConfig and the configuration manager in theme manager
         'Default': {
             buyAxeAlert() {
-                money.update(h => h - 10 > 0 ? h - 10 : 0); // Decreases health but never below 0
+                money.update(h => h - 10 > 0 ? h - 10 : 0); // Decreases money but never below 0
                 const newItem = {type: "weapon", name: "Axe", description: "A heavy, sharp axe."};
                 addInventoryItem(newItem);  
             },
@@ -1505,11 +1508,17 @@ var app = (function () {
             // ... add more space-specific actions
         },
         'Medieval Fantasy': {
+            knightalert() {
+                alert("The armourer said he went to see the mini waterfall for some relaxtion");
+            },
             buyAxeAlert() {
-                money.update(h => h - 10 > 0 ? h - 10 : 0); // Decreases health but never below 0
+                money.update(h => h - 10 > 0 ? h - 10 : 0); // Decreases money but never below 0
                 const newItem = {type: "weapon", name: "Axe", description: "A heavy, sharp axe."};
                 addInventoryItem(newItem);  
             },
+            askforDirections() {
+                alert("Stranger: Go back to the fountain");
+            },
             defendCastle() {
                 // Logic to defend the castle
             },
@@ -1568,22 +1577,81 @@ var app = (function () {
                     alert("You delve into the Artefact's secrets, seeking knowledge and truths long forgotten.");
                 }
             },
+            approachAncientOak() {
+                if (objectives["LeaveEldoria"].complete === "true") {
+                    alert("The Ancient Oak stands before you, its presence both imposing and inviting.");
+                    intelligence.update(h => h + 10 > 100 ? h + 10 : 0); // Decreases money but never below 0
+                    alert("Your wisdom increases as the forest spirit imparts its knowledge.");
+                } else {
+                    alert("You feel drawn to the Ancient Oak, but something tells you it's not yet time.");
+                }
+            },
+            
+            acquireMagicalAcorn() {
+                const newItem = {type: "artifact", name: "Magical Acorn", description: "A gift from the forest spirit, promising future aid."};
+                addInventoryItem(newItem);
+                alert("The forest spirit bestows upon you a Magical Acorn.");
+            },
+            
+            exploreCrystalClearing() {
+                if (skills["Ancient Lore"].learned) {
+                    alert("The Crystal Clearing reveals visions of the future, guiding your path.");
+                } else {
+                    alert("The visions in the Crystal Clearing are cryptic, hinting at knowledge you have yet to acquire.");
+                }
+            },
+            
+            discoverShrineRelic() {
+                const newItem = {type: "relic", name: "Shrine Relic", description: "A powerful artifact that enhances magical abilities, found in the Ruined Shrine."};
+                addInventoryItem(newItem);
+                alert("You've found a Shrine Relic among the ancient ruins.");
+                learnSkill("Ancient Lore");
+            },
+            
+            navigateEchoingCaves() {
+                if (skills["Stealth Movement"].learned) {
+                    const newItem = {type: "record", name: "Echoing Cave Echoes", description: "A recording of whispers from the Echoing Caves, revealing secrets and hidden paths."};
+                    addInventoryItem(newItem);
+                    alert("Using your stealth, you navigate the caves and capture their whispers.");
+                } else {
+                    alert("The caves are treacherous without the aid of stealth. You retreat, vowing to return.");
+                }
+            },
+            
+            converseWithGraveyardSpirits() {
+                if (skills["Negotiation"].learned) {
+                    increaseStats("endurance");
+                    increaseStats("intelligence");
+                    alert("Your words resonate with the spirits, granting you their blessing.");
+                } else {
+                    alert("The spirits demand a tribute of words you do not yet possess.");
+                }
+            },
+            
+            masterArtifacts() {
+                if (objectives["UncoverForgottenGraveyard"].complete && inventory.some(item => item.type === "relic" || item.type === "artifact")) {
+                    learnSkill("Artifact Mastery");
+                    alert("With the relics and artifacts in your possession, you gain mastery over their ancient powers.");
+                } else {
+                    alert("You ponder the artifacts you've collected, feeling the weight of their history and the potential of their power.");
+                }
+            },        
         },
     };
 
     /* src\MovingDotSpaceSimpleModal.svelte generated by Svelte v3.59.2 */
 
-    const { console: console_1$5 } = globals;
-    const file$a = "src\\MovingDotSpaceSimpleModal.svelte";
+    const { console: console_1$6 } = globals;
+    const file$e = "src\\MovingDotSpaceSimpleModal.svelte";
 
-    function get_each_context$5(ctx, list, i) {
+    function get_each_context$9(ctx, list, i) {
     	const child_ctx = ctx.slice();
     	child_ctx[9] = list[i];
     	return child_ctx;
     }
 
     // (31:0) {#if isOpen}
-    function create_if_block$5(ctx) {
+    function create_if_block$7(ctx) {
     	let div3;
     	let div2;
     	let div0;
@@ -1603,7 +1671,7 @@ var app = (function () {
     	let each_blocks = [];
 
     	for (let i = 0; i < each_value.length; i += 1) {
-    		each_blocks[i] = create_each_block$5(get_each_context$5(ctx, each_value, i));
+    		each_blocks[i] = create_each_block$9(get_each_context$9(ctx, each_value, i));
     	}
 
     	const block = {
@@ -1626,18 +1694,18 @@ var app = (function () {
     				each_blocks[i].c();
     			}
 
-    			add_location(h2, file$a, 34, 8, 1031);
-    			add_location(button, file$a, 35, 8, 1057);
+    			add_location(h2, file$e, 34, 8, 1031);
+    			add_location(button, file$e, 35, 8, 1057);
     			attr_dev(div0, "class", "modal-header svelte-m51ous");
-    			add_location(div0, file$a, 33, 6, 995);
+    			add_location(div0, file$e, 33, 6, 995);
     			attr_dev(ul, "class", "modal-items");
-    			add_location(ul, file$a, 39, 8, 1181);
+    			add_location(ul, file$e, 39, 8, 1181);
     			attr_dev(div1, "class", "modal-content svelte-m51ous");
-    			add_location(div1, file$a, 37, 6, 1125);
+    			add_location(div1, file$e, 37, 6, 1125);
     			attr_dev(div2, "class", "modal svelte-m51ous");
-    			add_location(div2, file$a, 32, 4, 968);
+    			add_location(div2, file$e, 32, 4, 968);
     			attr_dev(div3, "class", "modal-overlay svelte-m51ous");
-    			add_location(div3, file$a, 31, 2, 935);
+    			add_location(div3, file$e, 31, 2, 935);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, div3, anchor);
@@ -1674,12 +1742,12 @@ var app = (function () {
     				let i;
 
     				for (i = 0; i < each_value.length; i += 1) {
-    					const child_ctx = get_each_context$5(ctx, each_value, i);
+    					const child_ctx = get_each_context$9(ctx, each_value, i);
 
     					if (each_blocks[i]) {
     						each_blocks[i].p(child_ctx, dirty);
     					} else {
-    						each_blocks[i] = create_each_block$5(child_ctx);
+    						each_blocks[i] = create_each_block$9(child_ctx);
     						each_blocks[i].c();
     						each_blocks[i].m(ul, null);
     					}
@@ -1702,7 +1770,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_if_block$5.name,
+    		id: create_if_block$7.name,
     		type: "if",
     		source: "(31:0) {#if isOpen}",
     		ctx
@@ -1712,7 +1780,7 @@ var app = (function () {
     }
 
     // (41:10) {#each items as item}
-    function create_each_block$5(ctx) {
+    function create_each_block$9(ctx) {
     	let button;
     	let t_value = /*item*/ ctx[9].label + "";
     	let t;
@@ -1727,7 +1795,7 @@ var app = (function () {
     		c: function create() {
     			button = element("button");
     			t = text(t_value);
-    			add_location(button, file$a, 41, 12, 1252);
+    			add_location(button, file$e, 41, 12, 1252);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, button, anchor);
@@ -1751,7 +1819,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block$5.name,
+    		id: create_each_block$9.name,
     		type: "each",
     		source: "(41:10) {#each items as item}",
     		ctx
@@ -1760,9 +1828,9 @@ var app = (function () {
     	return block;
     }
 
-    function create_fragment$a(ctx) {
+    function create_fragment$e(ctx) {
     	let if_block_anchor;
-    	let if_block = /*isOpen*/ ctx[0] && create_if_block$5(ctx);
+    	let if_block = /*isOpen*/ ctx[0] && create_if_block$7(ctx);
 
     	const block = {
     		c: function create() {
@@ -1781,7 +1849,7 @@ var app = (function () {
     				if (if_block) {
     					if_block.p(ctx, dirty);
     				} else {
-    					if_block = create_if_block$5(ctx);
+    					if_block = create_if_block$7(ctx);
     					if_block.c();
     					if_block.m(if_block_anchor.parentNode, if_block_anchor);
     				}
@@ -1800,7 +1868,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$a.name,
+    		id: create_fragment$e.name,
     		type: "component",
     		source: "",
     		ctx
@@ -1809,7 +1877,7 @@ var app = (function () {
     	return block;
     }
 
-    function instance$a($$self, $$props, $$invalidate) {
+    function instance$e($$self, $$props, $$invalidate) {
     	let { $$slots: slots = {}, $$scope } = $$props;
     	validate_slots('MovingDotSpaceSimpleModal', slots, []);
     	let { isOpen = false } = $$props;
@@ -1840,14 +1908,14 @@ var app = (function () {
 
     	$$self.$$.on_mount.push(function () {
     		if (onClose === undefined && !('onClose' in $$props || $$self.$$.bound[$$self.$$.props['onClose']])) {
-    			console_1$5.warn("<MovingDotSpaceSimpleModal> was created without expected prop 'onClose'");
+    			console_1$6.warn("<MovingDotSpaceSimpleModal> was created without expected prop 'onClose'");
     		}
     	});
 
     	const writable_props = ['isOpen', 'title', 'content', 'items', 'onClose', 'currentTheme'];
 
     	Object.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$5.warn(`<MovingDotSpaceSimpleModal> was created with unknown prop '${key}'`);
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$6.warn(`<MovingDotSpaceSimpleModal> was created with unknown prop '${key}'`);
     	});
 
     	const click_handler = item => handleItemClick(item);
@@ -1903,7 +1971,7 @@ var app = (function () {
     	constructor(options) {
     		super(options);
 
-    		init(this, options, instance$a, create_fragment$a, safe_not_equal, {
+    		init(this, options, instance$e, create_fragment$e, safe_not_equal, {
     			isOpen: 0,
     			title: 1,
     			content: 2,
@@ -1916,7 +1984,7 @@ var app = (function () {
     			component: this,
     			tagName: "MovingDotSpaceSimpleModal",
     			options,
-    			id: create_fragment$a.name
+    			id: create_fragment$e.name
     		});
     	}
 
@@ -1971,15 +2039,15 @@ var app = (function () {
 
     /* src\MovingDotStatDisplay.svelte generated by Svelte v3.59.2 */
 
-    const file$9 = "src\\MovingDotStatDisplay.svelte";
+    const file$d = "src\\MovingDotStatDisplay.svelte";
 
-    function get_each_context$4(ctx, list, i) {
+    function get_each_context$8(ctx, list, i) {
     	const child_ctx = ctx.slice();
     	child_ctx[13] = list[i];
     	return child_ctx;
     }
 
-    function get_each_context_1$1(ctx, list, i) {
+    function get_each_context_1$3(ctx, list, i) {
     	const child_ctx = ctx.slice();
     	child_ctx[16] = list[i];
     	return child_ctx;
@@ -1999,6 +2067,10 @@ var app = (function () {
     	let t1;
     	let t2_value = /*item*/ ctx[16].name + "";
     	let t2;
+    	let t3;
+    	let t4_value = (/*item*/ ctx[16].complete ? '(Completed)' : '') + "";
+    	let t4;
+    	let li_class_value;
 
     	const block = {
     		c: function create() {
@@ -2006,17 +2078,27 @@ var app = (function () {
     			t0 = text(t0_value);
     			t1 = text(": ");
     			t2 = text(t2_value);
-    			add_location(li, file$9, 22, 8, 712);
+    			t3 = space();
+    			t4 = text(t4_value);
+    			attr_dev(li, "class", li_class_value = "" + (null_to_empty(/*item*/ ctx[16].complete ? 'completedobjetive' : '') + " svelte-w7krpq"));
+    			add_location(li, file$d, 23, 8, 762);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, li, anchor);
     			append_dev(li, t0);
     			append_dev(li, t1);
     			append_dev(li, t2);
+    			append_dev(li, t3);
+    			append_dev(li, t4);
     		},
     		p: function update(ctx, dirty) {
     			if (dirty & /*$objectives*/ 256 && t0_value !== (t0_value = /*item*/ ctx[16].id + "")) set_data_dev(t0, t0_value);
     			if (dirty & /*$objectives*/ 256 && t2_value !== (t2_value = /*item*/ ctx[16].name + "")) set_data_dev(t2, t2_value);
+    			if (dirty & /*$objectives*/ 256 && t4_value !== (t4_value = (/*item*/ ctx[16].complete ? '(Completed)' : '') + "")) set_data_dev(t4, t4_value);
+
+    			if (dirty & /*$objectives*/ 256 && li_class_value !== (li_class_value = "" + (null_to_empty(/*item*/ ctx[16].complete ? 'completedobjetive' : '') + " svelte-w7krpq"))) {
+    				attr_dev(li, "class", li_class_value);
+    			}
     		},
     		d: function destroy(detaching) {
     			if (detaching) detach_dev(li);
@@ -2034,52 +2116,62 @@ var app = (function () {
     	return block;
     }
 
-    // (32:8) {#each $inventory as item}
-    function create_each_block_1$1(ctx) {
-    	let li;
+    // (33:8) {#each $inventory as item}
+    function create_each_block_1$3(ctx) {
+    	let button;
     	let t0_value = /*item*/ ctx[16].name + "";
     	let t0;
     	let t1;
-    	let t2_value = /*item*/ ctx[16].description + "";
-    	let t2;
+    	let mounted;
+    	let dispose;
+
+    	function click_handler() {
+    		return /*click_handler*/ ctx[12](/*item*/ ctx[16]);
+    	}
 
     	const block = {
     		c: function create() {
-    			li = element("li");
+    			button = element("button");
     			t0 = text(t0_value);
-    			t1 = text(": ");
-    			t2 = text(t2_value);
-    			add_location(li, file$9, 32, 10, 928);
+    			t1 = space();
+    			attr_dev(button, "class", "skill");
+    			add_location(button, file$d, 33, 10, 1064);
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, li, anchor);
-    			append_dev(li, t0);
-    			append_dev(li, t1);
-    			append_dev(li, t2);
+    			insert_dev(target, button, anchor);
+    			append_dev(button, t0);
+    			append_dev(button, t1);
+
+    			if (!mounted) {
+    				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
+    				mounted = true;
+    			}
     		},
-    		p: function update(ctx, dirty) {
+    		p: function update(new_ctx, dirty) {
+    			ctx = new_ctx;
     			if (dirty & /*$inventory*/ 512 && t0_value !== (t0_value = /*item*/ ctx[16].name + "")) set_data_dev(t0, t0_value);
-    			if (dirty & /*$inventory*/ 512 && t2_value !== (t2_value = /*item*/ ctx[16].description + "")) set_data_dev(t2, t2_value);
     		},
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(li);
+    			if (detaching) detach_dev(button);
+    			mounted = false;
+    			dispose();
     		}
     	};
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block_1$1.name,
+    		id: create_each_block_1$3.name,
     		type: "each",
-    		source: "(32:8) {#each $inventory as item}",
+    		source: "(33:8) {#each $inventory as item}",
     		ctx
     	});
 
     	return block;
     }
 
-    // (42:6) {#each $skills as skill}
-    function create_each_block$4(ctx) {
-    	let button;
+    // (46:8) {#each $skills as skill}
+    function create_each_block$8(ctx) {
+    	let li;
     	let t0_value = /*skill*/ ctx[13].name + "";
     	let t0;
     	let t1;
@@ -2088,65 +2180,47 @@ var app = (function () {
     	let t3;
     	let t4_value = (/*skill*/ ctx[13].learned ? 'Yes' : 'No') + "";
     	let t4;
-    	let t5;
-    	let mounted;
-    	let dispose;
-
-    	function click_handler() {
-    		return /*click_handler*/ ctx[12](/*skill*/ ctx[13]);
-    	}
 
     	const block = {
     		c: function create() {
-    			button = element("button");
+    			li = element("li");
     			t0 = text(t0_value);
-    			t1 = text(" - ");
+    			t1 = text(": ");
     			t2 = text(t2_value);
     			t3 = text(" - Learned: ");
     			t4 = text(t4_value);
-    			t5 = space();
-    			attr_dev(button, "class", "skill");
-    			add_location(button, file$9, 42, 8, 1167);
+    			add_location(li, file$d, 46, 10, 1413);
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, button, anchor);
-    			append_dev(button, t0);
-    			append_dev(button, t1);
-    			append_dev(button, t2);
-    			append_dev(button, t3);
-    			append_dev(button, t4);
-    			append_dev(button, t5);
-
-    			if (!mounted) {
-    				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
-    				mounted = true;
-    			}
+    			insert_dev(target, li, anchor);
+    			append_dev(li, t0);
+    			append_dev(li, t1);
+    			append_dev(li, t2);
+    			append_dev(li, t3);
+    			append_dev(li, t4);
     		},
-    		p: function update(new_ctx, dirty) {
-    			ctx = new_ctx;
+    		p: function update(ctx, dirty) {
     			if (dirty & /*$skills*/ 1024 && t0_value !== (t0_value = /*skill*/ ctx[13].name + "")) set_data_dev(t0, t0_value);
     			if (dirty & /*$skills*/ 1024 && t2_value !== (t2_value = /*skill*/ ctx[13].branch + "")) set_data_dev(t2, t2_value);
     			if (dirty & /*$skills*/ 1024 && t4_value !== (t4_value = (/*skill*/ ctx[13].learned ? 'Yes' : 'No') + "")) set_data_dev(t4, t4_value);
     		},
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(button);
-    			mounted = false;
-    			dispose();
+    			if (detaching) detach_dev(li);
     		}
     	};
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block$4.name,
+    		id: create_each_block$8.name,
     		type: "each",
-    		source: "(42:6) {#each $skills as skill}",
+    		source: "(46:8) {#each $skills as skill}",
     		ctx
     	});
 
     	return block;
     }
 
-    function create_fragment$9(ctx) {
+    function create_fragment$d(ctx) {
     	let div10;
     	let div4;
     	let div3;
@@ -2188,6 +2262,7 @@ var app = (function () {
     	let div8;
     	let h21;
     	let t26;
+    	let ul2;
     	let each_value_2 = /*$objectives*/ ctx[8];
     	validate_each_argument(each_value_2);
     	let each_blocks_2 = [];
@@ -2201,7 +2276,7 @@ var app = (function () {
     	let each_blocks_1 = [];
 
     	for (let i = 0; i < each_value_1.length; i += 1) {
-    		each_blocks_1[i] = create_each_block_1$1(get_each_context_1$1(ctx, each_value_1, i));
+    		each_blocks_1[i] = create_each_block_1$3(get_each_context_1$3(ctx, each_value_1, i));
     	}
 
     	let each_value = /*$skills*/ ctx[10];
@@ -2209,7 +2284,7 @@ var app = (function () {
     	let each_blocks = [];
 
     	for (let i = 0; i < each_value.length; i += 1) {
-    		each_blocks[i] = create_each_block$4(get_each_context$4(ctx, each_value, i));
+    		each_blocks[i] = create_each_block$8(get_each_context$8(ctx, each_value, i));
     	}
 
     	const block = {
@@ -2268,36 +2343,38 @@ var app = (function () {
     			h21 = element("h2");
     			h21.textContent = "Skill Tree / Abilities";
     			t26 = space();
+    			ul2 = element("ul");
 
     			for (let i = 0; i < each_blocks.length; i += 1) {
     				each_blocks[i].c();
     			}
 
-    			add_location(b, file$9, 12, 13, 363);
-    			add_location(span, file$9, 12, 6, 356);
-    			add_location(div0, file$9, 13, 6, 399);
-    			add_location(div1, file$9, 14, 6, 543);
-    			add_location(div2, file$9, 15, 6, 575);
-    			attr_dev(div3, "class", "stats svelte-1d8rshd");
-    			add_location(div3, file$9, 11, 4, 329);
-    			attr_dev(div4, "class", "grid-statsitem svelte-1d8rshd");
-    			add_location(div4, file$9, 10, 2, 295);
-    			add_location(ul0, file$9, 20, 4, 663);
-    			attr_dev(div5, "class", "grid-statsitem svelte-1d8rshd");
-    			add_location(div5, file$9, 19, 2, 629);
-    			add_location(h20, file$9, 29, 6, 850);
-    			add_location(ul1, file$9, 30, 6, 876);
-    			attr_dev(div6, "class", "inventory svelte-1d8rshd");
-    			add_location(div6, file$9, 28, 4, 819);
-    			attr_dev(div7, "class", "grid-statsitem svelte-1d8rshd");
-    			add_location(div7, file$9, 27, 2, 785);
-    			add_location(h21, file$9, 40, 6, 1094);
-    			attr_dev(div8, "class", "skill-tree svelte-1d8rshd");
-    			add_location(div8, file$9, 39, 4, 1062);
-    			attr_dev(div9, "class", "grid-statsitem svelte-1d8rshd");
-    			add_location(div9, file$9, 38, 2, 1028);
-    			attr_dev(div10, "class", "grid-statsContainer svelte-1d8rshd");
-    			add_location(div10, file$9, 9, 0, 258);
+    			add_location(b, file$d, 12, 13, 363);
+    			add_location(span, file$d, 12, 6, 356);
+    			add_location(div0, file$d, 13, 6, 399);
+    			add_location(div1, file$d, 14, 6, 543);
+    			add_location(div2, file$d, 15, 6, 575);
+    			attr_dev(div3, "class", "stats svelte-w7krpq");
+    			add_location(div3, file$d, 11, 4, 329);
+    			attr_dev(div4, "class", "grid-statsitem svelte-w7krpq");
+    			add_location(div4, file$d, 10, 2, 295);
+    			add_location(ul0, file$d, 20, 4, 663);
+    			attr_dev(div5, "class", "grid-statsitem svelte-w7krpq");
+    			add_location(div5, file$d, 19, 2, 629);
+    			add_location(h20, file$d, 30, 6, 986);
+    			add_location(ul1, file$d, 31, 6, 1012);
+    			attr_dev(div6, "class", "inventory svelte-w7krpq");
+    			add_location(div6, file$d, 29, 4, 955);
+    			attr_dev(div7, "class", "grid-statsitem svelte-w7krpq");
+    			add_location(div7, file$d, 28, 2, 921);
+    			add_location(h21, file$d, 43, 6, 1324);
+    			add_location(ul2, file$d, 44, 6, 1363);
+    			attr_dev(div8, "class", "skill-tree svelte-w7krpq");
+    			add_location(div8, file$d, 42, 4, 1292);
+    			attr_dev(div9, "class", "grid-statsitem svelte-w7krpq");
+    			add_location(div9, file$d, 41, 2, 1258);
+    			attr_dev(div10, "class", "grid-statsContainer svelte-w7krpq");
+    			add_location(div10, file$d, 9, 0, 258);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -2358,10 +2435,11 @@ var app = (function () {
     			append_dev(div9, div8);
     			append_dev(div8, h21);
     			append_dev(div8, t26);
+    			append_dev(div8, ul2);
 
     			for (let i = 0; i < each_blocks.length; i += 1) {
     				if (each_blocks[i]) {
-    					each_blocks[i].m(div8, null);
+    					each_blocks[i].m(ul2, null);
     				}
     			}
     		},
@@ -2399,18 +2477,18 @@ var app = (function () {
     				each_blocks_2.length = each_value_2.length;
     			}
 
-    			if (dirty & /*$inventory*/ 512) {
+    			if (dirty & /*toggleSkill, alert, $inventory*/ 2560) {
     				each_value_1 = /*$inventory*/ ctx[9];
     				validate_each_argument(each_value_1);
     				let i;
 
     				for (i = 0; i < each_value_1.length; i += 1) {
-    					const child_ctx = get_each_context_1$1(ctx, each_value_1, i);
+    					const child_ctx = get_each_context_1$3(ctx, each_value_1, i);
 
     					if (each_blocks_1[i]) {
     						each_blocks_1[i].p(child_ctx, dirty);
     					} else {
-    						each_blocks_1[i] = create_each_block_1$1(child_ctx);
+    						each_blocks_1[i] = create_each_block_1$3(child_ctx);
     						each_blocks_1[i].c();
     						each_blocks_1[i].m(ul1, null);
     					}
@@ -2423,20 +2501,20 @@ var app = (function () {
     				each_blocks_1.length = each_value_1.length;
     			}
 
-    			if (dirty & /*toggleSkill, $skills*/ 3072) {
+    			if (dirty & /*$skills*/ 1024) {
     				each_value = /*$skills*/ ctx[10];
     				validate_each_argument(each_value);
     				let i;
 
     				for (i = 0; i < each_value.length; i += 1) {
-    					const child_ctx = get_each_context$4(ctx, each_value, i);
+    					const child_ctx = get_each_context$8(ctx, each_value, i);
 
     					if (each_blocks[i]) {
     						each_blocks[i].p(child_ctx, dirty);
     					} else {
-    						each_blocks[i] = create_each_block$4(child_ctx);
+    						each_blocks[i] = create_each_block$8(child_ctx);
     						each_blocks[i].c();
-    						each_blocks[i].m(div8, null);
+    						each_blocks[i].m(ul2, null);
     					}
     				}
 
@@ -2459,7 +2537,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$9.name,
+    		id: create_fragment$d.name,
     		type: "component",
     		source: "",
     		ctx
@@ -2468,7 +2546,7 @@ var app = (function () {
     	return block;
     }
 
-    function instance$9($$self, $$props, $$invalidate) {
+    function instance$d($$self, $$props, $$invalidate) {
     	let $health;
     	let $mana;
     	let $strength;
@@ -2498,16 +2576,16 @@ var app = (function () {
     	component_subscribe($$self, money, $$value => $$invalidate(7, $money = $$value));
     	validate_store(objectives, 'objectives');
     	component_subscribe($$self, objectives, $$value => $$invalidate(8, $objectives = $$value));
-    	validate_store(inventory, 'inventory');
-    	component_subscribe($$self, inventory, $$value => $$invalidate(9, $inventory = $$value));
-    	validate_store(skills, 'skills');
-    	component_subscribe($$self, skills, $$value => $$invalidate(10, $skills = $$value));
+    	validate_store(inventory$1, 'inventory');
+    	component_subscribe($$self, inventory$1, $$value => $$invalidate(9, $inventory = $$value));
+    	validate_store(skills$1, 'skills');
+    	component_subscribe($$self, skills$1, $$value => $$invalidate(10, $skills = $$value));
     	let { $$slots: slots = {}, $$scope } = $$props;
     	validate_slots('MovingDotStatDisplay', slots, []);
 
     	function toggleSkill(skill) {
     		skill.learned = !skill.learned;
-    		skills.update(n => n);
+    		skills$1.update(n => n);
     	}
 
     	const writable_props = [];
@@ -2516,7 +2594,7 @@ var app = (function () {
     		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<MovingDotStatDisplay> was created with unknown prop '${key}'`);
     	});
 
-    	const click_handler = skill => toggleSkill(skill);
+    	const click_handler = item => toggleSkill(alert(item.description, item.type));
 
     	$$self.$capture_state = () => ({
     		health,
@@ -2527,8 +2605,8 @@ var app = (function () {
     		charisma,
     		luck,
     		money,
-    		inventory,
-    		skills,
+    		inventory: inventory$1,
+    		skills: skills$1,
     		objectives,
     		toggleSkill,
     		$health,
@@ -2564,215 +2642,174 @@ var app = (function () {
     class MovingDotStatDisplay extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$9, create_fragment$9, safe_not_equal, {});
+    		init(this, options, instance$d, create_fragment$d, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "MovingDotStatDisplay",
     			options,
-    			id: create_fragment$9.name
+    			id: create_fragment$d.name
     		});
     	}
     }
 
     /* src\MovingDotSpaceThemeManager.svelte generated by Svelte v3.59.2 */
-    const file$8 = "src\\MovingDotSpaceThemeManager.svelte";
+    const file$c = "src\\MovingDotSpaceThemeManager.svelte";
 
-    function create_fragment$8(ctx) {
+    function create_fragment$c(ctx) {
+    	let hr;
+    	let t0;
     	let form;
     	let input0;
-    	let t0;
-    	let input1;
     	let t1;
-    	let input2;
+    	let input1;
     	let t2;
+    	let input2;
+    	let t3;
     	let button0;
-    	let t4;
+    	let t5;
     	let button1;
-    	let t6;
-    	let input3;
     	let t7;
+    	let input3;
+    	let t8;
     	let label;
-    	let t9;
-    	let div5;
-    	let div0;
     	let t10;
-    	let br0;
+    	let div3;
+    	let div0;
     	let t11;
-    	let br1;
+    	let br0;
     	let t12;
-    	let br2;
+    	let br1;
     	let t13;
-    	let br3;
     	let t14;
     	let div1;
     	let t15;
     	let t16;
-    	let br4;
+    	let br2;
     	let t17;
+    	let br3;
+    	let br4;
     	let t18;
+    	let t19;
     	let div2;
-    	let t20;
-    	let div3;
-    	let t21;
-    	let br5;
-    	let t22;
-    	let br6;
-    	let t23;
-    	let br7;
-    	let t24;
-    	let t25;
-    	let div4;
-    	let t26;
-    	let br8;
-    	let t27;
     	let mounted;
     	let dispose;
 
     	const block = {
     		c: function create() {
+    			hr = element("hr");
+    			t0 = text("\r\nIncomplete Custom game setting assistant\r\n\r\n");
     			form = element("form");
     			input0 = element("input");
-    			t0 = space();
-    			input1 = element("input");
     			t1 = space();
-    			input2 = element("input");
+    			input1 = element("input");
     			t2 = space();
+    			input2 = element("input");
+    			t3 = space();
     			button0 = element("button");
     			button0.textContent = "Add Item";
-    			t4 = space();
+    			t5 = space();
     			button1 = element("button");
     			button1.textContent = "Download Configuration";
-    			t6 = space();
-    			input3 = element("input");
     			t7 = space();
+    			input3 = element("input");
+    			t8 = space();
     			label = element("label");
     			label.textContent = "Upload Configuration";
-    			t9 = space();
-    			div5 = element("div");
+    			t10 = space();
+    			div3 = element("div");
     			div0 = element("div");
-    			t10 = text("Website = multilingual support in chrome ");
+    			t11 = text("Website = multilingual support in chrome ");
     			br0 = element("br");
-    			t11 = text("\r\n        All Alert version of the game then think of modal to extend ");
+    			t12 = text("\r\n        The mechanics here are location based so story should be location based ");
     			br1 = element("br");
-    			t12 = text("\r\n        ChatGPT = Random event to story then Graph with rectangles and diamonds then alert based config settings");
-    			br2 = element("br");
-    			t13 = text("\r\n        Modal = Component for each game mechanic ");
-    			br3 = element("br");
+    			t13 = text("\r\n        Simultaneous relationships between multiple items = complexity - eg. player location and objectives");
     			t14 = space();
     			div1 = element("div");
     			t15 = text(/*ChangedContentPlaceholder*/ ctx[0]);
     			t16 = space();
+    			br2 = element("br");
+    			t17 = text("\r\n        Most stories for games are about a character that lacks something to beat their problems and the 90% inbetween the begining and the end is acquiring\r\n        ");
+    			br3 = element("br");
     			br4 = element("br");
-    			t17 = text("\r\n        Example - Write a story where the main event are in this order: gosomewhere getsomething makeobservation getsomething talktosomeone makeobservation getsomething talktosomeone gosomewhere fight talktosomeone fight fight talktosomeone talktosomeone talktosomeone gosomewhere talktosomeone");
-    			t18 = space();
+    			t18 = text("\r\n        Example - Write a story where the main event are in this order: gosomewhere getsomething makeobservation getsomething talktosomeone makeobservation getsomething talktosomeone gosomewhere fight talktosomeone fight fight talktosomeone talktosomeone talktosomeone gosomewhere talktosomeone");
+    			t19 = space();
     			div2 = element("div");
-    			div2.textContent = "Event Trigger - Collisions\r\n        Combat Mechanics - Modal (aka anything)\r\n        objectives = boolean\r\n        Story = conflict and resolution towards solving a larger conflict\r\n        basic story elements fight getsomething gosomewhere talktosomeone makeobservation - use the random count component above";
-    			t20 = space();
-    			div3 = element("div");
-    			t21 = text("Extra Stats ");
-    			br5 = element("br");
-    			t22 = text("    \r\n        Save State ");
-    			br6 = element("br");
-    			t23 = text("\r\n        Clock System - based on the user movement?   ");
-    			br7 = element("br");
-    			t24 = text("\r\n        For Learning Purposes make school, bank and retail store versions");
-    			t25 = space();
-    			div4 = element("div");
-    			t26 = text("Story Line ");
-    			br8 = element("br");
-    			t27 = text("\r\n        Hard as it combines skills, targets, inventory, objectives and player interaction = = = Give ChatGPT a sample config then ask for a story and then ask to turn that story into config format");
+    			div2.textContent = "lets write the story to fit this order - stats location stats inventory stats location location skills inventory stats inventory skills skills skills stats stats skills";
+    			add_location(hr, file$c, 66, 0, 2505);
     			attr_dev(input0, "type", "text");
     			attr_dev(input0, "placeholder", "Type (weapon, armor, consumable)");
-    			add_location(input0, file$8, 67, 4, 2591);
+    			add_location(input0, file$c, 70, 4, 2641);
     			attr_dev(input1, "type", "text");
     			attr_dev(input1, "placeholder", "Name");
-    			add_location(input1, file$8, 68, 4, 2691);
+    			add_location(input1, file$c, 71, 4, 2741);
     			attr_dev(input2, "type", "text");
     			attr_dev(input2, "placeholder", "Description");
-    			add_location(input2, file$8, 69, 4, 2763);
+    			add_location(input2, file$c, 72, 4, 2813);
     			attr_dev(button0, "type", "submit");
-    			add_location(button0, file$8, 70, 4, 2849);
-    			add_location(form, file$8, 66, 0, 2544);
-    			add_location(button1, file$8, 76, 0, 3028);
+    			add_location(button0, file$c, 73, 4, 2899);
+    			add_location(form, file$c, 69, 0, 2594);
+    			add_location(button1, file$c, 79, 0, 3078);
     			attr_dev(input3, "type", "file");
     			attr_dev(input3, "id", "fileInput");
     			set_style(input3, "display", "none");
-    			add_location(input3, file$8, 77, 0, 3102);
+    			add_location(input3, file$c, 80, 0, 3152);
     			attr_dev(label, "for", "fileInput");
     			attr_dev(label, "class", "btn");
-    			add_location(label, file$8, 78, 0, 3191);
-    			add_location(br0, file$8, 82, 49, 3357);
-    			add_location(br1, file$8, 83, 68, 3431);
-    			add_location(br2, file$8, 84, 112, 3549);
-    			add_location(br3, file$8, 85, 49, 3604);
-    			add_location(div0, file$8, 81, 4, 3301);
-    			add_location(br4, file$8, 89, 38, 3673);
-    			add_location(div1, file$8, 88, 4, 3628);
-    			add_location(div2, file$8, 93, 4, 3994);
-    			add_location(br5, file$8, 102, 20, 4367);
-    			add_location(br6, file$8, 103, 19, 4396);
-    			add_location(br7, file$8, 104, 53, 4455);
-    			add_location(div3, file$8, 101, 4, 4339);
-    			add_location(br8, file$8, 109, 19, 4580);
-    			add_location(div4, file$8, 108, 4, 4554);
-    			attr_dev(div5, "class", "grid-themegridContainer svelte-1b47i4k");
-    			add_location(div5, file$8, 80, 0, 3258);
+    			add_location(label, file$c, 81, 0, 3241);
+    			add_location(br0, file$c, 85, 49, 3407);
+    			add_location(br1, file$c, 86, 80, 3493);
+    			add_location(div0, file$c, 84, 4, 3351);
+    			add_location(br2, file$c, 91, 38, 3671);
+    			add_location(br3, file$c, 93, 8, 3843);
+    			add_location(br4, file$c, 93, 12, 3847);
+    			add_location(div1, file$c, 90, 4, 3626);
+    			add_location(div2, file$c, 97, 4, 4168);
+    			attr_dev(div3, "class", "grid-themegridContainer svelte-a95t5t");
+    			add_location(div3, file$c, 83, 0, 3308);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
     		},
     		m: function mount(target, anchor) {
+    			insert_dev(target, hr, anchor);
+    			insert_dev(target, t0, anchor);
     			insert_dev(target, form, anchor);
     			append_dev(form, input0);
     			set_input_value(input0, /*newItem*/ ctx[1].type);
-    			append_dev(form, t0);
+    			append_dev(form, t1);
     			append_dev(form, input1);
     			set_input_value(input1, /*newItem*/ ctx[1].name);
-    			append_dev(form, t1);
+    			append_dev(form, t2);
     			append_dev(form, input2);
     			set_input_value(input2, /*newItem*/ ctx[1].description);
-    			append_dev(form, t2);
+    			append_dev(form, t3);
     			append_dev(form, button0);
-    			insert_dev(target, t4, anchor);
+    			insert_dev(target, t5, anchor);
     			insert_dev(target, button1, anchor);
-    			insert_dev(target, t6, anchor);
-    			insert_dev(target, input3, anchor);
     			insert_dev(target, t7, anchor);
+    			insert_dev(target, input3, anchor);
+    			insert_dev(target, t8, anchor);
     			insert_dev(target, label, anchor);
-    			insert_dev(target, t9, anchor);
-    			insert_dev(target, div5, anchor);
-    			append_dev(div5, div0);
-    			append_dev(div0, t10);
-    			append_dev(div0, br0);
+    			insert_dev(target, t10, anchor);
+    			insert_dev(target, div3, anchor);
+    			append_dev(div3, div0);
     			append_dev(div0, t11);
-    			append_dev(div0, br1);
+    			append_dev(div0, br0);
     			append_dev(div0, t12);
-    			append_dev(div0, br2);
+    			append_dev(div0, br1);
     			append_dev(div0, t13);
-    			append_dev(div0, br3);
-    			append_dev(div5, t14);
-    			append_dev(div5, div1);
+    			append_dev(div3, t14);
+    			append_dev(div3, div1);
     			append_dev(div1, t15);
     			append_dev(div1, t16);
-    			append_dev(div1, br4);
+    			append_dev(div1, br2);
     			append_dev(div1, t17);
-    			append_dev(div5, t18);
-    			append_dev(div5, div2);
-    			append_dev(div5, t20);
-    			append_dev(div5, div3);
-    			append_dev(div3, t21);
-    			append_dev(div3, br5);
-    			append_dev(div3, t22);
-    			append_dev(div3, br6);
-    			append_dev(div3, t23);
-    			append_dev(div3, br7);
-    			append_dev(div3, t24);
-    			append_dev(div5, t25);
-    			append_dev(div5, div4);
-    			append_dev(div4, t26);
-    			append_dev(div4, br8);
-    			append_dev(div4, t27);
+    			append_dev(div1, br3);
+    			append_dev(div1, br4);
+    			append_dev(div1, t18);
+    			append_dev(div3, t19);
+    			append_dev(div3, div2);
 
     			if (!mounted) {
     				dispose = [
@@ -2805,15 +2842,17 @@ var app = (function () {
     		i: noop,
     		o: noop,
     		d: function destroy(detaching) {
+    			if (detaching) detach_dev(hr);
+    			if (detaching) detach_dev(t0);
     			if (detaching) detach_dev(form);
-    			if (detaching) detach_dev(t4);
+    			if (detaching) detach_dev(t5);
     			if (detaching) detach_dev(button1);
-    			if (detaching) detach_dev(t6);
-    			if (detaching) detach_dev(input3);
     			if (detaching) detach_dev(t7);
+    			if (detaching) detach_dev(input3);
+    			if (detaching) detach_dev(t8);
     			if (detaching) detach_dev(label);
-    			if (detaching) detach_dev(t9);
-    			if (detaching) detach_dev(div5);
+    			if (detaching) detach_dev(t10);
+    			if (detaching) detach_dev(div3);
     			mounted = false;
     			run_all(dispose);
     		}
@@ -2821,7 +2860,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$8.name,
+    		id: create_fragment$c.name,
     		type: "component",
     		source: "",
     		ctx
@@ -2830,7 +2869,7 @@ var app = (function () {
     	return block;
     }
 
-    function instance$8($$self, $$props, $$invalidate) {
+    function instance$c($$self, $$props, $$invalidate) {
     	let $targets;
     	let $objectives;
     	let $skills;
@@ -2839,10 +2878,10 @@ var app = (function () {
     	component_subscribe($$self, targets, $$value => $$invalidate(10, $targets = $$value));
     	validate_store(objectives, 'objectives');
     	component_subscribe($$self, objectives, $$value => $$invalidate(11, $objectives = $$value));
-    	validate_store(skills, 'skills');
-    	component_subscribe($$self, skills, $$value => $$invalidate(12, $skills = $$value));
-    	validate_store(inventory, 'inventory');
-    	component_subscribe($$self, inventory, $$value => $$invalidate(13, $inventory = $$value));
+    	validate_store(skills$1, 'skills');
+    	component_subscribe($$self, skills$1, $$value => $$invalidate(12, $skills = $$value));
+    	validate_store(inventory$1, 'inventory');
+    	component_subscribe($$self, inventory$1, $$value => $$invalidate(13, $inventory = $$value));
     	let { $$slots: slots = {}, $$scope } = $$props;
     	validate_slots('MovingDotSpaceThemeManager', slots, []);
     	let { ChangedContentPlaceholder = "" } = $$props;
@@ -2852,12 +2891,12 @@ var app = (function () {
 
     	// ... similarly for targets
     	function addItem() {
-    		inventory.update(items => [...items, newItem]);
+    		inventory$1.update(items => [...items, newItem]);
     		$$invalidate(1, newItem = { type: "", name: "", description: "" }); // Reset form
     	}
 
     	function addSkill() {
-    		skills.update(skills => [...skills, newSkill]);
+    		skills$1.update(skills => [...skills, newSkill]);
     		newSkill = { branch: "", name: "", learned: false }; // Reset form
     	}
 
@@ -2897,8 +2936,8 @@ var app = (function () {
     			reader.onload = e => {
     				const fileContent = e.target.result;
     				const { inventory: loadedInventory, skills: loadedSkills, objectives: loadedObjectives, targets: loadedTargets } = JSON.parse(fileContent);
-    				inventory.set(loadedInventory);
-    				skills.set(loadedSkills);
+    				inventory$1.set(loadedInventory);
+    				skills$1.set(loadedSkills);
     				objectives.set(loadedObjectives);
     				targets.set(loadedTargets);
     				alert('Configuration loaded!');
@@ -2935,8 +2974,8 @@ var app = (function () {
 
     	$$self.$capture_state = () => ({
     		ChangedContentPlaceholder,
-    		inventory,
-    		skills,
+    		inventory: inventory$1,
+    		skills: skills$1,
     		objectives,
     		targets,
     		newItem,
@@ -2979,13 +3018,13 @@ var app = (function () {
     class MovingDotSpaceThemeManager extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$8, create_fragment$8, safe_not_equal, { ChangedContentPlaceholder: 0 });
+    		init(this, options, instance$c, create_fragment$c, safe_not_equal, { ChangedContentPlaceholder: 0 });
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "MovingDotSpaceThemeManager",
     			options,
-    			id: create_fragment$8.name
+    			id: create_fragment$c.name
     		});
     	}
 
@@ -3000,10 +3039,10 @@ var app = (function () {
 
     /* src\MovingDotSpaceGameFight.svelte generated by Svelte v3.59.2 */
 
-    const file$7 = "src\\MovingDotSpaceGameFight.svelte";
+    const file$b = "src\\MovingDotSpaceGameFight.svelte";
 
     // (88:8) {#if $fightcurrentTurn === 'human'}
-    function create_if_block$4(ctx) {
+    function create_if_block$6(ctx) {
     	let button0;
     	let t1;
     	let button1;
@@ -3022,9 +3061,9 @@ var app = (function () {
     			t3 = space();
     			button2 = element("button");
     			button2.textContent = "Block";
-    			add_location(button0, file$7, 88, 12, 3623);
-    			add_location(button1, file$7, 89, 12, 3730);
-    			add_location(button2, file$7, 90, 12, 3856);
+    			add_location(button0, file$b, 88, 12, 3623);
+    			add_location(button1, file$b, 89, 12, 3730);
+    			add_location(button2, file$b, 90, 12, 3856);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, button0, anchor);
@@ -3057,7 +3096,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block: block_1,
-    		id: create_if_block$4.name,
+    		id: create_if_block$6.name,
     		type: "if",
     		source: "(88:8) {#if $fightcurrentTurn === 'human'}",
     		ctx
@@ -3066,7 +3105,7 @@ var app = (function () {
     	return block_1;
     }
 
-    function create_fragment$7(ctx) {
+    function create_fragment$b(ctx) {
     	let div4;
     	let div0;
     	let t0;
@@ -3133,7 +3172,7 @@ var app = (function () {
     	let t28;
     	let t29;
     	let br9;
-    	let if_block = /*$fightcurrentTurn*/ ctx[0] === 'human' && create_if_block$4(ctx);
+    	let if_block = /*$fightcurrentTurn*/ ctx[0] === 'human' && create_if_block$6(ctx);
 
     	const block_1 = {
     		c: function create() {
@@ -3183,22 +3222,22 @@ var app = (function () {
     			t28 = text(t28_value);
     			t29 = text("s ");
     			br9 = element("br");
-    			add_location(br0, file$7, 76, 17, 3171);
-    			add_location(br1, file$7, 77, 48, 3225);
-    			add_location(br2, file$7, 78, 50, 3281);
-    			add_location(br3, file$7, 79, 62, 3349);
-    			add_location(br4, file$7, 80, 70, 3425);
-    			add_location(div0, file$7, 75, 4, 3147);
-    			add_location(div1, file$7, 84, 8, 3464);
-    			add_location(div2, file$7, 83, 4, 3449);
-    			add_location(br5, file$7, 95, 17, 3978);
-    			add_location(br6, file$7, 96, 51, 4035);
-    			add_location(br7, file$7, 97, 53, 4094);
-    			add_location(br8, file$7, 98, 65, 4165);
-    			add_location(br9, file$7, 99, 73, 4244);
-    			add_location(div3, file$7, 94, 4, 3954);
+    			add_location(br0, file$b, 76, 17, 3171);
+    			add_location(br1, file$b, 77, 48, 3225);
+    			add_location(br2, file$b, 78, 50, 3281);
+    			add_location(br3, file$b, 79, 62, 3349);
+    			add_location(br4, file$b, 80, 70, 3425);
+    			add_location(div0, file$b, 75, 4, 3147);
+    			add_location(div1, file$b, 84, 8, 3464);
+    			add_location(div2, file$b, 83, 4, 3449);
+    			add_location(br5, file$b, 95, 17, 3978);
+    			add_location(br6, file$b, 96, 51, 4035);
+    			add_location(br7, file$b, 97, 53, 4094);
+    			add_location(br8, file$b, 98, 65, 4165);
+    			add_location(br9, file$b, 99, 73, 4244);
+    			add_location(div3, file$b, 94, 4, 3954);
     			attr_dev(div4, "class", "statscontainer svelte-izilsr");
-    			add_location(div4, file$7, 74, 0, 3113);
+    			add_location(div4, file$b, 74, 0, 3113);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -3269,7 +3308,7 @@ var app = (function () {
     				if (if_block) {
     					if_block.p(ctx, dirty);
     				} else {
-    					if_block = create_if_block$4(ctx);
+    					if_block = create_if_block$6(ctx);
     					if_block.c();
     					if_block.m(div2, null);
     				}
@@ -3297,7 +3336,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block: block_1,
-    		id: create_fragment$7.name,
+    		id: create_fragment$b.name,
     		type: "component",
     		source: "",
     		ctx
@@ -3312,7 +3351,7 @@ var app = (function () {
     	});
     }
 
-    function instance$7($$self, $$props, $$invalidate) {
+    function instance$b($$self, $$props, $$invalidate) {
     	let $fightcurrentTurn;
     	let $fightplayerHuman;
     	let $fightplayerComputer;
@@ -3445,485 +3484,1793 @@ var app = (function () {
     class MovingDotSpaceGameFight extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$7, create_fragment$7, safe_not_equal, {});
+    		init(this, options, instance$b, create_fragment$b, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "MovingDotSpaceGameFight",
     			options,
-    			id: create_fragment$7.name
+    			id: create_fragment$b.name
     		});
     	}
     }
 
-    // themeConfig.js
-    const themes = {
-        'User Custom': {
-            background: '/AutoGameBackgrounds/space_background.png',
-            inventory: [
-                { type: "weapon", name: "Laser Gun", description: "A powerful laser weapon." },
-                // ... more space items
-            ],
-            skills: [
-                { branch: "Skill Group 1", name: "Skill One", learned: false },
-                // ... more space skills
-            ],
-            objectives: [
-                { id: "Mission 1", name: "Mission Details", complete: false },
-                // ... more space objectives
-            ],
-            // ... and so on for targets
-            storyparttargets: {
-                0: [
-                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
-                ],
-            }
-        },
-        'Default': {
-            background: '/AutoGameBackgrounds/1stGameLoc123.png',
-            inventory: [
-                { type: "weapon", name: "Sword", description: "A sharp blade." },
-                { type: "armor", name: "Shield", description: "Protects against attacks." },
-                { type: "consumable", name: "Health Potion", description: "Restores health." },
-                // ... more space items
-            ],
-            skills: [
-                { branch: "Combat", name: "Basic Attack", learned: false },
-                { branch: "Magic", name: "Fireball", learned: false },
-                { branch: "Stealth", name: "Sneak", learned: false },
-                // ... more space skills
-            ],
-            objectives: [
-                { id: "Seperate", name: "Visit Mountain Peak", complete: false },
-                { id: "Mission 1", name: "Intercept The Courier (Search the Locations)", complete: false },
-                { id: "Mission 1", name: "Deliver the package to Market Stall", complete: false },
-                // ... more space objectives
-            ],
-            // ... and so on for targets
-            storyparttargets: {
-                0: [
-                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
-                    { name: "Target 2", x: 100, y: 100, collisionType: "", collisiontext: ""},
-                    { name: "Entrance", x: 995, y: 660, collisionType: "modal", modalConfig: {
-                        title: "Entrance",
-                        content: "You've reached the Entrance. What's your next step?",
-                        actions: [
-                            {label: "Ask for guidance on next move", action: "askforDirections"},
-                            {label: "Buy an Axe", action: "buyAxeAlert"},
-                            // ... more actions if necessary
-                        ]},
-                    },
-                    { name: "Market Stall", x: 200, y: 300, collisionType: "", collisiontext: "" },   // A market stall in the bustling market area.
-                    { name: "Inn Entrance", x: 400, y: 450, collisionType: "", collisiontext: "" },   // The entrance to the inn for rest or information.
-                    { name: "Town Hall", x: 600, y: 350, collisionType: "", collisiontext: "" },      // The entrance to the town hall for quests.
-                    { name: "Fountain", x: 500, y: 500, collisionType: "", collisiontext: "" },       // A fountain in the town square as a meeting point.
-                    { name: "Bridge", x: 1100, y: 700, collisionType: "", collisiontext: "" },        // A bridge in the mystical forest area.
-                    { name: "Waterfall", x: 1300, y: 800, collisionType: "", collisiontext: "" },     // A waterfall that could hide secrets or treasures.
-                    { name: "Mountain Peak", x: 1500, y: 100, collisionType: "", collisiontext: "" },
-                    //{ name: "Mysterious Stranger", x: 350, y: 550, collisionType: "alert", collisiontext: "Beware the hidden caves in the north." },
-                    //{ name: "Hidden Cave", x: 1200, y: 400, collisionType: "changeBackgroundColor", color: "#0B3D91" },
-                    //{ name: "Ancient Tree", x: 300, y: 700, collisionType: "playSound", soundUrl: "tree_whisper.mp3" },
-                    //{ name: "Forgotten Monument", x: 700, y: 800, collisionType: "startAnimation", elementId: "monument", animationClass: "glow" },
-                    //{ name: "Wizard's Tower", x: 950, y: 150, collisionType: "rotateDot" },
-                    //{ name: "Lakeside", x: 1400, y: 600, collisionType: "changeDotColor", color: "#00BFFF" },
-                    //{ name: "Dragon's Lair", x: 1600, y: 200, collisionType: "incrementScore", incrementValue: 50 },
-                    //{ name: "Abandoned Shipwreck", x: 1300, y: 500, collisionType: "shrinkDot" },
-                    
-                    { name: "Switch Test 1", x: 700, y: 700, collisionType: "storypartchange",  collisiontext: "First Test", newStage: 1},
-                ],
-                1: [
-                    { name: "Target 1", x: 50, y: 50, collisionType: "alert",  collisiontext: "First Test"},
-                    { name: "Switch Back Test 1", x: 600, y: 400, collisionType: "storypartchange",  collisiontext: "First Test", newStage: 0},
-                ],
-            },
-        },
-        'Space Odyssey': {
-            background: '/AutoGameBackgrounds/SpaceOdysseyGameLoc.png',
-            inventory: [
-                { type: "weapon", name: "Laser Gun", description: "A powerful laser weapon." },
-                // ... more space items
-            ],
-            skills: [
-                { branch: "Piloting", name: "Astro Navigation", learned: false },
-                // ... more space skills
-            ],
-            objectives: [
-                { id: 1, name: "Dock at the Space Station", complete: false, progress: 0 },
-                { id: 2, name: "Repair the Communication Array", complete: false, progress: 0 },
-                { id: 3, name: "Collect Rare Asteroid Minerals", complete: false, progress: 0 },
-                { id: 4, name: "Negotiate Peace with the Alien Species", complete: false, progress: 0 },
-                { id: 5, name: "Explore the Abandoned Spaceship", complete: false, progress: 0 },
-                { id: 6, name: "Survive the Meteor Shower", complete: false, progress: 0 },
-                { id: 7, name: "Decrypt the Ancient Space Map", complete: false, progress: 0 },
-                { id: 8, name: "Win the Space Race", complete: false, progress: 0 },
-                { id: 9, name: "Defend the Colony from Space Pirates", complete: false, progress: 0 },
-                { id: 10, name: "Discover a New Lifeform", complete: false, progress: 0 }        
-                // ... more space objectives
-            ],
-            storyparttargets: {
-                0: [
-                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
-                ],
-            },
-        },
-        'Medieval Fantasy': {
-            background: '/AutoGameBackgrounds/MedievalFantasyGameLoc.png',
-            inventory: [
-                { type: "weapon", name: "Longsword", description: "A sturdy steel blade." },
-                // ... more medieval items
-            ],
-            skills: [
-                { branch: "Piloting", name: "Astro Navigation", learned: false },
-                // ... more space skills
-            ],
-            objectives: [
-                { id: 1, name: "Rescue the Captured Knight", complete: false, progress: 0 },
-                { id: 2, name: "Find the Lost Artifact", complete: false, progress: 0 },
-                { id: 3, name: "Defeat the Dragon", complete: false, progress: 0 },
-                { id: 4, name: "Win the Archery Tournament", complete: false, progress: 0 },
-                { id: 5, name: "Break the Evil Curse", complete: false, progress: 0 },
-                { id: 6, name: "Uncover the Secret of the Ancient Ruins", complete: false, progress: 0 },
-                { id: 7, name: "Protect the Village from Bandits", complete: false, progress: 0 },
-                { id: 8, name: "Retrieve the Stolen Royal Jewels", complete: false, progress: 0 },
-                { id: 9, name: "Discover the Hidden Enchanted Forest", complete: false, progress: 0 },
-                { id: 10, name: "Master the Forbidden Magic Spell", complete: false, progress: 0 }        
-                // ... more space objectives
-            ],
-            storyparttargets: {
-                0: [
-                    { name: "Castle", x: 940, y: 460, collisionType: "alert", collisiontext: "The King of this land has summoned you to find and release his champion Daryl the Knight. Find him and free him"},
-                    { name: "Hidden Space", x: 460, y: 570, collisionType: "alert", collisiontext: "Seems like a hidden space. Nobody is here currently."},
-                    { name: "Home", x: 640, y: 500, collisionType: "modal", modalConfig: {
-                        title: "Your Space",
-                        content: "Rest and prepare for your tasks. Sometimes you hear noises in the area but this is the area with least interference",
-                        actions: [
-                            {label: "Ask for guidance on next move", action: "askforDirections"},
-                            {label: "Buy an Axe", action: "buyAxeAlert"},
-                            // ... more actions if necessary
-                        ]},
-                     },
-                ],
-            },
-            // ... skills, objectives, and targets for medieval theme
-        },
-        'Cyberpunk': {
-            background: '/AutoGameBackgrounds/CyberpunkGameLoc.png',
-            inventory: [
-                { type: "weapon", name: "Plasma Rifle", description: "A high-tech firearm with plasma rounds." },
-                { type: "armor", name: "NanoSuit", description: "Protects with reactive nano technology." },
-                { type: "consumable", name: "Stim Pack", description: "Enhances reflexes temporarily." },
-                // ... more cyberpunk items
-            ],
-            // ... skills, objectives, and targets for cyberpunk theme
-            skills: [
-                { branch: "Hacking", name: "Cyber Intrusion", learned: false },
-                { branch: "Combat", name: "Gun Kata", learned: false },
-                { branch: "Stealth", name: "Cloaking", learned: false },
-                // ... more space skills
-            ],
-            objectives: [ 
-                { id: 1, name: "Hack the Mainframe", complete: false, progress: 0 },
-                { id: 2, name: "Escape the Megacorp Security", complete: false, progress: 0 },
-                { id: 3, name: "Infiltrate the Underground Hacker Group", complete: false, progress: 0 },
-                { id: 4, name: "Negotiate a Truce with the Rival Gang", complete: false, progress: 0 },
-                { id: 5, name: "Expose the Corrupt Politician", complete: false, progress: 0 },
-                { id: 6, name: "Survive the Drone Assault", complete: false, progress: 0 },
-                { id: 7, name: "Retrieve the Stolen Cybernetic Tech", complete: false, progress: 0 },
-                { id: 8, name: "Win the Street Race in Neo-Tokyo", complete: false, progress: 0 },
-                { id: 9, name: "Decrypt the Corporate Data Files", complete: false, progress: 0 },
-                { id: 10, name: "Disarm the City-Wide Neural Bomb", complete: false, progress: 0 }
-       
-                // ... more space objectives
-            ],
-            storyparttargets: { 
-                0: [
-                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
-                    { name: "MegaCorp Server", x: 200, y: 50, collisionType: "alert", collisiontext: "First Test"},
-                    { name: "City Police", x: 50, y: 250, collisionType: "alert", collisiontext: "First Test"},
-                    { name: "Rival Gang", x: 550, y: 550, collisionType: "alert", collisiontext: "First Test"},
-                ],
-            },
-        },
-        'Super Teacher': {
-            background: '/AutoGameBackgrounds/SuperTeacherGameLoc.png',
-            inventory: [
-                { type: "book", name: "Math Advice", description: "Useful topical knowledge." },
-                { type: "book", name: "Science Advice", description: "Useful topical knowledge." },
-                { type: "book", name: "English Advice", description: "Useful topical knowledge." },
-                { type: "book", name: "Economics Advice", description: "Useful topical knowledge." },
-                // ... more space items
-            ],
-            skills: [
-                { branch: "Multitask", name: "Movement Speed", learned: false },
-                { branch: "Multitask", name: "Stop Window Interference for 1 min", learned: false },
-                // ... more space skills
-            ],
-            objectives: [
-                { id: "Mission 1", name: "Get the children to grade one 1 level", complete: false },
-                { id: "Mission 2", name: "Get the children to grade one 2 level", complete: false },
-                { id: "Mission 3", name: "Get the children to grade one 3 level", complete: false },
-                // ... more space objectives
-            ],
-            // ... and so on for targets
-            storyparttargets: {
-                0: [
-                    { name: "Super Teacher Toolkit", x: 1000, y: 330, collisionType: "alert", collisiontext: "First Test"},
-                    { name: "Random Noise Interference", x: 250, y: 110, collisionType: "alert", collisiontext: "First Test"},
-                    { name: "Student 1", x: 310, y: 620, collisionType: "alert", collisiontext: "Attention fully restored. Needs reasoning help with english"},
-                    { name: "Student 2", x: 660, y: 610, collisionType: "alert", collisiontext: "Attention fully restored. Doesnt speak english."},
-                    { name: "Student 3", x: 1010, y: 620, collisionType: "alert", collisiontext: "Attention fully restored. Needs reasoning help with math"},
-                ],
-            }
-        },
-        'Fantasy Adventure': {
-            background: '/AutoGameBackgrounds/eldoria_background.png',
-            inventory: [
-                { type: "book", name: "Book of Eldrak", description: "An ancient tome containing half of a map." },
-                { type: "amulet", name: "Peculiar Amulet", description: "A mysterious amulet bought in Meridia, reveals the unseen." },
-                // ... more fantasy items
-            ],
-            skills: [
-                { branch: "Combat", name: "Sword Mastery", learned: false },
-                { branch: "Magic", name: "Elemental Control", learned: false },
-                // ... more fantasy skills
-            ],
-            objectives: [
-                { id: "FindBook", name: "Find the Book of Eldrak", complete: false },
-                { id: "GetAmulet", name: "Acquire the Peculiar Amulet", complete: false },
-                { id: "DiscoverArtefact", name: "Uncover the Artefact of Vorin", complete: false },
-                // ... more fantasy objectives
-            ],
-            storyparttargets: {
-                0: [
-                    { name: "Eldoria Main Square", x: 410, y: 590, collisionType: "alert", collisiontext: "The heart of Eldoria, bustling with townsfolk and traders."},
-                    { name: "Lila's Home", x: 460, y: 600, collisionType: "alert", collisiontext: "A cozy cottage where Lila's quest for knowledge begins."},
-                    { name: "Eldoria Library", x: 360, y: 620, collisionType: "alert", collisiontext: "A treasure trove of books and maps. Lila spends hours here."},
-                    { name: "Whispering Forest Edge", x: 830, y: 700, collisionType: "alert", collisiontext: "The mysterious forest that borders Eldoria. Lila feels drawn to its secrets."},
-                    { name: "Serene Hills", x: 520, y: 490, collisionType: "alert", collisiontext: "Gentle hills that promise adventure beyond Eldoria. Lila often gazes here, dreaming of what lies beyond."},
-                    { name: "Marketplace", x: 360, y: 560, collisionType: "alert", collisiontext: "A place of trade and gossip. Lila hears rumors of ancient artifacts here."},
-                    { name: "Eldoria", x: 490, y: 420, collisionType: "storypartchange", collisiontext: "Your journey begins in the quaint town of Eldoria.", newStage: 1},
-                    { name: "Old Sage's Hut", x: 600, y: 480, collisionType: "modal", collisiontext: "The home of Eldoria's oldest sage. Lila seeks his wisdom for her journey."},
-                ],
-                1: [
-                    { name: "Library of Eldrak", x: 620, y: 600, collisionType: "alert", collisiontext: "You discover the ancient Book of Eldrak."},
-                    { name: "Meridia Market", x: 750, y: 590, collisionType: "alert", collisiontext: "A peculiar amulet catches your eye, promising to reveal the unseen."},
-                    { name: "Suspicious Place", x: 810, y: 530, collisionType: "decision", collisiontext: "Do you know why you came here?"},
-                ],
-                2: [
-                    { name: "Whispering Woods", x: 400, y: 300, collisionType: "modal", collisiontext: "The woods are dense and mysterious, hiding both allies and secrets."},
-                ],
-                3: [
-                    { name: "Shadowed Caverns", x: 600, y: 400, collisionType: "fight", collisiontext: "The lair of the Keepers. A test of strength and wit awaits."},
-                ],
-                4: [
-                    { name: "Return to Eldoria", x: 100, y: 500, collisionType: "end", collisiontext: "With the Artefact of Vorin, you return, forever changed by your journey."},
-                ],
-                // ... additional story parts as needed
-            }
-        },    
-    };
-
-    /* src\MovingDotSpacePortfromReact.svelte generated by Svelte v3.59.2 */
-
-    const { Object: Object_1$1, console: console_1$4 } = globals;
-
-    const file$6 = "src\\MovingDotSpacePortfromReact.svelte";
-
-    function get_each_context$3(ctx, list, i) {
-    	const child_ctx = ctx.slice();
-    	child_ctx[25] = list[i];
-    	return child_ctx;
-    }
+    /* src\MovingDotSpaceModalBrainstorm.svelte generated by Svelte v3.59.2 */
+    const file$a = "src\\MovingDotSpaceModalBrainstorm.svelte";
 
-    function get_each_context_1(ctx, list, i) {
+    function get_each_context$7(ctx, list, i) {
     	const child_ctx = ctx.slice();
-    	child_ctx[28] = list[i];
+    	child_ctx[7] = list[i];
     	return child_ctx;
     }
 
-    // (166:4) {#each themeKeys as key}
-    function create_each_block_1(ctx) {
-    	let option;
-    	let t_value = /*key*/ ctx[28] + "";
+    // (52:6) {#each options as option}
+    function create_each_block$7(ctx) {
+    	let button;
+    	let t_value = /*option*/ ctx[7].text + "";
     	let t;
+    	let mounted;
+    	let dispose;
+
+    	function click_handler() {
+    		return /*click_handler*/ ctx[4](/*option*/ ctx[7]);
+    	}
 
     	const block = {
     		c: function create() {
-    			option = element("option");
+    			button = element("button");
     			t = text(t_value);
-    			option.__value = /*key*/ ctx[28];
-    			option.value = option.__value;
-    			add_location(option, file$6, 166, 8, 6409);
+    			add_location(button, file$a, 52, 8, 2162);
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, option, anchor);
-    			append_dev(option, t);
+    			insert_dev(target, button, anchor);
+    			append_dev(button, t);
+
+    			if (!mounted) {
+    				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
+    				mounted = true;
+    			}
+    		},
+    		p: function update(new_ctx, dirty) {
+    			ctx = new_ctx;
     		},
-    		p: noop,
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(option);
+    			if (detaching) detach_dev(button);
+    			mounted = false;
+    			dispose();
     		}
     	};
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block_1.name,
+    		id: create_each_block$7.name,
     		type: "each",
-    		source: "(166:4) {#each themeKeys as key}",
+    		source: "(52:6) {#each options as option}",
     		ctx
     	});
 
     	return block;
     }
 
-    // (176:4) {#each $targets as target (target.name)}
-    function create_each_block$3(key_1, ctx) {
-    	let first;
-    	let target;
-    	let t0;
-    	let span;
-    	let t1_value = /*target*/ ctx[25].name + "";
+    function create_fragment$a(ctx) {
+    	let div1;
+    	let h2;
     	let t1;
-    	let current;
+    	let p0;
+    	let t3;
+    	let p1;
+    	let t4;
+    	let t5;
+    	let div0;
+    	let t6;
+    	let p2;
+    	let t7;
+    	let each_value = /*options*/ ctx[3];
+    	validate_each_argument(each_value);
+    	let each_blocks = [];
 
-    	target = new MovingDotTargetPortfromReact({
-    			props: { position: /*target*/ ctx[25] },
-    			$$inline: true
-    		});
+    	for (let i = 0; i < each_value.length; i += 1) {
+    		each_blocks[i] = create_each_block$7(get_each_context$7(ctx, each_value, i));
+    	}
 
     	const block = {
-    		key: key_1,
-    		first: null,
     		c: function create() {
-    			first = empty();
-    			create_component(target.$$.fragment);
-    			t0 = space();
-    			span = element("span");
-    			t1 = text(t1_value);
-    			set_style(span, "position", "absolute");
-    			set_style(span, "left", /*target*/ ctx[25].x + "px");
-    			set_style(span, "top", /*target*/ ctx[25].y + "px");
-    			add_location(span, file$6, 177, 8, 7455);
-    			this.first = first;
+    			div1 = element("div");
+    			h2 = element("h2");
+    			h2.textContent = "Spatial Anomaly";
+    			t1 = space();
+    			p0 = element("p");
+    			p0.textContent = `${/*anomalyDescription*/ ctx[2]}`;
+    			t3 = space();
+    			p1 = element("p");
+    			t4 = text(/*analyzeResult*/ ctx[0]);
+    			t5 = space();
+    			div0 = element("div");
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				each_blocks[i].c();
+    			}
+
+    			t6 = space();
+    			p2 = element("p");
+    			t7 = text(/*interactResult*/ ctx[1]);
+    			add_location(h2, file$a, 46, 4, 1987);
+    			add_location(p0, file$a, 47, 4, 2017);
+    			add_location(p1, file$a, 49, 4, 2086);
+    			add_location(div0, file$a, 50, 4, 2114);
+    			add_location(p2, file$a, 55, 4, 2258);
+    			add_location(div1, file$a, 45, 2, 1976);
     		},
-    		m: function mount(target$1, anchor) {
-    			insert_dev(target$1, first, anchor);
-    			mount_component(target, target$1, anchor);
-    			insert_dev(target$1, t0, anchor);
-    			insert_dev(target$1, span, anchor);
-    			append_dev(span, t1);
-    			current = true;
+    		l: function claim(nodes) {
+    			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
     		},
-    		p: function update(new_ctx, dirty) {
-    			ctx = new_ctx;
-    			const target_changes = {};
-    			if (dirty & /*$targets*/ 1024) target_changes.position = /*target*/ ctx[25];
-    			target.$set(target_changes);
-    			if ((!current || dirty & /*$targets*/ 1024) && t1_value !== (t1_value = /*target*/ ctx[25].name + "")) set_data_dev(t1, t1_value);
+    		m: function mount(target, anchor) {
+    			insert_dev(target, div1, anchor);
+    			append_dev(div1, h2);
+    			append_dev(div1, t1);
+    			append_dev(div1, p0);
+    			append_dev(div1, t3);
+    			append_dev(div1, p1);
+    			append_dev(p1, t4);
+    			append_dev(div1, t5);
+    			append_dev(div1, div0);
 
-    			if (!current || dirty & /*$targets*/ 1024) {
-    				set_style(span, "left", /*target*/ ctx[25].x + "px");
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				if (each_blocks[i]) {
+    					each_blocks[i].m(div0, null);
+    				}
     			}
 
-    			if (!current || dirty & /*$targets*/ 1024) {
-    				set_style(span, "top", /*target*/ ctx[25].y + "px");
-    			}
-    		},
-    		i: function intro(local) {
-    			if (current) return;
-    			transition_in(target.$$.fragment, local);
-    			current = true;
+    			append_dev(div1, t6);
+    			append_dev(div1, p2);
+    			append_dev(p2, t7);
     		},
-    		o: function outro(local) {
-    			transition_out(target.$$.fragment, local);
-    			current = false;
+    		p: function update(ctx, [dirty]) {
+    			if (dirty & /*analyzeResult*/ 1) set_data_dev(t4, /*analyzeResult*/ ctx[0]);
+
+    			if (dirty & /*options*/ 8) {
+    				each_value = /*options*/ ctx[3];
+    				validate_each_argument(each_value);
+    				let i;
+
+    				for (i = 0; i < each_value.length; i += 1) {
+    					const child_ctx = get_each_context$7(ctx, each_value, i);
+
+    					if (each_blocks[i]) {
+    						each_blocks[i].p(child_ctx, dirty);
+    					} else {
+    						each_blocks[i] = create_each_block$7(child_ctx);
+    						each_blocks[i].c();
+    						each_blocks[i].m(div0, null);
+    					}
+    				}
+
+    				for (; i < each_blocks.length; i += 1) {
+    					each_blocks[i].d(1);
+    				}
+
+    				each_blocks.length = each_value.length;
+    			}
+
+    			if (dirty & /*interactResult*/ 2) set_data_dev(t7, /*interactResult*/ ctx[1]);
     		},
+    		i: noop,
+    		o: noop,
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(first);
-    			destroy_component(target, detaching);
-    			if (detaching) detach_dev(t0);
-    			if (detaching) detach_dev(span);
+    			if (detaching) detach_dev(div1);
+    			destroy_each(each_blocks, detaching);
     		}
     	};
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block$3.name,
-    		type: "each",
-    		source: "(176:4) {#each $targets as target (target.name)}",
+    		id: create_fragment$a.name,
+    		type: "component",
+    		source: "",
     		ctx
     	});
 
     	return block;
     }
 
-    // (182:4) {#if isModalOpen}
-    function create_if_block$3(ctx) {
-    	let modal;
-    	let current;
+    function ignoreAnomaly() {
+    	
+    } // Code to ignore the anomaly and continue the game
+    // ...
 
-    	modal = new MovingDotSpaceSimpleModal({
-    			props: {
-    				isOpen: /*isModalOpen*/ ctx[3],
-    				onClose: /*handleModalClose*/ ctx[16],
-    				title: /*currentcollisiontitletext*/ ctx[4],
-    				content: /*currentcollisiontext*/ ctx[5],
-    				items: /*currentcollisionitems*/ ctx[6],
-    				currentTheme: /*currentTheme*/ ctx[8]
-    			},
-    			$$inline: true
-    		});
+    function instance$a($$self, $$props, $$invalidate) {
+    	let { $$slots: slots = {}, $$scope } = $$props;
+    	validate_slots('MovingDotSpaceModalBrainstorm', slots, []);
+    	let anomalyDescription = "A massive spatial anomaly has been detected in your vicinity. Scanner readings indicate it could be a wormhole or a highly unstable nebula. Proceed with caution.";
 
-    	const block = {
-    		c: function create() {
-    			create_component(modal.$$.fragment);
-    		},
-    		m: function mount(target, anchor) {
-    			mount_component(modal, target, anchor);
-    			current = true;
-    		},
-    		p: function update(ctx, dirty) {
-    			const modal_changes = {};
-    			if (dirty & /*isModalOpen*/ 8) modal_changes.isOpen = /*isModalOpen*/ ctx[3];
-    			if (dirty & /*currentcollisiontitletext*/ 16) modal_changes.title = /*currentcollisiontitletext*/ ctx[4];
-    			if (dirty & /*currentcollisiontext*/ 32) modal_changes.content = /*currentcollisiontext*/ ctx[5];
-    			if (dirty & /*currentcollisionitems*/ 64) modal_changes.items = /*currentcollisionitems*/ ctx[6];
-    			if (dirty & /*currentTheme*/ 256) modal_changes.currentTheme = /*currentTheme*/ ctx[8];
-    			modal.$set(modal_changes);
-    		},
-    		i: function intro(local) {
-    			if (current) return;
-    			transition_in(modal.$$.fragment, local);
-    			current = true;
+    	let options = [
+    		{
+    			text: "Analyze Anomaly",
+    			action: analyzeAnomaly
     		},
-    		o: function outro(local) {
-    			transition_out(modal.$$.fragment, local);
-    			current = false;
+    		{
+    			text: "Interact with Anomaly",
+    			action: interactAnomaly
     		},
-    		d: function destroy(detaching) {
-    			destroy_component(modal, detaching);
+    		{
+    			text: "Ignore Anomaly",
+    			action: ignoreAnomaly
     		}
-    	};
+    	];
 
-    	dispatch_dev("SvelteRegisterBlock", {
-    		block,
-    		id: create_if_block$3.name,
-    		type: "if",
-    		source: "(182:4) {#if isModalOpen}",
-    		ctx
+    	let analyzeResult = "";
+    	let interactResult = "";
+
+    	onMount(() => {
+    		// Perform initial anomaly scan
+    		analyzeAnomaly();
     	});
 
-    	return block;
-    }
+    	function analyzeAnomaly() {
+    		// Simulate anomaly analysis
+    		setTimeout(
+    			() => {
+    				$$invalidate(0, analyzeResult = "Scans indicate the anomaly is a highly volatile wormhole. Tampering with it could be extremely dangerous or potentially open up new regions of space.");
+    			},
+    			2000
+    		);
+    	}
 
-    function create_fragment$6(ctx) {
-    	let t0;
-    	let select;
-    	let t1;
-    	let dotgamethememanager;
-    	let t2;
-    	let div1;
-    	let canvas_1;
+    	function interactAnomaly() {
+    		// Simulate anomaly interaction
+    		setTimeout(
+    			() => {
+    				const randomOutcome = Math.random();
+
+    				if (randomOutcome < 0.3) {
+    					$$invalidate(1, interactResult = "Your attempt to interact with the wormhole has destabilized it, causing severe damage to your ship's systems. You'll need to find a safe haven for repairs.");
+    				} else if (randomOutcome < 0.6) {
+    					$$invalidate(1, interactResult = "The wormhole seems to have transported you to an unknown region of space. Your navigational systems are scrambled, and you'll need to find a way to recalibrate them.");
+    				} else {
+    					$$invalidate(1, interactResult = "Your interaction with the wormhole appears to have been successful. You've discovered a hidden sector filled with valuable resources and advanced technology.");
+    				}
+    			},
+    			3000
+    		);
+    	}
+
+    	const writable_props = [];
+
+    	Object.keys($$props).forEach(key => {
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<MovingDotSpaceModalBrainstorm> was created with unknown prop '${key}'`);
+    	});
+
+    	const click_handler = option => option.action();
+
+    	$$self.$capture_state = () => ({
+    		onMount,
+    		anomalyDescription,
+    		options,
+    		analyzeResult,
+    		interactResult,
+    		analyzeAnomaly,
+    		interactAnomaly,
+    		ignoreAnomaly
+    	});
+
+    	$$self.$inject_state = $$props => {
+    		if ('anomalyDescription' in $$props) $$invalidate(2, anomalyDescription = $$props.anomalyDescription);
+    		if ('options' in $$props) $$invalidate(3, options = $$props.options);
+    		if ('analyzeResult' in $$props) $$invalidate(0, analyzeResult = $$props.analyzeResult);
+    		if ('interactResult' in $$props) $$invalidate(1, interactResult = $$props.interactResult);
+    	};
+
+    	if ($$props && "$$inject" in $$props) {
+    		$$self.$inject_state($$props.$$inject);
+    	}
+
+    	return [analyzeResult, interactResult, anomalyDescription, options, click_handler];
+    }
+
+    class MovingDotSpaceModalBrainstorm extends SvelteComponentDev {
+    	constructor(options) {
+    		super(options);
+    		init(this, options, instance$a, create_fragment$a, safe_not_equal, {});
+
+    		dispatch_dev("SvelteRegisterComponent", {
+    			component: this,
+    			tagName: "MovingDotSpaceModalBrainstorm",
+    			options,
+    			id: create_fragment$a.name
+    		});
+    	}
+    }
+
+    /* src\MovingDotSpaceGameFind.svelte generated by Svelte v3.59.2 */
+
+    const file$9 = "src\\MovingDotSpaceGameFind.svelte";
+
+    function get_each_context$6(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[9] = list[i];
+    	child_ctx[11] = i;
+    	return child_ctx;
+    }
+
+    function get_each_context_1$2(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[12] = list[i];
+    	child_ctx[14] = i;
+    	return child_ctx;
+    }
+
+    // (63:4) {:else}
+    function create_else_block$1(ctx) {
+    	let p;
+
+    	const block = {
+    		c: function create() {
+    			p = element("p");
+    			p.textContent = "Game over. Try again!";
+    			add_location(p, file$9, 63, 6, 1832);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, p, anchor);
+    		},
+    		p: noop,
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(p);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_else_block$1.name,
+    		type: "else",
+    		source: "(63:4) {:else}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (61:34) 
+    function create_if_block_1$2(ctx) {
+    	let p;
+
+    	const block = {
+    		c: function create() {
+    			p = element("p");
+    			p.textContent = "You won! 🎉";
+    			add_location(p, file$9, 61, 6, 1793);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, p, anchor);
+    		},
+    		p: noop,
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(p);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_if_block_1$2.name,
+    		type: "if",
+    		source: "(61:34) ",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (59:4) {#if gameState === 'playing'}
+    function create_if_block$5(ctx) {
+    	let p;
+    	let t0;
+    	let t1;
+
+    	const block = {
+    		c: function create() {
+    			p = element("p");
+    			t0 = text("Presses Remaining: ");
+    			t1 = text(/*pressesRemaining*/ ctx[0]);
+    			add_location(p, file$9, 59, 6, 1705);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, p, anchor);
+    			append_dev(p, t0);
+    			append_dev(p, t1);
+    		},
+    		p: function update(ctx, dirty) {
+    			if (dirty & /*pressesRemaining*/ 1) set_data_dev(t1, /*pressesRemaining*/ ctx[0]);
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(p);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_if_block$5.name,
+    		type: "if",
+    		source: "(59:4) {#if gameState === 'playing'}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (71:6) {#each row as cell, colIndex}
+    function create_each_block_1$2(ctx) {
+    	let button;
+
+    	let t0_value = (/*cell*/ ctx[12].pressed
+    	? /*rowIndex*/ ctx[11] === /*correctItem*/ ctx[1].row && /*colIndex*/ ctx[14] === /*correctItem*/ ctx[1].col
+    		? '✅'
+    		: '❌'
+    	: '') + "";
+
+    	let t0;
+    	let t1;
+    	let button_disabled_value;
+    	let mounted;
+    	let dispose;
+
+    	function click_handler() {
+    		return /*click_handler*/ ctx[6](/*rowIndex*/ ctx[11], /*colIndex*/ ctx[14]);
+    	}
+
+    	const block = {
+    		c: function create() {
+    			button = element("button");
+    			t0 = text(t0_value);
+    			t1 = space();
+    			button.disabled = button_disabled_value = /*gameState*/ ctx[2] !== 'playing';
+    			attr_dev(button, "class", "svelte-p3ubim");
+    			toggle_class(button, "pressed", /*cell*/ ctx[12].pressed);
+    			add_location(button, file$9, 71, 8, 2045);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, button, anchor);
+    			append_dev(button, t0);
+    			append_dev(button, t1);
+
+    			if (!mounted) {
+    				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
+    				mounted = true;
+    			}
+    		},
+    		p: function update(new_ctx, dirty) {
+    			ctx = new_ctx;
+
+    			if (dirty & /*grid, correctItem*/ 10 && t0_value !== (t0_value = (/*cell*/ ctx[12].pressed
+    			? /*rowIndex*/ ctx[11] === /*correctItem*/ ctx[1].row && /*colIndex*/ ctx[14] === /*correctItem*/ ctx[1].col
+    				? '✅'
+    				: '❌'
+    			: '') + "")) set_data_dev(t0, t0_value);
+
+    			if (dirty & /*gameState*/ 4 && button_disabled_value !== (button_disabled_value = /*gameState*/ ctx[2] !== 'playing')) {
+    				prop_dev(button, "disabled", button_disabled_value);
+    			}
+
+    			if (dirty & /*grid*/ 8) {
+    				toggle_class(button, "pressed", /*cell*/ ctx[12].pressed);
+    			}
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(button);
+    			mounted = false;
+    			dispose();
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_each_block_1$2.name,
+    		type: "each",
+    		source: "(71:6) {#each row as cell, colIndex}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (70:4) {#each grid as row, rowIndex}
+    function create_each_block$6(ctx) {
+    	let each_1_anchor;
+    	let each_value_1 = /*row*/ ctx[9];
+    	validate_each_argument(each_value_1);
+    	let each_blocks = [];
+
+    	for (let i = 0; i < each_value_1.length; i += 1) {
+    		each_blocks[i] = create_each_block_1$2(get_each_context_1$2(ctx, each_value_1, i));
+    	}
+
+    	const block = {
+    		c: function create() {
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				each_blocks[i].c();
+    			}
+
+    			each_1_anchor = empty();
+    		},
+    		m: function mount(target, anchor) {
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				if (each_blocks[i]) {
+    					each_blocks[i].m(target, anchor);
+    				}
+    			}
+
+    			insert_dev(target, each_1_anchor, anchor);
+    		},
+    		p: function update(ctx, dirty) {
+    			if (dirty & /*gameState, grid, pressButton, correctItem*/ 30) {
+    				each_value_1 = /*row*/ ctx[9];
+    				validate_each_argument(each_value_1);
+    				let i;
+
+    				for (i = 0; i < each_value_1.length; i += 1) {
+    					const child_ctx = get_each_context_1$2(ctx, each_value_1, i);
+
+    					if (each_blocks[i]) {
+    						each_blocks[i].p(child_ctx, dirty);
+    					} else {
+    						each_blocks[i] = create_each_block_1$2(child_ctx);
+    						each_blocks[i].c();
+    						each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor);
+    					}
+    				}
+
+    				for (; i < each_blocks.length; i += 1) {
+    					each_blocks[i].d(1);
+    				}
+
+    				each_blocks.length = each_value_1.length;
+    			}
+    		},
+    		d: function destroy(detaching) {
+    			destroy_each(each_blocks, detaching);
+    			if (detaching) detach_dev(each_1_anchor);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_each_block$6.name,
+    		type: "each",
+    		source: "(70:4) {#each grid as row, rowIndex}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    function create_fragment$9(ctx) {
+    	let div0;
+    	let t0;
+    	let button;
+    	let t2;
+    	let div1;
+    	let mounted;
+    	let dispose;
+
+    	function select_block_type(ctx, dirty) {
+    		if (/*gameState*/ ctx[2] === 'playing') return create_if_block$5;
+    		if (/*gameState*/ ctx[2] === 'won') return create_if_block_1$2;
+    		return create_else_block$1;
+    	}
+
+    	let current_block_type = select_block_type(ctx);
+    	let if_block = current_block_type(ctx);
+    	let each_value = /*grid*/ ctx[3];
+    	validate_each_argument(each_value);
+    	let each_blocks = [];
+
+    	for (let i = 0; i < each_value.length; i += 1) {
+    		each_blocks[i] = create_each_block$6(get_each_context$6(ctx, each_value, i));
+    	}
+
+    	const block = {
+    		c: function create() {
+    			div0 = element("div");
+    			if_block.c();
+    			t0 = space();
+    			button = element("button");
+    			button.textContent = "Restart Game";
+    			t2 = space();
+    			div1 = element("div");
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				each_blocks[i].c();
+    			}
+
+    			attr_dev(button, "class", "svelte-p3ubim");
+    			add_location(button, file$9, 65, 4, 1877);
+    			add_location(div0, file$9, 57, 2, 1657);
+    			attr_dev(div1, "class", "grid svelte-p3ubim");
+    			add_location(div1, file$9, 68, 2, 1945);
+    		},
+    		l: function claim(nodes) {
+    			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, div0, anchor);
+    			if_block.m(div0, null);
+    			append_dev(div0, t0);
+    			append_dev(div0, button);
+    			insert_dev(target, t2, anchor);
+    			insert_dev(target, div1, anchor);
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				if (each_blocks[i]) {
+    					each_blocks[i].m(div1, null);
+    				}
+    			}
+
+    			if (!mounted) {
+    				dispose = listen_dev(button, "click", /*resetGame*/ ctx[5], false, false, false, false);
+    				mounted = true;
+    			}
+    		},
+    		p: function update(ctx, [dirty]) {
+    			if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {
+    				if_block.p(ctx, dirty);
+    			} else {
+    				if_block.d(1);
+    				if_block = current_block_type(ctx);
+
+    				if (if_block) {
+    					if_block.c();
+    					if_block.m(div0, t0);
+    				}
+    			}
+
+    			if (dirty & /*grid, gameState, pressButton, correctItem*/ 30) {
+    				each_value = /*grid*/ ctx[3];
+    				validate_each_argument(each_value);
+    				let i;
+
+    				for (i = 0; i < each_value.length; i += 1) {
+    					const child_ctx = get_each_context$6(ctx, each_value, i);
+
+    					if (each_blocks[i]) {
+    						each_blocks[i].p(child_ctx, dirty);
+    					} else {
+    						each_blocks[i] = create_each_block$6(child_ctx);
+    						each_blocks[i].c();
+    						each_blocks[i].m(div1, null);
+    					}
+    				}
+
+    				for (; i < each_blocks.length; i += 1) {
+    					each_blocks[i].d(1);
+    				}
+
+    				each_blocks.length = each_value.length;
+    			}
+    		},
+    		i: noop,
+    		o: noop,
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(div0);
+    			if_block.d();
+    			if (detaching) detach_dev(t2);
+    			if (detaching) detach_dev(div1);
+    			destroy_each(each_blocks, detaching);
+    			mounted = false;
+    			dispose();
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_fragment$9.name,
+    		type: "component",
+    		source: "",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    function instance$9($$self, $$props, $$invalidate) {
+    	let { $$slots: slots = {}, $$scope } = $$props;
+    	validate_slots('MovingDotSpaceGameFind', slots, []);
+    	let gridSize = 10;
+    	let maxPresses = 20; // Maximum number of presses allowed
+    	let pressesRemaining = maxPresses;
+
+    	let correctItem = {
+    		row: Math.floor(Math.random() * gridSize),
+    		col: Math.floor(Math.random() * gridSize)
+    	};
+
+    	let gameState = "playing"; // Can be "playing", "won", or "lost"
+
+    	// Generate initial grid state
+    	let grid = Array(gridSize).fill().map(() => Array(gridSize).fill().map(() => ({ pressed: false })));
+
+    	function pressButton(row, col) {
+    		if (grid[row][col].pressed || pressesRemaining === 0 || gameState !== "playing") {
+    			return; // Ignore if already pressed or no presses left or game not in playing state
+    		}
+
+    		$$invalidate(3, grid[row][col].pressed = true, grid);
+    		$$invalidate(0, pressesRemaining -= 1);
+
+    		// Check for win condition
+    		if (row === correctItem.row && col === correctItem.col) {
+    			$$invalidate(2, gameState = "won");
+    		} else if (pressesRemaining === 0) {
+    			$$invalidate(2, gameState = "lost");
+    		}
+    	}
+
+    	function resetGame() {
+    		$$invalidate(0, pressesRemaining = maxPresses);
+
+    		$$invalidate(1, correctItem = {
+    			row: Math.floor(Math.random() * gridSize),
+    			col: Math.floor(Math.random() * gridSize)
+    		});
+
+    		$$invalidate(3, grid = Array(gridSize).fill().map(() => Array(gridSize).fill().map(() => ({ pressed: false }))));
+    		$$invalidate(2, gameState = "playing");
+    	}
+
+    	const writable_props = [];
+
+    	Object.keys($$props).forEach(key => {
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<MovingDotSpaceGameFind> was created with unknown prop '${key}'`);
+    	});
+
+    	const click_handler = (rowIndex, colIndex) => pressButton(rowIndex, colIndex);
+
+    	$$self.$capture_state = () => ({
+    		gridSize,
+    		maxPresses,
+    		pressesRemaining,
+    		correctItem,
+    		gameState,
+    		grid,
+    		pressButton,
+    		resetGame
+    	});
+
+    	$$self.$inject_state = $$props => {
+    		if ('gridSize' in $$props) gridSize = $$props.gridSize;
+    		if ('maxPresses' in $$props) maxPresses = $$props.maxPresses;
+    		if ('pressesRemaining' in $$props) $$invalidate(0, pressesRemaining = $$props.pressesRemaining);
+    		if ('correctItem' in $$props) $$invalidate(1, correctItem = $$props.correctItem);
+    		if ('gameState' in $$props) $$invalidate(2, gameState = $$props.gameState);
+    		if ('grid' in $$props) $$invalidate(3, grid = $$props.grid);
+    	};
+
+    	if ($$props && "$$inject" in $$props) {
+    		$$self.$inject_state($$props.$$inject);
+    	}
+
+    	return [
+    		pressesRemaining,
+    		correctItem,
+    		gameState,
+    		grid,
+    		pressButton,
+    		resetGame,
+    		click_handler
+    	];
+    }
+
+    class MovingDotSpaceGameFind extends SvelteComponentDev {
+    	constructor(options) {
+    		super(options);
+    		init(this, options, instance$9, create_fragment$9, safe_not_equal, {});
+
+    		dispatch_dev("SvelteRegisterComponent", {
+    			component: this,
+    			tagName: "MovingDotSpaceGameFind",
+    			options,
+    			id: create_fragment$9.name
+    		});
+    	}
+    }
+
+    /* src\MovingDotSpaceGameOrder.svelte generated by Svelte v3.59.2 */
+
+    const file$8 = "src\\MovingDotSpaceGameOrder.svelte";
+
+    function get_each_context$5(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[10] = list[i];
+    	child_ctx[12] = i;
+    	return child_ctx;
+    }
+
+    // (72:39) 
+    function create_if_block_2(ctx) {
+    	let p;
+
+    	const block = {
+    		c: function create() {
+    			p = element("p");
+    			p.textContent = "Incorrect order. Try again!";
+    			add_location(p, file$8, 72, 4, 2206);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, p, anchor);
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(p);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_if_block_2.name,
+    		type: "if",
+    		source: "(72:39) ",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (70:2) {#if gameStatus === "correct"}
+    function create_if_block_1$1(ctx) {
+    	let p;
+
+    	const block = {
+    		c: function create() {
+    			p = element("p");
+    			p.textContent = "You guessed the correct order! 🎉";
+    			add_location(p, file$8, 70, 4, 2119);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, p, anchor);
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(p);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_if_block_1$1.name,
+    		type: "if",
+    		source: "(70:2) {#if gameStatus === \\\"correct\\\"}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (79:4) {#each Array(gridSize) as _, i}
+    function create_each_block$5(ctx) {
+    	let button;
+    	let t0_value = /*i*/ ctx[12] + 1 + "";
+    	let t0;
+    	let t1;
+    	let mounted;
+    	let dispose;
+
+    	function click_handler() {
+    		return /*click_handler*/ ctx[8](/*i*/ ctx[12]);
+    	}
+
+    	const block = {
+    		c: function create() {
+    			button = element("button");
+    			t0 = text(t0_value);
+    			t1 = space();
+    			attr_dev(button, "data-number", /*i*/ ctx[12] + 1);
+    			attr_dev(button, "class", "svelte-7k1yf9");
+    			toggle_class(button, "pressed", /*userOrder*/ ctx[0].includes(/*i*/ ctx[12] + 1));
+    			add_location(button, file$8, 79, 6, 2378);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, button, anchor);
+    			append_dev(button, t0);
+    			append_dev(button, t1);
+
+    			if (!mounted) {
+    				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
+    				mounted = true;
+    			}
+    		},
+    		p: function update(new_ctx, dirty) {
+    			ctx = new_ctx;
+
+    			if (dirty & /*userOrder*/ 1) {
+    				toggle_class(button, "pressed", /*userOrder*/ ctx[0].includes(/*i*/ ctx[12] + 1));
+    			}
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(button);
+    			mounted = false;
+    			dispose();
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_each_block$5.name,
+    		type: "each",
+    		source: "(79:4) {#each Array(gridSize) as _, i}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (86:2) {#if !checkOnEveryPress && gameStatus === ""}
+    function create_if_block$4(ctx) {
+    	let button;
+    	let t;
+    	let button_disabled_value;
+    	let mounted;
+    	let dispose;
+
+    	const block = {
+    		c: function create() {
+    			button = element("button");
+    			t = text("Check Order");
+    			button.disabled = button_disabled_value = /*userOrder*/ ctx[0].length !== /*gridSize*/ ctx[3];
+    			attr_dev(button, "class", "svelte-7k1yf9");
+    			add_location(button, file$8, 86, 4, 2600);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, button, anchor);
+    			append_dev(button, t);
+
+    			if (!mounted) {
+    				dispose = listen_dev(button, "click", /*checkOrder*/ ctx[5], false, false, false, false);
+    				mounted = true;
+    			}
+    		},
+    		p: function update(ctx, dirty) {
+    			if (dirty & /*userOrder*/ 1 && button_disabled_value !== (button_disabled_value = /*userOrder*/ ctx[0].length !== /*gridSize*/ ctx[3])) {
+    				prop_dev(button, "disabled", button_disabled_value);
+    			}
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(button);
+    			mounted = false;
+    			dispose();
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_if_block$4.name,
+    		type: "if",
+    		source: "(86:2) {#if !checkOnEveryPress && gameStatus === \\\"\\\"}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    function create_fragment$8(ctx) {
+    	let div0;
+    	let input;
+    	let t0;
+    	let label;
+    	let t2;
+    	let t3;
+    	let button;
+    	let t5;
+    	let div1;
+    	let t6;
+    	let if_block1_anchor;
+    	let mounted;
+    	let dispose;
+
+    	function select_block_type(ctx, dirty) {
+    		if (/*gameStatus*/ ctx[2] === "correct") return create_if_block_1$1;
+    		if (/*gameStatus*/ ctx[2] === "incorrect") return create_if_block_2;
+    	}
+
+    	let current_block_type = select_block_type(ctx);
+    	let if_block0 = current_block_type && current_block_type(ctx);
+    	let each_value = Array(/*gridSize*/ ctx[3]);
+    	validate_each_argument(each_value);
+    	let each_blocks = [];
+
+    	for (let i = 0; i < each_value.length; i += 1) {
+    		each_blocks[i] = create_each_block$5(get_each_context$5(ctx, each_value, i));
+    	}
+
+    	let if_block1 = !/*checkOnEveryPress*/ ctx[1] && /*gameStatus*/ ctx[2] === "" && create_if_block$4(ctx);
+
+    	const block = {
+    		c: function create() {
+    			div0 = element("div");
+    			input = element("input");
+    			t0 = space();
+    			label = element("label");
+    			label.textContent = "Check order on every press";
+    			t2 = space();
+    			if (if_block0) if_block0.c();
+    			t3 = space();
+    			button = element("button");
+    			button.textContent = "Restart Game";
+    			t5 = space();
+    			div1 = element("div");
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				each_blocks[i].c();
+    			}
+
+    			t6 = space();
+    			if (if_block1) if_block1.c();
+    			if_block1_anchor = empty();
+    			attr_dev(input, "type", "checkbox");
+    			add_location(input, file$8, 65, 4, 1962);
+    			add_location(label, file$8, 66, 4, 2024);
+    			attr_dev(div0, "class", "controls svelte-7k1yf9");
+    			add_location(div0, file$8, 64, 2, 1934);
+    			attr_dev(button, "class", "svelte-7k1yf9");
+    			add_location(button, file$8, 75, 2, 2257);
+    			attr_dev(div1, "class", "grid svelte-7k1yf9");
+    			add_location(div1, file$8, 77, 2, 2315);
+    		},
+    		l: function claim(nodes) {
+    			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, div0, anchor);
+    			append_dev(div0, input);
+    			input.checked = /*checkOnEveryPress*/ ctx[1];
+    			append_dev(div0, t0);
+    			append_dev(div0, label);
+    			insert_dev(target, t2, anchor);
+    			if (if_block0) if_block0.m(target, anchor);
+    			insert_dev(target, t3, anchor);
+    			insert_dev(target, button, anchor);
+    			insert_dev(target, t5, anchor);
+    			insert_dev(target, div1, anchor);
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				if (each_blocks[i]) {
+    					each_blocks[i].m(div1, null);
+    				}
+    			}
+
+    			insert_dev(target, t6, anchor);
+    			if (if_block1) if_block1.m(target, anchor);
+    			insert_dev(target, if_block1_anchor, anchor);
+
+    			if (!mounted) {
+    				dispose = [
+    					listen_dev(input, "change", /*input_change_handler*/ ctx[7]),
+    					listen_dev(button, "click", /*resetGame*/ ctx[6], false, false, false, false)
+    				];
+
+    				mounted = true;
+    			}
+    		},
+    		p: function update(ctx, [dirty]) {
+    			if (dirty & /*checkOnEveryPress*/ 2) {
+    				input.checked = /*checkOnEveryPress*/ ctx[1];
+    			}
+
+    			if (current_block_type !== (current_block_type = select_block_type(ctx))) {
+    				if (if_block0) if_block0.d(1);
+    				if_block0 = current_block_type && current_block_type(ctx);
+
+    				if (if_block0) {
+    					if_block0.c();
+    					if_block0.m(t3.parentNode, t3);
+    				}
+    			}
+
+    			if (dirty & /*userOrder, handlePress*/ 17) {
+    				each_value = Array(/*gridSize*/ ctx[3]);
+    				validate_each_argument(each_value);
+    				let i;
+
+    				for (i = 0; i < each_value.length; i += 1) {
+    					const child_ctx = get_each_context$5(ctx, each_value, i);
+
+    					if (each_blocks[i]) {
+    						each_blocks[i].p(child_ctx, dirty);
+    					} else {
+    						each_blocks[i] = create_each_block$5(child_ctx);
+    						each_blocks[i].c();
+    						each_blocks[i].m(div1, null);
+    					}
+    				}
+
+    				for (; i < each_blocks.length; i += 1) {
+    					each_blocks[i].d(1);
+    				}
+
+    				each_blocks.length = each_value.length;
+    			}
+
+    			if (!/*checkOnEveryPress*/ ctx[1] && /*gameStatus*/ ctx[2] === "") {
+    				if (if_block1) {
+    					if_block1.p(ctx, dirty);
+    				} else {
+    					if_block1 = create_if_block$4(ctx);
+    					if_block1.c();
+    					if_block1.m(if_block1_anchor.parentNode, if_block1_anchor);
+    				}
+    			} else if (if_block1) {
+    				if_block1.d(1);
+    				if_block1 = null;
+    			}
+    		},
+    		i: noop,
+    		o: noop,
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(div0);
+    			if (detaching) detach_dev(t2);
+
+    			if (if_block0) {
+    				if_block0.d(detaching);
+    			}
+
+    			if (detaching) detach_dev(t3);
+    			if (detaching) detach_dev(button);
+    			if (detaching) detach_dev(t5);
+    			if (detaching) detach_dev(div1);
+    			destroy_each(each_blocks, detaching);
+    			if (detaching) detach_dev(t6);
+    			if (if_block1) if_block1.d(detaching);
+    			if (detaching) detach_dev(if_block1_anchor);
+    			mounted = false;
+    			run_all(dispose);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_fragment$8.name,
+    		type: "component",
+    		source: "",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    function instance$8($$self, $$props, $$invalidate) {
+    	let { $$slots: slots = {}, $$scope } = $$props;
+    	validate_slots('MovingDotSpaceGameOrder', slots, []);
+    	let gridSize = 4; // Grid size for simplicity
+    	let correctOrder = Array.from({ length: gridSize }, (_, i) => i + 1).sort(() => 0.5 - Math.random()); // Randomized correct order
+    	let userOrder = []; // User's order
+    	let checkOnEveryPress = false; // Start with manual check
+    	let gameStatus = ""; // "", "correct", or "incorrect"
+
+    	function handlePress(number) {
+    		if (userOrder.includes(number) || gameStatus) return; // Ignore if already pressed or game has ended
+    		userOrder.push(number);
+
+    		if (!checkOnEveryPress) {
+    			// Add the "pressed" class to the pressed button
+    			const pressedButton = document.querySelector(`button[data-number="${number}"]`);
+
+    			pressedButton.classList.add("pressed");
+    		} else {
+    			checkOrder();
+    		}
+    	}
+
+    	function checkOrder() {
+    		for (let i = 0; i < userOrder.length; i++) {
+    			if (userOrder[i] !== correctOrder[i]) {
+    				$$invalidate(2, gameStatus = "incorrect");
+    				return;
+    			}
+    		}
+
+    		if (userOrder.length === correctOrder.length) {
+    			$$invalidate(2, gameStatus = "correct");
+    		}
+    	}
+
+    	function resetGame() {
+    		$$invalidate(0, userOrder = []);
+    		$$invalidate(2, gameStatus = "");
+    		correctOrder.sort(() => 0.5 - Math.random()); // Shuffle for a new game
+
+    		// Remove the "pressed" class from all buttons
+    		const pressedButtons = document.querySelectorAll(".pressed");
+
+    		pressedButtons.forEach(button => button.classList.remove("pressed"));
+    	}
+
+    	const writable_props = [];
+
+    	Object.keys($$props).forEach(key => {
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<MovingDotSpaceGameOrder> was created with unknown prop '${key}'`);
+    	});
+
+    	function input_change_handler() {
+    		checkOnEveryPress = this.checked;
+    		$$invalidate(1, checkOnEveryPress);
+    	}
+
+    	const click_handler = i => handlePress(i + 1);
+
+    	$$self.$capture_state = () => ({
+    		gridSize,
+    		correctOrder,
+    		userOrder,
+    		checkOnEveryPress,
+    		gameStatus,
+    		handlePress,
+    		checkOrder,
+    		resetGame
+    	});
+
+    	$$self.$inject_state = $$props => {
+    		if ('gridSize' in $$props) $$invalidate(3, gridSize = $$props.gridSize);
+    		if ('correctOrder' in $$props) correctOrder = $$props.correctOrder;
+    		if ('userOrder' in $$props) $$invalidate(0, userOrder = $$props.userOrder);
+    		if ('checkOnEveryPress' in $$props) $$invalidate(1, checkOnEveryPress = $$props.checkOnEveryPress);
+    		if ('gameStatus' in $$props) $$invalidate(2, gameStatus = $$props.gameStatus);
+    	};
+
+    	if ($$props && "$$inject" in $$props) {
+    		$$self.$inject_state($$props.$$inject);
+    	}
+
+    	return [
+    		userOrder,
+    		checkOnEveryPress,
+    		gameStatus,
+    		gridSize,
+    		handlePress,
+    		checkOrder,
+    		resetGame,
+    		input_change_handler,
+    		click_handler
+    	];
+    }
+
+    class MovingDotSpaceGameOrder extends SvelteComponentDev {
+    	constructor(options) {
+    		super(options);
+    		init(this, options, instance$8, create_fragment$8, safe_not_equal, {});
+
+    		dispatch_dev("SvelteRegisterComponent", {
+    			component: this,
+    			tagName: "MovingDotSpaceGameOrder",
+    			options,
+    			id: create_fragment$8.name
+    		});
+    	}
+    }
+
+    // themeConfig.js
+    const themes = {
+        'User Custom': {
+            background: '/AutoGameBackgrounds/space_background.png',
+            inventory: [
+                { type: "weapon", name: "Random waepon", description: "A powerful weapon." },
+                // ... more space items
+            ],
+            skills: [
+                { branch: "Skill Group 1", name: "Skill One", learned: false },
+                // ... more space skills
+            ],
+            objectives: [
+                { id: "Mission 1", name: "Mission Details", complete: false },
+                // ... more space objectives
+            ],
+            // ... and so on for targets
+            storyparttargets: {
+                0: [
+                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
+                ],
+            }
+        },
+        'Default': {
+            background: '/AutoGameBackgrounds/1stGameLoc123.png',
+            inventory: [
+                { type: "weapon", name: "Sword", description: "A sharp blade." },
+                { type: "armor", name: "Shield", description: "Protects against attacks." },
+                { type: "consumable", name: "Health Potion", description: "Restores health." },
+                // ... more space items
+            ],
+            skills: [
+                { branch: "Combat", name: "Basic Attack", learned: false },
+                { branch: "Magic", name: "Fireball", learned: false },
+                { branch: "Stealth", name: "Sneak", learned: false },
+                // ... more space skills
+            ],
+            objectives: [
+                { id: "Seperate", name: "Visit Mountain Peak", complete: false },
+                { id: "Mission 1", name: "Intercept The Courier (Search the Locations)", complete: false },
+                { id: "Mission 1", name: "Deliver the package to Market Stall", complete: false },
+                // ... more space objectives
+            ],
+            // ... and so on for targets
+            storyparttargets: {
+                0: [
+                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
+                    { name: "Target 2", x: 100, y: 100, collisionType: "", collisiontext: ""},
+                    { name: "Entrance", x: 995, y: 660, collisionType: "modal", modalConfig: {
+                        title: "Entrance",
+                        content: "You've reached the Entrance. What's your next step?",
+                        actions: [
+                            {label: "Ask for guidance on next move", action: "askforDirections"},
+                            {label: "Buy an Axe", action: "buyAxeAlert"},
+                            // ... more actions if necessary
+                        ]},
+                    },
+                    { name: "Market Stall", x: 200, y: 300, collisionType: "", collisiontext: "" },   // A market stall in the bustling market area.
+                    { name: "Inn Entrance", x: 400, y: 450, collisionType: "", collisiontext: "" },   // The entrance to the inn for rest or information.
+                    { name: "Town Hall", x: 600, y: 350, collisionType: "", collisiontext: "" },      // The entrance to the town hall for quests.
+                    { name: "Fountain", x: 500, y: 500, collisionType: "", collisiontext: "" },       // A fountain in the town square as a meeting point.
+                    { name: "Bridge", x: 1100, y: 700, collisionType: "", collisiontext: "" },        // A bridge in the mystical forest area.
+                    { name: "Waterfall", x: 1300, y: 800, collisionType: "", collisiontext: "" },     // A waterfall that could hide secrets or treasures.
+                    { name: "Mountain Peak", x: 1500, y: 100, collisionType: "", collisiontext: "" },
+                    //{ name: "Mysterious Stranger", x: 350, y: 550, collisionType: "alert", collisiontext: "Beware the hidden caves in the north." },
+                    //{ name: "Hidden Cave", x: 1200, y: 400, collisionType: "changeBackgroundColor", color: "#0B3D91" },
+                    //{ name: "Ancient Tree", x: 300, y: 700, collisionType: "playSound", soundUrl: "tree_whisper.mp3" },
+                    //{ name: "Forgotten Monument", x: 700, y: 800, collisionType: "startAnimation", elementId: "monument", animationClass: "glow" },
+                    //{ name: "Wizard's Tower", x: 950, y: 150, collisionType: "rotateDot" },
+                    //{ name: "Lakeside", x: 1400, y: 600, collisionType: "changeDotColor", color: "#00BFFF" },
+                    //{ name: "Dragon's Lair", x: 1600, y: 200, collisionType: "incrementScore", incrementValue: 50 },
+                    //{ name: "Abandoned Shipwreck", x: 1300, y: 500, collisionType: "shrinkDot" },
+                    
+                    { name: "Switch Test 1", x: 700, y: 700, collisionType: "storypartchange",  collisiontext: "First Test", newStage: 1},
+                ],
+                1: [
+                    { name: "Target 1", x: 50, y: 50, collisionType: "alert",  collisiontext: "First Test"},
+                    { name: "Switch Back Test 1", x: 600, y: 400, collisionType: "storypartchange",  collisiontext: "First Test", newStage: 0},
+                ],
+            },
+        },
+        'Space Odyssey': {
+            background: '/AutoGameBackgrounds/SpaceOdysseyGameLoc.png',
+            inventory: [
+                { type: "weapon", name: "Laser Gun", description: "A powerful laser weapon." },
+                // ... more space items
+            ],
+            skills: [
+                { branch: "Piloting", name: "Astro Navigation", learned: false },
+                // ... more space skills
+            ],
+            objectives: [
+                { id: 1, name: "Dock at the Space Station", complete: false, progress: 0 },
+                { id: 2, name: "Repair the Communication Array", complete: false, progress: 0 },
+                { id: 3, name: "Collect Rare Asteroid Minerals", complete: false, progress: 0 },
+                { id: 4, name: "Negotiate Peace with the Alien Species", complete: false, progress: 0 },
+                { id: 5, name: "Explore the Abandoned Spaceship", complete: false, progress: 0 },
+                { id: 6, name: "Survive the Meteor Shower", complete: false, progress: 0 },
+                { id: 7, name: "Decrypt the Ancient Space Map", complete: false, progress: 0 },
+                { id: 8, name: "Win the Space Race", complete: false, progress: 0 },
+                { id: 9, name: "Defend the Colony from Space Pirates", complete: false, progress: 0 },
+                { id: 10, name: "Discover a New Lifeform", complete: false, progress: 0 }        
+                // ... more space objectives
+            ],
+            storyparttargets: {
+                0: [
+                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
+                ],
+            },
+        },
+        'Medieval Fantasy': {
+            background: '/AutoGameBackgrounds/MedievalFantasyGameLoc.png',
+            inventory: [
+                { type: "weapon", name: "Longsword", description: "A sturdy steel blade." },
+                // ... more medieval items
+            ],
+            skills: [
+                { branch: "Piloting", name: "Astro Navigation", learned: false },
+                // ... more space skills
+            ],
+            objectives: [
+                { id: 1, name: "Rescue the Captured Knight", complete: false, progress: 0 },
+                { id: 2, name: "Find the Lost Artifact", complete: false, progress: 0 },
+                { id: 3, name: "Defeat the Dragon", complete: false, progress: 0 },
+                { id: 4, name: "Win the Archery Tournament", complete: false, progress: 0 },
+                { id: 5, name: "Break the Evil Curse", complete: false, progress: 0 },
+                { id: 6, name: "Uncover the Secret of the Ancient Ruins", complete: false, progress: 0 },
+                { id: 7, name: "Protect the Village from Bandits", complete: false, progress: 0 },
+                { id: 8, name: "Retrieve the Stolen Royal Jewels", complete: false, progress: 0 },
+                { id: 9, name: "Discover the Hidden Enchanted Forest", complete: false, progress: 0 },
+                { id: 10, name: "Master the Forbidden Magic Spell", complete: false, progress: 0 },        
+                // ... more space objectives
+            ],
+            storyparttargets: {
+                0: [
+                    { name: "Castle", x: 940, y: 460, collisionType: "alert", collisiontext: "The King of this land has summoned you to find and release his champion Daryl the Knight. Find him and free him"},
+                    { name: "Hidden Space", x: 460, y: 570, collisionType: "alert", collisiontext: "Seems like a hidden space. Nobody is here currently."},
+                    { name: "Home", x: 640, y: 500, collisionType: "modal", modalConfig: {
+                        title: "Your Space",
+                        content: "Rest and prepare for your tasks. Sometimes you hear noises in the area but this is the area with least interference",
+                        actions: [
+                            {label: "Ask for guidance on next move", action: "askforDirections"},
+                            {label: "Buy an Axe", action: "buyAxeAlert"},
+                            // ... more actions if necessary
+                        ]},
+                    },
+                    { name: "Marketplace", x: 1100, y: 470, collisionType: "modal", modalConfig: {
+                        title: "Place to find information and items",
+                        content: "A bustling marketplace",
+                        actions: [
+                            {label: "Ask for guidance on next move", action: "askforDirections"},
+                            {label: "Buy an Axe", action: "buyAxeAlert"},
+                            {label: "Ask about the knight", action: "knightalert", message: "The armourer said he went to see the mini waterfall for some relaxtion"},
+                            // ... more actions if necessary
+                        ]},
+                    },
+                    { name: "Mini Waterfall", x: 500, y: 640, collisionType: "alert", collisiontext: "A weird waterfall is upfront. It strangely gives a calming vibe. Nobody is here currently but there seems to be a trail of water leading to a closeby location .... "},
+                ],
+            },
+            // ... skills, objectives, and targets for medieval theme
+        },
+        'Cyberpunk': {
+            background: '/AutoGameBackgrounds/CyberpunkGameLoc.png',
+            inventory: [
+                { type: "weapon", name: "Plasma Rifle", description: "A high-tech firearm with plasma rounds." },
+                { type: "armor", name: "NanoSuit", description: "Protects with reactive nano technology." },
+                { type: "consumable", name: "Stim Pack", description: "Enhances reflexes temporarily." },
+                // ... more cyberpunk items
+            ],
+            // ... skills, objectives, and targets for cyberpunk theme
+            skills: [
+                { branch: "Hacking", name: "Cyber Intrusion", learned: false },
+                { branch: "Combat", name: "Gun Kata", learned: false },
+                { branch: "Stealth", name: "Cloaking", learned: false },
+                // ... more space skills
+            ],
+            objectives: [ 
+                { id: 1, name: "Hack the Mainframe", complete: false, progress: 0 },
+                { id: 2, name: "Escape the Megacorp Security", complete: false, progress: 0 },
+                { id: 3, name: "Infiltrate the Underground Hacker Group", complete: false, progress: 0 },
+                { id: 4, name: "Negotiate a Truce with the Rival Gang", complete: false, progress: 0 },
+                { id: 5, name: "Expose the Corrupt Politician", complete: false, progress: 0 },
+                { id: 6, name: "Survive the Drone Assault", complete: false, progress: 0 },
+                { id: 7, name: "Retrieve the Stolen Cybernetic Tech", complete: false, progress: 0 },
+                { id: 8, name: "Win the Street Race in Neo-Tokyo", complete: false, progress: 0 },
+                { id: 9, name: "Decrypt the Corporate Data Files", complete: false, progress: 0 },
+                { id: 10, name: "Disarm the City-Wide Neural Bomb", complete: false, progress: 0 }
+       
+                // ... more space objectives
+            ],
+            storyparttargets: { 
+                0: [
+                    { name: "Target 1", x: 50, y: 50, collisionType: "alert", collisiontext: "First Test"},
+                    { name: "MegaCorp Server", x: 200, y: 50, collisionType: "alert", collisiontext: "First Test"},
+                    { name: "City Police", x: 50, y: 250, collisionType: "alert", collisiontext: "First Test"},
+                    { name: "Rival Gang", x: 550, y: 550, collisionType: "alert", collisiontext: "First Test"},
+                ],
+            },
+        },
+        'Super Teacher': {
+            background: '/AutoGameBackgrounds/SuperTeacherGameLoc.png',
+            inventory: [
+                { type: "book", name: "Math Advice", description: "Useful topical knowledge." },
+                { type: "book", name: "Science Advice", description: "Useful topical knowledge." },
+                { type: "book", name: "English Advice", description: "Useful topical knowledge." },
+                { type: "book", name: "Economics Advice", description: "Useful topical knowledge." },
+                // ... more space items
+            ],
+            skills: [
+                { branch: "Multitask", name: "Movement Speed", learned: false },
+                { branch: "Multitask", name: "Stop Window Interference for 1 min", learned: false },
+                // ... more space skills
+            ],
+            objectives: [
+                { id: "Mission 1", name: "Get the children to grade one 1 level", complete: false },
+                { id: "Mission 2", name: "Get the children to grade one 2 level", complete: false },
+                { id: "Mission 3", name: "Get the children to grade one 3 level", complete: false },
+                // ... more space objectives
+            ],
+            // ... and so on for targets
+            storyparttargets: {
+                0: [
+                    { name: "Super Teacher Toolkit", x: 1000, y: 330, collisionType: "alert", collisiontext: "First Test"},
+                    { name: "Random Noise Interference", x: 250, y: 110, collisionType: "alert", collisiontext: "First Test"},
+                    { name: "Student 1", x: 310, y: 620, collisionType: "alert", collisiontext: "Attention fully restored. Needs reasoning help with english"},
+                    { name: "Student 2", x: 660, y: 610, collisionType: "alert", collisiontext: "Attention fully restored. Doesnt speak english."},
+                    { name: "Student 3", x: 1010, y: 620, collisionType: "alert", collisiontext: "Attention fully restored. Needs reasoning help with math"},
+                ],
+            }
+        },
+        'Fantasy Adventure': {
+            background: '/AutoGameBackgrounds/eldoria_background.png',
+            inventory: [
+                { type: "book", name: "Book of Eldrak", description: "An ancient tome containing half of a map." },
+                { type: "amulet", name: "Peculiar Amulet", description: "A mysterious amulet bought in Meridia, reveals the unseen." },
+                { type: "map", name: "Tattered Map", description: "A map hinting at significant locations within the Whispering Woods." },
+                { type: "artifact", name: "Magical Acorn", description: "A gift from the forest spirit, promising future aid." },
+                { type: "relic", name: "Shrine Relic", description: "A powerful artifact that enhances magical abilities, found in the Ruined Shrine." },
+                { type: "record", name: "Echoing Cave Echoes", description: "A recording of whispers from the Echoing Caves, revealing secrets and hidden paths." },    
+                // ... more fantasy items
+            ],
+            skills: [
+                { branch: "Combat", name: "Sword Mastery", learned: false },
+                { branch: "Magic", name: "Elemental Control", learned: false },
+                { branch: "Lore", name: "Ancient Lore", learned: true, description: "Ability to decipher old texts and understand magical artifacts, gained at the Ruined Shrine." },
+                { branch: "Stealth", name: "Eavesdropping", learned: true, description: "Skill in using acoustics to eavesdrop, developed in the Echoing Caves." },
+                { branch: "Stealth", name: "Stealth Movement", learned: true, description: "Improved stealth for moving unseen, honed in the Echoing Caves." },
+                { branch: "Diplomacy", name: "Negotiation", learned: true, description: "Enhanced negotiation skills, honed through interaction with the spirits of the Forgotten Graveyard." },
+                { branch: "Magic", name: "Artifact Mastery", learned: true, description: "Mastery over various magical artifacts collected throughout the journey." },
+                // ... more fantasy skills
+            ],
+            objectives: [
+                { id: "FindBook", name: "Find the Book of Eldrak", complete: false },
+                { id: "GetAmulet", name: "Acquire the Peculiar Amulet", complete: false },
+                { id: "DiscoverArtefact", name: "Uncover the Artefact of Vorin", complete: false },
+                { id: "LeaveEldoria", name: "Leave Eldoria's Outskirts", complete: true },
+                { id: "VisitAncientOak", name: "Visit the Ancient Oak", complete: true },
+                { id: "ExploreCrystalClearing", name: "Explore the Crystal Clearing", complete: true },
+                { id: "DiscoverRuinedShrine", name: "Discover the Ruined Shrine", complete: true },
+                { id: "NavigateEchoingCaves", name: "Navigate the Echoing Caves", complete: true },
+                { id: "UncoverForgottenGraveyard", name: "Uncover the Secrets of the Forgotten Graveyard", complete: true },
+                { id: "MasterArtifacts", name: "Master the Use of Collected Artifacts", complete: true },    
+                // ... more fantasy objectives
+            ],
+            storyparttargets: {
+                0: [
+                    { name: "Eldoria Main Square", x: 410, y: 590, collisionType: "requirementsgated", collisiontext: "The heart of Eldoria, bustling with townsfolk and traders.", requirements: (8)},
+                    { name: "Lila's Home", x: 460, y: 600, collisionType: "alert", collisiontext: "A cozy cottage where Lila's quest for knowledge begins."},
+                    { name: "Eldoria Library", x: 360, y: 620, collisionType: "alert", collisiontext: "A treasure trove of books and maps. Lila spends hours here."},
+                    { name: "Whispering Forest Edge", x: 830, y: 700, collisionType: "alert", collisiontext: "The mysterious forest that borders Eldoria. Lila feels drawn to its secrets."},
+                    { name: "Serene Hills", x: 520, y: 490, collisionType: "alert", collisiontext: "Gentle hills that promise adventure beyond Eldoria. Lila often gazes here, dreaming of what lies beyond."},
+                    { name: "Marketplace", x: 360, y: 560, collisionType: "alert", collisiontext: "A place of trade and gossip. Lila hears rumors of ancient artifacts here."},
+                    { name: "Eldoria", x: 490, y: 420, collisionType: "storypartchange", collisiontext: "Your journey begins in the quaint town of Eldoria.", newStage: 1},
+                    { name: "Old Sage's Hut", x: 600, y: 480, collisionType: "alert", collisiontext: "The home of Eldoria's oldest sage. Lila seeks his wisdom for her journey."},
+                    { name: "Eldoria's Outskirts", x: 100, y: 10, collisionType: "stats", collisiontext: "Your courage grows as you step into the unknown."},
+                    { name: "Tattered Map", x: 200, y: 20, collisionType: "inventory", collisiontext: "You've found a map that hints at significant locations in the Whispering Woods."},
+                ],
+                1: [
+                    { name: "Library of Eldrak", x: 620, y: 600, collisionType: "alert", collisiontext: "You discover the ancient Book of Eldrak."},
+                    { name: "Meridia Market", x: 750, y: 590, collisionType: "alert", collisiontext: "A peculiar amulet catches your eye, promising to reveal the unseen."},
+                    { name: "Suspicious Place", x: 810, y: 530, collisionType: "decision", collisiontext: "Do you know why you came here?"},
+                    { name: "The Ancient Oak", x: 300, y: 130, collisionType: "modal", modalConfig: {
+                        title: "The Ancient Oak Area",
+                        content: "The Ancient Oak stands before you,",
+                        actions: [
+                            {label: "Talk to the Ancient Oak", action: "approachAncientOak"},
+                            // ... more actions if necessary
+                        ]} 
+                    },
+                    { name: "Magical Acorn", x: 400, y: 140, collisionType: "modal", modalConfig: {
+                        title: "Magical Acorn Area",
+                        content: "You are drawn to the acorn but as you near it a spirit appears",
+                        actions: [
+                            {label: "Talk to the spirit", action: "acquireMagicalAcorn"},
+                            // ... more actions if necessary
+                        ]} 
+                    },
+                ],
+                2: [
+                    { name: "Whispering Woods", x: 400, y: 300, collisionType: "modal", collisiontext: "The woods are dense and mysterious, hiding both allies and secrets."},
+                    { name: "The Crystal Clearing", x: 500, y: 50, collisionType: "location", collisiontext: "Visions of potential futures flash before your eyes."},
+                    { name: "The Ruined Shrine", x: 600, y: 60, collisionType: "location", collisiontext: "You discover a relic among the ruins, learning about a forgotten deity."},
+                ],
+                3: [
+                    { name: "Shadowed Caverns", x: 600, y: 400, collisionType: "fight", collisiontext: "The lair of the Keepers. A test of strength and wit awaits."},
+                    { name: "Ancient Lore Skill", x: 370, y: 70, collisionType: "skills", collisiontext: "You've gained the skill to decipher old texts and understand magical artifacts."},
+                    { name: "Shrine Relic", x: 480, y: 80, collisionType: "inventory", collisiontext: "This powerful artifact enhances your magical abilities."},
+                ],
+                4: [
+                    { name: "Return to Eldoria", x: 100, y: 500, collisionType: "end", collisiontext: "With the Artefact of Vorin, you return, forever changed by your journey."},
+                    { name: "Echoing Cave Echoes", x: 90, y: 90, collisionType: "inventory", collisiontext: "You record the cave's whispers, a strategic item."},
+                    { name: "Eavesdropping Skill", x: 100, y: 100, collisionType: "skills", collisiontext: "You learn to use the cave's acoustics to eavesdrop."},        
+                ],
+                5: [
+                    { name: "Stealth Skill", x: 110, y: 110, collisionType: "skills", collisiontext: "Navigating the caves, you improve your stealth."},
+                    { name: "Negotiation Skill", x: 120, y: 120, collisionType: "skills", collisiontext: "You've honed your negotiation skills with the spirits."},
+                ],
+                6: [
+                    { name: "Endurance Increase", x: 130, y: 130, collisionType: "stats", collisiontext: "The trials in the graveyard boost your endurance."},
+                    { name: "Intelligence Increase", x: 140, y: 140, collisionType: "stats", collisiontext: "Piecing together clues, your intelligence grows."},
+                ],
+                7: [
+                    { name: "Artifact Mastery Skill", x: 150, y: 150, collisionType: "skills", collisiontext: "You master the use of the artifacts you've collected."},
+                ]
+                // ... additional story parts as needed
+            }
+        },    
+    };
+
+    /* src\MovingDotSpacePortfromReact.svelte generated by Svelte v3.59.2 */
+
+    const { Object: Object_1$2, console: console_1$5 } = globals;
+
+    const file$7 = "src\\MovingDotSpacePortfromReact.svelte";
+
+    function get_each_context$4(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[25] = list[i];
+    	return child_ctx;
+    }
+
+    function get_each_context_1$1(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[28] = list[i];
+    	return child_ctx;
+    }
+
+    // (177:4) {#each themeKeys as key}
+    function create_each_block_1$1(ctx) {
+    	let option;
+    	let t_value = /*key*/ ctx[28] + "";
+    	let t;
+
+    	const block = {
+    		c: function create() {
+    			option = element("option");
+    			t = text(t_value);
+    			option.__value = /*key*/ ctx[28];
+    			option.value = option.__value;
+    			add_location(option, file$7, 177, 8, 6933);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, option, anchor);
+    			append_dev(option, t);
+    		},
+    		p: noop,
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(option);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_each_block_1$1.name,
+    		type: "each",
+    		source: "(177:4) {#each themeKeys as key}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (187:4) {#each $targets as target (target.name)}
+    function create_each_block$4(key_1, ctx) {
+    	let first;
+    	let target;
+    	let t0;
+    	let span;
+    	let t1_value = /*target*/ ctx[25].name + "";
+    	let t1;
+    	let current;
+
+    	target = new MovingDotTargetPortfromReact({
+    			props: { position: /*target*/ ctx[25] },
+    			$$inline: true
+    		});
+
+    	const block = {
+    		key: key_1,
+    		first: null,
+    		c: function create() {
+    			first = empty();
+    			create_component(target.$$.fragment);
+    			t0 = space();
+    			span = element("span");
+    			t1 = text(t1_value);
+    			set_style(span, "position", "absolute");
+    			set_style(span, "left", /*target*/ ctx[25].x + "px");
+    			set_style(span, "top", /*target*/ ctx[25].y + "px");
+    			add_location(span, file$7, 188, 8, 7979);
+    			this.first = first;
+    		},
+    		m: function mount(target$1, anchor) {
+    			insert_dev(target$1, first, anchor);
+    			mount_component(target, target$1, anchor);
+    			insert_dev(target$1, t0, anchor);
+    			insert_dev(target$1, span, anchor);
+    			append_dev(span, t1);
+    			current = true;
+    		},
+    		p: function update(new_ctx, dirty) {
+    			ctx = new_ctx;
+    			const target_changes = {};
+    			if (dirty & /*$targets*/ 1024) target_changes.position = /*target*/ ctx[25];
+    			target.$set(target_changes);
+    			if ((!current || dirty & /*$targets*/ 1024) && t1_value !== (t1_value = /*target*/ ctx[25].name + "")) set_data_dev(t1, t1_value);
+
+    			if (!current || dirty & /*$targets*/ 1024) {
+    				set_style(span, "left", /*target*/ ctx[25].x + "px");
+    			}
+
+    			if (!current || dirty & /*$targets*/ 1024) {
+    				set_style(span, "top", /*target*/ ctx[25].y + "px");
+    			}
+    		},
+    		i: function intro(local) {
+    			if (current) return;
+    			transition_in(target.$$.fragment, local);
+    			current = true;
+    		},
+    		o: function outro(local) {
+    			transition_out(target.$$.fragment, local);
+    			current = false;
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(first);
+    			destroy_component(target, detaching);
+    			if (detaching) detach_dev(t0);
+    			if (detaching) detach_dev(span);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_each_block$4.name,
+    		type: "each",
+    		source: "(187:4) {#each $targets as target (target.name)}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (193:4) {#if isModalOpen}
+    function create_if_block$3(ctx) {
+    	let modal;
+    	let current;
+
+    	modal = new MovingDotSpaceSimpleModal({
+    			props: {
+    				isOpen: /*isModalOpen*/ ctx[3],
+    				onClose: /*handleModalClose*/ ctx[16],
+    				title: /*currentcollisiontitletext*/ ctx[4],
+    				content: /*currentcollisiontext*/ ctx[5],
+    				items: /*currentcollisionitems*/ ctx[6],
+    				currentTheme: /*currentTheme*/ ctx[8]
+    			},
+    			$$inline: true
+    		});
+
+    	const block = {
+    		c: function create() {
+    			create_component(modal.$$.fragment);
+    		},
+    		m: function mount(target, anchor) {
+    			mount_component(modal, target, anchor);
+    			current = true;
+    		},
+    		p: function update(ctx, dirty) {
+    			const modal_changes = {};
+    			if (dirty & /*isModalOpen*/ 8) modal_changes.isOpen = /*isModalOpen*/ ctx[3];
+    			if (dirty & /*currentcollisiontitletext*/ 16) modal_changes.title = /*currentcollisiontitletext*/ ctx[4];
+    			if (dirty & /*currentcollisiontext*/ 32) modal_changes.content = /*currentcollisiontext*/ ctx[5];
+    			if (dirty & /*currentcollisionitems*/ 64) modal_changes.items = /*currentcollisionitems*/ ctx[6];
+    			if (dirty & /*currentTheme*/ 256) modal_changes.currentTheme = /*currentTheme*/ ctx[8];
+    			modal.$set(modal_changes);
+    		},
+    		i: function intro(local) {
+    			if (current) return;
+    			transition_in(modal.$$.fragment, local);
+    			current = true;
+    		},
+    		o: function outro(local) {
+    			transition_out(modal.$$.fragment, local);
+    			current = false;
+    		},
+    		d: function destroy(detaching) {
+    			destroy_component(modal, detaching);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_if_block$3.name,
+    		type: "if",
+    		source: "(193:4) {#if isModalOpen}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    function create_fragment$7(ctx) {
+    	let t0;
+    	let select;
+    	let t1;
+    	let dotgamethememanager;
+    	let t2;
+    	let div1;
+    	let canvas_1;
     	let t3;
     	let movingdot;
     	let t4;
@@ -3942,7 +5289,23 @@ var app = (function () {
     	let t12;
     	let movingdotstats;
     	let t13;
+    	let h10;
+    	let t15;
+    	let hr;
+    	let t16;
+    	let h11;
+    	let t18;
     	let fighttest;
+    	let t19;
+    	let modaltest;
+    	let t20;
+    	let h12;
+    	let t22;
+    	let findtest;
+    	let t23;
+    	let h13;
+    	let t25;
+    	let ordertest;
     	let current;
     	let mounted;
     	let dispose;
@@ -3951,7 +5314,7 @@ var app = (function () {
     	let each_blocks_1 = [];
 
     	for (let i = 0; i < each_value_1.length; i += 1) {
-    		each_blocks_1[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i));
+    		each_blocks_1[i] = create_each_block_1$1(get_each_context_1$1(ctx, each_value_1, i));
     	}
 
     	dotgamethememanager = new MovingDotSpaceThemeManager({
@@ -3972,17 +5335,20 @@ var app = (function () {
     	let each_value = /*$targets*/ ctx[10];
     	validate_each_argument(each_value);
     	const get_key = ctx => /*target*/ ctx[25].name;
-    	validate_each_keys(ctx, each_value, get_each_context$3, get_key);
+    	validate_each_keys(ctx, each_value, get_each_context$4, get_key);
 
     	for (let i = 0; i < each_value.length; i += 1) {
-    		let child_ctx = get_each_context$3(ctx, each_value, i);
+    		let child_ctx = get_each_context$4(ctx, each_value, i);
     		let key = get_key(child_ctx);
-    		each1_lookup.set(key, each_blocks[i] = create_each_block$3(key, child_ctx));
+    		each1_lookup.set(key, each_blocks[i] = create_each_block$4(key, child_ctx));
     	}
 
     	let if_block = /*isModalOpen*/ ctx[3] && create_if_block$3(ctx);
     	movingdotstats = new MovingDotStatDisplay({ $$inline: true });
     	fighttest = new MovingDotSpaceGameFight({ $$inline: true });
+    	modaltest = new MovingDotSpaceModalBrainstorm({ $$inline: true });
+    	findtest = new MovingDotSpaceGameFind({ $$inline: true });
+    	ordertest = new MovingDotSpaceGameOrder({ $$inline: true });
 
     	const block = {
     		c: function create() {
@@ -4018,16 +5384,36 @@ var app = (function () {
     			t12 = space();
     			create_component(movingdotstats.$$.fragment);
     			t13 = space();
+    			h10 = element("h1");
+    			h10.textContent = "Game is normally just story with fighting and traversing mechanics repeated in between videos";
+    			t15 = space();
+    			hr = element("hr");
+    			t16 = space();
+    			h11 = element("h1");
+    			h11.textContent = "Expand this to allow up to 100 fighters on each side";
+    			t18 = space();
     			create_component(fighttest.$$.fragment);
+    			t19 = space();
+    			create_component(modaltest.$$.fragment);
+    			t20 = space();
+    			h12 = element("h1");
+    			h12.textContent = "Find games are choices between similar looking items missing information with limited information (Luck = More Targets)";
+    			t22 = space();
+    			create_component(findtest.$$.fragment);
+    			t23 = space();
+    			h13 = element("h1");
+    			h13.textContent = "Find out/ make sense / Resolve Conflict = order mixed up and";
+    			t25 = space();
+    			create_component(ordertest.$$.fragment);
     			if (/*currentTheme*/ ctx[8] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[18].call(select));
-    			add_location(select, file$6, 164, 0, 6311);
+    			add_location(select, file$7, 175, 0, 6835);
     			set_style(canvas_1, "width", "100%");
     			set_style(canvas_1, "height", "100%");
     			attr_dev(canvas_1, "tabindex", "0");
-    			add_location(canvas_1, file$6, 172, 4, 6791);
+    			add_location(canvas_1, file$7, 183, 4, 7315);
     			attr_dev(div0, "id", "overlayText");
     			attr_dev(div0, "class", "svelte-c2nwl9");
-    			add_location(div0, file$6, 174, 4, 7049);
+    			add_location(div0, file$7, 185, 4, 7573);
     			attr_dev(div1, "id", "game-container");
     			set_style(div1, "position", "relative");
     			set_style(div1, "width", "100%");
@@ -4037,7 +5423,12 @@ var app = (function () {
     			set_style(div1, "background-image", "url('" + /*CurrentGameBackground*/ ctx[9] + "')");
     			set_style(div1, "background-size", "cover");
     			set_style(div1, "background-position", "center");
-    			add_location(div1, file$6, 171, 0, 6558);
+    			add_location(div1, file$7, 182, 0, 7082);
+    			add_location(h10, file$7, 199, 0, 8403);
+    			add_location(hr, file$7, 200, 0, 8507);
+    			add_location(h11, file$7, 201, 0, 8513);
+    			add_location(h12, file$7, 204, 0, 8606);
+    			add_location(h13, file$7, 206, 0, 8751);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -4081,7 +5472,23 @@ var app = (function () {
     			insert_dev(target, t12, anchor);
     			mount_component(movingdotstats, target, anchor);
     			insert_dev(target, t13, anchor);
+    			insert_dev(target, h10, anchor);
+    			insert_dev(target, t15, anchor);
+    			insert_dev(target, hr, anchor);
+    			insert_dev(target, t16, anchor);
+    			insert_dev(target, h11, anchor);
+    			insert_dev(target, t18, anchor);
     			mount_component(fighttest, target, anchor);
+    			insert_dev(target, t19, anchor);
+    			mount_component(modaltest, target, anchor);
+    			insert_dev(target, t20, anchor);
+    			insert_dev(target, h12, anchor);
+    			insert_dev(target, t22, anchor);
+    			mount_component(findtest, target, anchor);
+    			insert_dev(target, t23, anchor);
+    			insert_dev(target, h13, anchor);
+    			insert_dev(target, t25, anchor);
+    			mount_component(ordertest, target, anchor);
     			current = true;
 
     			if (!mounted) {
@@ -4101,12 +5508,12 @@ var app = (function () {
     				let i;
 
     				for (i = 0; i < each_value_1.length; i += 1) {
-    					const child_ctx = get_each_context_1(ctx, each_value_1, i);
+    					const child_ctx = get_each_context_1$1(ctx, each_value_1, i);
 
     					if (each_blocks_1[i]) {
     						each_blocks_1[i].p(child_ctx, dirty);
     					} else {
-    						each_blocks_1[i] = create_each_block_1(child_ctx);
+    						each_blocks_1[i] = create_each_block_1$1(child_ctx);
     						each_blocks_1[i].c();
     						each_blocks_1[i].m(select, null);
     					}
@@ -4136,8 +5543,8 @@ var app = (function () {
     				each_value = /*$targets*/ ctx[10];
     				validate_each_argument(each_value);
     				group_outros();
-    				validate_each_keys(ctx, each_value, get_each_context$3, get_key);
-    				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each1_lookup, div1, outro_and_destroy_block, create_each_block$3, t11, get_each_context$3);
+    				validate_each_keys(ctx, each_value, get_each_context$4, get_key);
+    				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each1_lookup, div1, outro_and_destroy_block, create_each_block$4, t11, get_each_context$4);
     				check_outros();
     			}
 
@@ -4180,6 +5587,9 @@ var app = (function () {
     			transition_in(if_block);
     			transition_in(movingdotstats.$$.fragment, local);
     			transition_in(fighttest.$$.fragment, local);
+    			transition_in(modaltest.$$.fragment, local);
+    			transition_in(findtest.$$.fragment, local);
+    			transition_in(ordertest.$$.fragment, local);
     			current = true;
     		},
     		o: function outro(local) {
@@ -4193,6 +5603,9 @@ var app = (function () {
     			transition_out(if_block);
     			transition_out(movingdotstats.$$.fragment, local);
     			transition_out(fighttest.$$.fragment, local);
+    			transition_out(modaltest.$$.fragment, local);
+    			transition_out(findtest.$$.fragment, local);
+    			transition_out(ordertest.$$.fragment, local);
     			current = false;
     		},
     		d: function destroy(detaching) {
@@ -4215,7 +5628,23 @@ var app = (function () {
     			if (detaching) detach_dev(t12);
     			destroy_component(movingdotstats, detaching);
     			if (detaching) detach_dev(t13);
+    			if (detaching) detach_dev(h10);
+    			if (detaching) detach_dev(t15);
+    			if (detaching) detach_dev(hr);
+    			if (detaching) detach_dev(t16);
+    			if (detaching) detach_dev(h11);
+    			if (detaching) detach_dev(t18);
     			destroy_component(fighttest, detaching);
+    			if (detaching) detach_dev(t19);
+    			destroy_component(modaltest, detaching);
+    			if (detaching) detach_dev(t20);
+    			if (detaching) detach_dev(h12);
+    			if (detaching) detach_dev(t22);
+    			destroy_component(findtest, detaching);
+    			if (detaching) detach_dev(t23);
+    			if (detaching) detach_dev(h13);
+    			if (detaching) detach_dev(t25);
+    			destroy_component(ordertest, detaching);
     			mounted = false;
     			run_all(dispose);
     		}
@@ -4223,7 +5652,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$6.name,
+    		id: create_fragment$7.name,
     		type: "component",
     		source: "",
     		ctx
@@ -4232,7 +5661,7 @@ var app = (function () {
     	return block;
     }
 
-    function instance$6($$self, $$props, $$invalidate) {
+    function instance$7($$self, $$props, $$invalidate) {
     	let $dotPosition;
     	let $targets;
     	validate_store(targets, 'targets');
@@ -4250,20 +5679,20 @@ var app = (function () {
     	let currentcollisiontext;
     	let currentcollisionitems = [];
     	let movingDotElement;
-    	let currentTheme = 'Super Teacher'; // default theme
+    	let currentTheme = 'Medieval Fantasy'; // default theme
     	let currentThemeStage = 0;
     	let themeKeys = Object.keys(themes);
     	let CurrentGameBackground = themes[currentTheme].background; //GameBackgrounds[0].url;
-    	inventory.set(themes[currentTheme].inventory);
-    	skills.set(themes[currentTheme].skills);
+    	inventory$1.set(themes[currentTheme].inventory);
+    	skills$1.set(themes[currentTheme].skills);
     	objectives.set(themes[currentTheme].objectives);
     	targets.set(themes[currentTheme].storyparttargets[0]);
 
     	function changeTheme(event) {
     		$$invalidate(8, currentTheme = event.target.value);
     		const theme = themes[currentTheme];
-    		inventory.set(theme.inventory);
-    		skills.set(theme.skills);
+    		inventory$1.set(theme.inventory);
+    		skills$1.set(theme.skills);
     		objectives.set(theme.objectives);
     		currentThemeStage = 0; // Resetting currentThemeStage to 0
     		targets.set(theme.storyparttargets[0]);
@@ -4320,6 +5749,13 @@ var app = (function () {
     				currentThemeStage = target.newStage;
     				targets.set(themes[currentTheme].storyparttargets[currentThemeStage]);
     				break;
+    			case "requirementsgated":
+    				if (target.requirements > 5) {
+    					alert(target.collisiontext);
+    				} else {
+    					alert("You have not journeyed enough to explore this area yet (Stats required: and an inventory item)");
+    				}
+    				break;
     		} // Handle other permanent UI elements here
     	}; // ...
     	//ChatGPT Suggested Options
@@ -4328,8 +5764,8 @@ var app = (function () {
 
     	const writable_props = [];
 
-    	Object_1$1.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$4.warn(`<MovingDotSpacePortfromReact> was created with unknown prop '${key}'`);
+    	Object_1$2.keys($$props).forEach(key => {
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$5.warn(`<MovingDotSpacePortfromReact> was created with unknown prop '${key}'`);
     	});
 
     	function select_change_handler() {
@@ -4363,9 +5799,12 @@ var app = (function () {
     		MovingDotStats: MovingDotStatDisplay,
     		DotGameThemeManager: MovingDotSpaceThemeManager,
     		FightTest: MovingDotSpaceGameFight,
+    		ModalTest: MovingDotSpaceModalBrainstorm,
+    		FindTest: MovingDotSpaceGameFind,
+    		OrderTest: MovingDotSpaceGameOrder,
     		themes,
-    		inventory,
-    		skills,
+    		inventory: inventory$1,
+    		skills: skills$1,
     		objectives,
     		targets,
     		ChangedContentPlaceholdertoSend,
@@ -4488,23 +5927,23 @@ var app = (function () {
     class MovingDotSpacePortfromReact extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$6, create_fragment$6, safe_not_equal, {});
+    		init(this, options, instance$7, create_fragment$7, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "MovingDotSpacePortfromReact",
     			options,
-    			id: create_fragment$6.name
+    			id: create_fragment$7.name
     		});
     	}
     }
 
     /* src\YoutubeIframeAPICustomInterface.svelte generated by Svelte v3.59.2 */
 
-    const { console: console_1$3 } = globals;
-    const file$5 = "src\\YoutubeIframeAPICustomInterface.svelte";
+    const { console: console_1$4 } = globals;
+    const file$6 = "src\\YoutubeIframeAPICustomInterface.svelte";
 
-    function create_fragment$5(ctx) {
+    function create_fragment$6(ctx) {
     	let h1;
     	let t1;
     	let label;
@@ -4606,7 +6045,7 @@ var app = (function () {
     			h1.textContent = "Custom Youtube Player for learning Video and music";
     			t1 = space();
     			label = element("label");
-    			t2 = text("Current Video Id (mwO6v4BlgZQ | IVJkOHTBPn0 ) (test - qEpmiA3XkX8 hardcoded)\r\n    ");
+    			t2 = text("Sample Video Ids (mwO6v4BlgZQ | IVJkOHTBPn0 )\r\n    ");
     			input0 = element("input");
     			t3 = text("\r\n    Start/Stop Word Update (Dummy Transcript as default)\r\n    ");
     			input1 = element("input");
@@ -4635,7 +6074,7 @@ var app = (function () {
     			t18 = text(/*currentWord*/ ctx[7]);
     			t19 = space();
     			div4 = element("div");
-    			div4.textContent = "Placeholder for image subtitle - each word or each noun in the sentence as collage (Dall-E 3) or sentence meaning as an image";
+    			div4.textContent = "Placeholder for incomplete idea of image subtitle - each word or each noun in the sentence as collage (Dall-E 3) or sentence meaning as an image";
     			t21 = space();
     			button1 = element("button");
     			button1.textContent = `Previous Auto Timestamp - ${/*interval*/ ctx[19]}s`;
@@ -4692,75 +6131,75 @@ var app = (function () {
     			input5 = element("input");
     			t62 = text(" Reps ");
     			input6 = element("input");
-    			add_location(h1, file$5, 333, 0, 11319);
+    			add_location(h1, file$6, 333, 0, 11319);
     			attr_dev(input0, "type", "text");
-    			add_location(input0, file$5, 337, 4, 11477);
+    			add_location(input0, file$6, 337, 4, 11446);
     			attr_dev(input1, "type", "checkbox");
-    			add_location(input1, file$5, 339, 4, 11588);
+    			add_location(input1, file$6, 339, 4, 11557);
     			attr_dev(textarea, "placeholder", "Enter transcript here...");
-    			add_location(textarea, file$5, 344, 4, 11911);
-    			add_location(button0, file$5, 345, 4, 12001);
+    			add_location(textarea, file$6, 344, 4, 11880);
+    			add_location(button0, file$6, 345, 4, 11970);
     			attr_dev(pre, "class", "transcriptpre svelte-udvqea");
-    			add_location(pre, file$5, 346, 4, 12067);
-    			add_location(label, file$5, 335, 0, 11382);
+    			add_location(pre, file$6, 346, 4, 12036);
+    			add_location(label, file$6, 335, 0, 11382);
     			attr_dev(div0, "id", "youtube-player");
     			set_style(div0, "height", "90vh");
     			set_style(div0, "width", "90%");
-    			add_location(div0, file$5, 350, 4, 12165);
+    			add_location(div0, file$6, 350, 4, 12134);
     			set_style(div1, "position", "absolute");
     			set_style(div1, "top", "0%");
     			set_style(div1, "left", "40%");
     			set_style(div1, "color", "white");
     			set_style(div1, "background-color", "rgba(0, 0, 0, 0.5)");
-    			add_location(div1, file$5, 351, 4, 12235);
-    			add_location(br0, file$5, 355, 15, 12555);
+    			add_location(div1, file$6, 351, 4, 12204);
+    			add_location(br0, file$6, 355, 15, 12524);
     			set_style(div2, "position", "absolute");
     			set_style(div2, "top", "50%");
     			set_style(div2, "left", "20%");
     			set_style(div2, "color", "white");
     			set_style(div2, "background-color", "rgba(0, 0, 0, 0.5)");
     			set_style(div2, "font-size", "100px");
-    			add_location(div2, file$5, 354, 4, 12414);
+    			add_location(div2, file$6, 354, 4, 12383);
     			set_style(div3, "position", "relative");
-    			add_location(div3, file$5, 349, 0, 12126);
+    			add_location(div3, file$6, 349, 0, 12095);
     			attr_dev(div4, "class", "imagesubtitle svelte-udvqea");
-    			add_location(div4, file$5, 359, 0, 12604);
-    			add_location(button1, file$5, 364, 0, 12849);
-    			add_location(button2, file$5, 365, 0, 12942);
-    			add_location(br1, file$5, 368, 0, 13084);
-    			add_location(button3, file$5, 369, 0, 13090);
+    			add_location(div4, file$6, 359, 0, 12573);
+    			add_location(button1, file$6, 364, 0, 12837);
+    			add_location(button2, file$6, 365, 0, 12930);
+    			add_location(br1, file$6, 368, 0, 13072);
+    			add_location(button3, file$6, 369, 0, 13078);
     			attr_dev(button4, "class", button4_class_value = "" + (null_to_empty(/*currentindexButtonClass*/ ctx[16]) + " svelte-udvqea"));
     			button4.disabled = button4_disabled_value = /*currentuserIndex*/ ctx[0] <= 0;
-    			add_location(button4, file$5, 370, 0, 13150);
+    			add_location(button4, file$6, 370, 0, 13138);
     			attr_dev(button5, "class", button5_class_value = "" + (null_to_empty(/*previousindexButtonClass*/ ctx[17]) + " svelte-udvqea"));
     			button5.disabled = button5_disabled_value = /*currentuserIndex*/ ctx[0] <= 0;
-    			add_location(button5, file$5, 371, 0, 13305);
+    			add_location(button5, file$6, 371, 0, 13293);
     			attr_dev(button6, "class", button6_class_value = "" + (null_to_empty(/*nextindexButtonClass*/ ctx[18]) + " svelte-udvqea"));
     			button6.disabled = button6_disabled_value = /*currentuserIndex*/ ctx[0] >= /*userTimestamps*/ ctx[1].length - 1;
-    			add_location(button6, file$5, 372, 0, 13450);
-    			add_location(br2, file$5, 375, 0, 13673);
-    			add_location(br3, file$5, 375, 82, 13755);
-    			add_location(br4, file$5, 375, 192, 13865);
-    			add_location(button7, file$5, 376, 0, 13871);
-    			add_location(button8, file$5, 376, 63, 13934);
+    			add_location(button6, file$6, 372, 0, 13438);
+    			add_location(br2, file$6, 375, 0, 13661);
+    			add_location(br3, file$6, 375, 82, 13743);
+    			add_location(br4, file$6, 375, 192, 13853);
+    			add_location(button7, file$6, 376, 0, 13859);
+    			add_location(button8, file$6, 376, 63, 13922);
     			attr_dev(input2, "type", "file");
     			attr_dev(input2, "accept", ".json");
-    			add_location(input2, file$5, 376, 167, 14038);
-    			add_location(br5, file$5, 377, 0, 14103);
+    			add_location(input2, file$6, 376, 167, 14026);
+    			add_location(br5, file$6, 377, 0, 14091);
     			attr_dev(input3, "type", "checkbox");
-    			add_location(input3, file$5, 377, 21, 14124);
+    			add_location(input3, file$6, 377, 21, 14112);
     			attr_dev(input4, "type", "number");
     			attr_dev(input4, "class", "numberinput svelte-udvqea");
     			attr_dev(input4, "min", "0");
-    			add_location(input4, file$5, 377, 82, 14185);
+    			add_location(input4, file$6, 377, 82, 14173);
     			attr_dev(input5, "type", "number");
     			attr_dev(input5, "class", "numberinput svelte-udvqea");
     			attr_dev(input5, "min", "0");
-    			add_location(input5, file$5, 377, 162, 14265);
+    			add_location(input5, file$6, 377, 162, 14253);
     			attr_dev(input6, "type", "number");
     			attr_dev(input6, "class", "numberinput svelte-udvqea");
     			attr_dev(input6, "min", "0");
-    			add_location(input6, file$5, 377, 241, 14344);
+    			add_location(input6, file$6, 377, 241, 14332);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -5011,7 +6450,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$5.name,
+    		id: create_fragment$6.name,
     		type: "component",
     		source: "",
     		ctx
@@ -5025,7 +6464,7 @@ var app = (function () {
     	return words[Math.floor(Math.random() * words.length)];
     }
 
-    function instance$5($$self, $$props, $$invalidate) {
+    function instance$6($$self, $$props, $$invalidate) {
     	let nextindexButtonClass;
     	let previousindexButtonClass;
     	let currentindexButtonClass;
@@ -5058,7 +6497,7 @@ var app = (function () {
     	let timestamps = []; // Array of timestamps
     	let userTimestamps = []; // Array of user timestamps
     	let r2userTimestamps = []; // Array of user timestamps
-    	let currentvideoId = 'qEpmiA3XkX8';
+    	let currentvideoId = 'IVJkOHTBPn0';
     	let youTubeApiLoaded = false;
     	let currentvideoduration;
     	let regeneratedautotimestamps = false;
@@ -5361,7 +6800,7 @@ var app = (function () {
     	const writable_props = [];
 
     	Object.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$3.warn(`<YoutubeIframeAPICustomInterface> was created with unknown prop '${key}'`);
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$4.warn(`<YoutubeIframeAPICustomInterface> was created with unknown prop '${key}'`);
     	});
 
     	function input0_input_handler() {
@@ -5564,13 +7003,13 @@ var app = (function () {
     class YoutubeIframeAPICustomInterface extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$5, create_fragment$5, safe_not_equal, {}, null, [-1, -1]);
+    		init(this, options, instance$6, create_fragment$6, safe_not_equal, {}, null, [-1, -1]);
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "YoutubeIframeAPICustomInterface",
     			options,
-    			id: create_fragment$5.name
+    			id: create_fragment$6.name
     		});
     	}
     }
@@ -5642,10 +7081,10 @@ var app = (function () {
 
     /* src\RecursiveNestedCommentsElement.svelte generated by Svelte v3.59.2 */
 
-    const { console: console_1$2 } = globals;
-    const file$4 = "src\\RecursiveNestedCommentsElement.svelte";
+    const { console: console_1$3 } = globals;
+    const file$5 = "src\\RecursiveNestedCommentsElement.svelte";
 
-    function get_each_context$2(ctx, list, i) {
+    function get_each_context$3(ctx, list, i) {
     	const child_ctx = ctx.slice();
     	child_ctx[14] = list[i];
     	child_ctx[15] = list;
@@ -5678,10 +7117,10 @@ var app = (function () {
     			button = element("button");
     			button.textContent = "Post Reply";
     			attr_dev(input, "placeholder", "Write a reply...");
-    			add_location(input, file$4, 124, 24, 4690);
-    			add_location(button, file$4, 125, 24, 4791);
+    			add_location(input, file$5, 124, 24, 4690);
+    			add_location(button, file$5, 125, 24, 4791);
     			attr_dev(div, "class", "reply-input");
-    			add_location(div, file$4, 123, 20, 4639);
+    			add_location(div, file$5, 123, 20, 4639);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, div, anchor);
@@ -5725,7 +7164,7 @@ var app = (function () {
     }
 
     // (119:8) {#each flattenedComments as comment}
-    function create_each_block$2(ctx) {
+    function create_each_block$3(ctx) {
     	let div;
     	let span;
     	let t0_value = /*comment*/ ctx[14].title + "";
@@ -5755,15 +7194,15 @@ var app = (function () {
     			t3 = space();
     			if (if_block) if_block.c();
     			t4 = space();
-    			add_location(span, file$4, 120, 16, 4453);
-    			add_location(button, file$4, 121, 16, 4499);
+    			add_location(span, file$5, 120, 16, 4453);
+    			add_location(button, file$5, 121, 16, 4499);
 
     			attr_dev(div, "class", div_class_value = "" + (null_to_empty(/*comment*/ ctx[14].level === 0
     			? 'top-level-comment'
     			: 'comment') + " svelte-bsj1sx"));
 
     			set_style(div, "margin-left", /*comment*/ ctx[14].level * 20 + "px");
-    			add_location(div, file$4, 119, 12, 4323);
+    			add_location(div, file$5, 119, 12, 4323);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, div, anchor);
@@ -5817,7 +7256,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block$2.name,
+    		id: create_each_block$3.name,
     		type: "each",
     		source: "(119:8) {#each flattenedComments as comment}",
     		ctx
@@ -5826,7 +7265,7 @@ var app = (function () {
     	return block;
     }
 
-    function create_fragment$4(ctx) {
+    function create_fragment$5(ctx) {
     	let h1;
     	let t1;
     	let h4;
@@ -5851,7 +7290,7 @@ var app = (function () {
     	let each_blocks = [];
 
     	for (let i = 0; i < each_value.length; i += 1) {
-    		each_blocks[i] = create_each_block$2(get_each_context$2(ctx, each_value, i));
+    		each_blocks[i] = create_each_block$3(get_each_context$3(ctx, each_value, i));
     	}
 
     	const block = {
@@ -5882,22 +7321,22 @@ var app = (function () {
     				each_blocks[i].c();
     			}
 
-    			add_location(h1, file$4, 104, 0, 3512);
-    			add_location(h4, file$4, 105, 0, 3614);
-    			add_location(button0, file$4, 108, 8, 3897);
+    			add_location(h1, file$5, 104, 0, 3512);
+    			add_location(h4, file$5, 105, 0, 3614);
+    			add_location(button0, file$5, 108, 8, 3897);
     			attr_dev(input0, "type", "file");
-    			add_location(input0, file$4, 110, 8, 4000);
+    			add_location(input0, file$5, 110, 8, 4000);
     			attr_dev(input1, "placeholder", "Add a comment...");
-    			add_location(input1, file$4, 112, 8, 4072);
-    			add_location(button1, file$4, 113, 8, 4146);
-    			add_location(div0, file$4, 107, 4, 3882);
-    			add_location(br, file$4, 116, 4, 4225);
+    			add_location(input1, file$5, 112, 8, 4072);
+    			add_location(button1, file$5, 113, 8, 4146);
+    			add_location(div0, file$5, 107, 4, 3882);
+    			add_location(br, file$5, 116, 4, 4225);
     			attr_dev(div1, "id", "comment-container");
-    			add_location(div1, file$4, 117, 4, 4235);
+    			add_location(div1, file$5, 117, 4, 4235);
     			attr_dev(div2, "class", "component-containter svelte-bsj1sx");
     			set_style(div2, "border", "1px solid black");
     			set_style(div2, "padding", "4px");
-    			add_location(div2, file$4, 106, 0, 3795);
+    			add_location(div2, file$5, 106, 0, 3795);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -5950,12 +7389,12 @@ var app = (function () {
     				let i;
 
     				for (i = 0; i < each_value.length; i += 1) {
-    					const child_ctx = get_each_context$2(ctx, each_value, i);
+    					const child_ctx = get_each_context$3(ctx, each_value, i);
 
     					if (each_blocks[i]) {
     						each_blocks[i].p(child_ctx, dirty);
     					} else {
-    						each_blocks[i] = create_each_block$2(child_ctx);
+    						each_blocks[i] = create_each_block$3(child_ctx);
     						each_blocks[i].c();
     						each_blocks[i].m(div1, null);
     					}
@@ -5984,7 +7423,7 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$4.name,
+    		id: create_fragment$5.name,
     		type: "component",
     		source: "",
     		ctx
@@ -6010,7 +7449,7 @@ var app = (function () {
     	return result;
     }
 
-    function instance$4($$self, $$props, $$invalidate) {
+    function instance$5($$self, $$props, $$invalidate) {
     	let { $$slots: slots = {}, $$scope } = $$props;
     	validate_slots('RecursiveNestedCommentsElement', slots, []);
     	let comments = [];
@@ -6095,7 +7534,7 @@ var app = (function () {
     	const writable_props = [];
 
     	Object.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$2.warn(`<RecursiveNestedCommentsElement> was created with unknown prop '${key}'`);
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$3.warn(`<RecursiveNestedCommentsElement> was created with unknown prop '${key}'`);
     	});
 
     	function input1_input_handler() {
@@ -6162,23 +7601,23 @@ var app = (function () {
     class RecursiveNestedCommentsElement extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
-    		init(this, options, instance$4, create_fragment$4, safe_not_equal, {});
+    		init(this, options, instance$5, create_fragment$5, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
     			tagName: "RecursiveNestedCommentsElement",
     			options,
-    			id: create_fragment$4.name
+    			id: create_fragment$5.name
     		});
     	}
     }
 
     /* src\CopyandRemoveListComponent.svelte generated by Svelte v3.59.2 */
 
-    const { console: console_1$1 } = globals;
-    const file$3 = "src\\CopyandRemoveListComponent.svelte";
+    const { console: console_1$2 } = globals;
+    const file$4 = "src\\CopyandRemoveListComponent.svelte";
 
-    function get_each_context$1(ctx, list, i) {
+    function get_each_context$2(ctx, list, i) {
     	const child_ctx = ctx.slice();
     	child_ctx[6] = list[i];
     	return child_ctx;
@@ -6192,12 +7631,12 @@ var app = (function () {
     	let each_value = /*items*/ ctx[1];
     	validate_each_argument(each_value);
     	const get_key = ctx => /*item*/ ctx[6].id;
-    	validate_each_keys(ctx, each_value, get_each_context$1, get_key);
+    	validate_each_keys(ctx, each_value, get_each_context$2, get_key);
 
     	for (let i = 0; i < each_value.length; i += 1) {
-    		let child_ctx = get_each_context$1(ctx, each_value, i);
+    		let child_ctx = get_each_context$2(ctx, each_value, i);
     		let key = get_key(child_ctx);
-    		each_1_lookup.set(key, each_blocks[i] = create_each_block$1(key, child_ctx));
+    		each_1_lookup.set(key, each_blocks[i] = create_each_block$2(key, child_ctx));
     	}
 
     	const block = {
@@ -6221,8 +7660,8 @@ var app = (function () {
     			if (dirty & /*copyAndRemoveItem, items*/ 10) {
     				each_value = /*items*/ ctx[1];
     				validate_each_argument(each_value);
-    				validate_each_keys(ctx, each_value, get_each_context$1, get_key);
-    				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, each_1_anchor.parentNode, destroy_block, create_each_block$1, each_1_anchor, get_each_context$1);
+    				validate_each_keys(ctx, each_value, get_each_context$2, get_key);
+    				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, each_1_anchor.parentNode, destroy_block, create_each_block$2, each_1_anchor, get_each_context$2);
     			}
     		},
     		d: function destroy(detaching) {
@@ -6253,7 +7692,7 @@ var app = (function () {
     		c: function create() {
     			p = element("p");
     			p.textContent = "All items have been copied! (or none entered yet)";
-    			add_location(p, file$3, 24, 4, 732);
+    			add_location(p, file$4, 24, 4, 732);
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, p, anchor);
@@ -6275,17 +7714,253 @@ var app = (function () {
     	return block;
     }
 
-    // (27:4) {#each items as item (item.id)}
+    // (27:4) {#each items as item (item.id)}
+    function create_each_block$2(key_1, ctx) {
+    	let button;
+    	let t0_value = /*item*/ ctx[6].text + "";
+    	let t0;
+    	let t1;
+    	let mounted;
+    	let dispose;
+
+    	function click_handler() {
+    		return /*click_handler*/ ctx[5](/*item*/ ctx[6]);
+    	}
+
+    	const block = {
+    		key: key_1,
+    		first: null,
+    		c: function create() {
+    			button = element("button");
+    			t0 = text(t0_value);
+    			t1 = space();
+    			attr_dev(button, "class", "item svelte-bmbf24");
+    			add_location(button, file$4, 27, 8, 844);
+    			this.first = button;
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, button, anchor);
+    			append_dev(button, t0);
+    			append_dev(button, t1);
+
+    			if (!mounted) {
+    				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
+    				mounted = true;
+    			}
+    		},
+    		p: function update(new_ctx, dirty) {
+    			ctx = new_ctx;
+    			if (dirty & /*items*/ 2 && t0_value !== (t0_value = /*item*/ ctx[6].text + "")) set_data_dev(t0, t0_value);
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(button);
+    			mounted = false;
+    			dispose();
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_each_block$2.name,
+    		type: "each",
+    		source: "(27:4) {#each items as item (item.id)}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    function create_fragment$4(ctx) {
+    	let h1;
+    	let t1;
+    	let textarea;
+    	let t2;
+    	let if_block_anchor;
+    	let mounted;
+    	let dispose;
+
+    	function select_block_type(ctx, dirty) {
+    		if (/*items*/ ctx[1].length === 0) return create_if_block$1;
+    		return create_else_block;
+    	}
+
+    	let current_block_type = select_block_type(ctx);
+    	let if_block = current_block_type(ctx);
+
+    	const block = {
+    		c: function create() {
+    			h1 = element("h1");
+    			h1.textContent = "Copy items for prompts by clicking buttons below";
+    			t1 = space();
+    			textarea = element("textarea");
+    			t2 = space();
+    			if_block.c();
+    			if_block_anchor = empty();
+    			add_location(h1, file$4, 19, 0, 537);
+    			attr_dev(textarea, "placeholder", "Enter text here...");
+    			attr_dev(textarea, "class", "svelte-bmbf24");
+    			add_location(textarea, file$4, 21, 0, 598);
+    		},
+    		l: function claim(nodes) {
+    			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, h1, anchor);
+    			insert_dev(target, t1, anchor);
+    			insert_dev(target, textarea, anchor);
+    			set_input_value(textarea, /*textInput*/ ctx[0]);
+    			insert_dev(target, t2, anchor);
+    			if_block.m(target, anchor);
+    			insert_dev(target, if_block_anchor, anchor);
+
+    			if (!mounted) {
+    				dispose = [
+    					listen_dev(textarea, "input", /*textarea_input_handler*/ ctx[4]),
+    					listen_dev(textarea, "input", /*updateItems*/ ctx[2], false, false, false, false)
+    				];
+
+    				mounted = true;
+    			}
+    		},
+    		p: function update(ctx, [dirty]) {
+    			if (dirty & /*textInput*/ 1) {
+    				set_input_value(textarea, /*textInput*/ ctx[0]);
+    			}
+
+    			if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {
+    				if_block.p(ctx, dirty);
+    			} else {
+    				if_block.d(1);
+    				if_block = current_block_type(ctx);
+
+    				if (if_block) {
+    					if_block.c();
+    					if_block.m(if_block_anchor.parentNode, if_block_anchor);
+    				}
+    			}
+    		},
+    		i: noop,
+    		o: noop,
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(h1);
+    			if (detaching) detach_dev(t1);
+    			if (detaching) detach_dev(textarea);
+    			if (detaching) detach_dev(t2);
+    			if_block.d(detaching);
+    			if (detaching) detach_dev(if_block_anchor);
+    			mounted = false;
+    			run_all(dispose);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_fragment$4.name,
+    		type: "component",
+    		source: "",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    function instance$4($$self, $$props, $$invalidate) {
+    	let { $$slots: slots = {}, $$scope } = $$props;
+    	validate_slots('CopyandRemoveListComponent', slots, []);
+    	let textInput = '';
+    	let items = [];
+
+    	function updateItems() {
+    		$$invalidate(1, items = textInput.split('\n').filter(line => line.trim() !== '').map((line, index) => ({ id: index + line, text: line })));
+    	}
+
+    	async function copyAndRemoveItem(item) {
+    		try {
+    			await navigator.clipboard.writeText(item.text);
+    			$$invalidate(1, items = items.filter(i => i.id !== item.id));
+    		} catch(err) {
+    			console.error('Failed to copy text: ', err);
+    		}
+    	}
+
+    	const writable_props = [];
+
+    	Object.keys($$props).forEach(key => {
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$2.warn(`<CopyandRemoveListComponent> was created with unknown prop '${key}'`);
+    	});
+
+    	function textarea_input_handler() {
+    		textInput = this.value;
+    		$$invalidate(0, textInput);
+    	}
+
+    	const click_handler = item => copyAndRemoveItem(item);
+
+    	$$self.$capture_state = () => ({
+    		textInput,
+    		items,
+    		updateItems,
+    		copyAndRemoveItem
+    	});
+
+    	$$self.$inject_state = $$props => {
+    		if ('textInput' in $$props) $$invalidate(0, textInput = $$props.textInput);
+    		if ('items' in $$props) $$invalidate(1, items = $$props.items);
+    	};
+
+    	if ($$props && "$$inject" in $$props) {
+    		$$self.$inject_state($$props.$$inject);
+    	}
+
+    	return [
+    		textInput,
+    		items,
+    		updateItems,
+    		copyAndRemoveItem,
+    		textarea_input_handler,
+    		click_handler
+    	];
+    }
+
+    class CopyandRemoveListComponent extends SvelteComponentDev {
+    	constructor(options) {
+    		super(options);
+    		init(this, options, instance$4, create_fragment$4, safe_not_equal, {});
+
+    		dispatch_dev("SvelteRegisterComponent", {
+    			component: this,
+    			tagName: "CopyandRemoveListComponent",
+    			options,
+    			id: create_fragment$4.name
+    		});
+    	}
+    }
+
+    /* src\ReadingStateCounter.svelte generated by Svelte v3.59.2 */
+
+    const file$3 = "src\\ReadingStateCounter.svelte";
+
+    function get_each_context$1(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[8] = list[i];
+    	child_ctx[10] = i;
+    	return child_ctx;
+    }
+
+    // (66:4) {#each words as wordObj, index (wordObj.word)}
     function create_each_block$1(key_1, ctx) {
     	let button;
-    	let t0_value = /*item*/ ctx[6].text + "";
+    	let t0_value = /*wordObj*/ ctx[8].word + "";
     	let t0;
     	let t1;
+    	let t2_value = /*wordObj*/ ctx[8].count + "";
+    	let t2;
+    	let t3;
     	let mounted;
     	let dispose;
 
     	function click_handler() {
-    		return /*click_handler*/ ctx[5](/*item*/ ctx[6]);
+    		return /*click_handler*/ ctx[7](/*index*/ ctx[10]);
     	}
 
     	const block = {
@@ -6294,15 +7969,20 @@ var app = (function () {
     		c: function create() {
     			button = element("button");
     			t0 = text(t0_value);
-    			t1 = space();
-    			attr_dev(button, "class", "item svelte-bmbf24");
-    			add_location(button, file$3, 27, 8, 844);
+    			t1 = text(" (");
+    			t2 = text(t2_value);
+    			t3 = text(")\r\n        ");
+    			attr_dev(button, "class", "word-button svelte-13vjncp");
+    			set_style(button, "background-color", getColor(/*wordObj*/ ctx[8].count));
+    			add_location(button, file$3, 66, 8, 1940);
     			this.first = button;
     		},
     		m: function mount(target, anchor) {
     			insert_dev(target, button, anchor);
     			append_dev(button, t0);
     			append_dev(button, t1);
+    			append_dev(button, t2);
+    			append_dev(button, t3);
 
     			if (!mounted) {
     				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
@@ -6311,7 +7991,12 @@ var app = (function () {
     		},
     		p: function update(new_ctx, dirty) {
     			ctx = new_ctx;
-    			if (dirty & /*items*/ 2 && t0_value !== (t0_value = /*item*/ ctx[6].text + "")) set_data_dev(t0, t0_value);
+    			if (dirty & /*words*/ 2 && t0_value !== (t0_value = /*wordObj*/ ctx[8].word + "")) set_data_dev(t0, t0_value);
+    			if (dirty & /*words*/ 2 && t2_value !== (t2_value = /*wordObj*/ ctx[8].count + "")) set_data_dev(t2, t2_value);
+
+    			if (dirty & /*words*/ 2) {
+    				set_style(button, "background-color", getColor(/*wordObj*/ ctx[8].count));
+    			}
     		},
     		d: function destroy(detaching) {
     			if (detaching) detach_dev(button);
@@ -6324,7 +8009,7 @@ var app = (function () {
     		block,
     		id: create_each_block$1.name,
     		type: "each",
-    		source: "(27:4) {#each items as item (item.id)}",
+    		source: "(66:4) {#each words as wordObj, index (wordObj.word)}",
     		ctx
     	});
 
@@ -6332,83 +8017,128 @@ var app = (function () {
     }
 
     function create_fragment$3(ctx) {
+    	let div0;
     	let h1;
     	let t1;
-    	let textarea;
+    	let input0;
     	let t2;
-    	let if_block_anchor;
+    	let button0;
+    	let t4;
+    	let button1;
+    	let t6;
+    	let input1;
+    	let t7;
+    	let div1;
+    	let each_blocks = [];
+    	let each_1_lookup = new Map();
     	let mounted;
     	let dispose;
+    	let each_value = /*words*/ ctx[1];
+    	validate_each_argument(each_value);
+    	const get_key = ctx => /*wordObj*/ ctx[8].word;
+    	validate_each_keys(ctx, each_value, get_each_context$1, get_key);
 
-    	function select_block_type(ctx, dirty) {
-    		if (/*items*/ ctx[1].length === 0) return create_if_block$1;
-    		return create_else_block;
+    	for (let i = 0; i < each_value.length; i += 1) {
+    		let child_ctx = get_each_context$1(ctx, each_value, i);
+    		let key = get_key(child_ctx);
+    		each_1_lookup.set(key, each_blocks[i] = create_each_block$1(key, child_ctx));
     	}
 
-    	let current_block_type = select_block_type(ctx);
-    	let if_block = current_block_type(ctx);
-
     	const block = {
     		c: function create() {
+    			div0 = element("div");
     			h1 = element("h1");
-    			h1.textContent = "Copy items for prompts by clicking buttons below";
+    			h1.textContent = "Stateful Reader Brainstorm";
     			t1 = space();
-    			textarea = element("textarea");
+    			input0 = element("input");
     			t2 = space();
-    			if_block.c();
-    			if_block_anchor = empty();
-    			add_location(h1, file$3, 19, 0, 537);
-    			attr_dev(textarea, "placeholder", "Enter text here...");
-    			attr_dev(textarea, "class", "svelte-bmbf24");
-    			add_location(textarea, file$3, 21, 0, 598);
+    			button0 = element("button");
+    			button0.textContent = "Submit Text";
+    			t4 = space();
+    			button1 = element("button");
+    			button1.textContent = "Export to JSON";
+    			t6 = space();
+    			input1 = element("input");
+    			t7 = space();
+    			div1 = element("div");
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				each_blocks[i].c();
+    			}
+
+    			add_location(h1, file$3, 57, 4, 1576);
+    			attr_dev(input0, "type", "text");
+    			attr_dev(input0, "placeholder", "Enter text here");
+    			attr_dev(input0, "class", "svelte-13vjncp");
+    			add_location(input0, file$3, 58, 4, 1617);
+    			attr_dev(button0, "class", "svelte-13vjncp");
+    			add_location(button0, file$3, 59, 4, 1696);
+    			attr_dev(button1, "class", "svelte-13vjncp");
+    			add_location(button1, file$3, 60, 4, 1752);
+    			attr_dev(input1, "type", "file");
+    			attr_dev(input1, "class", "svelte-13vjncp");
+    			add_location(input1, file$3, 61, 4, 1813);
+    			add_location(div0, file$3, 56, 0, 1565);
+    			add_location(div1, file$3, 64, 0, 1873);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, h1, anchor);
-    			insert_dev(target, t1, anchor);
-    			insert_dev(target, textarea, anchor);
-    			set_input_value(textarea, /*textInput*/ ctx[0]);
-    			insert_dev(target, t2, anchor);
-    			if_block.m(target, anchor);
-    			insert_dev(target, if_block_anchor, anchor);
+    			insert_dev(target, div0, anchor);
+    			append_dev(div0, h1);
+    			append_dev(div0, t1);
+    			append_dev(div0, input0);
+    			set_input_value(input0, /*inputText*/ ctx[0]);
+    			append_dev(div0, t2);
+    			append_dev(div0, button0);
+    			append_dev(div0, t4);
+    			append_dev(div0, button1);
+    			append_dev(div0, t6);
+    			append_dev(div0, input1);
+    			insert_dev(target, t7, anchor);
+    			insert_dev(target, div1, anchor);
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				if (each_blocks[i]) {
+    					each_blocks[i].m(div1, null);
+    				}
+    			}
 
     			if (!mounted) {
     				dispose = [
-    					listen_dev(textarea, "input", /*textarea_input_handler*/ ctx[4]),
-    					listen_dev(textarea, "input", /*updateItems*/ ctx[2], false, false, false, false)
+    					listen_dev(input0, "input", /*input0_input_handler*/ ctx[6]),
+    					listen_dev(button0, "click", /*submitText*/ ctx[2], false, false, false, false),
+    					listen_dev(button1, "click", /*exportToJson*/ ctx[4], false, false, false, false),
+    					listen_dev(input1, "change", /*importFromJson*/ ctx[5], false, false, false, false)
     				];
 
     				mounted = true;
     			}
     		},
     		p: function update(ctx, [dirty]) {
-    			if (dirty & /*textInput*/ 1) {
-    				set_input_value(textarea, /*textInput*/ ctx[0]);
+    			if (dirty & /*inputText*/ 1 && input0.value !== /*inputText*/ ctx[0]) {
+    				set_input_value(input0, /*inputText*/ ctx[0]);
     			}
 
-    			if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {
-    				if_block.p(ctx, dirty);
-    			} else {
-    				if_block.d(1);
-    				if_block = current_block_type(ctx);
-
-    				if (if_block) {
-    					if_block.c();
-    					if_block.m(if_block_anchor.parentNode, if_block_anchor);
-    				}
+    			if (dirty & /*getColor, words, handleClick*/ 10) {
+    				each_value = /*words*/ ctx[1];
+    				validate_each_argument(each_value);
+    				validate_each_keys(ctx, each_value, get_each_context$1, get_key);
+    				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, div1, destroy_block, create_each_block$1, null, get_each_context$1);
     			}
     		},
     		i: noop,
     		o: noop,
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(h1);
-    			if (detaching) detach_dev(t1);
-    			if (detaching) detach_dev(textarea);
-    			if (detaching) detach_dev(t2);
-    			if_block.d(detaching);
-    			if (detaching) detach_dev(if_block_anchor);
+    			if (detaching) detach_dev(div0);
+    			if (detaching) detach_dev(t7);
+    			if (detaching) detach_dev(div1);
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				each_blocks[i].d();
+    			}
+
     			mounted = false;
     			run_all(dispose);
     		}
@@ -6425,48 +8155,92 @@ var app = (function () {
     	return block;
     }
 
+    function getColor(count) {
+    	const colors = [
+    		'#1a1a1a',
+    		'#333333',
+    		'#4d4d4d',
+    		'#666666',
+    		'#808080',
+    		'#999999',
+    		'#b3b3b3',
+    		'#cccccc',
+    		'#e6e6e6',
+    		'#ffffff'
+    	];
+
+    	return colors[Math.min(Math.floor(count / 10), 9)];
+    }
+
     function instance$3($$self, $$props, $$invalidate) {
     	let { $$slots: slots = {}, $$scope } = $$props;
-    	validate_slots('CopyandRemoveListComponent', slots, []);
-    	let textInput = '';
-    	let items = [];
+    	validate_slots('ReadingStateCounter', slots, []);
+    	let inputText = "";
+    	let words = [];
 
-    	function updateItems() {
-    		$$invalidate(1, items = textInput.split('\n').filter(line => line.trim() !== '').map((line, index) => ({ id: index + line, text: line })));
+    	function submitText() {
+    		$$invalidate(1, words = inputText.split(/\s+/).map(word => ({ word, count: 0 })));
     	}
 
-    	async function copyAndRemoveItem(item) {
-    		try {
-    			await navigator.clipboard.writeText(item.text);
-    			$$invalidate(1, items = items.filter(i => i.id !== item.id));
-    		} catch(err) {
-    			console.error('Failed to copy text: ', err);
+    	function handleClick(index) {
+    		$$invalidate(1, words[index].count += 1, words);
+    		$$invalidate(1, words = [...words]); // Ensures Svelte detects the change
+    	}
+
+    	// Function to export data to JSON
+    	function exportToJson() {
+    		const jsonData = JSON.stringify(words);
+    		const blob = new Blob([jsonData], { type: "application/json" });
+    		const url = URL.createObjectURL(blob);
+    		const a = document.createElement('a');
+    		a.href = url;
+    		a.download = 'statefulwords.json';
+    		a.click();
+    		URL.revokeObjectURL(url);
+    	}
+
+    	// Function to handle file import
+    	function importFromJson(event) {
+    		const file = event.target.files[0];
+
+    		if (file) {
+    			const reader = new FileReader();
+
+    			reader.onload = e => {
+    				const json = e.target.result;
+    				$$invalidate(1, words = JSON.parse(json));
+    			};
+
+    			reader.readAsText(file);
     		}
     	}
 
     	const writable_props = [];
 
     	Object.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$1.warn(`<CopyandRemoveListComponent> was created with unknown prop '${key}'`);
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<ReadingStateCounter> was created with unknown prop '${key}'`);
     	});
 
-    	function textarea_input_handler() {
-    		textInput = this.value;
-    		$$invalidate(0, textInput);
+    	function input0_input_handler() {
+    		inputText = this.value;
+    		$$invalidate(0, inputText);
     	}
 
-    	const click_handler = item => copyAndRemoveItem(item);
+    	const click_handler = index => handleClick(index);
 
     	$$self.$capture_state = () => ({
-    		textInput,
-    		items,
-    		updateItems,
-    		copyAndRemoveItem
+    		inputText,
+    		words,
+    		submitText,
+    		handleClick,
+    		getColor,
+    		exportToJson,
+    		importFromJson
     	});
 
     	$$self.$inject_state = $$props => {
-    		if ('textInput' in $$props) $$invalidate(0, textInput = $$props.textInput);
-    		if ('items' in $$props) $$invalidate(1, items = $$props.items);
+    		if ('inputText' in $$props) $$invalidate(0, inputText = $$props.inputText);
+    		if ('words' in $$props) $$invalidate(1, words = $$props.words);
     	};
 
     	if ($$props && "$$inject" in $$props) {
@@ -6474,103 +8248,119 @@ var app = (function () {
     	}
 
     	return [
-    		textInput,
-    		items,
-    		updateItems,
-    		copyAndRemoveItem,
-    		textarea_input_handler,
+    		inputText,
+    		words,
+    		submitText,
+    		handleClick,
+    		exportToJson,
+    		importFromJson,
+    		input0_input_handler,
     		click_handler
     	];
     }
 
-    class CopyandRemoveListComponent extends SvelteComponentDev {
+    class ReadingStateCounter extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
     		init(this, options, instance$3, create_fragment$3, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
-    			tagName: "CopyandRemoveListComponent",
+    			tagName: "ReadingStateCounter",
     			options,
     			id: create_fragment$3.name
     		});
     	}
     }
 
-    /* src\ReadingStateCounter.svelte generated by Svelte v3.59.2 */
-
-    const file$2 = "src\\ReadingStateCounter.svelte";
+    /* src\DeliberateSubconciousRepititionPractice.svelte generated by Svelte v3.59.2 */
 
-    function get_each_context(ctx, list, i) {
-    	const child_ctx = ctx.slice();
-    	child_ctx[8] = list[i];
-    	child_ctx[10] = i;
-    	return child_ctx;
-    }
+    const { Object: Object_1$1, console: console_1$1 } = globals;
+    const file$2 = "src\\DeliberateSubconciousRepititionPractice.svelte";
 
-    // (66:4) {#each words as wordObj, index (wordObj.word)}
-    function create_each_block(key_1, ctx) {
-    	let button;
-    	let t0_value = /*wordObj*/ ctx[8].word + "";
-    	let t0;
+    // (156:0) {#if selectedItem}
+    function create_if_block_1(ctx) {
+    	let div;
+    	let strong0;
     	let t1;
-    	let t2_value = /*wordObj*/ ctx[8].count + "";
+    	let t2_value = /*selectedItem*/ ctx[1].text + "";
     	let t2;
     	let t3;
-    	let mounted;
-    	let dispose;
-
-    	function click_handler() {
-    		return /*click_handler*/ ctx[7](/*index*/ ctx[10]);
-    	}
+    	let strong1;
+    	let t5;
+    	let t6_value = /*counts*/ ctx[2][/*selectedItem*/ ctx[1].id] + "";
+    	let t6;
 
     	const block = {
-    		key: key_1,
-    		first: null,
     		c: function create() {
-    			button = element("button");
-    			t0 = text(t0_value);
-    			t1 = text(" (");
+    			div = element("div");
+    			strong0 = element("strong");
+    			strong0.textContent = "Current Word:";
+    			t1 = space();
     			t2 = text(t2_value);
-    			t3 = text(")\r\n        ");
-    			attr_dev(button, "class", "word-button svelte-13vjncp");
-    			set_style(button, "background-color", getColor(/*wordObj*/ ctx[8].count));
-    			add_location(button, file$2, 66, 8, 1940);
-    			this.first = button;
+    			t3 = space();
+    			strong1 = element("strong");
+    			strong1.textContent = "Count:";
+    			t5 = space();
+    			t6 = text(t6_value);
+    			add_location(strong0, file$2, 157, 8, 5744);
+    			add_location(strong1, file$2, 158, 8, 5805);
+    			add_location(div, file$2, 156, 4, 5729);
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, button, anchor);
-    			append_dev(button, t0);
-    			append_dev(button, t1);
-    			append_dev(button, t2);
-    			append_dev(button, t3);
-
-    			if (!mounted) {
-    				dispose = listen_dev(button, "click", click_handler, false, false, false, false);
-    				mounted = true;
-    			}
+    			insert_dev(target, div, anchor);
+    			append_dev(div, strong0);
+    			append_dev(div, t1);
+    			append_dev(div, t2);
+    			append_dev(div, t3);
+    			append_dev(div, strong1);
+    			append_dev(div, t5);
+    			append_dev(div, t6);
     		},
-    		p: function update(new_ctx, dirty) {
-    			ctx = new_ctx;
-    			if (dirty & /*words*/ 2 && t0_value !== (t0_value = /*wordObj*/ ctx[8].word + "")) set_data_dev(t0, t0_value);
-    			if (dirty & /*words*/ 2 && t2_value !== (t2_value = /*wordObj*/ ctx[8].count + "")) set_data_dev(t2, t2_value);
+    		p: function update(ctx, dirty) {
+    			if (dirty & /*selectedItem*/ 2 && t2_value !== (t2_value = /*selectedItem*/ ctx[1].text + "")) set_data_dev(t2, t2_value);
+    			if (dirty & /*counts, selectedItem*/ 6 && t6_value !== (t6_value = /*counts*/ ctx[2][/*selectedItem*/ ctx[1].id] + "")) set_data_dev(t6, t6_value);
+    		},
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(div);
+    		}
+    	};
 
-    			if (dirty & /*words*/ 2) {
-    				set_style(button, "background-color", getColor(/*wordObj*/ ctx[8].count));
-    			}
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_if_block_1.name,
+    		type: "if",
+    		source: "(156:0) {#if selectedItem}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (163:0) {#if allWordsLimitReached}
+    function create_if_block(ctx) {
+    	let div;
+
+    	const block = {
+    		c: function create() {
+    			div = element("div");
+    			div.textContent = "All words have reached the count limit.";
+    			attr_dev(div, "class", "alert svelte-fb2ql8");
+    			add_location(div, file$2, 163, 4, 5910);
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, div, anchor);
     		},
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(button);
-    			mounted = false;
-    			dispose();
+    			if (detaching) detach_dev(div);
     		}
     	};
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_each_block.name,
-    		type: "each",
-    		source: "(66:4) {#each words as wordObj, index (wordObj.word)}",
+    		id: create_if_block.name,
+    		type: "if",
+    		source: "(163:0) {#if allWordsLimitReached}",
     		ctx
     	});
 
@@ -6578,128 +8368,221 @@ var app = (function () {
     }
 
     function create_fragment$2(ctx) {
-    	let div0;
     	let h1;
     	let t1;
     	let input0;
     	let t2;
     	let button0;
     	let t4;
-    	let button1;
+    	let br;
+    	let t5;
+    	let textarea0;
     	let t6;
-    	let input1;
+    	let hr0;
     	let t7;
-    	let div1;
-    	let each_blocks = [];
-    	let each_1_lookup = new Map();
+    	let div;
+    	let label;
+    	let t9;
+    	let input1;
+    	let t10;
+    	let t11;
+    	let t12;
+    	let button1;
+    	let t14;
+    	let button2;
+    	let t16;
+    	let hr1;
+    	let t17;
+    	let button3;
+    	let t19;
+    	let textarea1;
     	let mounted;
     	let dispose;
-    	let each_value = /*words*/ ctx[1];
-    	validate_each_argument(each_value);
-    	const get_key = ctx => /*wordObj*/ ctx[8].word;
-    	validate_each_keys(ctx, each_value, get_each_context, get_key);
-
-    	for (let i = 0; i < each_value.length; i += 1) {
-    		let child_ctx = get_each_context(ctx, each_value, i);
-    		let key = get_key(child_ctx);
-    		each_1_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));
-    	}
+    	let if_block0 = /*selectedItem*/ ctx[1] && create_if_block_1(ctx);
+    	let if_block1 = /*allWordsLimitReached*/ ctx[4] && create_if_block(ctx);
 
     	const block = {
     		c: function create() {
-    			div0 = element("div");
     			h1 = element("h1");
-    			h1.textContent = "Stateful Reader Brainstorm";
+    			h1.textContent = "Random Word till appearance count reached for TTS";
     			t1 = space();
     			input0 = element("input");
     			t2 = space();
     			button0 = element("button");
-    			button0.textContent = "Submit Text";
+    			button0.textContent = "Export Counts";
     			t4 = space();
-    			button1 = element("button");
-    			button1.textContent = "Export to JSON";
+    			br = element("br");
+    			t5 = space();
+    			textarea0 = element("textarea");
     			t6 = space();
-    			input1 = element("input");
+    			hr0 = element("hr");
     			t7 = space();
-    			div1 = element("div");
-
-    			for (let i = 0; i < each_blocks.length; i += 1) {
-    				each_blocks[i].c();
-    			}
-
-    			add_location(h1, file$2, 57, 4, 1576);
-    			attr_dev(input0, "type", "text");
-    			attr_dev(input0, "placeholder", "Enter text here");
-    			attr_dev(input0, "class", "svelte-13vjncp");
-    			add_location(input0, file$2, 58, 4, 1617);
-    			attr_dev(button0, "class", "svelte-13vjncp");
-    			add_location(button0, file$2, 59, 4, 1696);
-    			attr_dev(button1, "class", "svelte-13vjncp");
-    			add_location(button1, file$2, 60, 4, 1752);
-    			attr_dev(input1, "type", "file");
-    			attr_dev(input1, "class", "svelte-13vjncp");
-    			add_location(input1, file$2, 61, 4, 1813);
-    			add_location(div0, file$2, 56, 0, 1565);
-    			add_location(div1, file$2, 64, 0, 1873);
+    			div = element("div");
+    			label = element("label");
+    			label.textContent = "Total Count Limit:";
+    			t9 = space();
+    			input1 = element("input");
+    			t10 = space();
+    			if (if_block0) if_block0.c();
+    			t11 = space();
+    			if (if_block1) if_block1.c();
+    			t12 = space();
+    			button1 = element("button");
+    			button1.textContent = "Start";
+    			t14 = space();
+    			button2 = element("button");
+    			button2.textContent = "Stop";
+    			t16 = space();
+    			hr1 = element("hr");
+    			t17 = space();
+    			button3 = element("button");
+    			button3.textContent = "Simulate one hour or limit Counts";
+    			t19 = space();
+    			textarea1 = element("textarea");
+    			add_location(h1, file$2, 141, 0, 5255);
+    			attr_dev(input0, "type", "file");
+    			add_location(input0, file$2, 143, 0, 5317);
+    			add_location(button0, file$2, 144, 0, 5365);
+    			add_location(br, file$2, 145, 0, 5421);
+    			attr_dev(textarea0, "placeholder", "Enter text here...");
+    			add_location(textarea0, file$2, 146, 0, 5427);
+    			add_location(hr0, file$2, 148, 0, 5531);
+    			attr_dev(label, "for", "totalCountLimit");
+    			add_location(label, file$2, 151, 4, 5550);
+    			attr_dev(input1, "type", "number");
+    			attr_dev(input1, "min", "1");
+    			attr_dev(input1, "id", "totalCountLimit");
+    			add_location(input1, file$2, 152, 4, 5612);
+    			add_location(div, file$2, 150, 0, 5539);
+    			add_location(button1, file$2, 168, 0, 6001);
+    			add_location(button2, file$2, 169, 0, 6042);
+    			add_location(hr1, file$2, 171, 0, 6083);
+    			add_location(button3, file$2, 173, 0, 6091);
+    			textarea1.readOnly = true;
+    			attr_dev(textarea1, "placeholder", "Simulation result will be shown here...");
+    			add_location(textarea1, file$2, 174, 0, 6168);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, div0, anchor);
-    			append_dev(div0, h1);
-    			append_dev(div0, t1);
-    			append_dev(div0, input0);
-    			set_input_value(input0, /*inputText*/ ctx[0]);
-    			append_dev(div0, t2);
-    			append_dev(div0, button0);
-    			append_dev(div0, t4);
-    			append_dev(div0, button1);
-    			append_dev(div0, t6);
-    			append_dev(div0, input1);
+    			insert_dev(target, h1, anchor);
+    			insert_dev(target, t1, anchor);
+    			insert_dev(target, input0, anchor);
+    			insert_dev(target, t2, anchor);
+    			insert_dev(target, button0, anchor);
+    			insert_dev(target, t4, anchor);
+    			insert_dev(target, br, anchor);
+    			insert_dev(target, t5, anchor);
+    			insert_dev(target, textarea0, anchor);
+    			set_input_value(textarea0, /*textInput*/ ctx[0]);
+    			insert_dev(target, t6, anchor);
+    			insert_dev(target, hr0, anchor);
     			insert_dev(target, t7, anchor);
-    			insert_dev(target, div1, anchor);
-
-    			for (let i = 0; i < each_blocks.length; i += 1) {
-    				if (each_blocks[i]) {
-    					each_blocks[i].m(div1, null);
-    				}
-    			}
+    			insert_dev(target, div, anchor);
+    			append_dev(div, label);
+    			append_dev(div, t9);
+    			append_dev(div, input1);
+    			set_input_value(input1, /*totalCountLimit*/ ctx[3]);
+    			insert_dev(target, t10, anchor);
+    			if (if_block0) if_block0.m(target, anchor);
+    			insert_dev(target, t11, anchor);
+    			if (if_block1) if_block1.m(target, anchor);
+    			insert_dev(target, t12, anchor);
+    			insert_dev(target, button1, anchor);
+    			insert_dev(target, t14, anchor);
+    			insert_dev(target, button2, anchor);
+    			insert_dev(target, t16, anchor);
+    			insert_dev(target, hr1, anchor);
+    			insert_dev(target, t17, anchor);
+    			insert_dev(target, button3, anchor);
+    			insert_dev(target, t19, anchor);
+    			insert_dev(target, textarea1, anchor);
+    			set_input_value(textarea1, /*simulationResult*/ ctx[5]);
 
     			if (!mounted) {
     				dispose = [
-    					listen_dev(input0, "input", /*input0_input_handler*/ ctx[6]),
-    					listen_dev(button0, "click", /*submitText*/ ctx[2], false, false, false, false),
-    					listen_dev(button1, "click", /*exportToJson*/ ctx[4], false, false, false, false),
-    					listen_dev(input1, "change", /*importFromJson*/ ctx[5], false, false, false, false)
+    					listen_dev(input0, "change", /*importCounts*/ ctx[10], false, false, false, false),
+    					listen_dev(button0, "click", /*exportCounts*/ ctx[9], false, false, false, false),
+    					listen_dev(textarea0, "input", /*textarea0_input_handler*/ ctx[12]),
+    					listen_dev(textarea0, "input", /*updateItems*/ ctx[6], false, false, false, false),
+    					listen_dev(input1, "input", /*input1_input_handler*/ ctx[13]),
+    					listen_dev(button1, "click", /*start*/ ctx[7], false, false, false, false),
+    					listen_dev(button2, "click", /*stop*/ ctx[8], false, false, false, false),
+    					listen_dev(button3, "click", /*simulateCount*/ ctx[11], false, false, false, false),
+    					listen_dev(textarea1, "input", /*textarea1_input_handler*/ ctx[14])
     				];
 
     				mounted = true;
     			}
     		},
     		p: function update(ctx, [dirty]) {
-    			if (dirty & /*inputText*/ 1 && input0.value !== /*inputText*/ ctx[0]) {
-    				set_input_value(input0, /*inputText*/ ctx[0]);
+    			if (dirty & /*textInput*/ 1) {
+    				set_input_value(textarea0, /*textInput*/ ctx[0]);
     			}
 
-    			if (dirty & /*getColor, words, handleClick*/ 10) {
-    				each_value = /*words*/ ctx[1];
-    				validate_each_argument(each_value);
-    				validate_each_keys(ctx, each_value, get_each_context, get_key);
-    				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, div1, destroy_block, create_each_block, null, get_each_context);
+    			if (dirty & /*totalCountLimit*/ 8 && to_number(input1.value) !== /*totalCountLimit*/ ctx[3]) {
+    				set_input_value(input1, /*totalCountLimit*/ ctx[3]);
+    			}
+
+    			if (/*selectedItem*/ ctx[1]) {
+    				if (if_block0) {
+    					if_block0.p(ctx, dirty);
+    				} else {
+    					if_block0 = create_if_block_1(ctx);
+    					if_block0.c();
+    					if_block0.m(t11.parentNode, t11);
+    				}
+    			} else if (if_block0) {
+    				if_block0.d(1);
+    				if_block0 = null;
+    			}
+
+    			if (/*allWordsLimitReached*/ ctx[4]) {
+    				if (if_block1) ; else {
+    					if_block1 = create_if_block(ctx);
+    					if_block1.c();
+    					if_block1.m(t12.parentNode, t12);
+    				}
+    			} else if (if_block1) {
+    				if_block1.d(1);
+    				if_block1 = null;
+    			}
+
+    			if (dirty & /*simulationResult*/ 32) {
+    				set_input_value(textarea1, /*simulationResult*/ ctx[5]);
     			}
     		},
     		i: noop,
     		o: noop,
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(div0);
+    			if (detaching) detach_dev(h1);
+    			if (detaching) detach_dev(t1);
+    			if (detaching) detach_dev(input0);
+    			if (detaching) detach_dev(t2);
+    			if (detaching) detach_dev(button0);
+    			if (detaching) detach_dev(t4);
+    			if (detaching) detach_dev(br);
+    			if (detaching) detach_dev(t5);
+    			if (detaching) detach_dev(textarea0);
+    			if (detaching) detach_dev(t6);
+    			if (detaching) detach_dev(hr0);
     			if (detaching) detach_dev(t7);
-    			if (detaching) detach_dev(div1);
-
-    			for (let i = 0; i < each_blocks.length; i += 1) {
-    				each_blocks[i].d();
-    			}
-
+    			if (detaching) detach_dev(div);
+    			if (detaching) detach_dev(t10);
+    			if (if_block0) if_block0.d(detaching);
+    			if (detaching) detach_dev(t11);
+    			if (if_block1) if_block1.d(detaching);
+    			if (detaching) detach_dev(t12);
+    			if (detaching) detach_dev(button1);
+    			if (detaching) detach_dev(t14);
+    			if (detaching) detach_dev(button2);
+    			if (detaching) detach_dev(t16);
+    			if (detaching) detach_dev(hr1);
+    			if (detaching) detach_dev(t17);
+    			if (detaching) detach_dev(button3);
+    			if (detaching) detach_dev(t19);
+    			if (detaching) detach_dev(textarea1);
     			mounted = false;
     			run_all(dispose);
     		}
@@ -6716,92 +8599,205 @@ var app = (function () {
     	return block;
     }
 
-    function getColor(count) {
-    	const colors = [
-    		'#1a1a1a',
-    		'#333333',
-    		'#4d4d4d',
-    		'#666666',
-    		'#808080',
-    		'#999999',
-    		'#b3b3b3',
-    		'#cccccc',
-    		'#e6e6e6',
-    		'#ffffff'
-    	];
-
-    	return colors[Math.min(Math.floor(count / 10), 9)];
-    }
-
     function instance$2($$self, $$props, $$invalidate) {
     	let { $$slots: slots = {}, $$scope } = $$props;
-    	validate_slots('ReadingStateCounter', slots, []);
-    	let inputText = "";
-    	let words = [];
+    	validate_slots('DeliberateSubconciousRepititionPractice', slots, []);
+    	let textInput = '';
+    	let items = [];
+    	let running = false;
+    	let selectedItem = null;
+    	let intervalId = null;
+    	let counts = {};
+    	let totalCountLimit = 10; // Default limit, can be changed by the user
+    	let allWordsLimitReached = false;
+    	let simulationResult = ''; // Variable to hold the result of the simulation
 
-    	function submitText() {
-    		$$invalidate(1, words = inputText.split(/\s+/).map(word => ({ word, count: 0 })));
+    	function updateItems() {
+    		items = textInput.split(/\W+/).filter(word => word.trim() !== '').map(word => ({ id: word, text: word })); // Use word itself as the ID
+    		$$invalidate(2, counts = items.reduce((acc, item) => ({ ...acc, [item.id]: 0 }), {}));
     	}
 
-    	function handleClick(index) {
-    		$$invalidate(1, words[index].count += 1, words);
-    		$$invalidate(1, words = [...words]); // Ensures Svelte detects the change
+    	function start() {
+    		if (!running && items.length > 0) {
+    			running = true;
+
+    			intervalId = setInterval(
+    				() => {
+    					// Filter out items that have reached the totalCountLimit
+    					const eligibleItems = items.filter(item => counts[item.id] < totalCountLimit);
+
+    					// If there are no eligible items left, stop the timer
+    					if (eligibleItems.length === 0) {
+    						stop();
+    						$$invalidate(4, allWordsLimitReached = true); // Set when all words reach the limit
+    						return;
+    					}
+
+    					// Select a random item from the eligible items
+    					const randomIndex = Math.floor(Math.random() * eligibleItems.length);
+
+    					$$invalidate(1, selectedItem = eligibleItems[randomIndex]);
+    					$$invalidate(2, counts[selectedItem.id]++, counts);
+    				},
+    				1000
+    			);
+    		}
     	}
 
-    	// Function to export data to JSON
-    	function exportToJson() {
-    		const jsonData = JSON.stringify(words);
-    		const blob = new Blob([jsonData], { type: "application/json" });
+    	function stop() {
+    		if (running) {
+    			clearInterval(intervalId);
+    			running = false;
+    			intervalId = null;
+    		}
+    	}
+
+    	function exportCounts() {
+    		const dataStr = JSON.stringify(counts);
+    		const blob = new Blob([dataStr], { type: "application/json" });
     		const url = URL.createObjectURL(blob);
-    		const a = document.createElement('a');
-    		a.href = url;
-    		a.download = 'statefulwords.json';
-    		a.click();
-    		URL.revokeObjectURL(url);
+    		const link = document.createElement("a");
+    		link.download = "counts.json";
+    		link.href = url;
+    		link.click();
     	}
 
-    	// Function to handle file import
-    	function importFromJson(event) {
-    		const file = event.target.files[0];
+    	function importCounts(event) {
+    		const fileReader = new FileReader();
 
-    		if (file) {
-    			const reader = new FileReader();
+    		fileReader.onload = e => {
+    			const data = JSON.parse(e.target.result);
+    			$$invalidate(2, counts = { ...counts, ...data });
 
-    			reader.onload = e => {
-    				const json = e.target.result;
-    				$$invalidate(1, words = JSON.parse(json));
-    			};
+    			items = Object.keys(data).map((word, index) => ({
+    				id: word, // Use word itself as the ID
+    				text: word
+    			}));
 
-    			reader.readAsText(file);
+    			// Ensure existing items are updated if they are not in the imported data
+    			items.forEach(item => {
+    				if (!counts[item.id]) {
+    					$$invalidate(2, counts[item.id] = 0, counts);
+    				}
+    			});
+    		};
+
+    		fileReader.readAsText(event.target.files[0]);
+    	}
+
+    	// ... (other variables and functions remain unchanged)
+    	function simulateCount() {
+    		let simulatedTime = 0;
+    		let maxSimulatedSeconds = 3600; // 3600 seconds = 1 hour
+    		let simulationOutput = ""; // Accumulate output here
+
+    		// Reset the allWordsLimitReached flag and simulationResult
+    		$$invalidate(4, allWordsLimitReached = false);
+
+    		$$invalidate(5, simulationResult = '');
+
+    		// Simulate until max time is reached or all words hit the limit
+    		while (simulatedTime < maxSimulatedSeconds && !allWordsLimitReached) {
+    			const eligibleItems = items.filter(item => counts[item.id] < totalCountLimit);
+
+    			if (eligibleItems.length === 0) {
+    				$$invalidate(4, allWordsLimitReached = true); // Set when all words reach the limit
+    				break; // Exit the loop if all words hit the limit
+    			}
+
+    			// Select a random item and increment its count
+    			const randomIndex = Math.floor(Math.random() * eligibleItems.length);
+
+    			$$invalidate(1, selectedItem = eligibleItems[randomIndex]);
+    			$$invalidate(2, counts[selectedItem.id]++, counts);
+    			simulationOutput += selectedItem.text + " "; // Append selected word to output
+
+    			// Increment simulated time (equivalent to the time between iterations in the real scenario)
+    			simulatedTime++;
+    		}
+
+    		// Update simulationResult with a message
+    		if (allWordsLimitReached) {
+    			$$invalidate(5, simulationResult = "All words have reached the count limit during simulation.");
+    		} else {
+    			$$invalidate(5, simulationResult = `Simulation finished after ${simulatedTime} seconds.`);
+    		}
+
+    		// Export the simulation output to a text file
+    		exportSimulationOutput(simulationOutput);
+    	}
+
+    	function exportSimulationOutput(output) {
+    		if (output) {
+    			const blob = new Blob([output], { type: "text/plain" });
+    			const url = URL.createObjectURL(blob);
+    			const link = document.createElement("a");
+    			link.download = "simulation_output.txt";
+    			link.href = url;
+    			link.click();
+    		} else {
+    			console.error("No simulation output to export.");
+    			$$invalidate(5, simulationResult = "No simulation output to export.");
     		}
     	}
 
+    	onDestroy(() => {
+    		if (intervalId) {
+    			clearInterval(intervalId);
+    		}
+    	});
+
     	const writable_props = [];
 
-    	Object.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<ReadingStateCounter> was created with unknown prop '${key}'`);
+    	Object_1$1.keys($$props).forEach(key => {
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$1.warn(`<DeliberateSubconciousRepititionPractice> was created with unknown prop '${key}'`);
     	});
 
-    	function input0_input_handler() {
-    		inputText = this.value;
-    		$$invalidate(0, inputText);
+    	function textarea0_input_handler() {
+    		textInput = this.value;
+    		$$invalidate(0, textInput);
     	}
 
-    	const click_handler = index => handleClick(index);
+    	function input1_input_handler() {
+    		totalCountLimit = to_number(this.value);
+    		$$invalidate(3, totalCountLimit);
+    	}
+
+    	function textarea1_input_handler() {
+    		simulationResult = this.value;
+    		$$invalidate(5, simulationResult);
+    	}
 
     	$$self.$capture_state = () => ({
-    		inputText,
-    		words,
-    		submitText,
-    		handleClick,
-    		getColor,
-    		exportToJson,
-    		importFromJson
+    		onDestroy,
+    		textInput,
+    		items,
+    		running,
+    		selectedItem,
+    		intervalId,
+    		counts,
+    		totalCountLimit,
+    		allWordsLimitReached,
+    		simulationResult,
+    		updateItems,
+    		start,
+    		stop,
+    		exportCounts,
+    		importCounts,
+    		simulateCount,
+    		exportSimulationOutput
     	});
 
     	$$self.$inject_state = $$props => {
-    		if ('inputText' in $$props) $$invalidate(0, inputText = $$props.inputText);
-    		if ('words' in $$props) $$invalidate(1, words = $$props.words);
+    		if ('textInput' in $$props) $$invalidate(0, textInput = $$props.textInput);
+    		if ('items' in $$props) items = $$props.items;
+    		if ('running' in $$props) running = $$props.running;
+    		if ('selectedItem' in $$props) $$invalidate(1, selectedItem = $$props.selectedItem);
+    		if ('intervalId' in $$props) intervalId = $$props.intervalId;
+    		if ('counts' in $$props) $$invalidate(2, counts = $$props.counts);
+    		if ('totalCountLimit' in $$props) $$invalidate(3, totalCountLimit = $$props.totalCountLimit);
+    		if ('allWordsLimitReached' in $$props) $$invalidate(4, allWordsLimitReached = $$props.allWordsLimitReached);
+    		if ('simulationResult' in $$props) $$invalidate(5, simulationResult = $$props.simulationResult);
     	};
 
     	if ($$props && "$$inject" in $$props) {
@@ -6809,341 +8805,152 @@ var app = (function () {
     	}
 
     	return [
-    		inputText,
-    		words,
-    		submitText,
-    		handleClick,
-    		exportToJson,
-    		importFromJson,
-    		input0_input_handler,
-    		click_handler
+    		textInput,
+    		selectedItem,
+    		counts,
+    		totalCountLimit,
+    		allWordsLimitReached,
+    		simulationResult,
+    		updateItems,
+    		start,
+    		stop,
+    		exportCounts,
+    		importCounts,
+    		simulateCount,
+    		textarea0_input_handler,
+    		input1_input_handler,
+    		textarea1_input_handler
     	];
     }
 
-    class ReadingStateCounter extends SvelteComponentDev {
+    class DeliberateSubconciousRepititionPractice extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
     		init(this, options, instance$2, create_fragment$2, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
-    			tagName: "ReadingStateCounter",
+    			tagName: "DeliberateSubconciousRepititionPractice",
     			options,
     			id: create_fragment$2.name
     		});
     	}
     }
 
-    /* src\DeliberateSubconciousRepititionPractice.svelte generated by Svelte v3.59.2 */
+    /* src\LLMWorkflowTest.svelte generated by Svelte v3.59.2 */
 
     const { Object: Object_1, console: console_1 } = globals;
-    const file$1 = "src\\DeliberateSubconciousRepititionPractice.svelte";
-
-    // (156:0) {#if selectedItem}
-    function create_if_block_1(ctx) {
-    	let div;
-    	let strong0;
-    	let t1;
-    	let t2_value = /*selectedItem*/ ctx[1].text + "";
-    	let t2;
-    	let t3;
-    	let strong1;
-    	let t5;
-    	let t6_value = /*counts*/ ctx[2][/*selectedItem*/ ctx[1].id] + "";
-    	let t6;
-
-    	const block = {
-    		c: function create() {
-    			div = element("div");
-    			strong0 = element("strong");
-    			strong0.textContent = "Current Word:";
-    			t1 = space();
-    			t2 = text(t2_value);
-    			t3 = space();
-    			strong1 = element("strong");
-    			strong1.textContent = "Count:";
-    			t5 = space();
-    			t6 = text(t6_value);
-    			add_location(strong0, file$1, 157, 8, 5744);
-    			add_location(strong1, file$1, 158, 8, 5805);
-    			add_location(div, file$1, 156, 4, 5729);
-    		},
-    		m: function mount(target, anchor) {
-    			insert_dev(target, div, anchor);
-    			append_dev(div, strong0);
-    			append_dev(div, t1);
-    			append_dev(div, t2);
-    			append_dev(div, t3);
-    			append_dev(div, strong1);
-    			append_dev(div, t5);
-    			append_dev(div, t6);
-    		},
-    		p: function update(ctx, dirty) {
-    			if (dirty & /*selectedItem*/ 2 && t2_value !== (t2_value = /*selectedItem*/ ctx[1].text + "")) set_data_dev(t2, t2_value);
-    			if (dirty & /*counts, selectedItem*/ 6 && t6_value !== (t6_value = /*counts*/ ctx[2][/*selectedItem*/ ctx[1].id] + "")) set_data_dev(t6, t6_value);
-    		},
-    		d: function destroy(detaching) {
-    			if (detaching) detach_dev(div);
-    		}
-    	};
+    const file$1 = "src\\LLMWorkflowTest.svelte";
 
-    	dispatch_dev("SvelteRegisterBlock", {
-    		block,
-    		id: create_if_block_1.name,
-    		type: "if",
-    		source: "(156:0) {#if selectedItem}",
-    		ctx
-    	});
+    function get_each_context(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[10] = list[i];
+    	child_ctx[11] = list;
+    	child_ctx[12] = i;
+    	return child_ctx;
+    }
 
-    	return block;
+    function get_each_context_1(ctx, list, i) {
+    	const child_ctx = ctx.slice();
+    	child_ctx[13] = list[i];
+    	return child_ctx;
     }
 
-    // (163:0) {#if allWordsLimitReached}
-    function create_if_block(ctx) {
-    	let div;
+    // (87:4) {#each Object.keys(workflows) as workflow}
+    function create_each_block_1(ctx) {
+    	let option;
+    	let t_value = /*workflow*/ ctx[13] + "";
+    	let t;
 
     	const block = {
     		c: function create() {
-    			div = element("div");
-    			div.textContent = "All words have reached the count limit.";
-    			attr_dev(div, "class", "alert svelte-fb2ql8");
-    			add_location(div, file$1, 163, 4, 5910);
+    			option = element("option");
+    			t = text(t_value);
+    			option.__value = /*workflow*/ ctx[13];
+    			option.value = option.__value;
+    			add_location(option, file$1, 87, 6, 2693);
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, div, anchor);
+    			insert_dev(target, option, anchor);
+    			append_dev(option, t);
     		},
+    		p: noop,
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(div);
-    		}
-    	};
-
-    	dispatch_dev("SvelteRegisterBlock", {
-    		block,
-    		id: create_if_block.name,
-    		type: "if",
-    		source: "(163:0) {#if allWordsLimitReached}",
-    		ctx
-    	});
-
-    	return block;
-    }
-
-    function create_fragment$1(ctx) {
-    	let h1;
-    	let t1;
-    	let input0;
-    	let t2;
-    	let button0;
-    	let t4;
-    	let br;
-    	let t5;
-    	let textarea0;
-    	let t6;
-    	let hr0;
-    	let t7;
-    	let div;
-    	let label;
-    	let t9;
-    	let input1;
-    	let t10;
-    	let t11;
-    	let t12;
-    	let button1;
-    	let t14;
-    	let button2;
-    	let t16;
-    	let hr1;
-    	let t17;
-    	let button3;
-    	let t19;
-    	let textarea1;
-    	let mounted;
-    	let dispose;
-    	let if_block0 = /*selectedItem*/ ctx[1] && create_if_block_1(ctx);
-    	let if_block1 = /*allWordsLimitReached*/ ctx[4] && create_if_block(ctx);
-
-    	const block = {
-    		c: function create() {
-    			h1 = element("h1");
-    			h1.textContent = "Random Word till appearance count reached for TTS";
-    			t1 = space();
-    			input0 = element("input");
-    			t2 = space();
-    			button0 = element("button");
-    			button0.textContent = "Export Counts";
-    			t4 = space();
-    			br = element("br");
-    			t5 = space();
-    			textarea0 = element("textarea");
-    			t6 = space();
-    			hr0 = element("hr");
-    			t7 = space();
-    			div = element("div");
-    			label = element("label");
-    			label.textContent = "Total Count Limit:";
-    			t9 = space();
-    			input1 = element("input");
-    			t10 = space();
-    			if (if_block0) if_block0.c();
-    			t11 = space();
-    			if (if_block1) if_block1.c();
-    			t12 = space();
-    			button1 = element("button");
-    			button1.textContent = "Start";
-    			t14 = space();
-    			button2 = element("button");
-    			button2.textContent = "Stop";
-    			t16 = space();
-    			hr1 = element("hr");
-    			t17 = space();
-    			button3 = element("button");
-    			button3.textContent = "Simulate one hour or limit Counts";
-    			t19 = space();
-    			textarea1 = element("textarea");
-    			add_location(h1, file$1, 141, 0, 5255);
-    			attr_dev(input0, "type", "file");
-    			add_location(input0, file$1, 143, 0, 5317);
-    			add_location(button0, file$1, 144, 0, 5365);
-    			add_location(br, file$1, 145, 0, 5421);
-    			attr_dev(textarea0, "placeholder", "Enter text here...");
-    			add_location(textarea0, file$1, 146, 0, 5427);
-    			add_location(hr0, file$1, 148, 0, 5531);
-    			attr_dev(label, "for", "totalCountLimit");
-    			add_location(label, file$1, 151, 4, 5550);
-    			attr_dev(input1, "type", "number");
-    			attr_dev(input1, "min", "1");
-    			attr_dev(input1, "id", "totalCountLimit");
-    			add_location(input1, file$1, 152, 4, 5612);
-    			add_location(div, file$1, 150, 0, 5539);
-    			add_location(button1, file$1, 168, 0, 6001);
-    			add_location(button2, file$1, 169, 0, 6042);
-    			add_location(hr1, file$1, 171, 0, 6083);
-    			add_location(button3, file$1, 173, 0, 6091);
-    			textarea1.readOnly = true;
-    			attr_dev(textarea1, "placeholder", "Simulation result will be shown here...");
-    			add_location(textarea1, file$1, 174, 0, 6168);
-    		},
-    		l: function claim(nodes) {
-    			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+    			if (detaching) detach_dev(option);
+    		}
+    	};
+
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_each_block_1.name,
+    		type: "each",
+    		source: "(87:4) {#each Object.keys(workflows) as workflow}",
+    		ctx
+    	});
+
+    	return block;
+    }
+
+    // (92:2) {#each placeholderInputs as placeholder}
+    function create_each_block(ctx) {
+    	let div;
+    	let label;
+    	let t0;
+    	let t1_value = /*placeholder*/ ctx[10] + "";
+    	let t1;
+    	let t2;
+    	let t3;
+    	let input;
+    	let mounted;
+    	let dispose;
+
+    	function input_input_handler() {
+    		/*input_input_handler*/ ctx[8].call(input, /*placeholder*/ ctx[10]);
+    	}
+
+    	const block = {
+    		c: function create() {
+    			div = element("div");
+    			label = element("label");
+    			t0 = text("Enter word for <");
+    			t1 = text(t1_value);
+    			t2 = text(">");
+    			t3 = space();
+    			input = element("input");
+    			add_location(label, file$1, 93, 6, 2828);
+    			attr_dev(input, "type", "text");
+    			add_location(input, file$1, 94, 6, 2887);
+    			add_location(div, file$1, 92, 4, 2815);
     		},
     		m: function mount(target, anchor) {
-    			insert_dev(target, h1, anchor);
-    			insert_dev(target, t1, anchor);
-    			insert_dev(target, input0, anchor);
-    			insert_dev(target, t2, anchor);
-    			insert_dev(target, button0, anchor);
-    			insert_dev(target, t4, anchor);
-    			insert_dev(target, br, anchor);
-    			insert_dev(target, t5, anchor);
-    			insert_dev(target, textarea0, anchor);
-    			set_input_value(textarea0, /*textInput*/ ctx[0]);
-    			insert_dev(target, t6, anchor);
-    			insert_dev(target, hr0, anchor);
-    			insert_dev(target, t7, anchor);
     			insert_dev(target, div, anchor);
     			append_dev(div, label);
-    			append_dev(div, t9);
-    			append_dev(div, input1);
-    			set_input_value(input1, /*totalCountLimit*/ ctx[3]);
-    			insert_dev(target, t10, anchor);
-    			if (if_block0) if_block0.m(target, anchor);
-    			insert_dev(target, t11, anchor);
-    			if (if_block1) if_block1.m(target, anchor);
-    			insert_dev(target, t12, anchor);
-    			insert_dev(target, button1, anchor);
-    			insert_dev(target, t14, anchor);
-    			insert_dev(target, button2, anchor);
-    			insert_dev(target, t16, anchor);
-    			insert_dev(target, hr1, anchor);
-    			insert_dev(target, t17, anchor);
-    			insert_dev(target, button3, anchor);
-    			insert_dev(target, t19, anchor);
-    			insert_dev(target, textarea1, anchor);
-    			set_input_value(textarea1, /*simulationResult*/ ctx[5]);
+    			append_dev(label, t0);
+    			append_dev(label, t1);
+    			append_dev(label, t2);
+    			append_dev(div, t3);
+    			append_dev(div, input);
+    			set_input_value(input, /*placeholderValues*/ ctx[1][/*placeholder*/ ctx[10]]);
 
     			if (!mounted) {
     				dispose = [
-    					listen_dev(input0, "change", /*importCounts*/ ctx[10], false, false, false, false),
-    					listen_dev(button0, "click", /*exportCounts*/ ctx[9], false, false, false, false),
-    					listen_dev(textarea0, "input", /*textarea0_input_handler*/ ctx[12]),
-    					listen_dev(textarea0, "input", /*updateItems*/ ctx[6], false, false, false, false),
-    					listen_dev(input1, "input", /*input1_input_handler*/ ctx[13]),
-    					listen_dev(button1, "click", /*start*/ ctx[7], false, false, false, false),
-    					listen_dev(button2, "click", /*stop*/ ctx[8], false, false, false, false),
-    					listen_dev(button3, "click", /*simulateCount*/ ctx[11], false, false, false, false),
-    					listen_dev(textarea1, "input", /*textarea1_input_handler*/ ctx[14])
+    					listen_dev(input, "input", input_input_handler),
+    					listen_dev(input, "input", /*updateInputs*/ ctx[6], false, false, false, false)
     				];
 
     				mounted = true;
     			}
     		},
-    		p: function update(ctx, [dirty]) {
-    			if (dirty & /*textInput*/ 1) {
-    				set_input_value(textarea0, /*textInput*/ ctx[0]);
-    			}
-
-    			if (dirty & /*totalCountLimit*/ 8 && to_number(input1.value) !== /*totalCountLimit*/ ctx[3]) {
-    				set_input_value(input1, /*totalCountLimit*/ ctx[3]);
-    			}
-
-    			if (/*selectedItem*/ ctx[1]) {
-    				if (if_block0) {
-    					if_block0.p(ctx, dirty);
-    				} else {
-    					if_block0 = create_if_block_1(ctx);
-    					if_block0.c();
-    					if_block0.m(t11.parentNode, t11);
-    				}
-    			} else if (if_block0) {
-    				if_block0.d(1);
-    				if_block0 = null;
-    			}
-
-    			if (/*allWordsLimitReached*/ ctx[4]) {
-    				if (if_block1) ; else {
-    					if_block1 = create_if_block(ctx);
-    					if_block1.c();
-    					if_block1.m(t12.parentNode, t12);
-    				}
-    			} else if (if_block1) {
-    				if_block1.d(1);
-    				if_block1 = null;
-    			}
+    		p: function update(new_ctx, dirty) {
+    			ctx = new_ctx;
+    			if (dirty & /*placeholderInputs*/ 4 && t1_value !== (t1_value = /*placeholder*/ ctx[10] + "")) set_data_dev(t1, t1_value);
 
-    			if (dirty & /*simulationResult*/ 32) {
-    				set_input_value(textarea1, /*simulationResult*/ ctx[5]);
+    			if (dirty & /*placeholderValues, placeholderInputs*/ 6 && input.value !== /*placeholderValues*/ ctx[1][/*placeholder*/ ctx[10]]) {
+    				set_input_value(input, /*placeholderValues*/ ctx[1][/*placeholder*/ ctx[10]]);
     			}
     		},
-    		i: noop,
-    		o: noop,
     		d: function destroy(detaching) {
-    			if (detaching) detach_dev(h1);
-    			if (detaching) detach_dev(t1);
-    			if (detaching) detach_dev(input0);
-    			if (detaching) detach_dev(t2);
-    			if (detaching) detach_dev(button0);
-    			if (detaching) detach_dev(t4);
-    			if (detaching) detach_dev(br);
-    			if (detaching) detach_dev(t5);
-    			if (detaching) detach_dev(textarea0);
-    			if (detaching) detach_dev(t6);
-    			if (detaching) detach_dev(hr0);
-    			if (detaching) detach_dev(t7);
     			if (detaching) detach_dev(div);
-    			if (detaching) detach_dev(t10);
-    			if (if_block0) if_block0.d(detaching);
-    			if (detaching) detach_dev(t11);
-    			if (if_block1) if_block1.d(detaching);
-    			if (detaching) detach_dev(t12);
-    			if (detaching) detach_dev(button1);
-    			if (detaching) detach_dev(t14);
-    			if (detaching) detach_dev(button2);
-    			if (detaching) detach_dev(t16);
-    			if (detaching) detach_dev(hr1);
-    			if (detaching) detach_dev(t17);
-    			if (detaching) detach_dev(button3);
-    			if (detaching) detach_dev(t19);
-    			if (detaching) detach_dev(textarea1);
     			mounted = false;
     			run_all(dispose);
     		}
@@ -7151,214 +8958,303 @@ var app = (function () {
 
     	dispatch_dev("SvelteRegisterBlock", {
     		block,
-    		id: create_fragment$1.name,
-    		type: "component",
-    		source: "",
+    		id: create_each_block.name,
+    		type: "each",
+    		source: "(92:2) {#each placeholderInputs as placeholder}",
     		ctx
     	});
 
     	return block;
     }
 
-    function instance$1($$self, $$props, $$invalidate) {
-    	let { $$slots: slots = {}, $$scope } = $$props;
-    	validate_slots('DeliberateSubconciousRepititionPractice', slots, []);
-    	let textInput = '';
-    	let items = [];
-    	let running = false;
-    	let selectedItem = null;
-    	let intervalId = null;
-    	let counts = {};
-    	let totalCountLimit = 10; // Default limit, can be changed by the user
-    	let allWordsLimitReached = false;
-    	let simulationResult = ''; // Variable to hold the result of the simulation
+    function create_fragment$1(ctx) {
+    	let div1;
+    	let h1;
+    	let t1;
+    	let select;
+    	let t2;
+    	let t3;
+    	let div0;
+    	let t4;
+    	let button;
+    	let mounted;
+    	let dispose;
+    	let each_value_1 = Object.keys(/*workflows*/ ctx[3]);
+    	validate_each_argument(each_value_1);
+    	let each_blocks_1 = [];
 
-    	function updateItems() {
-    		items = textInput.split(/\W+/).filter(word => word.trim() !== '').map(word => ({ id: word, text: word })); // Use word itself as the ID
-    		$$invalidate(2, counts = items.reduce((acc, item) => ({ ...acc, [item.id]: 0 }), {}));
+    	for (let i = 0; i < each_value_1.length; i += 1) {
+    		each_blocks_1[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i));
     	}
 
-    	function start() {
-    		if (!running && items.length > 0) {
-    			running = true;
+    	let each_value = /*placeholderInputs*/ ctx[2];
+    	validate_each_argument(each_value);
+    	let each_blocks = [];
 
-    			intervalId = setInterval(
-    				() => {
-    					// Filter out items that have reached the totalCountLimit
-    					const eligibleItems = items.filter(item => counts[item.id] < totalCountLimit);
+    	for (let i = 0; i < each_value.length; i += 1) {
+    		each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i));
+    	}
 
-    					// If there are no eligible items left, stop the timer
-    					if (eligibleItems.length === 0) {
-    						stop();
-    						$$invalidate(4, allWordsLimitReached = true); // Set when all words reach the limit
-    						return;
-    					}
+    	const block = {
+    		c: function create() {
+    			div1 = element("div");
+    			h1 = element("h1");
+    			h1.textContent = "Incompelete Workflow Interface";
+    			t1 = space();
+    			select = element("select");
 
-    					// Select a random item from the eligible items
-    					const randomIndex = Math.floor(Math.random() * eligibleItems.length);
+    			for (let i = 0; i < each_blocks_1.length; i += 1) {
+    				each_blocks_1[i].c();
+    			}
 
-    					$$invalidate(1, selectedItem = eligibleItems[randomIndex]);
-    					$$invalidate(2, counts[selectedItem.id]++, counts);
-    				},
-    				1000
-    			);
-    		}
-    	}
+    			t2 = space();
 
-    	function stop() {
-    		if (running) {
-    			clearInterval(intervalId);
-    			running = false;
-    			intervalId = null;
-    		}
-    	}
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				each_blocks[i].c();
+    			}
 
-    	function exportCounts() {
-    		const dataStr = JSON.stringify(counts);
-    		const blob = new Blob([dataStr], { type: "application/json" });
-    		const url = URL.createObjectURL(blob);
-    		const link = document.createElement("a");
-    		link.download = "counts.json";
-    		link.href = url;
-    		link.click();
-    	}
+    			t3 = space();
+    			div0 = element("div");
+    			t4 = space();
+    			button = element("button");
+    			button.textContent = "Submit";
+    			add_location(h1, file$1, 84, 2, 2523);
+    			if (/*selectedWorkflow*/ ctx[0] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[7].call(select));
+    			add_location(select, file$1, 85, 2, 2566);
+    			attr_dev(div0, "id", "input-group");
+    			add_location(div0, file$1, 102, 2, 3039);
+    			add_location(button, file$1, 104, 2, 3073);
+    			add_location(div1, file$1, 83, 0, 2514);
+    		},
+    		l: function claim(nodes) {
+    			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+    		},
+    		m: function mount(target, anchor) {
+    			insert_dev(target, div1, anchor);
+    			append_dev(div1, h1);
+    			append_dev(div1, t1);
+    			append_dev(div1, select);
+
+    			for (let i = 0; i < each_blocks_1.length; i += 1) {
+    				if (each_blocks_1[i]) {
+    					each_blocks_1[i].m(select, null);
+    				}
+    			}
+
+    			select_option(select, /*selectedWorkflow*/ ctx[0], true);
+    			append_dev(div1, t2);
+
+    			for (let i = 0; i < each_blocks.length; i += 1) {
+    				if (each_blocks[i]) {
+    					each_blocks[i].m(div1, null);
+    				}
+    			}
 
-    	function importCounts(event) {
-    		const fileReader = new FileReader();
+    			append_dev(div1, t3);
+    			append_dev(div1, div0);
+    			append_dev(div1, t4);
+    			append_dev(div1, button);
 
-    		fileReader.onload = e => {
-    			const data = JSON.parse(e.target.result);
-    			$$invalidate(2, counts = { ...counts, ...data });
+    			if (!mounted) {
+    				dispose = [
+    					listen_dev(select, "change", /*select_change_handler*/ ctx[7]),
+    					listen_dev(select, "change", /*handleWorkflowChange*/ ctx[4], false, false, false, false),
+    					listen_dev(button, "click", /*processInputs*/ ctx[5], false, false, false, false)
+    				];
 
-    			items = Object.keys(data).map((word, index) => ({
-    				id: word, // Use word itself as the ID
-    				text: word
-    			}));
+    				mounted = true;
+    			}
+    		},
+    		p: function update(ctx, [dirty]) {
+    			if (dirty & /*Object, workflows*/ 8) {
+    				each_value_1 = Object.keys(/*workflows*/ ctx[3]);
+    				validate_each_argument(each_value_1);
+    				let i;
 
-    			// Ensure existing items are updated if they are not in the imported data
-    			items.forEach(item => {
-    				if (!counts[item.id]) {
-    					$$invalidate(2, counts[item.id] = 0, counts);
+    				for (i = 0; i < each_value_1.length; i += 1) {
+    					const child_ctx = get_each_context_1(ctx, each_value_1, i);
+
+    					if (each_blocks_1[i]) {
+    						each_blocks_1[i].p(child_ctx, dirty);
+    					} else {
+    						each_blocks_1[i] = create_each_block_1(child_ctx);
+    						each_blocks_1[i].c();
+    						each_blocks_1[i].m(select, null);
+    					}
     				}
-    			});
-    		};
 
-    		fileReader.readAsText(event.target.files[0]);
-    	}
+    				for (; i < each_blocks_1.length; i += 1) {
+    					each_blocks_1[i].d(1);
+    				}
 
-    	// ... (other variables and functions remain unchanged)
-    	function simulateCount() {
-    		let simulatedTime = 0;
-    		let maxSimulatedSeconds = 3600; // 3600 seconds = 1 hour
-    		let simulationOutput = ""; // Accumulate output here
+    				each_blocks_1.length = each_value_1.length;
+    			}
 
-    		// Reset the allWordsLimitReached flag and simulationResult
-    		$$invalidate(4, allWordsLimitReached = false);
+    			if (dirty & /*selectedWorkflow, Object, workflows*/ 9) {
+    				select_option(select, /*selectedWorkflow*/ ctx[0]);
+    			}
 
-    		$$invalidate(5, simulationResult = '');
+    			if (dirty & /*placeholderValues, placeholderInputs, updateInputs*/ 70) {
+    				each_value = /*placeholderInputs*/ ctx[2];
+    				validate_each_argument(each_value);
+    				let i;
 
-    		// Simulate until max time is reached or all words hit the limit
-    		while (simulatedTime < maxSimulatedSeconds && !allWordsLimitReached) {
-    			const eligibleItems = items.filter(item => counts[item.id] < totalCountLimit);
+    				for (i = 0; i < each_value.length; i += 1) {
+    					const child_ctx = get_each_context(ctx, each_value, i);
 
-    			if (eligibleItems.length === 0) {
-    				$$invalidate(4, allWordsLimitReached = true); // Set when all words reach the limit
-    				break; // Exit the loop if all words hit the limit
+    					if (each_blocks[i]) {
+    						each_blocks[i].p(child_ctx, dirty);
+    					} else {
+    						each_blocks[i] = create_each_block(child_ctx);
+    						each_blocks[i].c();
+    						each_blocks[i].m(div1, t3);
+    					}
+    				}
+
+    				for (; i < each_blocks.length; i += 1) {
+    					each_blocks[i].d(1);
+    				}
+
+    				each_blocks.length = each_value.length;
     			}
+    		},
+    		i: noop,
+    		o: noop,
+    		d: function destroy(detaching) {
+    			if (detaching) detach_dev(div1);
+    			destroy_each(each_blocks_1, detaching);
+    			destroy_each(each_blocks, detaching);
+    			mounted = false;
+    			run_all(dispose);
+    		}
+    	};
 
-    			// Select a random item and increment its count
-    			const randomIndex = Math.floor(Math.random() * eligibleItems.length);
+    	dispatch_dev("SvelteRegisterBlock", {
+    		block,
+    		id: create_fragment$1.name,
+    		type: "component",
+    		source: "",
+    		ctx
+    	});
 
-    			$$invalidate(1, selectedItem = eligibleItems[randomIndex]);
-    			$$invalidate(2, counts[selectedItem.id]++, counts);
-    			simulationOutput += selectedItem.text + " "; // Append selected word to output
+    	return block;
+    }
 
-    			// Increment simulated time (equivalent to the time between iterations in the real scenario)
-    			simulatedTime++;
+    function instance$1($$self, $$props, $$invalidate) {
+    	let { $$slots: slots = {}, $$scope } = $$props;
+    	validate_slots('LLMWorkflowTest', slots, []);
+
+    	let workflows = {
+    		"Merged Spelling": {
+    			steps: [
+    				"Please make an image description the meaning of the word <word1>",
+    				"next please find english words close in spelling to <word2>",
+    				"great, next make an image description using those words",
+    				"Thanks lets now merge the two seperate image descriptions together"
+    			],
+    			placeholders: { "<word1>": "much", "<word2>": "henduo" },
+    			timeline: [[], 1, [1], [0, 2]]
+    		},
+    		"Another Workflow": {
+    			steps: [
+    				"Do something with <placeholder1>",
+    				"Then do something else with <placeholder2>"
+    			],
+    			placeholders: {
+    				"<placeholder1>": "value1",
+    				"<placeholder2>": "value2"
+    			},
+    			timeline: [[], 1]
     		}
+    	};
 
-    		// Update simulationResult with a message
-    		if (allWordsLimitReached) {
-    			$$invalidate(5, simulationResult = "All words have reached the count limit during simulation.");
-    		} else {
-    			$$invalidate(5, simulationResult = `Simulation finished after ${simulatedTime} seconds.`);
-    		}
+    	let selectedWorkflow = "Merged Spelling";
+    	let placeholderValues = workflows[selectedWorkflow].placeholders;
+    	let placeholderInputs = Object.keys(placeholderValues);
+    	let timeline = workflows[selectedWorkflow].timeline;
 
-    		// Export the simulation output to a text file
-    		exportSimulationOutput(simulationOutput);
+    	function handleWorkflowChange() {
+    		$$invalidate(1, placeholderValues = workflows[selectedWorkflow].placeholders);
+    		$$invalidate(2, placeholderInputs = Object.keys(placeholderValues));
+    		timeline = workflows[selectedWorkflow].timeline;
+    		updateInputs();
     	}
 
-    	function exportSimulationOutput(output) {
-    		if (output) {
-    			const blob = new Blob([output], { type: "text/plain" });
-    			const url = URL.createObjectURL(blob);
-    			const link = document.createElement("a");
-    			link.download = "simulation_output.txt";
-    			link.href = url;
-    			link.click();
-    		} else {
-    			console.error("No simulation output to export.");
-    			$$invalidate(5, simulationResult = "No simulation output to export.");
-    		}
+    	function processInputs() {
+    		const inputs = document.querySelectorAll('input[type="text"]');
+    		console.log(`Workflow: ${selectedWorkflow}`);
+
+    		inputs.forEach((input, i) => {
+    			console.log(`Step ${i + 1}: ${input.value}`);
+    		});
     	}
 
-    	onDestroy(() => {
-    		if (intervalId) {
-    			clearInterval(intervalId);
-    		}
+    	onMount(() => {
+    		handleWorkflowChange();
+    		updateInputs();
     	});
 
+    	function updateInputs() {
+    		const inputGroup = document.getElementById('input-group');
+    		inputGroup.innerHTML = '';
+    		const steps = workflows[selectedWorkflow].steps;
+
+    		steps.forEach((step, i) => {
+    			const label = placeholderInputs.reduce((updatedStep, placeholder) => updatedStep.replace(new RegExp(placeholder, 'g'), placeholderValues[placeholder]), step);
+
+    			const dependencyText = Array.isArray(timeline[i])
+    			? timeline[i].join(', ')
+    			: timeline[i];
+
+    			const inputBox = `
+        <div>
+          <label>${label}</label>
+          <input type="text" />
+          ${timeline[i].length > 0
+			? `<span>Output depends on: ${dependencyText}</span>`
+			: ''}
+        </div>
+      `;
+
+    			inputGroup.innerHTML += inputBox;
+    		});
+    	}
+
     	const writable_props = [];
 
     	Object_1.keys($$props).forEach(key => {
-    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1.warn(`<DeliberateSubconciousRepititionPractice> was created with unknown prop '${key}'`);
+    		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1.warn(`<LLMWorkflowTest> was created with unknown prop '${key}'`);
     	});
 
-    	function textarea0_input_handler() {
-    		textInput = this.value;
-    		$$invalidate(0, textInput);
-    	}
-
-    	function input1_input_handler() {
-    		totalCountLimit = to_number(this.value);
-    		$$invalidate(3, totalCountLimit);
+    	function select_change_handler() {
+    		selectedWorkflow = select_value(this);
+    		$$invalidate(0, selectedWorkflow);
+    		$$invalidate(3, workflows);
     	}
 
-    	function textarea1_input_handler() {
-    		simulationResult = this.value;
-    		$$invalidate(5, simulationResult);
+    	function input_input_handler(placeholder) {
+    		placeholderValues[placeholder] = this.value;
+    		$$invalidate(1, placeholderValues);
     	}
 
     	$$self.$capture_state = () => ({
-    		onDestroy,
-    		textInput,
-    		items,
-    		running,
-    		selectedItem,
-    		intervalId,
-    		counts,
-    		totalCountLimit,
-    		allWordsLimitReached,
-    		simulationResult,
-    		updateItems,
-    		start,
-    		stop,
-    		exportCounts,
-    		importCounts,
-    		simulateCount,
-    		exportSimulationOutput
+    		onMount,
+    		workflows,
+    		selectedWorkflow,
+    		placeholderValues,
+    		placeholderInputs,
+    		timeline,
+    		handleWorkflowChange,
+    		processInputs,
+    		updateInputs
     	});
 
     	$$self.$inject_state = $$props => {
-    		if ('textInput' in $$props) $$invalidate(0, textInput = $$props.textInput);
-    		if ('items' in $$props) items = $$props.items;
-    		if ('running' in $$props) running = $$props.running;
-    		if ('selectedItem' in $$props) $$invalidate(1, selectedItem = $$props.selectedItem);
-    		if ('intervalId' in $$props) intervalId = $$props.intervalId;
-    		if ('counts' in $$props) $$invalidate(2, counts = $$props.counts);
-    		if ('totalCountLimit' in $$props) $$invalidate(3, totalCountLimit = $$props.totalCountLimit);
-    		if ('allWordsLimitReached' in $$props) $$invalidate(4, allWordsLimitReached = $$props.allWordsLimitReached);
-    		if ('simulationResult' in $$props) $$invalidate(5, simulationResult = $$props.simulationResult);
+    		if ('workflows' in $$props) $$invalidate(3, workflows = $$props.workflows);
+    		if ('selectedWorkflow' in $$props) $$invalidate(0, selectedWorkflow = $$props.selectedWorkflow);
+    		if ('placeholderValues' in $$props) $$invalidate(1, placeholderValues = $$props.placeholderValues);
+    		if ('placeholderInputs' in $$props) $$invalidate(2, placeholderInputs = $$props.placeholderInputs);
+    		if ('timeline' in $$props) timeline = $$props.timeline;
     	};
 
     	if ($$props && "$$inject" in $$props) {
@@ -7366,32 +9262,26 @@ var app = (function () {
     	}
 
     	return [
-    		textInput,
-    		selectedItem,
-    		counts,
-    		totalCountLimit,
-    		allWordsLimitReached,
-    		simulationResult,
-    		updateItems,
-    		start,
-    		stop,
-    		exportCounts,
-    		importCounts,
-    		simulateCount,
-    		textarea0_input_handler,
-    		input1_input_handler,
-    		textarea1_input_handler
+    		selectedWorkflow,
+    		placeholderValues,
+    		placeholderInputs,
+    		workflows,
+    		handleWorkflowChange,
+    		processInputs,
+    		updateInputs,
+    		select_change_handler,
+    		input_input_handler
     	];
     }
 
-    class DeliberateSubconciousRepititionPractice extends SvelteComponentDev {
+    class LLMWorkflowTest extends SvelteComponentDev {
     	constructor(options) {
     		super(options);
     		init(this, options, instance$1, create_fragment$1, safe_not_equal, {});
 
     		dispatch_dev("SvelteRegisterComponent", {
     			component: this,
-    			tagName: "DeliberateSubconciousRepititionPractice",
+    			tagName: "LLMWorkflowTest",
     			options,
     			id: create_fragment$1.name
     		});
@@ -7417,28 +9307,33 @@ var app = (function () {
     	let t9;
     	let h30;
     	let t11;
-    	let h31;
-    	let t13;
+    	let div4;
     	let div0;
+    	let copyremove;
+    	let t12;
+    	let div1;
+    	let llmwf;
+    	let t13;
+    	let div2;
     	let subrepprac;
     	let t14;
-    	let div1;
+    	let div3;
     	let readingstatecounter;
     	let t15;
-    	let div2;
-    	let copyremove;
-    	let t16;
-    	let nestedcommentssvelte;
+    	let h31;
     	let t17;
-    	let myyoutube;
+    	let nestedcommentssvelte;
     	let t18;
+    	let myyoutube;
+    	let t19;
     	let h12;
-    	let t20;
+    	let t21;
     	let dotgame;
     	let current;
+    	copyremove = new CopyandRemoveListComponent({ $$inline: true });
+    	llmwf = new LLMWorkflowTest({ $$inline: true });
     	subrepprac = new DeliberateSubconciousRepititionPractice({ $$inline: true });
     	readingstatecounter = new ReadingStateCounter({ $$inline: true });
-    	copyremove = new CopyandRemoveListComponent({ $$inline: true });
     	nestedcommentssvelte = new RecursiveNestedCommentsElement({ $$inline: true });
     	myyoutube = new YoutubeIframeAPICustomInterface({ $$inline: true });
     	dotgame = new MovingDotSpacePortfromReact({ $$inline: true });
@@ -7447,7 +9342,7 @@ var app = (function () {
     		c: function create() {
     			main = element("main");
     			h10 = element("h1");
-    			t0 = text("Hello ");
+    			t0 = text("LLM Assisted Hello ");
     			t1 = text(/*name*/ ctx[0]);
     			t2 = text("!");
     			t3 = space();
@@ -7455,7 +9350,7 @@ var app = (function () {
     			t4 = text("Visit the ");
     			a = element("a");
     			a.textContent = "Svelte tutorial";
-    			t6 = text(" to learn how to build Svelte apps.");
+    			t6 = text(" to learn how to build Svelte apps. (or ask Claude / GPT4 for help)");
     			t7 = space();
     			h11 = element("h1");
     			h11.textContent = "Brainstorm for Educational Interfaces to add LLM and other models into";
@@ -7463,45 +9358,53 @@ var app = (function () {
     			h30 = element("h3");
     			h30.textContent = "(Through Gradio and Custom Components)";
     			t11 = space();
-    			h31 = element("h3");
-    			h31.textContent = "Gradio client Test in another space due to incompatabilitiess with default svelte and @gradio/client";
-    			t13 = space();
+    			div4 = element("div");
     			div0 = element("div");
+    			create_component(copyremove.$$.fragment);
+    			t12 = space();
+    			div1 = element("div");
+    			create_component(llmwf.$$.fragment);
+    			t13 = space();
+    			div2 = element("div");
     			create_component(subrepprac.$$.fragment);
     			t14 = space();
-    			div1 = element("div");
+    			div3 = element("div");
     			create_component(readingstatecounter.$$.fragment);
     			t15 = space();
-    			div2 = element("div");
-    			create_component(copyremove.$$.fragment);
-    			t16 = space();
-    			create_component(nestedcommentssvelte.$$.fragment);
+    			h31 = element("h3");
+    			h31.textContent = "Gradio client Test in another space due to incompatabilitiess with default svelte and @gradio/client";
     			t17 = space();
-    			create_component(myyoutube.$$.fragment);
+    			create_component(nestedcommentssvelte.$$.fragment);
     			t18 = space();
+    			create_component(myyoutube.$$.fragment);
+    			t19 = space();
     			h12 = element("h1");
     			h12.textContent = "Themeable Game Brainstorm - Image + Lists - Game as Universal Translator for any subject";
-    			t20 = space();
+    			t21 = space();
     			create_component(dotgame.$$.fragment);
-    			attr_dev(h10, "class", "svelte-1gz1mpc");
-    			add_location(h10, file, 24, 1, 668);
+    			attr_dev(h10, "class", "svelte-192gzri");
+    			add_location(h10, file, 25, 1, 714);
     			attr_dev(a, "href", "https://svelte.dev/tutorial");
-    			add_location(a, file, 25, 14, 705);
-    			add_location(p, file, 25, 1, 692);
-    			attr_dev(h11, "class", "svelte-1gz1mpc");
-    			add_location(h11, file, 27, 1, 804);
-    			add_location(h30, file, 28, 1, 887);
-    			add_location(h31, file, 30, 1, 939);
-    			attr_dev(div0, "class", "componentborder svelte-1gz1mpc");
-    			add_location(div0, file, 32, 1, 1052);
-    			attr_dev(div1, "class", "componentborder svelte-1gz1mpc");
-    			add_location(div1, file, 34, 1, 1104);
-    			attr_dev(div2, "class", "componentborder svelte-1gz1mpc");
-    			add_location(div2, file, 36, 1, 1166);
-    			attr_dev(h12, "class", "svelte-1gz1mpc");
-    			add_location(h12, file, 43, 1, 1310);
-    			attr_dev(main, "class", "svelte-1gz1mpc");
-    			add_location(main, file, 22, 0, 659);
+    			add_location(a, file, 26, 14, 764);
+    			add_location(p, file, 26, 1, 751);
+    			attr_dev(h11, "class", "svelte-192gzri");
+    			add_location(h11, file, 28, 1, 895);
+    			add_location(h30, file, 29, 1, 978);
+    			attr_dev(div0, "class", "componentborder svelte-192gzri");
+    			add_location(div0, file, 32, 2, 1075);
+    			attr_dev(div1, "class", "componentborder svelte-192gzri");
+    			add_location(div1, file, 33, 2, 1127);
+    			attr_dev(div2, "class", "componentborder svelte-192gzri");
+    			add_location(div2, file, 34, 2, 1174);
+    			attr_dev(div3, "class", "componentborder svelte-192gzri");
+    			add_location(div3, file, 35, 2, 1226);
+    			attr_dev(div4, "class", "grid-MultiComponentContainer svelte-192gzri");
+    			add_location(div4, file, 31, 1, 1030);
+    			add_location(h31, file, 38, 1, 1295);
+    			attr_dev(h12, "class", "svelte-192gzri");
+    			add_location(h12, file, 45, 1, 1500);
+    			attr_dev(main, "class", "svelte-192gzri");
+    			add_location(main, file, 23, 0, 705);
     		},
     		l: function claim(nodes) {
     			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -7522,23 +9425,27 @@ var app = (function () {
     			append_dev(main, t9);
     			append_dev(main, h30);
     			append_dev(main, t11);
-    			append_dev(main, h31);
-    			append_dev(main, t13);
-    			append_dev(main, div0);
-    			mount_component(subrepprac, div0, null);
-    			append_dev(main, t14);
-    			append_dev(main, div1);
-    			mount_component(readingstatecounter, div1, null);
+    			append_dev(main, div4);
+    			append_dev(div4, div0);
+    			mount_component(copyremove, div0, null);
+    			append_dev(div4, t12);
+    			append_dev(div4, div1);
+    			mount_component(llmwf, div1, null);
+    			append_dev(div4, t13);
+    			append_dev(div4, div2);
+    			mount_component(subrepprac, div2, null);
+    			append_dev(div4, t14);
+    			append_dev(div4, div3);
+    			mount_component(readingstatecounter, div3, null);
     			append_dev(main, t15);
-    			append_dev(main, div2);
-    			mount_component(copyremove, div2, null);
-    			append_dev(main, t16);
-    			mount_component(nestedcommentssvelte, main, null);
+    			append_dev(main, h31);
     			append_dev(main, t17);
-    			mount_component(myyoutube, main, null);
+    			mount_component(nestedcommentssvelte, main, null);
     			append_dev(main, t18);
+    			mount_component(myyoutube, main, null);
+    			append_dev(main, t19);
     			append_dev(main, h12);
-    			append_dev(main, t20);
+    			append_dev(main, t21);
     			mount_component(dotgame, main, null);
     			current = true;
     		},
@@ -7547,18 +9454,20 @@ var app = (function () {
     		},
     		i: function intro(local) {
     			if (current) return;
+    			transition_in(copyremove.$$.fragment, local);
+    			transition_in(llmwf.$$.fragment, local);
     			transition_in(subrepprac.$$.fragment, local);
     			transition_in(readingstatecounter.$$.fragment, local);
-    			transition_in(copyremove.$$.fragment, local);
     			transition_in(nestedcommentssvelte.$$.fragment, local);
     			transition_in(myyoutube.$$.fragment, local);
     			transition_in(dotgame.$$.fragment, local);
     			current = true;
     		},
     		o: function outro(local) {
+    			transition_out(copyremove.$$.fragment, local);
+    			transition_out(llmwf.$$.fragment, local);
     			transition_out(subrepprac.$$.fragment, local);
     			transition_out(readingstatecounter.$$.fragment, local);
-    			transition_out(copyremove.$$.fragment, local);
     			transition_out(nestedcommentssvelte.$$.fragment, local);
     			transition_out(myyoutube.$$.fragment, local);
     			transition_out(dotgame.$$.fragment, local);
@@ -7566,9 +9475,10 @@ var app = (function () {
     		},
     		d: function destroy(detaching) {
     			if (detaching) detach_dev(main);
+    			destroy_component(copyremove);
+    			destroy_component(llmwf);
     			destroy_component(subrepprac);
     			destroy_component(readingstatecounter);
-    			destroy_component(copyremove);
     			destroy_component(nestedcommentssvelte);
     			destroy_component(myyoutube);
     			destroy_component(dotgame);
@@ -7625,6 +9535,7 @@ var app = (function () {
     		CopyRemove: CopyandRemoveListComponent,
     		ReadingStateCounter,
     		SubRepPrac: DeliberateSubconciousRepititionPractice,
+    		LLMWF: LLMWorkflowTest,
     		showModal,
     		openModal,
     		closeModal